{"version":3,"file":"index.js","sources":["../../../src/constants/index.ts","../../../src/util/createFeedbackError.ts","../../../src/core/sendFeedback.ts","../../../src/util/debug-build.ts","../../../src/util/isScreenshotSupported.ts","../../../src/util/mergeOptions.ts","../../../src/core/components/Actor.css.ts","../../../src/util/setAttributesNS.ts","../../../src/core/components/FeedbackIcon.ts","../../../src/core/components/Actor.ts","../../../src/core/createMainStyles.ts","../../../src/core/integration.ts","../../../src/core/getFeedback.ts","../../../../../node_modules/preact/dist/preact.mjs","../../../../../node_modules/preact/hooks/dist/hooks.mjs","../../../src/modal/components/SentryLogo.ts","../../../src/modal/components/DialogHeader.tsx","../../../src/util/validate.ts","../../../src/modal/components/Form.tsx","../../../src/modal/components/SuccessIcon.ts","../../../src/modal/components/Dialog.tsx","../../../src/modal/components/Dialog.css.ts","../../../src/modal/integration.tsx","../../../src/screenshot/components/IconClose.tsx","../../../src/screenshot/components/ScreenshotInput.css.ts","../../../src/screenshot/components/Toolbar.tsx","../../../src/screenshot/components/useTakeScreenshot.tsx","../../../src/screenshot/components/ScreenshotEditor.tsx","../../../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 & 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';\nexport const HIGHLIGHT_TOOL_TEXT = 'Highlight';\nexport const HIDE_TOOL_TEXT = 'Hide';\nexport const REMOVE_HIGHLIGHT_TEXT = 'Remove';\n\nexport const ERROR_EMPTY_MESSAGE_TEXT = 'Unable to submit feedback with empty message';\nexport const ERROR_NO_CLIENT_TEXT = 'No client setup, cannot send feedback.';\nexport const ERROR_TIMEOUT_TEXT = 'Unable to determine if Feedback was correctly sent.';\nexport const ERROR_FORBIDDEN_TEXT =\n  'Unable to send feedback. This could be because this domain is not in your list of allowed domains.';\nexport const ERROR_GENERIC_TEXT =\n  'Unable to send feedback. This could be because of network issues, or because you are using an ad-blocker.';\n\nexport const FEEDBACK_WIDGET_SOURCE = 'widget';\nexport const FEEDBACK_API_SOURCE = 'api';\n\nexport const SUCCESS_MESSAGE_TIMEOUT = 5000;\n","import type { FeedbackErrorCode, FeedbackErrorMessages } from '@sentry/core';\nimport {\n  ERROR_EMPTY_MESSAGE_TEXT,\n  ERROR_FORBIDDEN_TEXT,\n  ERROR_GENERIC_TEXT,\n  ERROR_NO_CLIENT_TEXT,\n  ERROR_TIMEOUT_TEXT,\n} from '../constants';\n\nconst DEFAULT_MESSAGES: Record<FeedbackErrorCode, string> = {\n  ERROR_EMPTY_MESSAGE: ERROR_EMPTY_MESSAGE_TEXT,\n  ERROR_NO_CLIENT: ERROR_NO_CLIENT_TEXT,\n  ERROR_TIMEOUT: ERROR_TIMEOUT_TEXT,\n  ERROR_FORBIDDEN: ERROR_FORBIDDEN_TEXT,\n  ERROR_GENERIC: ERROR_GENERIC_TEXT,\n};\n\nexport function resolveFeedbackErrorMessage(code: FeedbackErrorCode, messages?: FeedbackErrorMessages): string {\n  return messages?.[code] ?? DEFAULT_MESSAGES[code];\n}\n\nexport function createFeedbackError(code: FeedbackErrorCode, messages?: FeedbackErrorMessages): Error {\n  return new Error(resolveFeedbackErrorMessage(code, messages));\n}\n","import type {\n  Event,\n  EventHint,\n  FeedbackErrorMessages,\n  SendFeedback,\n  SendFeedbackParams,\n  TransportMakeRequestResponse,\n} from '@sentry/core';\nimport { captureFeedback, getClient, getCurrentScope, getLocationHref } from '@sentry/core';\nimport { FEEDBACK_API_SOURCE } from '../constants';\nimport { createFeedbackError, resolveFeedbackErrorMessage } from '../util/createFeedbackError';\n\n/**\n * Public API to send a Feedback item to Sentry\n */\nexport const sendFeedback: SendFeedback = (\n  params: SendFeedbackParams,\n  hint: EventHint & { includeReplay?: boolean; errorMessages?: FeedbackErrorMessages } = { includeReplay: true },\n): Promise<string> => {\n  const errorMessages = hint.errorMessages;\n\n  if (!params.message) {\n    throw createFeedbackError('ERROR_EMPTY_MESSAGE', errorMessages);\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 createFeedbackError('ERROR_NO_CLIENT', errorMessages);\n  }\n\n  if (params.tags && 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<string>((resolve, reject) => {\n    // After 30s, we want to clear anyhow\n    const timeout = setTimeout(() => {\n      cleanup();\n      reject(resolveFeedbackErrorMessage('ERROR_TIMEOUT', errorMessages));\n    }, 30_000);\n\n    const cleanup = client.on('afterSendEvent', (event: Event, response: TransportMakeRequestResponse) => {\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 (response?.statusCode && response.statusCode >= 200 && response.statusCode < 300) {\n        return resolve(eventId);\n      }\n\n      if (response?.statusCode === 403) {\n        return reject(resolveFeedbackErrorMessage('ERROR_FORBIDDEN', errorMessages));\n      }\n\n      return reject(resolveFeedbackErrorMessage('ERROR_GENERIC', errorMessages));\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) && NAVIGATOR.maxTouchPoints && NAVIGATOR.maxTouchPoints > 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: () => {\n      optionOverrides.onFormOpen?.();\n      defaultOptions.onFormOpen?.();\n    },\n    onFormClose: () => {\n      optionOverrides.onFormClose?.();\n      defaultOptions.onFormClose?.();\n    },\n    onSubmitSuccess: (data: FeedbackFormData, eventId: string) => {\n      optionOverrides.onSubmitSuccess?.(data, eventId);\n      defaultOptions.onSubmitSuccess?.(data, eventId);\n    },\n    onSubmitError: (error: Error) => {\n      optionOverrides.onSubmitError?.(error);\n      defaultOptions.onSubmitError?.(error);\n    },\n    onFormSubmitted: () => {\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 <style> 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<T extends SVGElement>(el: T, attributes: Record<string, string>): T {\n  Object.entries(attributes).forEach(([key, val]) => {\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 = <K extends keyof SVGElementTagNameMap>(tagName: K): SVGElementTagNameMap[K] =>\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: () => void;\n\n  removeFromDom: () => void;\n\n  show: () => void;\n\n  hide: () => 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<FeedbackInternalOptions['themeLight']> {\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 <style> 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 ${colorScheme};` : ''}\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    color-scheme: only dark;\n\n    ${getThemedCssVariables({ ...DEFAULT_DARK, ...themeDark })}\n  }\n}`\n    : ''\n}\n`;\n\n  if (styleNonce) {\n    style.setAttribute('nonce', styleNonce);\n  }\n\n  return style;\n}\n","/* eslint-disable max-lines */\n/* eslint-disable complexity */\n\nimport type {\n  FeedbackErrorMessages,\n  FeedbackInternalOptions,\n  FeedbackModalIntegration,\n  FeedbackScreenshotIntegration,\n  Integration,\n  IntegrationFn,\n  SendFeedback,\n} from '@sentry/core';\nimport { addIntegration, debug, isBrowser } 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  ERROR_EMPTY_MESSAGE_TEXT,\n  ERROR_FORBIDDEN_TEXT,\n  ERROR_GENERIC_TEXT,\n  ERROR_NO_CLIENT_TEXT,\n  ERROR_TIMEOUT_TEXT,\n  FORM_TITLE,\n  HIDE_TOOL_TEXT,\n  HIGHLIGHT_TOOL_TEXT,\n  IS_REQUIRED_LABEL,\n  MESSAGE_LABEL,\n  MESSAGE_PLACEHOLDER,\n  NAME_LABEL,\n  NAME_PLACEHOLDER,\n  REMOVE_HIGHLIGHT_TEXT,\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 = () => 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: () => IntegrationFn;\n      getScreenshotIntegration: () => 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      ) => Promise<IntegrationFn>;\n      getModalIntegration?: never;\n      getScreenshotIntegration?: never;\n    };\n\nexport const buildFeedbackIntegration = ({\n  lazyLoadIntegration,\n  getModalIntegration,\n  getScreenshotIntegration,\n}: BuilderOptions): IntegrationFn<\n  Integration & {\n    attachTo(el: Element | string, optionOverrides?: OverrideFeedbackConfiguration): Unsubscribe;\n    createForm(\n      optionOverrides?: OverrideFeedbackConfiguration,\n    ): Promise<ReturnType<FeedbackModalIntegration['createDialog']>>;\n    createWidget(optionOverrides?: OverrideFeedbackConfiguration): ActorComponent;\n    setTheme(colorScheme: 'light' | 'dark' | 'system'): void;\n    remove(): void;\n  }\n> => {\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    highlightToolText = HIGHLIGHT_TOOL_TEXT,\n    hideToolText = HIDE_TOOL_TEXT,\n    removeHighlightText = REMOVE_HIGHLIGHT_TEXT,\n    errorEmptyMessageText = ERROR_EMPTY_MESSAGE_TEXT,\n    errorNoClientText = ERROR_NO_CLIENT_TEXT,\n    errorTimeoutText = ERROR_TIMEOUT_TEXT,\n    errorForbiddenText = ERROR_FORBIDDEN_TEXT,\n    errorGenericText = ERROR_GENERIC_TEXT,\n\n    // FeedbackCallbacks\n    onFormOpen,\n    onFormClose,\n    onSubmitSuccess,\n    onSubmitError,\n    onFormSubmitted,\n  }: OptionalFeedbackConfiguration = {}) => {\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      highlightToolText,\n      hideToolText,\n      removeHighlightText,\n      errorEmptyMessageText,\n      errorNoClientText,\n      errorTimeoutText,\n      errorForbiddenText,\n      errorGenericText,\n\n      onFormClose,\n      onFormOpen,\n      onSubmitError,\n      onSubmitSuccess,\n      onFormSubmitted,\n    };\n\n    let _shadow: ShadowRoot | null = null;\n    let _mainStyle: HTMLStyleElement | 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 => {\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        _mainStyle = createMainStyles(options);\n        _shadow.appendChild(_mainStyle);\n      }\n      return _shadow;\n    };\n\n    const _loadAndRenderDialog = async (\n      options: FeedbackInternalOptions,\n    ): Promise<ReturnType<FeedbackModalIntegration['createDialog']>> => {\n      const screenshotRequired = options.enableScreenshot && 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 &&\n          debug.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 &&\n          debug.error('[Feedback] Missing feedback screenshot integration. Proceeding without screenshots.');\n      }\n\n      const errorMessages: FeedbackErrorMessages = {\n        ERROR_EMPTY_MESSAGE: options.errorEmptyMessageText,\n        ERROR_NO_CLIENT: options.errorNoClientText,\n        ERROR_TIMEOUT: options.errorTimeoutText,\n        ERROR_FORBIDDEN: options.errorForbiddenText,\n        ERROR_GENERIC: options.errorGenericText,\n      };\n      const wrappedSendFeedback: SendFeedback = (params, hint) =>\n        sendFeedback(params, { includeReplay: true, ...hint, errorMessages });\n\n      const dialog = modalIntegration.createDialog({\n        options: {\n          ...options,\n          onFormClose: () => {\n            dialog?.close();\n            options.onFormClose?.();\n          },\n          onFormSubmitted: () => {\n            dialog?.close();\n            options.onFormSubmitted?.();\n          },\n        },\n        screenshotIntegration,\n        sendFeedback: wrappedSendFeedback,\n        shadow: _createShadow(options),\n      });\n\n      return dialog;\n    };\n\n    const _attachTo = (el: Element | string, optionOverrides: OverrideFeedbackConfiguration = {}): Unsubscribe => {\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 && debug.error('[Feedback] Unable to attach to target element');\n        throw new Error('Unable to attach to target element');\n      }\n\n      let dialog: ReturnType<FeedbackModalIntegration['createDialog']> | null = null;\n      const handleClick = async (): Promise<void> => {\n        if (!dialog) {\n          dialog = await _loadAndRenderDialog({\n            ...mergedOptions,\n            onFormSubmitted: () => {\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 => {\n        _subscriptions = _subscriptions.filter(sub => 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 => {\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', () => _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<ReturnType<FeedbackModalIntegration['createDialog']>> {\n        return _loadAndRenderDialog(mergeOptions(_options, optionOverrides));\n      },\n\n      /**\n       * Updates the color scheme of the feedback widget at runtime.\n       */\n      setTheme(colorScheme: 'light' | 'dark' | 'system'): void {\n        _options.colorScheme = colorScheme;\n        if (_shadow) {\n          const newStyle = createMainStyles(_options);\n          if (_mainStyle) {\n            _shadow.replaceChild(newStyle, _mainStyle);\n          } else {\n            _shadow.prepend(newStyle);\n          }\n          _mainStyle = newStyle;\n        }\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          _mainStyle = null;\n        }\n        // Remove any lingering subscriptions\n        _subscriptions.forEach(sub => 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<typeof buildFeedbackIntegration>;\n\n/**\n * This is a small utility to get a type-safe instance of the Feedback integration.\n */\nexport function getFeedback(): ReturnType<FeedbackIntegration> | undefined {\n  const client = getClient();\n  return client?.getIntegrationByName<ReturnType<FeedbackIntegration>>('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&&l.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>2&&(f.children=arguments.length>3?n.call(arguments,2):t),\"function\"==typeof l&&null!=l.defaultProps)for(r in l.defaultProps)void 0===f[r]&&(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&&null!=l.vnode&&l.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<n.__k.length;l++)if(null!=(u=n.__k[l])&&null!=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&&l.vnode(i),M(f,i,o,n.__n,void 0!==f.ownerSVGElement,32&o.__u?[r]:null,u,null==r?m(o):r,!!(32&o.__u),t),i.__.__k[i.__i]=i,i.__d=void 0,i.__e!=r&&k(i),i}function k(n){var l,u;if(null!=(n=n.__)&&null!=n.__c){for(n.__e=n.__c.base=null,l=0;l<n.__k.length;l++)if(null!=(u=n.__k[l])&&null!=u.__e){n.__e=n.__c.base=u.__e;break}return k(n)}}function x(n){(!n.__d&&(n.__d=!0)&&i.push(n)&&!C.__r++||o!==l.debounceRendering)&&((o=l.debounceRendering)||r)(C)}function C(){var n,u,t,o=[],r=[];for(i.sort(f);n=i.shift();)n.__d&&(t=i.length,u=w(n,o,r)||u,0===t||i.length>t?(j(o,u,r),r.length=o.length=0,u=void 0,i.sort(f)):u&&l.__c&&l.__c(u,s));u&&j(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&&t.__k||s,b=l.length;for(u.__d=e,S(u,l,g),e=u.__d,v=0;v<b;v++)null!=(y=u.__k[v])&&\"boolean\"!=typeof y&&\"function\"!=typeof y&&(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&&p.ref!=y.ref&&(p.ref&&N(p.ref,null,y),h.push(y.ref,y.__c||d,y)),null==_&&null!=d&&(_=d),65536&y.__u||p.__k===y.__k?e=$(y,e,n):\"function\"==typeof y.type&&void 0!==y.__d?e=y.__d:d&&(e=d.nextSibling),y.__d=void 0,y.__u&=-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<e;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&&i.__b>0?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&&(s--,(o=u[f])&&(o.__u|=131072)),null==o||null===o.__v?(-1==f&&a--,\"function\"!=typeof i.type&&(i.__u|=65536)):f!==r&&(f===r+1?a++:f>r?s>e-r?a+=f-r:a--:a=f<r&&f==r-1?f-r:0,f!==t+a&&(i.__u|=65536))):(o=u[t])&&null==o.key&&o.__e&&(o.__e==n.__d&&(n.__d=m(o)),O(o,o,!1),u[t]=null,s--);if(s)for(t=0;t<c;t++)null!=(o=u[t])&&0==(131072&o.__u)&&(o.__e==n.__d&&(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&&i<t.length;i++)t[i]&&(t[i].__=n,l=$(t[i],l,u));return l}n.__e!=l&&(u.insertBefore(n.__e,l||null),l=n.__e);do{l=l&&l.nextSibling}while(null!=l&&8===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&&i==e.key&&o===e.type)return u;if(t>(null!=e&&0==(131072&e.__u)?1:0))for(;r>=0||f<l.length;){if(r>=0){if((e=l[r])&&0==(131072&e.__u)&&i==e.key&&o===e.type)return r;r--}if(f<l.length){if((e=l[f])&&0==(131072&e.__u)&&i==e.key&&o===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&&(n.style.cssText=t=\"\"),t)for(l in t)u&&l in u||T(n.style,l,\"\");if(u)for(l in u)t&&u[l]===t[l]||T(n.style,l,u[l])}else if(\"o\"===l[0]&&\"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&&\"height\"!==l&&\"href\"!==l&&\"list\"!==l&&\"form\"!==l&&\"tabIndex\"!==l&&\"download\"!==l&&\"rowSpan\"!==l&&\"colSpan\"!==l&&\"role\"!==l&&l in n)try{n[l]=null==u?\"\":u;break n}catch(n){}\"function\"==typeof u||(null==u||!1===u&&\"-\"!==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<=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&t.__u&&(c=!!(32&t.__u),r=[e=u.__e=t.__e]),(a=l.__b)&&a(u);n:if(\"function\"==typeof A)try{if(k=u.props,x=(a=A.contextType)&&i[a.__c],C=a?x?x.props.value:a.__:i,t.__c?w=(p=u.__c=t.__c).__=p.__E:(\"prototype\"in A&&A.prototype.render?u.__c=p=new A(k,C):(u.__c=p=new b(k,C),p.constructor=A,p.render=q),x&&x.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&&(p.__s=p.state),null!=A.getDerivedStateFromProps&&(p.__s==p.state&&(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&&null!=p.componentWillMount&&p.componentWillMount(),null!=p.componentDidMount&&p.__h.push(p.componentDidMount);else{if(null==A.getDerivedStateFromProps&&k!==d&&null!=p.componentWillReceiveProps&&p.componentWillReceiveProps(k,C),!p.__e&&(null!=p.shouldComponentUpdate&&!1===p.shouldComponentUpdate(k,p.__s,C)||u.__v===t.__v)){for(u.__v!==t.__v&&(p.props=k,p.state=p.__s,p.__d=!1),u.__e=t.__e,u.__k=t.__k,u.__k.forEach(function(n){n&&(n.__=u)}),S=0;S<p._sb.length;S++)p.__h.push(p._sb[S]);p._sb=[],p.__h.length&&f.push(p);break n}null!=p.componentWillUpdate&&p.componentWillUpdate(k,p.__s,C),null!=p.componentDidUpdate&&p.__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&&A.prototype.render){for(p.state=p.__s,p.__d=!1,$&&$(u),a=p.render(p.props,p.state,p.context),I=0;I<p._sb.length;I++)p.__h.push(p._sb[I]);p._sb=[]}else do{p.__d=!1,$&&$(u),a=p.render(p.props,p.state,p.context),p.state=p.__s}while(p.__d&&++H<25);p.state=p.__s,null!=p.getChildContext&&(i=v(v({},i),p.getChildContext())),y||null==p.getSnapshotBeforeUpdate||(m=p.getSnapshotBeforeUpdate(d,_)),P(n,h(T=null!=a&&a.type===g&&null==a.key?a.props.children:a)?T:[T],u,t,i,o,r,f,e,c,s),p.base=u.__e,u.__u&=-161,p.__h.length&&f.push(p),w&&(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&&u.__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)&&a(u)}function j(n,u,t){for(var i=0;i<t.length;i++)N(t[i],t[++i],t[++i]);l.__c&&l.__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&&(o=!0),null!=r)for(a=0;a<r.length;a++)if((_=r[a])&&\"setAttribute\"in _==!!x&&(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&&k),r=null,e=!1}if(null===x)w===k||e&&l.data===k||(l.data=k);else{if(r=r&&n.call(l.childNodes),w=t.props||c,!e&&null!=r)for(w={},a=0;a<l.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&&\"function\"!=typeof _||w[a]===_||A(l,a,_,w[a],o);if(v)e||y&&(v.__html===y.__html||v.__html===l.innerHTML)||(l.innerHTML=v.__html),u.__k=[];else if(y&&(l.innerHTML=\"\"),P(l,h(d)?d:[d],u,t,i,o&&\"foreignObject\"!==x,r,f,r?r[0]:t.__k&&m(t,0),e,s),null!=r)for(a=r.length;a--;)null!=r[a]&&p(r[a]);e||(a=\"value\",void 0!==g&&(g!==l[a]||\"progress\"===x&&!g||\"option\"===x&&g!==w[a])&&A(l,a,g,w[a],!1),a=\"checked\",void 0!==b&&b!==l[a]&&A(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&&l.unmount(n),(i=n.ref)&&(i.current&&i.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<i.length;o++)i[o]&&O(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.__&&l.__(u,t),r=(o=\"function\"==typeof i)?null:i&&i.__k||t.__k,f=[],e=[],M(t,u=(!o&&i||t).__k=y(g,null,[u]),r||c,c,void 0!==t.ownerSVGElement,!o&&i?[i]:r?null:t.firstChild?n.call(t.childNodes):null,f,!o&&i?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&&l.type.defaultProps&&(f=l.type.defaultProps),u)\"key\"==r?i=u[r]:\"ref\"==r?o=u[r]:e[r]=void 0===u[r]&&void 0!==f?f[r]:u[r];return arguments.length>2&&(e.children=arguments.length>3?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&&u.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&&l.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)&&!i.__)try{if((o=i.constructor)&&null!=o.getDerivedStateFromError&&(i.setState(o.getDerivedStateFromError(n)),r=i.__d),null!=i.componentDidCatch&&(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&&null==n.constructor},b.prototype.setState=function(n,l){var u;u=null!=this.__s&&this.__s!==this.state?this.__s:this.__s=v({},this.state),\"function\"==typeof n&&(n=n(v({},u),this.props)),n&&v(u,n),null!=n&&this.__v&&(l&&this._sb.push(l),x(this))},b.prototype.forceUpdate=function(n){this.__v&&(this.__e=!0,n&&this.__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&&e.__h(r,n,o||t),o=0;var u=r.__H||(r.__H={__:[],__h:[]});return n>=u.__.length&&u.__.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&&(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&&(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]&&(i=!0)}}),!(!i&&o.__c.props===n)&&(!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&&e.call(this,n,t,r)},r.shouldComponentUpdate=f}return o.__N||o.__}function _(n,u){var i=h(t++,3);!e.__s&&C(i.__H,u)&&(i.__=n,i.i=u,r.__H.__h.push(i))}function A(n,u){var i=h(t++,4);!e.__s&&C(i.__H,u)&&(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.__&&(i.__=!0,u.sub(r)),u.props.value):n.__}function V(n,t){e.useDebugValue&&e.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.__&&u.__(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&&!u.__m&&null!==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&&n.__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&&a(n)},e.__=function(n,t){t.__k&&t.__k.__m&&(n.__m=t.__k.__m),d&&d(n,t)},e.__r=function(n){v&&v(n),t=0;var i=(r=n.__c).__H;i&&(u===r?(i.__h=[],r.__h=[],i.__.forEach(function(n){n.__N&&(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&&l(n);var t=n.__c;t&&t.__H&&(t.__H.__h.length&&(1!==f.push(t)&&i===e.requestAnimationFrame||((i=e.requestAnimationFrame)||w)(j)),t.__H.__.forEach(function(n){n.i&&(n.__H=n.i),n.__V!==c&&(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&&(n.__h=[])}),t=[],e.__e(r,n.__v)}}),m&&m(n,t)},e.unmount=function(n){s&&s(n);var t,r=n.__c;r&&r.__H&&(r.__H.__.forEach(function(n){try{z(n)}catch(n){t=n}}),r.__H=void 0,t&&e.__e(t,r.__v))};var k=\"function\"==typeof requestAnimationFrame;function w(n){var t,r=function(){clearTimeout(u),k&&cancelAnimationFrame(t),setTimeout(n)},u=setTimeout(r,100);k&&(t=requestAnimationFrame(r))}function z(n){var t=r,u=n.__c;\"function\"==typeof u&&(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 = <K extends keyof SVGElementTagNameMap>(tagName: K): SVGElementTagNameMap[K] =>\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(() => ({ __html: SentryLogo().outerHTML }), []);\n\n  return (\n    <h2 class=\"dialog__header\">\n      <span class=\"dialog__title\">{options.formTitle}</span>\n      {options.showBranding ? (\n        <a\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        />\n      ) : null}\n    </h2>\n  );\n}\n","import type { FeedbackFormData, FeedbackInternalOptions } from '@sentry/core';\n\nexport type Props = Pick<\n  FeedbackInternalOptions,\n  'emailLabel' | 'isEmailRequired' | 'isNameRequired' | 'messageLabel' | 'nameLabel'\n>;\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 && !feedback.name) {\n    emptyFields.push(props.nameLabel);\n  }\n  if (props.isEmailRequired && !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 { debug } 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<FeedbackInternalOptions, 'showEmail' | 'showName'> {\n  options: FeedbackInternalOptions;\n  defaultEmail: string;\n  defaultName: string;\n  onFormClose: () => void;\n  onSubmit: SendFeedback;\n  onSubmitSuccess: (data: FeedbackFormData, eventId: string) => void;\n  onSubmitError: (error: Error) => void;\n  screenshotInput: ReturnType<FeedbackScreenshotIntegration['createInput']> | 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<boolean>(false);\n  // TODO: set a ref on the form, and whenever an input changes call processForm() and setError()\n  const [error, setError] = useState<null | string>(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<null | Error>(null);\n  const onScreenshotError = useCallback((error: Error) => {\n    setScreenshotError(error);\n    setShowScreenshotInput(false);\n  }, []);\n\n  const hasAllRequiredFields = useCallback(\n    (data: FeedbackFormData) => {\n      const missingFields = getMissingFields(data, {\n        emailLabel,\n        isEmailRequired,\n        isNameRequired,\n        messageLabel,\n        nameLabel,\n      });\n\n      if (missingFields.length > 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<HTMLFormElement>) => {\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 && 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          const eventId = 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, eventId);\n        } catch (error) {\n          DEBUG_BUILD && debug.error(error);\n          const err = error instanceof Error ? error : new Error(String(error));\n          setError(err.message);\n          onSubmitError(err);\n        }\n      } finally {\n        setIsSubmitting(false);\n      }\n    },\n    [screenshotInput && showScreenshotInput, onSubmitSuccess, onSubmitError],\n  );\n\n  return (\n    <form class=\"form\" onSubmit={handleSubmit}>\n      {ScreenshotInputComponent && showScreenshotInput ? (\n        <ScreenshotInputComponent onError={onScreenshotError} />\n      ) : null}\n\n      <fieldset class=\"form__right\" data-sentry-feedback={true} disabled={isSubmitting}>\n        <div class=\"form__top\">\n          {error ? <div class=\"form__error-container\">{error}</div> : null}\n\n          {showName ? (\n            <label for=\"name\" class=\"form__label\">\n              <LabelText label={nameLabel} isRequiredLabel={isRequiredLabel} isRequired={isNameRequired} />\n              <input\n                class=\"form__input\"\n                defaultValue={defaultName}\n                id=\"name\"\n                name=\"name\"\n                placeholder={namePlaceholder}\n                required={isNameRequired}\n                type=\"text\"\n              />\n            </label>\n          ) : (\n            <input aria-hidden value={defaultName} name=\"name\" type=\"hidden\" />\n          )}\n\n          {showEmail ? (\n            <label for=\"email\" class=\"form__label\">\n              <LabelText label={emailLabel} isRequiredLabel={isRequiredLabel} isRequired={isEmailRequired} />\n              <input\n                class=\"form__input\"\n                defaultValue={defaultEmail}\n                id=\"email\"\n                name=\"email\"\n                placeholder={emailPlaceholder}\n                required={isEmailRequired}\n                type=\"email\"\n              ></input>\n            </label>\n          ) : (\n            <input aria-hidden value={defaultEmail} name=\"email\" type=\"hidden\" />\n          )}\n\n          <label for=\"message\" class=\"form__label\">\n            <LabelText label={messageLabel} isRequiredLabel={isRequiredLabel} isRequired />\n            <textarea\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            />\n          </label>\n\n          {ScreenshotInputComponent ? (\n            <label for=\"screenshot\" class=\"form__label\">\n              <button\n                class=\"btn btn--default\"\n                disabled={isSubmitting}\n                type=\"button\"\n                onClick={() => {\n                  setScreenshotError(null);\n                  setShowScreenshotInput(prev => !prev);\n                }}\n              >\n                {showScreenshotInput ? removeScreenshotButtonLabel : addScreenshotButtonLabel}\n              </button>\n              {screenshotError ? <div class=\"form__error-container\">{screenshotError.message}</div> : null}\n            </label>\n          ) : null}\n        </div>\n        <div class=\"btn-group\">\n          <button class=\"btn btn--primary\" disabled={isSubmitting} type=\"submit\">\n            {submitButtonLabel}\n          </button>\n          <button class=\"btn btn--default\" disabled={isSubmitting} type=\"button\" onClick={onFormClose}>\n            {cancelButtonLabel}\n          </button>\n        </div>\n      </fieldset>\n    </form>\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    <span class=\"form__label__text\">\n      {label}\n      {isRequired && <span class=\"form__label__text--required\">{isRequiredLabel}</span>}\n    </span>\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 = <K extends keyof SVGElementTagNameMap>(tagName: K): SVGElementTagNameMap[K] =>\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: () => 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(() => ({ __html: SuccessIcon().outerHTML }), []);\n\n  const [timeoutId, setTimeoutId] = useState<NodeJS.Timeout | null>(null);\n\n  const handleOnSuccessClick = useCallback(() => {\n    if (timeoutId) {\n      clearTimeout(timeoutId);\n      setTimeoutId(null);\n    }\n    onFormSubmitted();\n  }, [timeoutId]);\n\n  const onSubmitSuccess = useCallback(\n    (data: FeedbackFormData, eventId: string) => {\n      props.onSubmitSuccess(data, eventId);\n      setTimeoutId(\n        setTimeout(() => {\n          onFormSubmitted();\n          setTimeoutId(null);\n        }, SUCCESS_MESSAGE_TIMEOUT),\n      );\n    },\n    [onFormSubmitted],\n  );\n\n  return (\n    <Fragment>\n      {timeoutId ? (\n        <div class=\"success__position\" onClick={handleOnSuccessClick}>\n          <div class=\"success__content\">\n            {options.successMessageText}\n            <span class=\"success__icon\" dangerouslySetInnerHTML={successIconHtml} />\n          </div>\n        </div>\n      ) : (\n        <dialog class=\"dialog\" onClick={options.onFormClose} open={open}>\n          <div class=\"dialog__position\">\n            <div\n              class=\"dialog__content\"\n              onClick={e => {\n                // Stop event propagation so clicks on content modal do not propagate to dialog (which will close dialog)\n                e.stopPropagation();\n              }}\n            >\n              <DialogHeader options={options} />\n              <Form {...props} onSubmitSuccess={onSubmitSuccess} />\n            </div>\n          </div>\n        </dialog>\n      )}\n    </Fragment>\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 <style> 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 && Object.keys(currentUser).length) {\n    return currentUser;\n  }\n  if (isolationUser && Object.keys(isolationUser).length) {\n    return isolationUser;\n  }\n  return globalUser;\n}\n\nexport const feedbackModalIntegration = ((): FeedbackModalIntegration => {\n  return {\n    name: 'FeedbackModal',\n    setupOnce() {},\n    createDialog: ({ options, screenshotIntegration, sendFeedback, shadow }) => {\n      const shadowRoot = shadow 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<FeedbackModalIntegration['createDialog']> = {\n        get el() {\n          return el;\n        },\n        appendToDom(): void {\n          if (!shadowRoot.contains(style) && !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 => {\n        render(\n          <Dialog\n            options={options}\n            screenshotInput={screenshotInput}\n            showName={options.showName || options.isNameRequired}\n            showEmail={options.showEmail || options.isEmailRequired}\n            defaultName={String((userKey && user?.[userKey.name]) || '')}\n            defaultEmail={String((userKey && user?.[userKey.email]) || '')}\n            onFormClose={() => {\n              renderContent(false);\n              options.onFormClose?.();\n            }}\n            onSubmit={sendFeedback}\n            onSubmitSuccess={(data: FeedbackFormData, eventId: string) => {\n              renderContent(false);\n              options.onSubmitSuccess?.(data, eventId);\n            }}\n            onSubmitError={(error: Error) => {\n              options.onSubmitError?.(error);\n            }}\n            onFormSubmitted={() => {\n              options.onFormSubmitted?.();\n            }}\n            open={open}\n          />,\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      <svg data-test-id=\"icon-close\" viewBox=\"0 0 16 16\" fill=\"#2B2233\" height=\"25px\" width=\"25px\">\n        <circle r=\"7\" cx=\"8\" cy=\"8\" fill=\"white\" />\n        <path\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        ></path>\n        <path\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        ></path>\n        <path\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        ></path>\n      </svg>\n    );\n  };\n}\n","import { DOCUMENT } from '../../constants';\n\n/**\n * Creates <style> 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 > * {\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 { FeedbackInternalOptions } from '@sentry/core';\nimport 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    options,\n  }: {\n    action: 'highlight' | 'hide' | '';\n    setAction: Hooks.StateUpdater<'highlight' | 'hide' | ''>;\n    options: FeedbackInternalOptions;\n  }): VNode {\n    return (\n      <div class=\"editor__tool-container\">\n        <div class=\"editor__tool-bar\">\n          <button\n            type=\"button\"\n            class={`editor__tool ${action === 'highlight' ? 'editor__tool--active' : ''}`}\n            onClick={() => {\n              setAction(action === 'highlight' ? '' : 'highlight');\n            }}\n          >\n            {options.highlightToolText}\n          </button>\n          <button\n            type=\"button\"\n            class={`editor__tool ${action === 'hide' ? 'editor__tool--active' : ''}`}\n            onClick={() => {\n              setAction(action === 'hide' ? '' : 'hide');\n            }}\n          >\n            {options.hideToolText}\n          </button>\n        </div>\n      </div>\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: () => void;\n  onScreenshot: (imageSource: HTMLVideoElement, dpi: number) => void;\n  onAfterScreenshot: () => void;\n  onError: (error: Error) => void;\n}\n\ntype UseTakeScreenshot = ({ onBeforeScreenshot, onScreenshot, onAfterScreenshot, onError }: Props) => void;\n\nexport function useTakeScreenshotFactory({ hooks }: FactoryParams): UseTakeScreenshot {\n  function useDpi(): number {\n    const [dpi, setDpi] = hooks.useState<number>(WINDOW.devicePixelRatio ?? 1);\n    hooks.useEffect(() => {\n      const onChange = (): void => {\n        setDpi(WINDOW.devicePixelRatio);\n      };\n      const media = matchMedia(`(resolution: ${WINDOW.devicePixelRatio}dppx)`);\n      media.addEventListener('change', onChange);\n      return () => {\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(() => {\n      const takeScreenshot = async (): Promise<void> => {\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<void>((resolve, reject) => {\n          video.srcObject = stream;\n          video.onloadedmetadata = () => {\n            onScreenshot(video, dpi);\n            stream.getTracks().forEach(track => 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<FeedbackModalIntegration['createDialog']>;\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) => 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) => 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) => {\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) => {\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 => {\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<Props> {\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 => {\n    // Data for rendering:\n    const [action, setAction] = hooks.useState<DrawType>('highlight');\n    const [drawCommands, setDrawCommands] = hooks.useState<DrawCommand[]>([]);\n\n    // Refs to our html components:\n    const measurementRef = hooks.useRef<HTMLDivElement | null>(null);\n    const backgroundRef = hooks.useRef<MaybeCanvas>(null);\n    const foregroundRef = hooks.useRef<MaybeCanvas>(null);\n    const mouseRef = hooks.useRef<HTMLDivElement | null>(null);\n\n    // The size of our window, relative to the imageSource\n    const [scaleFactor, setScaleFactor] = hooks.useState<number>(1);\n\n    const strokeColor = hooks.useMemo((): string => {\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(() => {\n      const handleResize = (): void => {\n        const measurementDiv = measurementRef.current;\n        if (!measurementDiv) {\n          return;\n        }\n\n        with2dContext(screenshot.canvas, { alpha: false }, canvas => {\n          const scale = Math.min(\n            measurementDiv.clientWidth / canvas.width,\n            measurementDiv.clientHeight / canvas.height,\n          );\n          setScaleFactor(scale);\n        });\n\n        // For Firefox, the canvas is not yet measured, so we need to wait for it to get the correct size\n        if (measurementDiv.clientHeight === 0 || measurementDiv.clientWidth === 0) {\n          setTimeout(handleResize, 0);\n        }\n      };\n\n      handleResize();\n      WINDOW.addEventListener('resize', handleResize);\n      return () => {\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 => {\n        with2dContext(maybeCanvas, { alpha: true }, (canvas, ctx) => {\n          // Must call `scale()` before setting `width` & `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(() => {\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(() => {\n      setCanvasSize(foregroundRef.current, screenshot.dpi);\n      with2dContext(foregroundRef.current, { alpha: true }, (canvas, ctx) => {\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(() => {\n      setCanvasSize(outputBuffer, screenshot.dpi);\n      paintImage(outputBuffer, screenshot.canvas);\n      with2dContext(DOCUMENT.createElement('canvas'), { alpha: true }, (foreground, ctx) => {\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 => {\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 => {\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 => {\n        with2dContext(foregroundRef.current, { alpha: true }, (canvas, ctx) => {\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 => {\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 >= 1 && drawCommand.h * scaleFactor >= 1) {\n          setDrawCommands(prev => [...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<HTMLButtonElement> => {\n      return (e: MouseEvent): void => {\n        e.preventDefault();\n        e.stopPropagation();\n        setDrawCommands(prev => {\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 => {\n      e.stopPropagation();\n    };\n\n    return (\n      <div class=\"editor\">\n        <style nonce={options.styleNonce} dangerouslySetInnerHTML={editorStyleInnerText} />\n        <div class=\"editor__image-container\">\n          <div class=\"editor__canvas-container\" ref={measurementRef}>\n            <canvas ref={backgroundRef} id=\"background\" style={dimensions} />\n            <canvas ref={foregroundRef} id=\"foreground\" style={dimensions} />\n            <div ref={mouseRef} onMouseDown={handleMouseDown} style={dimensions}>\n              {drawCommands.map((rect, index) => (\n                <div\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                >\n                  <button\n                    aria-label={options.removeHighlightText}\n                    onClick={deleteRect(index)}\n                    onMouseDown={handleStopPropagation}\n                    onMouseUp={handleStopPropagation}\n                    type=\"button\"\n                  >\n                    <IconClose />\n                  </button>\n                </div>\n              ))}\n            </div>\n          </div>\n        </div>\n        <Toolbar options={options} action={action} setAction={setAction} />\n      </div>\n    );\n  };\n\n  return function Wrapper({ onError }: Props): VNode {\n    const [screenshot, setScreenshot] = hooks.useState<undefined | Screenshot>();\n\n    useTakeScreenshot({\n      onBeforeScreenshot: hooks.useCallback(() => {\n        dialogStyle.display = 'none';\n      }, []),\n      onScreenshot: hooks.useCallback((screenshotVideo: HTMLVideoElement, dpi: number) => {\n        // Stash the original screenshot image so we can (re)draw it multiple times\n        with2dContext(DOCUMENT.createElement('canvas'), { alpha: false }, (canvas, ctx) => {\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(() => {\n        dialogStyle.display = 'block';\n      }, []),\n      onError: hooks.useCallback(error => {\n        dialogStyle.display = 'block';\n        onError(error);\n      }, []),\n    });\n\n    if (screenshot) {\n      return <ScreenshotEditor screenshot={screenshot} />;\n    }\n\n    return <div />;\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 => {\n  return {\n    name: 'FeedbackScreenshot',\n    setupOnce() {},\n    createInput: ({ h, hooks, dialog, options }) => {\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 () => {\n          const blob = await new Promise<Parameters<BlobCallback>[0]>(resolve => {\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"],"names":["GLOBAL_OBJ","getClient","getCurrentScope","captureFeedback","getLocationHref","XMLNS","addIntegration","debug","isBrowser","l","u","i","o","r","f","c","s","a","h","v","p","y","d","g","b","m","w","k","x","C","j","P","T","A","D","q","z","B","n","useMemo","useState","useCallback","Fragment","getIsolationScope","getGlobalScope","render"],"mappings":"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Ae,EAAC,eAAgB,EAAA;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;;ACrEA,MAAM,MAAA,GAAS;AACf;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,CAAC;;AAED,MAAM,aAAA,GAAgB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED,MAAM,IAAA,GAAO;AACb;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,CAAC;;AAED,MAAM,MAAA,GAAS;AACf;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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","x_google_ignoreList":[13,14]}