{"mappings":"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","names":["WINDOW","GLOBAL_OBJ","DOCUMENT","NAVIGATOR","TRIGGER_LABEL","CANCEL_BUTTON_LABEL","SUBMIT_BUTTON_LABEL","CONFIRM_BUTTON_LABEL","FORM_TITLE","EMAIL_PLACEHOLDER","EMAIL_LABEL","MESSAGE_PLACEHOLDER","MESSAGE_LABEL","NAME_PLACEHOLDER","NAME_LABEL","SUCCESS_MESSAGE_TEXT","IS_REQUIRED_LABEL","ADD_SCREENSHOT_LABEL","REMOVE_SCREENSHOT_LABEL","FEEDBACK_WIDGET_SOURCE","FEEDBACK_API_SOURCE","SUCCESS_MESSAGE_TIMEOUT","sendFeedback","params","hint","client","getClient","getCurrentScope","eventId","captureFeedback","getLocationHref","resolve","reject","timeout","cleanup","event","response","DEBUG_BUILD","isScreenshotSupported","mergeOptions","defaultOptions","optionOverrides","data","error","createActorStyles","styleNonce","style","setAttributesNS","el","attributes","key","val","SIZE","XMLNS","FeedbackIcon","createElementNS","tagName","svg","g","path","speakerDefs","speakerClipPathDef","speakerRect","Actor","triggerLabel","triggerAriaLabel","shadow","label","PURPLE","DEFAULT_LIGHT","DEFAULT_DARK","getThemedCssVariables","theme","createMainStyles","colorScheme","themeDark","themeLight","buildFeedbackIntegration","lazyLoadIntegration","getModalIntegration","getScreenshotIntegration","id","autoInject","showBranding","isEmailRequired","isNameRequired","showEmail","showName","enableScreenshot","useSentryUser","tags","scriptNonce","addScreenshotButtonLabel","cancelButtonLabel","confirmButtonLabel","emailLabel","emailPlaceholder","formTitle","isRequiredLabel","messageLabel","messagePlaceholder","nameLabel","namePlaceholder","removeScreenshotButtonLabel","submitButtonLabel","successMessageText","onFormOpen","onFormClose","onSubmitSuccess","onSubmitError","onFormSubmitted","_options","_shadow","_subscriptions","_createShadow","options","host","_loadAndRenderDialog","screenshotRequired","modalIntegration","screenshotIntegration","addIntegration","logger","screenshotIntegrationFn","dialog","_attachTo","mergedOptions","targetEl","handleClick","unsubscribe","sub","_createActor","actor","isBrowser","getFeedback","n","l","u","i","o","r","f","c","s","a","h","v","p","y","t","d","b","m","w","M","k","x","C","j","P","e","_","S","N","$","I","O","T","A","L","D","H","q","z","B","F","V","SentryLogo","DialogHeader","logoHtml","useMemo","getMissingFields","feedback","props","emptyFields","retrieveStringValue","formData","value","Form","defaultEmail","defaultName","onSubmit","screenshotInput","isSubmitting","setIsSubmitting","useState","setError","showScreenshotInput","setShowScreenshotInput","ScreenshotInputComponent","screenshotError","setScreenshotError","onScreenshotError","useCallback","hasAllRequiredFields","missingFields","handleSubmit","attachment","LabelText","prev","isRequired","WIDTH","HEIGHT","SuccessIcon","path2","Dialog","open","successIconHtml","timeoutId","setTimeoutId","handleOnSuccessClick","Fragment","DIALOG","DIALOG_HEADER","FORM","BUTTON","SUCCESS","createDialogStyles","getUser","currentUser","isolationUser","getIsolationScope","globalUser","getGlobalScope","feedbackModalIntegration","shadowRoot","userKey","user","originalOverflow","renderContent","y$1","hooks","render","IconCloseFactory","createScreenshotInputStyles","surface200","gray100","ToolbarFactory","action","setAction","useTakeScreenshotFactory","useDpi","dpi","setDpi","onChange","media","onBeforeScreenshot","onScreenshot","onAfterScreenshot","onError","stream","video","track","drawRect","command","ctx","color","with2dContext","canvas","callback","paintImage","maybeDest","source","destCanvas","destCtx","paintForeground","maybeCanvas","strokeColor","drawCommands","ScreenshotEditorFactory","outputBuffer","useTakeScreenshot","Toolbar","IconClose","editorStyleInnerText","dialogStyle","ScreenshotEditor","screenshot","setDrawCommands","measurementRef","backgroundRef","foregroundRef","mouseRef","scaleFactor","setScaleFactor","sentryFeedback","computedStyle","handleResize","measurementDiv","scale","setCanvasSize","foreground","handleMouseDown","boundingRect","startingPoint","getDrawCommand","handleMouseMove","handleMouseUp","drawCommand","deleteRect","index","updatedRects","dimensions","handleStopPropagation","rect","setScreenshot","screenshotVideo","feedbackScreenshotIntegration","blob"],"sources":["../esm/npm/@sentry-internal/feedback@9.17.0/node_modules/@sentry-internal/feedback/src/constants/index.ts","../esm/npm/@sentry-internal/feedback@9.17.0/node_modules/@sentry-internal/feedback/src/core/sendFeedback.ts","../esm/npm/@sentry-internal/feedback@9.17.0/node_modules/@sentry-internal/feedback/src/util/debug-build.ts","../esm/npm/@sentry-internal/feedback@9.17.0/node_modules/@sentry-internal/feedback/src/util/isScreenshotSupported.ts","../esm/npm/@sentry-internal/feedback@9.17.0/node_modules/@sentry-internal/feedback/src/util/mergeOptions.ts","../esm/npm/@sentry-internal/feedback@9.17.0/node_modules/@sentry-internal/feedback/src/core/components/Actor.css.ts","../esm/npm/@sentry-internal/feedback@9.17.0/node_modules/@sentry-internal/feedback/src/util/setAttributesNS.ts","../esm/npm/@sentry-internal/feedback@9.17.0/node_modules/@sentry-internal/feedback/src/core/components/FeedbackIcon.ts","../esm/npm/@sentry-internal/feedback@9.17.0/node_modules/@sentry-internal/feedback/src/core/components/Actor.ts","../esm/npm/@sentry-internal/feedback@9.17.0/node_modules/@sentry-internal/feedback/src/core/createMainStyles.ts","../esm/npm/@sentry-internal/feedback@9.17.0/node_modules/@sentry-internal/feedback/src/core/integration.ts","../esm/npm/@sentry-internal/feedback@9.17.0/node_modules/@sentry-internal/feedback/src/core/getFeedback.ts","../esm/npm/@sentry-internal/feedback@9.17.0/node_modules/node_modules/preact/dist/preact.mjs","../esm/npm/@sentry-internal/feedback@9.17.0/node_modules/node_modules/preact/hooks/dist/hooks.mjs","../esm/npm/@sentry-internal/feedback@9.17.0/node_modules/@sentry-internal/feedback/src/modal/components/SentryLogo.ts","../esm/npm/@sentry-internal/feedback@9.17.0/node_modules/@sentry-internal/feedback/src/modal/components/DialogHeader.tsx","../esm/npm/@sentry-internal/feedback@9.17.0/node_modules/@sentry-internal/feedback/src/util/validate.ts","../esm/npm/@sentry-internal/feedback@9.17.0/node_modules/@sentry-internal/feedback/src/modal/components/Form.tsx","../esm/npm/@sentry-internal/feedback@9.17.0/node_modules/@sentry-internal/feedback/src/modal/components/SuccessIcon.ts","../esm/npm/@sentry-internal/feedback@9.17.0/node_modules/@sentry-internal/feedback/src/modal/components/Dialog.tsx","../esm/npm/@sentry-internal/feedback@9.17.0/node_modules/@sentry-internal/feedback/src/modal/components/Dialog.css.ts","../esm/npm/@sentry-internal/feedback@9.17.0/node_modules/@sentry-internal/feedback/src/modal/integration.tsx","../esm/npm/@sentry-internal/feedback@9.17.0/node_modules/@sentry-internal/feedback/src/screenshot/components/IconClose.tsx","../esm/npm/@sentry-internal/feedback@9.17.0/node_modules/@sentry-internal/feedback/src/screenshot/components/ScreenshotInput.css.ts","../esm/npm/@sentry-internal/feedback@9.17.0/node_modules/@sentry-internal/feedback/src/screenshot/components/Toolbar.tsx","../esm/npm/@sentry-internal/feedback@9.17.0/node_modules/@sentry-internal/feedback/src/screenshot/components/useTakeScreenshot.tsx","../esm/npm/@sentry-internal/feedback@9.17.0/node_modules/@sentry-internal/feedback/src/screenshot/components/ScreenshotEditor.tsx","../esm/npm/@sentry-internal/feedback@9.17.0/node_modules/@sentry-internal/feedback/src/screenshot/integration.ts"],"sourcesContent":["import { GLOBAL_OBJ } from '@sentry/core';\n\n// exporting a separate copy of `WINDOW` rather than exporting the one from `@sentry/browser`\n// prevents the browser package from being bundled in the CDN bundle, and avoids a\n// circular dependency between the browser and feedback packages\nexport const WINDOW = GLOBAL_OBJ as typeof GLOBAL_OBJ \u0026 Window;\nexport const DOCUMENT = WINDOW.document;\nexport const NAVIGATOR = WINDOW.navigator;\n\nexport const TRIGGER_LABEL = 'Report a Bug';\nexport const CANCEL_BUTTON_LABEL = 'Cancel';\nexport const SUBMIT_BUTTON_LABEL = 'Send Bug Report';\nexport const CONFIRM_BUTTON_LABEL = 'Confirm';\nexport const FORM_TITLE = 'Report a Bug';\nexport const EMAIL_PLACEHOLDER = 'your.email@example.org';\nexport const EMAIL_LABEL = 'Email';\nexport const MESSAGE_PLACEHOLDER = \"What's the bug? What did you expect?\";\nexport const MESSAGE_LABEL = 'Description';\nexport const NAME_PLACEHOLDER = 'Your Name';\nexport const NAME_LABEL = 'Name';\nexport const SUCCESS_MESSAGE_TEXT = 'Thank you for your report!';\nexport const IS_REQUIRED_LABEL = '(required)';\nexport const ADD_SCREENSHOT_LABEL = 'Add a screenshot';\nexport const REMOVE_SCREENSHOT_LABEL = 'Remove screenshot';\n\nexport const FEEDBACK_WIDGET_SOURCE = 'widget';\nexport const FEEDBACK_API_SOURCE = 'api';\n\nexport const SUCCESS_MESSAGE_TIMEOUT = 5000;\n","import type { Event, EventHint, SendFeedback, SendFeedbackParams, TransportMakeRequestResponse } from '@sentry/core';\nimport { captureFeedback, getClient, getCurrentScope, getLocationHref } from '@sentry/core';\nimport { FEEDBACK_API_SOURCE } from '../constants';\n\n/**\n * Public API to send a Feedback item to Sentry\n */\nexport const sendFeedback: SendFeedback = (\n  params: SendFeedbackParams,\n  hint: EventHint \u0026 { includeReplay?: boolean } = { includeReplay: true },\n): Promise\u003cstring\u003e =\u003e {\n  if (!params.message) {\n    throw new Error('Unable to submit feedback with empty message');\n  }\n\n  // We want to wait for the feedback to be sent (or not)\n  const client = getClient();\n\n  if (!client) {\n    throw new Error('No client setup, cannot send feedback.');\n  }\n\n  if (params.tags \u0026\u0026 Object.keys(params.tags).length) {\n    getCurrentScope().setTags(params.tags);\n  }\n  const eventId = captureFeedback(\n    {\n      source: FEEDBACK_API_SOURCE,\n      url: getLocationHref(),\n      ...params,\n    },\n    hint,\n  );\n\n  // We want to wait for the feedback to be sent (or not)\n  return new Promise\u003cstring\u003e((resolve, reject) =\u003e {\n    // After 5s, we want to clear anyhow\n    const timeout = setTimeout(() =\u003e reject('Unable to determine if Feedback was correctly sent.'), 5_000);\n\n    const cleanup = client.on('afterSendEvent', (event: Event, response: TransportMakeRequestResponse) =\u003e {\n      if (event.event_id !== eventId) {\n        return;\n      }\n\n      clearTimeout(timeout);\n      cleanup();\n\n      // Require valid status codes, otherwise can assume feedback was not sent successfully\n      if (\n        response \u0026\u0026\n        typeof response.statusCode === 'number' \u0026\u0026\n        response.statusCode \u003e= 200 \u0026\u0026\n        response.statusCode \u003c 300\n      ) {\n        return resolve(eventId);\n      }\n\n      if (response \u0026\u0026 typeof response.statusCode === 'number' \u0026\u0026 response.statusCode === 0) {\n        return reject(\n          'Unable to send Feedback. This is because of network issues, or because you are using an ad-blocker.',\n        );\n      }\n\n      if (response \u0026\u0026 typeof response.statusCode === 'number' \u0026\u0026 response.statusCode === 403) {\n        return reject(\n          'Unable to send Feedback. This could be because this domain is not in your list of allowed domains.',\n        );\n      }\n\n      return reject(\n        'Unable to send Feedback. This could be because of network issues, or because you are using an ad-blocker',\n      );\n    });\n  });\n};\n\n/*\n * For reference, the fully built event looks something like this:\n * {\n *     \"type\": \"feedback\",\n *     \"event_id\": \"d2132d31b39445f1938d7e21b6bf0ec4\",\n *     \"timestamp\": 1597977777.6189718,\n *     \"dist\": \"1.12\",\n *     \"platform\": \"javascript\",\n *     \"environment\": \"production\",\n *     \"release\": 42,\n *     \"tags\": {\"transaction\": \"/organizations/:orgId/performance/:eventSlug/\"},\n *     \"sdk\": {\"name\": \"name\", \"version\": \"version\"},\n *     \"user\": {\n *         \"id\": \"123\",\n *         \"username\": \"user\",\n *         \"email\": \"user@site.com\",\n *         \"ip_address\": \"192.168.11.12\",\n *     },\n *     \"request\": {\n *         \"url\": None,\n *         \"headers\": {\n *             \"user-Agent\": \"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.5 Safari/605.1.15\"\n *         },\n *     },\n *     \"contexts\": {\n *         \"feedback\": {\n *             \"message\": \"test message\",\n *             \"contact_email\": \"test@example.com\",\n *             \"type\": \"feedback\",\n *         },\n *         \"trace\": {\n *             \"trace_id\": \"4C79F60C11214EB38604F4AE0781BFB2\",\n *             \"span_id\": \"FA90FDEAD5F74052\",\n *             \"type\": \"trace\",\n *         },\n *         \"replay\": {\n *             \"replay_id\": \"e2d42047b1c5431c8cba85ee2a8ab25d\",\n *         },\n *     },\n *   }\n */\n","declare const __DEBUG_BUILD__: boolean;\n\n/**\n * This serves as a build time flag that will be true by default, but false in non-debug builds or if users replace `__SENTRY_DEBUG__` in their generated code.\n *\n * ATTENTION: This constant must never cross package boundaries (i.e. be exported) to guarantee that it can be used for tree shaking.\n */\nexport const DEBUG_BUILD = __DEBUG_BUILD__;\n","import { NAVIGATOR } from '../constants';\n\n/**\n * Mobile browsers do not support `mediaDevices.getDisplayMedia` even though they have the api implemented\n * Instead they return things like `NotAllowedError` when called.\n *\n * It's simpler for us to browser sniff first, and avoid loading the integration if we can.\n *\n * https://stackoverflow.com/a/58879212\n * https://stackoverflow.com/a/3540295\n *\n * `mediaDevices.getDisplayMedia` is also only supported in secure contexts, and return a `mediaDevices is not supported` error, so we should also avoid loading the integration if we can.\n *\n * https://developer.mozilla.org/en-US/docs/Web/API/MediaDevices/getDisplayMedia\n */\nexport function isScreenshotSupported(): boolean {\n  if (/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(NAVIGATOR.userAgent)) {\n    return false;\n  }\n  /**\n   * User agent on iPads show as Macintosh, so we need extra checks\n   *\n   * https://forums.developer.apple.com/forums/thread/119186\n   * https://stackoverflow.com/questions/60482650/how-to-detect-ipad-useragent-on-safari-browser\n   */\n  if (/Macintosh/i.test(NAVIGATOR.userAgent) \u0026\u0026 NAVIGATOR.maxTouchPoints \u0026\u0026 NAVIGATOR.maxTouchPoints \u003e 1) {\n    return false;\n  }\n  if (!isSecureContext) {\n    return false;\n  }\n  return true;\n}\n","import type { FeedbackFormData, FeedbackInternalOptions } from '@sentry/core';\nimport type { OptionalFeedbackConfiguration } from '../core/types';\n\n/**\n * Quick and dirty deep merge for the Feedback integration options\n */\nexport function mergeOptions(\n  defaultOptions: FeedbackInternalOptions,\n  optionOverrides: OptionalFeedbackConfiguration,\n): FeedbackInternalOptions {\n  return {\n    ...defaultOptions,\n    ...optionOverrides,\n    tags: {\n      ...defaultOptions.tags,\n      ...optionOverrides.tags,\n    },\n    onFormOpen: () =\u003e {\n      optionOverrides.onFormOpen?.();\n      defaultOptions.onFormOpen?.();\n    },\n    onFormClose: () =\u003e {\n      optionOverrides.onFormClose?.();\n      defaultOptions.onFormClose?.();\n    },\n    onSubmitSuccess: (data: FeedbackFormData) =\u003e {\n      optionOverrides.onSubmitSuccess?.(data);\n      defaultOptions.onSubmitSuccess?.(data);\n    },\n    onSubmitError: (error: Error) =\u003e {\n      optionOverrides.onSubmitError?.(error);\n      defaultOptions.onSubmitError?.(error);\n    },\n    onFormSubmitted: () =\u003e {\n      optionOverrides.onFormSubmitted?.();\n      defaultOptions.onFormSubmitted?.();\n    },\n    themeDark: {\n      ...defaultOptions.themeDark,\n      ...optionOverrides.themeDark,\n    },\n    themeLight: {\n      ...defaultOptions.themeLight,\n      ...optionOverrides.themeLight,\n    },\n  };\n}\n","import { DOCUMENT } from '../../constants';\n\n/**\n * Creates \u003cstyle\u003e element for widget actor (button that opens the dialog)\n */\nexport function createActorStyles(styleNonce?: string): HTMLStyleElement {\n  const style = DOCUMENT.createElement('style');\n  style.textContent = `\n.widget__actor {\n  position: fixed;\n  z-index: var(--z-index);\n  margin: var(--page-margin);\n  inset: var(--actor-inset);\n\n  display: flex;\n  align-items: center;\n  gap: 8px;\n  padding: 16px;\n\n  font-family: inherit;\n  font-size: var(--font-size);\n  font-weight: 600;\n  line-height: 1.14em;\n  text-decoration: none;\n\n  background: var(--actor-background, var(--background));\n  border-radius: var(--actor-border-radius, 1.7em/50%);\n  border: var(--actor-border, var(--border));\n  box-shadow: var(--actor-box-shadow, var(--box-shadow));\n  color: var(--actor-color, var(--foreground));\n  fill: var(--actor-color, var(--foreground));\n  cursor: pointer;\n  opacity: 1;\n  transition: transform 0.2s ease-in-out;\n  transform: translate(0, 0) scale(1);\n}\n.widget__actor[aria-hidden=\"true\"] {\n  opacity: 0;\n  pointer-events: none;\n  visibility: hidden;\n  transform: translate(0, 16px) scale(0.98);\n}\n\n.widget__actor:hover {\n  background: var(--actor-hover-background, var(--background));\n  filter: var(--interactive-filter);\n}\n\n.widget__actor svg {\n  width: 1.14em;\n  height: 1.14em;\n}\n\n@media (max-width: 600px) {\n  .widget__actor span {\n    display: none;\n  }\n}\n`;\n\n  if (styleNonce) {\n    style.setAttribute('nonce', styleNonce);\n  }\n\n  return style;\n}\n","/**\n * Helper function to set a dict of attributes on element (w/ specified namespace)\n */\nexport function setAttributesNS\u003cT extends SVGElement\u003e(el: T, attributes: Record\u003cstring, string\u003e): T {\n  Object.entries(attributes).forEach(([key, val]) =\u003e {\n    el.setAttributeNS(null, key, val);\n  });\n  return el;\n}\n","import { WINDOW } from '../../constants';\nimport { setAttributesNS } from '../../util/setAttributesNS';\n\nconst SIZE = 20;\nconst XMLNS = 'http://www.w3.org/2000/svg';\n\n/**\n * Feedback Icon\n */\nexport function FeedbackIcon(): SVGElement {\n  const createElementNS = \u003cK extends keyof SVGElementTagNameMap\u003e(tagName: K): SVGElementTagNameMap[K] =\u003e\n    WINDOW.document.createElementNS(XMLNS, tagName);\n  const svg = setAttributesNS(createElementNS('svg'), {\n    width: `${SIZE}`,\n    height: `${SIZE}`,\n    viewBox: `0 0 ${SIZE} ${SIZE}`,\n    fill: 'var(--actor-color, var(--foreground))',\n  });\n\n  const g = setAttributesNS(createElementNS('g'), {\n    clipPath: 'url(#clip0_57_80)',\n  });\n\n  const path = setAttributesNS(createElementNS('path'), {\n    ['fill-rule']: 'evenodd',\n    ['clip-rule']: 'evenodd',\n    d: 'M15.6622 15H12.3997C12.2129 14.9959 12.031 14.9396 11.8747 14.8375L8.04965 12.2H7.49956V19.1C7.4875 19.3348 7.3888 19.5568 7.22256 19.723C7.05632 19.8892 6.83435 19.9879 6.59956 20H2.04956C1.80193 19.9968 1.56535 19.8969 1.39023 19.7218C1.21511 19.5467 1.1153 19.3101 1.11206 19.0625V12.2H0.949652C0.824431 12.2017 0.700142 12.1783 0.584123 12.1311C0.468104 12.084 0.362708 12.014 0.274155 11.9255C0.185602 11.8369 0.115689 11.7315 0.0685419 11.6155C0.0213952 11.4995 -0.00202913 11.3752 -0.00034808 11.25V3.75C-0.00900498 3.62067 0.0092504 3.49095 0.0532651 3.36904C0.0972798 3.24712 0.166097 3.13566 0.255372 3.04168C0.344646 2.94771 0.452437 2.87327 0.571937 2.82307C0.691437 2.77286 0.82005 2.74798 0.949652 2.75H8.04965L11.8747 0.1625C12.031 0.0603649 12.2129 0.00407221 12.3997 0H15.6622C15.9098 0.00323746 16.1464 0.103049 16.3215 0.278167C16.4966 0.453286 16.5964 0.689866 16.5997 0.9375V3.25269C17.3969 3.42959 18.1345 3.83026 18.7211 4.41679C19.5322 5.22788 19.9878 6.32796 19.9878 7.47502C19.9878 8.62209 19.5322 9.72217 18.7211 10.5333C18.1345 11.1198 17.3969 11.5205 16.5997 11.6974V14.0125C16.6047 14.1393 16.5842 14.2659 16.5395 14.3847C16.4948 14.5035 16.4268 14.6121 16.3394 14.7042C16.252 14.7962 16.147 14.8698 16.0307 14.9206C15.9144 14.9714 15.7891 14.9984 15.6622 15ZM1.89695 10.325H1.88715V4.625H8.33715C8.52423 4.62301 8.70666 4.56654 8.86215 4.4625L12.6872 1.875H14.7247V13.125H12.6872L8.86215 10.4875C8.70666 10.3835 8.52423 10.327 8.33715 10.325H2.20217C2.15205 10.3167 2.10102 10.3125 2.04956 10.3125C1.9981 10.3125 1.94708 10.3167 1.89695 10.325ZM2.98706 12.2V18.1625H5.66206V12.2H2.98706ZM16.5997 9.93612V5.01393C16.6536 5.02355 16.7072 5.03495 16.7605 5.04814C17.1202 5.13709 17.4556 5.30487 17.7425 5.53934C18.0293 5.77381 18.2605 6.06912 18.4192 6.40389C18.578 6.73866 18.6603 7.10452 18.6603 7.47502C18.6603 7.84552 18.578 8.21139 18.4192 8.54616C18.2605 8.88093 18.0293 9.17624 17.7425 9.41071C17.4556 9.64518 17.1202 9.81296 16.7605 9.90191C16.7072 9.91509 16.6536 9.9265 16.5997 9.93612Z',\n  });\n  svg.appendChild(g).appendChild(path);\n\n  const speakerDefs = createElementNS('defs');\n  const speakerClipPathDef = setAttributesNS(createElementNS('clipPath'), {\n    id: 'clip0_57_80',\n  });\n\n  const speakerRect = setAttributesNS(createElementNS('rect'), {\n    width: `${SIZE}`,\n    height: `${SIZE}`,\n    fill: 'white',\n  });\n\n  speakerClipPathDef.appendChild(speakerRect);\n  speakerDefs.appendChild(speakerClipPathDef);\n\n  svg.appendChild(speakerDefs).appendChild(speakerClipPathDef).appendChild(speakerRect);\n\n  return svg;\n}\n","import { DOCUMENT, TRIGGER_LABEL } from '../../constants';\nimport { createActorStyles } from './Actor.css';\nimport { FeedbackIcon } from './FeedbackIcon';\n\nexport interface ActorProps {\n  triggerLabel: string;\n  triggerAriaLabel: string;\n  shadow: ShadowRoot;\n  styleNonce?: string;\n}\n\nexport interface ActorComponent {\n  el: HTMLElement;\n\n  appendToDom: () =\u003e void;\n\n  removeFromDom: () =\u003e void;\n\n  show: () =\u003e void;\n\n  hide: () =\u003e void;\n}\n\n/**\n * The sentry-provided button to open the feedback modal\n */\nexport function Actor({ triggerLabel, triggerAriaLabel, shadow, styleNonce }: ActorProps): ActorComponent {\n  const el = DOCUMENT.createElement('button');\n  el.type = 'button';\n  el.className = 'widget__actor';\n  el.ariaHidden = 'false';\n  el.ariaLabel = triggerAriaLabel || triggerLabel || TRIGGER_LABEL;\n  el.appendChild(FeedbackIcon());\n  if (triggerLabel) {\n    const label = DOCUMENT.createElement('span');\n    label.appendChild(DOCUMENT.createTextNode(triggerLabel));\n    el.appendChild(label);\n  }\n\n  const style = createActorStyles(styleNonce);\n\n  return {\n    el,\n    appendToDom(): void {\n      shadow.appendChild(style);\n      shadow.appendChild(el);\n    },\n    removeFromDom(): void {\n      el.remove();\n      style.remove();\n    },\n    show(): void {\n      el.ariaHidden = 'false';\n    },\n    hide(): void {\n      el.ariaHidden = 'true';\n    },\n  };\n}\n","import type { FeedbackInternalOptions } from '@sentry/core';\nimport { DOCUMENT } from '../constants';\n\nconst PURPLE = 'rgba(88, 74, 192, 1)';\n\ninterface InternalTheme extends NonNullable\u003cFeedbackInternalOptions['themeLight']\u003e {\n  border: string;\n  interactiveFilter: string;\n}\n\nconst DEFAULT_LIGHT: InternalTheme = {\n  foreground: '#2b2233',\n  background: '#ffffff',\n  accentForeground: 'white',\n  accentBackground: PURPLE,\n  successColor: '#268d75',\n  errorColor: '#df3338',\n  border: '1.5px solid rgba(41, 35, 47, 0.13)',\n  boxShadow: '0px 4px 24px 0px rgba(43, 34, 51, 0.12)',\n  outline: '1px auto var(--accent-background)',\n  interactiveFilter: 'brightness(95%)',\n};\nconst DEFAULT_DARK: InternalTheme = {\n  foreground: '#ebe6ef',\n  background: '#29232f',\n  accentForeground: 'white',\n  accentBackground: PURPLE,\n  successColor: '#2da98c',\n  errorColor: '#f55459',\n  border: '1.5px solid rgba(235, 230, 239, 0.15)',\n  boxShadow: '0px 4px 24px 0px rgba(43, 34, 51, 0.12)',\n  outline: '1px auto var(--accent-background)',\n  interactiveFilter: 'brightness(150%)',\n};\n\nfunction getThemedCssVariables(theme: InternalTheme): string {\n  return `\n  --foreground: ${theme.foreground};\n  --background: ${theme.background};\n  --accent-foreground: ${theme.accentForeground};\n  --accent-background: ${theme.accentBackground};\n  --success-color: ${theme.successColor};\n  --error-color: ${theme.errorColor};\n  --border: ${theme.border};\n  --box-shadow: ${theme.boxShadow};\n  --outline: ${theme.outline};\n  --interactive-filter: ${theme.interactiveFilter};\n  `;\n}\n\n/**\n * Creates \u003cstyle\u003e element for widget actor (button that opens the dialog)\n */\nexport function createMainStyles({\n  colorScheme,\n  themeDark,\n  themeLight,\n  styleNonce,\n}: FeedbackInternalOptions): HTMLStyleElement {\n  const style = DOCUMENT.createElement('style');\n  style.textContent = `\n:host {\n  --font-family: system-ui, 'Helvetica Neue', Arial, sans-serif;\n  --font-size: 14px;\n  --z-index: 100000;\n\n  --page-margin: 16px;\n  --inset: auto 0 0 auto;\n  --actor-inset: var(--inset);\n\n  font-family: var(--font-family);\n  font-size: var(--font-size);\n\n  ${colorScheme !== 'system' ? 'color-scheme: only light;' : ''}\n\n  ${getThemedCssVariables(\n    colorScheme === 'dark' ? { ...DEFAULT_DARK, ...themeDark } : { ...DEFAULT_LIGHT, ...themeLight },\n  )}\n}\n\n${\n  colorScheme === 'system'\n    ? `\n@media (prefers-color-scheme: dark) {\n  :host {\n    ${getThemedCssVariables({ ...DEFAULT_DARK, ...themeDark })}\n  }\n}`\n    : ''\n}\n}\n`;\n\n  if (styleNonce) {\n    style.setAttribute('nonce', styleNonce);\n  }\n\n  return style;\n}\n","import type {\n  FeedbackInternalOptions,\n  FeedbackModalIntegration,\n  FeedbackScreenshotIntegration,\n  Integration,\n  IntegrationFn,\n} from '@sentry/core';\nimport { addIntegration, isBrowser, logger } from '@sentry/core';\nimport {\n  ADD_SCREENSHOT_LABEL,\n  CANCEL_BUTTON_LABEL,\n  CONFIRM_BUTTON_LABEL,\n  DOCUMENT,\n  EMAIL_LABEL,\n  EMAIL_PLACEHOLDER,\n  FORM_TITLE,\n  IS_REQUIRED_LABEL,\n  MESSAGE_LABEL,\n  MESSAGE_PLACEHOLDER,\n  NAME_LABEL,\n  NAME_PLACEHOLDER,\n  REMOVE_SCREENSHOT_LABEL,\n  SUBMIT_BUTTON_LABEL,\n  SUCCESS_MESSAGE_TEXT,\n  TRIGGER_LABEL,\n} from '../constants';\nimport { DEBUG_BUILD } from '../util/debug-build';\nimport { isScreenshotSupported } from '../util/isScreenshotSupported';\nimport { mergeOptions } from '../util/mergeOptions';\nimport type { ActorComponent } from './components/Actor';\nimport { Actor } from './components/Actor';\nimport { createMainStyles } from './createMainStyles';\nimport { sendFeedback } from './sendFeedback';\nimport type { OptionalFeedbackConfiguration, OverrideFeedbackConfiguration } from './types';\n\ntype Unsubscribe = () =\u003e void;\n\n/**\n * Allow users to capture user feedback and send it to Sentry.\n */\n\ntype BuilderOptions =\n  | {\n      lazyLoadIntegration?: never;\n      getModalIntegration: () =\u003e IntegrationFn;\n      getScreenshotIntegration: () =\u003e IntegrationFn;\n    }\n  | {\n      // The type here should be `keyof typeof LazyLoadableIntegrations`, but that'll cause a cicrular\n      // dependency with @sentry/core\n      lazyLoadIntegration: (\n        name: 'feedbackModalIntegration' | 'feedbackScreenshotIntegration',\n        scriptNonce?: string,\n      ) =\u003e Promise\u003cIntegrationFn\u003e;\n      getModalIntegration?: never;\n      getScreenshotIntegration?: never;\n    };\n\nexport const buildFeedbackIntegration = ({\n  lazyLoadIntegration,\n  getModalIntegration,\n  getScreenshotIntegration,\n}: BuilderOptions): IntegrationFn\u003c\n  Integration \u0026 {\n    attachTo(el: Element | string, optionOverrides?: OverrideFeedbackConfiguration): Unsubscribe;\n    createForm(\n      optionOverrides?: OverrideFeedbackConfiguration,\n    ): Promise\u003cReturnType\u003cFeedbackModalIntegration['createDialog']\u003e\u003e;\n    createWidget(optionOverrides?: OverrideFeedbackConfiguration): ActorComponent;\n    remove(): void;\n  }\n\u003e =\u003e {\n  const feedbackIntegration = (({\n    // FeedbackGeneralConfiguration\n    id = 'sentry-feedback',\n    autoInject = true,\n    showBranding = true,\n    isEmailRequired = false,\n    isNameRequired = false,\n    showEmail = true,\n    showName = true,\n    enableScreenshot = true,\n    useSentryUser = {\n      email: 'email',\n      name: 'username',\n    },\n    tags,\n    styleNonce,\n    scriptNonce,\n\n    // FeedbackThemeConfiguration\n    colorScheme = 'system',\n    themeLight = {},\n    themeDark = {},\n\n    // FeedbackTextConfiguration\n    addScreenshotButtonLabel = ADD_SCREENSHOT_LABEL,\n    cancelButtonLabel = CANCEL_BUTTON_LABEL,\n    confirmButtonLabel = CONFIRM_BUTTON_LABEL,\n    emailLabel = EMAIL_LABEL,\n    emailPlaceholder = EMAIL_PLACEHOLDER,\n    formTitle = FORM_TITLE,\n    isRequiredLabel = IS_REQUIRED_LABEL,\n    messageLabel = MESSAGE_LABEL,\n    messagePlaceholder = MESSAGE_PLACEHOLDER,\n    nameLabel = NAME_LABEL,\n    namePlaceholder = NAME_PLACEHOLDER,\n    removeScreenshotButtonLabel = REMOVE_SCREENSHOT_LABEL,\n    submitButtonLabel = SUBMIT_BUTTON_LABEL,\n    successMessageText = SUCCESS_MESSAGE_TEXT,\n    triggerLabel = TRIGGER_LABEL,\n    triggerAriaLabel = '',\n\n    // FeedbackCallbacks\n    onFormOpen,\n    onFormClose,\n    onSubmitSuccess,\n    onSubmitError,\n    onFormSubmitted,\n  }: OptionalFeedbackConfiguration = {}) =\u003e {\n    const _options = {\n      id,\n      autoInject,\n      showBranding,\n      isEmailRequired,\n      isNameRequired,\n      showEmail,\n      showName,\n      enableScreenshot,\n      useSentryUser,\n      tags,\n      styleNonce,\n      scriptNonce,\n\n      colorScheme,\n      themeDark,\n      themeLight,\n\n      triggerLabel,\n      triggerAriaLabel,\n      cancelButtonLabel,\n      submitButtonLabel,\n      confirmButtonLabel,\n      formTitle,\n      emailLabel,\n      emailPlaceholder,\n      messageLabel,\n      messagePlaceholder,\n      nameLabel,\n      namePlaceholder,\n      successMessageText,\n      isRequiredLabel,\n      addScreenshotButtonLabel,\n      removeScreenshotButtonLabel,\n\n      onFormClose,\n      onFormOpen,\n      onSubmitError,\n      onSubmitSuccess,\n      onFormSubmitted,\n    };\n\n    let _shadow: ShadowRoot | null = null;\n    let _subscriptions: Unsubscribe[] = [];\n\n    /**\n     * Get the shadow root where we will append css\n     */\n    const _createShadow = (options: FeedbackInternalOptions): ShadowRoot =\u003e {\n      if (!_shadow) {\n        const host = DOCUMENT.createElement('div');\n        host.id = String(options.id);\n        DOCUMENT.body.appendChild(host);\n\n        _shadow = host.attachShadow({ mode: 'open' });\n        _shadow.appendChild(createMainStyles(options));\n      }\n      return _shadow as ShadowRoot;\n    };\n\n    const _loadAndRenderDialog = async (\n      options: FeedbackInternalOptions,\n    ): Promise\u003cReturnType\u003cFeedbackModalIntegration['createDialog']\u003e\u003e =\u003e {\n      const screenshotRequired = options.enableScreenshot \u0026\u0026 isScreenshotSupported();\n\n      let modalIntegration: FeedbackModalIntegration;\n      let screenshotIntegration: FeedbackScreenshotIntegration | undefined;\n\n      try {\n        const modalIntegrationFn = getModalIntegration\n          ? getModalIntegration()\n          : await lazyLoadIntegration('feedbackModalIntegration', scriptNonce);\n        modalIntegration = modalIntegrationFn() as FeedbackModalIntegration;\n        addIntegration(modalIntegration);\n      } catch {\n        DEBUG_BUILD \u0026\u0026\n          logger.error(\n            '[Feedback] Error when trying to load feedback integrations. Try using `feedbackSyncIntegration` in your `Sentry.init`.',\n          );\n        throw new Error('[Feedback] Missing feedback modal integration!');\n      }\n\n      try {\n        const screenshotIntegrationFn = screenshotRequired\n          ? getScreenshotIntegration\n            ? getScreenshotIntegration()\n            : await lazyLoadIntegration('feedbackScreenshotIntegration', scriptNonce)\n          : undefined;\n\n        if (screenshotIntegrationFn) {\n          screenshotIntegration = screenshotIntegrationFn() as FeedbackScreenshotIntegration;\n          addIntegration(screenshotIntegration);\n        }\n      } catch {\n        DEBUG_BUILD \u0026\u0026\n          logger.error('[Feedback] Missing feedback screenshot integration. Proceeding without screenshots.');\n      }\n\n      const dialog = modalIntegration.createDialog({\n        options: {\n          ...options,\n          onFormClose: () =\u003e {\n            dialog?.close();\n            options.onFormClose?.();\n          },\n          onFormSubmitted: () =\u003e {\n            dialog?.close();\n            options.onFormSubmitted?.();\n          },\n        },\n        screenshotIntegration,\n        sendFeedback,\n        shadow: _createShadow(options),\n      });\n\n      return dialog;\n    };\n\n    const _attachTo = (el: Element | string, optionOverrides: OverrideFeedbackConfiguration = {}): Unsubscribe =\u003e {\n      const mergedOptions = mergeOptions(_options, optionOverrides);\n\n      const targetEl =\n        typeof el === 'string' ? DOCUMENT.querySelector(el) : typeof el.addEventListener === 'function' ? el : null;\n\n      if (!targetEl) {\n        DEBUG_BUILD \u0026\u0026 logger.error('[Feedback] Unable to attach to target element');\n        throw new Error('Unable to attach to target element');\n      }\n\n      let dialog: ReturnType\u003cFeedbackModalIntegration['createDialog']\u003e | null = null;\n      const handleClick = async (): Promise\u003cvoid\u003e =\u003e {\n        if (!dialog) {\n          dialog = await _loadAndRenderDialog({\n            ...mergedOptions,\n            onFormSubmitted: () =\u003e {\n              dialog?.removeFromDom();\n              mergedOptions.onFormSubmitted?.();\n            },\n          });\n        }\n        dialog.appendToDom();\n        dialog.open();\n      };\n      targetEl.addEventListener('click', handleClick);\n      const unsubscribe = (): void =\u003e {\n        _subscriptions = _subscriptions.filter(sub =\u003e sub !== unsubscribe);\n        dialog?.removeFromDom();\n        dialog = null;\n        targetEl.removeEventListener('click', handleClick);\n      };\n      _subscriptions.push(unsubscribe);\n      return unsubscribe;\n    };\n\n    const _createActor = (optionOverrides: OverrideFeedbackConfiguration = {}): ActorComponent =\u003e {\n      const mergedOptions = mergeOptions(_options, optionOverrides);\n      const shadow = _createShadow(mergedOptions);\n      const actor = Actor({\n        triggerLabel: mergedOptions.triggerLabel,\n        triggerAriaLabel: mergedOptions.triggerAriaLabel,\n        shadow,\n        styleNonce,\n      });\n      _attachTo(actor.el, {\n        ...mergedOptions,\n        onFormOpen() {\n          actor.hide();\n        },\n        onFormClose() {\n          actor.show();\n        },\n        onFormSubmitted() {\n          actor.show();\n        },\n      });\n      return actor;\n    };\n\n    return {\n      name: 'Feedback',\n      setupOnce() {\n        if (!isBrowser() || !_options.autoInject) {\n          return;\n        }\n\n        if (DOCUMENT.readyState === 'loading') {\n          DOCUMENT.addEventListener('DOMContentLoaded', () =\u003e _createActor().appendToDom());\n        } else {\n          _createActor().appendToDom();\n        }\n      },\n\n      /**\n       * Adds click listener to the element to open a feedback dialog\n       *\n       * The returned function can be used to remove the click listener\n       */\n      attachTo: _attachTo,\n\n      /**\n       * Creates a new widget which is composed of a Button which triggers a Dialog.\n       * Accepts partial options to override any options passed to constructor.\n       */\n      createWidget(optionOverrides: OverrideFeedbackConfiguration = {}): ActorComponent {\n        const actor = _createActor(mergeOptions(_options, optionOverrides));\n        actor.appendToDom();\n        return actor;\n      },\n\n      /**\n       * Creates a new Form which you can\n       * Accepts partial options to override any options passed to constructor.\n       */\n      async createForm(\n        optionOverrides: OverrideFeedbackConfiguration = {},\n      ): Promise\u003cReturnType\u003cFeedbackModalIntegration['createDialog']\u003e\u003e {\n        return _loadAndRenderDialog(mergeOptions(_options, optionOverrides));\n      },\n\n      /**\n       * Removes the Feedback integration (including host, shadow DOM, and all widgets)\n       */\n      remove(): void {\n        if (_shadow) {\n          _shadow.parentElement?.remove();\n          _shadow = null;\n        }\n        // Remove any lingering subscriptions\n        _subscriptions.forEach(sub =\u003e sub());\n        _subscriptions = [];\n      },\n    };\n  }) satisfies IntegrationFn;\n\n  return feedbackIntegration;\n};\n","import { getClient } from '@sentry/core';\nimport type { buildFeedbackIntegration } from './integration';\n\ntype FeedbackIntegration = ReturnType\u003ctypeof buildFeedbackIntegration\u003e;\n\n/**\n * This is a small utility to get a type-safe instance of the Feedback integration.\n */\nexport function getFeedback(): ReturnType\u003cFeedbackIntegration\u003e | undefined {\n  const client = getClient();\n  return client?.getIntegrationByName\u003cReturnType\u003cFeedbackIntegration\u003e\u003e('Feedback');\n}\n","var n,l,u,t,i,o,r,f,e,c={},s=[],a=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i,h=Array.isArray;function v(n,l){for(var u in l)n[u]=l[u];return n}function p(n){var l=n.parentNode;l\u0026\u0026l.removeChild(n)}function y(l,u,t){var i,o,r,f={};for(r in u)\"key\"==r?i=u[r]:\"ref\"==r?o=u[r]:f[r]=u[r];if(arguments.length\u003e2\u0026\u0026(f.children=arguments.length\u003e3?n.call(arguments,2):t),\"function\"==typeof l\u0026\u0026null!=l.defaultProps)for(r in l.defaultProps)void 0===f[r]\u0026\u0026(f[r]=l.defaultProps[r]);return d(l,f,i,o,null)}function d(n,t,i,o,r){var f={type:n,props:t,key:i,ref:o,__k:null,__:null,__b:0,__e:null,__d:void 0,__c:null,constructor:void 0,__v:null==r?++u:r,__i:-1,__u:0};return null==r\u0026\u0026null!=l.vnode\u0026\u0026l.vnode(f),f}function _(){return{current:null}}function g(n){return n.children}function b(n,l){this.props=n,this.context=l}function m(n,l){if(null==l)return n.__?m(n.__,n.__i+1):null;for(var u;l\u003cn.__k.length;l++)if(null!=(u=n.__k[l])\u0026\u0026null!=u.__e)return u.__e;return\"function\"==typeof n.type?m(n):null}function w(n,u,t){var i,o=n.__v,r=o.__e,f=n.__P;if(f)return(i=v({},o)).__v=o.__v+1,l.vnode\u0026\u0026l.vnode(i),M(f,i,o,n.__n,void 0!==f.ownerSVGElement,32\u0026o.__u?[r]:null,u,null==r?m(o):r,!!(32\u0026o.__u),t),i.__.__k[i.__i]=i,i.__d=void 0,i.__e!=r\u0026\u0026k(i),i}function k(n){var l,u;if(null!=(n=n.__)\u0026\u0026null!=n.__c){for(n.__e=n.__c.base=null,l=0;l\u003cn.__k.length;l++)if(null!=(u=n.__k[l])\u0026\u0026null!=u.__e){n.__e=n.__c.base=u.__e;break}return k(n)}}function x(n){(!n.__d\u0026\u0026(n.__d=!0)\u0026\u0026i.push(n)\u0026\u0026!C.__r++||o!==l.debounceRendering)\u0026\u0026((o=l.debounceRendering)||r)(C)}function C(){var n,u,t,o=[],r=[];for(i.sort(f);n=i.shift();)n.__d\u0026\u0026(t=i.length,u=w(n,o,r)||u,0===t||i.length\u003et?(j(o,u,r),r.length=o.length=0,u=void 0,i.sort(f)):u\u0026\u0026l.__c\u0026\u0026l.__c(u,s));u\u0026\u0026j(o,u,r),C.__r=0}function P(n,l,u,t,i,o,r,f,e,a,h){var v,p,y,d,_,g=t\u0026\u0026t.__k||s,b=l.length;for(u.__d=e,S(u,l,g),e=u.__d,v=0;v\u003cb;v++)null!=(y=u.__k[v])\u0026\u0026\"boolean\"!=typeof y\u0026\u0026\"function\"!=typeof y\u0026\u0026(p=-1===y.__i?c:g[y.__i]||c,y.__i=v,M(n,y,p,i,o,r,f,e,a,h),d=y.__e,y.ref\u0026\u0026p.ref!=y.ref\u0026\u0026(p.ref\u0026\u0026N(p.ref,null,y),h.push(y.ref,y.__c||d,y)),null==_\u0026\u0026null!=d\u0026\u0026(_=d),65536\u0026y.__u||p.__k===y.__k?e=$(y,e,n):\"function\"==typeof y.type\u0026\u0026void 0!==y.__d?e=y.__d:d\u0026\u0026(e=d.nextSibling),y.__d=void 0,y.__u\u0026=-196609);u.__d=e,u.__e=_}function S(n,l,u){var t,i,o,r,f,e=l.length,c=u.length,s=c,a=0;for(n.__k=[],t=0;t\u003ce;t++)null!=(i=n.__k[t]=null==(i=l[t])||\"boolean\"==typeof i||\"function\"==typeof i?null:\"string\"==typeof i||\"number\"==typeof i||\"bigint\"==typeof i||i.constructor==String?d(null,i,null,null,i):h(i)?d(g,{children:i},null,null,null):void 0===i.constructor\u0026\u0026i.__b\u003e0?d(i.type,i.props,i.key,i.ref?i.ref:null,i.__v):i)?(i.__=n,i.__b=n.__b+1,f=I(i,u,r=t+a,s),i.__i=f,o=null,-1!==f\u0026\u0026(s--,(o=u[f])\u0026\u0026(o.__u|=131072)),null==o||null===o.__v?(-1==f\u0026\u0026a--,\"function\"!=typeof i.type\u0026\u0026(i.__u|=65536)):f!==r\u0026\u0026(f===r+1?a++:f\u003er?s\u003ee-r?a+=f-r:a--:a=f\u003cr\u0026\u0026f==r-1?f-r:0,f!==t+a\u0026\u0026(i.__u|=65536))):(o=u[t])\u0026\u0026null==o.key\u0026\u0026o.__e\u0026\u0026(o.__e==n.__d\u0026\u0026(n.__d=m(o)),O(o,o,!1),u[t]=null,s--);if(s)for(t=0;t\u003cc;t++)null!=(o=u[t])\u0026\u00260==(131072\u0026o.__u)\u0026\u0026(o.__e==n.__d\u0026\u0026(n.__d=m(o)),O(o,o))}function $(n,l,u){var t,i;if(\"function\"==typeof n.type){for(t=n.__k,i=0;t\u0026\u0026i\u003ct.length;i++)t[i]\u0026\u0026(t[i].__=n,l=$(t[i],l,u));return l}n.__e!=l\u0026\u0026(u.insertBefore(n.__e,l||null),l=n.__e);do{l=l\u0026\u0026l.nextSibling}while(null!=l\u0026\u00268===l.nodeType);return l}function H(n,l){return l=l||[],null==n||\"boolean\"==typeof n||(h(n)?n.some(function(n){H(n,l)}):l.push(n)),l}function I(n,l,u,t){var i=n.key,o=n.type,r=u-1,f=u+1,e=l[u];if(null===e||e\u0026\u0026i==e.key\u0026\u0026o===e.type)return u;if(t\u003e(null!=e\u0026\u00260==(131072\u0026e.__u)?1:0))for(;r\u003e=0||f\u003cl.length;){if(r\u003e=0){if((e=l[r])\u0026\u00260==(131072\u0026e.__u)\u0026\u0026i==e.key\u0026\u0026o===e.type)return r;r--}if(f\u003cl.length){if((e=l[f])\u0026\u00260==(131072\u0026e.__u)\u0026\u0026i==e.key\u0026\u0026o===e.type)return f;f++}}return-1}function T(n,l,u){\"-\"===l[0]?n.setProperty(l,null==u?\"\":u):n[l]=null==u?\"\":\"number\"!=typeof u||a.test(l)?u:u+\"px\"}function A(n,l,u,t,i){var o;n:if(\"style\"===l)if(\"string\"==typeof u)n.style.cssText=u;else{if(\"string\"==typeof t\u0026\u0026(n.style.cssText=t=\"\"),t)for(l in t)u\u0026\u0026l in u||T(n.style,l,\"\");if(u)for(l in u)t\u0026\u0026u[l]===t[l]||T(n.style,l,u[l])}else if(\"o\"===l[0]\u0026\u0026\"n\"===l[1])o=l!==(l=l.replace(/(PointerCapture)$|Capture$/i,\"$1\")),l=l.toLowerCase()in n?l.toLowerCase().slice(2):l.slice(2),n.l||(n.l={}),n.l[l+o]=u,u?t?u.u=t.u:(u.u=Date.now(),n.addEventListener(l,o?L:D,o)):n.removeEventListener(l,o?L:D,o);else{if(i)l=l.replace(/xlink(H|:h)/,\"h\").replace(/sName$/,\"s\");else if(\"width\"!==l\u0026\u0026\"height\"!==l\u0026\u0026\"href\"!==l\u0026\u0026\"list\"!==l\u0026\u0026\"form\"!==l\u0026\u0026\"tabIndex\"!==l\u0026\u0026\"download\"!==l\u0026\u0026\"rowSpan\"!==l\u0026\u0026\"colSpan\"!==l\u0026\u0026\"role\"!==l\u0026\u0026l in n)try{n[l]=null==u?\"\":u;break n}catch(n){}\"function\"==typeof u||(null==u||!1===u\u0026\u0026\"-\"!==l[4]?n.removeAttribute(l):n.setAttribute(l,u))}}function D(n){if(this.l){var u=this.l[n.type+!1];if(n.t){if(n.t\u003c=u.u)return}else n.t=Date.now();return u(l.event?l.event(n):n)}}function L(n){if(this.l)return this.l[n.type+!0](l.event?l.event(n):n)}function M(n,u,t,i,o,r,f,e,c,s){var a,p,y,d,_,m,w,k,x,C,S,$,H,I,T,A=u.type;if(void 0!==u.constructor)return null;128\u0026t.__u\u0026\u0026(c=!!(32\u0026t.__u),r=[e=u.__e=t.__e]),(a=l.__b)\u0026\u0026a(u);n:if(\"function\"==typeof A)try{if(k=u.props,x=(a=A.contextType)\u0026\u0026i[a.__c],C=a?x?x.props.value:a.__:i,t.__c?w=(p=u.__c=t.__c).__=p.__E:(\"prototype\"in A\u0026\u0026A.prototype.render?u.__c=p=new A(k,C):(u.__c=p=new b(k,C),p.constructor=A,p.render=q),x\u0026\u0026x.sub(p),p.props=k,p.state||(p.state={}),p.context=C,p.__n=i,y=p.__d=!0,p.__h=[],p._sb=[]),null==p.__s\u0026\u0026(p.__s=p.state),null!=A.getDerivedStateFromProps\u0026\u0026(p.__s==p.state\u0026\u0026(p.__s=v({},p.__s)),v(p.__s,A.getDerivedStateFromProps(k,p.__s))),d=p.props,_=p.state,p.__v=u,y)null==A.getDerivedStateFromProps\u0026\u0026null!=p.componentWillMount\u0026\u0026p.componentWillMount(),null!=p.componentDidMount\u0026\u0026p.__h.push(p.componentDidMount);else{if(null==A.getDerivedStateFromProps\u0026\u0026k!==d\u0026\u0026null!=p.componentWillReceiveProps\u0026\u0026p.componentWillReceiveProps(k,C),!p.__e\u0026\u0026(null!=p.shouldComponentUpdate\u0026\u0026!1===p.shouldComponentUpdate(k,p.__s,C)||u.__v===t.__v)){for(u.__v!==t.__v\u0026\u0026(p.props=k,p.state=p.__s,p.__d=!1),u.__e=t.__e,u.__k=t.__k,u.__k.forEach(function(n){n\u0026\u0026(n.__=u)}),S=0;S\u003cp._sb.length;S++)p.__h.push(p._sb[S]);p._sb=[],p.__h.length\u0026\u0026f.push(p);break n}null!=p.componentWillUpdate\u0026\u0026p.componentWillUpdate(k,p.__s,C),null!=p.componentDidUpdate\u0026\u0026p.__h.push(function(){p.componentDidUpdate(d,_,m)})}if(p.context=C,p.props=k,p.__P=n,p.__e=!1,$=l.__r,H=0,\"prototype\"in A\u0026\u0026A.prototype.render){for(p.state=p.__s,p.__d=!1,$\u0026\u0026$(u),a=p.render(p.props,p.state,p.context),I=0;I\u003cp._sb.length;I++)p.__h.push(p._sb[I]);p._sb=[]}else do{p.__d=!1,$\u0026\u0026$(u),a=p.render(p.props,p.state,p.context),p.state=p.__s}while(p.__d\u0026\u0026++H\u003c25);p.state=p.__s,null!=p.getChildContext\u0026\u0026(i=v(v({},i),p.getChildContext())),y||null==p.getSnapshotBeforeUpdate||(m=p.getSnapshotBeforeUpdate(d,_)),P(n,h(T=null!=a\u0026\u0026a.type===g\u0026\u0026null==a.key?a.props.children:a)?T:[T],u,t,i,o,r,f,e,c,s),p.base=u.__e,u.__u\u0026=-161,p.__h.length\u0026\u0026f.push(p),w\u0026\u0026(p.__E=p.__=null)}catch(n){u.__v=null,c||null!=r?(u.__e=e,u.__u|=c?160:32,r[r.indexOf(e)]=null):(u.__e=t.__e,u.__k=t.__k),l.__e(n,u,t)}else null==r\u0026\u0026u.__v===t.__v?(u.__k=t.__k,u.__e=t.__e):u.__e=z(t.__e,u,t,i,o,r,f,c,s);(a=l.diffed)\u0026\u0026a(u)}function j(n,u,t){for(var i=0;i\u003ct.length;i++)N(t[i],t[++i],t[++i]);l.__c\u0026\u0026l.__c(u,n),n.some(function(u){try{n=u.__h,u.__h=[],n.some(function(n){n.call(u)})}catch(n){l.__e(n,u.__v)}})}function z(l,u,t,i,o,r,f,e,s){var a,v,y,d,_,g,b,w=t.props,k=u.props,x=u.type;if(\"svg\"===x\u0026\u0026(o=!0),null!=r)for(a=0;a\u003cr.length;a++)if((_=r[a])\u0026\u0026\"setAttribute\"in _==!!x\u0026\u0026(x?_.localName===x:3===_.nodeType)){l=_,r[a]=null;break}if(null==l){if(null===x)return document.createTextNode(k);l=o?document.createElementNS(\"http://www.w3.org/2000/svg\",x):document.createElement(x,k.is\u0026\u0026k),r=null,e=!1}if(null===x)w===k||e\u0026\u0026l.data===k||(l.data=k);else{if(r=r\u0026\u0026n.call(l.childNodes),w=t.props||c,!e\u0026\u0026null!=r)for(w={},a=0;a\u003cl.attributes.length;a++)w[(_=l.attributes[a]).name]=_.value;for(a in w)_=w[a],\"children\"==a||(\"dangerouslySetInnerHTML\"==a?y=_:\"key\"===a||a in k||A(l,a,null,_,o));for(a in k)_=k[a],\"children\"==a?d=_:\"dangerouslySetInnerHTML\"==a?v=_:\"value\"==a?g=_:\"checked\"==a?b=_:\"key\"===a||e\u0026\u0026\"function\"!=typeof _||w[a]===_||A(l,a,_,w[a],o);if(v)e||y\u0026\u0026(v.__html===y.__html||v.__html===l.innerHTML)||(l.innerHTML=v.__html),u.__k=[];else if(y\u0026\u0026(l.innerHTML=\"\"),P(l,h(d)?d:[d],u,t,i,o\u0026\u0026\"foreignObject\"!==x,r,f,r?r[0]:t.__k\u0026\u0026m(t,0),e,s),null!=r)for(a=r.length;a--;)null!=r[a]\u0026\u0026p(r[a]);e||(a=\"value\",void 0!==g\u0026\u0026(g!==l[a]||\"progress\"===x\u0026\u0026!g||\"option\"===x\u0026\u0026g!==w[a])\u0026\u0026A(l,a,g,w[a],!1),a=\"checked\",void 0!==b\u0026\u0026b!==l[a]\u0026\u0026A(l,a,b,w[a],!1))}return l}function N(n,u,t){try{\"function\"==typeof n?n(u):n.current=u}catch(n){l.__e(n,t)}}function O(n,u,t){var i,o;if(l.unmount\u0026\u0026l.unmount(n),(i=n.ref)\u0026\u0026(i.current\u0026\u0026i.current!==n.__e||N(i,null,u)),null!=(i=n.__c)){if(i.componentWillUnmount)try{i.componentWillUnmount()}catch(n){l.__e(n,u)}i.base=i.__P=null,n.__c=void 0}if(i=n.__k)for(o=0;o\u003ci.length;o++)i[o]\u0026\u0026O(i[o],u,t||\"function\"!=typeof n.type);t||null==n.__e||p(n.__e),n.__=n.__e=n.__d=void 0}function q(n,l,u){return this.constructor(n,u)}function B(u,t,i){var o,r,f,e;l.__\u0026\u0026l.__(u,t),r=(o=\"function\"==typeof i)?null:i\u0026\u0026i.__k||t.__k,f=[],e=[],M(t,u=(!o\u0026\u0026i||t).__k=y(g,null,[u]),r||c,c,void 0!==t.ownerSVGElement,!o\u0026\u0026i?[i]:r?null:t.firstChild?n.call(t.childNodes):null,f,!o\u0026\u0026i?i:r?r.__e:t.firstChild,o,e),u.__d=void 0,j(f,u,e)}function E(n,l){B(n,l,E)}function F(l,u,t){var i,o,r,f,e=v({},l.props);for(r in l.type\u0026\u0026l.type.defaultProps\u0026\u0026(f=l.type.defaultProps),u)\"key\"==r?i=u[r]:\"ref\"==r?o=u[r]:e[r]=void 0===u[r]\u0026\u0026void 0!==f?f[r]:u[r];return arguments.length\u003e2\u0026\u0026(e.children=arguments.length\u003e3?n.call(arguments,2):t),d(l.type,e,i||l.key,o||l.ref,null)}function G(n,l){var u={__c:l=\"__cC\"+e++,__:n,Consumer:function(n,l){return n.children(l)},Provider:function(n){var u,t;return this.getChildContext||(u=[],(t={})[l]=this,this.getChildContext=function(){return t},this.shouldComponentUpdate=function(n){this.props.value!==n.value\u0026\u0026u.some(function(n){n.__e=!0,x(n)})},this.sub=function(n){u.push(n);var l=n.componentWillUnmount;n.componentWillUnmount=function(){u.splice(u.indexOf(n),1),l\u0026\u0026l.call(n)}}),n.children}};return u.Provider.__=u.Consumer.contextType=u}n=s.slice,l={__e:function(n,l,u,t){for(var i,o,r;l=l.__;)if((i=l.__c)\u0026\u0026!i.__)try{if((o=i.constructor)\u0026\u0026null!=o.getDerivedStateFromError\u0026\u0026(i.setState(o.getDerivedStateFromError(n)),r=i.__d),null!=i.componentDidCatch\u0026\u0026(i.componentDidCatch(n,t||{}),r=i.__d),r)return i.__E=i}catch(l){n=l}throw n}},u=0,t=function(n){return null!=n\u0026\u0026null==n.constructor},b.prototype.setState=function(n,l){var u;u=null!=this.__s\u0026\u0026this.__s!==this.state?this.__s:this.__s=v({},this.state),\"function\"==typeof n\u0026\u0026(n=n(v({},u),this.props)),n\u0026\u0026v(u,n),null!=n\u0026\u0026this.__v\u0026\u0026(l\u0026\u0026this._sb.push(l),x(this))},b.prototype.forceUpdate=function(n){this.__v\u0026\u0026(this.__e=!0,n\u0026\u0026this.__h.push(n),x(this))},b.prototype.render=g,i=[],r=\"function\"==typeof Promise?Promise.prototype.then.bind(Promise.resolve()):setTimeout,f=function(n,l){return n.__v.__b-l.__v.__b},C.__r=0,e=0;export{b as Component,g as Fragment,F as cloneElement,G as createContext,y as createElement,_ as createRef,y as h,E as hydrate,t as isValidElement,l as options,B as render,H as toChildArray};\n//# sourceMappingURL=preact.module.js.map\n","import{options as n}from\"preact\";var t,r,u,i,o=0,f=[],c=[],e=n,a=e.__b,v=e.__r,l=e.diffed,m=e.__c,s=e.unmount,d=e.__;function h(n,t){e.__h\u0026\u0026e.__h(r,n,o||t),o=0;var u=r.__H||(r.__H={__:[],__h:[]});return n\u003e=u.__.length\u0026\u0026u.__.push({__V:c}),u.__[n]}function p(n){return o=1,y(D,n)}function y(n,u,i){var o=h(t++,2);if(o.t=n,!o.__c\u0026\u0026(o.__=[i?i(u):D(void 0,u),function(n){var t=o.__N?o.__N[0]:o.__[0],r=o.t(t,n);t!==r\u0026\u0026(o.__N=[r,o.__[1]],o.__c.setState({}))}],o.__c=r,!r.u)){var f=function(n,t,r){if(!o.__c.__H)return!0;var u=o.__c.__H.__.filter(function(n){return!!n.__c});if(u.every(function(n){return!n.__N}))return!c||c.call(this,n,t,r);var i=!1;return u.forEach(function(n){if(n.__N){var t=n.__[0];n.__=n.__N,n.__N=void 0,t!==n.__[0]\u0026\u0026(i=!0)}}),!(!i\u0026\u0026o.__c.props===n)\u0026\u0026(!c||c.call(this,n,t,r))};r.u=!0;var c=r.shouldComponentUpdate,e=r.componentWillUpdate;r.componentWillUpdate=function(n,t,r){if(this.__e){var u=c;c=void 0,f(n,t,r),c=u}e\u0026\u0026e.call(this,n,t,r)},r.shouldComponentUpdate=f}return o.__N||o.__}function _(n,u){var i=h(t++,3);!e.__s\u0026\u0026C(i.__H,u)\u0026\u0026(i.__=n,i.i=u,r.__H.__h.push(i))}function A(n,u){var i=h(t++,4);!e.__s\u0026\u0026C(i.__H,u)\u0026\u0026(i.__=n,i.i=u,r.__h.push(i))}function F(n){return o=5,q(function(){return{current:n}},[])}function T(n,t,r){o=6,A(function(){return\"function\"==typeof n?(n(t()),function(){return n(null)}):n?(n.current=t(),function(){return n.current=null}):void 0},null==r?r:r.concat(n))}function q(n,r){var u=h(t++,7);return C(u.__H,r)?(u.__V=n(),u.i=r,u.__h=n,u.__V):u.__}function x(n,t){return o=8,q(function(){return n},t)}function P(n){var u=r.context[n.__c],i=h(t++,9);return i.c=n,u?(null==i.__\u0026\u0026(i.__=!0,u.sub(r)),u.props.value):n.__}function V(n,t){e.useDebugValue\u0026\u0026e.useDebugValue(t?t(n):n)}function b(n){var u=h(t++,10),i=p();return u.__=n,r.componentDidCatch||(r.componentDidCatch=function(n,t){u.__\u0026\u0026u.__(n,t),i[1](n)}),[i[0],function(){i[1](void 0)}]}function g(){var n=h(t++,11);if(!n.__){for(var u=r.__v;null!==u\u0026\u0026!u.__m\u0026\u0026null!==u.__;)u=u.__;var i=u.__m||(u.__m=[0,0]);n.__=\"P\"+i[0]+\"-\"+i[1]++}return n.__}function j(){for(var n;n=f.shift();)if(n.__P\u0026\u0026n.__H)try{n.__H.__h.forEach(z),n.__H.__h.forEach(B),n.__H.__h=[]}catch(t){n.__H.__h=[],e.__e(t,n.__v)}}e.__b=function(n){r=null,a\u0026\u0026a(n)},e.__=function(n,t){t.__k\u0026\u0026t.__k.__m\u0026\u0026(n.__m=t.__k.__m),d\u0026\u0026d(n,t)},e.__r=function(n){v\u0026\u0026v(n),t=0;var i=(r=n.__c).__H;i\u0026\u0026(u===r?(i.__h=[],r.__h=[],i.__.forEach(function(n){n.__N\u0026\u0026(n.__=n.__N),n.__V=c,n.__N=n.i=void 0})):(i.__h.forEach(z),i.__h.forEach(B),i.__h=[],t=0)),u=r},e.diffed=function(n){l\u0026\u0026l(n);var t=n.__c;t\u0026\u0026t.__H\u0026\u0026(t.__H.__h.length\u0026\u0026(1!==f.push(t)\u0026\u0026i===e.requestAnimationFrame||((i=e.requestAnimationFrame)||w)(j)),t.__H.__.forEach(function(n){n.i\u0026\u0026(n.__H=n.i),n.__V!==c\u0026\u0026(n.__=n.__V),n.i=void 0,n.__V=c})),u=r=null},e.__c=function(n,t){t.some(function(n){try{n.__h.forEach(z),n.__h=n.__h.filter(function(n){return!n.__||B(n)})}catch(r){t.some(function(n){n.__h\u0026\u0026(n.__h=[])}),t=[],e.__e(r,n.__v)}}),m\u0026\u0026m(n,t)},e.unmount=function(n){s\u0026\u0026s(n);var t,r=n.__c;r\u0026\u0026r.__H\u0026\u0026(r.__H.__.forEach(function(n){try{z(n)}catch(n){t=n}}),r.__H=void 0,t\u0026\u0026e.__e(t,r.__v))};var k=\"function\"==typeof requestAnimationFrame;function w(n){var t,r=function(){clearTimeout(u),k\u0026\u0026cancelAnimationFrame(t),setTimeout(n)},u=setTimeout(r,100);k\u0026\u0026(t=requestAnimationFrame(r))}function z(n){var t=r,u=n.__c;\"function\"==typeof u\u0026\u0026(n.__c=void 0,u()),r=t}function B(n){var t=r;n.__c=n.__(),r=t}function C(n,t){return!n||n.length!==t.length||t.some(function(t,r){return t!==n[r]})}function D(n,t){return\"function\"==typeof t?t(n):t}export{x as useCallback,P as useContext,V as useDebugValue,_ as useEffect,b as useErrorBoundary,g as useId,T as useImperativeHandle,A as useLayoutEffect,q as useMemo,y as useReducer,F as useRef,p as useState};\n//# sourceMappingURL=hooks.module.js.map\n","import { DOCUMENT } from '../../constants';\nimport { setAttributesNS } from '../../util/setAttributesNS';\n\nconst XMLNS = 'http://www.w3.org/2000/svg';\n\n/**\n * Sentry Logo\n */\nexport function SentryLogo(): SVGElement {\n  const createElementNS = \u003cK extends keyof SVGElementTagNameMap\u003e(tagName: K): SVGElementTagNameMap[K] =\u003e\n    DOCUMENT.createElementNS(XMLNS, tagName);\n  const svg = setAttributesNS(createElementNS('svg'), {\n    width: '32',\n    height: '30',\n    viewBox: '0 0 72 66',\n    fill: 'inherit',\n  });\n\n  const path = setAttributesNS(createElementNS('path'), {\n    transform: 'translate(11, 11)',\n    d: 'M29,2.26a4.67,4.67,0,0,0-8,0L14.42,13.53A32.21,32.21,0,0,1,32.17,40.19H27.55A27.68,27.68,0,0,0,12.09,17.47L6,28a15.92,15.92,0,0,1,9.23,12.17H4.62A.76.76,0,0,1,4,39.06l2.94-5a10.74,10.74,0,0,0-3.36-1.9l-2.91,5a4.54,4.54,0,0,0,1.69,6.24A4.66,4.66,0,0,0,4.62,44H19.15a19.4,19.4,0,0,0-8-17.31l2.31-4A23.87,23.87,0,0,1,23.76,44H36.07a35.88,35.88,0,0,0-16.41-31.8l4.67-8a.77.77,0,0,1,1.05-.27c.53.29,20.29,34.77,20.66,35.17a.76.76,0,0,1-.68,1.13H40.6q.09,1.91,0,3.81h4.78A4.59,4.59,0,0,0,50,39.43a4.49,4.49,0,0,0-.62-2.28Z',\n  });\n  svg.appendChild(path);\n\n  return svg;\n}\n","import type { FeedbackInternalOptions } from '@sentry/core';\nimport type { VNode } from 'preact';\nimport { h } from 'preact'; // eslint-disable-line @typescript-eslint/no-unused-vars\nimport { useMemo } from 'preact/hooks';\nimport { SentryLogo } from './SentryLogo';\n\nexport interface Props {\n  options: FeedbackInternalOptions;\n}\n\nexport function DialogHeader({ options }: Props): VNode {\n  const logoHtml = useMemo(() =\u003e ({ __html: SentryLogo().outerHTML }), []);\n\n  return (\n    \u003ch2 class=\"dialog__header\"\u003e\n      \u003cspan class=\"dialog__title\"\u003e{options.formTitle}\u003c/span\u003e\n      {options.showBranding ? (\n        \u003ca\n          class=\"brand-link\"\n          target=\"_blank\"\n          href=\"https://sentry.io/welcome/\"\n          title=\"Powered by Sentry\"\n          rel=\"noopener noreferrer\"\n          dangerouslySetInnerHTML={logoHtml}\n        /\u003e\n      ) : null}\n    \u003c/h2\u003e\n  );\n}\n","import type { FeedbackFormData, FeedbackInternalOptions } from '@sentry/core';\n\nexport type Props = Pick\u003c\n  FeedbackInternalOptions,\n  'emailLabel' | 'isEmailRequired' | 'isNameRequired' | 'messageLabel' | 'nameLabel'\n\u003e;\n\n/**\n * Validate that a given feedback submission has the required fields\n */\nexport function getMissingFields(feedback: FeedbackFormData, props: Props): string[] {\n  const emptyFields = [];\n  if (props.isNameRequired \u0026\u0026 !feedback.name) {\n    emptyFields.push(props.nameLabel);\n  }\n  if (props.isEmailRequired \u0026\u0026 !feedback.email) {\n    emptyFields.push(props.emailLabel);\n  }\n  if (!feedback.message) {\n    emptyFields.push(props.messageLabel);\n  }\n\n  return emptyFields;\n}\n","import type {\n  FeedbackFormData,\n  FeedbackInternalOptions,\n  FeedbackScreenshotIntegration,\n  SendFeedback,\n} from '@sentry/core';\nimport { logger } from '@sentry/core';\nimport type { JSX, VNode } from 'preact';\nimport { h } from 'preact'; // eslint-disable-line @typescript-eslint/no-unused-vars\nimport { useCallback, useState } from 'preact/hooks';\nimport { FEEDBACK_WIDGET_SOURCE } from '../../constants';\nimport { DEBUG_BUILD } from '../../util/debug-build';\nimport { getMissingFields } from '../../util/validate';\n\nexport interface Props extends Pick\u003cFeedbackInternalOptions, 'showEmail' | 'showName'\u003e {\n  options: FeedbackInternalOptions;\n  defaultEmail: string;\n  defaultName: string;\n  onFormClose: () =\u003e void;\n  onSubmit: SendFeedback;\n  onSubmitSuccess: (data: FeedbackFormData) =\u003e void;\n  onSubmitError: (error: Error) =\u003e void;\n  screenshotInput: ReturnType\u003cFeedbackScreenshotIntegration['createInput']\u003e | undefined;\n}\n\nfunction retrieveStringValue(formData: FormData, key: string): string {\n  const value = formData.get(key);\n  if (typeof value === 'string') {\n    return value.trim();\n  }\n  return '';\n}\n\nexport function Form({\n  options,\n  defaultEmail,\n  defaultName,\n\n  onFormClose,\n  onSubmit,\n  onSubmitSuccess,\n  onSubmitError,\n  showEmail,\n  showName,\n  screenshotInput,\n}: Props): VNode {\n  const {\n    tags,\n    addScreenshotButtonLabel,\n    removeScreenshotButtonLabel,\n    cancelButtonLabel,\n    emailLabel,\n    emailPlaceholder,\n    isEmailRequired,\n    isNameRequired,\n    messageLabel,\n    messagePlaceholder,\n    nameLabel,\n    namePlaceholder,\n    submitButtonLabel,\n    isRequiredLabel,\n  } = options;\n  const [isSubmitting, setIsSubmitting] = useState\u003cboolean\u003e(false);\n  // TODO: set a ref on the form, and whenever an input changes call processForm() and setError()\n  const [error, setError] = useState\u003cnull | string\u003e(null);\n\n  const [showScreenshotInput, setShowScreenshotInput] = useState(false);\n  // eslint-disable-next-line @typescript-eslint/no-explicit-any\n  const ScreenshotInputComponent: any = screenshotInput?.input;\n\n  const [screenshotError, setScreenshotError] = useState\u003cnull | Error\u003e(null);\n  const onScreenshotError = useCallback((error: Error) =\u003e {\n    setScreenshotError(error);\n    setShowScreenshotInput(false);\n  }, []);\n\n  const hasAllRequiredFields = useCallback(\n    (data: FeedbackFormData) =\u003e {\n      const missingFields = getMissingFields(data, {\n        emailLabel,\n        isEmailRequired,\n        isNameRequired,\n        messageLabel,\n        nameLabel,\n      });\n\n      if (missingFields.length \u003e 0) {\n        setError(`Please enter in the following required fields: ${missingFields.join(', ')}`);\n      } else {\n        setError(null);\n      }\n\n      return missingFields.length === 0;\n    },\n    [emailLabel, isEmailRequired, isNameRequired, messageLabel, nameLabel],\n  );\n\n  const handleSubmit = useCallback(\n    async (e: JSX.TargetedSubmitEvent\u003cHTMLFormElement\u003e) =\u003e {\n      setIsSubmitting(true);\n      try {\n        e.preventDefault();\n        if (!(e.target instanceof HTMLFormElement)) {\n          return;\n        }\n        const formData = new FormData(e.target);\n        const attachment = await (screenshotInput \u0026\u0026 showScreenshotInput ? screenshotInput.value() : undefined);\n\n        const data: FeedbackFormData = {\n          name: retrieveStringValue(formData, 'name'),\n          email: retrieveStringValue(formData, 'email'),\n          message: retrieveStringValue(formData, 'message'),\n          attachments: attachment ? [attachment] : undefined,\n        };\n\n        if (!hasAllRequiredFields(data)) {\n          return;\n        }\n\n        try {\n          await onSubmit(\n            {\n              name: data.name,\n              email: data.email,\n              message: data.message,\n              source: FEEDBACK_WIDGET_SOURCE,\n              tags,\n            },\n            { attachments: data.attachments },\n          );\n          onSubmitSuccess(data);\n        } catch (error) {\n          DEBUG_BUILD \u0026\u0026 logger.error(error);\n          setError(error as string);\n          onSubmitError(error as Error);\n        }\n      } finally {\n        setIsSubmitting(false);\n      }\n    },\n    [screenshotInput \u0026\u0026 showScreenshotInput, onSubmitSuccess, onSubmitError],\n  );\n\n  return (\n    \u003cform class=\"form\" onSubmit={handleSubmit}\u003e\n      {ScreenshotInputComponent \u0026\u0026 showScreenshotInput ? (\n        \u003cScreenshotInputComponent onError={onScreenshotError} /\u003e\n      ) : null}\n\n      \u003cfieldset class=\"form__right\" data-sentry-feedback={true} disabled={isSubmitting}\u003e\n        \u003cdiv class=\"form__top\"\u003e\n          {error ? \u003cdiv class=\"form__error-container\"\u003e{error}\u003c/div\u003e : null}\n\n          {showName ? (\n            \u003clabel for=\"name\" class=\"form__label\"\u003e\n              \u003cLabelText label={nameLabel} isRequiredLabel={isRequiredLabel} isRequired={isNameRequired} /\u003e\n              \u003cinput\n                class=\"form__input\"\n                defaultValue={defaultName}\n                id=\"name\"\n                name=\"name\"\n                placeholder={namePlaceholder}\n                required={isNameRequired}\n                type=\"text\"\n              /\u003e\n            \u003c/label\u003e\n          ) : (\n            \u003cinput aria-hidden value={defaultName} name=\"name\" type=\"hidden\" /\u003e\n          )}\n\n          {showEmail ? (\n            \u003clabel for=\"email\" class=\"form__label\"\u003e\n              \u003cLabelText label={emailLabel} isRequiredLabel={isRequiredLabel} isRequired={isEmailRequired} /\u003e\n              \u003cinput\n                class=\"form__input\"\n                defaultValue={defaultEmail}\n                id=\"email\"\n                name=\"email\"\n                placeholder={emailPlaceholder}\n                required={isEmailRequired}\n                type=\"email\"\n              \u003e\u003c/input\u003e\n            \u003c/label\u003e\n          ) : (\n            \u003cinput aria-hidden value={defaultEmail} name=\"email\" type=\"hidden\" /\u003e\n          )}\n\n          \u003clabel for=\"message\" class=\"form__label\"\u003e\n            \u003cLabelText label={messageLabel} isRequiredLabel={isRequiredLabel} isRequired /\u003e\n            \u003ctextarea\n              autoFocus\n              class=\"form__input form__input--textarea\"\n              id=\"message\"\n              name=\"message\"\n              placeholder={messagePlaceholder}\n              required={true}\n              rows={5}\n            /\u003e\n          \u003c/label\u003e\n\n          {ScreenshotInputComponent ? (\n            \u003clabel for=\"screenshot\" class=\"form__label\"\u003e\n              \u003cbutton\n                class=\"btn btn--default\"\n                disabled={isSubmitting}\n                type=\"button\"\n                onClick={() =\u003e {\n                  setScreenshotError(null);\n                  setShowScreenshotInput(prev =\u003e !prev);\n                }}\n              \u003e\n                {showScreenshotInput ? removeScreenshotButtonLabel : addScreenshotButtonLabel}\n              \u003c/button\u003e\n              {screenshotError ? \u003cdiv class=\"form__error-container\"\u003e{screenshotError.message}\u003c/div\u003e : null}\n            \u003c/label\u003e\n          ) : null}\n        \u003c/div\u003e\n        \u003cdiv class=\"btn-group\"\u003e\n          \u003cbutton class=\"btn btn--primary\" disabled={isSubmitting} type=\"submit\"\u003e\n            {submitButtonLabel}\n          \u003c/button\u003e\n          \u003cbutton class=\"btn btn--default\" disabled={isSubmitting} type=\"button\" onClick={onFormClose}\u003e\n            {cancelButtonLabel}\n          \u003c/button\u003e\n        \u003c/div\u003e\n      \u003c/fieldset\u003e\n    \u003c/form\u003e\n  );\n}\n\nfunction LabelText({\n  label,\n  isRequired,\n  isRequiredLabel,\n}: {\n  label: string;\n  isRequired: boolean;\n  isRequiredLabel: string;\n}): VNode {\n  return (\n    \u003cspan class=\"form__label__text\"\u003e\n      {label}\n      {isRequired \u0026\u0026 \u003cspan class=\"form__label__text--required\"\u003e{isRequiredLabel}\u003c/span\u003e}\n    \u003c/span\u003e\n  );\n}\n","import { WINDOW } from '../../constants';\nimport { setAttributesNS } from '../../util/setAttributesNS';\n\nconst WIDTH = 16;\nconst HEIGHT = 17;\nconst XMLNS = 'http://www.w3.org/2000/svg';\n\n/**\n * Success Icon (checkmark)\n */\nexport function SuccessIcon(): SVGElement {\n  const createElementNS = \u003cK extends keyof SVGElementTagNameMap\u003e(tagName: K): SVGElementTagNameMap[K] =\u003e\n    WINDOW.document.createElementNS(XMLNS, tagName);\n  const svg = setAttributesNS(createElementNS('svg'), {\n    width: `${WIDTH}`,\n    height: `${HEIGHT}`,\n    viewBox: `0 0 ${WIDTH} ${HEIGHT}`,\n    fill: 'inherit',\n  });\n\n  const g = setAttributesNS(createElementNS('g'), {\n    clipPath: 'url(#clip0_57_156)',\n  });\n\n  const path2 = setAttributesNS(createElementNS('path'), {\n    ['fill-rule']: 'evenodd',\n    ['clip-rule']: 'evenodd',\n    d: 'M3.55544 15.1518C4.87103 16.0308 6.41775 16.5 8 16.5C10.1217 16.5 12.1566 15.6571 13.6569 14.1569C15.1571 12.6566 16 10.6217 16 8.5C16 6.91775 15.5308 5.37103 14.6518 4.05544C13.7727 2.73985 12.5233 1.71447 11.0615 1.10897C9.59966 0.503466 7.99113 0.34504 6.43928 0.653721C4.88743 0.962403 3.46197 1.72433 2.34315 2.84315C1.22433 3.96197 0.462403 5.38743 0.153721 6.93928C-0.15496 8.49113 0.00346625 10.0997 0.608967 11.5615C1.21447 13.0233 2.23985 14.2727 3.55544 15.1518ZM4.40546 3.1204C5.46945 2.40946 6.72036 2.03 8 2.03C9.71595 2.03 11.3616 2.71166 12.575 3.92502C13.7883 5.13838 14.47 6.78405 14.47 8.5C14.47 9.77965 14.0905 11.0306 13.3796 12.0945C12.6687 13.1585 11.6582 13.9878 10.476 14.4775C9.29373 14.9672 7.99283 15.0953 6.73777 14.8457C5.48271 14.596 4.32987 13.9798 3.42502 13.075C2.52018 12.1701 1.90397 11.0173 1.65432 9.76224C1.40468 8.50718 1.5328 7.20628 2.0225 6.02404C2.5122 4.8418 3.34148 3.83133 4.40546 3.1204Z',\n  });\n  const path = setAttributesNS(createElementNS('path'), {\n    d: 'M6.68775 12.4297C6.78586 12.4745 6.89218 12.4984 7 12.5C7.11275 12.4955 7.22315 12.4664 7.32337 12.4145C7.4236 12.3627 7.51121 12.2894 7.58 12.2L12 5.63999C12.0848 5.47724 12.1071 5.28902 12.0625 5.11098C12.0178 4.93294 11.9095 4.77744 11.7579 4.67392C11.6064 4.57041 11.4221 4.52608 11.24 4.54931C11.0579 4.57254 10.8907 4.66173 10.77 4.79999L6.88 10.57L5.13 8.56999C5.06508 8.49566 4.98613 8.43488 4.89768 8.39111C4.80922 8.34735 4.713 8.32148 4.61453 8.31498C4.51605 8.30847 4.41727 8.32147 4.32382 8.35322C4.23038 8.38497 4.14413 8.43484 4.07 8.49999C3.92511 8.63217 3.83692 8.81523 3.82387 9.01092C3.81083 9.2066 3.87393 9.39976 4 9.54999L6.43 12.24C6.50187 12.3204 6.58964 12.385 6.68775 12.4297Z',\n  });\n\n  svg.appendChild(g).append(path, path2);\n\n  const speakerDefs = createElementNS('defs');\n  const speakerClipPathDef = setAttributesNS(createElementNS('clipPath'), {\n    id: 'clip0_57_156',\n  });\n\n  const speakerRect = setAttributesNS(createElementNS('rect'), {\n    width: `${WIDTH}`,\n    height: `${WIDTH}`,\n    fill: 'white',\n    transform: 'translate(0 0.5)',\n  });\n\n  speakerClipPathDef.appendChild(speakerRect);\n  speakerDefs.appendChild(speakerClipPathDef);\n\n  svg.appendChild(speakerDefs).appendChild(speakerClipPathDef).appendChild(speakerRect);\n\n  return svg;\n}\n","import type { FeedbackFormData, FeedbackInternalOptions } from '@sentry/core';\nimport type { VNode } from 'preact';\nimport { Fragment, h } from 'preact'; // eslint-disable-line @typescript-eslint/no-unused-vars\nimport { useCallback, useMemo, useState } from 'preact/hooks';\nimport { SUCCESS_MESSAGE_TIMEOUT } from '../../constants';\nimport type { Props as HeaderProps } from './DialogHeader';\nimport { DialogHeader } from './DialogHeader';\nimport type { Props as FormProps } from './Form';\nimport { Form } from './Form';\nimport { SuccessIcon } from './SuccessIcon';\n\ninterface Props extends HeaderProps, FormProps {\n  onFormSubmitted: () =\u003e void;\n  open: boolean;\n  options: FeedbackInternalOptions;\n}\n\nexport function Dialog({ open, onFormSubmitted, ...props }: Props): VNode {\n  const options = props.options;\n  const successIconHtml = useMemo(() =\u003e ({ __html: SuccessIcon().outerHTML }), []);\n\n  const [timeoutId, setTimeoutId] = useState\u003cNodeJS.Timeout | null\u003e(null);\n\n  const handleOnSuccessClick = useCallback(() =\u003e {\n    if (timeoutId) {\n      clearTimeout(timeoutId);\n      setTimeoutId(null);\n    }\n    onFormSubmitted();\n  }, [timeoutId]);\n\n  const onSubmitSuccess = useCallback(\n    (data: FeedbackFormData) =\u003e {\n      props.onSubmitSuccess(data);\n      setTimeoutId(\n        setTimeout(() =\u003e {\n          onFormSubmitted();\n          setTimeoutId(null);\n        }, SUCCESS_MESSAGE_TIMEOUT),\n      );\n    },\n    [onFormSubmitted],\n  );\n\n  return (\n    \u003cFragment\u003e\n      {timeoutId ? (\n        \u003cdiv class=\"success__position\" onClick={handleOnSuccessClick}\u003e\n          \u003cdiv class=\"success__content\"\u003e\n            {options.successMessageText}\n            \u003cspan class=\"success__icon\" dangerouslySetInnerHTML={successIconHtml} /\u003e\n          \u003c/div\u003e\n        \u003c/div\u003e\n      ) : (\n        \u003cdialog class=\"dialog\" onClick={options.onFormClose} open={open}\u003e\n          \u003cdiv class=\"dialog__position\"\u003e\n            \u003cdiv\n              class=\"dialog__content\"\n              onClick={e =\u003e {\n                // Stop event propagation so clicks on content modal do not propagate to dialog (which will close dialog)\n                e.stopPropagation();\n              }}\n            \u003e\n              \u003cDialogHeader options={options} /\u003e\n              \u003cForm {...props} onSubmitSuccess={onSubmitSuccess} /\u003e\n            \u003c/div\u003e\n          \u003c/div\u003e\n        \u003c/dialog\u003e\n      )}\n    \u003c/Fragment\u003e\n  );\n}\n","import { DOCUMENT } from '../../constants';\n\nconst DIALOG = `\n.dialog {\n  position: fixed;\n  z-index: var(--z-index);\n  margin: 0;\n  inset: 0;\n\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  padding: 0;\n  height: 100vh;\n  width: 100vw;\n\n  color: var(--dialog-color, var(--foreground));\n  fill: var(--dialog-color, var(--foreground));\n  line-height: 1.75em;\n\n  background-color: rgba(0, 0, 0, 0.05);\n  border: none;\n  inset: 0;\n  opacity: 1;\n  transition: opacity 0.2s ease-in-out;\n}\n\n.dialog__position {\n  position: fixed;\n  z-index: var(--z-index);\n  inset: var(--dialog-inset);\n  padding: var(--page-margin);\n  display: flex;\n  max-height: calc(100vh - (2 * var(--page-margin)));\n}\n@media (max-width: 600px) {\n  .dialog__position {\n    inset: var(--page-margin);\n    padding: 0;\n  }\n}\n\n.dialog__position:has(.editor) {\n  inset: var(--page-margin);\n  padding: 0;\n}\n\n.dialog:not([open]) {\n  opacity: 0;\n  pointer-events: none;\n  visibility: hidden;\n}\n.dialog:not([open]) .dialog__content {\n  transform: translate(0, -16px) scale(0.98);\n}\n\n.dialog__content {\n  display: flex;\n  flex-direction: column;\n  gap: 16px;\n  padding: var(--dialog-padding, 24px);\n  max-width: 100%;\n  width: 100%;\n  max-height: 100%;\n  overflow: auto;\n\n  background: var(--dialog-background, var(--background));\n  border-radius: var(--dialog-border-radius, 20px);\n  border: var(--dialog-border, var(--border));\n  box-shadow: var(--dialog-box-shadow, var(--box-shadow));\n  transform: translate(0, 0) scale(1);\n  transition: transform 0.2s ease-in-out;\n}\n\n`;\n\nconst DIALOG_HEADER = `\n.dialog__header {\n  display: flex;\n  gap: 4px;\n  justify-content: space-between;\n  font-weight: var(--dialog-header-weight, 600);\n  margin: 0;\n}\n.dialog__title {\n  align-self: center;\n  width: var(--form-width, 272px);\n}\n\n@media (max-width: 600px) {\n  .dialog__title {\n    width: auto;\n  }\n}\n\n.dialog__position:has(.editor) .dialog__title {\n  width: auto;\n}\n\n\n.brand-link {\n  display: inline-flex;\n}\n.brand-link:focus-visible {\n  outline: var(--outline);\n}\n`;\n\nconst FORM = `\n.form {\n  display: flex;\n  overflow: auto;\n  flex-direction: row;\n  gap: 16px;\n  flex: 1 0;\n}\n\n.form fieldset {\n  border: none;\n  margin: 0;\n  padding: 0;\n}\n\n.form__right {\n  flex: 0 0 auto;\n  display: flex;\n  overflow: auto;\n  flex-direction: column;\n  justify-content: space-between;\n  gap: 20px;\n  width: var(--form-width, 100%);\n}\n\n.dialog__position:has(.editor) .form__right {\n  width: var(--form-width, 272px);\n}\n\n.form__top {\n  display: flex;\n  flex-direction: column;\n  gap: 8px;\n}\n\n.form__error-container {\n  color: var(--error-color);\n  fill: var(--error-color);\n}\n\n.form__label {\n  display: flex;\n  flex-direction: column;\n  gap: 4px;\n  margin: 0px;\n}\n\n.form__label__text {\n  display: flex;\n  gap: 4px;\n  align-items: center;\n}\n\n.form__label__text--required {\n  font-size: 0.85em;\n}\n\n.form__input {\n  font-family: inherit;\n  line-height: inherit;\n  background: transparent;\n  box-sizing: border-box;\n  border: var(--input-border, var(--border));\n  border-radius: var(--input-border-radius, 6px);\n  color: var(--input-color, inherit);\n  fill: var(--input-color, inherit);\n  font-size: var(--input-font-size, inherit);\n  font-weight: var(--input-font-weight, 500);\n  padding: 6px 12px;\n}\n\n.form__input::placeholder {\n  opacity: 0.65;\n  color: var(--input-placeholder-color, inherit);\n  filter: var(--interactive-filter);\n}\n\n.form__input:focus-visible {\n  outline: var(--input-focus-outline, var(--outline));\n}\n\n.form__input--textarea {\n  font-family: inherit;\n  resize: vertical;\n}\n\n.error {\n  color: var(--error-color);\n  fill: var(--error-color);\n}\n`;\n\nconst BUTTON = `\n.btn-group {\n  display: grid;\n  gap: 8px;\n}\n\n.btn {\n  line-height: inherit;\n  border: var(--button-border, var(--border));\n  border-radius: var(--button-border-radius, 6px);\n  cursor: pointer;\n  font-family: inherit;\n  font-size: var(--button-font-size, inherit);\n  font-weight: var(--button-font-weight, 600);\n  padding: var(--button-padding, 6px 16px);\n}\n.btn[disabled] {\n  opacity: 0.6;\n  pointer-events: none;\n}\n\n.btn--primary {\n  color: var(--button-primary-color, var(--accent-foreground));\n  fill: var(--button-primary-color, var(--accent-foreground));\n  background: var(--button-primary-background, var(--accent-background));\n  border: var(--button-primary-border, var(--border));\n  border-radius: var(--button-primary-border-radius, 6px);\n  font-weight: var(--button-primary-font-weight, 500);\n}\n.btn--primary:hover {\n  color: var(--button-primary-hover-color, var(--accent-foreground));\n  fill: var(--button-primary-hover-color, var(--accent-foreground));\n  background: var(--button-primary-hover-background, var(--accent-background));\n  filter: var(--interactive-filter);\n}\n.btn--primary:focus-visible {\n  background: var(--button-primary-hover-background, var(--accent-background));\n  filter: var(--interactive-filter);\n  outline: var(--button-primary-focus-outline, var(--outline));\n}\n\n.btn--default {\n  color: var(--button-color, var(--foreground));\n  fill: var(--button-color, var(--foreground));\n  background: var(--button-background, var(--background));\n  border: var(--button-border, var(--border));\n  border-radius: var(--button-border-radius, 6px);\n  font-weight: var(--button-font-weight, 500);\n}\n.btn--default:hover {\n  color: var(--button-color, var(--foreground));\n  fill: var(--button-color, var(--foreground));\n  background: var(--button-hover-background, var(--background));\n  filter: var(--interactive-filter);\n}\n.btn--default:focus-visible {\n  background: var(--button-hover-background, var(--background));\n  filter: var(--interactive-filter);\n  outline: var(--button-focus-outline, var(--outline));\n}\n`;\n\nconst SUCCESS = `\n.success__position {\n  position: fixed;\n  inset: var(--dialog-inset);\n  padding: var(--page-margin);\n  z-index: var(--z-index);\n}\n.success__content {\n  background: var(--success-background, var(--background));\n  border: var(--success-border, var(--border));\n  border-radius: var(--success-border-radius, 1.7em/50%);\n  box-shadow: var(--success-box-shadow, var(--box-shadow));\n  font-weight: var(--success-font-weight, 600);\n  color: var(--success-color);\n  fill: var(--success-color);\n  padding: 12px 24px;\n  line-height: 1.75em;\n\n  display: grid;\n  align-items: center;\n  grid-auto-flow: column;\n  gap: 6px;\n  cursor: default;\n}\n\n.success__icon {\n  display: flex;\n}\n`;\n\n/**\n * Creates \u003cstyle\u003e element for widget dialog\n */\nexport function createDialogStyles(styleNonce?: string): HTMLStyleElement {\n  const style = DOCUMENT.createElement('style');\n\n  style.textContent = `\n:host {\n  --dialog-inset: var(--inset);\n}\n\n${DIALOG}\n${DIALOG_HEADER}\n${FORM}\n${BUTTON}\n${SUCCESS}\n`;\n\n  if (styleNonce) {\n    style.setAttribute('nonce', styleNonce);\n  }\n\n  return style;\n}\n","import type { FeedbackFormData, FeedbackModalIntegration, IntegrationFn, User } from '@sentry/core';\nimport { getClient, getCurrentScope, getGlobalScope, getIsolationScope } from '@sentry/core';\nimport { h, render } from 'preact';\nimport * as hooks from 'preact/hooks';\nimport { DOCUMENT } from '../constants';\nimport { Dialog } from './components/Dialog';\nimport { createDialogStyles } from './components/Dialog.css';\n\nfunction getUser(): User | undefined {\n  const currentUser = getCurrentScope().getUser();\n  const isolationUser = getIsolationScope().getUser();\n  const globalUser = getGlobalScope().getUser();\n  if (currentUser \u0026\u0026 Object.keys(currentUser).length) {\n    return currentUser;\n  }\n  if (isolationUser \u0026\u0026 Object.keys(isolationUser).length) {\n    return isolationUser;\n  }\n  return globalUser;\n}\n\nexport const feedbackModalIntegration = ((): FeedbackModalIntegration =\u003e {\n  return {\n    name: 'FeedbackModal',\n    // eslint-disable-next-line @typescript-eslint/no-empty-function\n    setupOnce() {},\n    createDialog: ({ options, screenshotIntegration, sendFeedback, shadow }) =\u003e {\n      const shadowRoot = shadow as unknown as ShadowRoot;\n      const userKey = options.useSentryUser;\n      const user = getUser();\n\n      const el = DOCUMENT.createElement('div');\n      const style = createDialogStyles(options.styleNonce);\n\n      let originalOverflow = '';\n      const dialog: ReturnType\u003cFeedbackModalIntegration['createDialog']\u003e = {\n        get el() {\n          return el;\n        },\n        appendToDom(): void {\n          if (!shadowRoot.contains(style) \u0026\u0026 !shadowRoot.contains(el)) {\n            shadowRoot.appendChild(style);\n            shadowRoot.appendChild(el);\n          }\n        },\n        removeFromDom(): void {\n          el.remove();\n          style.remove();\n          DOCUMENT.body.style.overflow = originalOverflow;\n        },\n        open() {\n          renderContent(true);\n          options.onFormOpen?.();\n          getClient()?.emit('openFeedbackWidget');\n          originalOverflow = DOCUMENT.body.style.overflow;\n          DOCUMENT.body.style.overflow = 'hidden';\n        },\n        close() {\n          renderContent(false);\n          DOCUMENT.body.style.overflow = originalOverflow;\n        },\n      };\n\n      const screenshotInput = screenshotIntegration?.createInput({ h, hooks, dialog, options });\n\n      const renderContent = (open: boolean): void =\u003e {\n        render(\n          \u003cDialog\n            options={options}\n            screenshotInput={screenshotInput}\n            showName={options.showName || options.isNameRequired}\n            showEmail={options.showEmail || options.isEmailRequired}\n            defaultName={(userKey \u0026\u0026 user \u0026\u0026 user[userKey.name]) || ''}\n            defaultEmail={(userKey \u0026\u0026 user \u0026\u0026 user[userKey.email]) || ''}\n            onFormClose={() =\u003e {\n              renderContent(false);\n              options.onFormClose?.();\n            }}\n            onSubmit={sendFeedback}\n            onSubmitSuccess={(data: FeedbackFormData) =\u003e {\n              renderContent(false);\n              options.onSubmitSuccess?.(data);\n            }}\n            onSubmitError={(error: Error) =\u003e {\n              options.onSubmitError?.(error);\n            }}\n            onFormSubmitted={() =\u003e {\n              options.onFormSubmitted?.();\n            }}\n            open={open}\n          /\u003e,\n          el,\n        );\n      };\n\n      return dialog;\n    },\n  };\n}) satisfies IntegrationFn;\n","import type { h as hType, VNode } from 'preact';\n\ninterface FactoryParams {\n  h: typeof hType;\n}\n\nexport default function IconCloseFactory({\n  h, // eslint-disable-line @typescript-eslint/no-unused-vars\n}: FactoryParams) {\n  return function IconClose(): VNode {\n    return (\n      \u003csvg data-test-id=\"icon-close\" viewBox=\"0 0 16 16\" fill=\"#2B2233\" height=\"25px\" width=\"25px\"\u003e\n        \u003ccircle r=\"7\" cx=\"8\" cy=\"8\" fill=\"white\" /\u003e\n        \u003cpath\n          strokeWidth=\"1.5\"\n          d=\"M8,16a8,8,0,1,1,8-8A8,8,0,0,1,8,16ZM8,1.53A6.47,6.47,0,1,0,14.47,8,6.47,6.47,0,0,0,8,1.53Z\"\n        \u003e\u003c/path\u003e\n        \u003cpath\n          strokeWidth=\"1.5\"\n          d=\"M5.34,11.41a.71.71,0,0,1-.53-.22.74.74,0,0,1,0-1.06l5.32-5.32a.75.75,0,0,1,1.06,1.06L5.87,11.19A.74.74,0,0,1,5.34,11.41Z\"\n        \u003e\u003c/path\u003e\n        \u003cpath\n          strokeWidth=\"1.5\"\n          d=\"M10.66,11.41a.74.74,0,0,1-.53-.22L4.81,5.87A.75.75,0,0,1,5.87,4.81l5.32,5.32a.74.74,0,0,1,0,1.06A.71.71,0,0,1,10.66,11.41Z\"\n        \u003e\u003c/path\u003e\n      \u003c/svg\u003e\n    );\n  };\n}\n","import { DOCUMENT } from '../../constants';\n\n/**\n * Creates \u003cstyle\u003e element for widget dialog\n */\nexport function createScreenshotInputStyles(styleNonce?: string): HTMLStyleElement {\n  const style = DOCUMENT.createElement('style');\n\n  const surface200 = '#1A141F';\n  const gray100 = '#302735';\n\n  style.textContent = `\n.editor {\n  display: flex;\n  flex-grow: 1;\n  flex-direction: column;\n}\n\n.editor__image-container {\n  justify-items: center;\n  padding: 15px;\n  position: relative;\n  height: 100%;\n  border-radius: var(--menu-border-radius, 6px);\n\n  background-color: ${surface200};\n  background-image: repeating-linear-gradient(\n      -145deg,\n      transparent,\n      transparent 8px,\n      ${surface200} 8px,\n      ${surface200} 11px\n    ),\n    repeating-linear-gradient(\n      -45deg,\n      transparent,\n      transparent 15px,\n      ${gray100} 15px,\n      ${gray100} 16px\n    );\n}\n\n.editor__canvas-container {\n  width: 100%;\n  height: 100%;\n  position: relative;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n}\n\n.editor__canvas-container \u003e * {\n  object-fit: contain;\n  position: absolute;\n}\n\n.editor__tool-container {\n  padding-top: 8px;\n  display: flex;\n  justify-content: center;\n}\n\n.editor__tool-bar {\n  display: flex;\n  gap: 8px;\n}\n\n.editor__tool {\n  display: flex;\n  padding: 8px 12px;\n  justify-content: center;\n  align-items: center;\n  border: var(--button-border, var(--border));\n  border-radius: var(--button-border-radius, 6px);\n  background: var(--button-background, var(--background));\n  color: var(--button-color, var(--foreground));\n}\n\n.editor__tool--active {\n  background: var(--button-primary-background, var(--accent-background));\n  color: var(--button-primary-color, var(--accent-foreground));\n}\n\n.editor__rect {\n  position: absolute;\n  z-index: 2;\n}\n\n.editor__rect button {\n  opacity: 0;\n  position: absolute;\n  top: -12px;\n  right: -12px;\n  cursor: pointer;\n  padding: 0;\n  z-index: 3;\n  border: none;\n  background: none;\n}\n\n.editor__rect:hover button {\n  opacity: 1;\n}\n`;\n\n  if (styleNonce) {\n    style.setAttribute('nonce', styleNonce);\n  }\n\n  return style;\n}\n","import type { h as hType, VNode } from 'preact';\nimport type * as Hooks from 'preact/hooks';\n\ninterface FactoryParams {\n  h: typeof hType;\n}\n\nexport default function ToolbarFactory({\n  h, // eslint-disable-line @typescript-eslint/no-unused-vars\n}: FactoryParams) {\n  return function Toolbar({\n    action,\n    setAction,\n  }: {\n    action: 'highlight' | 'hide' | '';\n    setAction: Hooks.StateUpdater\u003c'highlight' | 'hide' | ''\u003e;\n  }): VNode {\n    return (\n      \u003cdiv class=\"editor__tool-container\"\u003e\n        \u003cdiv class=\"editor__tool-bar\"\u003e\n          \u003cbutton\n            type=\"button\"\n            class={`editor__tool ${action === 'highlight' ? 'editor__tool--active' : ''}`}\n            onClick={() =\u003e {\n              setAction(action === 'highlight' ? '' : 'highlight');\n            }}\n          \u003e\n            Highlight\n          \u003c/button\u003e\n          \u003cbutton\n            type=\"button\"\n            class={`editor__tool ${action === 'hide' ? 'editor__tool--active' : ''}`}\n            onClick={() =\u003e {\n              setAction(action === 'hide' ? '' : 'hide');\n            }}\n          \u003e\n            Hide\n          \u003c/button\u003e\n        \u003c/div\u003e\n      \u003c/div\u003e\n    );\n  };\n}\n","import type * as Hooks from 'preact/hooks';\nimport { DOCUMENT, NAVIGATOR, WINDOW } from '../../constants';\n\ninterface FactoryParams {\n  hooks: typeof Hooks;\n}\n\ninterface Props {\n  onBeforeScreenshot: () =\u003e void;\n  onScreenshot: (imageSource: HTMLVideoElement, dpi: number) =\u003e void;\n  onAfterScreenshot: () =\u003e void;\n  onError: (error: Error) =\u003e void;\n}\n\ntype UseTakeScreenshot = ({ onBeforeScreenshot, onScreenshot, onAfterScreenshot, onError }: Props) =\u003e void;\n\nexport function useTakeScreenshotFactory({ hooks }: FactoryParams): UseTakeScreenshot {\n  function useDpi(): number {\n    const [dpi, setDpi] = hooks.useState\u003cnumber\u003e(WINDOW.devicePixelRatio ?? 1);\n    hooks.useEffect(() =\u003e {\n      const onChange = (): void =\u003e {\n        setDpi(WINDOW.devicePixelRatio);\n      };\n      const media = matchMedia(`(resolution: ${WINDOW.devicePixelRatio}dppx)`);\n      media.addEventListener('change', onChange);\n      return () =\u003e {\n        media.removeEventListener('change', onChange);\n      };\n    }, []);\n\n    return dpi;\n  }\n\n  return function useTakeScreenshot({ onBeforeScreenshot, onScreenshot, onAfterScreenshot, onError }: Props) {\n    const dpi = useDpi();\n\n    hooks.useEffect(() =\u003e {\n      const takeScreenshot = async (): Promise\u003cvoid\u003e =\u003e {\n        onBeforeScreenshot();\n\n        // Chrome will animate a top-bar which can shrink the window height by a\n        // few pixels. The exact amount depends on how fast it takes to exec\n        // the onloadedmetadata callback.\n        // https://stackoverflow.com/q/75833049\n        const stream = await NAVIGATOR.mediaDevices.getDisplayMedia({\n          video: {\n            width: WINDOW.innerWidth * dpi,\n            height: WINDOW.innerHeight * dpi,\n          },\n          audio: false,\n          // @ts-expect-error experimental flags: https://developer.mozilla.org/en-US/docs/Web/API/MediaDevices/getDisplayMedia#prefercurrenttab\n          monitorTypeSurfaces: 'exclude',\n          preferCurrentTab: true,\n          selfBrowserSurface: 'include',\n          surfaceSwitching: 'exclude',\n        });\n\n        const video = DOCUMENT.createElement('video');\n        await new Promise\u003cvoid\u003e((resolve, reject) =\u003e {\n          video.srcObject = stream;\n          video.onloadedmetadata = () =\u003e {\n            onScreenshot(video, dpi);\n            stream.getTracks().forEach(track =\u003e track.stop());\n            resolve();\n          };\n          video.play().catch(reject);\n        });\n        onAfterScreenshot();\n      };\n\n      takeScreenshot().catch(onError);\n    }, []);\n  };\n}\n","import type { FeedbackInternalOptions, FeedbackModalIntegration } from '@sentry/core';\nimport type { ComponentType, h as hType, VNode } from 'preact';\nimport { h } from 'preact'; // eslint-disable-line @typescript-eslint/no-unused-vars\nimport type * as Hooks from 'preact/hooks';\nimport { DOCUMENT, WINDOW } from '../../constants';\nimport IconCloseFactory from './IconClose';\nimport { createScreenshotInputStyles } from './ScreenshotInput.css';\nimport ToolbarFactory from './Toolbar';\nimport { useTakeScreenshotFactory } from './useTakeScreenshot';\n\ninterface FactoryParams {\n  h: typeof hType;\n  hooks: typeof Hooks;\n\n  /**\n   * A ref to a Canvas Element that serves as our \"value\" or image output.\n   */\n  outputBuffer: HTMLCanvasElement;\n\n  /**\n   * A reference to the whole dialog (the parent of this component) so that we\n   * can show/hide it and take a clean screenshot of the webpage.\n   */\n  dialog: ReturnType\u003cFeedbackModalIntegration['createDialog']\u003e;\n\n  /**\n   * The whole options object.\n   *\n   * Needed to set nonce and id values for editor specific styles\n   */\n  options: FeedbackInternalOptions;\n}\n\ninterface Props {\n  onError: (error: Error) =\u003e void;\n}\n\ntype MaybeCanvas = HTMLCanvasElement | null;\ntype Screenshot = { canvas: HTMLCanvasElement; dpi: number };\n\ntype DrawType = 'highlight' | 'hide' | '';\ninterface DrawCommand {\n  type: DrawType;\n  x: number;\n  y: number;\n  h: number;\n  w: number;\n}\n\nfunction drawRect(command: DrawCommand, ctx: CanvasRenderingContext2D, color: string): void {\n  switch (command.type) {\n    case 'highlight': {\n      // creates a shadow around\n      ctx.shadowColor = 'rgba(0, 0, 0, 0.7)';\n      ctx.shadowBlur = 50;\n\n      // draws a rectangle first with a shadow\n      ctx.fillStyle = color;\n      ctx.fillRect(command.x - 1, command.y - 1, command.w + 2, command.h + 2);\n\n      // cut out the inside of the rectangle\n      ctx.clearRect(command.x, command.y, command.w, command.h);\n\n      break;\n    }\n    case 'hide':\n      ctx.fillStyle = 'rgb(0, 0, 0)';\n      ctx.fillRect(command.x, command.y, command.w, command.h);\n\n      break;\n    default:\n      break;\n  }\n}\n\nfunction with2dContext(\n  canvas: MaybeCanvas,\n  options: CanvasRenderingContext2DSettings,\n  callback: (canvas: HTMLCanvasElement, ctx: CanvasRenderingContext2D) =\u003e void,\n): void {\n  if (!canvas) {\n    return;\n  }\n  const ctx = canvas.getContext('2d', options);\n  if (!ctx) {\n    return;\n  }\n  callback(canvas, ctx);\n}\n\nfunction paintImage(maybeDest: MaybeCanvas, source: HTMLCanvasElement): void {\n  with2dContext(maybeDest, { alpha: true }, (destCanvas, destCtx) =\u003e {\n    destCtx.drawImage(source, 0, 0, source.width, source.height, 0, 0, destCanvas.width, destCanvas.height);\n  });\n}\n\n// Paint the array of drawCommands into a canvas.\n// Assuming this is the canvas foreground, and the background is cleaned.\nfunction paintForeground(maybeCanvas: MaybeCanvas, strokeColor: string, drawCommands: DrawCommand[]): void {\n  with2dContext(maybeCanvas, { alpha: true }, (canvas, ctx) =\u003e {\n    // If there's anything to draw, then we'll first clear the canvas with\n    // a transparent grey background\n    if (drawCommands.length) {\n      ctx.fillStyle = 'rgba(0, 0, 0, 0.25)';\n      ctx.fillRect(0, 0, canvas.width, canvas.height);\n    }\n\n    drawCommands.forEach(command =\u003e {\n      drawRect(command, ctx, strokeColor);\n    });\n  });\n}\n\nexport function ScreenshotEditorFactory({\n  h,\n  hooks,\n  outputBuffer,\n  dialog,\n  options,\n}: FactoryParams): ComponentType\u003cProps\u003e {\n  const useTakeScreenshot = useTakeScreenshotFactory({ hooks });\n  const Toolbar = ToolbarFactory({ h });\n  const IconClose = IconCloseFactory({ h });\n  const editorStyleInnerText = { __html: createScreenshotInputStyles(options.styleNonce).innerText };\n\n  const dialogStyle = (dialog.el as HTMLElement).style;\n\n  const ScreenshotEditor = ({ screenshot }: { screenshot: Screenshot }): VNode =\u003e {\n    // Data for rendering:\n    const [action, setAction] = hooks.useState\u003cDrawType\u003e('highlight');\n    const [drawCommands, setDrawCommands] = hooks.useState\u003cDrawCommand[]\u003e([]);\n\n    // Refs to our html components:\n    const measurementRef = hooks.useRef\u003cHTMLDivElement | null\u003e(null);\n    const backgroundRef = hooks.useRef\u003cMaybeCanvas\u003e(null);\n    const foregroundRef = hooks.useRef\u003cMaybeCanvas\u003e(null);\n    const mouseRef = hooks.useRef\u003cHTMLDivElement | null\u003e(null);\n\n    // The size of our window, relative to the imageSource\n    const [scaleFactor, setScaleFactor] = hooks.useState\u003cnumber\u003e(1);\n\n    const strokeColor = hooks.useMemo((): string =\u003e {\n      const sentryFeedback = DOCUMENT.getElementById(options.id);\n      if (!sentryFeedback) {\n        return 'white';\n      }\n      const computedStyle = getComputedStyle(sentryFeedback);\n      return (\n        computedStyle.getPropertyValue('--button-primary-background') ||\n        computedStyle.getPropertyValue('--accent-background')\n      );\n    }, [options.id]);\n\n    // The initial resize, to measure the area and set the children to the correct size\n    hooks.useLayoutEffect(() =\u003e {\n      const handleResize = (): void =\u003e {\n        const measurementDiv = measurementRef.current;\n        if (!measurementDiv) {\n          return;\n        }\n\n        with2dContext(screenshot.canvas, { alpha: false }, canvas =\u003e {\n          const scale = Math.min(\n            measurementDiv.clientWidth / canvas.width,\n            measurementDiv.clientHeight / canvas.height,\n          );\n          setScaleFactor(scale);\n        });\n      };\n\n      handleResize();\n      WINDOW.addEventListener('resize', handleResize);\n      return () =\u003e {\n        WINDOW.removeEventListener('resize', handleResize);\n      };\n    }, [screenshot]);\n\n    // Set the size of the canvas element to match our screenshot\n    const setCanvasSize = hooks.useCallback(\n      (maybeCanvas: MaybeCanvas, scale: number): void =\u003e {\n        with2dContext(maybeCanvas, { alpha: true }, (canvas, ctx) =\u003e {\n          // Must call `scale()` before setting `width` \u0026 `height`\n          ctx.scale(scale, scale);\n          canvas.width = screenshot.canvas.width;\n          canvas.height = screenshot.canvas.height;\n        });\n      },\n      [screenshot],\n    );\n\n    // Draw the screenshot into the background\n    hooks.useEffect(() =\u003e {\n      setCanvasSize(backgroundRef.current, screenshot.dpi);\n      paintImage(backgroundRef.current, screenshot.canvas);\n    }, [screenshot]);\n\n    // Draw the commands into the foreground\n    hooks.useEffect(() =\u003e {\n      setCanvasSize(foregroundRef.current, screenshot.dpi);\n      with2dContext(foregroundRef.current, { alpha: true }, (canvas, ctx) =\u003e {\n        ctx.clearRect(0, 0, canvas.width, canvas.height);\n      });\n      paintForeground(foregroundRef.current, strokeColor, drawCommands);\n    }, [drawCommands, strokeColor]);\n\n    // Draw into the output outputBuffer\n    hooks.useEffect(() =\u003e {\n      setCanvasSize(outputBuffer, screenshot.dpi);\n      paintImage(outputBuffer, screenshot.canvas);\n      with2dContext(DOCUMENT.createElement('canvas'), { alpha: true }, (foreground, ctx) =\u003e {\n        ctx.scale(screenshot.dpi, screenshot.dpi); // The scale needs to be set before we set the width/height and paint\n        foreground.width = screenshot.canvas.width;\n        foreground.height = screenshot.canvas.height;\n        paintForeground(foreground, strokeColor, drawCommands);\n        paintImage(outputBuffer, foreground);\n      });\n    }, [drawCommands, screenshot, strokeColor]);\n\n    const handleMouseDown = (e: MouseEvent): void =\u003e {\n      if (!action || !mouseRef.current) {\n        return;\n      }\n\n      const boundingRect = mouseRef.current.getBoundingClientRect();\n      const startingPoint: DrawCommand = {\n        type: action,\n        x: e.offsetX / scaleFactor,\n        y: e.offsetY / scaleFactor,\n        w: 0,\n        h: 0,\n      };\n\n      const getDrawCommand = (startingPoint: DrawCommand, e: MouseEvent): DrawCommand =\u003e {\n        const x = (e.clientX - boundingRect.x) / scaleFactor;\n        const y = (e.clientY - boundingRect.y) / scaleFactor;\n        return {\n          type: startingPoint.type,\n          x: Math.min(startingPoint.x, x),\n          y: Math.min(startingPoint.y, y),\n          w: Math.abs(x - startingPoint.x),\n          h: Math.abs(y - startingPoint.y),\n        } as DrawCommand;\n      };\n\n      const handleMouseMove = (e: MouseEvent): void =\u003e {\n        with2dContext(foregroundRef.current, { alpha: true }, (canvas, ctx) =\u003e {\n          ctx.clearRect(0, 0, canvas.width, canvas.height);\n        });\n        paintForeground(foregroundRef.current, strokeColor, [...drawCommands, getDrawCommand(startingPoint, e)]);\n      };\n\n      const handleMouseUp = (e: MouseEvent): void =\u003e {\n        const drawCommand = getDrawCommand(startingPoint, e);\n\n        // Prevent just clicking onto the canvas, mouse has to move at least 1 pixel\n        if (drawCommand.w * scaleFactor \u003e= 1 \u0026\u0026 drawCommand.h * scaleFactor \u003e= 1) {\n          setDrawCommands(prev =\u003e [...prev, drawCommand]);\n        }\n        DOCUMENT.removeEventListener('mousemove', handleMouseMove);\n        DOCUMENT.removeEventListener('mouseup', handleMouseUp);\n      };\n\n      DOCUMENT.addEventListener('mousemove', handleMouseMove);\n      DOCUMENT.addEventListener('mouseup', handleMouseUp);\n    };\n\n    const deleteRect = hooks.useCallback((index: number): hType.JSX.MouseEventHandler\u003cHTMLButtonElement\u003e =\u003e {\n      return (e: MouseEvent): void =\u003e {\n        e.preventDefault();\n        e.stopPropagation();\n        setDrawCommands(prev =\u003e {\n          const updatedRects = [...prev];\n          updatedRects.splice(index, 1);\n          return updatedRects;\n        });\n      };\n    }, []);\n\n    const dimensions = {\n      width: `${screenshot.canvas.width * scaleFactor}px`,\n      height: `${screenshot.canvas.height * scaleFactor}px`,\n    };\n\n    const handleStopPropagation = (e: MouseEvent): void =\u003e {\n      e.stopPropagation();\n    };\n\n    return (\n      \u003cdiv class=\"editor\"\u003e\n        \u003cstyle nonce={options.styleNonce} dangerouslySetInnerHTML={editorStyleInnerText} /\u003e\n        \u003cdiv class=\"editor__image-container\"\u003e\n          \u003cdiv class=\"editor__canvas-container\" ref={measurementRef}\u003e\n            \u003ccanvas ref={backgroundRef} id=\"background\" style={dimensions} /\u003e\n            \u003ccanvas ref={foregroundRef} id=\"foreground\" style={dimensions} /\u003e\n            \u003cdiv ref={mouseRef} onMouseDown={handleMouseDown} style={dimensions}\u003e\n              {drawCommands.map((rect, index) =\u003e (\n                \u003cdiv\n                  key={index}\n                  class=\"editor__rect\"\n                  style={{\n                    top: `${rect.y * scaleFactor}px`,\n                    left: `${rect.x * scaleFactor}px`,\n                    width: `${rect.w * scaleFactor}px`,\n                    height: `${rect.h * scaleFactor}px`,\n                  }}\n                \u003e\n                  \u003cbutton\n                    aria-label=\"Remove\"\n                    onClick={deleteRect(index)}\n                    onMouseDown={handleStopPropagation}\n                    onMouseUp={handleStopPropagation}\n                    type=\"button\"\n                  \u003e\n                    \u003cIconClose /\u003e\n                  \u003c/button\u003e\n                \u003c/div\u003e\n              ))}\n            \u003c/div\u003e\n          \u003c/div\u003e\n        \u003c/div\u003e\n        \u003cToolbar action={action} setAction={setAction} /\u003e\n      \u003c/div\u003e\n    );\n  };\n\n  return function Wrapper({ onError }: Props): VNode {\n    const [screenshot, setScreenshot] = hooks.useState\u003cundefined | Screenshot\u003e();\n\n    useTakeScreenshot({\n      onBeforeScreenshot: hooks.useCallback(() =\u003e {\n        dialogStyle.display = 'none';\n      }, []),\n      onScreenshot: hooks.useCallback((screenshotVideo: HTMLVideoElement, dpi: number) =\u003e {\n        // Stash the original screenshot image so we can (re)draw it multiple times\n        with2dContext(DOCUMENT.createElement('canvas'), { alpha: false }, (canvas, ctx) =\u003e {\n          ctx.scale(dpi, dpi); // The scale needs to be set before we set the width/height and paint\n          canvas.width = screenshotVideo.videoWidth;\n          canvas.height = screenshotVideo.videoHeight;\n          ctx.drawImage(screenshotVideo, 0, 0, canvas.width, canvas.height);\n\n          setScreenshot({ canvas, dpi });\n        });\n\n        // The output buffer, we only need to set the width/height on this once, it stays the same forever\n        outputBuffer.width = screenshotVideo.videoWidth;\n        outputBuffer.height = screenshotVideo.videoHeight;\n      }, []),\n      onAfterScreenshot: hooks.useCallback(() =\u003e {\n        dialogStyle.display = 'block';\n      }, []),\n      onError: hooks.useCallback(error =\u003e {\n        dialogStyle.display = 'block';\n        onError(error);\n      }, []),\n    });\n\n    if (screenshot) {\n      return \u003cScreenshotEditor screenshot={screenshot} /\u003e;\n    }\n\n    return \u003cdiv /\u003e;\n  };\n}\n","import type { Attachment, FeedbackScreenshotIntegration, IntegrationFn } from '@sentry/core';\nimport type { h as hType } from 'preact';\nimport type * as Hooks from 'preact/hooks';\nimport { DOCUMENT } from '../constants';\nimport { ScreenshotEditorFactory } from './components/ScreenshotEditor';\n\nexport const feedbackScreenshotIntegration = ((): FeedbackScreenshotIntegration =\u003e {\n  return {\n    name: 'FeedbackScreenshot',\n    // eslint-disable-next-line @typescript-eslint/no-empty-function\n    setupOnce() {},\n    createInput: ({ h, hooks, dialog, options }) =\u003e {\n      const outputBuffer = DOCUMENT.createElement('canvas');\n\n      return {\n        input: ScreenshotEditorFactory({\n          h: h as typeof hType,\n          hooks: hooks as typeof Hooks,\n          outputBuffer,\n          dialog,\n          options,\n        }) as any, // eslint-disable-line @typescript-eslint/no-explicit-any\n\n        value: async () =\u003e {\n          const blob = await new Promise\u003cParameters\u003cBlobCallback\u003e[0]\u003e(resolve =\u003e {\n            outputBuffer.toBlob(resolve, 'image/png');\n          });\n          if (blob) {\n            const data = new Uint8Array(await blob.arrayBuffer());\n            const attachment: Attachment = {\n              data,\n              filename: 'screenshot.png',\n              contentType: 'application/png',\n              // attachmentType?: string;\n            };\n            return attachment;\n          }\n          return undefined;\n        },\n      };\n    },\n  };\n}) satisfies IntegrationFn;\n"],"version":3}
