@databricks/design-system 2.0.4 → 2.0.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +24 -0
- package/dist/RHFControlledTypeaheadComboboxV2-DsH-nIEk.js +172 -0
- package/dist/RHFControlledTypeaheadComboboxV2-DsH-nIEk.js.map +1 -0
- package/dist/{WizardStepContentWrapper-8bs2FwRi.js → WizardStepContentWrapper-Bq1wm0V7.js} +554 -404
- package/dist/WizardStepContentWrapper-Bq1wm0V7.js.map +1 -0
- package/dist/index-BRAVZg-S.js +8308 -0
- package/dist/index-BRAVZg-S.js.map +1 -0
- package/dist/index-dark.css +364 -97
- package/dist/index-dark.mitigated.css +367 -100
- package/dist/index.css +684 -117
- package/dist/index.js +25 -8146
- package/dist/index.js.map +1 -1
- package/dist/index.mitigated.css +688 -121
- package/dist/patterns.js +1 -1
- package/dist-types/design-system/Breadcrumb/Breadcrumb.d.ts +10 -3
- package/dist-types/design-system/Button/AntDButtonInternal.d.ts +21 -0
- package/dist-types/design-system/Button/Button.d.ts +3 -19
- package/dist-types/design-system/Button/NativeButton.d.ts +3 -0
- package/dist-types/design-system/Button/getBtnClassName.d.ts +17 -0
- package/dist-types/design-system/Button/index.d.ts +1 -0
- package/dist-types/design-system/DesignSystemProvider/DesignTokenScopeWithEmotionTheme.d.ts +4 -4
- package/dist-types/design-system/FormV2/RHFAdapters.d.ts +8 -0
- package/dist-types/design-system/FormV2/RHFControlledTypeaheadComboboxV2.d.ts +58 -0
- package/dist-types/design-system/Icon/Icon.d.ts +2 -2
- package/dist-types/design-system/Icon/__generated/icons/ColorMappingEditIcon.d.ts +4 -0
- package/dist-types/design-system/Icon/__generated/icons/ColorMappingIcon.d.ts +4 -0
- package/dist-types/design-system/Icon/__generated/icons/MicrophoneIcon.d.ts +4 -0
- package/dist-types/design-system/Icon/__generated/icons/MicrophoneOffIcon.d.ts +4 -0
- package/dist-types/design-system/Icon/__generated/icons/OperatorIcon.d.ts +4 -0
- package/dist-types/design-system/Icon/__generated/icons/VoiceModeIcon.d.ts +4 -0
- package/dist-types/design-system/Icon/__generated/icons/index.d.ts +6 -0
- package/dist-types/design-system/Overflow/Overflow.d.ts +3 -1
- package/dist-types/design-system/Overflow/OverflowPopover.d.ts +2 -1
- package/dist-types/design-system/TypeaheadComboboxV2/TypeaheadComboboxMenu.d.ts +2 -0
- package/dist-types/design-system/shape-tokens.d.ts +1 -1
- package/dist-types/test-utils/rtl/buttonVariants.d.ts +4 -4
- package/dist-types/~patterns/Wizard/WizardStepNavigation.d.ts +9 -0
- package/dist-types/~patterns/Wizard/index.d.ts +1 -0
- package/package.json +6 -4
- package/dist/WizardStepContentWrapper-8bs2FwRi.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index-BRAVZg-S.js","sources":["../src/theme/_generated/SemanticColors-ConsumerDark.ts","../src/theme/_generated/SemanticColors-ConsumerLight.ts","../src/design-system/utils/fastdom.ts","../src/design-system/utils/useFastDom.ts","../src/design-system/utils/security/url-safety.ts","../src/design-system/DesignSystemEventProvider/DesignSystemEventProviderTestUtils.tsx","../src/design-system/DesignSystemProvider/DesignTokenScopeWithEmotionTheme.tsx","../src/design-system/Hooks/useDesignSystemFlags.tsx","../src/design-system/Hooks/useThemedStyles.ts","../src/design-system/Icon/iconMap.tsx","../src/design-system/Alert/Alert.tsx","../src/design-system/ApplyGlobalStyles/ApplyGlobalStyles.tsx","../src/design-system/AutoComplete/AutoComplete.tsx","../src/design-system/Avatar/SvgDatabricksIcon.tsx","../src/design-system/Avatar/SvgUserIcon.tsx","../src/design-system/Popover/InfoPopover.tsx","../src/design-system/Tooltip/TruncationTooltip.tsx","../src/design-system/Overflow/OverflowPopover.tsx","../src/design-system/Avatar/Avatar.tsx","../src/design-system/Breadcrumb/Breadcrumb.tsx","../src/design-system/Skeleton/GenericSkeleton.tsx","../src/design-system/Skeleton/ParagraphSkeleton.tsx","../src/design-system/TableUI/Table.tsx","../src/design-system/TableUI/TableCell.tsx","../src/design-system/TableUI/TableRow.tsx","../src/design-system/TableUI/TableRowAction.tsx","../src/design-system/Skeleton/TableSkeleton.tsx","../src/design-system/Card/Card.tsx","../src/design-system/DatePicker/LegacyDatePicker.tsx","../src/design-system/_shared_/Combobox/Separator.tsx","../src/design-system/DialogCombobox/DialogComboboxAddButton.tsx","../src/design-system/DialogCombobox/DialogComboboxFooter.tsx","../src/design-system/DialogCombobox/DialogComboboxHintRow.tsx","../src/design-system/DialogCombobox/DialogComboboxOptionListSearch.tsx","../src/design-system/DialogCombobox/DialogComboboxOptionControlledList.tsx","../src/design-system/DialogCombobox/DialogComboboxSeparator.tsx","../src/design-system/Dropdown/Dropdown.tsx","../src/design-system/Label/Label.tsx","../src/design-system/Switch/AntDSwitchInternal.tsx","../src/design-system/Switch/NativeSwitch.tsx","../src/design-system/Switch/Switch.tsx","../src/design-system/TypeaheadCombobox/TypeaheadComboboxRoot.tsx","../src/design-system/TypeaheadCombobox/TypeaheadComboboxMenu.tsx","../src/design-system/TypeaheadCombobox/TypeaheadComboboxToggleButton.tsx","../src/design-system/TypeaheadCombobox/TypeaheadComboboxControls.tsx","../src/design-system/TypeaheadCombobox/TypeaheadComboboxInput.tsx","../src/design-system/TypeaheadCombobox/TypeaheadComboboxMultiSelectInput.tsx","../src/design-system/TypeaheadCombobox/TypeaheadComboboxSectionHeader.tsx","../src/design-system/TypeaheadCombobox/TypeaheadComboboxSeparator.tsx","../src/design-system/TypeaheadCombobox/TypeaheadComboboxAddButton.tsx","../src/design-system/FormV2/RHFAdapters.tsx","../src/design-system/FormMessage/FormMessage.tsx","../src/design-system/FormV2/FormUI.tsx","../src/design-system/Grid/Col.tsx","../src/design-system/Grid/rowConstants.ts","../src/design-system/Grid/Row.tsx","../src/design-system/Space/Space.tsx","../src/design-system/Header/Header.tsx","../src/design-system/HoverCard/HoverCard.tsx","../src/design-system/LegacyNotification/LegacyNotification.tsx","../src/design-system/LegacyPopover/LegacyPopover.tsx","../src/design-system/LegacySkeleton/LegacySkeleton.tsx","../src/design-system/Menu/Menu.tsx","../src/design-system/Notification/Notification.tsx","../src/design-system/Overflow/Overflow.tsx","../src/design-system/PageWrapper/PageWrapper.tsx","../src/design-system/ResourceStatusIndicator/ResourceStatusIndicator.tsx","../src/design-system/SnackBar/SnackBarManager.ts","../src/design-system/SnackBar/SnackBar.tsx","../src/design-system/SnackBar/useSnackBar.ts","../src/design-system/Steps/Steps.tsx","../src/design-system/TableUI/TableFilterInput.tsx","../src/design-system/TableUI/TableFilterLayout.tsx","../src/design-system/TableUI/TableHeader.tsx","../src/design-system/TableUI/TableRowActionHeader.tsx","../src/design-system/TableUI/TableRowMultiAction.tsx","../src/design-system/TableUI/TableRowSelectCell.tsx","../src/design-system/TreeGrid/useDefaultTreeGridState.ts","../src/design-system/TreeGrid/TreeGrid.tsx","../src/design-system/TypeaheadComboboxV2/TypeaheadComboboxRoot.tsx","../src/design-system/TypeaheadComboboxV2/hooks/footerFocus.ts","../src/design-system/TypeaheadComboboxV2/TypeaheadComboboxFooter.tsx","../src/design-system/TypeaheadComboboxV2/TypeaheadComboboxMenu.tsx","../src/design-system/TypeaheadComboboxV2/TypeaheadComboboxCheckboxItem.tsx","../src/design-system/TypeaheadComboboxV2/TypeaheadComboboxToggleButton.tsx","../src/design-system/TypeaheadComboboxV2/TypeaheadComboboxControls.tsx","../src/design-system/TypeaheadComboboxV2/TypeaheadComboboxInput.tsx","../src/design-system/TypeaheadComboboxV2/TypeaheadComboboxMultiSelectInput.tsx","../src/design-system/TypeaheadComboboxV2/TypeaheadComboboxSectionHeader.tsx","../src/design-system/TypeaheadComboboxV2/TypeaheadComboboxSeparator.tsx","../src/design-system/TypeaheadComboboxV2/TypeaheadComboboxAddButton.tsx","../src/design-system/TypeaheadComboboxV2/hooks/useComboboxItems.ts","../src/design-system/TypeaheadComboboxV2/hooks/useComboboxStateProps.tsx","../src/design-system/TypeaheadComboboxV2/hooks/useRestoreHighlightedOption.ts","../src/design-system/TypeaheadComboboxV2/hooks/useComboboxState.tsx","../src/design-system/TypeaheadComboboxV2/hooks/useMultipleSelectionState.ts","../src/design-system/TypeaheadComboboxV2/hooks/useVirtualizedComboboxScroll.ts","../src/design-system/fonts.ts"],"sourcesContent":["// THIS FILE IS AUTOMATICALLY GENERATED. DO NOT EDIT.\n\nimport { primitiveColors as primitives } from './PrimitiveColors';\nimport type { ValidSemanticColors } from './ValidSemanticColors';\n\nexport const consumerDarkColorList: Record<ValidSemanticColors, string> = {\n actionDangerDefaultBackgroundDefault: 'rgba(247, 146, 166, 0.0000)',\n actionDangerDefaultBackgroundHover: 'rgba(247, 146, 166, 0.0800)',\n actionDangerDefaultBackgroundPress: 'rgba(247, 146, 166, 0.1600)',\n actionDangerDefaultBorderDefault: primitives.red500,\n actionDangerDefaultBorderHover: primitives.red400,\n actionDangerDefaultBorderPress: primitives.red300,\n actionDangerDefaultTextDefault: primitives.red500,\n actionDangerDefaultTextHover: primitives.red400,\n actionDangerDefaultTextPress: primitives.red300,\n actionDangerPrimaryBackgroundDefault: primitives.red500,\n actionDangerPrimaryBackgroundHover: primitives.red400,\n actionDangerPrimaryBackgroundPress: primitives.red300,\n actionDangerPrimaryText: primitives.grey800,\n actionDefaultBackgroundDefault: primitives.whiteAlpha00,\n actionDefaultBackgroundHover: primitives.whiteAlpha06,\n actionDefaultBackgroundPress: primitives.whiteAlpha10,\n actionDefaultBorderDefault: primitives.whiteAlpha10,\n actionDefaultBorderFocus: primitives.blue400,\n actionDefaultBorderHover: primitives.blue400,\n actionDefaultBorderPress: primitives.grey500,\n actionDefaultIconDefault: primitives.grey350,\n actionDefaultIconHover: primitives.blue400,\n actionDefaultIconPress: primitives.blue300,\n actionDefaultTextDefault: primitives.grey100,\n actionDefaultTextHover: primitives.blue400,\n actionDefaultTextPress: primitives.grey100,\n actionDisabledBackground: primitives.grey650,\n actionDisabledBorder: primitives.grey600,\n actionDisabledText: primitives.grey500,\n actionIconBackgroundDefault: primitives.whiteAlpha00,\n actionIconBackgroundHover: primitives.whiteAlpha06,\n actionIconBackgroundPress: primitives.whiteAlpha10,\n actionIconIconDefault: primitives.grey350,\n actionIconIconHover: primitives.grey300,\n actionIconIconPress: primitives.grey200,\n actionLinkDefault: primitives.blue500,\n actionLinkHover: primitives.blue400,\n actionLinkPress: primitives.blue300,\n actionPrimaryBackgroundDefault: primitives.grey100,\n actionPrimaryBackgroundHover: primitives.grey200,\n actionPrimaryBackgroundPress: primitives.grey300,\n actionPrimaryIcon: primitives.grey800,\n actionPrimaryTextDefault: primitives.grey800,\n actionPrimaryTextHover: primitives.grey800,\n actionPrimaryTextPress: primitives.grey800,\n actionTertiaryBackgroundDefault: primitives.whiteAlpha00,\n actionTertiaryBackgroundHover: primitives.whiteAlpha06,\n actionTertiaryBackgroundPress: primitives.whiteAlpha10,\n actionTertiaryIconDefault: primitives.blue500,\n actionTertiaryIconHover: primitives.blue400,\n actionTertiaryIconPress: primitives.blue300,\n actionTertiaryTextDefault: primitives.grey350,\n actionTertiaryTextHover: primitives.grey350,\n actionTertiaryTextPress: primitives.grey350,\n backgroundDanger: 'rgba(200, 45, 76, 0.1600)',\n backgroundPrimary: primitives.grey800,\n backgroundSecondary: primitives.grey700,\n backgroundSuccess: 'rgba(39, 124, 67, 0.1600)',\n backgroundWarning: 'rgba(190, 80, 30, 0.1600)',\n border: primitives.whiteAlpha10,\n borderAccessible: primitives.grey300,\n borderDanger: primitives.red500,\n borderWarning: primitives.yellow500,\n codeBackground: primitives.grey650,\n iconTrending: primitives.orange,\n overlayOverlay: 'rgba(0, 0, 0, 0.4500)',\n progressFill: primitives.grey500,\n progressFillPrimary: primitives.blue600,\n progressTrack: primitives.grey650,\n skeleton: 'rgba(144, 164, 181, 0.1600)',\n tableBackgroundSelectedDefault: 'rgba(189, 205, 219, 0.0800)',\n tableBackgroundSelectedHover: 'rgba(189, 205, 219, 0.1200)',\n tableBackgroundUnselectedDefault: primitives.grey800,\n tableBackgroundUnselectedHover: 'rgba(189, 205, 219, 0.0400)',\n textPlaceholder: primitives.grey400,\n textPrimary: primitives.grey100,\n textSecondary: primitives.grey350,\n textValidationDanger: primitives.red500,\n textValidationSuccess: primitives.green500,\n textValidationWarning: primitives.yellow500,\n tooltipBackgroundTooltip: primitives.grey100,\n tooltipTextTooltip: primitives.grey800,\n};\n","// THIS FILE IS AUTOMATICALLY GENERATED. DO NOT EDIT.\n\nimport { primitiveColors as primitives } from './PrimitiveColors';\nimport type { ValidSemanticColors } from './ValidSemanticColors';\n\nexport const consumerLightColorList: Record<ValidSemanticColors, string> = {\n actionDangerDefaultBackgroundDefault: 'rgba(200, 45, 76, 0.0000)',\n actionDangerDefaultBackgroundHover: 'rgba(200, 45, 76, 0.0800)',\n actionDangerDefaultBackgroundPress: 'rgba(200, 45, 76, 0.1600)',\n actionDangerDefaultBorderDefault: primitives.red600,\n actionDangerDefaultBorderHover: primitives.red700,\n actionDangerDefaultBorderPress: primitives.red800,\n actionDangerDefaultTextDefault: primitives.red600,\n actionDangerDefaultTextHover: primitives.red700,\n actionDangerDefaultTextPress: primitives.red800,\n actionDangerPrimaryBackgroundDefault: primitives.red600,\n actionDangerPrimaryBackgroundHover: primitives.red700,\n actionDangerPrimaryBackgroundPress: primitives.red800,\n actionDangerPrimaryText: primitives.white,\n actionDefaultBackgroundDefault: primitives.blackAlpha00,\n actionDefaultBackgroundHover: primitives.blackAlpha05,\n actionDefaultBackgroundPress: primitives.blackAlpha08,\n actionDefaultBorderDefault: primitives.blackAlpha08,\n actionDefaultBorderFocus: primitives.blue600,\n actionDefaultBorderHover: primitives.neutral300,\n actionDefaultBorderPress: primitives.neutral350,\n actionDefaultIconDefault: primitives.neutral500,\n actionDefaultIconHover: primitives.neutral500,\n actionDefaultIconPress: primitives.neutral500,\n actionDefaultTextDefault: primitives.neutral800,\n actionDefaultTextHover: primitives.neutral800,\n actionDefaultTextPress: primitives.neutral800,\n actionDisabledBackground: primitives.neutral100,\n actionDisabledBorder: primitives.neutral200,\n actionDisabledText: primitives.neutral350,\n actionIconBackgroundDefault: primitives.blackAlpha00,\n actionIconBackgroundHover: primitives.blackAlpha05,\n actionIconBackgroundPress: primitives.blackAlpha08,\n actionIconIconDefault: primitives.neutral500,\n actionIconIconHover: primitives.neutral500,\n actionIconIconPress: primitives.neutral500,\n actionLinkDefault: primitives.blue600,\n actionLinkHover: primitives.blue700,\n actionLinkPress: primitives.blue800,\n actionPrimaryBackgroundDefault: primitives.neutral800,\n actionPrimaryBackgroundHover: primitives.neutral650,\n actionPrimaryBackgroundPress: primitives.neutral600,\n actionPrimaryIcon: primitives.white,\n actionPrimaryTextDefault: primitives.white,\n actionPrimaryTextHover: primitives.white,\n actionPrimaryTextPress: primitives.white,\n actionTertiaryBackgroundDefault: primitives.blackAlpha00,\n actionTertiaryBackgroundHover: primitives.blackAlpha05,\n actionTertiaryBackgroundPress: primitives.blackAlpha08,\n actionTertiaryIconDefault: primitives.neutral500,\n actionTertiaryIconHover: primitives.neutral500,\n actionTertiaryIconPress: primitives.neutral500,\n actionTertiaryTextDefault: primitives.neutral500,\n actionTertiaryTextHover: primitives.neutral500,\n actionTertiaryTextPress: primitives.neutral500,\n backgroundDanger: primitives.red100,\n backgroundPrimary: primitives.white,\n backgroundSecondary: primitives.neutralWarm050,\n backgroundSuccess: primitives.green100,\n backgroundWarning: primitives.yellow100,\n border: primitives.blackAlpha08,\n borderAccessible: primitives.neutral500,\n borderDanger: primitives.red300,\n borderWarning: primitives.yellow300,\n codeBackground: 'rgba(82, 82, 82, 0.0800)',\n iconTrending: primitives.orange,\n overlayOverlay: primitives.blackAlpha26,\n progressFill: primitives.neutral300,\n progressFillPrimary: primitives.blue500,\n progressTrack: primitives.neutral100,\n skeleton: 'rgba(162, 162, 162, 0.1600)',\n tableBackgroundSelectedDefault: primitives.blackAlpha05,\n tableBackgroundSelectedHover: primitives.blackAlpha08,\n tableBackgroundUnselectedDefault: primitives.blackAlpha00,\n tableBackgroundUnselectedHover: primitives.blackAlpha02,\n textPlaceholder: primitives.neutral500,\n textPrimary: primitives.neutral800,\n textSecondary: primitives.neutral500,\n textValidationDanger: primitives.red600,\n textValidationSuccess: primitives.green600,\n textValidationWarning: primitives.yellow600,\n tooltipBackgroundTooltip: primitives.neutral800,\n tooltipTextTooltip: primitives.white,\n};\n","/**\n * A minimal DOM read/write scheduler to prevent layout thrashing.\n * Loosely based on https://github.com/wilsonpage/fastdom and using the same API.\n */\n\nconst noop = () => {};\n\n// Access latency instrumentation hooks from the global object, if available.\n// This isn't ideal, but we need it outside of React context and w/o creating additional dependencies.\nexport type InstrumentedGlobal = typeof globalThis & {\n __perfHooks?: {\n rit?: {\n blockActiveInteractions?: (holdName: string) => () => void;\n };\n };\n};\n\nfunction blockActiveInteractions(holdName: string): () => void {\n return (globalThis as InstrumentedGlobal).__perfHooks?.rit?.blockActiveInteractions?.(holdName) ?? noop;\n}\n\ntype TaskFn = () => void;\n\ninterface Task {\n fn: TaskFn;\n resolve: () => void;\n reject: (error: Error) => void;\n}\n\nexport interface CancellablePromise extends Promise<void> {\n cancel: () => void;\n}\n\nlet measureQueue: Task[] = [];\nlet updateQueue: Task[] = [];\nlet isScheduled = false;\n\nlet releaseInteractionHolds = noop;\n\nfunction runTasks(tasks: Task[]): void {\n tasks.forEach((task) => {\n try {\n task.fn();\n task.resolve();\n } catch (error) {\n task.reject(error as Error);\n }\n });\n}\n\nfunction flush(): void {\n isScheduled = false;\n\n // Snapshot and clear queues to prevent tasks queued during flush from running in the same frame.\n const [tasksToMeasure, tasksToUpdate] = [measureQueue, updateQueue];\n measureQueue = [];\n updateQueue = [];\n\n const releaseAfterFlush = releaseInteractionHolds;\n\n try {\n let start = performance.now();\n runTasks(tasksToMeasure);\n performance.measure('fastdom-measure', {\n start,\n end: performance.now(),\n detail: {\n tasks: tasksToMeasure.length,\n },\n });\n\n start = performance.now();\n runTasks(tasksToUpdate);\n performance.measure('fastdom-update', {\n start,\n end: performance.now(),\n detail: {\n tasks: tasksToUpdate.length,\n },\n });\n } finally {\n // Release the interaction holds after the flush has completed.\n releaseAfterFlush();\n }\n}\n\nfunction scheduleFlush(): void {\n if (!isScheduled) {\n isScheduled = true;\n releaseInteractionHolds = blockActiveInteractions('wait-for-fastdom');\n requestAnimationFrame(flush);\n }\n}\n\nfunction createCancellableTask(fn: TaskFn, queue: Task[]): CancellablePromise {\n let task: Task;\n\n const promise = new Promise<void>((resolve, reject) => {\n task = { fn, resolve, reject };\n queue.push(task);\n scheduleFlush();\n }) as CancellablePromise;\n\n promise.cancel = () => {\n measureQueue = measureQueue.filter((t) => t !== task);\n updateQueue = updateQueue.filter((t) => t !== task);\n };\n\n return promise;\n}\n\n/**\n * Schedules a DOM read task (e.g., getBoundingClientRect, offsetWidth).\n * @returns Promise that resolves when task completes. Call .cancel() to abort.\n */\nexport function measure(fn: TaskFn): CancellablePromise {\n return createCancellableTask(fn, measureQueue);\n}\n\n/**\n * Schedules a DOM write task (e.g., style.width, classList.add).\n * @returns Promise that resolves when task completes. Call .cancel() to abort.\n */\nexport function update(fn: TaskFn): CancellablePromise {\n return createCancellableTask(fn, updateQueue);\n}\n\n/**\n * Flush all pending measure/update tasks immediately.\n * Intended for use in tests to avoid depending on requestAnimationFrame timing.\n */\nexport function flushFastdomForTesting(): void {\n while (measureQueue.length > 0 || updateQueue.length > 0 || isScheduled) {\n flush();\n }\n}\n","import { useState, useEffect, useRef, useCallback } from 'react';\n\nimport { measure, update, type CancellablePromise } from './fastdom';\n\ntype Task = () => void;\n\n/**\n * Schedules fastdom tasks with automatic cleanup on unmount.\n * Propagates the first error in a batch to the nearest Error Boundary.\n */\nexport function useFastDom(): {\n measure: (fn: Task) => CancellablePromise;\n mutate: (fn: Task) => CancellablePromise;\n} {\n const [error, setError] = useState<unknown>(null);\n const tasks = useRef<CancellablePromise[]>([]);\n\n if (error) throw error;\n\n useEffect(() => {\n return () => {\n tasks.current.forEach((task) => task.cancel());\n };\n }, []);\n\n const scheduleTask = useCallback((type: 'measure' | 'update', fn: Task) => {\n const promise = (type === 'measure' ? measure : update)(fn);\n tasks.current.push(promise);\n\n promise\n .catch((err) => setError((prev: unknown) => prev || err))\n .finally(() => {\n tasks.current = tasks.current.filter((t) => t !== promise);\n });\n\n return promise;\n }, []);\n\n return {\n measure: useCallback((fn: Task) => scheduleTask('measure', fn), [scheduleTask]),\n mutate: useCallback((fn: Task) => scheduleTask('update', fn), [scheduleTask]),\n };\n}\n","const DANGEROUS_PROTOCOL_RE = /^\\s*(javascript|data|vbscript|blob)\\s*:/i;\n\n// Browsers strip these characters during URL parsing per WHATWG URL Standard\nconst ASCII_TAB_OR_NEWLINE_RE = /[\\t\\n\\r]/g;\n\n/**\n * Returns true if the URL does not use an executable protocol that could\n * trigger DOM XSS (javascript:, data:, vbscript:, blob:). Allows http/https\n * URLs and relative paths.\n *\n * Note this is a deny-list: a scheme that is not listed above (ftp:, file:, a\n * custom scheme) is considered safe here. Callers that navigate consumer-supplied\n * URLs should prefer a fail-closed allow-list — see `sanitizeNavigationUrl`.\n */\nexport function isSafeUrl(url: string): boolean {\n const normalized = url.replace(ASCII_TAB_OR_NEWLINE_RE, '');\n return !DANGEROUS_PROTOCOL_RE.test(normalized);\n}\n\n/**\n * Returns true if the URL is a safe relative path. Rejects anything containing\n * protocol handlers (javascript:, data:, etc.), protocol-relative URLs (//),\n * or paths that don't start with '/'.\n *\n * This mirrors the validation in webapp LoginUtils.redirectWithHash() and the\n * backend CreateSessionHandler.validateNextUrl().\n */\nexport function isSafeRelativeUrl(url: string): boolean {\n if (!isSafeUrl(url)) {\n return false;\n }\n\n // Normalize before structural checks so browsers' WHATWG URL parsing\n // (which strips tab/newline/CR) can't bypass the '//' or '/' checks.\n const normalized = url.replace(ASCII_TAB_OR_NEWLINE_RE, '');\n\n // Reject protocol-relative URLs (e.g. //evil.com) which browsers treat as\n // absolute URLs. Only the leading '//' is dangerous — occurrences deeper in\n // the URL (e.g. inside query params like redirect_uri=http://localhost:8080)\n // are safe because the browser has already parsed the path portion.\n // See SEC-15929 for the original vulnerability report.\n if (normalized.startsWith('//')) {\n return false;\n }\n\n if (!normalized.startsWith('/')) {\n return false;\n }\n\n return true;\n}\n\n/**\n * Validates a next_url parameter to prevent open redirect and DOM XSS attacks.\n * Only relative paths (starting with '/') are allowed. Returns the fallback URL\n * if the input is missing or potentially malicious (e.g. javascript:, //, http:).\n * If no fallback is provided, returns the original input as-is when validation fails.\n */\nexport function sanitizeNextUrl(nextUrl: string | null, fallbackUrl: string): string;\nexport function sanitizeNextUrl(nextUrl: string | null): string | null;\nexport function sanitizeNextUrl(nextUrl: string | null, fallbackUrl?: string): string | null {\n if (nextUrl == null || !isSafeRelativeUrl(nextUrl)) {\n return fallbackUrl ?? nextUrl;\n }\n\n return nextUrl;\n}\n","import {\n DesignSystemEventProvider,\n type DesignSystemEventProviderCallback,\n type DesignSystemEventProviderCallbackParams,\n} from './DesignSystemEventProvider';\n\nexport const setupDesignSystemEventProviderForTesting = (\n eventCallback: DesignSystemEventProviderCallback,\n): {\n DesignSystemEventProviderForTest: ({ children }: { children: React.ReactNode }) => JSX.Element;\n} => {\n const eventCallbackWrapper = (arg: DesignSystemEventProviderCallbackParams) => {\n if (arg?.componentViewId) {\n const { componentViewId, ...rest } = arg; // strip componentViewId out of jest call args\n eventCallback(rest);\n return;\n }\n eventCallback(arg);\n };\n return {\n DesignSystemEventProviderForTest: ({ children }: { children: React.ReactNode }) => (\n <DesignSystemEventProvider callback={eventCallbackWrapper}>{children}</DesignSystemEventProvider>\n ),\n };\n};\n","import { ThemeProvider as EmotionThemeProvider } from '@emotion/react';\nimport { useMemo, type PropsWithChildren } from 'react';\n\nimport { DesignTokenScope } from './DesignSystemProvider';\nimport type { Theme } from '../../theme';\nimport { useDesignSystemTheme } from '../Hooks/useDesignSystemTheme';\n\nexport interface DesignTokenScopeWithEmotionThemeProps {\n theme: Theme;\n}\n\nfunction getColorDelta<T>(colors: T, ambientColors: T): Partial<T> {\n const delta: Partial<T> = {};\n for (const colorName in colors) {\n if (colors[colorName] !== ambientColors[colorName]) {\n delta[colorName] = colors[colorName];\n }\n }\n return delta;\n}\n\n/**\n * Migration-only bridge: relevant only while a subtree still mixes the two theming systems. It layers\n * a full emotion `Theme` on top of `DesignTokenScope` so the override stays consistent across both\n * delivery paths that would otherwise diverge:\n * 1. Emotion JS theme — what legacy AntD-path components read; crosses React portals via context.\n * 2. Design tokens (in-tree + portaled) — `DesignTokenScope` stamps the colors that differ from the\n * ambient theme as native `--db-color-*` variables and feeds `DesignSystemThemeContext`, so both\n * in-tree and portaled native (token-based) components inherit them.\n *\n * A bare emotion `ThemeProvider` only drives path 1, so an overridden theme's colors would land on\n * AntD components but leave native ones on the ambient scope's standard tokens. Once everything is on\n * the design-token system this wrapper collapses to a plain `DesignTokenScope` and can be removed.\n *\n * @deprecated Migration-only bridge; do not use in new code. Prefer a plain `DesignTokenScope` — this\n * wrapper exists solely to keep emotion-theme and design-token overrides consistent while a subtree\n * still mixes the two theming systems.\n */\nexport function DesignTokenScopeWithEmotionTheme({\n theme,\n children,\n}: PropsWithChildren<DesignTokenScopeWithEmotionThemeProps>): JSX.Element {\n const { theme: ambientTheme } = useDesignSystemTheme();\n const semanticColors = useMemo(\n () => getColorDelta(theme.colors, ambientTheme.colors),\n [theme.colors, ambientTheme.colors],\n );\n\n return (\n <EmotionThemeProvider theme={theme}>\n <DesignTokenScope semanticColors={semanticColors} isDarkMode={theme.isDarkMode}>\n {children}\n </DesignTokenScope>\n </EmotionThemeProvider>\n );\n}\n","import { useDesignSystemContext } from './useDesignSystemContext';\nimport type { DesignSystemFlags } from '../../flags';\n\nexport function useDesignSystemFlags(): DesignSystemFlags {\n const context = useDesignSystemContext();\n\n return context.flags;\n}\n","import { useMemo, useRef } from 'react';\n\nimport { useDesignSystemTheme } from './useDesignSystemTheme';\nimport type { Theme } from '../../theme';\n\n/**\n * A helper hook that allows quick creation of theme-dependent styles.\n * Results in more compact code than using useMemo and\n * useDesignSystemTheme separately.\n *\n * @example\n * const styles = useThemedStyles((theme) => ({\n * overlay: {\n * backgroundColor: theme.colors.backgroundPrimary,\n * borderRadius: theme.borders.borderRadiusMd,\n * },\n * wrapper: {\n * display: 'flex',\n * gap: theme.spacing.md,\n * },\n * }));\n\n * <div css={styles.overlay}>...</div>\n *\n * @param styleFactory Factory function that accepts theme object as a parameter and returns\n * the style object. **Note**: factory function body is being memoized internally and is intended\n * to be used only for simple style objects that depend solely on the theme. If you want to use\n * styles that change depending on external values (state, props etc.) you should use\n * `useDesignSystemTheme` directly with your own reaction mechanism.\n * @returns The constructed style object\n */\nexport const useThemedStyles = <T>(styleFactory: (theme: Theme) => T): T => {\n const { theme } = useDesignSystemTheme();\n\n // We can assume that the factory function won't change and we're\n // observing theme changes only.\n const styleFactoryRef = useRef(styleFactory);\n return useMemo(() => styleFactoryRef.current(theme), [theme]);\n};\n","import type { IconType as AntDIconType } from 'antd/lib/notification';\nimport { forwardRef, type ForwardRefExoticComponent, type PropsWithoutRef, type RefAttributes } from 'react';\n\nimport type { IconProps } from './Icon';\nimport { CheckCircleFillIcon, DangerFillIcon, InfoFillIcon, WarningFillIcon } from './__generated/icons';\n\ninterface MinimalIconProps {\n className?: string;\n}\n\n// TODO: Replace with custom icons\n// TODO: Reuse in Alert\nconst filledIconsMap: Record<AntDIconType, ForwardRefExoticComponent<IconProps>> = {\n error: DangerFillIcon,\n warning: WarningFillIcon,\n success: CheckCircleFillIcon,\n info: InfoFillIcon,\n};\n\nexport interface SeverityIconProps extends MinimalIconProps {\n severity: AntDIconType;\n}\n\nexport const SeverityIcon: ForwardRefExoticComponent<\n PropsWithoutRef<SeverityIconProps> & RefAttributes<HTMLSpanElement>\n // eslint-disable-next-line react-component-name/react-component-name -- TODO(FEINF-4716)\n> = forwardRef<HTMLSpanElement, SeverityIconProps>(function (props, ref): JSX.Element {\n const FilledIcon = filledIconsMap[props.severity];\n return <FilledIcon ref={ref} {...props} />;\n});\n","import type { CSSObject } from '@emotion/react';\nimport { css } from '@emotion/react';\nimport type { AlertProps as AntDAlertProps } from 'antd';\nimport { Alert as AntDAlert } from 'antd';\nimport cx from 'classnames';\nimport { useEffect, useMemo, useRef, useState } from 'react';\n\nimport type { Theme } from '../../theme';\nimport type { ButtonProps } from '../Button';\nimport { Button } from '../Button';\nimport {\n DesignSystemEventProviderAnalyticsEventTypes,\n DesignSystemEventProviderComponentTypes,\n useDesignSystemEventComponentCallbacks,\n DesignSystemEventProviderComponentSubTypeMap,\n} from '../DesignSystemEventProvider';\nimport { DesignSystemAntDConfigProvider, getAnimationCss } from '../DesignSystemProvider';\nimport { useDesignSystemTheme } from '../Hooks';\nimport { ChevronDownIcon, ChevronRightIcon, CloseSmallIcon } from '../Icon';\nimport { SeverityIcon } from '../Icon/iconMap';\nimport { Modal } from '../Modal';\nimport { Typography } from '../Typography';\nimport { ShapeTokens } from '../shape-tokens';\nimport type { AnalyticsEventProps, DangerouslySetAntdProps, HTMLDataAttributes } from '../types';\nimport { useNotifyOnFirstView } from '../utils';\nimport { addDebugOutlineIfEnabled } from '../utils/debug';\nimport { token } from '../utils/token';\nimport { useStableUuidV4 } from '../utils/useStableUuidV4';\n\nexport type AlertType = NonNullable<AntDAlertProps['type']>;\n\nexport interface AlertProps\n extends\n Omit<AntDAlertProps, 'closeText' | 'showIcon' | 'type' | 'icon'>,\n HTMLDataAttributes,\n // Narrowed from the full `AntDAlertProps` to only the props consumers actually reach for through\n // the escape hatch (audit FEINF-6136): `showIcon`/`icon` (omitted from the first-class API) plus a\n // few first-class props still passed here by legacy callers. Locking the surface here keeps it from\n // growing before the AntD→Native swap (`NativeAlert`) drops this passthrough entirely.\n DangerouslySetAntdProps<Partial<Pick<AntDAlertProps, 'showIcon' | 'icon' | 'message' | 'description' | 'type'>>>,\n AnalyticsEventProps<DesignSystemEventProviderAnalyticsEventTypes.OnView> {\n type: AlertType;\n closeIconLabel?: string;\n /**\n * @deprecated Use CEP-governed banners instead. go/banner/create go/getabanner go/banner\n */\n banner?: boolean;\n /**\n * @deprecated Please use `actions` instead.\n */\n action?: AntDAlertProps['action'];\n /** Array of button props to render as footer actions. All buttons will be rendered as small size. */\n actions?: Omit<ButtonProps, 'size' | 'type'>[];\n /** Force actions to be rendered beneath the description. */\n forceVerticalActionsPlacement?: boolean;\n /**\n * When true (and `forceVerticalActionsPlacement` is false), multiple `actions` render in the top\n * horizontal action slot instead of stacking under the description.\n */\n forceHorizontalActionsPlacement?: boolean;\n /** When true, the description body (and vertical actions, if any) can be collapsed via a chevron control. */\n collapsible?: boolean;\n /** Initial expanded state when `collapsible` is true. Defaults to true. */\n defaultExpanded?: boolean;\n /** Accessible label for the expand control when collapsed. Defaults to \"Expand alert details\". */\n expandToggleAriaLabel?: string;\n /** Accessible label for the collapse control when expanded. Defaults to \"Collapse alert details\". */\n collapseToggleAriaLabel?: string;\n /** Content to display in a modal when \"Show details\" is clicked */\n showMoreContent?: React.ReactNode;\n /** Text for the \"Show details\" link. Defaults to \"Show details\" */\n showMoreText?: string;\n /** Text for \"Show details\" modal title. Defaults to \"Details\" */\n showMoreModalTitle?: string;\n size?: 'small' | 'large';\n}\n\nexport const Alert: React.FC<React.PropsWithChildren<AlertProps>> = ({\n componentId,\n analyticsEvents = [DesignSystemEventProviderAnalyticsEventTypes.OnView],\n dangerouslySetAntdProps,\n closable = true,\n closeIconLabel = 'Close alert',\n onClose,\n actions,\n showMoreContent,\n showMoreText = 'Show details',\n showMoreModalTitle = 'Details',\n forceVerticalActionsPlacement = false,\n forceHorizontalActionsPlacement = false,\n collapsible = false,\n defaultExpanded = true,\n expandToggleAriaLabel = 'Expand alert details',\n collapseToggleAriaLabel = 'Collapse alert details',\n size = 'large',\n ...props\n}) => {\n const { theme, getPrefixedClassName } = useDesignSystemTheme();\n const memoizedAnalyticsEvents = useMemo(() => analyticsEvents, [analyticsEvents]);\n const eventContext = useDesignSystemEventComponentCallbacks({\n componentType: DesignSystemEventProviderComponentTypes.Alert,\n componentId,\n componentSubType: DesignSystemEventProviderComponentSubTypeMap[props.type],\n analyticsEvents: memoizedAnalyticsEvents,\n });\n const closeButtonEventContext = useDesignSystemEventComponentCallbacks({\n componentType: DesignSystemEventProviderComponentTypes.Button,\n componentId: componentId ? `${componentId}.close` : 'codegen_design_system_src_design_system_alert_alert.tsx_50',\n analyticsEvents: [DesignSystemEventProviderAnalyticsEventTypes.OnClick],\n });\n const { elementRef } = useNotifyOnFirstView<HTMLSpanElement>({ onView: eventContext.onView });\n const clsPrefix = getPrefixedClassName('alert');\n const [isModalOpen, setIsModalOpen] = useState(false);\n const [isExpanded, setIsExpanded] = useState(defaultExpanded);\n const descriptionRegionId = useStableUuidV4();\n\n const mergedProps: AntDAlertProps & { type: AlertType } = {\n ...props,\n type: props.type || 'error',\n showIcon: true,\n closable,\n };\n\n const closeIconRef = useRef<HTMLSpanElement>(null);\n\n useEffect(() => {\n if (closeIconRef.current) {\n closeIconRef.current.removeAttribute('aria-label');\n closeIconRef.current.closest('button')?.setAttribute('aria-label', closeIconLabel);\n }\n }, [mergedProps.closable, closeIconLabel, closeIconRef]);\n\n const onCloseWrapper: React.MouseEventHandler<HTMLButtonElement> = (e) => {\n closeButtonEventContext.onClick(e);\n onClose?.(e);\n };\n\n const memoizedActions = useMemo(() => {\n if (!actions?.length) return null;\n return actions.map((action, index) => <Button key={index} size=\"small\" {...action} />);\n }, [actions]);\n\n const actionCount = actions?.length ?? 0;\n const placeActionsHorizontally =\n actionCount > 0 && !forceVerticalActionsPlacement && (actionCount === 1 || forceHorizontalActionsPlacement);\n\n const horizontalActionsNode =\n memoizedActions && placeActionsHorizontally ? (\n <div\n css={{\n display: 'flex',\n flexDirection: 'row',\n flexWrap: 'wrap',\n gap: theme.spacing.sm,\n alignItems: 'center',\n justifyContent: 'flex-end',\n flexShrink: 0,\n marginInlineStart: 'auto',\n }}\n >\n {memoizedActions}\n </div>\n ) : null;\n\n const hasDescription = props.description != null || Boolean(showMoreContent);\n\n // Put horizontal `actions` inside `message` so the description body spans the full content width\n // and flows beneath the buttons (antd's `action` slot keeps description in a narrow column beside actions).\n // Reserve ~one short status title line (e.g. \"Gateway starting\") before sharing a row with actions;\n // when the row is too narrow, actions wrap below via flex-wrap instead of squeezing the title.\n const messageWithHorizontalActions =\n horizontalActionsNode && !mergedProps.action ? (\n <div\n css={{\n display: 'flex',\n flexDirection: 'row',\n flexWrap: actionCount > 1 ? 'wrap' : 'nowrap',\n alignItems: hasDescription ? 'flex-start' : 'center',\n gap: theme.spacing.md,\n justifyContent: 'flex-start',\n width: '100%',\n }}\n >\n <div\n css={{\n flex: '1 1 auto',\n maxWidth: '100%',\n }}\n >\n {mergedProps.message}\n </div>\n {horizontalActionsNode}\n </div>\n ) : null;\n const hasVerticalActions = memoizedActions != null && !placeActionsHorizontally;\n const showCollapseToggle = collapsible && (hasDescription || hasVerticalActions);\n const hasDescriptionSlotContent = hasDescription || hasVerticalActions || showCollapseToggle;\n\n const descriptionTextNode = hasDescription ? (\n <div css={{ overflowWrap: 'anywhere', wordBreak: 'break-word' }}>\n {props.description}\n {props.description != null && showMoreContent ? ' ' : null}\n {showMoreContent && (\n <Typography.Link\n href=\"#\"\n componentId={componentId ? `${componentId}.show_more` : 'alert.show_more'}\n onClick={(e) => {\n e.preventDefault();\n setIsModalOpen(true);\n }}\n >\n {showMoreText}\n </Typography.Link>\n )}\n </div>\n ) : null;\n\n const verticalActionsNode = hasVerticalActions ? (\n <div\n css={{\n display: 'flex',\n gap: theme.spacing.sm,\n marginTop: theme.spacing.xs,\n marginBottom: theme.spacing.xs,\n }}\n >\n {memoizedActions}\n </div>\n ) : null;\n\n const descriptionBody = (\n <>\n {descriptionTextNode}\n {verticalActionsNode}\n </>\n );\n\n // Always pass a description element so AntD consistently applies its `.ant-alert-with-description`\n // class. The style function overrides all dist side-effects of that class. Without this, title-only\n // alerts would get different base AntD styles (icon positioning, padding, font sizes) causing layout\n // shifts. The description container is hidden via CSS when there is no content to display.\n const finalDescription = !hasDescriptionSlotContent ? (\n <></>\n ) : showCollapseToggle ? (\n <div id={descriptionRegionId} css={!isExpanded ? { display: 'none' } : undefined}>\n {descriptionBody}\n </div>\n ) : (\n descriptionBody\n );\n\n const alertIcon = (\n <div\n css={{\n display: 'inline-flex',\n flexDirection: 'row',\n alignItems: 'center',\n gap: theme.spacing.xs,\n }}\n >\n {showCollapseToggle && (\n <Button\n aria-expanded={isExpanded}\n aria-controls={descriptionRegionId}\n aria-label={isExpanded ? collapseToggleAriaLabel : expandToggleAriaLabel}\n componentId={componentId ? `${componentId}.collapse_toggle` : 'alert.collapse_toggle'}\n htmlType=\"button\"\n icon={\n isExpanded ? (\n <ChevronDownIcon css={{ color: theme.colors.textSecondary }} />\n ) : (\n <ChevronRightIcon css={{ color: theme.colors.textSecondary }} />\n )\n }\n onClick={() => setIsExpanded((v) => !v)}\n size=\"small\"\n type=\"tertiary\"\n />\n )}\n <SeverityIcon severity={mergedProps.type} ref={elementRef} />\n </div>\n );\n\n return (\n <DesignSystemAntDConfigProvider>\n <AntDAlert\n {...addDebugOutlineIfEnabled()}\n {...mergedProps}\n onClose={onCloseWrapper}\n className={cx(mergedProps.className)}\n css={getAlertEmotionStyles(\n clsPrefix,\n theme,\n mergedProps.type,\n size,\n mergedProps.banner,\n hasDescriptionSlotContent,\n )}\n icon={alertIcon}\n closeText={\n mergedProps.closable && (\n <CloseSmallIcon\n ref={closeIconRef}\n aria-label={closeIconLabel}\n css={{ marginTop: placeActionsHorizontally ? theme.spacing.xs : 2 }}\n />\n )\n }\n description={finalDescription}\n message={messageWithHorizontalActions ?? mergedProps.message}\n action={mergedProps.action}\n {...dangerouslySetAntdProps}\n {...eventContext.dataComponentProps}\n />\n {showMoreContent && (\n <Modal\n title={showMoreModalTitle}\n visible={isModalOpen}\n onCancel={() => setIsModalOpen(false)}\n componentId={componentId ? `${componentId}.show_more_modal` : 'alert.show_more_modal'}\n footer={null}\n size=\"wide\"\n >\n {showMoreContent}\n </Modal>\n )}\n </DesignSystemAntDConfigProvider>\n );\n};\n\n/**\n * Single flat style function. Antd always receives a `description` prop so `-with-description` is\n * always applied. We override every dist side-effect (icon absolute positioning, enlarged font sizes,\n * altered padding) here so there is only one layout path: flex-wrap row with the description on row 2.\n */\nconst getAlertEmotionStyles = (\n clsPrefix: string,\n theme: Theme,\n alertType: string | undefined,\n size: 'small' | 'large',\n isBanner: boolean | undefined,\n hasDescriptionContent: boolean,\n) => {\n const isSmall = size === 'small';\n const classCloseIcon = `.${clsPrefix}-close-icon`;\n const classCloseText = `.${clsPrefix}-close-text`;\n const classDescription = `.${clsPrefix}-description`;\n const classMessage = `.${clsPrefix}-message`;\n const classIcon = `.${clsPrefix}-icon`;\n\n const BORDER_SIZE = theme.general.borderWidth;\n const LARGE_PADDING = theme.spacing.xs * 3;\n const SMALL_PADDING = theme.spacing.sm;\n const ICON_GAP = theme.spacing.sm;\n\n const styles: CSSObject = {\n // --- Layout ---\n // AntD DOM: .alert-icon | .alert-content (message + description) | .alert-close-icon\n // When there is description content, flex-start keeps icon/close aligned with the first\n // line of the message while the description flows below. Without description content,\n // center aligns icon, message (which may include inline action buttons), and close button.\n display: 'flex !important' as CSSObject['display'],\n alignItems: `${hasDescriptionContent ? 'flex-start' : 'center'} !important` as CSSObject['alignItems'],\n\n // --- General tokens ---\n // !important defeats dist's `.alert-with-description { padding: 7px 15px 7px 24px }`\n // which applies asymmetric padding intended for the original absolute-positioned icon layout.\n padding: isSmall\n ? `${theme.spacing.xs + BORDER_SIZE}px ${SMALL_PADDING}px !important`\n : `${LARGE_PADDING - BORDER_SIZE}px ${LARGE_PADDING}px !important`,\n boxSizing: 'border-box',\n borderRadius: token(ShapeTokens.INFO_CONTAINER_BORDER_RADIUS, theme.borders.borderRadiusSm),\n borderColor: theme.colors.border,\n\n // --- Icon: reset dist absolute positioning, keep at top-start ---\n [classIcon]: {\n position: 'relative !important' as CSSObject['position'],\n top: 'auto !important' as CSSObject['top'],\n left: 'auto !important' as CSSObject['left'],\n fontSize: theme.general.iconFontSize,\n display: 'inline-flex',\n alignItems: 'center',\n height: theme.typography.lineHeightBase,\n marginTop: 0,\n marginRight: ICON_GAP,\n },\n\n // --- Message: fill remaining space on row 1, override dist 18px ---\n [classMessage]: {\n flex: '1 1 auto',\n minWidth: 0,\n fontSize: theme.typography.fontSizeBase,\n fontWeight: theme.typography.typographyBoldFontWeight,\n lineHeight: theme.typography.lineHeightBase,\n marginBottom: 0,\n },\n\n // --- Description: stacks below message inside .alert-content ---\n [classDescription]: {\n lineHeight: theme.typography.lineHeightBase,\n // Hide the description container for title-only alerts. We always pass a description\n // element to AntD to keep the `.ant-alert-with-description` class applied, but when\n // there is no actual content the container must not take up space.\n ...(!hasDescriptionContent && { display: 'none' }),\n },\n\n // --- Close button: height matches icon/text so the centered X aligns ---\n [classCloseIcon]: {\n lineHeight: theme.typography.lineHeightBase,\n height: theme.typography.lineHeightBase,\n width: theme.general.iconFontSize,\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n position: 'relative !important' as CSSObject['position'],\n top: 'auto !important' as CSSObject['top'],\n right: 'auto !important' as CSSObject['right'],\n marginLeft: ICON_GAP,\n '&:focus-visible': {\n outlineStyle: 'auto',\n outlineColor: theme.colors.actionDefaultBorderFocus,\n },\n },\n [`${classCloseText} > span`]: {\n lineHeight: theme.typography.lineHeightBase,\n height: theme.general.iconFontSize,\n width: theme.general.iconFontSize,\n fontSize: theme.general.iconFontSize,\n display: 'inline-flex',\n alignItems: 'center',\n },\n\n // --- Type colors ---\n ...(alertType === 'warning' && {\n color: theme.colors.textValidationWarning,\n borderColor: theme.colors.yellow300,\n }),\n ...(alertType === 'error' && {\n color: theme.colors.textValidationDanger,\n borderColor: theme.colors.red300,\n }),\n\n ...(alertType === 'success' && {\n color: theme.colors.textValidationSuccess,\n borderColor: theme.colors.green300,\n backgroundColor: theme.colors.backgroundSuccess,\n }),\n\n // --- Banner ---\n ...(isBanner && {\n borderStyle: 'solid',\n borderWidth: `${theme.general.borderWidth}px 0`,\n }),\n\n // --- After closed ---\n '&[data-show=\"false\"]': {\n borderWidth: 0,\n padding: '0 !important' as CSSObject['padding'],\n width: 0,\n height: 0,\n },\n\n ...getAnimationCss(theme.options.enableAnimation),\n };\n\n return css(styles);\n};\n","import { type CSSObject, Global, css, type SerializedStyles } from '@emotion/react';\n\nimport type { Theme } from '../../theme';\nimport { useDesignSystemTheme } from '../Hooks';\n\nexport const getGlobalStyles = (theme: Theme): SerializedStyles => {\n const bodyStyles: CSSObject = {\n backgroundColor: theme.colors.backgroundPrimary,\n color: theme.colors.textPrimary,\n '--dubois-global-background-color': theme.colors.backgroundPrimary,\n '--dubois-global-color': theme.colors.textPrimary,\n ...globalResetStyles(),\n };\n\n return css({\n 'body, .mfe-root': bodyStyles,\n });\n};\n\nconst globalResetStyles = (): CSSObject => ({\n boxSizing: 'border-box',\n '*, *::before, *::after': { boxSizing: 'border-box' },\n});\n\n// Only used in storybook and some embedded surfaces that don't use ApplyGlobalStyles\nexport const getGlobalResetStyles = (): SerializedStyles => {\n return css(globalResetStyles());\n};\n\nexport const ApplyGlobalStyles: React.FC<React.PropsWithChildren<unknown>> = () => {\n const { theme } = useDesignSystemTheme();\n return <Global styles={getGlobalStyles(theme)} />;\n};\n","import { css } from '@emotion/react';\nimport type { AutoCompleteProps as AntDAutoCompleteProps } from 'antd';\nimport { AutoComplete as AntDAutoComplete } from 'antd';\nimport type { OptionType } from 'antd/es/select';\n\nimport { DesignSystemAntDConfigProvider, getAnimationCss } from '../DesignSystemProvider';\nimport { useDesignSystemTheme } from '../Hooks/useDesignSystemTheme';\nimport type { DangerouslySetAntdProps, HTMLDataAttributes } from '../types';\nimport { getDarkModePortalStyles } from '../utils';\nimport { addDebugOutlineIfEnabled } from '../utils/debug';\n\nexport interface AutoCompleteProps extends AntDAutoCompleteProps {}\n\nexport interface AutoCompleteProps\n extends AntDAutoCompleteProps, DangerouslySetAntdProps<AntDAutoCompleteProps>, HTMLDataAttributes {}\n\ninterface AutoCompleteInterface extends React.FC<AutoCompleteProps> {\n Option: OptionType;\n}\n\n/**\n * @deprecated Use `TypeaheadCombobox` instead.\n */\nexport const AutoComplete: AutoCompleteInterface = /* #__PURE__ */ (() => {\n const AutoComplete: AutoCompleteInterface = ({ dangerouslySetAntdProps, ...props }) => {\n const { theme } = useDesignSystemTheme();\n\n return (\n <DesignSystemAntDConfigProvider>\n <AntDAutoComplete\n {...addDebugOutlineIfEnabled()}\n dropdownStyle={{\n boxShadow: theme.general.shadowLow,\n ...getDarkModePortalStyles(theme),\n }}\n {...props}\n {...dangerouslySetAntdProps}\n css={css(getAnimationCss(theme.options.enableAnimation))}\n />\n </DesignSystemAntDConfigProvider>\n );\n };\n\n AutoComplete.Option = AntDAutoComplete.Option;\n\n return AutoComplete;\n})();\n","// eslint-disable-next-line no-restricted-imports -- grandfathering, see go/ui-bestpractices\nimport * as React from 'react';\n\nexport function SvgDatabricksIcon(props: React.SVGProps<SVGSVGElement>): JSX.Element {\n return (\n <svg viewBox=\"0 0 24 24\" width=\"100%\" height=\"100%\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <rect width=\"24\" height=\"24\" fill=\"#FF3621\" />\n <path\n d=\"m18.8 10.515-6.8228 3.945-7.3059-4.215-0.35138 0.195v3.06l7.6573 4.41 6.8228-3.93v1.62l-6.8228 3.945-7.3059-4.215-0.35138 0.195v0.525l7.6573 4.41 7.6427-4.41v-3.06l-0.3514-0.195-7.2913 4.2-6.8374-3.93v-1.62l6.8374 3.93 7.6427-4.41v-3.015l-0.3807-0.225-7.262 4.185-6.486-3.72 6.486-3.735 5.3294 3.075 0.4685-0.27v-0.375l-5.7979-3.345-7.6573 4.41v0.48l7.6573 4.41 6.8228-3.945v1.62z\"\n fill=\"#fff\"\n />\n </svg>\n );\n}\n","// eslint-disable-next-line no-restricted-imports -- grandfathering, see go/ui-bestpractices\nimport * as React from 'react';\n\nexport function SvgUserIcon(props: React.SVGProps<SVGSVGElement>): JSX.Element {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"100%\" height=\"auto\" fill=\"none\" viewBox=\"0 0 400 400\" {...props}>\n <path\n d=\"M200 69.333c-44.873 0-81.25 36.377-81.25 81.25s36.377 81.25 81.25 81.25 81.25-36.377 81.25-81.25-36.377-81.25-81.25-81.25Zm0 200c-69.162 0-130.835 32.119-170.89 82.181A18.748 18.748 0 0 0 25 363.228v37.355c0 10.356 8.395 18.75 18.75 18.75h312.5c10.355 0 18.75-8.394 18.75-18.75v-37.355c0-4.258-1.449-8.39-4.11-11.714-40.055-50.062-101.728-82.181-170.89-82.181Z\"\n fill=\"#5F7281\"\n />\n </svg>\n );\n}\n","import { useState } from 'react';\n\nimport type { PopoverProps } from './Popover';\nimport * as Popover from './Popover';\nimport { useDesignSystemTheme } from '../Hooks';\nimport type { IconProps } from '../Icon';\nimport { InfoSmallIcon } from '../Icon';\nimport { useModalContext } from '../Modal';\n\nexport interface InfoPopoverProps extends React.HTMLAttributes<HTMLButtonElement> {\n popoverProps?: Omit<PopoverProps, 'children' | 'title'>;\n iconProps?: IconProps;\n iconTitle?: string;\n isKeyboardFocusable?: boolean;\n ariaLabel?: string;\n}\n\nexport const InfoPopover = ({\n children,\n popoverProps,\n iconTitle,\n iconProps,\n isKeyboardFocusable = true,\n ariaLabel = 'More details',\n}: InfoPopoverProps): JSX.Element => {\n const { theme } = useDesignSystemTheme();\n const { isInsideModal } = useModalContext();\n\n const [open, setOpen] = useState(false);\n\n const handleKeyDown = (event: React.KeyboardEvent<any>) => {\n if (event.key === 'Enter' || event.key === ' ') {\n event.preventDefault();\n setOpen(!open);\n }\n };\n\n const { onKeyDown, ...restPopoverProps } = popoverProps || {};\n\n return (\n <Popover.Root\n componentId=\"codegen_design-system_src_design-system_popover_infopopover.tsx_36\"\n open={open}\n onOpenChange={setOpen}\n >\n <Popover.Trigger asChild>\n <span\n style={{ display: 'inline-flex', cursor: 'pointer' }}\n tabIndex={isKeyboardFocusable ? 0 : -1}\n onKeyDown={handleKeyDown}\n aria-label={iconTitle ? undefined : ariaLabel}\n role=\"button\"\n onClick={(e) => {\n e.preventDefault();\n e.stopPropagation();\n setOpen(!open);\n }}\n >\n <InfoSmallIcon\n aria-hidden={iconTitle ? false : true}\n title={iconTitle}\n aria-label={iconTitle}\n css={{\n color: theme.colors.textSecondary,\n }}\n {...iconProps}\n />\n </span>\n </Popover.Trigger>\n <Popover.Content\n align=\"start\"\n onKeyDown={(e) => {\n if (e.key === 'Escape') {\n // If inside an AntD Modal, stop propagation of Escape key so that the modal doesn't close.\n // This is specifically for that case, so we only do it if inside a modal to limit the blast radius.\n if (isInsideModal) {\n e.stopPropagation();\n // If stopping propagation, we also need to manually close the popover since the radix\n // library expects the event to bubble up to the parent components.\n setOpen(false);\n }\n }\n onKeyDown?.(e);\n }}\n {...restPopoverProps}\n >\n {children}\n <Popover.Arrow />\n </Popover.Content>\n </Popover.Root>\n );\n};\n","import type { HTMLAttributes } from 'react';\nimport React, { useCallback, useMemo, useRef, useState } from 'react';\n\nimport type { TooltipProps } from './Tooltip';\nimport { Tooltip } from './Tooltip';\n\nexport interface TruncationTooltipProps extends Omit<TooltipProps, 'open' | 'onOpenChange' | 'content'> {}\n\n/**\n * A variant of Tooltip that only shows when the child's text content is truncated.\n * The tooltip content is automatically derived from the child element's textContent,\n * so consumers don't need to pass the text.\n *\n * Truncation is checked lazily only on mouse enter, not during render.\n * This ensures negligible performance impact even with many TruncationTooltips on the page.\n *\n * Detects both:\n * - Horizontal ellipsis (text-overflow: ellipsis or overflow: hidden)\n * - Vertical line-clamp (line-clamp or -webkit-line-clamp)\n *\n * See go/dubois.\n */\nexport const TruncationTooltip: React.FC<React.PropsWithChildren<TruncationTooltipProps>> &\n HTMLAttributes<HTMLDivElement> = ({ children, ...tooltipProps }) => {\n const [open, setOpen] = useState(false);\n const [tooltipContent, setTooltipContent] = useState<string>('');\n const childRef = useRef<HTMLElement | null>(null);\n\n const handleOpenChange = useCallback((shouldOpen: boolean) => {\n if (shouldOpen && childRef.current) {\n const isHorizontallyTruncated = childRef.current.scrollWidth > childRef.current.clientWidth;\n const isVerticallyTruncated = childRef.current.scrollHeight > childRef.current.clientHeight;\n\n if (isHorizontallyTruncated || isVerticallyTruncated) {\n setTooltipContent(childRef.current.textContent ?? '');\n setOpen(true);\n }\n } else {\n setOpen(false);\n }\n }, []);\n\n const wrappedChildren = useMemo(() => {\n if (React.isValidElement(children)) {\n const childElement = children as React.ReactElement<any>;\n // TypeScript doesn't expose ref directly on ReactElement, so we need to cast\n const originalRef = (childElement as any).ref;\n\n return React.cloneElement(childElement, {\n ref: (node: HTMLElement | null) => {\n childRef.current = node;\n\n if (typeof originalRef === 'function') {\n originalRef(node);\n } else if (originalRef) {\n (originalRef as React.MutableRefObject<HTMLElement | null>).current = node;\n }\n },\n // Radix Tooltip sets aria-describedby on the trigger pointing to the tooltip content.\n // For truncation tooltips this causes screen readers to double-read: the full text is\n // already in the DOM (CSS truncation is visual-only), so the aria-describedby is\n // redundant. Setting undefined here overrides Radix's value via Slot prop merging.\n 'aria-describedby': undefined,\n });\n }\n return (\n <span ref={childRef as React.RefObject<HTMLSpanElement>} aria-describedby={undefined}>\n {children}\n </span>\n );\n }, [children]);\n\n return (\n <Tooltip {...tooltipProps} content={tooltipContent} open={open} onOpenChange={handleOpenChange}>\n {wrappedChildren}\n </Tooltip>\n );\n};\n","import { useState } from 'react';\n\nimport { Button } from '../Button';\nimport { Popover } from '../Popover';\nimport type { PopoverProps } from '../Popover/Popover';\nimport { Tooltip } from '../Tooltip';\nimport { addDebugOutlineIfEnabled } from '../utils/debug';\n\ninterface OverflowPopoverProps extends PopoverProps {\n items: React.ReactNode[];\n renderLabel?: (label: string) => React.ReactNode;\n tooltipText?: string;\n ariaLabel?: string;\n defaultOpen?: boolean;\n}\n\nexport const OverflowPopover = ({\n items,\n renderLabel,\n tooltipText,\n ariaLabel = 'More items',\n defaultOpen,\n ...props\n}: OverflowPopoverProps): JSX.Element => {\n const [showTooltip, setShowTooltip] = useState(true);\n const label = `+${items.length}`;\n\n let trigger = (\n <span css={{ lineHeight: 0 }} {...addDebugOutlineIfEnabled()}>\n <Popover.Trigger asChild>\n {/* button is needed so that the popover will open when the trigger is clicked */}\n <Button componentId=\"something\" type=\"link\">\n {renderLabel ? renderLabel(label) : label}\n </Button>\n </Popover.Trigger>\n </span>\n );\n\n if (showTooltip) {\n trigger = (\n <Tooltip componentId=\"design-system.overflow-popover.tooltip\" content={tooltipText || 'See more items'}>\n {trigger}\n </Tooltip>\n );\n }\n\n return (\n <Popover.Root\n componentId=\"codegen_design-system_src_design-system_overflow_overflowpopover.tsx_37\"\n defaultOpen={defaultOpen}\n onOpenChange={(open) => setShowTooltip(!open)}\n >\n {trigger}\n <Popover.Content align=\"start\" aria-label={ariaLabel} {...props} {...addDebugOutlineIfEnabled()}>\n <div css={{ display: 'flex', flexDirection: 'column', gap: 'var(--db-overflow-menu-spacing)' }}>\n {items.map((item, index) => (\n <div key={`overflow-${index}`}>{item}</div>\n ))}\n </div>\n </Popover.Content>\n </Popover.Root>\n );\n};\n","import { type Theme, type CSSObject } from '@emotion/react';\nimport React, { useMemo } from 'react';\n\nimport { SvgDatabricksIcon } from './SvgDatabricksIcon';\nimport { SvgUserIcon } from './SvgUserIcon';\nimport { useDesignSystemTheme } from '../Hooks';\nimport { SparkleDoubleIcon } from '../Icon';\nimport { OverflowPopover } from '../Overflow/OverflowPopover';\nexport type AvatarSize = 'xxs' | 'xs' | 'sm' | 'md' | 'lg' | 'xl';\nexport type AvatarBackgroundColor = 'indigo' | 'teal' | 'pink' | 'purple' | 'brown';\nexport type AvatarType = 'user' | 'entity';\n\ninterface AvatarBasicProps {\n /** Type of the avatar: user or entity */\n type: AvatarType;\n /** The label is used to reinforce the Avatar and is most likely the name of the user or entity. */\n label: string;\n /** Size of the avatar */\n size?: AvatarSize;\n}\n\ninterface AvatarImgProps extends AvatarBasicProps {\n /** Url for entity image */\n src?: string;\n /** Icon for entity image */\n icon?: never;\n}\n\ninterface AvatarIconProps extends AvatarBasicProps {\n /** Url for entity image */\n src?: never;\n /** Icon for entity image */\n icon?: React.ReactNode;\n /** Background color of the avatar. Only applicable for icon avatar */\n backgroundColor?: AvatarBackgroundColor;\n}\n\n// For user, either src or icon can be defined or none of both.\n// For entity, either src or icon must be defined.\nexport type AvatarProps =\n | {\n /** Type of the avatar: user or entity */\n type: 'user';\n /** Size of the avatar */\n size?: AvatarSize;\n }\n | AvatarImgProps\n | AvatarIconProps;\n\nconst SIZE = new Map<AvatarSize, { avatarSize: number; fontSize: number; groupShift: number; iconSize: number }>([\n ['xl', { avatarSize: 48, fontSize: 18, groupShift: 12, iconSize: 24 }],\n ['lg', { avatarSize: 40, fontSize: 16, groupShift: 8, iconSize: 20 }],\n ['md', { avatarSize: 32, fontSize: 14, groupShift: 4, iconSize: 16 }],\n ['sm', { avatarSize: 24, fontSize: 12, groupShift: 4, iconSize: 14 }],\n ['xs', { avatarSize: 20, fontSize: 12, groupShift: 2, iconSize: 12 }],\n ['xxs', { avatarSize: 16, fontSize: 11, groupShift: 2, iconSize: 12 }],\n]);\nconst DEFAULT_SIZE = 'sm';\n\nfunction getAvatarEmotionStyles({\n backgroundColor,\n size = DEFAULT_SIZE,\n theme,\n}: {\n backgroundColor?: AvatarBackgroundColor;\n size?: AvatarSize;\n theme: Theme;\n}) {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion -- TODO(FEINF-3982)\n const { avatarSize, fontSize, iconSize } = SIZE.get(size)!;\n\n return {\n abbr: {\n color: theme.colors.tagText,\n textDecoration: 'none',\n textTransform: 'uppercase',\n },\n default: {\n height: avatarSize,\n width: avatarSize,\n fontSize,\n [`.${theme.general.iconfontCssPrefix}`]: {\n fontSize: iconSize,\n },\n },\n icon: {\n alignItems: 'center',\n color: backgroundColor ? theme.colors.tagText : theme.colors.textSecondary,\n backgroundColor: backgroundColor\n ? theme.colors[backgroundColor]\n : theme.DU_BOIS_INTERNAL_ONLY.colors.tagBackgroundDefault,\n display: 'flex',\n justifyContent: 'center',\n },\n img: {\n objectFit: 'cover',\n objectPosition: 'center',\n } as CSSObject,\n system: {\n borderRadius: theme.borders.borderRadiusSm,\n overflow: 'hidden',\n },\n user: {\n borderRadius: '100%',\n overflow: 'hidden',\n },\n userIcon: {\n alignItems: 'flex-end',\n },\n } satisfies Record<string, CSSObject>;\n}\n\n/** Generate random number from a string between 0 - (maxRange - 1) */\nfunction getRandomNumberFromString({ value, maxRange }: { value: string; maxRange: number }) {\n let hash = 0;\n let char = 0;\n\n if (value.length === 0) return hash;\n\n for (let i = 0; i < value.length; i++) {\n char = value.charCodeAt(i);\n hash = (hash << 5) - hash + char;\n hash = hash & hash;\n }\n\n const idx = Math.abs(hash % maxRange);\n\n return idx;\n}\n\nfunction getAvatarBackgroundColor(label: string, theme: Theme) {\n const randomNumber = getRandomNumberFromString({ value: label, maxRange: 5 });\n\n switch (randomNumber) {\n case 0:\n return theme.colors.indigo;\n case 1:\n return theme.colors.teal;\n case 2:\n return theme.colors.pink;\n case 3:\n return theme.colors.brown;\n case 4:\n default:\n return theme.colors.purple;\n }\n}\n\nexport function Avatar(props: AvatarProps): JSX.Element {\n const { theme } = useDesignSystemTheme();\n const styles = getAvatarEmotionStyles({\n size: props.size,\n theme,\n backgroundColor: 'backgroundColor' in props ? props.backgroundColor : undefined,\n });\n\n switch (props.type) {\n case 'entity':\n if ('src' in props && props.src) {\n return <img css={[styles.default, styles.img, styles.system]} src={props.src} alt={props.label} />;\n }\n\n if ('icon' in props && props.icon) {\n return (\n <div css={[styles.default, styles.system, styles.icon]} role=\"img\" aria-label={props.label}>\n {props.icon}\n </div>\n );\n }\n\n // display first initial of name when no image / icon is provided\n return (\n <div\n css={[\n styles.default,\n styles.system,\n styles.icon,\n { backgroundColor: getAvatarBackgroundColor(props.label, theme) },\n ]}\n >\n <abbr css={styles.abbr} title={props.label}>\n {props.label.substring(0, 1)}\n </abbr>\n </div>\n );\n\n case 'user':\n if ('label' in props && props.label.trim()) {\n if (props.src) {\n return <img css={[styles.default, styles.img, styles.user]} src={props.src} alt={props.label} />;\n } else if (props.icon) {\n return (\n <div css={[styles.default, styles.user, styles.icon]} role=\"img\" aria-label={props.label}>\n {props.icon}\n </div>\n );\n }\n // display first initial of name when no image / icon is provided\n return (\n <div\n css={[\n styles.default,\n styles.user,\n styles.icon,\n { backgroundColor: getAvatarBackgroundColor(props.label, theme) },\n ]}\n >\n <abbr css={styles.abbr} title={props.label}>\n {props.label.substring(0, 1)}\n </abbr>\n </div>\n );\n }\n\n // default to user icon when no user info is provided\n return (\n <div css={[styles.default, styles.user, styles.icon, styles.userIcon]} role=\"img\" aria-label=\"user\">\n <SvgUserIcon />\n </div>\n );\n }\n}\n\nexport function DBAssistantAvatar({ size, label }: { size?: AvatarSize; label?: string }): JSX.Element {\n const defaultLabel = 'Genie Code';\n return <Avatar size={size} type=\"entity\" label={label ?? defaultLabel} icon={<SvgDatabricksIcon />} />;\n}\n\nexport function AssistantAvatar({\n backgroundColor,\n size,\n label,\n}: {\n backgroundColor?: AvatarBackgroundColor;\n size?: AvatarSize;\n label?: string;\n}): JSX.Element {\n const defaultLabel = 'Genie Code';\n return (\n <Avatar\n backgroundColor={backgroundColor}\n size={size}\n type=\"entity\"\n label={label ?? defaultLabel}\n icon={<SparkleDoubleIcon />}\n />\n );\n}\n\nconst MAX_AVATAR_GROUP_USERS = 3;\n\nexport interface AvatarGroupProps {\n size?: AvatarSize;\n users: (Omit<AvatarImgProps, 'type'> | Omit<AvatarIconProps, 'type'>)[];\n}\n\nfunction getAvatarGroupEmotionStyles(theme: Theme) {\n return {\n container: {\n display: 'flex',\n alignItems: 'center',\n gap: theme.spacing.xs,\n },\n avatarsContainer: {\n display: 'flex',\n },\n avatar: {\n display: 'flex',\n borderRadius: '100%',\n border: `1px solid ${theme.colors.backgroundPrimary}`,\n position: 'relative',\n } as CSSObject,\n };\n}\n\nexport function AvatarGroup({ size = DEFAULT_SIZE, users }: AvatarGroupProps): JSX.Element {\n const { theme } = useDesignSystemTheme();\n const styles = getAvatarGroupEmotionStyles(theme);\n const displayedUsers = useMemo(() => users.slice(0, MAX_AVATAR_GROUP_USERS), [users]);\n const extraUsers = useMemo(() => users.slice(MAX_AVATAR_GROUP_USERS), [users]);\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion -- TODO(FEINF-3982)\n const { avatarSize, groupShift: avatarShift, fontSize } = SIZE.get(size)!;\n\n return (\n <div css={styles.container}>\n <div\n css={{\n ...styles.avatarsContainer,\n width: (avatarSize + 2 - avatarShift) * displayedUsers.length + avatarShift,\n }}\n >\n {displayedUsers.map((user, idx) => (\n <div css={{ ...styles.avatar, left: -avatarShift * idx }} key={`${user.label}-idx`}>\n <Avatar size={size} type=\"user\" {...user} />\n </div>\n ))}\n </div>\n {extraUsers.length > 0 && (\n <OverflowPopover\n items={extraUsers.map((user) => user.label)}\n tooltipText=\"Show more users\"\n renderLabel={(label) => <span css={{ fontSize: `${fontSize}px !important` }}>{label}</span>}\n />\n )}\n </div>\n );\n}\n","import { css } from '@emotion/react';\nimport { Breadcrumb as AntDBreadcrumbRaw } from 'antd';\nimport type React from 'react';\n\nimport { DesignSystemAntDConfigProvider, getAnimationCss } from '../DesignSystemProvider';\nimport { useDesignSystemTheme } from '../Hooks/useDesignSystemTheme';\nimport { ChevronRightIcon } from '../Icon';\nimport type { HTMLDataAttributes, WithChildrenProps } from '../types';\nimport { addDebugOutlineIfEnabled } from '../utils/debug';\n\ninterface BreadcrumbDangerouslySetAntdProps {\n /** Custom separator between crumbs. Defaults to a chevron. */\n separator?: React.ReactNode;\n}\n\nexport interface BreadcrumbProps extends HTMLDataAttributes {\n /** Custom className applied to the breadcrumb root */\n className?: string;\n /** Include trailing caret */\n includeTrailingCaret?: boolean;\n /** Escape hatch to allow passing props directly to the underlying Ant `Breadcrumb` component. Only known-used props are allowed. */\n dangerouslySetAntdProps?: BreadcrumbDangerouslySetAntdProps;\n /** The breadcrumb items */\n children?: React.ReactNode;\n}\n\n/*\n * Assert that the subcomponents have the children prop (because React 18 types don't assume this by default)\n */\nconst AntDBreadcrumbWithChildren: React.FC<BreadcrumbProps> & {\n Item: WithChildrenProps<typeof AntDBreadcrumbRaw.Item>;\n Separator: WithChildrenProps<typeof AntDBreadcrumbRaw.Separator>;\n} = AntDBreadcrumbRaw;\n\nexport const Breadcrumb: typeof AntDBreadcrumbWithChildren = /* #__PURE__ */ (() => {\n const Breadcrumb: typeof AntDBreadcrumbWithChildren = ({\n dangerouslySetAntdProps,\n includeTrailingCaret = true,\n ...props\n }) => {\n const { theme, classNamePrefix } = useDesignSystemTheme();\n\n const separatorClass = `.${classNamePrefix}-breadcrumb-separator`;\n\n const styles = css({\n // Theme every crumb link with the link semantic color for AA contrast in both themes.\n // `antd` forces its last anchor to black; the `span:last-child a` selector has the\n // specificity to override that for the trailing crumb.\n 'a, span:last-child a': {\n color: theme.colors.actionLinkDefault,\n\n ':hover, :focus': {\n color: theme.colors.actionLinkHover,\n },\n },\n\n a: {\n '&:focus-visible': {\n outlineColor: `${theme.colors.actionDefaultBorderFocus} !important`,\n outlineStyle: 'auto !important',\n },\n },\n\n [separatorClass]: {\n fontSize: theme.general.iconFontSize,\n\n '& .anticon': {\n fontSize: 13,\n },\n },\n\n '& > span': {\n display: 'inline-flex',\n alignItems: 'center',\n },\n });\n\n return (\n <DesignSystemAntDConfigProvider>\n <AntDBreadcrumbWithChildren\n {...addDebugOutlineIfEnabled()}\n separator={<ChevronRightIcon />}\n {...props}\n {...dangerouslySetAntdProps}\n css={css(getAnimationCss(theme.options.enableAnimation), styles)}\n >\n {props.children}\n {includeTrailingCaret && props.children && <Breadcrumb.Item> </Breadcrumb.Item>}\n </AntDBreadcrumbWithChildren>\n </DesignSystemAntDConfigProvider>\n );\n };\n\n Breadcrumb.Item = AntDBreadcrumbWithChildren.Item;\n Breadcrumb.Separator = AntDBreadcrumbWithChildren.Separator;\n return Breadcrumb;\n})();\n","import { css } from '@emotion/react';\nimport type { CSSProperties } from 'react';\n\nimport { genSkeletonAnimatedColor } from './utils';\nimport { useDesignSystemTheme } from '../Hooks';\nimport type { WithLoadingState } from '../LoadingState/LoadingState';\nimport { LoadingState } from '../LoadingState/LoadingState';\nimport { visuallyHidden } from '../utils';\nimport { addDebugOutlineIfEnabled } from '../utils/debug';\n\ninterface GenericSkeletonProps extends WithLoadingState {\n /** Label for screen readers */\n label?: React.ReactNode;\n /** fps for animation. Default is 60 fps. A lower number will use less resources. */\n frameRate?: number;\n /** Style property */\n style?: CSSProperties;\n /** Class name property */\n className?: string;\n}\n\nconst GenericContainerStyles = css({\n cursor: 'progress',\n borderRadius: 'var(--border-radius)',\n});\n\nexport const GenericSkeleton = ({\n label,\n frameRate = 60,\n style,\n loading = true,\n loadingDescription = 'GenericSkeleton',\n ...restProps\n}: GenericSkeletonProps): JSX.Element => {\n const { theme } = useDesignSystemTheme();\n\n return (\n <div\n {...addDebugOutlineIfEnabled()}\n css={[GenericContainerStyles, genSkeletonAnimatedColor(theme, frameRate)]}\n style={{\n ...style,\n ['--border-radius' as any]: `${theme.general.borderRadiusBase}px`,\n }}\n {...restProps}\n >\n {/* oxlint-disable-next-line @databricks/no-dynamic-property-value -- DUBOIS INTERNAL EXEMPTION exempt:a1a83042-d297-4b5b-bdf5-d11188a3a651 */}\n {loading && <LoadingState description={loadingDescription} />}\n <span css={visuallyHidden}>{label}</span>\n </div>\n );\n};\n","import { css } from '@emotion/react';\nimport type { CSSProperties } from 'react';\n\nimport { getOffsets, genSkeletonAnimatedColor } from './utils';\nimport { useDesignSystemTheme } from '../Hooks';\nimport type { WithLoadingState } from '../LoadingState/LoadingState';\nimport { LoadingState } from '../LoadingState/LoadingState';\nimport { visuallyHidden } from '../utils';\nimport { addDebugOutlineIfEnabled } from '../utils/debug';\n\ninterface ParagraphSkeletonProps extends WithLoadingState {\n /** Label for screen readers */\n label?: React.ReactNode;\n /** Seed that deterministically arranges the uneven lines, so that they look like ragged text.\n * If you don't provide this (or give each skeleton the same seed) they will all look the same. */\n seed?: string;\n /** fps for animation. Default is 60 fps. A lower number will use less resources. */\n frameRate?: number;\n /** Style property */\n style?: CSSProperties;\n /** Class name property */\n className?: string;\n}\n\nconst paragraphContainerStyles = css({\n cursor: 'progress',\n width: '100%',\n height: 20,\n display: 'flex',\n justifyContent: 'flex-start',\n alignItems: 'center',\n});\n\nconst paragraphFillStyles = css({\n borderRadius: 'var(--border-radius)',\n height: 8,\n});\n\nexport const ParagraphSkeleton = ({\n label,\n seed = '',\n frameRate = 60,\n style,\n loading = true,\n loadingDescription = 'ParagraphSkeleton',\n ...restProps\n}: ParagraphSkeletonProps): JSX.Element => {\n const { theme } = useDesignSystemTheme();\n const offsetWidth = getOffsets(seed)[0];\n\n return (\n <div\n {...addDebugOutlineIfEnabled()}\n css={paragraphContainerStyles}\n style={{\n ...style,\n ['--border-radius' as any]: `${theme.general.borderRadiusBase}px`,\n }}\n {...restProps}\n >\n {/* oxlint-disable-next-line @databricks/no-dynamic-property-value -- DUBOIS INTERNAL EXEMPTION exempt:4bb2c5e6-b230-4954-976a-6dd99843fa2e */}\n {loading && <LoadingState description={loadingDescription} />}\n <span css={visuallyHidden}>{label}</span>\n <div\n aria-hidden\n css={[\n paragraphFillStyles,\n genSkeletonAnimatedColor(theme, frameRate),\n { width: `calc(100% - ${offsetWidth}px)` },\n ]}\n />\n </div>\n );\n};\n","import classnames from 'classnames';\nimport type { Context, CSSProperties, ForwardRefExoticComponent, PropsWithoutRef, RefAttributes } from 'react';\nimport React, { createContext, forwardRef, useImperativeHandle, useMemo, useRef } from 'react';\n\nimport tableStyles from './tableStyles';\nimport {\n DesignSystemEventSuppressInteractionProviderContext,\n DesignSystemEventSuppressInteractionTrueContextValue,\n} from '../DesignSystemEventProvider/DesignSystemEventSuppressInteractionProvider';\nimport { useDesignSystemTheme } from '../Hooks';\nimport type { HTMLDataAttributes } from '../types';\nimport { addDebugOutlineIfEnabled } from '../utils/debug';\n\nexport const TableContext: Context<{\n size: 'default' | 'small';\n someRowsSelected?: boolean;\n grid?: boolean;\n}> = createContext<{\n size: 'default' | 'small';\n someRowsSelected?: boolean;\n grid?: boolean;\n}>({\n size: 'default',\n grid: false,\n});\n\nexport interface TableProps extends HTMLDataAttributes {\n size?: 'default' | 'small';\n /** Are any rows currently selected? You must specify this if using `TableRowSelectCell` in your table. */\n someRowsSelected?: boolean;\n /** Style property */\n style?: CSSProperties;\n /** Class name property */\n className?: string;\n /** Content slot for providing a pagination component */\n pagination?: React.ReactNode;\n /** Content slot for providing an Empty component */\n empty?: React.ReactNode;\n /** Child nodes for the table */\n children?: React.ReactNode | React.ReactNode[];\n /** Is this `Table` scrollable? Only use if `Table` is placed within a container of determinate height. */\n scrollable?: boolean;\n /** Adds grid styling to the table (e.g. border around cells and no hover styles) */\n grid?: boolean;\n /** If true, the table will not have a minimum height. Use this if the table is inside a container (like ContentSection) that manages its own height. */\n noMinHeight?: boolean;\n /** Callback called anytime the table scrolls */\n onScroll?: React.UIEventHandler<HTMLDivElement>;\n}\n\nexport const Table: ForwardRefExoticComponent<PropsWithoutRef<TableProps> & RefAttributes<HTMLDivElement>> = forwardRef<\n HTMLDivElement,\n TableProps\n>(function Table(\n {\n children,\n size = 'default',\n someRowsSelected,\n style,\n pagination,\n empty,\n className,\n scrollable = false,\n grid = false,\n noMinHeight = false,\n onScroll,\n ...rest\n },\n ref,\n): JSX.Element {\n const { theme } = useDesignSystemTheme();\n const tableContentRef = useRef<HTMLDivElement>(null);\n\n useImperativeHandle(ref, () => tableContentRef.current as HTMLDivElement);\n const minHeightCss = noMinHeight ? {} : { minHeight: !empty && pagination ? 150 : 100 };\n\n return (\n <DesignSystemEventSuppressInteractionProviderContext.Provider\n value={DesignSystemEventSuppressInteractionTrueContextValue}\n >\n <TableContext.Provider\n value={useMemo(() => {\n return { size, someRowsSelected, grid };\n }, [size, someRowsSelected, grid])}\n >\n <div\n {...addDebugOutlineIfEnabled()}\n {...rest}\n // This is a performance optimization; we want to statically create the styles for the table,\n // but for the dynamic theme values, we need to use CSS variables.\n // See: https://emotion.sh/docs/best-practices#advanced-css-variables-with-style\n style={{\n ...style,\n ['--table-header-active-color' as any]: theme.colors.actionDefaultTextPress,\n ['colorScheme' as any]: theme.isDarkMode ? 'dark' : undefined,\n ['--table-header-background-color' as any]: theme.colors.backgroundPrimary,\n ['--table-header-focus-color' as any]: theme.colors.actionDefaultTextHover,\n ['--table-header-sort-icon-color' as any]: theme.colors.textSecondary,\n ['--table-header-text-color' as any]: theme.colors.actionDefaultTextDefault,\n ['--table-row-hover' as any]: theme.colors.tableRowHover,\n ['--table-separator-color' as any]: theme.colors.border,\n ['--table-resize-handle-color' as any]: theme.colors.borderDecorative,\n ['--table-spacing-md' as any]: `${theme.spacing.md}px`,\n ['--table-spacing-sm' as any]: `${theme.spacing.sm}px`,\n ['--table-spacing-xs' as any]: `${theme.spacing.xs}px`,\n }}\n css={[tableStyles.tableWrapper, minHeightCss]}\n className={classnames(\n {\n 'table-isScrollable': scrollable,\n 'table-isGrid': grid,\n },\n className,\n )}\n >\n <div\n role=\"table\"\n ref={tableContentRef}\n css={[tableStyles.table, scrollable && { flex: 'initial !important' }]}\n // Needed to make panel body content focusable when scrollable for keyboard-only users to be able to focus & scroll\n // eslint-disable-next-line jsx-a11y/no-noninteractive-tabindex\n tabIndex={scrollable ? 0 : -1}\n onScroll={onScroll}\n >\n {children}\n {empty && <div css={{ padding: theme.spacing.lg }}>{empty}</div>}\n </div>\n {!empty && pagination && <div css={tableStyles.paginationContainer}>{pagination}</div>}\n </div>\n </TableContext.Provider>\n </DesignSystemEventSuppressInteractionProviderContext.Provider>\n );\n});\n","import { css } from '@emotion/react';\nimport classnames from 'classnames';\nimport type { CSSProperties, ForwardRefExoticComponent, PropsWithoutRef, RefAttributes } from 'react';\nimport React, { forwardRef, useContext } from 'react';\n\nimport { TableContext } from './Table';\nimport { repeatingElementsStyles, tableClassNames } from './tableStyles';\nimport { useDesignSystemTheme } from '../Hooks';\nimport type { TypographyTextProps } from '../Typography';\nimport { Typography } from '../Typography';\nimport type { HTMLDataAttributes } from '../types';\n\nexport interface TableCellProps extends HTMLDataAttributes, React.HTMLAttributes<HTMLDivElement> {\n /** @deprecated Use `multiline` prop instead. This prop will be removed soon. */\n ellipsis?: boolean;\n /** Enables multiline wrapping */\n multiline?: boolean;\n /** How to horizontally align the cell contents */\n align?: 'left' | 'center' | 'right';\n /** Class name property */\n className?: string;\n /** Style property */\n style?: CSSProperties;\n /** Child nodes for the table cell */\n children?: React.ReactNode | React.ReactNode[];\n /** If the content of this cell should be wrapped with Typography. Should only be set to false if\n * content is not a text (e.g. images) or you really need to render custom content. */\n wrapContent?: boolean;\n}\n\nexport const TableCell: ForwardRefExoticComponent<PropsWithoutRef<TableCellProps> & RefAttributes<HTMLDivElement>> =\n // eslint-disable-next-line react-component-name/react-component-name -- TODO(FEINF-4716)\n forwardRef<HTMLDivElement, TableCellProps>(function (\n { children, className, ellipsis = false, multiline = false, align = 'left', style, wrapContent = true, ...rest },\n ref,\n ) {\n const { size, grid } = useContext(TableContext);\n const { classNamePrefix } = useDesignSystemTheme();\n\n const linkWithEllipsisCss = css({\n [`& > .${classNamePrefix}-typography > a.${classNamePrefix}-typography-ellipsis`]: {\n display: 'block',\n },\n });\n\n let typographySize: TypographyTextProps['size'] = 'md';\n\n if (size === 'small') {\n typographySize = 'sm';\n }\n\n const content =\n wrapContent === true ? (\n <Typography.Text\n ellipsis={!multiline}\n size={typographySize}\n title={(!multiline && typeof children === 'string' && children) || undefined}\n // Needed for the button focus outline to be visible for the expand/collapse buttons\n css={{ '&:has(> button)': { overflow: 'visible' } }}\n >\n {children}\n </Typography.Text>\n ) : (\n children\n );\n\n return (\n <div\n {...rest}\n role=\"cell\"\n style={{ textAlign: align, ...style }}\n ref={ref}\n // PE-259 Use more performance className for grid but keep css= for compatibility.\n css={[!grid ? repeatingElementsStyles.cell : undefined, linkWithEllipsisCss]}\n className={classnames(grid && tableClassNames.cell, className)}\n >\n {content}\n </div>\n );\n });\n","import classnames from 'classnames';\nimport type { Context, CSSProperties, ForwardRefExoticComponent, PropsWithoutRef, RefAttributes } from 'react';\nimport React, { createContext, forwardRef, useContext, useMemo } from 'react';\n\nimport { TableContext } from './Table';\nimport { hideIconButtonRowStyles, repeatingElementsStyles, tableClassNames } from './tableStyles';\nimport { useDesignSystemTheme } from '../Hooks';\nimport type { HTMLDataAttributes } from '../types';\n\nexport const TableRowContext: Context<{\n isHeader: boolean;\n}> = createContext<{\n isHeader: boolean;\n}>({\n isHeader: false,\n});\n\nexport interface TableRowProps extends HTMLDataAttributes, React.HTMLAttributes<HTMLDivElement> {\n /** Style property */\n style?: CSSProperties;\n /** Class name property */\n className?: string;\n /** Set to true if this row is to be used for a table header row */\n isHeader?: boolean;\n /** Set to true if we don't want to auto-hide the icon buttons */\n skipIconHiding?: boolean;\n /** @deprecated Vertical alignment of the row's cells. No longer supported (See FEINF-1937) */\n verticalAlignment?: 'top' | 'center';\n /** Child nodes for the table row */\n children?: React.ReactNode | React.ReactNode[];\n}\n\nexport const TableRow: ForwardRefExoticComponent<PropsWithoutRef<TableRowProps> & RefAttributes<HTMLDivElement>> =\n forwardRef<HTMLDivElement, TableRowProps>(function TableRow(\n { children, className, style, isHeader = false, skipIconHiding = false, verticalAlignment, ...rest },\n ref,\n ) {\n const { size, grid } = useContext(TableContext);\n const { theme } = useDesignSystemTheme();\n\n // Vertical only be larger if the row is a header AND size is large.\n const shouldUseLargeVerticalPadding = isHeader && size === 'default';\n\n let rowPadding;\n\n if (shouldUseLargeVerticalPadding) {\n rowPadding = theme.spacing.sm;\n } else if (size === 'default') {\n rowPadding = 6;\n } else {\n rowPadding = theme.spacing.xs;\n }\n\n return (\n <TableRowContext.Provider\n value={useMemo(() => {\n return { isHeader };\n }, [isHeader])}\n >\n <div\n {...rest}\n ref={ref}\n role=\"row\"\n style={{\n ...style,\n ['--table-row-vertical-padding' as any]: `${rowPadding}px`,\n }}\n // PE-259 Use more performance className for grid but keep css= for consistency.\n css={[!isHeader && !skipIconHiding && hideIconButtonRowStyles, !grid && repeatingElementsStyles.row]}\n className={classnames(className, grid && tableClassNames.row, {\n 'table-isHeader': isHeader,\n 'table-row-isGrid': grid,\n })}\n >\n {children}\n </div>\n </TableRowContext.Provider>\n );\n });\n","import { css } from '@emotion/react';\nimport classnames from 'classnames';\nimport type { CSSProperties, ForwardRefExoticComponent, PropsWithoutRef, RefAttributes } from 'react';\nimport React, { forwardRef, useContext } from 'react';\n\nimport { TableContext } from './Table';\nimport { TableRowContext } from './TableRow';\nimport { hideIconButtonActionCellClassName } from './tableStyles';\nimport { useDesignSystemTheme } from '../Hooks';\nimport type { HTMLDataAttributes } from '../types';\n\nexport interface TableRowActionProps extends HTMLDataAttributes, React.HTMLAttributes<HTMLDivElement> {\n /** Style property */\n style?: CSSProperties;\n /** Child nodes for the table row. Should contain a single small-sized button. */\n children?: React.ReactNode;\n /** Class name property */\n className?: string;\n}\n\nconst TableRowActionStyles = {\n container: css({\n width: 32,\n paddingTop: 'var(--vertical-padding)',\n paddingBottom: 'var(--vertical-padding)',\n display: 'flex',\n alignItems: 'start',\n justifyContent: 'center',\n }),\n};\n\nexport const TableRowAction: ForwardRefExoticComponent<\n PropsWithoutRef<TableRowActionProps> & RefAttributes<HTMLDivElement>\n> = forwardRef<HTMLDivElement, TableRowActionProps>(function TableRowAction(\n { children, style, className, ...rest },\n ref,\n) {\n const { size } = useContext(TableContext);\n const { isHeader } = useContext(TableRowContext);\n const { theme } = useDesignSystemTheme();\n\n return (\n <div\n {...rest}\n ref={ref}\n role={isHeader ? 'columnheader' : 'cell'}\n style={{\n ...style,\n ['--vertical-padding' as any]: size === 'default' ? `${theme.spacing.xs}px` : 0,\n }}\n css={TableRowActionStyles.container}\n className={classnames(className, !isHeader && hideIconButtonActionCellClassName)}\n >\n {children}\n </div>\n );\n});\n\n/** @deprecated Use `TableRowAction` instead */\nexport const TableRowMenuContainer: typeof TableRowAction = TableRowAction;\n","import { css } from '@emotion/react';\nimport type { Table } from '@tanstack/react-table';\nimport type { CSSProperties } from 'react';\nimport React, { useContext } from 'react';\n\nimport { getOffsets, genSkeletonAnimatedColor } from './utils';\nimport { useDesignSystemTheme } from '../Hooks';\nimport type { WithLoadingState } from '../LoadingState/LoadingState';\nimport { LoadingState } from '../LoadingState/LoadingState';\nimport { TableContext } from '../TableUI/Table';\nimport { TableCell } from '../TableUI/TableCell';\nimport { TableRow } from '../TableUI/TableRow';\nimport { TableRowAction } from '../TableUI/TableRowAction';\nimport type { HTMLDataAttributes } from '../types';\nimport { visuallyHidden } from '../utils';\nimport { addDebugOutlineIfEnabled } from '../utils/debug';\n\nexport interface TableSkeletonProps extends HTMLDataAttributes {\n /** Number of rows to render */\n lines?: number;\n /** Seed that deterministically arranges the uneven lines, so that they look like ragged text.\n * If you don't provide this (or give each skeleton the same seed) they will all look the same. */\n seed?: string;\n /** fps for animation. Default is 60 fps. A lower number will use less resources. */\n frameRate?: number;\n /** Style property */\n style?: CSSProperties;\n /** Label for screen readers */\n label?: React.ReactNode;\n}\n\nconst TableSkeletonStyles = {\n container: css({\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'flex-start',\n }),\n\n cell: css({\n width: '100%',\n height: 8,\n borderRadius: 4,\n background: 'var(--table-skeleton-color)',\n marginTop: 'var(--table-skeleton-row-vertical-margin)',\n marginBottom: 'var(--table-skeleton-row-vertical-margin)',\n }),\n};\n\nexport const TableSkeleton: React.FC<React.PropsWithChildren<TableSkeletonProps>> = ({\n lines = 1,\n seed = '',\n frameRate = 60,\n style,\n label,\n ...rest\n}) => {\n const { theme } = useDesignSystemTheme();\n const { size } = useContext(TableContext);\n const widths = getOffsets(seed);\n\n return (\n <div\n {...rest}\n {...addDebugOutlineIfEnabled()}\n aria-busy\n css={TableSkeletonStyles.container}\n role=\"status\"\n style={{\n ...style,\n // TODO: Pull this from the themes; it's not currently available.\n ['--table-skeleton-color' as any]: theme.isDarkMode ? 'rgba(255, 255, 255, 0.1)' : 'rgba(31, 38, 45, 0.1)',\n ['--table-skeleton-row-vertical-margin' as any]: size === 'small' ? '4px' : '6px',\n }}\n >\n {[...Array(lines)].map((_, idx) => (\n <div\n key={idx}\n css={[\n TableSkeletonStyles.cell,\n genSkeletonAnimatedColor(theme, frameRate),\n { width: `calc(100% - ${widths[idx % widths.length]}px)` },\n ]}\n />\n ))}\n <span css={visuallyHidden}>{label}</span>\n </div>\n );\n};\n\ninterface TableSkeletonRowsProps<TData> extends WithLoadingState {\n table: Table<TData>;\n actionColumnIds?: string[];\n numRows?: number;\n label?: React.ReactNode;\n}\n\ninterface MinMetaType {\n styles?: CSSProperties;\n width?: number | string;\n numSkeletonLines?: number;\n}\n\nexport const TableSkeletonRows = <TData, MetaType extends MinMetaType>({\n table,\n actionColumnIds = [],\n numRows = 3,\n loading = true,\n loadingDescription = 'Table skeleton rows',\n label,\n}: TableSkeletonRowsProps<TData>): React.ReactElement => {\n const { theme } = useDesignSystemTheme();\n const { grid } = useContext(TableContext);\n\n return (\n <>\n {/* oxlint-disable-next-line @databricks/no-dynamic-property-value -- DUBOIS INTERNAL EXEMPTION exempt:63b98a7e-7cfe-4286-b521-31f62d01c2db */}\n {loading && <LoadingState description={loadingDescription} />}\n <span css={visuallyHidden}>{label}</span>\n {[...Array(numRows).keys()].map((i) => (\n <TableRow key={i}>\n {table.getFlatHeaders().map((header) => {\n const meta = header.column.columnDef.meta as MetaType | undefined;\n // When no explicit meta styles/width is set, fall back to header.getSize()-based\n // sizing so skeleton cells match the proportions of real data rows.\n // In flex mode, use flex; in grid mode, use maxWidth.\n const fallbackStyle: CSSProperties = grid\n ? { maxWidth: header.getSize() }\n : { flex: header.getSize() / 100 };\n return actionColumnIds.includes(header.id) ? (\n <TableRowAction key={`cell-${header.id}-${i}`}>\n <TableSkeleton style={{ width: theme.general.iconSize }} />\n </TableRowAction>\n ) : (\n <TableCell\n key={`cell-${header.id}-${i}`}\n style={meta?.styles ?? (meta?.width !== undefined ? { maxWidth: meta.width } : fallbackStyle)}\n >\n <TableSkeleton seed={`skeleton-${header.id}-${i}`} lines={meta?.numSkeletonLines ?? undefined} />\n </TableCell>\n );\n })}\n </TableRow>\n ))}\n </>\n );\n};\n","import type { SerializedStyles } from '@emotion/react';\nimport { css } from '@emotion/react';\nimport { useMergeRefs } from '@floating-ui/react';\nimport { isUndefined } from 'lodash';\nimport type { HTMLAttributes, HTMLProps, PropsWithChildren } from 'react';\nimport React, { useCallback, useMemo } from 'react';\n\nimport type { Theme } from '../../theme';\nimport {\n DesignSystemEventProviderAnalyticsEventTypes,\n DesignSystemEventProviderComponentTypes,\n useDesignSystemEventComponentCallbacks,\n} from '../DesignSystemEventProvider/DesignSystemEventProvider';\nimport { getAnimationCss } from '../DesignSystemProvider';\nimport { useDesignSystemTheme } from '../Hooks';\nimport { ParagraphSkeleton, TitleSkeleton } from '../Skeleton';\nimport { ShapeTokens } from '../shape-tokens';\nimport type { AnalyticsEventPropsWithStartInteraction, DangerousGeneralProps, HTMLDataAttributes } from '../types';\nimport { useNotifyOnFirstView } from '../utils';\nimport { addDebugOutlineIfEnabled } from '../utils/debug';\nimport { safex } from '../utils/safex';\nimport { token } from '../utils/token';\n\nexport interface CardProps\n extends\n DangerousGeneralProps,\n HTMLDataAttributes,\n HTMLAttributes<HTMLDivElement>,\n AnalyticsEventPropsWithStartInteraction<\n DesignSystemEventProviderAnalyticsEventTypes.OnClick | DesignSystemEventProviderAnalyticsEventTypes.OnView\n > {\n /**\n * disable the default hover style effects (border, box-shadow)\n *\n * @default false\n */\n disableHover?: boolean;\n\n /**\n * Show the card in loading state using a Skeleton\n * Without a given width we will default to 300px\n *\n * @default false\n */\n loading?: boolean;\n\n /**\n * Custom loading description\n *\n * @default undefined\n */\n loadingDescription?: string;\n\n /**\n * Custom loading content using Dubois Skeleton components\n *\n * @default undefined\n */\n customLoadingContent?: React.ReactNode;\n\n /**\n *\n * @default undefined\n */\n onClick?: (e?: React.MouseEvent | React.KeyboardEvent) => void;\n\n /**\n * Width of the card, used when displaying a list of cards with matching widths\n *\n * @default 300\n */\n width?: string | number;\n\n /**\n * Add a row of content at the bottom of the card\n * Note this content will stretch to the edge of the card, client will need to provide custom padding as needed\n *\n * @default undefined\n */\n bottomBarContent?: React.ReactNode;\n\n /**\n * Add a row of content at the top of the card\n * Note this content will stretch to the edge of the card, client will need to provide custom padding as needed\n *\n * @default undefined\n */\n topBarContent?: React.ReactNode;\n // Use this to navigate to a different page via a native anchor tag\n href?: string;\n anchorProps?: HTMLProps<HTMLAnchorElement>;\n // Use this to navigate to a different page via a custom navigation function\n navigateFn?: () => Promise<void>;\n}\n\n// Loading state requires a width since it'll have no content\nconst LOADING_STATE_DEFAULT_WIDTH = 300;\n\nfunction getStyles(args: {\n theme: Theme;\n width: CardProps['width'];\n hasBottomBar: boolean;\n hasTopBar: boolean;\n isInteractive: boolean;\n}): SerializedStyles {\n const { theme, width, hasTopBar, hasBottomBar, isInteractive } = args;\n\n const hoverOrFocusStyle = isInteractive\n ? {\n border: `1px solid ${theme.colors.actionDefaultBorderHover}`,\n boxShadow: theme.shadows.md,\n }\n : {};\n\n return css({\n color: theme.colors.textPrimary,\n backgroundColor: theme.colors.backgroundPrimary,\n position: 'relative',\n display: 'flex',\n justifyContent: 'flex-start',\n flexDirection: 'column',\n paddingRight: hasTopBar || hasBottomBar ? 0 : theme.spacing.md,\n paddingLeft: hasTopBar || hasBottomBar ? 0 : theme.spacing.md,\n paddingTop: hasTopBar ? 0 : theme.spacing.md,\n paddingBottom: hasBottomBar ? 0 : theme.spacing.md,\n width: width ?? 'fit-content',\n borderRadius: token(ShapeTokens.INFO_CONTAINER_BORDER_RADIUS, theme.borders.borderRadiusMd),\n borderColor: theme.colors.border,\n borderWidth: '1px',\n borderStyle: 'solid',\n '&:hover': hoverOrFocusStyle,\n '&:focus': hoverOrFocusStyle,\n cursor: !isInteractive ? 'default' : 'pointer',\n boxShadow: theme.shadows.sm,\n transition: `box-shadow 0.2s ease-in-out`,\n textDecoration: 'none !important',\n ...getAnimationCss(theme.options.enableAnimation),\n });\n}\n\nfunction getBottomBarStyles(theme: Theme) {\n return css({\n marginTop: theme.spacing.sm,\n borderBottomRightRadius: token(ShapeTokens.INFO_CONTAINER_BORDER_RADIUS, theme.borders.borderRadiusSm),\n borderBottomLeftRadius: token(ShapeTokens.INFO_CONTAINER_BORDER_RADIUS, theme.borders.borderRadiusSm),\n overflow: 'hidden',\n });\n}\n\nfunction getTopBarStyles(theme: Theme) {\n return css({\n marginBottom: theme.spacing.sm,\n borderTopRightRadius: token(ShapeTokens.INFO_CONTAINER_BORDER_RADIUS, theme.borders.borderRadiusSm),\n borderTopLeftRadius: token(ShapeTokens.INFO_CONTAINER_BORDER_RADIUS, theme.borders.borderRadiusSm),\n overflow: 'hidden',\n });\n}\n\nexport const Card = ({\n children,\n customLoadingContent,\n dangerouslyAppendEmotionCSS,\n loading,\n loadingDescription,\n width,\n bottomBarContent,\n topBarContent,\n disableHover,\n onClick,\n href,\n navigateFn,\n anchorProps,\n componentId,\n analyticsEvents,\n shouldStartInteraction,\n ...dataAndAttributes\n}: PropsWithChildren<CardProps>): JSX.Element => {\n const emitOnView = safex('databricks.fe.observability.defaultComponentView.card', false);\n const { theme } = useDesignSystemTheme();\n const hasTopBar = !isUndefined(topBarContent);\n const hasBottomBar = !isUndefined(bottomBarContent);\n const hasHref = Boolean(href);\n const hasOnClick = Boolean(onClick);\n const hasNavigateFn = Boolean(navigateFn);\n const isInteractive = !disableHover && !loading && (hasHref || hasOnClick || hasNavigateFn);\n const cardStyle = css(\n getStyles({\n theme,\n width,\n hasBottomBar,\n hasTopBar,\n isInteractive,\n }),\n );\n const ref = React.useRef<HTMLDivElement>(null);\n\n const bottomBar = bottomBarContent ? <div css={css(getBottomBarStyles(theme))}>{bottomBarContent}</div> : null;\n const topBar = topBarContent ? <div css={css(getTopBarStyles(theme))}>{topBarContent}</div> : null;\n const contentPadding = hasTopBar || hasBottomBar ? theme.spacing.lg : 0;\n const memoizedAnalyticsEvents = useMemo(\n () =>\n analyticsEvents ??\n (emitOnView\n ? [DesignSystemEventProviderAnalyticsEventTypes.OnClick, DesignSystemEventProviderAnalyticsEventTypes.OnView]\n : [DesignSystemEventProviderAnalyticsEventTypes.OnClick]),\n [analyticsEvents, emitOnView],\n );\n const eventContext = useDesignSystemEventComponentCallbacks({\n componentType: DesignSystemEventProviderComponentTypes.Card,\n componentId,\n analyticsEvents: memoizedAnalyticsEvents,\n shouldStartInteraction,\n });\n\n const { elementRef: cardRef } = useNotifyOnFirstView<HTMLDivElement>({ onView: eventContext.onView });\n const mergedRef = useMergeRefs<HTMLDivElement>([ref, cardRef]);\n\n const navigate = useCallback(async () => {\n if (navigateFn) {\n await navigateFn();\n }\n }, [navigateFn]);\n\n const handleClick = useCallback(\n async (e: React.MouseEvent) => {\n eventContext.onClick(e);\n await navigate();\n onClick?.(e);\n ref.current?.blur();\n },\n [navigate, eventContext, onClick],\n );\n\n const handleSelection = useCallback(\n async (e: React.KeyboardEvent) => {\n eventContext.onClick(e);\n e.preventDefault();\n await navigate();\n onClick?.(e);\n },\n [navigate, eventContext, onClick],\n );\n\n const content = (\n <div\n ref={mergedRef}\n tabIndex={!href ? 0 : undefined}\n {...addDebugOutlineIfEnabled()}\n css={href ? [] : [cardStyle, dangerouslyAppendEmotionCSS]}\n onClick={loading || href ? undefined : handleClick}\n {...dataAndAttributes}\n onKeyDown={async (e) => {\n const isEnter = e.key === 'Enter';\n const isSpace = e.key === ' ';\n const isCardFocused = e.target === e.currentTarget; // ensures the element itself is focused\n if ((isEnter || isSpace) && isCardFocused) {\n await handleSelection(e);\n }\n dataAndAttributes.onKeyDown?.(e);\n }}\n {...eventContext.dataComponentProps}\n >\n {loading ? (\n <DefaultCardLoadingContent\n width={width}\n customLoadingContent={customLoadingContent}\n loadingDescription={loadingDescription}\n />\n ) : (\n <>\n {topBar}\n <div css={{ padding: `0px ${contentPadding}px`, flexGrow: 1 }}>{children}</div>\n {bottomBar}\n </>\n )}\n </div>\n );\n\n return href ? (\n <a css={[cardStyle, dangerouslyAppendEmotionCSS]} href={href} {...anchorProps}>\n {content}\n </a>\n ) : (\n content\n );\n};\n\nfunction DefaultCardLoadingContent({\n customLoadingContent,\n width,\n loadingDescription,\n}: Pick<CardProps, 'customLoadingContent' | 'width' | 'loadingDescription'>) {\n if (customLoadingContent) {\n return <>{customLoadingContent}</>;\n }\n return (\n <div css={{ width: width ?? LOADING_STATE_DEFAULT_WIDTH }}>\n {/* oxlint-disable-next-line @databricks/no-dynamic-property-value -- DUBOIS INTERNAL EXEMPTION exempt:de3a4f53-d046-41bb-868c-c17779f88ac7 */}\n <TitleSkeleton label=\"Loading...\" style={{ width: '50%' }} loadingDescription={loadingDescription} />\n {[...Array(3).keys()].map((i) => (\n <ParagraphSkeleton label=\"Loading...\" key={i} />\n ))}\n </div>\n );\n}\n","import type { CSSObject, SerializedStyles } from '@emotion/react';\nimport { css } from '@emotion/react';\nimport { DatePicker as AntDDatePicker } from 'antd';\nimport type {\n DatePickerProps as AntDDatePickerProps,\n MonthPickerProps as AntDMonthPickerProps,\n RangePickerProps as AntDRangePickerProps,\n} from 'antd/lib/date-picker';\nimport React, { forwardRef, useEffect, useRef } from 'react';\n\nimport type { Theme } from '../../theme';\nimport { DesignSystemAntDConfigProvider } from '../DesignSystemProvider';\nimport { useDesignSystemTheme } from '../Hooks/useDesignSystemTheme';\nimport { ShapeTokens } from '../shape-tokens';\nimport { addDebugOutlineIfEnabled } from '../utils/debug';\nimport { token } from '../utils/token';\n\nexport type DatePickerRef = {\n focus: () => void;\n blur: () => void;\n};\n\ntype DatePickerAccessibilityProps = {\n /**\n * ARIA live region attribute for the DatePicker component.\n * @default 'assertive'\n * It's recommended to use `assertive` as `polite` has been known to cause issues with screen readers with this specific component.\n */\n ariaLive?: 'assertive' | 'polite';\n wrapperDivProps?: React.HTMLAttributes<HTMLDivElement>;\n};\n\nexport type DatePickerProps = AntDDatePickerProps & React.RefAttributes<DatePickerRef> & DatePickerAccessibilityProps;\nexport type RangePickerProps = AntDRangePickerProps & React.RefAttributes<DatePickerRef> & DatePickerAccessibilityProps;\nexport type TimePickerProps = AntDMonthPickerProps & React.RefAttributes<DatePickerRef> & DatePickerAccessibilityProps;\nexport type QuarterPickerProps = AntDMonthPickerProps &\n React.RefAttributes<DatePickerRef> &\n DatePickerAccessibilityProps;\nexport type WeekPickerProps = AntDMonthPickerProps & React.RefAttributes<DatePickerRef> & DatePickerAccessibilityProps;\nexport type MonthPickerProps = AntDMonthPickerProps & React.RefAttributes<DatePickerRef> & DatePickerAccessibilityProps;\nexport type YearPickerProps = AntDMonthPickerProps & React.RefAttributes<DatePickerRef> & DatePickerAccessibilityProps;\n\nfunction getEmotionStyles(clsPrefix: string, theme: Theme): SerializedStyles {\n const classFocused = `.${clsPrefix}-focused`;\n const classActiveBar = `.${clsPrefix}-active-bar`;\n const classSeparator = `.${clsPrefix}-separator`;\n const classSuffix = `.${clsPrefix}-suffix`;\n\n const styles: CSSObject = {\n height: 32,\n borderRadius: token(ShapeTokens.POPUP_BORDER_RADIUS, theme.borders.borderRadiusSm),\n borderColor: theme.colors.border,\n color: theme.colors.textPrimary,\n transition: 'border 0s, box-shadow 0s',\n [`&${classFocused},:hover`]: {\n borderColor: theme.colors.actionDefaultBorderHover,\n },\n '&:active': {\n borderColor: theme.colors.actionDefaultBorderPress,\n },\n [`&${classFocused}`]: {\n boxShadow: `none !important`,\n outline: `${theme.colors.actionDefaultBorderFocus} solid 2px !important`,\n outlineOffset: '-2px !important',\n borderColor: 'transparent !important',\n },\n [`& ${classActiveBar}`]: {\n background: `${theme.colors.actionDefaultBorderPress} !important`,\n },\n [`& input::placeholder, & ${classSeparator}, & ${classSuffix}`]: {\n color: theme.colors.textPrimary,\n },\n };\n\n return css(styles);\n}\n\nconst getDropdownStyles = (theme: Theme) => {\n return {\n zIndex: theme.options.zIndexBase + 50,\n };\n};\n\nfunction useDatePickerStyles(): SerializedStyles {\n const { theme, getPrefixedClassName } = useDesignSystemTheme();\n const clsPrefix = getPrefixedClassName('picker');\n return getEmotionStyles(clsPrefix, theme);\n}\n\nconst AccessibilityWrapper: React.FC<\n React.PropsWithChildren<{\n children: React.ReactNode;\n ariaLive?: 'assertive' | 'polite';\n }>\n> = ({ children, ariaLive = 'assertive', ...restProps }) => {\n const { theme } = useDesignSystemTheme();\n const ref = useRef<HTMLDivElement>(null);\n\n useEffect(() => {\n if (ref.current) {\n const inputs = theme.isDarkMode\n ? ref.current.querySelectorAll('.du-bois-dark-picker-input > input')\n : ref.current.querySelectorAll('.du-bois-light-picker-input > input');\n\n inputs.forEach((input) => input.setAttribute('aria-live', ariaLive));\n }\n }, [ref, ariaLive, theme.isDarkMode]);\n\n return (\n <div {...restProps} ref={ref}>\n {children}\n </div>\n );\n};\n\nexport const DuboisDatePicker: React.VFC<DatePickerProps> = forwardRef(\n // eslint-disable-next-line react-component-name/react-component-name -- TODO(FEINF-4716)\n (props: DatePickerProps, ref: React.ForwardedRef<DatePickerRef>) => {\n const styles = useDatePickerStyles();\n const { theme } = useDesignSystemTheme();\n\n const { ariaLive, wrapperDivProps, ...restProps } = props;\n\n return (\n <DesignSystemAntDConfigProvider>\n <AccessibilityWrapper {...addDebugOutlineIfEnabled()} {...wrapperDivProps} ariaLive={ariaLive}>\n <AntDDatePicker\n css={styles}\n ref={ref as any}\n {...restProps}\n popupStyle={{ ...getDropdownStyles(theme), ...(props.popupStyle || {}) }}\n />\n </AccessibilityWrapper>\n </DesignSystemAntDConfigProvider>\n );\n },\n);\n\nconst RangePicker: React.VFC<RangePickerProps> = forwardRef(\n // eslint-disable-next-line react-component-name/react-component-name -- TODO(FEINF-4716)\n (props: RangePickerProps, ref: React.ForwardedRef<DatePickerRef>) => {\n const styles = useDatePickerStyles();\n const { theme } = useDesignSystemTheme();\n const { ariaLive, wrapperDivProps, ...restProps } = props;\n\n return (\n <DesignSystemAntDConfigProvider>\n <AccessibilityWrapper {...wrapperDivProps} ariaLive={ariaLive}>\n <AntDDatePicker.RangePicker\n {...addDebugOutlineIfEnabled()}\n css={styles}\n {...restProps}\n ref={ref as any}\n popupStyle={{ ...getDropdownStyles(theme), ...(props.popupStyle || {}) }}\n />\n </AccessibilityWrapper>\n </DesignSystemAntDConfigProvider>\n );\n },\n);\n\nconst TimePicker: React.VFC<TimePickerProps> = forwardRef(\n // eslint-disable-next-line react-component-name/react-component-name -- TODO(FEINF-4716)\n (props: TimePickerProps, ref: React.ForwardedRef<DatePickerRef>) => {\n const styles = useDatePickerStyles();\n const { theme } = useDesignSystemTheme();\n const { ariaLive, wrapperDivProps, ...restProps } = props;\n\n return (\n <DesignSystemAntDConfigProvider>\n <AccessibilityWrapper {...addDebugOutlineIfEnabled()} {...wrapperDivProps} ariaLive={ariaLive}>\n <AntDDatePicker.TimePicker\n css={styles}\n {...restProps}\n ref={ref as any}\n popupStyle={{ ...getDropdownStyles(theme), ...(props.popupStyle || {}) }}\n />\n </AccessibilityWrapper>\n </DesignSystemAntDConfigProvider>\n );\n },\n);\n\nconst QuarterPicker: React.VFC<QuarterPickerProps> = forwardRef(\n // eslint-disable-next-line react-component-name/react-component-name -- TODO(FEINF-4716)\n (props: QuarterPickerProps, ref: React.ForwardedRef<DatePickerRef>) => {\n const styles = useDatePickerStyles();\n const { theme } = useDesignSystemTheme();\n const { ariaLive, wrapperDivProps, ...restProps } = props;\n\n return (\n <DesignSystemAntDConfigProvider>\n <AccessibilityWrapper {...addDebugOutlineIfEnabled()} {...wrapperDivProps} ariaLive={ariaLive}>\n <AntDDatePicker.QuarterPicker\n css={styles}\n {...restProps}\n ref={ref as any}\n popupStyle={{ ...getDropdownStyles(theme), ...(props.popupStyle || {}) }}\n />\n </AccessibilityWrapper>\n </DesignSystemAntDConfigProvider>\n );\n },\n);\n\nconst WeekPicker: React.VFC<WeekPickerProps> = forwardRef(\n // eslint-disable-next-line react-component-name/react-component-name -- TODO(FEINF-4716)\n (props: WeekPickerProps, ref: React.ForwardedRef<DatePickerRef>) => {\n const styles = useDatePickerStyles();\n const { theme } = useDesignSystemTheme();\n const { ariaLive, wrapperDivProps, ...restProps } = props;\n\n return (\n <DesignSystemAntDConfigProvider>\n <AccessibilityWrapper {...addDebugOutlineIfEnabled()} {...wrapperDivProps} ariaLive={ariaLive}>\n <AntDDatePicker.WeekPicker\n css={styles}\n {...restProps}\n ref={ref as any}\n popupStyle={{ ...getDropdownStyles(theme), ...(props.popupStyle || {}) }}\n />\n </AccessibilityWrapper>\n </DesignSystemAntDConfigProvider>\n );\n },\n);\n\nconst MonthPicker: React.VFC<MonthPickerProps> = forwardRef(\n // eslint-disable-next-line react-component-name/react-component-name -- TODO(FEINF-4716)\n (props: MonthPickerProps, ref: React.ForwardedRef<DatePickerRef>) => {\n const styles = useDatePickerStyles();\n const { theme } = useDesignSystemTheme();\n\n const { ariaLive, wrapperDivProps, ...restProps } = props;\n\n return (\n <DesignSystemAntDConfigProvider>\n <AccessibilityWrapper {...addDebugOutlineIfEnabled()} {...wrapperDivProps} ariaLive={ariaLive}>\n <AntDDatePicker.MonthPicker\n css={styles}\n {...restProps}\n ref={ref as any}\n popupStyle={{ ...getDropdownStyles(theme), ...(props.popupStyle || {}) }}\n />\n </AccessibilityWrapper>\n </DesignSystemAntDConfigProvider>\n );\n },\n);\n\nconst YearPicker: React.VFC<YearPickerProps> = forwardRef(\n // eslint-disable-next-line react-component-name/react-component-name -- TODO(FEINF-4716)\n (props: YearPickerProps, ref: React.ForwardedRef<DatePickerRef>) => {\n const styles = useDatePickerStyles();\n const { theme } = useDesignSystemTheme();\n\n const { ariaLive, wrapperDivProps, ...restProps } = props;\n\n return (\n <DesignSystemAntDConfigProvider>\n <AccessibilityWrapper {...addDebugOutlineIfEnabled()} {...wrapperDivProps} ariaLive={ariaLive}>\n <AntDDatePicker.YearPicker\n css={styles}\n {...restProps}\n ref={ref as any}\n popupStyle={{ ...getDropdownStyles(theme), ...(props.popupStyle || {}) }}\n />\n </AccessibilityWrapper>\n </DesignSystemAntDConfigProvider>\n );\n },\n);\n\n/**\n * `LegacyDatePicker` was added as a temporary solution pending an\n * official Du Bois replacement. Use with caution.\n * @deprecated\n */\nexport const LegacyDatePicker: React.VFC<DatePickerProps> & {\n RangePicker: React.VFC<RangePickerProps>;\n TimePicker: React.VFC<TimePickerProps>;\n QuarterPicker: React.VFC<QuarterPickerProps>;\n WeekPicker: React.VFC<WeekPickerProps>;\n MonthPicker: React.VFC<MonthPickerProps>;\n YearPicker: React.VFC<YearPickerProps>;\n} = /* #__PURE__ */ Object.assign(DuboisDatePicker, {\n /**\n * See deprecation notice for `LegacyDatePicker`.\n * @deprecated\n */\n RangePicker,\n /**\n * See deprecation notice for `LegacyDatePicker`.\n * @deprecated\n */\n TimePicker,\n /**\n * See deprecation notice for `LegacyDatePicker`.\n * @deprecated\n */\n QuarterPicker,\n /**\n * See deprecation notice for `LegacyDatePicker`.\n * @deprecated\n */\n WeekPicker,\n /**\n * See deprecation notice for `LegacyDatePicker`.\n * @deprecated\n */\n MonthPicker,\n /**\n * See deprecation notice for `LegacyDatePicker`.\n * @deprecated\n */\n YearPicker,\n});\n","import { useDesignSystemTheme } from '../../Hooks';\n\nexport const Separator = (props: React.HTMLAttributes<HTMLDivElement>): JSX.Element => {\n const { theme } = useDesignSystemTheme();\n\n return (\n <div\n {...props}\n css={{\n display: 'flex',\n flexDirection: 'row',\n alignItems: 'center',\n margin: `${theme.spacing.xs}px ${theme.spacing.lg / 2}px`,\n border: `1px solid ${theme.colors.borderDecorative}`,\n borderBottom: 0,\n alignSelf: 'stretch',\n }}\n />\n );\n};\n","import { css } from '@emotion/react';\n\nimport { useDialogComboboxContext } from './hooks/useDialogComboboxContext';\nimport { Button } from '../Button';\nimport { useDesignSystemTheme } from '../Hooks';\nimport { PlusIcon } from '../Icon';\nimport { getComboboxOptionItemWrapperStyles } from '../_shared_/Combobox';\nimport { importantify } from '../utils/css-utils';\n\nexport const DialogComboboxAddButton = ({\n children,\n ...restProps\n}: React.HTMLAttributes<HTMLButtonElement>): JSX.Element => {\n const { theme } = useDesignSystemTheme();\n const { isInsideDialogCombobox, componentId } = useDialogComboboxContext();\n\n if (!isInsideDialogCombobox) {\n throw new Error('`DialogComboboxAddButton` must be used within `DialogCombobox`');\n }\n\n return (\n <Button\n // oxlint-disable-next-line @databricks/no-dynamic-property-value -- Contextual component ID validated through DialogCombobox component exempt:fc0846cb-b73b-401b-834e-75bb8b6d4c20\n componentId={`${componentId ? componentId : 'design_system.dialogcombobox'}.add_option`}\n {...restProps}\n type=\"tertiary\"\n className=\"combobox-footer-add-button\"\n css={{\n ...getComboboxOptionItemWrapperStyles(theme),\n ...css(\n importantify({\n width: '100%',\n padding: 0,\n display: 'flex',\n alignItems: 'center',\n borderRadius: 0,\n\n '&:focus': {\n background: theme.colors.actionTertiaryBackgroundHover,\n outline: 'none',\n },\n }),\n ),\n }}\n icon={<PlusIcon />}\n >\n {children}\n </Button>\n );\n};\n","import { useDialogComboboxContext } from './hooks/useDialogComboboxContext';\nimport { useDesignSystemTheme } from '../Hooks';\nimport { getFooterStyles } from '../_shared_/Combobox';\n\nexport const DialogComboboxFooter = ({ children, ...restProps }: React.HTMLAttributes<HTMLDivElement>): JSX.Element => {\n const { theme } = useDesignSystemTheme();\n const { isInsideDialogCombobox } = useDialogComboboxContext();\n\n if (!isInsideDialogCombobox) {\n throw new Error('`DialogComboboxFooter` must be used within `DialogCombobox`');\n }\n\n return (\n <div {...restProps} css={getFooterStyles(theme)}>\n {children}\n </div>\n );\n};\n","import React from 'react';\n\nimport { useDesignSystemTheme } from '../Hooks';\n\ninterface DialogComboboxHintRowProps {\n children: React.ReactNode;\n}\n\nexport const DialogComboboxHintRow = ({ children }: DialogComboboxHintRowProps): JSX.Element => {\n const { theme } = useDesignSystemTheme();\n\n return (\n <div\n css={{\n minWidth: '100%',\n color: theme.colors.textSecondary,\n fontSize: theme.typography.fontSizeSm,\n '[data-disabled] &': {\n color: theme.colors.actionDisabledText,\n },\n }}\n >\n {children}\n </div>\n );\n};\n","import type { ForwardRefExoticComponent, PropsWithoutRef, RefAttributes } from 'react';\nimport React, { Children, forwardRef, useEffect, useImperativeHandle, useRef } from 'react';\n\nimport { useDialogComboboxContext } from './hooks/useDialogComboboxContext';\nimport { useDialogComboboxOptionListContext } from './hooks/useDialogComboboxOptionListContext';\nimport { findClosestOptionSibling, findHighlightedOption, getContentOptions, highlightOption } from './shared';\nimport { useDesignSystemTheme } from '../Hooks';\nimport { SearchIcon } from '../Icon';\nimport type { InputProps, InputRef } from '../Input';\nimport { Input } from '../Input';\nimport { EmptyResults } from '../_shared_/Combobox';\nimport { generateUuidV4 } from '../utils/useStableUuidV4';\n\nconst extractTextContent = (node: string | number | React.ReactNode): string => {\n if (typeof node === 'string' || typeof node === 'number') {\n return node.toString();\n }\n\n if (React.isValidElement(node) && node.props.children) {\n return React.Children.toArray(node.props.children).map(extractTextContent).join(' ');\n }\n\n return '';\n};\n\nconst filterChildren = (children: React.ReactNode, searchValue: string) => {\n const lowerCaseSearchValue = searchValue.toLowerCase();\n\n return React.Children.map(children, (child) => {\n if (React.isValidElement(child)) {\n const childType = child.props['__EMOTION_TYPE_PLEASE_DO_NOT_USE__']?.defaultProps._TYPE ?? child.props._TYPE;\n\n if (childType === 'DialogComboboxOptionListSelectItem' || childType === 'DialogComboboxOptionListCheckboxItem') {\n const childTextContent = extractTextContent(child).toLowerCase();\n const childValue = child.props.value?.toLowerCase() ?? '';\n return childTextContent.includes(lowerCaseSearchValue) || childValue.includes(lowerCaseSearchValue)\n ? child\n : null;\n }\n }\n return child;\n })?.filter((child: any) => child);\n};\n\nexport interface DialogComboboxOptionListSearchProps extends Omit<InputProps, 'componentId' | 'analyticsEvents'> {\n children: any;\n hasWrapper?: boolean;\n virtualized?: boolean;\n onSearch?: (value: string) => void;\n /** Set controlledValue and setControlledValue if search input is controlled, e.g. for custom filtering logic */\n controlledValue?: string;\n setControlledValue?: (value: string) => void;\n /** Optional controls component to be rendered on the right side of the search input */\n rightSearchControls?: React.ReactNode;\n}\n\nexport const DialogComboboxOptionListSearch: ForwardRefExoticComponent<\n PropsWithoutRef<DialogComboboxOptionListSearchProps> & RefAttributes<InputRef>\n> = forwardRef<InputRef, DialogComboboxOptionListSearchProps>(\n // eslint-disable-next-line react-component-name/react-component-name -- TODO(FEINF-4716)\n (\n {\n onChange,\n onSearch,\n virtualized,\n children,\n hasWrapper,\n controlledValue,\n setControlledValue,\n rightSearchControls,\n ...restProps\n },\n forwardedRef,\n ) => {\n const { theme } = useDesignSystemTheme();\n const { componentId, setDisableMouseOver } = useDialogComboboxContext();\n const { isInsideDialogComboboxOptionList } = useDialogComboboxOptionListContext();\n const noResultId = `no-result-${generateUuidV4()}`;\n\n const inputRef = useRef<InputRef>(null);\n useImperativeHandle(forwardedRef, () => inputRef.current as InputRef);\n\n const [searchValue, setSearchValue] = React.useState<string>();\n\n if (!isInsideDialogComboboxOptionList) {\n throw new Error('`DialogComboboxOptionListSearch` must be used within `DialogComboboxOptionList`');\n }\n\n const handleOnChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n // Suppress mouse-over highlighting while typing so that list reflows\n // don't accidentally steal focus from the search input.\n setDisableMouseOver(true);\n\n if (!virtualized) {\n setSearchValue(event.target.value);\n }\n setControlledValue?.(event.target.value);\n onSearch?.(event.target.value);\n };\n\n let filteredChildren = children;\n\n if (searchValue && !virtualized && controlledValue === undefined) {\n filteredChildren = filterChildren(hasWrapper ? children.props.children : children, searchValue);\n\n if (hasWrapper) {\n filteredChildren = React.cloneElement(children, {}, filteredChildren);\n }\n }\n\n const inputWrapperRef = useRef<HTMLDivElement>(null);\n\n // When the search value changes, highlight the first option\n useEffect(() => {\n if (!inputWrapperRef.current) {\n return;\n }\n const optionItems = getContentOptions(inputWrapperRef.current);\n\n if (optionItems) {\n // Reset previous highlights\n const highlightedOption = findHighlightedOption(optionItems);\n\n const firstOptionItem = optionItems?.[0];\n if (firstOptionItem) {\n highlightOption(firstOptionItem, highlightedOption, false);\n }\n }\n }, [searchValue]);\n\n const handleOnKeyDown = (event: React.KeyboardEvent<HTMLInputElement>) => {\n if (event.key === 'ArrowDown' || event.key === 'ArrowUp' || event.key === 'Enter') {\n event.preventDefault();\n } else {\n return;\n }\n\n // Find closest parent of type DialogComboboxOptionList and get all options within it\n const options = getContentOptions(event.target as HTMLElement);\n\n if (!options) {\n return;\n }\n\n const highlightedOption = findHighlightedOption(options);\n\n // If the user is navigating the option is highlighted without focusing in order to avoid losing focus on the input\n if (event.key === 'ArrowDown' || event.key === 'ArrowUp') {\n if (highlightedOption) {\n const nextOption = findClosestOptionSibling(\n highlightedOption,\n event.key === 'ArrowDown' ? 'next' : 'previous',\n );\n\n if (nextOption) {\n highlightOption(nextOption, highlightedOption, false);\n } else if (event.key === 'ArrowDown') {\n // If there is no next option, highlight the first option\n const firstOption = options[0];\n highlightOption(firstOption, highlightedOption, false);\n } else if (event.key === 'ArrowUp') {\n // If there is no previous option, highlight the last option\n const lastOption = options[options.length - 1];\n highlightOption(lastOption, highlightedOption, false);\n }\n } else {\n // In case there is no highlighted option, highlight the first / last option depending on key\n const nextOption = event.key === 'ArrowDown' ? options[0] : options[options.length - 1];\n if (nextOption) {\n highlightOption(nextOption, undefined, false);\n }\n }\n // On Enter trigger a click event on the highlighted option\n } else if (event.key === 'Enter' && highlightedOption) {\n highlightedOption.click();\n }\n };\n\n const childrenIsNotEmpty = Children.toArray(hasWrapper ? children.props.children : children).some((child) =>\n React.isValidElement(child),\n );\n\n const hasFilteredResults =\n (hasWrapper && filteredChildren?.props.children?.length) || (!hasWrapper && filteredChildren?.length);\n\n useEffect(() => {\n if (!hasFilteredResults) {\n inputRef.current?.input?.setAttribute('aria-activedescendant', noResultId);\n }\n }, [hasFilteredResults, noResultId, inputRef.current?.input?.value]);\n\n return (\n <>\n <div\n ref={inputWrapperRef}\n css={{\n padding: `${theme.spacing.sm}px ${theme.spacing.lg / 2}px ${theme.spacing.sm}px`,\n width: '100%',\n boxSizing: 'border-box',\n position: 'sticky',\n top: 0,\n background: theme.colors.backgroundPrimary,\n zIndex: theme.options.zIndexBase + 1,\n }}\n >\n <div\n css={{\n display: 'flex',\n flexDirection: 'row',\n gap: theme.spacing.sm,\n }}\n >\n <Input\n // oxlint-disable-next-line @databricks/no-dynamic-property-value -- Contextual component ID validated through DialogCombobox component exempt:a992c761-9f18-43b0-af9d-dc9ee629260a\n componentId={\n componentId\n ? `${componentId}.search`\n : 'codegen_design_system_src_design_system_dialogcombobox_dialogcomboboxoptionlistsearch.tsx_173'\n }\n type=\"search\"\n name=\"search\"\n ref={inputRef}\n prefix={<SearchIcon />}\n placeholder=\"Search\"\n onChange={handleOnChange}\n onKeyDown={(event) => {\n handleOnKeyDown(event);\n restProps.onKeyDown?.(event);\n }}\n value={controlledValue ?? searchValue}\n shouldPreventFormSubmission\n {...restProps}\n />\n {rightSearchControls}\n </div>\n </div>\n {virtualized ? (\n children\n ) : hasFilteredResults && childrenIsNotEmpty ? (\n <div\n aria-live=\"polite\"\n css={{\n width: '100%',\n }}\n >\n {filteredChildren}\n </div>\n ) : (\n <EmptyResults id={noResultId} />\n )}\n </>\n );\n },\n);\n","import type { ForwardRefExoticComponent, PropsWithoutRef, RefAttributes } from 'react';\nimport { forwardRef, useEffect, useImperativeHandle, useRef, useState } from 'react';\n\nimport type { DialogComboboxOptionListProps } from './DialogComboboxOptionList';\nimport { DialogComboboxOptionList } from './DialogComboboxOptionList';\nimport { DialogComboboxOptionListCheckboxItem } from './DialogComboboxOptionListCheckboxItem';\nimport { DialogComboboxOptionListSearch } from './DialogComboboxOptionListSearch';\nimport { DialogComboboxOptionListSelectItem } from './DialogComboboxOptionListSelectItem';\nimport { useDialogComboboxContext } from './hooks/useDialogComboboxContext';\nimport { DialogComboboxOptionListContextProvider } from './providers/DialogComboboxOptionListContext';\nimport { highlightOption } from './shared';\nimport type { WithLoadingState } from '../LoadingState/LoadingState';\nimport { EmptyResults, LoadingSpinner } from '../_shared_/Combobox';\n\nexport interface DialogComboboxOptionControlledListProps\n extends Omit<DialogComboboxOptionListProps, 'children'>, WithLoadingState {\n withSearch?: boolean;\n showAllOption?: boolean;\n allOptionLabel?: string;\n options: string[];\n onChange?: (...args: any[]) => any;\n}\n\nexport const DialogComboboxOptionControlledList: ForwardRefExoticComponent<\n PropsWithoutRef<DialogComboboxOptionControlledListProps> & RefAttributes<HTMLDivElement>\n> = forwardRef<HTMLDivElement, DialogComboboxOptionControlledListProps>(\n // eslint-disable-next-line react-component-name/react-component-name -- TODO(FEINF-4716)\n (\n {\n options,\n onChange,\n loading,\n loadingDescription = 'DialogComboboxOptionControlledList',\n withProgressiveLoading,\n withSearch,\n showAllOption,\n allOptionLabel = 'All',\n ...restProps\n },\n forwardedRef,\n ) => {\n const { isInsideDialogCombobox, multiSelect, value, setValue, setIsControlled } = useDialogComboboxContext();\n const [lookAhead, setLookAhead] = useState('');\n\n if (!isInsideDialogCombobox) {\n throw new Error('`DialogComboboxOptionControlledList` must be used within `DialogCombobox`');\n }\n\n const lookAheadTimeout = useRef<NodeJS.Timeout | null>(null);\n const ref = useRef<HTMLDivElement>(null);\n useImperativeHandle(forwardedRef, () => ref.current as HTMLDivElement);\n\n useEffect(() => {\n if (lookAheadTimeout.current) {\n clearTimeout(lookAheadTimeout.current);\n }\n\n lookAheadTimeout.current = setTimeout(() => {\n setLookAhead('');\n }, 1500);\n\n return () => {\n if (lookAheadTimeout.current) {\n clearTimeout(lookAheadTimeout.current);\n }\n };\n }, [lookAhead]);\n\n useEffect(() => {\n if (loading && !withProgressiveLoading) {\n return;\n }\n\n const optionItems = ref.current?.querySelectorAll('[role=\"option\"]');\n const hasTabIndexedOption = Array.from(optionItems ?? []).some((optionItem) => {\n return optionItem.getAttribute('tabindex') === '0';\n });\n\n if (!hasTabIndexedOption) {\n const firstOptionItem = optionItems?.[0];\n if (firstOptionItem) {\n highlightOption(firstOptionItem as HTMLElement, undefined, false);\n }\n }\n }, [loading, withProgressiveLoading]);\n\n const isOptionChecked = options.reduce(\n (acc, option) => {\n acc[option] = value?.includes(option);\n return acc;\n },\n {} as Record<string, boolean>,\n );\n\n const handleUpdate = (updatedValue: string) => {\n setIsControlled(true);\n\n let newValue = [];\n if (multiSelect) {\n if (value.find((item) => item === updatedValue)) {\n newValue = value.filter((item) => item !== updatedValue);\n } else {\n newValue = [...value, updatedValue];\n }\n } else {\n newValue = [updatedValue];\n }\n\n setValue(newValue);\n isOptionChecked[updatedValue] = !isOptionChecked[updatedValue];\n if (onChange) {\n onChange(newValue);\n }\n };\n\n const handleSelectAll = () => {\n setIsControlled(true);\n\n if (value.length === options.length) {\n setValue([]);\n options.forEach((option) => {\n isOptionChecked[option] = false;\n });\n if (onChange) {\n onChange([]);\n }\n } else {\n setValue(options);\n options.forEach((option) => {\n isOptionChecked[option] = true;\n });\n if (onChange) {\n onChange(options);\n }\n }\n };\n\n const renderedOptions = (\n <>\n {showAllOption && multiSelect && (\n <DialogComboboxOptionListCheckboxItem\n value=\"all\"\n onChange={handleSelectAll}\n checked={value.length === options.length}\n indeterminate={Boolean(value.length) && value.length !== options.length}\n >\n {allOptionLabel}\n </DialogComboboxOptionListCheckboxItem>\n )}\n {options && options.length > 0 ? (\n options.map((option, key) =>\n multiSelect ? (\n <DialogComboboxOptionListCheckboxItem\n key={key}\n value={option}\n checked={isOptionChecked[option]}\n onChange={handleUpdate}\n >\n {option}\n </DialogComboboxOptionListCheckboxItem>\n ) : (\n <DialogComboboxOptionListSelectItem\n key={key}\n value={option}\n checked={isOptionChecked[option]}\n onChange={handleUpdate}\n >\n {option}\n </DialogComboboxOptionListSelectItem>\n ),\n )\n ) : (\n <EmptyResults />\n )}\n </>\n );\n\n const optionList = (\n <DialogComboboxOptionList>\n {withSearch ? (\n <DialogComboboxOptionListSearch hasWrapper>{renderedOptions}</DialogComboboxOptionListSearch>\n ) : (\n renderedOptions\n )}\n </DialogComboboxOptionList>\n );\n\n return (\n <div\n ref={ref}\n aria-busy={loading}\n css={{ display: 'flex', flexDirection: 'column', alignItems: 'flex-start', width: '100%' }}\n {...restProps}\n >\n <DialogComboboxOptionListContextProvider\n value={{ isInsideDialogComboboxOptionList: true, lookAhead, setLookAhead }}\n >\n <>\n {loading ? (\n withProgressiveLoading ? (\n <>\n {optionList}\n <LoadingSpinner aria-label=\"Loading\" alt=\"Loading spinner\" loadingDescription={loadingDescription} />\n </>\n ) : (\n <LoadingSpinner aria-label=\"Loading\" alt=\"Loading spinner\" loadingDescription={loadingDescription} />\n )\n ) : (\n optionList\n )}\n </>\n </DialogComboboxOptionListContextProvider>\n </div>\n );\n },\n);\n","import { useDialogComboboxContext } from './hooks/useDialogComboboxContext';\nimport { Separator } from '../_shared_/Combobox';\n\nexport const DialogComboboxSeparator = (props: React.HTMLAttributes<HTMLDivElement>): JSX.Element => {\n const { isInsideDialogCombobox } = useDialogComboboxContext();\n\n if (!isInsideDialogCombobox) {\n throw new Error('`DialogComboboxSeparator` must be used within `DialogCombobox`');\n }\n\n return <Separator {...props} />;\n};\n","import type { DropDownProps as AntDDropdownProps } from 'antd';\nimport { Dropdown as AntDDropdown } from 'antd';\n\nimport { DesignSystemAntDConfigProvider } from '../DesignSystemProvider';\nimport { useDesignSystemTheme } from '../Hooks';\nimport type { DangerouslySetAntdProps, HTMLDataAttributes } from '../types';\nimport { addDebugOutlineIfEnabled } from '../utils/debug';\n\nexport interface DropdownProps\n extends AntDDropdownProps, DangerouslySetAntdProps<AntDDropdownProps>, HTMLDataAttributes {}\n\n/**\n * @deprecated Use `DropdownMenu` instead.\n */\nexport const Dropdown: React.FC<React.PropsWithChildren<DropdownProps>> = ({ dangerouslySetAntdProps, ...props }) => {\n const { theme } = useDesignSystemTheme();\n return (\n <DesignSystemAntDConfigProvider>\n <AntDDropdown\n {...addDebugOutlineIfEnabled()}\n mouseLeaveDelay={0.25}\n {...props}\n overlayStyle={{\n zIndex: theme.options.zIndexBase + 50,\n ...props.overlayStyle,\n }}\n {...dangerouslySetAntdProps}\n />\n </DesignSystemAntDConfigProvider>\n );\n};\n","import type { SerializedStyles } from '@emotion/react';\nimport { css } from '@emotion/react';\nimport classnames from 'classnames';\n\nimport type { Theme } from '../../theme';\nimport { useDesignSystemTheme } from '../Hooks';\nimport type { InfoPopoverProps } from '../Popover';\nimport { InfoPopover } from '../Popover';\nimport type { HTMLDataAttributes } from '../types';\nimport { addDebugOutlineIfEnabled } from '../utils/debug';\n\nexport interface LabelProps extends React.LabelHTMLAttributes<HTMLLabelElement>, HTMLDataAttributes {\n inline?: boolean;\n required?: boolean;\n /**\n * Adds an `InfoPopover` after the label. Please utilize `FormUI.Hint` unless a popover is absolutely necessary.\n * @type React.ReactNode | undefined\n */\n infoPopoverContents?: React.ReactNode;\n infoPopoverProps?: InfoPopoverProps;\n\n labelTopRightElement?: React.ReactNode;\n}\n\nconst getLabelStyles = (theme: Theme, { inline }: { inline?: boolean }): SerializedStyles => {\n const styles = {\n '&&': {\n color: theme.colors.textPrimary,\n fontWeight: theme.typography.typographyBoldFontWeight,\n display: inline ? 'inline' : 'block',\n lineHeight: theme.typography.lineHeightBase,\n },\n };\n\n return css(styles);\n};\n\nconst getLabelWrapperStyles = (classNamePrefix: string, theme: Theme): SerializedStyles => {\n const styles = {\n display: 'flex',\n gap: theme.spacing.xs,\n alignItems: 'center',\n\n [`&& + .${classNamePrefix}-input, && + .${classNamePrefix}-input-affix-wrapper, && + .${classNamePrefix}-select, && + .${classNamePrefix}-selectv2, && + .${classNamePrefix}-dialogcombobox, && + .${classNamePrefix}-checkbox-group, && + .${classNamePrefix}-radio-group, && + .${classNamePrefix}-typeahead-combobox, && + .${classNamePrefix}-datepicker, && + .${classNamePrefix}-rangepicker`]:\n {\n marginTop: theme.spacing.sm,\n },\n };\n\n return css(styles);\n};\nexport const Label = (props: LabelProps): JSX.Element => {\n const {\n children,\n className,\n inline,\n required,\n infoPopoverContents,\n infoPopoverProps = {},\n labelTopRightElement,\n ...restProps\n } = props; // Destructure the new prop\n const { classNamePrefix, theme } = useDesignSystemTheme();\n\n const label = (\n <label\n {...addDebugOutlineIfEnabled()}\n css={[\n getLabelStyles(theme, { inline }),\n ...(!infoPopoverContents ? [getLabelWrapperStyles(classNamePrefix, theme)] : []),\n ]}\n className={classnames(`${classNamePrefix}-label`, className)}\n {...restProps}\n >\n <span css={{ display: 'flex', alignItems: 'center' }}>\n {children}\n {required && <span aria-hidden=\"true\">*</span>}\n {labelTopRightElement && <span css={{ marginLeft: 'auto' }}>{labelTopRightElement}</span>}\n </span>\n </label>\n );\n\n return infoPopoverContents ? (\n <div css={getLabelWrapperStyles(classNamePrefix, theme)}>\n {label}\n <InfoPopover {...infoPopoverProps}>{infoPopoverContents}</InfoPopover>\n </div>\n ) : (\n label\n );\n};\n","import type { CSSObject, SerializedStyles } from '@emotion/react';\nimport { css } from '@emotion/react';\nimport { useMergeRefs } from '@floating-ui/react';\nimport { Switch as AntDSwitch } from 'antd';\nimport type { ForwardRefExoticComponent, PropsWithoutRef, RefAttributes } from 'react';\nimport { forwardRef, useEffect, useMemo, useState } from 'react';\n\nimport type { SwitchProps } from './Switch';\nimport type { Theme } from '../../theme';\nimport {\n useDesignSystemEventComponentCallbacks,\n DesignSystemEventProviderAnalyticsEventTypes,\n DesignSystemEventProviderComponentTypes,\n} from '../DesignSystemEventProvider';\nimport { DesignSystemAntDConfigProvider, getAnimationCss } from '../DesignSystemProvider';\nimport { useDesignSystemTheme } from '../Hooks/useDesignSystemTheme';\nimport { Label } from '../Label/Label';\nimport { useNotifyOnFirstView } from '../utils';\nimport { importantify } from '../utils/css-utils';\nimport { addDebugOutlineIfEnabled } from '../utils/debug';\nimport { safex } from '../utils/safex';\nimport { useUniqueId } from '../utils/useUniqueId';\n\nexport const getSwitchWithLabelStyles = ({\n clsPrefix,\n theme,\n disabled,\n}: {\n clsPrefix: string;\n theme: Theme;\n disabled?: boolean;\n}): SerializedStyles => {\n // Default value\n const SWITCH_WIDTH = 28;\n\n const styles: CSSObject = {\n display: 'flex',\n alignItems: 'center',\n\n ...(disabled && {\n '&&, label': {\n color: theme.colors.actionDisabledText,\n },\n }),\n\n [`&.${clsPrefix}-switch, &.${clsPrefix}-switch-checked`]: {\n [`.${clsPrefix}-switch-handle`]: {\n top: -1,\n },\n [`.${clsPrefix}-switch-handle, .${clsPrefix}-switch-handle:before`]: {\n width: 16,\n height: 16,\n borderRadius: theme.borders.borderRadiusFull,\n },\n },\n\n // Switch is Off\n [`&.${clsPrefix}-switch`]: {\n backgroundColor: theme.colors.backgroundPrimary,\n border: `1px solid ${theme.colors.actionDefaultBorderDefault}`,\n\n borderRadius: theme.borders.borderRadiusFull,\n\n [`.${clsPrefix}-switch-handle:before`]: {\n border: `1px solid ${theme.colors.actionDefaultBorderDefault}`,\n boxShadow: 'none',\n left: -1,\n transition: 'none',\n\n borderRadius: theme.borders.borderRadiusFull,\n },\n\n [`&:hover:not(.${clsPrefix}-switch-disabled)`]: {\n backgroundColor: theme.colors.actionDefaultBackgroundHover,\n border: `1px solid ${theme.colors.actionPrimaryBackgroundHover}`,\n\n [`.${clsPrefix}-switch-handle:before`]: {\n boxShadow: 'none',\n border: `1px solid ${theme.colors.actionPrimaryBackgroundHover}`,\n },\n },\n\n [`&:active:not(.${clsPrefix}-switch-disabled)`]: {\n backgroundColor: theme.colors.actionDefaultBackgroundPress,\n border: `1px solid ${theme.colors.actionPrimaryBackgroundPress}`,\n\n [`.${clsPrefix}-switch-handle:before`]: {\n boxShadow: 'none',\n border: `1px solid ${theme.colors.actionPrimaryBackgroundPress}`,\n },\n },\n\n [`&.${clsPrefix}-switch-disabled`]: {\n backgroundColor: theme.colors.actionDisabledBackground,\n border: `1px solid ${theme.colors.actionDisabledBorder}`,\n\n [`.${clsPrefix}-switch-handle:before`]: {\n boxShadow: 'none',\n border: `1px solid ${theme.colors.actionDisabledBorder}`,\n },\n },\n\n [`&:focus-visible`]: {\n border: `1px solid ${theme.colors.actionPrimaryBackgroundDefault}`,\n boxShadow: 'none',\n outlineStyle: 'solid',\n outlineWidth: '1px',\n outlineColor: theme.colors.actionDefaultBorderFocus,\n\n [`.${clsPrefix}-switch-handle:before`]: {\n boxShadow: 'none',\n border: `1px solid ${theme.colors.actionPrimaryBackgroundDefault}`,\n },\n },\n\n [`&:focus`]: {\n boxShadow: 'none',\n },\n },\n\n // Switch is On\n [`&.${clsPrefix}-switch-checked`]: {\n backgroundColor: theme.colors.actionPrimaryBackgroundDefault,\n border: `1px solid ${theme.colors.actionPrimaryBackgroundDefault}`,\n\n [`&:hover:not(.${clsPrefix}-switch-disabled)`]: {\n backgroundColor: theme.colors.actionPrimaryBackgroundHover,\n border: `1px solid ${theme.colors.actionPrimaryBackgroundHover}`,\n\n [`.${clsPrefix}-switch-handle:before`]: {\n border: `1px solid ${theme.colors.actionPrimaryBackgroundHover}`,\n },\n },\n\n [`&:active:not(.${clsPrefix}-switch-disabled)`]: {\n backgroundColor: theme.colors.actionPrimaryBackgroundPress,\n border: `1px solid ${theme.colors.actionPrimaryBackgroundPress}`,\n\n [`.${clsPrefix}-switch-handle:before`]: {\n border: `1px solid ${theme.colors.actionPrimaryBackgroundPress}`,\n },\n },\n\n [`.${clsPrefix}-switch-handle:before`]: {\n boxShadow: 'none',\n border: `1px solid ${theme.colors.actionPrimaryBackgroundDefault}`,\n right: -1,\n },\n\n [`&.${clsPrefix}-switch-disabled`]: {\n backgroundColor: theme.colors.actionDisabledText,\n border: `1px solid ${theme.colors.actionDisabledText}`,\n\n [`.${clsPrefix}-switch-handle:before`]: {\n boxShadow: 'none',\n border: `1px solid ${theme.colors.actionDisabledText}`,\n },\n },\n\n [`&:focus-visible`]: {\n outlineOffset: '1px',\n },\n },\n\n [`.${clsPrefix}-switch-handle:before`]: {\n backgroundColor: theme.colors.backgroundPrimary,\n },\n\n [`&& + .${clsPrefix}-hint, && + .${clsPrefix}-form-message`]: {\n paddingLeft: theme.spacing.sm + SWITCH_WIDTH,\n },\n\n [`&& + .${clsPrefix}-form-message`]: {\n marginTop: 0,\n },\n\n [`.${clsPrefix}-click-animating-node`]: {\n animation: 'none',\n },\n\n opacity: 1,\n };\n const importantStyles = importantify(styles);\n\n return css(importantStyles);\n};\n\nexport const AntDSwitchInternal: ForwardRefExoticComponent<PropsWithoutRef<SwitchProps> & RefAttributes<HTMLElement>> =\n forwardRef<HTMLElement, SwitchProps>(function AntDSwitchInternal(\n {\n dangerouslySetAntdProps,\n label,\n labelProps,\n activeLabel,\n inactiveLabel,\n disabledLabel,\n componentId,\n analyticsEvents,\n onChange,\n ...props\n },\n ref,\n ) {\n const emitOnView = safex('databricks.fe.observability.defaultComponentView.switch', false);\n const { theme, classNamePrefix } = useDesignSystemTheme();\n const duboisId = useUniqueId('dubois-switch');\n const uniqueId = props.id ?? duboisId;\n // Seed from the controlled prop when present (=== undefined, not ||, so a controlled `checked={false}`\n // isn't overridden by a truthy defaultChecked); mirrors NativeSwitch's isChecked init.\n const [isChecked, setIsChecked] = useState<boolean>(\n props.checked !== undefined ? props.checked : (props.defaultChecked ?? false),\n );\n const memoizedAnalyticsEvents = useMemo(\n () =>\n analyticsEvents ??\n (emitOnView\n ? [\n DesignSystemEventProviderAnalyticsEventTypes.OnValueChange,\n DesignSystemEventProviderAnalyticsEventTypes.OnView,\n ]\n : [DesignSystemEventProviderAnalyticsEventTypes.OnValueChange]),\n [analyticsEvents, emitOnView],\n );\n const eventContext = useDesignSystemEventComponentCallbacks({\n componentType: DesignSystemEventProviderComponentTypes.Switch,\n componentId,\n analyticsEvents: memoizedAnalyticsEvents,\n valueHasNoPii: true,\n });\n\n const { elementRef: viewRef } = useNotifyOnFirstView<HTMLElement>({\n onView: eventContext.onView,\n value: isChecked,\n });\n // Both the incoming external ref and the first-view ref target the same <AntDSwitch> element.\n // Merge them the same way AntDRadioInternal composes its external ref with its internal view\n // ref (useMergeRefs from @floating-ui/react).\n const mergedRef = useMergeRefs<HTMLElement>([ref, viewRef]);\n\n const handleToggle = (newState: boolean, event: MouseEvent) => {\n eventContext.onValueChange(newState);\n if (onChange) {\n onChange(newState, event);\n } else {\n setIsChecked(newState);\n }\n };\n\n const onChangeHandler = (newState: boolean, event: MouseEvent) => {\n eventContext.onValueChange(newState);\n onChange?.(newState, event);\n };\n\n useEffect(() => {\n if (props.checked === undefined) {\n return;\n }\n setIsChecked(props.checked);\n }, [props.checked]);\n\n const hasNewLabels = activeLabel && inactiveLabel && disabledLabel;\n const stateMessage = isChecked ? activeLabel : inactiveLabel;\n\n // AntDSwitch's interface does not include `id` even though it passes it through and works as expected\n // We are using this to bypass that check\n const idPropObj = {\n id: uniqueId,\n };\n\n const switchComponent = (\n <AntDSwitch\n {...addDebugOutlineIfEnabled()}\n {...props}\n {...dangerouslySetAntdProps}\n onChange={handleToggle}\n {...idPropObj}\n css={{\n ...css(getAnimationCss(theme.options.enableAnimation)),\n ...getSwitchWithLabelStyles({\n clsPrefix: classNamePrefix,\n theme,\n disabled: props.disabled,\n }),\n }}\n ref={mergedRef}\n />\n );\n\n const labelComponent = (\n <Label\n inline\n {...labelProps}\n htmlFor={uniqueId}\n style={{ ...(hasNewLabels && { marginRight: theme.spacing.sm }) }}\n >\n {label}\n </Label>\n );\n\n return label ? (\n <DesignSystemAntDConfigProvider>\n {/*We need to offer the component with embedded Label in order to control the label alignment to Switch*/}\n {/*and also control the padding of Hints and FormMessage relative to the Switch's label*/}\n <div\n {...addDebugOutlineIfEnabled()}\n css={getSwitchWithLabelStyles({\n clsPrefix: classNamePrefix,\n theme,\n disabled: props.disabled,\n })}\n {...eventContext.dataComponentProps}\n >\n {hasNewLabels ? (\n <>\n {labelComponent}\n <span style={{ marginLeft: 'auto', marginRight: theme.spacing.sm, color: theme.colors.textPrimary }}>\n {`${stateMessage}${props.disabled ? ` (${disabledLabel})` : ''}`}\n </span>\n {switchComponent}\n </>\n ) : (\n <>\n {switchComponent}\n {labelComponent}\n </>\n )}\n </div>\n </DesignSystemAntDConfigProvider>\n ) : (\n <DesignSystemAntDConfigProvider>\n <AntDSwitch\n onChange={onChangeHandler}\n {...addDebugOutlineIfEnabled()}\n {...props}\n {...dangerouslySetAntdProps}\n {...idPropObj}\n css={{\n ...css(getAnimationCss(theme.options.enableAnimation)),\n ...getSwitchWithLabelStyles({\n clsPrefix: classNamePrefix,\n theme,\n disabled: props.disabled,\n }),\n }}\n {...eventContext.dataComponentProps}\n ref={mergedRef}\n />\n </DesignSystemAntDConfigProvider>\n );\n });\n","import { useMergeRefs } from '@floating-ui/react';\nimport classnames from 'classnames';\nimport type { ForwardRefExoticComponent, PropsWithoutRef, RefAttributes } from 'react';\nimport { forwardRef, useCallback, useEffect, useMemo, useState } from 'react';\n\n// Styles ship through all-styles.css, so there's no CSS import here.\nimport type { SwitchProps } from './Switch';\nimport {\n DesignSystemEventProviderAnalyticsEventTypes,\n DesignSystemEventProviderComponentTypes,\n useDesignSystemEventComponentCallbacks,\n} from '../DesignSystemEventProvider';\nimport { Label } from '../Label/Label';\nimport { useNotifyOnFirstView } from '../utils';\nimport { addDebugOutlineIfEnabled } from '../utils/debug';\nimport { safex } from '../utils/safex';\nimport { useUniqueId } from '../utils/useUniqueId';\n\n// dangerouslySetAntdProps has no native equivalent; warn in dev when it's passed and dropped.\nfunction logAntdPropWarning(dangerouslySetAntdProps: SwitchProps['dangerouslySetAntdProps']): void {\n if (\n process.env.NODE_ENV !== 'production' &&\n dangerouslySetAntdProps &&\n Object.keys(dangerouslySetAntdProps).length > 0\n ) {\n // eslint-disable-next-line no-console\n console.warn(\n '[Switch] dangerouslySetAntdProps is ignored under the native variant. ' +\n 'Migrate any AntD-specific props to native equivalents.',\n );\n }\n}\n\nexport const NativeSwitch: ForwardRefExoticComponent<PropsWithoutRef<SwitchProps> & RefAttributes<HTMLInputElement>> =\n forwardRef<HTMLInputElement, SwitchProps>(function NativeSwitch(\n {\n checked,\n defaultChecked,\n disabled = false,\n onChange,\n className,\n id,\n componentId,\n analyticsEvents,\n // Embedded-label API — the shared <Label>, plus an on/off state message when all three of\n // activeLabel/inactiveLabel/disabledLabel are set.\n label,\n labelProps,\n activeLabel,\n inactiveLabel,\n disabledLabel,\n // Pulled out of restProps so they never spread onto the <input>: children (invalid on a void\n // element), the dropped AntD escape hatch, and onClick (re-fired below with AntD's signature).\n children,\n dangerouslySetAntdProps,\n onClick,\n ...restProps\n },\n ref,\n ): JSX.Element {\n useEffect(() => {\n logAntdPropWarning(dangerouslySetAntdProps);\n }, [dangerouslySetAntdProps]);\n\n const emitOnView = safex('databricks.fe.observability.defaultComponentView.switch', false);\n const duboisId = useUniqueId('dubois-switch');\n const uniqueId = id ?? duboisId;\n\n // Local state backs only the uncontrolled path; when controlled, isChecked reads the prop directly.\n const [uncontrolledChecked, setUncontrolledChecked] = useState<boolean>(defaultChecked ?? false);\n const isChecked = checked !== undefined ? checked : uncontrolledChecked;\n\n const memoizedAnalyticsEvents = useMemo(\n () =>\n analyticsEvents ??\n (emitOnView\n ? [\n DesignSystemEventProviderAnalyticsEventTypes.OnValueChange,\n DesignSystemEventProviderAnalyticsEventTypes.OnView,\n ]\n : [DesignSystemEventProviderAnalyticsEventTypes.OnValueChange]),\n [analyticsEvents, emitOnView],\n );\n const eventContext = useDesignSystemEventComponentCallbacks({\n componentType: DesignSystemEventProviderComponentTypes.Switch,\n componentId,\n analyticsEvents: memoizedAnalyticsEvents,\n valueHasNoPii: true,\n });\n\n const { elementRef: viewRef } = useNotifyOnFirstView<HTMLInputElement>({\n onView: eventContext.onView,\n value: isChecked,\n });\n const mergedRef = useMergeRefs<HTMLInputElement>([ref, viewRef]);\n\n const { onValueChange } = eventContext;\n // Guard on disabled ourselves: a synthetic dispatch (RTL, programmatic .click()) fires change even\n // on a disabled input, unlike a real user click.\n const handleChange = useCallback(\n (event: React.ChangeEvent<HTMLInputElement>) => {\n if (disabled) {\n return;\n }\n const nextChecked = event.target.checked;\n // Track locally only when uncontrolled; the parent owns a controlled `checked`.\n if (checked === undefined) {\n setUncontrolledChecked(nextChecked);\n }\n onValueChange(nextChecked);\n // onClick fires with the same (checked, event) signature as onChange — some consumers wire only\n // onClick as their toggle handler.\n const antdEvent = event as unknown as Parameters<NonNullable<SwitchProps['onChange']>>[1];\n onChange?.(nextChecked, antdEvent);\n onClick?.(nextChecked, antdEvent);\n },\n [checked, disabled, onChange, onClick, onValueChange],\n );\n\n // Inherits the `--db-color-*` scope (theme-class + consumer override) from the DesignSystemProvider\n // wrapper; no self-scoped theme class, so a consumer override set on that wrapper reaches here.\n const rootClassName = classnames('db-switch', className);\n\n // Set only one of checked/defaultChecked — React warns if an input has both.\n const checkedStateProps = checked !== undefined ? { checked } : { defaultChecked };\n\n const switchControl = (\n <label {...addDebugOutlineIfEnabled()} className={rootClassName}>\n <input\n ref={mergedRef}\n type=\"checkbox\"\n role=\"switch\"\n id={uniqueId}\n {...checkedStateProps}\n onChange={handleChange}\n disabled={disabled}\n {...restProps}\n {...eventContext.dataComponentProps}\n />\n </label>\n );\n\n if (!label) {\n return switchControl;\n }\n\n // With all three labels set, the label and state message render before the switch; otherwise a\n // plain label renders after it. htmlFor binds the <Label> to the <input> so clicking it toggles.\n const hasNewLabels = Boolean(activeLabel && inactiveLabel && disabledLabel);\n const stateMessage = isChecked ? activeLabel : inactiveLabel;\n const labelComponent = (\n <Label inline {...labelProps} htmlFor={uniqueId}>\n {label}\n </Label>\n );\n\n return (\n <div {...addDebugOutlineIfEnabled()} className=\"db-switch-wrapper\">\n {hasNewLabels ? (\n <>\n {labelComponent}\n <span className=\"db-switch-state-message\">{`${stateMessage}${disabled ? ` (${disabledLabel})` : ''}`}</span>\n {switchControl}\n </>\n ) : (\n <>\n {switchControl}\n {labelComponent}\n </>\n )}\n </div>\n );\n });\n","import type { WithConditionalCSSProp } from '@emotion/react/types/jsx-namespace';\nimport type { SwitchProps as AntDSwitchProps } from 'antd';\nimport type { ForwardRefExoticComponent, PropsWithoutRef, Ref, RefAttributes } from 'react';\nimport { forwardRef } from 'react';\n\nimport { AntDSwitchInternal } from './AntDSwitchInternal';\nimport { NativeSwitch } from './NativeSwitch';\nimport type { DesignSystemEventProviderAnalyticsEventTypes } from '../DesignSystemEventProvider';\nimport type { LabelProps } from '../Label/Label';\nimport type { AnalyticsEventProps, DangerouslySetAntdProps, HTMLDataAttributes } from '../types';\nimport { safex } from '../utils/safex';\n\n// Keep the style helper on the Switch barrel for consumers that imported it before the AntD split.\nexport { getSwitchWithLabelStyles } from './AntDSwitchInternal';\n\nexport interface SwitchProps\n extends\n Pick<\n AntDSwitchProps,\n 'autoFocus' | 'checked' | 'className' | 'defaultChecked' | 'disabled' | 'onChange' | 'onClick'\n >,\n HTMLDataAttributes,\n DangerouslySetAntdProps<AntDSwitchProps>,\n AnalyticsEventProps<\n DesignSystemEventProviderAnalyticsEventTypes.OnValueChange | DesignSystemEventProviderAnalyticsEventTypes.OnView\n > {\n id?: string;\n label?: string;\n labelProps?: LabelProps & WithConditionalCSSProp<LabelProps>;\n activeLabel?: React.ReactNode;\n inactiveLabel?: React.ReactNode;\n disabledLabel?: React.ReactNode;\n children?: React.ReactNode;\n}\n\nexport const Switch: ForwardRefExoticComponent<PropsWithoutRef<SwitchProps> & RefAttributes<HTMLElement>> = forwardRef<\n HTMLElement,\n SwitchProps\n>(function Switch(props, ref) {\n const useNativeSwitch = safex('databricks.fe.designsystem.useNativeSwitch', false);\n if (useNativeSwitch) {\n // The native variant's ref target is its <input> (HTMLInputElement extends HTMLElement, so the\n // public HTMLElement ref type still holds).\n return <NativeSwitch {...props} ref={ref as Ref<HTMLInputElement>} />;\n }\n return <AntDSwitchInternal {...props} ref={ref} />;\n});\n","import type { CSSObject } from '@emotion/react';\nimport { useFloating, flip, shift, autoUpdate, offset, useMergeRefs } from '@floating-ui/react';\nimport React, { forwardRef, useMemo } from 'react';\n\nimport type { ComboboxStateAnalyticsReturnValue } from './hooks';\nimport { TypeaheadComboboxContextProvider } from './providers/TypeaheadComboboxContext';\nimport { DesignSystemEventProviderComponentTypes } from '../DesignSystemEventProvider';\nimport { useDesignSystemTheme } from '../Hooks';\nimport { useNotifyOnFirstView } from '../utils/useNotifyOnFirstView';\n\nconst ROOT_CSS: CSSObject = { display: 'inline-block', width: '100%' };\n\n/**\n * Deprecated in favor of `TypeaheadComboboxV2`.\n * @deprecated\n */\nexport interface TypeaheadComboboxRootProps<T> extends React.HTMLAttributes<HTMLDivElement> {\n comboboxState: ComboboxStateAnalyticsReturnValue<T>;\n multiSelect?: boolean;\n floatingStrategy?: 'absolute' | 'fixed';\n children: React.ReactNode;\n}\n\n/**\n * Deprecated in favor of `TypeaheadComboboxV2`.\n * @deprecated\n */\nexport const TypeaheadComboboxRoot: React.FC<React.PropsWithChildren<TypeaheadComboboxRootProps<any>>> = forwardRef<\n HTMLDivElement,\n TypeaheadComboboxRootProps<any>\n // eslint-disable-next-line react-component-name/react-component-name -- TODO(FEINF-4716)\n>(({ comboboxState, multiSelect = false, floatingStrategy = 'absolute', children, ...props }, ref) => {\n const { classNamePrefix } = useDesignSystemTheme();\n const { refs, floatingStyles } = useFloating({\n whileElementsMounted: autoUpdate,\n middleware: [offset(4), flip(), shift()],\n placement: 'bottom-start',\n strategy: floatingStrategy,\n });\n\n const { elementRef: typeaheadComboboxRootRef } = useNotifyOnFirstView<HTMLDivElement>({\n onView: comboboxState.onView,\n value: comboboxState.firstOnViewValue,\n });\n const mergedRef = useMergeRefs<HTMLDivElement>([ref, typeaheadComboboxRootRef]);\n\n const contextValue = useMemo(\n () => ({\n componentId: comboboxState.componentId,\n multiSelect,\n isInsideTypeaheadCombobox: true,\n floatingUiRefs: refs,\n floatingStyles,\n }),\n [comboboxState.componentId, multiSelect, refs, floatingStyles],\n );\n\n return (\n <TypeaheadComboboxContextProvider value={contextValue}>\n <div\n {...comboboxState.getComboboxProps({}, { suppressRefError: true })}\n className={`${classNamePrefix}-typeahead-combobox`}\n css={ROOT_CSS}\n {...props}\n ref={mergedRef}\n data-component-type={DesignSystemEventProviderComponentTypes.TypeaheadCombobox}\n // oxlint-disable-next-line @databricks/no-dynamic-property-value -- Valid case, as combostate componentId is checked in the hook exempt:a7de1e72-e1ae-4747-9806-90853bef6a06\n data-component-id={comboboxState.componentId}\n >\n {children}\n </div>\n </TypeaheadComboboxContextProvider>\n );\n});\n\nexport default TypeaheadComboboxRoot;\n","import type { SerializedStyles } from '@emotion/react';\nimport { css } from '@emotion/react';\nimport { computePosition, flip, size } from '@floating-ui/dom';\nimport { useMergeRefs } from '@floating-ui/react';\nimport classnames from 'classnames';\nimport type { UseComboboxReturnValue } from 'downshift';\nimport type { ForwardRefExoticComponent, HTMLAttributes, PropsWithoutRef, ReactNode, RefAttributes } from 'react';\nimport React, { Children, Fragment, forwardRef, useCallback, useEffect, useState } from 'react';\nimport { createPortal } from 'react-dom';\n\nimport { useTypeaheadComboboxContext } from './hooks';\nimport { useDesignTokenOverrideStyles } from '../DesignSystemProvider';\nimport { useDesignSystemTheme, useDuboisThemeClass } from '../Hooks';\nimport { useDesignSystemContext } from '../Hooks/useDesignSystemContext';\nimport { EmptyResults, LoadingSpinner, getComboboxContentWrapperStyles } from '../_shared_/Combobox';\nimport { addDebugOutlineIfEnabled } from '../utils/debug';\n\n/**\n * Deprecated in favor of `TypeaheadComboboxV2`.\n * @deprecated\n */\nexport interface TypeaheadComboboxMenuProps<T> extends HTMLAttributes<HTMLUListElement> {\n comboboxState: UseComboboxReturnValue<T>;\n loading?: boolean;\n emptyText?: string | React.ReactNode;\n width?: number | string;\n minWidth?: number | string;\n maxWidth?: number | string;\n minHeight?: number | string;\n maxHeight?: number | string;\n /* For use with react-virtual: pass in virtualizer.totalSize */\n listWrapperHeight?: number;\n /* For use with react-virtual: pass in parentRef */\n virtualizerRef?: React.RefObject<T>;\n children?: ReactNode;\n matchTriggerWidth?: boolean;\n}\n\nconst TYPEAHEAD_COMBOBOX_MENU_STYLES: SerializedStyles = css({\n padding: 0,\n margin: 0,\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'flex-start',\n position: 'absolute',\n});\n\n/**\n * Deprecated in favor of `TypeaheadComboboxV2`.\n * @deprecated\n */\nexport const TypeaheadComboboxMenu: ForwardRefExoticComponent<\n PropsWithoutRef<TypeaheadComboboxMenuProps<any>> & RefAttributes<HTMLElement | null>\n> = forwardRef<HTMLElement | null, TypeaheadComboboxMenuProps<any>>(\n // eslint-disable-next-line react-component-name/react-component-name -- TODO(FEINF-4716)\n (\n {\n comboboxState,\n loading,\n emptyText,\n width,\n minWidth = 240,\n maxWidth,\n minHeight,\n maxHeight,\n listWrapperHeight,\n virtualizerRef,\n children,\n matchTriggerWidth,\n className,\n style,\n ...restProps\n },\n ref,\n ) => {\n const { getMenuProps, isOpen } = comboboxState;\n const { ref: downshiftRef, ...downshiftProps } = getMenuProps({}, { suppressRefError: true });\n const [viewPortMaxHeight, setViewPortMaxHeight] = useState<number | undefined>(undefined);\n const { floatingUiRefs, floatingStyles, isInsideTypeaheadCombobox, inputWidth } = useTypeaheadComboboxContext();\n if (!isInsideTypeaheadCombobox) {\n throw new Error('`TypeaheadComboboxMenu` must be used within `TypeaheadCombobox`');\n }\n\n const mergedRef = useMergeRefs([ref, downshiftRef, floatingUiRefs?.setFloating, virtualizerRef]);\n const { theme } = useDesignSystemTheme();\n const { getPopupContainer } = useDesignSystemContext();\n const themeClass = useDuboisThemeClass();\n const themeOverrideStyle = useDesignTokenOverrideStyles();\n\n const recalculateMaxHeight = useCallback(() => {\n if (\n isOpen &&\n floatingUiRefs?.floating &&\n floatingUiRefs.reference.current &&\n floatingUiRefs?.reference &&\n floatingUiRefs.floating.current\n ) {\n computePosition(floatingUiRefs.reference.current, floatingUiRefs.floating.current, {\n middleware: [\n flip(),\n size({\n padding: theme.spacing.sm,\n apply({ availableHeight }) {\n setViewPortMaxHeight(availableHeight);\n },\n }),\n ],\n });\n }\n }, [isOpen, floatingUiRefs, theme.spacing.sm]);\n\n useEffect(() => {\n if (!isOpen || maxHeight) {\n return;\n }\n\n recalculateMaxHeight();\n window.addEventListener('scroll', recalculateMaxHeight);\n\n return () => {\n window.removeEventListener('scroll', recalculateMaxHeight);\n };\n }, [isOpen, maxHeight, recalculateMaxHeight]);\n\n if (!isOpen) return null;\n\n const hasFragmentWrapper = children && !Array.isArray(children) && (children as any).type === Fragment;\n const filterableChildren = hasFragmentWrapper ? (children as any).props.children : children;\n\n const hasResults =\n filterableChildren &&\n Children.toArray(filterableChildren).some((child) => {\n if (React.isValidElement(child)) {\n const childType = child.props['__EMOTION_TYPE_PLEASE_DO_NOT_USE__']?.defaultProps._type ?? child.props._type;\n return ['TypeaheadComboboxMenuItem', 'TypeaheadComboboxCheckboxItem'].includes(childType);\n }\n return false;\n });\n\n const [menuItemChildren, footer] = Children.toArray(filterableChildren).reduce<React.ReactNode[][]>(\n (acc, child) => {\n const isFooter = React.isValidElement(child) && child.props._type === 'TypeaheadComboboxFooter';\n if (isFooter) {\n acc[1].push(child);\n } else {\n acc[0].push(child);\n }\n return acc;\n },\n [[], []],\n );\n\n return createPortal(\n <ul\n {...addDebugOutlineIfEnabled()}\n aria-busy={loading}\n {...downshiftProps}\n ref={mergedRef}\n css={[\n getComboboxContentWrapperStyles(theme, {\n maxHeight: maxHeight ?? viewPortMaxHeight,\n maxWidth,\n minHeight,\n minWidth,\n width,\n }),\n TYPEAHEAD_COMBOBOX_MENU_STYLES,\n matchTriggerWidth && inputWidth && { width: inputWidth },\n ]}\n {...restProps}\n className={classnames(className, themeClass)}\n style={{ ...floatingStyles, ...style, ...themeOverrideStyle }}\n >\n {loading ? (\n <LoadingSpinner aria-label=\"Loading\" alt=\"Loading spinner\" />\n ) : hasResults ? (\n <>\n <div\n style={{\n position: 'relative',\n width: '100%',\n ...(listWrapperHeight && { height: listWrapperHeight, flexShrink: 0 }),\n }}\n >\n {menuItemChildren}\n </div>\n {footer}\n </>\n ) : (\n <>\n <EmptyResults emptyText={emptyText} />\n {footer}\n </>\n )}\n </ul>,\n getPopupContainer ? getPopupContainer() : document.body,\n );\n },\n);\n","import type { SerializedStyles } from '@emotion/react';\nimport { css } from '@emotion/react';\nimport type { ForwardRefExoticComponent, PropsWithoutRef, RefAttributes } from 'react';\nimport React from 'react';\n\nimport type { Theme } from '../../theme';\nimport { useDesignSystemTheme } from '../Hooks';\nimport { ChevronDownIcon } from '../Icon';\n\n/**\n * Deprecated in favor of `TypeaheadComboboxV2`.\n * @deprecated\n */\nexport interface DownshiftToggleButtonProps {\n id: string;\n onClick: (e: React.SyntheticEvent) => void;\n tabIndex: number;\n}\n\ninterface TypeaheadComboboxToggleButtonProps extends DownshiftToggleButtonProps {\n disabled?: boolean;\n}\n\nconst getToggleButtonStyles = (theme: Theme, disabled?: boolean): SerializedStyles => {\n return css({\n cursor: 'pointer',\n userSelect: 'none',\n color: theme.colors.textSecondary,\n backgroundColor: 'transparent',\n border: 'none',\n padding: 0,\n marginLeft: theme.spacing.xs,\n height: 16,\n width: 16,\n\n ...(disabled && {\n pointerEvents: 'none',\n color: theme.colors.actionDisabledText,\n }),\n });\n};\n\n/**\n * Deprecated in favor of `TypeaheadComboboxV2`.\n * @deprecated\n */\nexport const TypeaheadComboboxToggleButton: ForwardRefExoticComponent<\n PropsWithoutRef<TypeaheadComboboxToggleButtonProps> & RefAttributes<HTMLButtonElement>\n> = React.forwardRef<HTMLButtonElement, TypeaheadComboboxToggleButtonProps>(\n // eslint-disable-next-line react-component-name/react-component-name -- TODO(FEINF-4716)\n ({ disabled, ...restProps }, ref) => {\n const { theme } = useDesignSystemTheme();\n const { onClick } = restProps;\n\n function handleClick(e: React.SyntheticEvent) {\n e.stopPropagation();\n onClick(e);\n }\n\n return (\n <button\n type=\"button\"\n aria-label=\"toggle menu\"\n ref={ref}\n css={getToggleButtonStyles(theme, disabled)}\n {...restProps}\n onClick={handleClick}\n >\n <ChevronDownIcon />\n </button>\n );\n },\n);\n","import type { UseComboboxGetToggleButtonPropsOptions } from 'downshift';\n\nimport { TypeaheadComboboxToggleButton, type DownshiftToggleButtonProps } from './TypeaheadComboboxToggleButton';\nimport type { ButtonSize } from '../Button';\nimport { ClearSelectionButton } from '../_shared_/Combobox/ClearSelectionButton';\nimport { LoadingSpinner } from '../_shared_/Combobox/LoadingSpinner';\n\n/** Height of the non-inline controls block, for callers that position it themselves. */\nexport const TYPEAHEAD_COMBOBOX_CONTROLS_HEIGHT = 16;\n\nexport interface TypeaheadComboboxControlsProps {\n getDownshiftToggleButtonProps: (options?: UseComboboxGetToggleButtonPropsOptions) => DownshiftToggleButtonProps;\n showClearSelectionButton?: boolean;\n showComboboxToggleButton?: boolean;\n handleClear?: (e: any) => void;\n disabled?: boolean;\n size?: ButtonSize;\n /** When true, replaces the toggle button with a spinner to indicate async loading. */\n loading?: boolean;\n /**\n * When true, renders as an inline flex container for use inside AntD's suffix slot.\n * When false (default), renders with no intrinsic positioning — callers\n * position the controls via the forwarded `className` (e.g. through the\n * Emotion `css` prop).\n */\n inline?: boolean;\n /**\n * @internal Forwarded to the root element so sibling components in this\n * package (e.g. `TypeaheadComboboxMultiSelectInput`) can position the\n * controls via the Emotion `css` prop. Not intended for external use.\n */\n className?: string;\n}\n\nexport const TypeaheadComboboxControls: React.FC<React.PropsWithChildren<any>> = ({\n getDownshiftToggleButtonProps,\n showClearSelectionButton,\n showComboboxToggleButton = true,\n handleClear,\n disabled,\n loading = false,\n inline = false,\n className,\n}: TypeaheadComboboxControlsProps) => {\n return (\n <div\n className={className}\n css={{\n // Centers the 12px clear icon against the 16px toggle button.\n display: 'flex',\n alignItems: 'center',\n cursor: disabled ? 'not-allowed' : undefined,\n ...(inline ? {} : { height: TYPEAHEAD_COMBOBOX_CONTROLS_HEIGHT, zIndex: 1 }),\n }}\n >\n {showClearSelectionButton && (\n <ClearSelectionButton\n onClick={handleClear}\n css={{\n pointerEvents: 'all',\n }}\n />\n )}\n {loading ? (\n <LoadingSpinner />\n ) : (\n showComboboxToggleButton && (\n <TypeaheadComboboxToggleButton {...getDownshiftToggleButtonProps()} disabled={disabled} />\n )\n )}\n </div>\n );\n};\n","import type { SerializedStyles } from '@emotion/react';\nimport { css } from '@emotion/react';\nimport { useMergeRefs } from '@floating-ui/react';\nimport type { ForwardRefExoticComponent, PropsWithoutRef, RefAttributes } from 'react';\nimport { forwardRef, useEffect, useRef } from 'react';\n\nimport { TypeaheadComboboxControls } from './TypeaheadComboboxControls';\nimport type { ComboboxStateAnalyticsReturnValue } from './hooks';\nimport { useTypeaheadComboboxContext } from './hooks';\nimport type { Theme } from '../../theme';\nimport { useDesignSystemTheme } from '../Hooks';\nimport type { InputProps } from '../Input';\nimport { Input } from '../Input';\nimport { addDebugOutlineIfEnabled } from '../utils/debug';\n\n/**\n * Deprecated in favor of `TypeaheadComboboxV2`.\n * @deprecated\n */\nexport interface TypeaheadComboboxInputProps<T> extends Omit<InputProps, 'componentId' | 'analyticsEvents'> {\n comboboxState: ComboboxStateAnalyticsReturnValue<T>;\n allowClear?: boolean;\n showComboboxToggleButton?: boolean;\n /* Form libraries like RHF and AntD should pass in an onChange here to allow the clear button to update the value */\n formOnChange?: (value: T) => void;\n clearInputValueOnFocus?: boolean;\n /** When true, replaces the dropdown toggle button with a spinner to indicate async loading. */\n loading?: boolean;\n}\n\nconst getInputStyles = (theme: Theme): SerializedStyles =>\n css({\n width: '100%',\n minWidth: 72,\n textOverflow: 'ellipsis',\n borderRadius: theme.borders.borderRadiusSm,\n borderColor: theme.colors.actionDefaultBorderDefault,\n '&:disabled': {\n borderColor: theme.colors.actionDisabledBorder,\n backgroundColor: theme.colors.actionDisabledBackground,\n color: theme.colors.actionDisabledText,\n },\n '&:not(:disabled)': {\n backgroundColor: 'transparent',\n },\n });\n\n/**\n * Deprecated in favor of `TypeaheadComboboxV2`.\n * @deprecated\n */\nexport const TypeaheadComboboxInput: ForwardRefExoticComponent<\n PropsWithoutRef<Omit<TypeaheadComboboxInputProps<any>, 'componentId' | 'analyticsEvents'>> &\n RefAttributes<HTMLDivElement | null>\n> = forwardRef<HTMLDivElement | null, Omit<TypeaheadComboboxInputProps<any>, 'componentId' | 'analyticsEvents'>>(\n // eslint-disable-next-line react-component-name/react-component-name -- TODO(FEINF-4716)\n (\n {\n comboboxState,\n allowClear = true,\n showComboboxToggleButton = true,\n formOnChange,\n onClick,\n clearInputValueOnFocus = false,\n size,\n loading = false,\n suffix,\n ...restProps\n },\n ref,\n ) => {\n const { isInsideTypeaheadCombobox, floatingUiRefs, setInputWidth, inputWidth } = useTypeaheadComboboxContext();\n if (!isInsideTypeaheadCombobox) {\n throw new Error('`TypeaheadComboboxInput` must be used within `TypeaheadCombobox`');\n }\n\n const {\n getInputProps,\n getToggleButtonProps,\n toggleMenu,\n inputValue,\n setInputValue,\n reset,\n isOpen,\n selectedItem,\n componentId,\n } = comboboxState;\n\n const { ref: downshiftRef, ...downshiftProps } = getInputProps({}, { suppressRefError: true });\n const mergedRef = useMergeRefs([ref, downshiftRef]);\n const { theme } = useDesignSystemTheme();\n\n const handleClick = (e: React.MouseEvent<HTMLInputElement, MouseEvent>) => {\n onClick?.(e);\n toggleMenu();\n };\n\n const previousInputValue = useRef<{\n selectedItem: any;\n inputValue: string;\n } | null>(null);\n\n useEffect(() => {\n if (!clearInputValueOnFocus) {\n return;\n }\n // If the input is open and has value, clear the input value\n if (isOpen && !previousInputValue.current) {\n previousInputValue.current = {\n selectedItem: selectedItem,\n inputValue: inputValue,\n };\n setInputValue('');\n }\n\n // If the input is closed and the input value was cleared, restore the input value\n if (!isOpen && previousInputValue.current) {\n // Only restore the input value if the selected item is the same as the previous selected item\n if (previousInputValue.current.selectedItem === selectedItem) {\n setInputValue(previousInputValue.current.inputValue);\n }\n previousInputValue.current = null;\n }\n }, [isOpen, inputValue, setInputValue, previousInputValue, clearInputValueOnFocus, selectedItem]);\n\n const handleClear = () => {\n setInputValue('');\n reset();\n formOnChange?.(null);\n };\n\n // Gets the width of the input and sets it inside the context for rendering the dropdown when `matchTriggerWidth` is true on the menu\n useEffect(() => {\n // Use the DOM reference of the TypeaheadComboboxInput container div to get the width of the input\n if (floatingUiRefs?.domReference) {\n const width = floatingUiRefs.domReference.current?.getBoundingClientRect().width ?? 0;\n // Only update context width when the input width updated\n if (width !== inputWidth) {\n setInputWidth?.(width);\n }\n }\n }, [floatingUiRefs?.domReference, setInputWidth, inputWidth]);\n\n return (\n <div ref={floatingUiRefs?.setReference} className={restProps.className} {...addDebugOutlineIfEnabled()}>\n <Input\n // oxlint-disable-next-line @databricks/no-dynamic-property-value -- Valid case, as combostate componentId is checked in the hook exempt:ef606c74-b984-4035-bbdb-9a6ae8e4e88e\n componentId={componentId ? `${componentId}.input` : 'design_system.typeahead_combobox.input'}\n ref={mergedRef}\n {...downshiftProps}\n aria-controls={comboboxState.isOpen ? downshiftProps['aria-controls'] : undefined}\n onClick={handleClick}\n size={size}\n css={getInputStyles(theme)}\n {...restProps}\n suffix={\n <div css={{ display: 'flex', alignItems: 'center', gap: theme.spacing.xs }}>\n {suffix}\n <TypeaheadComboboxControls\n getDownshiftToggleButtonProps={getToggleButtonProps}\n showClearSelectionButton={allowClear && Boolean(inputValue) && !restProps.disabled}\n showComboboxToggleButton={showComboboxToggleButton}\n handleClear={handleClear}\n disabled={restProps.disabled}\n loading={loading}\n inline\n />\n </div>\n }\n />\n </div>\n );\n },\n);\n","import { css, type SerializedStyles } from '@emotion/react';\nimport { useMergeRefs } from '@floating-ui/react';\nimport type { UseMultipleSelectionReturnValue } from 'downshift';\nimport type { ForwardRefExoticComponent, PropsWithoutRef, RefAttributes } from 'react';\nimport { forwardRef, useState, useRef, useLayoutEffect, useEffect } from 'react';\n\nimport { CountBadge } from './CountBadge';\nimport { TypeaheadComboboxControls, TYPEAHEAD_COMBOBOX_CONTROLS_HEIGHT } from './TypeaheadComboboxControls';\nimport type { TypeaheadComboboxInputProps } from './TypeaheadComboboxInput';\nimport { TypeaheadComboboxSelectedItem } from './TypeaheadComboboxSelectedItem';\nimport type { ComboboxStateAnalyticsReturnValue } from './hooks';\nimport { useTypeaheadComboboxContext } from './hooks';\nimport type { Theme } from '../../theme';\nimport { useDesignSystemTheme } from '../Hooks';\nimport { Tooltip } from '../Tooltip';\nimport type { ValidationState } from '../types';\nimport { getValidationStateColor } from '../utils';\nimport { addDebugOutlineIfEnabled } from '../utils/debug';\n\n/**\n * Deprecated in favor of `TypeaheadComboboxV2`.\n * @deprecated\n */\nexport interface TypeaheadComboboxMultiSelectInputProps<T> extends TypeaheadComboboxInputProps<T> {\n comboboxState: ComboboxStateAnalyticsReturnValue<T>;\n multipleSelectionState: UseMultipleSelectionReturnValue<T>;\n selectedItems: T[];\n setSelectedItems: React.Dispatch<React.SetStateAction<T[]>>;\n getSelectedItemLabel: (item: T) => React.ReactNode;\n allowClear?: boolean;\n /**\n * Controls when selected-item tags collapse into a `+N` overflow badge.\n * - Number (default `20`): render up to that many tags, then collapse the rest.\n * - `'responsive'`: render as many tags as naturally fit on a single line; collapse the rest.\n */\n showTagAfterValueCount?: number | 'responsive';\n width?: string | number;\n maxHeight?: string | number;\n disableTooltip?: boolean;\n /**\n * Height of the control while its tags fit on one row; extra rows grow it either way.\n * Omitted is 36px, `'middle'` is 32px — the height of `Input`, `Button` and a middle\n * `DialogComboboxTrigger`.\n *\n * Narrows the inherited `ButtonSize`: `'small'` (24px) is unreachable because a tag row\n * is itself 24px tall.\n */\n size?: 'middle';\n}\n\nconst getContainerStyles = (\n theme: Theme,\n validationState?: ValidationState,\n width?: string | number,\n disabled?: boolean,\n): SerializedStyles => {\n const validationColor = getValidationStateColor(theme, validationState);\n\n return css({\n cursor: 'text',\n display: 'inline-block',\n verticalAlign: 'top',\n border: `1px solid ${theme.colors.actionDefaultBorderDefault}`,\n borderRadius: theme.general.borderRadiusBase,\n minHeight: 32,\n height: 'auto',\n minWidth: 0,\n ...(width ? { width } : {}),\n position: 'relative',\n\n '&:hover': {\n border: `1px solid ${theme.colors.actionPrimaryBackgroundHover}`,\n },\n\n '&:focus-within': {\n outlineColor: theme.colors.actionDefaultBorderFocus,\n outlineWidth: 2,\n outlineOffset: -2,\n outlineStyle: 'solid',\n boxShadow: 'none',\n borderColor: 'transparent',\n },\n\n '&&': {\n ...(validationState && { borderColor: validationColor }),\n\n '&:hover': {\n borderColor: validationState ? validationColor : theme.colors.actionPrimaryBackgroundHover,\n },\n\n '&:focus': {\n outlineColor: validationState ? validationColor : theme.colors.actionDefaultBorderFocus,\n outlineWidth: 2,\n outlineOffset: -2,\n outlineStyle: 'solid',\n boxShadow: 'none',\n borderColor: 'transparent',\n },\n\n ...(disabled && {\n borderColor: theme.colors.actionDisabledBorder,\n backgroundColor: theme.colors.actionDisabledBackground,\n cursor: 'not-allowed',\n outline: 'none',\n\n '&:hover': {\n border: `1px solid ${theme.colors.actionDisabledBorder}`,\n },\n\n '&:focus-within': {\n outline: 'none',\n borderColor: theme.colors.actionDisabledBorder,\n },\n }),\n },\n });\n};\n\n// One tag row (20px line height + 2px margins) plus vertical padding on both sides and the\n// container's 1px borders: 36px by default, 32px at `size=\"middle\"`.\nconst TAG_ROW_HEIGHT = 24;\nconst DEFAULT_VERTICAL_PADDING = 5;\nconst MIDDLE_VERTICAL_PADDING = 3;\n\nconst getVerticalPadding = (size?: 'middle'): number =>\n size === 'middle' ? MIDDLE_VERTICAL_PADDING : DEFAULT_VERTICAL_PADDING;\n\n// Centers the shorter controls block on the tag row it floats beside.\nconst CONTROLS_ROW_OFFSET = (TAG_ROW_HEIGHT - TYPEAHEAD_COMBOBOX_CONTROLS_HEIGHT) / 2;\n\n// Overflow lives on this inner wrapper so the floated, sticky controls\n// (rendered as the first child) stay pinned to the top-right of the visible\n// scroll viewport while the tag list scrolls.\nconst getScrollContainerStyles = (maxHeight?: string | number, size?: 'middle'): SerializedStyles => {\n const verticalPadding = getVerticalPadding(size);\n\n return css({\n padding: `${verticalPadding}px 7px ${verticalPadding}px 12px`,\n overflowY: 'auto',\n overflowX: 'hidden',\n ...(maxHeight ? { maxHeight } : {}),\n });\n};\n\nconst getContentWrapperStyles = (): SerializedStyles => {\n return css({\n display: 'flex',\n flex: 'auto',\n flexWrap: 'wrap',\n maxWidth: '100%',\n position: 'relative',\n });\n};\n\nconst getInputWrapperStyles = (): SerializedStyles => {\n return css({\n display: 'inline-flex',\n position: 'relative',\n maxWidth: '100%',\n alignSelf: 'auto',\n // flex: 1 1 auto with a small minWidth ensures the input stays on the current\n // tag row whenever possible instead of wrapping to a new line. This prevents\n // the container height from oscillating (grow when input wraps → shrink when it\n // fits again), which in turn prevents flip() from ping-ponging the dropdown.\n flex: '1 1 auto',\n minWidth: 40,\n });\n};\n\nconst getInputStyles = (theme: Theme): SerializedStyles => {\n return css({\n lineHeight: 20,\n height: 24,\n margin: 0,\n padding: 0,\n appearance: 'none',\n cursor: 'auto',\n width: '100%',\n backgroundColor: 'transparent',\n color: theme.colors.textPrimary,\n\n '&, &:hover, &:focus-visible': {\n border: 'none',\n outline: 'none',\n },\n\n '&::placeholder': {\n color: theme.colors.textPlaceholder,\n },\n });\n};\n\n/**\n * Deprecated in favor of `TypeaheadComboboxV2`.\n * @deprecated\n */\nexport const TypeaheadComboboxMultiSelectInput: ForwardRefExoticComponent<\n PropsWithoutRef<TypeaheadComboboxMultiSelectInputProps<any>> & RefAttributes<HTMLInputElement>\n> = forwardRef<HTMLInputElement, TypeaheadComboboxMultiSelectInputProps<any>>(\n // eslint-disable-next-line react-component-name/react-component-name -- TODO(FEINF-4716)\n (\n {\n comboboxState,\n multipleSelectionState,\n selectedItems,\n setSelectedItems,\n getSelectedItemLabel,\n allowClear = true,\n showTagAfterValueCount = 20,\n width,\n maxHeight,\n placeholder,\n validationState,\n showComboboxToggleButton,\n disableTooltip = false,\n // Kept out of `restProps`: on an `input`, `size` is a character count.\n size,\n ...restProps\n },\n ref,\n ) => {\n const { isInsideTypeaheadCombobox } = useTypeaheadComboboxContext();\n if (!isInsideTypeaheadCombobox) {\n throw new Error('`TypeaheadComboboxMultiSelectInput` must be used within `TypeaheadCombobox`');\n }\n\n const { getInputProps, getToggleButtonProps, toggleMenu, inputValue, setInputValue } = comboboxState;\n const { getSelectedItemProps, getDropdownProps, reset, removeSelectedItem } = multipleSelectionState;\n const { ref: downshiftRef, ...downshiftProps } = getInputProps(getDropdownProps({}, { suppressRefError: true }));\n const {\n floatingUiRefs,\n setInputWidth: setContextInputWidth,\n inputWidth: contextInputWidth,\n } = useTypeaheadComboboxContext();\n const containerRef = useRef<HTMLDivElement>(null);\n const mergedContainerRef = useMergeRefs([containerRef, floatingUiRefs?.setReference]);\n\n const scrollContainerRef = useRef<HTMLDivElement>(null);\n const itemsRef = useRef<HTMLDivElement>(null);\n const measureRef = useRef<HTMLSpanElement>(null);\n const innerRef = useRef<HTMLInputElement>(null);\n const mergedInputRef = useMergeRefs([ref, innerRef, downshiftRef]);\n\n const { theme } = useDesignSystemTheme();\n const [inputWidth, setInputWidth] = useState(0);\n\n const isResponsive = showTagAfterValueCount === 'responsive';\n const fixedTagCount = typeof showTagAfterValueCount === 'number' ? showTagAfterValueCount : 20;\n\n // null means \"measurement pass\": render all tags so the browser's flex-wrap\n // layout tells us how many fit on the first line. A number is the committed\n // visible count after measurement.\n const [responsiveVisibleCount, setResponsiveVisibleCount] = useState<number | null>(null);\n\n const selectedItemsToRender = isResponsive\n ? responsiveVisibleCount === null\n ? selectedItems\n : selectedItems.slice(0, responsiveVisibleCount)\n : selectedItems.slice(0, fixedTagCount);\n\n const shouldShowCountBadge = selectedItems.length > selectedItemsToRender.length;\n const countBadgeStartAt = selectedItemsToRender.length;\n const [showTooltip, setShowTooltip] = useState<boolean>(shouldShowCountBadge);\n\n const handleClick = () => {\n if (!restProps.disabled) {\n innerRef.current?.focus();\n toggleMenu();\n }\n };\n\n const handleClear = () => {\n setInputValue('');\n reset();\n setSelectedItems([]);\n };\n\n // Measure the input's content width and apply it to the input's width.\n // Depend on `inputValue` + `placeholder` (the actual drivers of the measure\n // node's content) rather than `measureRef.current.scrollWidth`, which is\n // evaluated at render time against the pre-commit DOM and can miss updates\n // - most visibly, when downshift clears the filter text after a selection.\n useLayoutEffect(() => {\n if (measureRef?.current) {\n const measuredWidth = measureRef.current.scrollWidth;\n setInputWidth(measuredWidth);\n }\n }, [inputValue, placeholder]);\n\n // Responsive mode invalidation: items or input demanded-width change\n useLayoutEffect(() => {\n if (!isResponsive) return;\n setResponsiveVisibleCount(null);\n }, [isResponsive, selectedItems, inputWidth]);\n\n // Responsive mode invalidation: container resize\n useLayoutEffect(() => {\n if (!isResponsive) return;\n const container = containerRef.current;\n if (!container || typeof ResizeObserver === 'undefined') return;\n const observer = new ResizeObserver(() => setResponsiveVisibleCount(null));\n observer.observe(container);\n return () => observer.disconnect();\n }, [isResponsive]);\n\n // Responsive mode: count tags whose offsetTop matches the first tag's - these\n // are the ones the browser placed on line 1. No width math; flex-wrap already\n // decided what fits. Multi-pass by design:\n // null → render all → measure → commit count → re-render with subset +\n // badge + input → measure → verify badge/input fit → decrement if not.\n // Convergence: monotonic decrease on overflow; the committed count stops\n // changing once the current DOM actually fits on line 1.\n // Hidden / zero-width container: everything reports `offsetTop === 0` so\n // this commits `selectedItems.length`; ResizeObserver re-invalidates once\n // the container has real dimensions.\n useLayoutEffect(() => {\n if (!isResponsive) return;\n const itemsEl = itemsRef.current;\n if (!itemsEl) return;\n\n const tagEls = itemsEl.querySelectorAll<HTMLElement>('[data-slot=\"tag\"]');\n if (tagEls.length === 0) {\n setResponsiveVisibleCount(0);\n return;\n }\n\n const firstTop = tagEls[0].offsetTop;\n // Items on the same flex line share `offsetTop` exactly; 2px tolerance\n // only absorbs sub-pixel rounding.\n const onFirstLine = (el: HTMLElement | null): boolean => el != null && Math.abs(el.offsetTop - firstTop) <= 2;\n\n let firstLineTagCount = 0;\n for (let i = 0; i < tagEls.length; i++) {\n if (onFirstLine(tagEls[i])) firstLineTagCount++;\n else break;\n }\n\n // An input wrap implies a badge wrap too - the badge precedes the input\n // in flex order, so it can't wrap without pulling the input with it.\n const inputWrapperEl = itemsEl.querySelector<HTMLElement>('[data-slot=\"input\"]');\n const inputWrapped = inputWrapperEl != null && !onFirstLine(inputWrapperEl);\n\n let nextCount: number;\n if (firstLineTagCount < tagEls.length) {\n // Some rendered tags wrapped; commit the first-line count. The next\n // pass renders that subset + badge and re-validates fit.\n nextCount = firstLineTagCount;\n } else if (tagEls.length === selectedItems.length) {\n // All items rendered, none wrapped. Only trim if the input still wraps.\n nextCount = inputWrapped ? Math.max(0, tagEls.length - 1) : selectedItems.length;\n } else if (inputWrapped) {\n // Subset + badge rendered; input couldn't fit on line 1. Drop a tag.\n nextCount = Math.max(0, tagEls.length - 1);\n } else {\n // Stable: tags + badge + input all on line 1.\n nextCount = tagEls.length;\n }\n\n // Always keep at least one tag visible. The first tag is always on line 1, so\n // collapsing to a bare count badge with no value shown (e.g. a single selection\n // rendered as \"1\") is never correct; the input may wrap to a second line instead.\n setResponsiveVisibleCount(Math.max(1, nextCount));\n }, [isResponsive, selectedItems, responsiveVisibleCount]);\n\n // Gets the width of the input and sets it inside the context for rendering the dropdown when `matchTriggerWidth` is true on the menu\n useEffect(() => {\n // Use the DOM reference of the TypeaheadComboboxInput container div to get the width of the input\n if (floatingUiRefs?.domReference) {\n const width = floatingUiRefs.domReference.current?.getBoundingClientRect().width ?? 0;\n // Only update context width when the input width updated\n if (width !== contextInputWidth) {\n setContextInputWidth?.(width);\n }\n }\n }, [floatingUiRefs?.domReference, setContextInputWidth, contextInputWidth]);\n\n // Determine whether to show tooltip\n useEffect(() => {\n let isPartiallyHidden = false;\n if (itemsRef.current && scrollContainerRef.current) {\n const { clientHeight: innerHeight } = itemsRef.current;\n const { clientHeight: scrollHeight } = scrollContainerRef.current;\n isPartiallyHidden = innerHeight > scrollHeight;\n }\n setShowTooltip(!disableTooltip && (shouldShowCountBadge || isPartiallyHidden));\n }, [\n shouldShowCountBadge,\n itemsRef.current?.clientHeight,\n scrollContainerRef.current?.clientHeight,\n disableTooltip,\n ]);\n\n const content = (\n <div\n {...addDebugOutlineIfEnabled()}\n onClick={handleClick}\n ref={mergedContainerRef}\n css={getContainerStyles(theme, validationState, width, restProps.disabled)}\n tabIndex={restProps.disabled ? -1 : 0}\n >\n <div ref={scrollContainerRef} css={getScrollContainerStyles(maxHeight, size)}>\n <TypeaheadComboboxControls\n getDownshiftToggleButtonProps={getToggleButtonProps}\n showComboboxToggleButton={showComboboxToggleButton}\n showClearSelectionButton={\n allowClear && (Boolean(inputValue) || (selectedItems && selectedItems.length > 0)) && !restProps.disabled\n }\n handleClear={handleClear}\n disabled={restProps.disabled}\n // `top` equals the flow position, so scrolling the tag list leaves the controls in\n // place on the first row.\n css={{\n position: 'sticky',\n top: getVerticalPadding(size) + CONTROLS_ROW_OFFSET,\n marginTop: CONTROLS_ROW_OFFSET,\n float: 'right',\n }}\n />\n <div ref={itemsRef} css={getContentWrapperStyles()}>\n {selectedItemsToRender?.map((selectedItemForRender, index) => (\n <TypeaheadComboboxSelectedItem\n key={`selected-item-${index}`}\n label={getSelectedItemLabel(selectedItemForRender)}\n item={selectedItemForRender}\n getSelectedItemProps={getSelectedItemProps}\n removeSelectedItem={removeSelectedItem}\n disabled={restProps.disabled}\n data-slot=\"tag\"\n />\n ))}\n {shouldShowCountBadge && (\n <CountBadge\n countStartAt={countBadgeStartAt}\n totalCount={selectedItems.length}\n role=\"status\"\n aria-label=\"Selected options count\"\n disabled={restProps.disabled}\n />\n )}\n <div css={getInputWrapperStyles()} data-slot=\"input\">\n <input\n {...downshiftProps}\n ref={mergedInputRef}\n css={[getInputStyles(theme), { width: inputWidth }]}\n placeholder={selectedItems?.length ? undefined : placeholder}\n aria-controls={comboboxState.isOpen ? downshiftProps['aria-controls'] : undefined}\n {...restProps}\n />\n {/* Since the input element's width is set to be as small as possible in order for the container component to also fit the selected item tags,\n * the span below is used as a \"measure node\", which contains the same implementation and logic as rc-select.\n * The measure node is visually hidden, and its purpose is to measure the width of the input's current contents\n * (value or placeholder text) and sets the input's width accordingly. This is done in the `useLayoutEffect` hook above.\n */}\n <span\n ref={measureRef}\n aria-hidden\n css={{ visibility: 'hidden', whiteSpace: 'pre', position: 'absolute' }}\n >\n {inputValue || placeholder} \n </span>\n </div>\n </div>\n </div>\n </div>\n );\n\n if (showTooltip && selectedItems.length > 0) {\n return (\n <Tooltip\n componentId=\"typeahead-combobox-multi-select-input-tooltip\"\n side=\"right\"\n content={selectedItems.map((item) => getSelectedItemLabel(item)).join(', ')}\n >\n {content}\n </Tooltip>\n );\n }\n return content;\n },\n);\n","import { useTypeaheadComboboxContext } from './hooks';\nimport { SectionHeader } from '../_shared_/Combobox';\n\n/**\n * Deprecated in favor of `TypeaheadComboboxV2`.\n * @deprecated\n */\nexport const TypeaheadComboboxSectionHeader = ({\n children,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>): JSX.Element => {\n const { isInsideTypeaheadCombobox } = useTypeaheadComboboxContext();\n\n if (!isInsideTypeaheadCombobox) {\n throw new Error('`TypeaheadComboboxSectionHeader` must be used within `TypeaheadComboboxMenu`');\n }\n\n return <SectionHeader {...props}>{children}</SectionHeader>;\n};\n","import { useTypeaheadComboboxContext } from './hooks';\nimport { Separator } from '../_shared_/Combobox';\n\n/**\n * Deprecated in favor of `TypeaheadComboboxV2`.\n * @deprecated\n */\nexport const TypeaheadComboboxSeparator = (props: React.HTMLAttributes<HTMLDivElement>): JSX.Element => {\n const { isInsideTypeaheadCombobox } = useTypeaheadComboboxContext();\n\n if (!isInsideTypeaheadCombobox) {\n throw new Error('`TypeaheadComboboxSeparator` must be used within `TypeaheadComboboxMenu`');\n }\n\n return <Separator {...props} />;\n};\n","import { css } from '@emotion/react';\nimport type { ForwardRefExoticComponent, PropsWithoutRef, RefAttributes } from 'react';\nimport { forwardRef } from 'react';\n\nimport { useTypeaheadComboboxContext } from './hooks/useTypeaheadComboboxContext';\nimport type { ButtonProps } from '../Button';\nimport { Button } from '../Button';\nimport { useDesignSystemTheme } from '../Hooks';\nimport { PlusIcon } from '../Icon';\nimport { getComboboxOptionItemWrapperStyles } from '../_shared_/Combobox';\nimport { importantify } from '../utils/css-utils';\n\n/**\n * Deprecated in favor of `TypeaheadComboboxV2`.\n * @deprecated\n */\nexport const TypeaheadComboboxAddButton: ForwardRefExoticComponent<\n PropsWithoutRef<ButtonProps> & RefAttributes<HTMLButtonElement>\n> = forwardRef<HTMLButtonElement, ButtonProps>(\n // eslint-disable-next-line react-component-name/react-component-name -- TODO(FEINF-4716)\n ({ children, ...restProps }, forwardedRef) => {\n const { theme } = useDesignSystemTheme();\n const { isInsideTypeaheadCombobox, componentId } = useTypeaheadComboboxContext();\n\n if (!isInsideTypeaheadCombobox) {\n throw new Error('`TypeaheadComboboxAddButton` must be used within `TypeaheadCombobox`');\n }\n\n return (\n <Button\n {...restProps}\n // oxlint-disable-next-line @databricks/no-dynamic-property-value -- Validated in the Root for the context exempt:844c1e83-84b8-41ba-95af-bae4799834aa\n componentId={`${componentId}.add_option`}\n type=\"tertiary\"\n onClick={(event) => {\n event.stopPropagation();\n restProps.onClick?.(event);\n }}\n onMouseUp={(event) => {\n event.stopPropagation();\n restProps.onMouseUp?.(event);\n }}\n className=\"combobox-footer-add-button\"\n css={{\n ...getComboboxOptionItemWrapperStyles(theme),\n ...css(\n importantify({\n width: '100%',\n padding: 0,\n display: 'flex',\n alignItems: 'center',\n borderRadius: 0,\n\n '&:focus': {\n background: theme.colors.actionTertiaryBackgroundHover,\n outline: 'none',\n },\n }),\n ),\n }}\n icon={<PlusIcon />}\n ref={forwardedRef}\n >\n {children}\n </Button>\n );\n },\n);\n","import { useMergeRefs } from '@floating-ui/react';\nimport type { CheckboxGroupProps } from 'antd/lib/checkbox';\nimport type { CheckboxValueType } from 'antd/lib/checkbox/Group';\nimport type { UseComboboxReturnValue } from 'downshift';\nimport type { HTMLAttributes, ReactElement } from 'react';\nimport React, { Children, useCallback, useEffect, useRef, useState } from 'react';\nimport type { Control, FieldPath, FieldValues, UseControllerProps } from 'react-hook-form';\nimport { useController } from 'react-hook-form';\n\n// Type-only import (erased at build) so RHFAdapters — which lands in a broadly-loaded common chunk —\n// does not statically pull the react-aria TypeaheadComboboxV2 subtree. The adapters themselves are\n// React.lazy-loaded below.\nimport type {\n RHFControlledMultiSelectTypeaheadComboboxV2Props,\n RHFControlledTypeaheadComboboxV2Props,\n} from './RHFControlledTypeaheadComboboxV2';\nimport type { CheckboxProps } from '../Checkbox';\nimport { Checkbox } from '../Checkbox';\nimport type { DesignSystemEventProviderAnalyticsEventTypes } from '../DesignSystemEventProvider';\nimport type {\n ConditionalOptionalLabel,\n DialogComboboxContentProps,\n DialogComboboxOptionListProps,\n DialogComboboxProps,\n DialogComboboxTriggerProps,\n} from '../DialogCombobox';\nimport {\n DialogCombobox,\n DialogComboboxContent,\n DialogComboboxOptionList,\n DialogComboboxTrigger,\n} from '../DialogCombobox';\nimport { useDesignSystemTheme } from '../Hooks';\nimport type { InputProps, PasswordProps, TextAreaProps, InputRef } from '../Input';\nimport { Input } from '../Input';\nimport type { LegacySelectProps, LegacySelectValue } from '../LegacySelect';\nimport { LegacySelect } from '../LegacySelect';\nimport type { RadioGroupProps } from '../Radio';\nimport { Radio } from '../Radio';\nimport type { SelectContentProps, SelectOptionProps, SelectProps, SelectTriggerProps } from '../Select';\nimport { Select, SelectContent, SelectOption, SelectTrigger } from '../Select';\nimport type { SwitchProps } from '../Switch';\nimport { Switch } from '../Switch';\nimport {\n TypeaheadComboboxInput,\n TypeaheadComboboxMenu,\n TypeaheadComboboxMultiSelectInput,\n useComboboxState,\n useMultipleSelectionState,\n} from '../TypeaheadCombobox';\nimport type { TypeaheadComboboxInputProps } from '../TypeaheadCombobox/TypeaheadComboboxInput';\nimport type { TypeaheadComboboxMenuProps } from '../TypeaheadCombobox/TypeaheadComboboxMenu';\nimport type { TypeaheadComboboxMultiSelectInputProps } from '../TypeaheadCombobox/TypeaheadComboboxMultiSelectInput';\nimport type { TypeaheadComboboxRootProps } from '../TypeaheadCombobox/TypeaheadComboboxRoot';\nimport { TypeaheadComboboxRoot } from '../TypeaheadCombobox/TypeaheadComboboxRoot';\nimport type { AnalyticsEventValueChangeNoPiiFlagProps, ValidationState } from '../types';\n\n// These props are omitted, as `useController` handles them.\ntype OmittedOriginalProps = 'name' | 'onChange' | 'onBlur' | 'value' | 'defaultValue' | 'checked';\n\ninterface RHFControlledInputProps<\n TFieldValues extends FieldValues = FieldValues,\n TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>,\n>\n extends Omit<InputProps, OmittedOriginalProps>, UseControllerProps<TFieldValues, TName> {\n control: Control<TFieldValues>;\n inputRef?: React.RefObject<InputRef>;\n}\n\ntype AntInputValueType = string | ReadonlyArray<string> | number | undefined;\n\nfunction RHFControlledInput<\n TFieldValues extends FieldValues,\n TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>,\n>({\n name,\n control,\n rules,\n inputRef,\n ...restProps\n}: React.PropsWithChildren<RHFControlledInputProps<TFieldValues, TName>>): JSX.Element {\n const { field } = useController({\n name: name,\n control: control,\n rules: rules,\n });\n const mergedRef = useMergeRefs([field.ref, inputRef]);\n\n return (\n <Input\n {...restProps}\n {...field}\n ref={mergedRef}\n value={field.value as AntInputValueType}\n defaultValue={restProps.defaultValue as AntInputValueType}\n />\n );\n}\n\ninterface RHFControlledPasswordInputProps<\n TFieldValues extends FieldValues = FieldValues,\n TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>,\n>\n extends Omit<PasswordProps, OmittedOriginalProps>, UseControllerProps<TFieldValues, TName> {\n control: Control<TFieldValues>;\n}\n\nfunction RHFControlledPasswordInput<\n TFieldValues extends FieldValues,\n TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>,\n>({\n name,\n control,\n rules,\n ...restProps\n}: React.PropsWithChildren<RHFControlledPasswordInputProps<TFieldValues, TName>>): JSX.Element {\n const { field } = useController({\n name: name,\n control: control,\n rules: rules,\n });\n\n return <Input.Password {...restProps} {...field} value={field.value} defaultValue={restProps.defaultValue} />;\n}\n\ninterface RHFControlledTextAreaProps<\n TFieldValues extends FieldValues = FieldValues,\n TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>,\n>\n extends Omit<TextAreaProps, OmittedOriginalProps>, UseControllerProps<TFieldValues, TName> {\n control: Control<TFieldValues>;\n}\n\nfunction RHFControlledTextArea<\n TFieldValues extends FieldValues,\n TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>,\n>({\n name,\n control,\n rules,\n ...restProps\n}: React.PropsWithChildren<RHFControlledTextAreaProps<TFieldValues, TName>>): JSX.Element {\n const { field } = useController({\n name: name,\n control: control,\n rules: rules,\n });\n\n return <Input.TextArea {...restProps} {...field} value={field.value} defaultValue={restProps.defaultValue} />;\n}\n\ninterface RHFControlledLegacySelectProps<\n TFieldValues extends FieldValues = FieldValues,\n TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>,\n>\n extends Omit<LegacySelectProps<unknown>, OmittedOriginalProps>, UseControllerProps<TFieldValues, TName> {\n control: Control<TFieldValues>;\n}\n\n/**\n * @deprecated Use `RHFControlledSelect` instead.\n */\nfunction RHFControlledLegacySelect<TFieldValues extends FieldValues>({\n name,\n control,\n rules,\n ...restProps\n}: React.PropsWithChildren<RHFControlledLegacySelectProps<TFieldValues>>): JSX.Element {\n const { field } = useController({\n name: name,\n control: control,\n rules: rules,\n });\n\n return (\n <LegacySelect\n {...restProps}\n {...field}\n value={field.value as LegacySelectValue}\n defaultValue={field.value as LegacySelectValue | undefined}\n />\n );\n}\n\ninterface RHFControlledSelectProps<\n TFieldValues extends FieldValues = FieldValues,\n TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>,\n>\n extends Omit<SelectProps, OmittedOriginalProps | 'children'>, UseControllerProps<TFieldValues, TName> {\n control: Control<TFieldValues>;\n options?: {\n label: string;\n value: string;\n }[];\n validationState?: ValidationState;\n width?: string | number;\n children?: ({ onChange }: { onChange: (value: string) => void }) => React.ReactNode;\n triggerProps?: Pick<SelectTriggerProps, 'minWidth' | 'maxWidth' | 'disabled' | 'style' | 'className'>;\n contentProps?: Pick<SelectContentProps, 'maxHeight' | 'minHeight' | 'loading' | 'style' | 'className' | 'width'>;\n optionProps?: Pick<SelectOptionProps, 'disabled' | 'disabledReason' | 'style' | 'className'>;\n}\n\n/**\n * @deprecated This component is no longer necessary as `SimpleSelect` can be used uncontrolled by RHF.\n * Please consult the Forms Guide on go/dubois.\n */\nfunction RHFControlledSelect<TFieldValues extends FieldValues>({\n name,\n control,\n rules,\n options,\n validationState,\n children,\n width,\n triggerProps,\n contentProps,\n optionProps,\n ...restProps\n}: RHFControlledSelectProps<TFieldValues> &\n Omit<HTMLAttributes<HTMLDivElement>, 'children'> &\n ConditionalOptionalLabel): JSX.Element {\n const { field } = useController({\n name: name,\n control: control,\n rules: rules,\n });\n\n const [selectedValueLabel, setSelectedValueLabel] = useState<string | undefined>(\n field.value ? (field.value.label ? field.value.label : field.value) : '',\n );\n\n const handleOnChange = (option: string | { label: string; value: string }) => {\n field.onChange(typeof option === 'object' ? option.value : option);\n };\n\n useEffect(() => {\n if (!field.value) {\n return;\n }\n\n // Find the appropriate label for the selected value\n if (!options?.length && children) {\n const renderedChildren = children({ onChange: handleOnChange }) as ReactElement;\n const child = (\n Array.isArray(renderedChildren) ? renderedChildren : Children.toArray(renderedChildren.props.children)\n ).find((child) => React.isValidElement(child) && (child as ReactElement).props.value === field.value);\n if (child) {\n if ((child as ReactElement).props?.children !== field.value) {\n setSelectedValueLabel((child as ReactElement).props.children as string);\n } else {\n setSelectedValueLabel(field.value);\n }\n }\n } else if (options?.length) {\n const option = options.find((option) => option.value === field.value);\n setSelectedValueLabel(option?.label);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [field.value]);\n\n return (\n <Select {...restProps} value={field.value}>\n <SelectTrigger\n {...triggerProps}\n width={width}\n onBlur={field.onBlur}\n validationState={validationState}\n ref={field.ref}\n >\n {selectedValueLabel}\n </SelectTrigger>\n <SelectContent {...contentProps} side=\"bottom\">\n {options && options.length > 0\n ? options.map((option) => (\n <SelectOption {...optionProps} key={option.value} value={option.value} onChange={handleOnChange}>\n {option.label}\n </SelectOption>\n ))\n : // SelectOption out of the box gives users control over state and in this case RHF is controlling state\n // We expose onChange through a children renderer function to let users pass this down to SelectOption\n children?.({\n onChange: handleOnChange,\n })}\n </SelectContent>\n </Select>\n );\n}\n\ninterface RHFControlledDialogComboboxProps<\n TFieldValues extends FieldValues = FieldValues,\n TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>,\n>\n extends Omit<DialogComboboxProps, OmittedOriginalProps | 'children'>, UseControllerProps<TFieldValues, TName> {\n control: Control<TFieldValues>;\n validationState?: ValidationState;\n allowClear?: boolean;\n placeholder?: string;\n width?: string | number;\n children?: ({\n onChange,\n value,\n }: {\n onChange: (value: string) => void;\n value: string | string[];\n isChecked: (value: string) => boolean;\n }) => React.ReactNode;\n triggerProps?: Pick<\n DialogComboboxTriggerProps,\n 'minWidth' | 'maxWidth' | 'disabled' | 'style' | 'className' | 'renderDisplayedValue' | 'aria-label'\n > & { 'data-testid'?: string };\n contentProps?: Pick<\n DialogComboboxContentProps,\n 'maxHeight' | 'minHeight' | 'matchTriggerWidth' | 'style' | 'className'\n >;\n optionListProps?: Pick<DialogComboboxOptionListProps, 'loading' | 'withProgressiveLoading' | 'style' | 'className'>;\n}\n\nfunction RHFControlledDialogCombobox<TFieldValues extends FieldValues>({\n name,\n control,\n rules,\n children,\n allowClear,\n validationState,\n placeholder,\n width,\n triggerProps,\n contentProps,\n optionListProps,\n ...restProps\n}: RHFControlledDialogComboboxProps<TFieldValues> &\n Omit<HTMLAttributes<HTMLDivElement>, 'children'> &\n ConditionalOptionalLabel): JSX.Element {\n const { field } = useController({\n name: name,\n control: control,\n rules: rules,\n });\n\n const [valueMap, setValueMap] = useState<Record<string, boolean>>({});\n\n const updateValueMap = useCallback((updatedValue?: string | string[]) => {\n if (updatedValue) {\n if (Array.isArray(updatedValue)) {\n setValueMap(\n updatedValue.reduce((acc: Record<string, boolean>, value: string) => {\n acc[value] = true;\n return acc;\n }, {}),\n );\n } else {\n setValueMap({ [updatedValue]: true });\n }\n } else {\n setValueMap({});\n }\n }, []);\n\n useEffect(() => {\n updateValueMap(field.value);\n }, [field.value, updateValueMap]);\n\n const handleOnChangeSingleSelect = (option: string) => {\n let updatedValue: string | string[] | undefined = field.value;\n\n if (field.value === option) {\n updatedValue = undefined;\n } else {\n updatedValue = option;\n }\n\n field.onChange(updatedValue);\n updateValueMap(updatedValue);\n };\n\n const handleOnChangeMultiSelect = (option: string) => {\n let updatedValue: string | string[] | undefined;\n\n if (field.value?.includes(option)) {\n updatedValue = field.value.filter((value: string) => value !== option);\n } else if (!field.value) {\n updatedValue = [option];\n } else {\n updatedValue = [...(field.value as string[]), option];\n }\n\n field.onChange(updatedValue);\n updateValueMap(updatedValue);\n };\n\n const handleOnChange = (option: string) => {\n if (restProps.multiSelect) {\n handleOnChangeMultiSelect(option);\n } else {\n handleOnChangeSingleSelect(option);\n }\n };\n\n const isChecked = (option: string) => {\n return valueMap[option];\n };\n\n const handleOnClear = () => {\n field.onChange(Array.isArray(field.value) ? [] : '');\n setValueMap({});\n };\n\n return (\n <DialogCombobox\n {...restProps}\n value={field.value ? (Array.isArray(field.value) ? field.value : [field.value]) : undefined}\n >\n <DialogComboboxTrigger\n {...triggerProps}\n onBlur={field.onBlur}\n allowClear={allowClear}\n validationState={validationState}\n onClear={handleOnClear}\n withInlineLabel={false}\n placeholder={placeholder}\n width={width}\n ref={field.ref}\n />\n <DialogComboboxContent {...contentProps} side=\"bottom\" width={width}>\n <DialogComboboxOptionList {...optionListProps}>\n {children?.({\n onChange: handleOnChange,\n value: field.value,\n isChecked,\n })}\n </DialogComboboxOptionList>\n </DialogComboboxContent>\n </DialogCombobox>\n );\n}\n\ninterface RHFControlledTypeaheadComboboxProps<\n TFieldValues extends FieldValues = FieldValues,\n TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>,\n>\n extends\n Omit<\n TypeaheadComboboxRootProps<TFieldValues>,\n OmittedOriginalProps | 'comboboxState' | 'multiSelect' | 'componentId' | 'children'\n >,\n UseControllerProps<TFieldValues, TName>,\n AnalyticsEventValueChangeNoPiiFlagProps<DesignSystemEventProviderAnalyticsEventTypes.OnValueChange> {\n control: Control<TFieldValues, any>;\n name: TName;\n children: ({\n comboboxState,\n items,\n }: {\n comboboxState: UseComboboxReturnValue<TFieldValues[TName]>;\n items: Required<TFieldValues>[TName][];\n }) => React.ReactNode;\n validationState?: ValidationState;\n allItems: Required<TFieldValues>[TName][];\n itemToString: (item: Required<TFieldValues>[TName]) => string;\n matcher: (item: Required<TFieldValues>[TName], query: string) => boolean;\n /* Whether to allow the input value to not match any options in the list. For this to work, the item type (T) must be a string.\n * Defaults to false.\n */\n allowNewValue?: boolean;\n inputProps?: Partial<\n Omit<TypeaheadComboboxInputProps<TFieldValues[TName]>, 'comboboxState' | 'rhfOnChange' | 'validationState'>\n >;\n menuProps?: Partial<Omit<TypeaheadComboboxMenuProps<TFieldValues[TName]>, 'comboboxState'>>;\n onInputChange?: (inputValue: string) => void;\n preventUnsetOnBlur?: boolean;\n}\n\nfunction RHFControlledTypeaheadCombobox<TFieldValues extends FieldValues, TName extends FieldPath<TFieldValues>>({\n name,\n control,\n rules,\n allItems,\n itemToString,\n matcher,\n allowNewValue,\n children,\n validationState,\n inputProps,\n menuProps,\n onInputChange,\n componentId,\n analyticsEvents,\n valueHasNoPii,\n preventUnsetOnBlur = false,\n ...props\n}: RHFControlledTypeaheadComboboxProps<TFieldValues, TName> &\n Omit<HTMLAttributes<HTMLDivElement>, 'children'>): JSX.Element {\n const { field } = useController<TFieldValues, TName>({\n name,\n control,\n rules,\n });\n const [items, setItems] = useState(allItems);\n\n const comboboxState = useComboboxState({\n allItems,\n items,\n setItems,\n itemToString,\n matcher,\n allowNewValue,\n formValue: field.value,\n formOnChange: field.onChange,\n formOnBlur: field.onBlur,\n componentId,\n analyticsEvents,\n valueHasNoPii,\n preventUnsetOnBlur,\n });\n\n const lastEmmitedInputValue = useRef(inputProps?.value);\n\n useEffect(() => {\n setItems(allItems);\n }, [allItems]);\n\n useEffect(() => {\n if (onInputChange && lastEmmitedInputValue.current !== comboboxState.inputValue) {\n onInputChange(comboboxState.inputValue);\n lastEmmitedInputValue.current = comboboxState.inputValue;\n }\n }, [comboboxState.inputValue, onInputChange]);\n\n return (\n <TypeaheadComboboxRoot {...props} comboboxState={comboboxState}>\n <TypeaheadComboboxInput\n {...inputProps}\n validationState={validationState}\n formOnChange={field.onChange}\n comboboxState={comboboxState}\n ref={field.ref}\n />\n <TypeaheadComboboxMenu {...menuProps} comboboxState={comboboxState}>\n {children({\n comboboxState,\n items,\n })}\n </TypeaheadComboboxMenu>\n </TypeaheadComboboxRoot>\n );\n}\n\ninterface RHFControlledMultiSelectTypeaheadComboboxProps<\n TFieldValues extends FieldValues = FieldValues,\n TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>,\n>\n extends\n Omit<\n TypeaheadComboboxRootProps<TFieldValues>,\n OmittedOriginalProps | 'comboboxState' | 'multiSelect' | 'componentId' | 'children'\n >,\n UseControllerProps<TFieldValues, TName>,\n AnalyticsEventValueChangeNoPiiFlagProps<DesignSystemEventProviderAnalyticsEventTypes.OnValueChange> {\n control: Control<any, TFieldValues>;\n // Required override because the full object is returned but TName implies the value is a property of the object\n name: any;\n children: ({\n comboboxState,\n items,\n selectedItems,\n }: {\n comboboxState: UseComboboxReturnValue<TFieldValues>;\n items: TFieldValues[];\n selectedItems: TFieldValues[];\n }) => React.ReactNode;\n validationState?: ValidationState;\n allItems: TFieldValues[];\n itemToString: (item: TFieldValues) => string;\n matcher: (item: TFieldValues, query: string) => boolean;\n inputProps?: Partial<\n Omit<\n TypeaheadComboboxMultiSelectInputProps<TFieldValues>,\n 'comboboxState' | 'rhfOnChange' | 'id' | 'validationState'\n >\n >;\n menuProps?: Partial<Omit<TypeaheadComboboxMenuProps<TFieldValues>, 'comboboxState'>>;\n onInputChange?: (inputValue: string) => void;\n}\n\nfunction RHFControlledMultiSelectTypeaheadCombobox<TFieldValues extends FieldValues>({\n name,\n control,\n rules,\n allItems,\n itemToString,\n matcher,\n children,\n validationState,\n inputProps,\n menuProps,\n onInputChange,\n componentId,\n analyticsEvents,\n valueHasNoPii,\n ...props\n}: RHFControlledMultiSelectTypeaheadComboboxProps<TFieldValues> &\n Omit<HTMLAttributes<HTMLDivElement>, 'children'>): JSX.Element {\n const { field } = useController({\n name,\n control,\n rules,\n });\n const [inputValue, setInputValue] = useState('');\n const [selectedItems, setSelectedItems] = useState<TFieldValues[]>(field.value || []);\n\n useEffect(() => {\n setSelectedItems(field.value || []);\n }, [field.value]);\n\n const items = React.useMemo(\n () => allItems.filter((item) => matcher(item, inputValue)),\n [inputValue, matcher, allItems],\n );\n\n const handleItemUpdate = (item: any) => {\n field.onChange(item);\n setSelectedItems(item);\n };\n\n const comboboxState = useComboboxState<TFieldValues>({\n allItems,\n items,\n setInputValue,\n matcher,\n itemToString,\n multiSelect: true,\n selectedItems,\n setSelectedItems: handleItemUpdate,\n formValue: field.value,\n formOnChange: field.onChange,\n formOnBlur: field.onBlur,\n componentId,\n analyticsEvents,\n valueHasNoPii,\n });\n const multipleSelectionState = useMultipleSelectionState(selectedItems, handleItemUpdate, comboboxState);\n\n const lastEmmitedInputValue = useRef(inputProps?.value);\n\n useEffect(() => {\n if (onInputChange && lastEmmitedInputValue.current !== comboboxState.inputValue) {\n onInputChange(comboboxState.inputValue);\n lastEmmitedInputValue.current = comboboxState.inputValue;\n }\n }, [comboboxState.inputValue, onInputChange]);\n\n return (\n <TypeaheadComboboxRoot {...props} comboboxState={comboboxState}>\n <TypeaheadComboboxMultiSelectInput\n {...inputProps}\n multipleSelectionState={multipleSelectionState}\n selectedItems={selectedItems}\n setSelectedItems={handleItemUpdate}\n getSelectedItemLabel={itemToString}\n comboboxState={comboboxState}\n validationState={validationState}\n ref={field.ref}\n />\n <TypeaheadComboboxMenu {...menuProps} comboboxState={comboboxState}>\n {children({\n comboboxState,\n items,\n selectedItems,\n })}\n </TypeaheadComboboxMenu>\n </TypeaheadComboboxRoot>\n );\n}\n\n// Lazy-load the react-aria TypeaheadComboboxV2 subtree so it is not bundled into the common chunk that\n// the broadly-imported RHFControlledComponents lands in — only pages that actually render a V2 typeahead\n// pull the ~175KB chunk. Generics don't flow through React.lazy, so each public wrapper re-declares the\n// generic signature and casts its props onto the (default-generic) lazy component; the lazy impl has the\n// identical prop shape.\nconst LazyRHFControlledTypeaheadComboboxV2 = React.lazy(() =>\n import('./RHFControlledTypeaheadComboboxV2').then((m) => ({ default: m.RHFControlledTypeaheadComboboxV2 })),\n);\nconst LazyRHFControlledMultiSelectTypeaheadComboboxV2 = React.lazy(() =>\n import('./RHFControlledTypeaheadComboboxV2').then((m) => ({\n default: m.RHFControlledMultiSelectTypeaheadComboboxV2,\n })),\n);\n\nfunction RHFControlledTypeaheadComboboxV2<TFieldValues extends FieldValues, TName extends FieldPath<TFieldValues>>(\n props: RHFControlledTypeaheadComboboxV2Props<TFieldValues, TName> & Omit<HTMLAttributes<HTMLDivElement>, 'children'>,\n): JSX.Element {\n return (\n <React.Suspense fallback={null}>\n <LazyRHFControlledTypeaheadComboboxV2\n {...(props as RHFControlledTypeaheadComboboxV2Props & Omit<HTMLAttributes<HTMLDivElement>, 'children'>)}\n />\n </React.Suspense>\n );\n}\n\nfunction RHFControlledMultiSelectTypeaheadComboboxV2<TFieldValues extends FieldValues>(\n props: RHFControlledMultiSelectTypeaheadComboboxV2Props<TFieldValues> &\n Omit<HTMLAttributes<HTMLDivElement>, 'children'>,\n): JSX.Element {\n return (\n <React.Suspense fallback={null}>\n <LazyRHFControlledMultiSelectTypeaheadComboboxV2\n {...(props as RHFControlledMultiSelectTypeaheadComboboxV2Props &\n Omit<HTMLAttributes<HTMLDivElement>, 'children'>)}\n />\n </React.Suspense>\n );\n}\n\ninterface RHFControlledCheckboxGroupProps<\n TFieldValues extends FieldValues = FieldValues,\n TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>,\n>\n extends Omit<CheckboxGroupProps, OmittedOriginalProps>, UseControllerProps<TFieldValues, TName> {\n control: Control<TFieldValues>;\n}\n\nfunction RHFControlledCheckboxGroup<\n TFieldValues extends FieldValues = FieldValues,\n TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>,\n>({\n name,\n control,\n rules,\n ...restProps\n}: React.PropsWithChildren<RHFControlledCheckboxGroupProps<TFieldValues, TName>>): JSX.Element {\n const { field } = useController({\n name: name,\n control: control,\n rules: rules,\n });\n\n return <Checkbox.Group {...restProps} {...field} value={field.value as CheckboxValueType[] | undefined} />;\n}\n\ninterface RHFControlledCheckboxProps<\n TFieldValues extends FieldValues = FieldValues,\n TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>,\n>\n extends Omit<CheckboxProps, OmittedOriginalProps>, UseControllerProps<TFieldValues, TName> {\n control: Control<TFieldValues>;\n}\n\nfunction RHFControlledCheckbox<\n TFieldValues extends FieldValues = FieldValues,\n TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>,\n>({\n name,\n control,\n rules,\n ...restProps\n}: React.PropsWithChildren<RHFControlledCheckboxProps<TFieldValues, TName>>): JSX.Element {\n const { field } = useController({\n name: name,\n control: control,\n rules: rules,\n });\n const { theme } = useDesignSystemTheme();\n\n return (\n <div css={{ marginTop: theme.spacing.sm }}>\n <Checkbox {...restProps} {...field} isChecked={field.value} />\n </div>\n );\n}\n\ninterface RHFControlledRadioGroupProps<\n TFieldValues extends FieldValues = FieldValues,\n TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>,\n>\n extends Omit<RadioGroupProps, OmittedOriginalProps>, UseControllerProps<TFieldValues, TName> {\n control: Control<TFieldValues>;\n}\n\nfunction RHFControlledRadioGroup<\n TFieldValues extends FieldValues = FieldValues,\n TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>,\n>({\n name,\n control,\n rules,\n ...restProps\n}: React.PropsWithChildren<RHFControlledRadioGroupProps<TFieldValues, TName>>): JSX.Element {\n const { field } = useController({\n name: name,\n control: control,\n rules: rules,\n });\n\n return <Radio.Group {...restProps} {...field} />;\n}\n\ninterface RHFControlledSwitchProps<\n TFieldValues extends FieldValues = FieldValues,\n TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>,\n>\n extends Omit<SwitchProps, OmittedOriginalProps>, UseControllerProps<TFieldValues, TName> {\n control: Control<TFieldValues>;\n}\n\nfunction RHFControlledSwitch<\n TFieldValues extends FieldValues = FieldValues,\n TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>,\n>({\n name,\n control,\n rules,\n ...restProps\n}: React.PropsWithChildren<RHFControlledSwitchProps<TFieldValues, TName>>): JSX.Element {\n const { field } = useController({\n name: name,\n control: control,\n rules: rules,\n });\n\n return <Switch {...restProps} {...field} checked={field.value} />;\n}\n\nexport const RHFControlledComponents: {\n Input: typeof RHFControlledInput;\n Password: typeof RHFControlledPasswordInput;\n TextArea: typeof RHFControlledTextArea;\n LegacySelect: typeof RHFControlledLegacySelect;\n Select: typeof RHFControlledSelect;\n DialogCombobox: typeof RHFControlledDialogCombobox;\n Checkbox: typeof RHFControlledCheckbox;\n CheckboxGroup: typeof RHFControlledCheckboxGroup;\n RadioGroup: typeof RHFControlledRadioGroup;\n TypeaheadCombobox: typeof RHFControlledTypeaheadCombobox;\n MultiSelectTypeaheadCombobox: typeof RHFControlledMultiSelectTypeaheadCombobox;\n TypeaheadComboboxV2: typeof RHFControlledTypeaheadComboboxV2;\n MultiSelectTypeaheadComboboxV2: typeof RHFControlledMultiSelectTypeaheadComboboxV2;\n Switch: typeof RHFControlledSwitch;\n} = {\n Input: RHFControlledInput,\n Password: RHFControlledPasswordInput,\n TextArea: RHFControlledTextArea,\n LegacySelect: RHFControlledLegacySelect,\n Select: RHFControlledSelect,\n DialogCombobox: RHFControlledDialogCombobox,\n Checkbox: RHFControlledCheckbox,\n CheckboxGroup: RHFControlledCheckboxGroup,\n RadioGroup: RHFControlledRadioGroup,\n TypeaheadCombobox: RHFControlledTypeaheadCombobox,\n MultiSelectTypeaheadCombobox: RHFControlledMultiSelectTypeaheadCombobox,\n TypeaheadComboboxV2: RHFControlledTypeaheadComboboxV2,\n MultiSelectTypeaheadComboboxV2: RHFControlledMultiSelectTypeaheadComboboxV2,\n Switch: RHFControlledSwitch,\n};\n","import type { CSSObject, Interpolation, SerializedStyles, Theme as EmotionTheme } from '@emotion/react';\nimport { css } from '@emotion/react';\n\nimport { getAnimationCss } from '../DesignSystemProvider';\nimport { useDesignSystemTheme } from '../Hooks';\nimport type { Icon } from '../Icon';\nimport { CheckCircleIcon, DangerIcon, WarningIcon, InfoSmallIcon } from '../Icon';\nimport type { ValidationState } from '../types';\nimport { addDebugOutlineIfEnabled } from '../utils/debug';\n\nexport interface FormMessageProps {\n id?: string;\n message: React.ReactNode;\n type: ValidationState;\n className?: string;\n css?: Interpolation<EmotionTheme>;\n}\n\nconst getMessageStyles = (clsPrefix: string, theme: EmotionTheme): SerializedStyles => {\n const errorClass = `.${clsPrefix}-form-error-message`;\n const infoClass = `.${clsPrefix}-form-info-message`;\n const successClass = `.${clsPrefix}-form-success-message`;\n const warningClass = `.${clsPrefix}-form-warning-message`;\n\n const styles: CSSObject = {\n '&&': {\n lineHeight: theme.typography.lineHeightSm,\n fontSize: theme.typography.fontSizeSm,\n marginTop: theme.spacing.sm,\n display: 'flex',\n alignItems: 'start',\n },\n\n [`&${errorClass}`]: {\n color: theme.colors.actionDangerPrimaryBackgroundDefault,\n },\n\n [`&${infoClass}`]: {\n color: theme.colors.textPrimary,\n },\n\n [`&${successClass}`]: {\n color: theme.colors.textValidationSuccess,\n },\n\n [`&${warningClass}`]: {\n color: theme.colors.textValidationWarning,\n },\n\n ...getAnimationCss(theme.options.enableAnimation),\n };\n\n return css(styles);\n};\n\nconst VALIDATION_STATE_ICONS: Record<ValidationState, typeof Icon> = {\n error: DangerIcon,\n success: CheckCircleIcon,\n warning: WarningIcon,\n info: InfoSmallIcon,\n};\n\nexport function FormMessage({ id, message, type = 'error', className = '', css }: FormMessageProps): JSX.Element {\n const { classNamePrefix, theme } = useDesignSystemTheme();\n\n const stateClass = `${classNamePrefix}-form-${type}-message`;\n const StateIcon = VALIDATION_STATE_ICONS[type];\n\n const wrapperClass = `${classNamePrefix}-form-message ${className} ${stateClass}`.trim();\n\n return (\n <div\n {...(id && { id })}\n className={wrapperClass}\n {...addDebugOutlineIfEnabled()}\n css={[getMessageStyles(classNamePrefix, theme), css]}\n role=\"alert\"\n >\n <StateIcon />\n <div style={{ paddingLeft: theme.spacing.xs }}>{message}</div>\n </div>\n );\n}\n","import type { SerializedStyles } from '@emotion/react';\nimport { css } from '@emotion/react';\n\nimport type { Theme } from '../../theme';\nimport { FormMessage } from '../FormMessage/FormMessage';\nimport { Hint } from '../Hint/Hint';\nimport { useDesignSystemTheme } from '../Hooks';\nimport { Label } from '../Label/Label';\n\nexport interface HorizontalFormSectionProps extends React.HTMLAttributes<HTMLDivElement> {\n children: React.ReactNode;\n labelColWidth?: number | string;\n inputColWidth?: number | string;\n}\n\nconst getHorizontalInputStyles = (\n theme: Theme,\n labelColWidth: number | string,\n inputColWidth: number | string,\n): SerializedStyles => {\n return css({\n display: 'flex',\n gap: theme.spacing.sm,\n\n '& > input, & > textarea, & > select': {\n marginTop: '0 !important',\n },\n\n '& > div:nth-of-type(1)': {\n width: labelColWidth,\n },\n\n '& > div:nth-of-type(2)': {\n width: inputColWidth,\n },\n });\n};\n\nconst HorizontalFormRow = ({\n children,\n labelColWidth = '33%',\n inputColWidth = '66%',\n ...restProps\n}: HorizontalFormSectionProps): JSX.Element => {\n const { theme } = useDesignSystemTheme();\n return (\n <div css={getHorizontalInputStyles(theme, labelColWidth, inputColWidth)} {...restProps}>\n {children}\n </div>\n );\n};\n\nexport const FormUI: {\n Message: typeof FormMessage;\n Label: typeof Label;\n Hint: typeof Hint;\n HorizontalFormRow: typeof HorizontalFormRow;\n} = {\n Message: FormMessage,\n Label: Label,\n Hint: Hint,\n HorizontalFormRow,\n};\n","import { Col as AntDCol } from 'antd';\n\nimport type { ColProps } from './types';\nimport { DesignSystemAntDConfigProvider } from '../DesignSystemProvider';\n\nexport const Col: React.FC<React.PropsWithChildren<ColProps>> = (props: ColProps) => (\n <DesignSystemAntDConfigProvider>\n <AntDCol {...props} />\n </DesignSystemAntDConfigProvider>\n);\n","/**\n * Default horizontal gutter (px) for `Row`. NOTE this diverges from AntD's own default of `0`:\n * DuBois has always defaulted `Row` to `8`, and ~75% of `<Row>` usages rely on it, so both the\n * AntD-backed `Row` and the native `NativeRow` must apply it. Kept in its own module so both\n * variants (and the flag-gated `Row`) share one source without an import cycle.\n */\nexport const ROW_GUTTER_SIZE = 8;\n","import { Row as AntDRow } from 'antd';\n\nimport { ROW_GUTTER_SIZE } from './rowConstants';\nimport type { RowProps } from './types';\nimport { DesignSystemAntDConfigProvider } from '../DesignSystemProvider';\n\nexport { ROW_GUTTER_SIZE };\n\nexport const Row: React.FC<React.PropsWithChildren<RowProps>> = ({ gutter = ROW_GUTTER_SIZE, ...props }) => {\n return (\n <DesignSystemAntDConfigProvider>\n <AntDRow gutter={gutter} {...props} />\n </DesignSystemAntDConfigProvider>\n );\n};\n","import type { SpaceProps as AntDSpaceProps } from 'antd';\nimport { Space as AntDSpace } from 'antd';\n\nimport { DesignSystemAntDConfigProvider } from '../DesignSystemProvider';\nimport type { DangerouslySetAntdProps, HTMLDataAttributes } from '../types';\n\nexport interface SpaceProps extends AntDSpaceProps, DangerouslySetAntdProps<AntDSpaceProps>, HTMLDataAttributes {}\n\nexport const Space: React.FC<React.PropsWithChildren<SpaceProps>> = ({ dangerouslySetAntdProps, ...props }) => {\n return (\n <DesignSystemAntDConfigProvider>\n <AntDSpace {...props} {...dangerouslySetAntdProps} />\n </DesignSystemAntDConfigProvider>\n );\n};\n","import type { SerializedStyles } from '@emotion/react';\nimport { css } from '@emotion/react';\nimport React from 'react';\n\nimport type { Theme } from '../../theme';\nimport { useDesignSystemTheme } from '../Hooks';\nimport { Space } from '../Space';\nimport type { TypographyTitleProps } from '../Typography/Title';\nimport { Title } from '../Typography/Title';\nimport type { DangerousGeneralProps, HTMLDataAttributes } from '../types';\nimport { importantify } from '../utils/css-utils';\nimport { addDebugOutlineIfEnabled } from '../utils/debug';\n\nexport interface HeaderProps extends HTMLDataAttributes, DangerousGeneralProps {\n /** The title for this page */\n title: React.ReactNode;\n /** Inline elements to be appended to the end of the title, such as a `Tag` */\n titleAddOns?: React.ReactNode | React.ReactNode[];\n /** A single `<Breadcrumb />` component */\n breadcrumbs?: React.ReactNode;\n /** An array of Dubois `<Button />` components */\n buttons?: React.ReactNode | React.ReactNode[];\n /** Whether to allow the title to wrap. Defaults to true. */\n allowTitleWrap?: boolean;\n /** HTML title element level. This only controls the element rendered, title will look like a h2 */\n titleElementLevel?: TypographyTitleProps['elementLevel'];\n}\n\nconst getHeaderStyles = (clsPrefix: string, theme: Theme): SerializedStyles => {\n const breadcrumbClass = `.${clsPrefix}-breadcrumb`;\n\n const styles = {\n [breadcrumbClass]: {\n lineHeight: theme.typography.lineHeightBase,\n },\n };\n\n return css(importantify(styles));\n};\n\nexport const Header: React.FC<React.PropsWithChildren<HeaderProps>> = ({\n breadcrumbs,\n title,\n titleAddOns,\n dangerouslyAppendEmotionCSS,\n buttons,\n children,\n titleElementLevel,\n allowTitleWrap = true,\n ...rest\n}) => {\n const { classNamePrefix: clsPrefix, theme } = useDesignSystemTheme();\n const buttonsArray: React.ReactNode[] = Array.isArray(buttons) ? buttons : buttons ? [buttons] : [];\n\n // TODO: Move to getHeaderStyles for consistency, followup ticket: https://databricks.atlassian.net/browse/FEINF-1222\n const styles = {\n titleWrapper: css({\n display: 'flex',\n alignItems: 'flex-start',\n justifyContent: 'space-between',\n flexWrap: allowTitleWrap ? 'wrap' : 'nowrap',\n rowGap: theme.spacing.sm,\n // Buttons have 32px height while Title level 2 elements used by this component have a height of 28px\n // These paddings enforce height to be the same without buttons too\n ...(buttonsArray.length === 0 && {\n paddingTop: breadcrumbs ? 0 : theme.spacing.xs / 2,\n paddingBottom: theme.spacing.xs / 2,\n }),\n }),\n\n breadcrumbWrapper: css({\n lineHeight: theme.typography.lineHeightBase,\n marginBottom: theme.spacing.xs,\n }),\n\n title: css({\n marginTop: 0,\n marginBottom: '0 !important',\n alignSelf: 'stretch',\n ...(!allowTitleWrap && {\n // Allow the title to shrink if wrapping is disabled\n flex: 1,\n minWidth: 0,\n }),\n }),\n\n // TODO: Look into a more emotion-idomatic way of doing this.\n titleIfOtherElementsPresent: css({\n marginTop: 2,\n }),\n\n buttonContainer: css({\n marginLeft: 8,\n }),\n\n titleAddOnsWrapper: css({\n display: 'inline-flex',\n verticalAlign: 'middle',\n alignItems: 'center',\n flexWrap: 'wrap',\n marginLeft: theme.spacing.sm,\n gap: theme.spacing.xs,\n }),\n };\n\n return (\n <div\n {...addDebugOutlineIfEnabled()}\n css={[getHeaderStyles(clsPrefix, theme), dangerouslyAppendEmotionCSS]}\n {...rest}\n >\n {breadcrumbs && <div css={styles.breadcrumbWrapper}>{breadcrumbs}</div>}\n <div css={styles.titleWrapper}>\n <Title\n level={2}\n elementLevel={titleElementLevel}\n css={[styles.title, (buttons || breadcrumbs) && styles.titleIfOtherElementsPresent]}\n >\n {title}\n {titleAddOns && <span css={styles.titleAddOnsWrapper}>{titleAddOns}</span>}\n </Title>\n {buttons && (\n <div css={styles.buttonContainer}>\n {/* TODO: I'm using the deprecated `Space` component, but\n this is actually a decent use-case. I'll investigate as a follow-up */}\n <Space dangerouslySetAntdProps={{ wrap: true }} size={8}>\n {buttonsArray.filter(Boolean).map((button, i) => {\n const defaultKey = `dubois-header-button-${i}`;\n\n return React.isValidElement(button) ? (\n React.cloneElement(button, {\n key: button.key || defaultKey,\n })\n ) : (\n <React.Fragment key={defaultKey}>{button}</React.Fragment>\n );\n })}\n </Space>\n </div>\n )}\n </div>\n </div>\n );\n};\n","import type { CSSObject } from '@emotion/react';\nimport type {\n HoverCardContentProps as RadixHoverCardContentProps,\n HoverCardProps as RadixHoverCardRootProps,\n} from '@radix-ui/react-hover-card';\nimport * as RadixHoverCard from '@radix-ui/react-hover-card';\nimport React from 'react';\n\nimport { useDesignTokenOverrideStyles } from '../DesignSystemProvider';\nimport { useDesignSystemTheme, useDuboisThemeClass } from '../Hooks';\nimport { useDesignSystemContext } from '../Hooks/useDesignSystemContext';\nimport { ShapeTokens } from '../shape-tokens';\nimport { getDarkModePortalStyles, importantify } from '../utils/css-utils';\nimport { token } from '../utils/token';\n\n/**\n * Props for the HoverCard component.\n * This interface extends specific props from Radix HoverCard components to maintain flexibility and alignment\n * with Radix's capabilities while providing a simpler API for end-users\n */\nexport interface HoverCardProps\n extends\n Pick<\n RadixHoverCardContentProps,\n 'side' | 'sideOffset' | 'align' | 'alignOffset' | 'avoidCollisions' | 'collisionPadding' | 'sticky'\n >,\n Pick<RadixHoverCardRootProps, 'defaultOpen' | 'open' | 'onOpenChange' | 'openDelay' | 'closeDelay'> {\n trigger: React.ReactNode;\n content: React.ReactNode;\n minWidth?: CSSObject['minWidth'];\n maxWidth?: CSSObject['maxWidth'];\n backgroundColor?: CSSObject['backgroundColor'];\n withArrow?: boolean;\n}\n/**\n * The HoverCard component combines Radix's HoverCard primitives into a single, easy-to-use component.\n * It handles the setup of the trigger, content, and arrow elements, as well as applying custom styles\n * using Emotion CSS\n */\nexport const HoverCard: React.FC<React.PropsWithChildren<HoverCardProps>> = ({\n trigger,\n content,\n side = 'top',\n sideOffset = 4,\n align = 'center',\n minWidth = 220,\n maxWidth,\n backgroundColor,\n withArrow = true,\n ...props\n}) => {\n const { getPopupContainer } = useDesignSystemContext();\n const hoverCardStyles = useHoverCardStyles({ minWidth, maxWidth, backgroundColor });\n const themeClass = useDuboisThemeClass();\n const themeOverrideStyle = useDesignTokenOverrideStyles();\n return (\n <RadixHoverCard.Root {...props}>\n <RadixHoverCard.Trigger asChild>{trigger}</RadixHoverCard.Trigger>\n <RadixHoverCard.Portal container={getPopupContainer && getPopupContainer()}>\n <RadixHoverCard.Content\n side={side}\n sideOffset={sideOffset}\n align={align}\n css={hoverCardStyles['content']}\n className={themeClass}\n style={themeOverrideStyle}\n >\n {content}\n {withArrow && <RadixHoverCard.Arrow css={hoverCardStyles['arrow']} />}\n </RadixHoverCard.Content>\n </RadixHoverCard.Portal>\n </RadixHoverCard.Root>\n );\n};\n// CONSTANTS used for defining the Arrow's appearance and behavior\nconst CONSTANTS = {\n arrowWidth: 12,\n arrowHeight: 6,\n arrowBottomLength() {\n // The built in arrow is a polygon: 0,0 30,0 15,10\n return 30;\n },\n arrowSide() {\n return 2 * (this.arrowHeight ** 2 * 2) ** 0.5;\n },\n arrowStrokeWidth() {\n // This is eyeballed b/c relative to the svg viewbox coordinate system\n return 2;\n },\n};\n/**\n * A custom hook to generate CSS styles for the HoverCard's content and arrow.\n * These styles are dynamically generated based on the theme and optional min/max width props.\n * The hook also applies necessary dark mode adjustments\n */\nconst useHoverCardStyles = ({\n minWidth,\n maxWidth,\n backgroundColor,\n}: {\n minWidth?: CSSObject['minWidth'];\n maxWidth?: CSSObject['maxWidth'];\n backgroundColor?: CSSObject['backgroundColor'];\n}): Record<string, CSSObject> => {\n const { theme } = useDesignSystemTheme();\n\n return {\n content: {\n backgroundColor: backgroundColor ?? theme.colors.backgroundPrimary,\n color: theme.colors.textPrimary,\n lineHeight: theme.typography.lineHeightBase,\n border: `1px solid ${theme.colors.border}`,\n borderRadius: token(ShapeTokens.POPUP_BORDER_RADIUS, theme.borders.borderRadiusSm),\n padding: `${theme.spacing.sm}px`,\n boxShadow: theme.shadows.lg,\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore [FEINF-3177] TODO: fix to work with React 18 types\n userSelect: 'none',\n zIndex: theme.options.zIndexBase + 30,\n minWidth,\n maxWidth,\n ...getDarkModePortalStyles(theme),\n a: importantify({\n color: theme.colors.actionTertiaryTextDefault,\n cursor: 'default',\n '&:hover, &:focus': {\n color: theme.colors.actionTertiaryTextHover,\n },\n }),\n '&:focus-visible': {\n outlineStyle: 'solid',\n outlineWidth: '2px',\n outlineOffset: '1px',\n outlineColor: theme.colors.actionDefaultBorderFocus,\n },\n },\n arrow: {\n fill: backgroundColor ?? theme.colors.backgroundPrimary,\n height: CONSTANTS.arrowHeight,\n stroke: theme.colors.borderDecorative,\n strokeDashoffset: -CONSTANTS.arrowBottomLength(),\n strokeDasharray: CONSTANTS.arrowBottomLength() + 2 * CONSTANTS.arrowSide(),\n strokeWidth: CONSTANTS.arrowStrokeWidth(),\n width: CONSTANTS.arrowWidth,\n position: 'relative',\n top: -1,\n zIndex: theme.options.zIndexBase + 30,\n },\n };\n};\n","import { notification as antDNotification } from 'antd';\nimport type {\n ArgsProps as AntDNotificationArgs,\n IconType as AntDIconType,\n NotificationInstance as AntDNotificationInstance,\n} from 'antd/lib/notification';\nimport type { ForwardRefExoticComponent, PropsWithoutRef, RefAttributes } from 'react';\nimport { forwardRef, useCallback, useMemo } from 'react';\n\nimport { DesignSystemAntDConfigProvider } from '../DesignSystemProvider';\nimport { useDesignSystemTheme } from '../Hooks';\nimport { useDesignSystemContext } from '../Hooks/useDesignSystemContext';\nimport { CloseIcon } from '../Icon';\nimport { SeverityIcon } from '../Icon/iconMap';\nimport type { DangerouslySetAntdProps } from '../types';\n\nexport type NotificationType = AntDIconType;\nexport interface NotificationInstance extends AntDNotificationInstance {\n close: (key: string) => void;\n}\n\n/**\n * `LegacyNotification` is deprecated in favor of the new `Notification` component.\n * @deprecated\n */\nexport interface LegacyNotificationProps\n extends\n Omit<AntDNotificationArgs, 'bottom' | 'btn' | 'className' | 'closeIcon' | 'icon' | 'position' | 'style' | 'top'>,\n DangerouslySetAntdProps<AntDNotificationArgs> {\n type: NotificationType;\n closeLabel?: string;\n}\n\n// Note: AntD only exposes context to notifications via the `useNotification` hook, and we need context to apply themes\n// to AntD. As such you can currently only use notifications from within functional components.\n/**\n * `useLegacyNotification` is deprecated in favor of the new `Notification` component.\n * @deprecated\n */\nexport function useLegacyNotification(): [NotificationInstance, React.ReactElement] {\n const [notificationInstance, contextHolder] = antDNotification.useNotification();\n const { getPrefixedClassName, theme } = useDesignSystemTheme();\n const { getPopupContainer: getContainer } = useDesignSystemContext();\n\n const clsPrefix = getPrefixedClassName('notification');\n\n const open = useCallback(\n (args: LegacyNotificationProps) => {\n const mergedArgs: AntDNotificationArgs & LegacyNotificationProps = {\n getContainer,\n ...defaultProps,\n ...args,\n style: {\n zIndex: theme.options.zIndexBase + 30,\n boxShadow: theme.general.shadowLow,\n },\n };\n\n const iconClassName = `${clsPrefix}-notice-icon-${mergedArgs.type}`;\n mergedArgs.icon = <SeverityIcon severity={mergedArgs.type} className={iconClassName} />;\n\n mergedArgs.closeIcon = (\n <CloseIcon\n aria-hidden=\"false\"\n css={{ cursor: 'pointer', fontSize: theme.general.iconSize }}\n aria-label={mergedArgs.closeLabel || 'Close notification'}\n />\n );\n\n notificationInstance.open(mergedArgs);\n },\n [notificationInstance, getContainer, theme, clsPrefix],\n );\n\n const wrappedNotificationAPI: NotificationInstance = useMemo(() => {\n const error = (args: LegacyNotificationProps) => open({ ...args, type: 'error' });\n const warning = (args: LegacyNotificationProps) => open({ ...args, type: 'warning' });\n const info = (args: LegacyNotificationProps) => open({ ...args, type: 'info' });\n const success = (args: LegacyNotificationProps) => open({ ...args, type: 'success' });\n const close = (key: string) => antDNotification.close(key);\n\n return {\n open,\n close,\n error,\n warning,\n info,\n success,\n };\n }, [open]);\n\n // eslint-disable-next-line react/jsx-key -- TODO(FEINF-1756)\n return [wrappedNotificationAPI, <DesignSystemAntDConfigProvider>{contextHolder}</DesignSystemAntDConfigProvider>];\n}\n\nconst defaultProps: Partial<LegacyNotificationProps> = {\n type: 'info',\n duration: 3,\n};\n\n/**\n * A type wrapping given component interface with props returned by withNotifications() HOC\n *\n * @deprecated Please migrate components to functional components and use useNotification() hook instead.\n */\nexport type WithNotificationsHOCProps<T> = T & {\n notificationAPI: NotificationInstance;\n notificationContextHolder: React.ReactElement;\n};\n\n/**\n * A higher-order component factory function, enables using notifications in\n * class components in a similar way to useNotification() hook. Wrapped component will have\n * additional \"notificationAPI\" and \"notificationContextHolder\" props injected containing\n * the notification API object and context holder react node respectively.\n *\n * The wrapped component can implement WithNotificationsHOCProps<OwnProps> type which\n * enriches the component's interface with the mentioned props.\n *\n * @deprecated Please migrate components to functional components and use useNotification() hook instead.\n */\nexport const withNotifications = <P, T>(\n Component: React.ComponentType<WithNotificationsHOCProps<P>>,\n): ForwardRefExoticComponent<PropsWithoutRef<P> & RefAttributes<T>> =>\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore [FEINF-3177] TODO: fix to work with React 18 types\n // eslint-disable-next-line react-component-name/react-component-name -- TODO(FEINF-4716)\n forwardRef<T, P>((props: P, ref) => {\n const [notificationAPI, notificationContextHolder] = useLegacyNotification();\n return (\n <Component\n ref={ref}\n notificationAPI={notificationAPI}\n notificationContextHolder={notificationContextHolder}\n {...props}\n />\n );\n });\n","import type { PopoverProps as AntDPopoverProps } from 'antd';\nimport { Popover as AntDPopover } from 'antd';\n\nimport { DesignSystemAntDConfigProvider, RestoreAntDDefaultClsPrefix } from '../DesignSystemProvider';\nimport { useDesignSystemTheme } from '../Hooks';\nimport type { DangerouslySetAntdProps, HTMLDataAttributes } from '../types';\n\n/**\n * `LegacyPopover` is deprecated in favor of the new `Popover` component.\n * @deprecated\n */\nexport interface LegacyPopoverProps\n extends Omit<AntDPopoverProps, 'content'>, DangerouslySetAntdProps<AntDPopoverProps>, HTMLDataAttributes {\n content?: React.ReactNode;\n}\n\n/**\n * `LegacyPopover` is deprecated in favor of the new `Popover` component.\n * @deprecated\n */\nexport const LegacyPopover: React.FC<React.PropsWithChildren<LegacyPopoverProps>> = ({\n content,\n dangerouslySetAntdProps,\n ...props\n}) => {\n const { theme } = useDesignSystemTheme();\n\n return (\n <DesignSystemAntDConfigProvider>\n <AntDPopover\n zIndex={theme.options.zIndexBase + 30}\n {...props}\n content={<RestoreAntDDefaultClsPrefix>{content}</RestoreAntDDefaultClsPrefix>}\n />\n </DesignSystemAntDConfigProvider>\n );\n};\n","import type { SkeletonProps as AntDSkeletonProps } from 'antd';\nimport { Skeleton as AntDSkeleton } from 'antd';\n\nimport { AccessibleContainer } from '../AccessibleContainer';\nimport { DesignSystemAntDConfigProvider } from '../DesignSystemProvider';\nimport type { WithLoadingState } from '../LoadingState/LoadingState';\nimport { LoadingState } from '../LoadingState/LoadingState';\nimport type { DangerouslySetAntdProps, HTMLDataAttributes } from '../types';\n\nexport interface LegacySkeletonProps\n extends WithLoadingState, AntDSkeletonProps, DangerouslySetAntdProps<AntDSkeletonProps>, HTMLDataAttributes {\n label?: React.ReactNode;\n}\n\ninterface LegacySkeletonInterface extends React.FC<LegacySkeletonProps> {\n Button: typeof AntDSkeleton.Button;\n Image: typeof AntDSkeleton.Image;\n Input: typeof AntDSkeleton.Input;\n}\n\n/** @deprecated This component is deprecated. Use ParagraphSkeleton, TitleSkeleton, or GenericSkeleton instead. */\nexport const LegacySkeleton: LegacySkeletonInterface = /* #__PURE__ */ (() => {\n const LegacySkeleton: LegacySkeletonInterface = ({\n dangerouslySetAntdProps,\n label,\n loadingDescription = 'LegacySkeleton',\n ...props\n }) => {\n // There is a conflict in how the 'loading' prop is handled here, so we can't default it to true in\n // props destructuring above like we do for 'loadingDescription'. The 'loading' param is used both\n // for <LoadingState> and in <AntDSkeleton>. The intent is for 'loading' to default to true in\n // <LoadingState>, but if we do that, <AntDSkeleton> will not render the children. The workaround\n // here is to default 'loading' to true only when considering whether to render a <LoadingState>.\n // Also, AntDSkeleton looks at the presence of 'loading' in props, so We cannot explicitly destructure\n // 'loading' in the constructor since we would no longer be able to differentiate between it not being\n // passed in at all and being passed undefined.\n const loadingStateLoading = (props as LegacySkeletonProps).loading ?? true;\n\n return (\n <DesignSystemAntDConfigProvider>\n <AccessibleContainer label={label}>\n {/* oxlint-disable-next-line @databricks/no-dynamic-property-value -- DUBOIS INTERNAL EXEMPTION exempt:ffc6b18b-579d-42e4-a930-2188a51e54a9 */}\n {loadingStateLoading && <LoadingState description={loadingDescription} />}\n <AntDSkeleton {...props} {...dangerouslySetAntdProps} />\n </AccessibleContainer>\n </DesignSystemAntDConfigProvider>\n );\n };\n\n LegacySkeleton.Button = AntDSkeleton.Button;\n LegacySkeleton.Image = AntDSkeleton.Image;\n LegacySkeleton.Input = AntDSkeleton.Input;\n\n return LegacySkeleton;\n})();\n","import { ClassNames } from '@emotion/react';\nimport type {\n MenuProps as AntDMenuProps,\n MenuItemProps as AntDMenuItemProps,\n SubMenuProps as AntDSubmenuProps,\n} from 'antd';\nimport { Menu as AntDMenu } from 'antd';\n\nimport { DesignSystemAntDConfigProvider } from '../DesignSystemProvider';\nimport { useDesignSystemTheme } from '../Hooks';\nimport type { DangerouslySetAntdProps, HTMLDataAttributes } from '../types';\nimport { addDebugOutlineIfEnabled } from '../utils/debug';\n\nexport interface MenuProps extends AntDMenuProps, DangerouslySetAntdProps<AntDMenuProps>, HTMLDataAttributes {}\nexport interface MenuItemProps extends AntDMenuItemProps {}\n\ninterface MenuInterface extends React.FC<MenuProps> {\n Item: typeof AntDMenu.Item;\n ItemGroup: typeof AntDMenu.ItemGroup;\n SubMenu: typeof AntDMenu.SubMenu;\n}\n\n/**\n * @deprecated Use `DropdownMenu` instead.\n */\nexport const Menu: MenuInterface = /* #__PURE__ */ (() => {\n const Menu: MenuInterface = ({ dangerouslySetAntdProps, ...props }) => {\n return (\n <DesignSystemAntDConfigProvider>\n <AntDMenu {...addDebugOutlineIfEnabled()} {...props} {...dangerouslySetAntdProps} />\n </DesignSystemAntDConfigProvider>\n );\n };\n\n Menu.Item = AntDMenu.Item;\n Menu.ItemGroup = AntDMenu.ItemGroup;\n Menu.SubMenu = function SubMenu({ dangerouslySetAntdProps, ...props }: SubMenuProps) {\n const { theme } = useDesignSystemTheme();\n\n return (\n <ClassNames>\n {({ css }) => {\n return (\n <AntDMenu.SubMenu\n {...addDebugOutlineIfEnabled()}\n popupClassName={css({\n zIndex: theme.options.zIndexBase + 50,\n })}\n popupOffset={[-6, -10]}\n {...props}\n {...dangerouslySetAntdProps}\n />\n );\n }}\n </ClassNames>\n );\n };\n\n return Menu;\n})();\n\ninterface SubMenuProps extends AntDSubmenuProps, DangerouslySetAntdProps<AntDSubmenuProps> {}\n","import type { SerializedStyles } from '@emotion/react';\nimport { keyframes, css } from '@emotion/react';\nimport * as Toast from '@radix-ui/react-toast';\nimport classnames from 'classnames';\nimport type { ForwardRefExoticComponent, PropsWithoutRef, RefAttributes } from 'react';\nimport React, { forwardRef, useMemo } from 'react';\n\nimport type { Theme } from '../../theme';\nimport { Button } from '../Button';\nimport {\n DesignSystemEventProviderComponentTypes,\n useDesignSystemEventComponentCallbacks,\n DesignSystemEventProviderAnalyticsEventTypes,\n DesignSystemEventProviderComponentSubTypeMap,\n} from '../DesignSystemEventProvider/DesignSystemEventProvider';\nimport { useDesignTokenOverrideStyles, DU_BOIS_ENABLE_ANIMATION_CLASSNAME } from '../DesignSystemProvider';\nimport { useDesignSystemTheme, useDuboisThemeClass } from '../Hooks';\nimport { CloseIcon } from '../Icon';\nimport { SeverityIcon } from '../Icon/iconMap';\nimport { ShapeTokens } from '../shape-tokens';\nimport type { AnalyticsEventProps } from '../types';\nimport { getDarkModePortalStyles, useNotifyOnFirstView } from '../utils';\nimport { visuallyHidden } from '../utils/accessibility';\nimport { addDebugOutlineIfEnabled } from '../utils/debug';\nimport { token } from '../utils/token';\n\ntype NotificationSeverity = 'info' | 'success' | 'warning' | 'error';\n\n// English defaults; consumers can supply localised severity labels via the\n// `severityLabel` prop on `Notification.Root`. Used as the visually-hidden\n// prefix that screen readers announce so severity is conveyed programmatically\n// rather than via colour alone (WCAG 1.4.1).\nconst DEFAULT_SEVERITY_LABELS: Record<NotificationSeverity, string> = {\n info: 'Info',\n success: 'Success',\n warning: 'Warning',\n error: 'Error',\n};\n\nconst noopSwipeHandler = (event: Event) => event.preventDefault();\n/**\n * Disables the \"swipe-to-close\" gesture in toast notifications.\n */\nconst preventSwipeToClose = () => ({ onSwipeMove: noopSwipeHandler, onSwipeEnd: noopSwipeHandler });\n\nconst hideAnimation = keyframes({\n from: {\n opacity: 1,\n },\n to: {\n opacity: 0,\n },\n});\n\nconst slideInAnimation = keyframes({\n from: {\n transform: 'translateX(calc(100% + 12px))',\n },\n to: {\n transform: 'translateX(0)',\n },\n});\n\nconst swipeOutAnimation = keyframes({\n from: {\n transform: 'translateX(var(--radix-toast-swipe-end-x))',\n },\n to: {\n transform: 'translateX(calc(100% + 12px))',\n },\n});\n\nconst getToastRootStyle = (theme: Theme, classNamePrefix: string): SerializedStyles => {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore [FEINF-3177] TODO: fix to work with React 18 types\n return css({\n '&&': {\n position: 'relative',\n display: 'grid',\n background: theme.colors.backgroundPrimary,\n padding: 12,\n columnGap: 4,\n boxShadow: theme.shadows.lg,\n borderRadius: token(ShapeTokens.POPUP_BORDER_RADIUS, theme.borders.borderRadiusSm),\n lineHeight: '20px',\n\n borderColor: `1px solid ${theme.colors.border}`,\n\n gridTemplateRows: '[header] auto [content] auto',\n gridTemplateColumns: '[icon] auto [content] 1fr [close] auto',\n ...getDarkModePortalStyles(theme),\n },\n\n [`.${classNamePrefix}-notification-severity-icon`]: {\n gridRow: 'header / content',\n gridColumn: 'icon / icon',\n display: 'inline-flex',\n alignItems: 'center',\n },\n\n [`.${classNamePrefix}-btn`]: {\n display: 'inline-flex',\n alignItems: 'center',\n justifyContent: 'center',\n },\n\n [`.${classNamePrefix}-notification-info-icon`]: {\n color: theme.colors.textSecondary,\n },\n\n [`.${classNamePrefix}-notification-success-icon`]: {\n color: theme.colors.textValidationSuccess,\n },\n\n [`.${classNamePrefix}-notification-warning-icon`]: {\n color: theme.colors.textValidationWarning,\n },\n\n [`.${classNamePrefix}-notification-error-icon`]: {\n color: theme.colors.textValidationDanger,\n },\n\n '&&[data-state=\"open\"]': {\n animation: `${slideInAnimation} 300ms cubic-bezier(0.16, 1, 0.3, 1)`,\n },\n\n '&[data-state=\"closed\"]': {\n animation: `${hideAnimation} 100ms ease-in`,\n },\n\n '&[data-swipe=\"move\"]': {\n transform: 'translateX(var(--radix-toast-swipe-move-x))',\n },\n\n '&[data-swipe=\"cancel\"]': {\n transform: 'translateX(0)',\n transition: 'transform 200ms ease-out',\n },\n\n '&[data-swipe=\"end\"]': {\n animation: `${swipeOutAnimation} 100ms ease-out`,\n },\n\n // WCAG 2.3.3: animation triggered by interaction must be disablable.\n '@media (prefers-reduced-motion: reduce)': {\n '&&[data-state=\"open\"], &[data-state=\"closed\"], &[data-swipe=\"end\"]': {\n animation: 'none',\n },\n '&[data-swipe=\"cancel\"]': {\n transition: 'none',\n },\n },\n });\n};\n\nexport interface NotificationProps\n extends Toast.ToastProps, AnalyticsEventProps<DesignSystemEventProviderAnalyticsEventTypes.OnView> {\n severity?: NotificationSeverity;\n isCloseable?: boolean;\n /**\n * Visually-hidden prefix announced before the title/description so screen\n * readers can communicate severity. Defaults to the English severity name\n * (e.g. \"Error\"). Pass a translated string for non-English locales.\n */\n severityLabel?: string;\n}\n\nexport const Root: ForwardRefExoticComponent<PropsWithoutRef<NotificationProps> & RefAttributes<HTMLLIElement>> =\n // eslint-disable-next-line react-component-name/react-component-name -- TODO(FEINF-4716)\n forwardRef<HTMLLIElement, NotificationProps>(function (\n {\n children,\n severity = 'info',\n severityLabel,\n componentId,\n analyticsEvents = [DesignSystemEventProviderAnalyticsEventTypes.OnView],\n className,\n style,\n ...props\n }: NotificationProps,\n ref,\n ): JSX.Element {\n const { theme, classNamePrefix } = useDesignSystemTheme();\n const memoizedAnalyticsEvents = useMemo(() => analyticsEvents, [analyticsEvents]);\n const eventContext = useDesignSystemEventComponentCallbacks({\n componentType: DesignSystemEventProviderComponentTypes.Notification,\n componentId,\n componentSubType: DesignSystemEventProviderComponentSubTypeMap[severity],\n analyticsEvents: memoizedAnalyticsEvents,\n shouldStartInteraction: false,\n });\n // A new ref was created rather than creating additional complexity of merging the refs, something to consider for the future to optimize\n const { elementRef } = useNotifyOnFirstView<HTMLSpanElement>({ onView: eventContext.onView });\n const themeClass = useDuboisThemeClass();\n const themeOverrideStyle = useDesignTokenOverrideStyles();\n\n // Radix Toast already has a hidden announcer — the legacy `<span role=\"status\" aria-live>`\n // wrapper double-announced. We rely on Radix's defaults (`role=\"status\"` on the <li>) and\n // pass `type=\"foreground\"` for errors so the hidden announcer goes assertive. The\n // visually-hidden severity prefix conveys severity to SRs (WCAG 1.4.1 — colour-only fails).\n return (\n <Toast.Root\n ref={ref}\n type={severity === 'error' ? 'foreground' : 'background'}\n css={getToastRootStyle(theme, classNamePrefix)}\n {...props}\n {...addDebugOutlineIfEnabled()}\n {...preventSwipeToClose()}\n className={classnames(className, themeClass)}\n style={{ ...style, ...themeOverrideStyle }}\n >\n <SeverityIcon\n className={`${classNamePrefix}-notification-severity-icon ${classNamePrefix}-notification-${severity}-icon`}\n severity={severity}\n ref={elementRef}\n />\n <span css={visuallyHidden}>{`${severityLabel ?? DEFAULT_SEVERITY_LABELS[severity]}: `}</span>\n {children}\n </Toast.Root>\n );\n });\n\n// TODO: Support light and dark mode\n\nconst getViewportStyle = (theme: Theme): React.CSSProperties => {\n return {\n position: 'fixed',\n top: 0,\n right: 0,\n display: 'flex',\n flexDirection: 'column',\n padding: 12,\n gap: 12,\n width: 440,\n listStyle: 'none',\n zIndex: theme.options.zIndexBase + 100,\n outline: 'none',\n maxWidth: `calc(100% - ${theme.spacing.lg}px)`,\n };\n};\n\nconst getTitleStyles = (theme: Theme): SerializedStyles => {\n return css({\n fontWeight: theme.typography.typographyBoldFontWeight,\n color: theme.colors.textPrimary,\n gridRow: 'header / header',\n gridColumn: 'content / content',\n userSelect: 'text',\n });\n};\n\nexport interface NotificationTitleProps extends Toast.ToastTitleProps {}\n\nexport const Title: ForwardRefExoticComponent<PropsWithoutRef<NotificationTitleProps> & RefAttributes<HTMLDivElement>> =\n // eslint-disable-next-line react-component-name/react-component-name -- TODO(FEINF-4716)\n forwardRef<HTMLDivElement, NotificationTitleProps>(function (\n { children, ...props }: NotificationTitleProps,\n ref,\n ): JSX.Element {\n const { theme } = useDesignSystemTheme();\n return (\n <Toast.Title ref={ref} css={getTitleStyles(theme)} {...props}>\n {children}\n </Toast.Title>\n );\n });\n\nconst getDescriptionStyles = (theme: Theme): SerializedStyles => {\n return css({\n marginTop: 4,\n color: theme.colors.textPrimary,\n gridRow: 'content / content',\n gridColumn: 'content / content',\n userSelect: 'text',\n wordBreak: 'break-word',\n });\n};\n\nexport interface NotificationDescriptionProps extends Toast.ToastDescriptionProps {}\n\nexport const Description: ForwardRefExoticComponent<\n PropsWithoutRef<NotificationDescriptionProps> & RefAttributes<HTMLDivElement>\n // eslint-disable-next-line react-component-name/react-component-name -- TODO(FEINF-4716)\n> = forwardRef<HTMLDivElement, NotificationDescriptionProps>(function (\n { children, ...props }: NotificationDescriptionProps,\n ref,\n): JSX.Element {\n const { theme } = useDesignSystemTheme();\n return (\n <Toast.Description ref={ref} css={getDescriptionStyles(theme)} {...props}>\n {children}\n </Toast.Description>\n );\n});\n\nconst getCloseStyles = (theme: Theme): SerializedStyles => {\n return css({\n color: theme.colors.textSecondary,\n position: 'absolute',\n // Offset close button position to align with the title, title uses 20px line height, button has 32px\n right: 6,\n top: 6,\n });\n};\n\nexport interface NotificationCloseProps\n extends Toast.ToastCloseProps, AnalyticsEventProps<DesignSystemEventProviderAnalyticsEventTypes.OnClick> {\n closeLabel?: string;\n}\n\nexport const Close: ForwardRefExoticComponent<\n PropsWithoutRef<NotificationCloseProps> & RefAttributes<HTMLButtonElement>\n // eslint-disable-next-line react-component-name/react-component-name -- TODO(FEINF-4716)\n> = forwardRef<HTMLButtonElement, NotificationCloseProps>(function (props: NotificationCloseProps, ref): JSX.Element {\n const { theme } = useDesignSystemTheme();\n\n const { closeLabel, componentId, analyticsEvents, ...restProps } = props;\n\n return (\n // Wrapper to keep close column width for content sizing, close button positioned absolute for alignment without affecting the grid's first row height (title)\n <div style={{ gridColumn: 'close / close', gridRow: 'header / content', width: 20 }}>\n <Toast.Close ref={ref} css={getCloseStyles(theme)} {...restProps} asChild>\n <Button\n componentId={\n componentId ? componentId : 'codegen_design-system_src_design-system_notification_notification.tsx_224'\n }\n analyticsEvents={analyticsEvents}\n icon={<CloseIcon />}\n aria-label={closeLabel ?? restProps['aria-label'] ?? 'Close notification'}\n />\n </Toast.Close>\n </div>\n );\n});\n\nexport interface NotificationProviderProps extends Toast.ToastProviderProps {}\n\nexport const Provider = ({ children, ...props }: NotificationProviderProps): JSX.Element => {\n return <Toast.Provider {...props}>{children}</Toast.Provider>;\n};\n\nexport interface NotificationViewportProps extends Toast.ToastViewportProps {}\n\nexport const Viewport = (props: NotificationViewportProps): JSX.Element => {\n const { theme } = useDesignSystemTheme();\n\n return <Toast.Viewport className={DU_BOIS_ENABLE_ANIMATION_CLASSNAME} style={getViewportStyle(theme)} {...props} />;\n};\n","import { css } from '@emotion/react';\nimport { Children } from 'react';\n\nimport { OverflowPopover } from './OverflowPopover';\nimport type { PopoverProps } from '../Popover/Popover';\nimport { Tag } from '../Tag';\n\nexport interface OverflowProps extends PopoverProps {\n /** Used for components like Tag which have already have margins */\n noMargin?: boolean;\n\n /**\n * Number of items to show outside the overflow menu\n *\n * @default 1\n */\n visibleItemsCount?: number;\n\n /** Opens the overflow menu on mount; passed through to the underlying Popover. */\n defaultOpen?: boolean;\n\n children: React.ReactNode;\n}\n\nconst triggerStyles = css({\n marginRight: 0,\n color: 'var(--db-overflow-trigger-text)',\n cursor: 'pointer',\n\n '&:focus': {\n color: 'var(--db-overflow-trigger-text)',\n },\n\n '&:hover': {\n color: 'var(--db-overflow-trigger-text-hover)',\n },\n\n '&:active': {\n color: 'var(--db-overflow-trigger-text-press)',\n },\n});\n\nconst containerStyles = css({\n display: 'inline-flex',\n alignItems: 'center',\n maxWidth: '100%',\n});\n\nexport const Overflow = ({\n children,\n noMargin = false,\n visibleItemsCount = 1,\n defaultOpen,\n ...props\n}: OverflowProps): React.ReactElement => {\n const childrenList = children && Children.toArray(children);\n\n if (!childrenList || childrenList.length === 0) {\n return <>{children}</>;\n }\n\n const visibleItems = childrenList.slice(0, visibleItemsCount);\n const additionalItems = childrenList.slice(visibleItemsCount);\n\n const renderOverflowLabel = (label: string) => (\n <Tag componentId=\"codegen_design-system_src_design-system_overflow_overflow.tsx_28\" css={triggerStyles}>\n {label}\n </Tag>\n );\n\n return additionalItems.length === 0 ? (\n <>{visibleItems}</>\n ) : (\n <div {...props} css={[containerStyles, { gap: noMargin ? 0 : 'var(--db-overflow-spacing)' }]}>\n {visibleItems}\n {additionalItems.length > 0 && (\n <OverflowPopover\n items={additionalItems}\n renderLabel={renderOverflowLabel}\n defaultOpen={defaultOpen}\n {...props}\n />\n )}\n </div>\n );\n};\n","import { css } from '@emotion/react';\n\nimport { useDesignSystemTheme } from '../Hooks';\nimport type { HTMLDataAttributes } from '../types';\nimport { addDebugOutlineIfEnabled } from '../utils/debug';\n\nexport interface PageWrapperProps extends HTMLDataAttributes, React.HTMLAttributes<HTMLDivElement> {}\n\nexport const PageWrapper: React.FC<React.PropsWithChildren<PageWrapperProps>> = ({ children, ...props }) => {\n const { theme } = useDesignSystemTheme();\n\n return (\n <div\n {...addDebugOutlineIfEnabled()}\n css={css({\n paddingLeft: 16,\n paddingRight: 16,\n backgroundColor: theme.isDarkMode ? theme.colors.backgroundPrimary : 'transparent',\n })}\n {...props}\n >\n {children}\n </div>\n );\n};\n","import type { Theme } from '@emotion/react';\n\nimport { useDesignSystemTheme } from '../Hooks';\nimport type { IconProps } from '../Icon';\nimport { CircleIcon, CircleOffIcon, CircleOutlineIcon } from '../Icon';\n\nexport type ResourceStatus = 'online' | 'disconnected' | 'offline';\nexport interface ResourceStatusIndicatorProps {\n status: ResourceStatus;\n style?: React.CSSProperties;\n}\n\nconst STATUS_TO_ICON: {\n [key in ResourceStatus]: ({\n theme,\n style,\n ...props\n }: IconProps & { theme: Theme; style?: React.CSSProperties }) => JSX.Element;\n} = {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore [FEINF-3177] TODO: fix to work with React 18 types\n online: ({ theme, style, ...props }) => <CircleIcon color=\"success\" css={{ ...style }} {...props} />,\n disconnected: ({ theme, style, ...props }) => (\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore [FEINF-3177] TODO: fix to work with React 18 types\n <CircleOutlineIcon css={{ color: theme.colors.grey500, ...style }} {...props} />\n ),\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore [FEINF-3177] TODO: fix to work with React 18 types\n offline: ({ theme, style, ...props }) => <CircleOffIcon css={{ color: theme.colors.grey500, ...style }} {...props} />,\n};\n\nexport const ResourceStatusIndicator = (props: ResourceStatusIndicatorProps): JSX.Element => {\n const { status, style, ...restProps } = props;\n const { theme } = useDesignSystemTheme();\n const StatusIcon = STATUS_TO_ICON[status];\n\n return <StatusIcon theme={theme} style={style} {...restProps} />;\n};\n","export type SnackbarVertical = 'top' | 'bottom';\nexport type SnackbarHorizontal = 'left' | 'center' | 'right';\n\nexport interface SnackbarConfig {\n content: React.ReactNode;\n uid?: string;\n backgroundColor?: string;\n textColor?: string;\n vertical?: SnackbarVertical;\n horizontal?: SnackbarHorizontal;\n autoDismiss?: number; // can set to Infinity for persistent snacks, 3000ms by default\n componentId?: string; // for analytics events\n closeButton?: boolean; // if false, removes the close button\n}\n\nexport interface SnackbarWithId extends SnackbarConfig {\n id: string;\n open: boolean;\n}\n\ntype Listener = () => void;\n\n/**\n * SnackBarManager is a store for managing SnackBar state.\n * It maintains the list of active snacks and notifies subscribers when state changes.\n */\nclass SnackBarManager {\n private snacks: SnackbarWithId[] = [];\n private listeners = new Set<Listener>();\n\n subscribe = (listener: Listener): (() => void) => {\n this.listeners.add(listener);\n return () => {\n this.listeners.delete(listener);\n };\n };\n\n getSnapshot = (): SnackbarWithId[] => {\n return this.snacks;\n };\n\n private notifyListeners(): void {\n this.listeners.forEach((listener) => listener());\n }\n\n // Adds a snack and returns its ID.\n addSnack(config: SnackbarConfig): string {\n const snackId = config.uid ?? crypto.randomUUID();\n\n if (this.doesSnackExist(snackId)) {\n return snackId;\n }\n\n const snack: SnackbarWithId = {\n ...config,\n id: snackId,\n open: true,\n vertical: config.vertical || 'top',\n horizontal: config.horizontal || 'center',\n autoDismiss: config.autoDismiss ?? 3000,\n };\n\n this.snacks = [...this.snacks, snack];\n this.notifyListeners();\n\n return snackId;\n }\n\n // Closes a snack by ID\n closeSnack(id: string): void {\n if (!this.doesSnackExist(id)) {\n return;\n }\n this.snacks = this.snacks.map((snack) => (snack.id === id ? { ...snack, open: false } : snack));\n this.notifyListeners();\n }\n\n // Deletes a snack by ID (after close animation)\n deleteSnack(id: string): void {\n if (!this.doesSnackExist(id)) {\n return;\n }\n this.snacks = this.snacks.filter((snack) => snack.id !== id);\n this.notifyListeners();\n }\n\n // Checks if a snack with the given ID exists\n doesSnackExist(id: string): boolean {\n return this.snacks.some((snack) => snack.id === id);\n }\n\n reset(): void {\n this.snacks = [];\n this.notifyListeners();\n }\n}\n\nexport const snackBarManager: SnackBarManager = new SnackBarManager();\n","import type { SerializedStyles } from '@emotion/react';\nimport { css, keyframes } from '@emotion/react';\nimport * as Toast from '@radix-ui/react-toast';\nimport React, { forwardRef, useCallback, useMemo, useSyncExternalStore } from 'react';\n\nimport type { SnackbarVertical, SnackbarHorizontal, SnackbarWithId } from './SnackBarManager';\nimport { snackBarManager } from './SnackBarManager';\nimport type { Theme } from '../../theme';\nimport { Button } from '../Button';\nimport { getBtnClassName } from '../Button/getBtnClassName';\nimport {\n DesignSystemEventProviderAnalyticsEventTypes,\n DesignSystemEventProviderComponentTypes,\n useDesignSystemEventComponentCallbacks,\n} from '../DesignSystemEventProvider/DesignSystemEventProvider';\nimport { useDesignTokenOverrideStyles, DU_BOIS_ENABLE_ANIMATION_CLASSNAME } from '../DesignSystemProvider';\nimport { useDesignSystemTheme, useDuboisThemeClass } from '../Hooks';\nimport { CloseIcon } from '../Icon';\nimport { useNotifyOnFirstView } from '../utils';\nimport { addDebugOutlineIfEnabled } from '../utils/debug';\n\nconst getCloseButtonStyles = (clsPrefix: string): SerializedStyles => {\n const notLink = `:not(${getBtnClassName(clsPrefix, '-link', '')})`;\n return css({\n marginLeft: 'var(--db-snackbar-close-button-spacing)',\n flexShrink: 0,\n // Override design system colors to use dark mode colors in both light and dark modes for proper contrast\n [`&&:enabled${notLink} > .anticon`]: {\n color: 'var(--db-snackbar-close-icon) !important',\n },\n [`&&:enabled${notLink}:hover > .anticon`]: {\n color: 'var(--db-snackbar-close-icon-hover) !important',\n },\n [`&&:enabled${notLink}:active > .anticon`]: {\n color: 'var(--db-snackbar-close-icon-press) !important',\n },\n });\n};\n\nconst fadeInAnimation = keyframes({\n from: {\n opacity: 0,\n },\n to: {\n opacity: 1,\n },\n});\n\nconst fadeOutAnimation = keyframes({\n from: {\n opacity: 1,\n },\n to: {\n opacity: 0,\n },\n});\n\nconst getSnackBarRootStyle = (backgroundColor?: string, textColor?: string): SerializedStyles => {\n return css({\n '&&': {\n position: 'relative',\n display: 'flex',\n alignItems: 'center',\n padding: 'var(--db-snackbar-spacing-vertical) var(--db-snackbar-spacing-horizontal)',\n backgroundColor: backgroundColor || 'var(--db-snackbar-surface)',\n color: textColor || 'var(--db-snackbar-text)',\n boxShadow: 'var(--db-snackbar-shadow)',\n borderRadius: 'var(--db-snackbar-border-radius)',\n pointerEvents: 'auto',\n maxWidth: 400,\n },\n\n '&&[data-state=\"open\"]': {\n animation: `${fadeInAnimation} 200ms ease-out`,\n },\n\n '&[data-state=\"closed\"]': {\n animation: `${fadeOutAnimation} 150ms ease-in`,\n },\n });\n};\n\nconst isSnackbarVertical = (value: string): value is SnackbarVertical => {\n return value === 'top' || value === 'bottom';\n};\n\nconst isSnackbarHorizontal = (value: string): value is SnackbarHorizontal => {\n return value === 'left' || value === 'center' || value === 'right';\n};\n\nconst getViewportStyle = (\n theme: Theme,\n vertical: SnackbarVertical,\n horizontal: SnackbarHorizontal,\n): React.CSSProperties => {\n const base: React.CSSProperties = {\n position: 'fixed',\n display: 'flex',\n flexDirection: vertical === 'bottom' ? 'column-reverse' : 'column',\n padding: 12,\n gap: 12,\n listStyle: 'none',\n zIndex: theme.options.zIndexBase + 100,\n outline: 'none',\n maxWidth: 400,\n pointerEvents: 'none',\n };\n\n const verticalStyle: React.CSSProperties = vertical === 'top' ? { top: 0 } : { bottom: 0 };\n\n const horizontalStyle: React.CSSProperties =\n horizontal === 'center'\n ? { left: '50%', transform: 'translateX(-50%)', alignItems: 'center' }\n : horizontal === 'right'\n ? { right: 0, alignItems: 'flex-end' }\n : { left: 0, alignItems: 'flex-start' };\n\n return { ...base, ...verticalStyle, ...horizontalStyle };\n};\n\ninterface SnackBarRootProps {\n snack: SnackbarWithId;\n}\n\nconst SnackBarRoot = forwardRef<HTMLLIElement, SnackBarRootProps>(function SnackBarRoot(\n { snack }: SnackBarRootProps,\n ref,\n) {\n const { classNamePrefix } = useDesignSystemTheme();\n const themeClass = useDuboisThemeClass();\n const themeOverrideStyle = useDesignTokenOverrideStyles();\n\n const memoizedAnalyticsEvents = useMemo(() => [DesignSystemEventProviderAnalyticsEventTypes.OnView], []);\n const eventContext = useDesignSystemEventComponentCallbacks({\n componentType: DesignSystemEventProviderComponentTypes.SnackBar,\n componentId: snack.componentId,\n analyticsEvents: memoizedAnalyticsEvents,\n shouldStartInteraction: false,\n });\n\n const { elementRef } = useNotifyOnFirstView<HTMLDivElement>({ onView: eventContext.onView });\n\n // Only triggers when snack is auto-dismissed\n const handleOpenChange = useCallback(\n (open: boolean) => {\n if (!open) {\n // Set snack.open to false because Radix Toast auto-dismiss doesn't set it itself. Necessary for animation to work.\n snackBarManager.closeSnack(snack.id);\n }\n },\n [snack],\n );\n\n const handleAnimationEnd = useCallback(\n (event: React.AnimationEvent) => {\n if (event.animationName === fadeOutAnimation.name && !snack.open) {\n snackBarManager.deleteSnack(snack.id);\n }\n },\n [snack.id, snack.open],\n );\n\n const handleClick = useCallback(() => {\n if (snack.closeButton === false) {\n snackBarManager.closeSnack(snack.id);\n }\n }, [snack.id, snack.closeButton]);\n\n return (\n <Toast.Root\n ref={ref}\n css={getSnackBarRootStyle(snack.backgroundColor, snack.textColor)}\n className={themeClass}\n style={{ ...(snack.closeButton === false ? { cursor: 'pointer' } : undefined), ...themeOverrideStyle }}\n open={snack.open}\n onOpenChange={handleOpenChange}\n duration={snack.autoDismiss}\n onAnimationEndCapture={handleAnimationEnd}\n onClick={snack.closeButton === false ? handleClick : undefined}\n {...addDebugOutlineIfEnabled()}\n >\n <div ref={elementRef}>{snack.content}</div>\n {snack.closeButton !== false && (\n <Toast.Close asChild>\n <Button\n css={getCloseButtonStyles(classNamePrefix)}\n componentId=\"design-system.snackbar.close\"\n icon={<CloseIcon />}\n aria-label=\"Close notification\"\n />\n </Toast.Close>\n )}\n </Toast.Root>\n );\n});\n\n/**\n * SnackBar component\n * Mount this once near the app root to enable snackbar notifications.\n * Multiple instances can be mounted without errors (though typically one is sufficient).\n */\nexport const SnackBar = (): JSX.Element => {\n const { theme } = useDesignSystemTheme();\n\n const snacks = useSyncExternalStore(snackBarManager.subscribe, snackBarManager.getSnapshot);\n\n const snacksByPosition = useMemo(() => {\n const grouped: Record<string, SnackbarWithId[]> = {};\n\n snacks.forEach((snack) => {\n const key = `${snack.vertical}-${snack.horizontal}`;\n if (!grouped[key]) {\n grouped[key] = [];\n }\n grouped[key].push(snack);\n });\n\n return grouped;\n }, [snacks]);\n\n return (\n <>\n {Object.entries(snacksByPosition).map(([key, snacksAtPosition]) => {\n const [vertical, horizontal] = key.split('-');\n\n if (!isSnackbarVertical(vertical) || !isSnackbarHorizontal(horizontal)) {\n return null;\n }\n\n return (\n <Toast.Provider key={key}>\n <Toast.Viewport\n className={DU_BOIS_ENABLE_ANIMATION_CLASSNAME}\n style={getViewportStyle(theme, vertical, horizontal)}\n aria-live=\"polite\"\n >\n {snacksAtPosition.map((snack) => (\n <SnackBarRoot key={snack.id} snack={snack} />\n ))}\n </Toast.Viewport>\n </Toast.Provider>\n );\n })}\n </>\n );\n};\n","import { useCallback } from 'react';\n\nimport type { SnackbarConfig } from './SnackBarManager';\nimport { snackBarManager } from './SnackBarManager';\n\n/**\n * Hook to interact with the SnackBar system.\n * Use this hook to add and close snackbars.\n */\nexport function useSnackBar(): { addSnack: (config: SnackbarConfig) => string; closeSnack: (id: string) => void } {\n const addSnack = useCallback((config: SnackbarConfig) => {\n return snackBarManager.addSnack(config);\n }, []);\n\n const closeSnack = useCallback((id: string) => {\n snackBarManager.closeSnack(id);\n }, []);\n\n return { addSnack, closeSnack };\n}\n","import type { StepsProps as AntDStepsProps } from 'antd';\nimport { Steps as AntDSteps } from 'antd';\nimport type { ReactNode } from 'react';\n\nimport { DesignSystemAntDConfigProvider } from '../DesignSystemProvider';\nimport type { DangerouslySetAntdProps, HTMLDataAttributes } from '../types';\nimport { addDebugOutlineIfEnabled } from '../utils/debug';\n\nexport interface StepsProps extends AntDStepsProps, DangerouslySetAntdProps<AntDStepsProps>, HTMLDataAttributes {\n children?: ReactNode;\n}\n\n/** @deprecated Please use the supported Stepper widget instead. See https://ui-infra.dev.databricks.com/storybook/js/packages/du-bois/index.html?path=/docs/primitives-stepper--docs */\nexport const Steps: ((props: StepsProps) => JSX.Element) & {\n Step: typeof AntDSteps.Step;\n} = /* #__PURE__ */ (() => {\n function Steps({ dangerouslySetAntdProps, ...props }: StepsProps): JSX.Element {\n return (\n <DesignSystemAntDConfigProvider>\n <AntDSteps {...addDebugOutlineIfEnabled()} {...props} {...dangerouslySetAntdProps} />\n </DesignSystemAntDConfigProvider>\n );\n }\n\n Steps.Step = AntDSteps.Step;\n\n return Steps;\n})();\n","import { css } from '@emotion/react';\nimport type { Input as AntDInput } from 'antd';\nimport type { ForwardRefExoticComponent, PropsWithoutRef, RefAttributes } from 'react';\nimport { forwardRef } from 'react';\n\nimport type { Theme } from '../../theme';\nimport { Button } from '../Button';\nimport { useDesignSystemTheme } from '../Hooks';\nimport { SearchIcon } from '../Icon';\nimport type { InputProps } from '../Input';\nimport { Input } from '../Input';\nimport type { HTMLDataAttributes } from '../types';\n\ninterface TableFilterInputProps extends InputProps, HTMLDataAttributes {\n // Called when the form is submitted, either by pressing enter or clicking the search button.\n // If provided, this will cause the input to be rendered within a form.\n onSubmit?: () => void;\n // Whether to show the search button.\n showSearchButton?: boolean;\n searchButtonProps?: Omit<\n React.ComponentProps<typeof Button>,\n 'children' | 'type' | 'size' | 'componentId' | 'analyticsEvents'\n >;\n containerProps?: React.ComponentProps<'div'>;\n ignoreFilterMediaSizing?: boolean;\n}\n\nconst getTableFilterInputStyles = (theme: Theme, defaultWidth: number) => {\n return css({\n [theme.responsive.mediaQueries.sm]: {\n width: 'auto',\n },\n\n [theme.responsive.mediaQueries.lg]: {\n width: '30%',\n },\n\n [theme.responsive.mediaQueries.xxl]: {\n width: defaultWidth,\n },\n });\n};\n\nexport const TableFilterInput: ForwardRefExoticComponent<\n PropsWithoutRef<TableFilterInputProps> & RefAttributes<AntDInput>\n // eslint-disable-next-line react-component-name/react-component-name -- TODO(FEINF-4716)\n> = forwardRef<AntDInput, TableFilterInputProps>(function SearchInput(\n {\n onSubmit,\n showSearchButton,\n className,\n containerProps,\n searchButtonProps,\n ignoreFilterMediaSizing = false,\n componentId,\n ...inputProps\n },\n ref,\n) {\n const { theme } = useDesignSystemTheme();\n const DEFAULT_WIDTH = 400;\n\n let component = (\n <Input\n prefix={<SearchIcon />}\n allowClear\n componentId={componentId}\n {...inputProps}\n className={className}\n ref={ref}\n />\n );\n\n if (showSearchButton) {\n component = (\n <Input.Group\n css={{\n display: 'flex',\n width: '100%',\n }}\n className={className}\n >\n <Input\n allowClear\n componentId={componentId}\n {...inputProps}\n ref={ref}\n css={{\n flex: 1,\n }}\n />\n <Button\n componentId={\n componentId\n ? `${componentId}.search_submit`\n : 'codegen_design-system_src_design-system_tableui_tablefilterinput.tsx_65'\n }\n htmlType=\"submit\"\n aria-label=\"Search\"\n {...searchButtonProps}\n >\n <SearchIcon />\n </Button>\n </Input.Group>\n );\n }\n\n return (\n <div\n style={{\n height: theme.general.heightSm,\n }}\n css={ignoreFilterMediaSizing ? {} : getTableFilterInputStyles(theme, DEFAULT_WIDTH)}\n {...containerProps}\n >\n {onSubmit ? (\n <form\n onSubmit={(e) => {\n e.preventDefault();\n onSubmit();\n }}\n >\n {component}\n </form>\n ) : (\n component\n )}\n </div>\n );\n});\n","import { css } from '@emotion/react';\nimport type { CSSProperties, ForwardRefExoticComponent, PropsWithoutRef, RefAttributes } from 'react';\nimport React, { forwardRef } from 'react';\n\nimport { useDesignSystemTheme } from '../Hooks';\nimport type { HTMLDataAttributes } from '../types';\n\nexport interface TableFilterLayoutProps extends HTMLDataAttributes, React.HTMLAttributes<HTMLDivElement> {\n /** Style property */\n style?: CSSProperties;\n /** Should contain the filter controls to be rendered in this layout. */\n children?: React.ReactNode;\n /** Class name property */\n className?: string;\n /** A container to hold action `Button` elements. */\n actions?: React.ReactNode;\n}\n\nexport const TableFilterLayout: ForwardRefExoticComponent<\n PropsWithoutRef<TableFilterLayoutProps> & RefAttributes<HTMLDivElement>\n> = forwardRef<HTMLDivElement, TableFilterLayoutProps>(function TableFilterLayout(\n { children, style, className, actions, ...rest },\n ref,\n) {\n const { theme } = useDesignSystemTheme();\n\n const tableFilterLayoutStyles = {\n layout: css({\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'space-between',\n marginBottom: 'var(--table-filter-layout-group-margin)',\n columnGap: 'var(--table-filter-layout-group-margin)',\n rowGap: 'var(--table-filter-layout-item-gap)',\n flexWrap: 'wrap',\n }),\n filters: css({\n display: 'flex',\n flexWrap: 'wrap',\n flexDirection: 'row',\n alignItems: 'center',\n gap: 'var(--table-filter-layout-item-gap)',\n marginRight: 'var(--table-filter-layout-group-margin)',\n flex: 1,\n }),\n filterActions: css({\n display: 'flex',\n flexWrap: 'wrap',\n gap: 'var(--table-filter-layout-item-gap)',\n alignSelf: 'flex-start',\n }),\n };\n\n return (\n <div\n {...rest}\n ref={ref}\n style={{\n ['--table-filter-layout-item-gap' as any]: `${theme.spacing.sm}px`,\n ['--table-filter-layout-group-margin' as any]: `${theme.spacing.md}px`,\n ...style,\n }}\n css={tableFilterLayoutStyles.layout}\n className={className}\n >\n <div css={tableFilterLayoutStyles.filters}>{children}</div>\n {actions && <div css={tableFilterLayoutStyles.filterActions}>{actions}</div>}\n </div>\n );\n});\n","import { useMergeRefs } from '@floating-ui/react';\nimport type { Column, ColumnSizingInstance } from '@tanstack/react-table';\nimport classnames from 'classnames';\nimport type { CSSProperties, ForwardRefExoticComponent, PropsWithoutRef, RefAttributes } from 'react';\nimport React, { useRef, forwardRef, useContext, useEffect, useMemo, useState, useCallback } from 'react';\n\nimport { TableContext } from './Table';\nimport { TableRowContext } from './TableRow';\nimport tableStyles, { repeatingElementsStyles, tableClassNames } from './tableStyles';\nimport { Button } from '../Button';\nimport {\n DesignSystemEventProviderAnalyticsEventTypes,\n DesignSystemEventProviderComponentTypes,\n useDesignSystemEventComponentCallbacks,\n} from '../DesignSystemEventProvider';\nimport { useDesignSystemTheme } from '../Hooks/useDesignSystemTheme';\nimport { SortAscendingIcon, SortDescendingIcon, SortUnsortedIcon } from '../Icon';\nimport MinusSquareIcon from '../Icon/__generated/icons/MinusSquareIcon';\nimport PlusSquareIcon from '../Icon/__generated/icons/PlusSquareIcon';\nimport { Popover } from '../Popover';\nimport type { TypographyTextProps } from '../Typography';\nimport { Typography } from '../Typography';\nimport type { AnalyticsEventProps, HTMLDataAttributes } from '../types';\nimport { safex } from '../utils/safex';\nimport { useNotifyOnFirstView } from '../utils/useNotifyOnFirstView';\n\ninterface TableHeaderResizeHandleProps extends HTMLDataAttributes {\n /** Style property */\n style?: CSSProperties;\n /** Pass a handler to be called on pointerDown */\n resizeHandler?: React.PointerEventHandler<HTMLDivElement>;\n /** Pass a handler to specify the width increase when the user clicks the increase button */\n increaseWidthHandler?: () => void;\n /** Pass a handler to specify the width decrease when the user clicks the decrease button */\n decreaseWidthHandler?: () => void;\n}\n\nconst TableHeaderResizeHandle = forwardRef<HTMLDivElement, TableHeaderResizeHandleProps>(\n function TableHeaderResizeHandle(\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore [FEINF-3177] TODO: fix to work with React 18 types\n { style, resizeHandler, increaseWidthHandler, decreaseWidthHandler, children, ...rest },\n ref,\n ) {\n const { isHeader } = useContext(TableRowContext);\n\n if (!isHeader) {\n throw new Error('`TableHeaderResizeHandle` must be used within a `TableRow` with `isHeader` set to true.');\n }\n\n const [isPopoverOpen, setIsPopoverOpen] = useState(false);\n const dragStartPosRef = useRef<{ x: number; y: number } | null>(null);\n const initialEventRef = useRef<React.PointerEvent<HTMLDivElement> | null>(null);\n const initialRenderRef = useRef(true);\n const isDragging = useRef(false);\n const MAX_DRAG_DISTANCE = 2;\n\n const { theme } = useDesignSystemTheme();\n\n const handlePointerDown = useCallback(\n (event: React.PointerEvent<HTMLDivElement>) => {\n if (!increaseWidthHandler || !decreaseWidthHandler) {\n resizeHandler?.(event);\n return;\n }\n if (isPopoverOpen && !initialRenderRef.current) return;\n else initialRenderRef.current = false;\n\n dragStartPosRef.current = { x: event.clientX, y: event.clientY };\n initialEventRef.current = event;\n isDragging.current = false;\n\n const handlePointerMove = (event: PointerEvent) => {\n if (dragStartPosRef.current) {\n const dx = event.clientX - dragStartPosRef.current.x;\n\n if (Math.abs(dx) > MAX_DRAG_DISTANCE && initialEventRef.current) {\n isDragging.current = true;\n resizeHandler?.(initialEventRef.current);\n document.removeEventListener('pointermove', handlePointerMove);\n }\n }\n };\n\n const handlePointerUp = () => {\n dragStartPosRef.current = null;\n document.removeEventListener('pointermove', handlePointerMove);\n document.removeEventListener('pointerup', handlePointerUp);\n };\n\n document.addEventListener('pointermove', handlePointerMove);\n document.addEventListener('pointerup', handlePointerUp);\n },\n [isPopoverOpen, resizeHandler, increaseWidthHandler, decreaseWidthHandler],\n );\n\n const handleClick = useCallback((event: React.MouseEvent<HTMLDivElement>) => {\n if (isDragging.current) {\n event.preventDefault();\n event.stopPropagation();\n isDragging.current = false;\n return;\n }\n }, []);\n\n const result = (\n <div\n {...rest}\n ref={ref}\n onPointerDown={handlePointerDown}\n onClick={handleClick}\n css={tableStyles.resizeHandleContainer}\n style={style}\n role=\"button\"\n aria-label=\"Resize Column\"\n >\n <div css={tableStyles.resizeHandle} />\n </div>\n );\n\n return increaseWidthHandler && decreaseWidthHandler ? (\n <Popover.Root\n componentId=\"codegen_design-system_src_design-system_tableui_tableheader.tsx_114\"\n onOpenChange={setIsPopoverOpen}\n >\n <Popover.Trigger asChild>{result}</Popover.Trigger>\n <Popover.Content\n side=\"top\"\n align=\"center\"\n sideOffset={0}\n minWidth={135}\n style={{ padding: `${theme.spacing.sm} ${theme.spacing.md} ${theme.spacing.md} ${theme.spacing.sm}` }}\n >\n <div style={{ display: 'flex', flexDirection: 'column', alignItems: 'center' }}>\n <Typography.Title style={{ marginBottom: 0, marginTop: 0 }}>Resize Column</Typography.Title>\n <div\n style={{\n display: 'flex',\n flexDirection: 'row',\n alignItems: 'center',\n }}\n >\n <Button\n onClick={() => {\n decreaseWidthHandler();\n }}\n size=\"small\"\n componentId=\"design_system.adjustable_width_header.decrease_width_button\"\n icon={<MinusSquareIcon />}\n style={{\n backgroundColor: theme.colors.actionTertiaryBackgroundHover,\n }}\n />\n <Button\n onClick={() => {\n increaseWidthHandler();\n }}\n size=\"small\"\n componentId=\"design_system.adjustable_width_header.increase_width_button\"\n icon={<PlusSquareIcon />}\n />\n </div>\n </div>\n <Popover.Arrow />\n </Popover.Content>\n </Popover.Root>\n ) : (\n result\n );\n },\n);\n\nexport interface TableHeaderProps\n extends\n HTMLDataAttributes,\n React.HTMLAttributes<HTMLDivElement>,\n AnalyticsEventProps<\n DesignSystemEventProviderAnalyticsEventTypes.OnValueChange | DesignSystemEventProviderAnalyticsEventTypes.OnView\n > {\n /** @deprecated Use `multiline` prop instead. This prop will be removed soon. */\n ellipsis?: boolean;\n /** Enables multiline wrapping */\n multiline?: boolean;\n /** Is this column sortable? */\n sortable?: boolean;\n /** The current sort direction for this column */\n sortDirection?: 'asc' | 'desc' | 'none';\n /** Callback for when the user requests to toggle `sortDirection` */\n onToggleSort?: (event: unknown) => void;\n /** Style property */\n style?: CSSProperties;\n /** Class name property */\n className?: string;\n /** Child nodes for the table header */\n children?: React.ReactNode | React.ReactNode[];\n /** Whether the table header should include a resize handler\n * @deprecated Provide `header`, `column`, and `setColumnSizing` props instead.\n */\n resizable?: boolean;\n /** Event handler to be passed down to <TableHeaderResizeHandle />\n * @deprecated Provide `header`, `column`, and `setColumnSizing` props instead.\n */\n resizeHandler?: React.PointerEventHandler<HTMLDivElement>;\n /** Whether the header is currently being resized */\n isResizing?: boolean;\n /** How to horizontally align the cell contents */\n align?: 'left' | 'center' | 'right';\n /** If the content of this header should be wrapped with Typography. Should only be set to false if\n * content is not a text (e.g. images) or you really need to render custom content. */\n wrapContent?: boolean;\n /** Column resize method */\n setColumnSizing?: ColumnSizingInstance['setColumnSizing'];\n /** Header metadata required for column resizing */\n header?: {\n getResizeHandler: () => React.PointerEventHandler<HTMLDivElement>;\n };\n /** Column metadata required for column resizing */\n column?: Pick<Column<any, any>, 'id' | 'getSize' | 'getCanResize'>;\n}\n\nexport const TableHeader: ForwardRefExoticComponent<PropsWithoutRef<TableHeaderProps> & RefAttributes<HTMLDivElement>> =\n forwardRef<HTMLDivElement, TableHeaderProps>(function TableHeader(\n {\n children,\n ellipsis = false,\n multiline = false,\n sortable,\n sortDirection,\n onToggleSort,\n style,\n className,\n isResizing = false,\n align = 'left',\n wrapContent = true,\n column,\n header,\n setColumnSizing,\n componentId,\n analyticsEvents,\n 'aria-label': ariaLabel,\n ...rest\n },\n ref,\n ) {\n const emitOnView = safex('databricks.fe.observability.defaultComponentView.tableHeader', false);\n // Pulling props from the column and header props with deprecated fallbacks.\n // Doing this to avoid breaking changes + have a cleaner mechanism for testing removal of deprecated props.\n const resizable = column?.getCanResize() || rest.resizable || false;\n const resizeHandler = header?.getResizeHandler() || rest.resizeHandler;\n const supportsColumnPopover = column && header && setColumnSizing;\n\n const { size, grid } = useContext(TableContext);\n const { isHeader } = useContext(TableRowContext);\n const [currentSortDirection, setCurrentSortDirection] = useState(sortDirection);\n\n const memoizedAnalyticsEvents = useMemo(\n () =>\n analyticsEvents ??\n (emitOnView\n ? [\n DesignSystemEventProviderAnalyticsEventTypes.OnValueChange,\n DesignSystemEventProviderAnalyticsEventTypes.OnView,\n ]\n : [DesignSystemEventProviderAnalyticsEventTypes.OnValueChange]),\n [analyticsEvents, emitOnView],\n );\n const eventContext = useDesignSystemEventComponentCallbacks({\n componentType: DesignSystemEventProviderComponentTypes.TableHeader,\n componentId,\n analyticsEvents: memoizedAnalyticsEvents,\n valueHasNoPii: true,\n });\n\n const { elementRef: tableHeaderRef } = useNotifyOnFirstView<HTMLDivElement>({\n onView: eventContext.onView,\n value: currentSortDirection,\n });\n\n const mergedRef = useMergeRefs<HTMLDivElement>([ref, tableHeaderRef]);\n\n if (!isHeader) {\n throw new Error('`TableHeader` a must be used within a `TableRow` with `isHeader` set to true.');\n }\n\n let sortIcon = <></>;\n // While most libaries use `asc` and `desc` for the sort value, the ARIA spec\n // uses `ascending` and `descending`.\n let ariaSort: React.AriaAttributes['aria-sort'];\n\n if (sortable) {\n if (sortDirection === 'asc') {\n sortIcon = <SortAscendingIcon />;\n ariaSort = 'ascending';\n } else if (sortDirection === 'desc') {\n sortIcon = <SortDescendingIcon />;\n ariaSort = 'descending';\n } else if (sortDirection === 'none') {\n sortIcon = <SortUnsortedIcon />;\n ariaSort = 'none';\n }\n }\n\n useEffect(() => {\n if (sortDirection !== currentSortDirection) {\n setCurrentSortDirection(sortDirection);\n eventContext.onValueChange(sortDirection);\n }\n }, [sortDirection, currentSortDirection, eventContext]);\n\n const sortIconOnLeft = align === 'right';\n\n let typographySize: TypographyTextProps['size'] = 'md';\n\n if (size === 'small') {\n typographySize = 'sm';\n }\n\n const content = wrapContent ? (\n <Typography.Text\n className=\"table-header-text\"\n ellipsis={!multiline}\n size={typographySize}\n title={(!multiline && typeof children === 'string' && children) || undefined}\n bold\n >\n {children}\n </Typography.Text>\n ) : (\n children\n );\n\n const getColumnResizeHandler = useCallback(\n (newSize: number) => () => {\n if (column && setColumnSizing) {\n setColumnSizing((old) => ({\n ...old,\n [column.id]: newSize,\n }));\n }\n },\n [column, setColumnSizing],\n );\n\n const increaseWidthHandler = useCallback(() => {\n if (column && setColumnSizing) {\n const currentSize = column.getSize();\n getColumnResizeHandler(currentSize + 10)();\n }\n }, [column, setColumnSizing, getColumnResizeHandler]);\n\n const decreaseWidthHandler = useCallback(() => {\n if (column && setColumnSizing) {\n const currentSize = column.getSize();\n getColumnResizeHandler(currentSize - 10)();\n }\n }, [column, setColumnSizing, getColumnResizeHandler]);\n\n const renderResizeHandle =\n resizable && resizeHandler ? (\n <TableHeaderResizeHandle\n style={{ height: size === 'default' ? '20px' : '16px' }}\n resizeHandler={resizeHandler}\n increaseWidthHandler={supportsColumnPopover ? increaseWidthHandler : undefined}\n decreaseWidthHandler={supportsColumnPopover ? decreaseWidthHandler : undefined}\n />\n ) : null;\n\n const isSortButtonVisible = sortable && !isResizing;\n\n return (\n <div\n {...rest}\n ref={mergedRef}\n // PE-259 Use more performance className for grid but keep css= for compatibility.\n css={!grid ? [repeatingElementsStyles.cell, repeatingElementsStyles.header] : undefined}\n className={classnames(\n grid && tableClassNames.cell,\n grid && tableClassNames.header,\n { 'table-header-isGrid': grid },\n className,\n )}\n role=\"columnheader\"\n aria-sort={(sortable && ariaSort) || undefined}\n style={{\n justifyContent: align,\n textAlign: align,\n ...style,\n }}\n aria-label={isSortButtonVisible ? undefined : ariaLabel}\n {...eventContext.dataComponentProps}\n >\n {isSortButtonVisible ? (\n <div\n css={[tableStyles.headerButtonTarget]}\n role=\"button\"\n tabIndex={0}\n onClick={onToggleSort}\n onKeyDown={(event) => {\n if (sortable && (event.key === 'Enter' || event.key === ' ')) {\n event.preventDefault();\n return onToggleSort?.(event);\n }\n }}\n aria-label={isSortButtonVisible ? ariaLabel : undefined}\n >\n {sortIconOnLeft ? (\n <span className=\"table-header-icon-container\" css={[tableStyles.sortHeaderIconOnLeft]}>\n {sortIcon}\n </span>\n ) : null}\n {content}\n {!sortIconOnLeft ? (\n <span className=\"table-header-icon-container\" css={[tableStyles.sortHeaderIconOnRight]}>\n {sortIcon}\n </span>\n ) : null}\n </div>\n ) : (\n content\n )}\n {renderResizeHandle}\n </div>\n );\n });\n","import React from 'react';\n\nimport { TableRowAction } from './TableRowAction';\nimport { visuallyHidden } from '../utils';\n\nexport const TableRowActionHeader = ({ children }: { children: React.ReactNode }): JSX.Element => {\n return (\n <TableRowAction>\n <span css={visuallyHidden}>{children}</span>\n </TableRowAction>\n );\n};\n","import type { SerializedStyles } from '@emotion/react';\nimport classnames from 'classnames';\nimport type { CSSProperties, ForwardRefExoticComponent, PropsWithoutRef, RefAttributes } from 'react';\nimport React, { forwardRef, useContext } from 'react';\n\nimport { TableContext } from './Table';\nimport { TableRowContext } from './TableRow';\nimport { hideIconButtonActionCellClassName } from './tableStyles';\nimport { useDesignSystemTheme } from '../Hooks';\nimport type { HTMLDataAttributes } from '../types';\n\nexport interface TableRowMultiActionProps extends HTMLDataAttributes, React.HTMLAttributes<HTMLDivElement> {\n /** Style property */\n style?: CSSProperties;\n css?: SerializedStyles;\n /** Child nodes for the table row. Should contain a single small-sized button. */\n children?: React.ReactNode;\n /** Class name property */\n className?: string;\n}\n\n/**\n * A component that renders a multi-action row in a table. Similar to TableRowAction, but with a gap between the actions.\n * TableRowMultiAction also allows for individual buttons to apply the `skipHideIconButtonClassName` classname and be\n * always-visible when necessary.\n *\n * Child buttons can also apply the `skipHideIconButtonClassName` classname and be always-visible when necessary.\n *\n * @param children - The child nodes for the table row. Should contain one or more small-sized buttons.\n * @param style - The style property.\n * @param className - The class name property.\n * @param css - The CSS property.\n * @param rest - The rest of the props.\n */\nexport const TableRowMultiAction: ForwardRefExoticComponent<\n PropsWithoutRef<TableRowMultiActionProps> & RefAttributes<HTMLDivElement>\n> = forwardRef<HTMLDivElement, TableRowMultiActionProps>(function TableRowMultiAction(\n { children, style, className, css: emotionCss, ...rest },\n ref,\n) {\n const { size } = useContext(TableContext);\n const { isHeader } = useContext(TableRowContext);\n const { theme } = useDesignSystemTheme();\n\n return (\n <div\n {...rest}\n ref={ref}\n role={isHeader ? 'columnheader' : 'cell'}\n style={{\n paddingTop: size === 'default' ? theme.spacing.xs : 0,\n paddingBottom: size === 'default' ? theme.spacing.xs : 0,\n paddingLeft: size === 'default' ? theme.spacing.xs : 0,\n paddingRight: size === 'default' ? theme.spacing.xs : 0,\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'flex-end',\n gap: theme.spacing.xs,\n ...style,\n }}\n css={emotionCss}\n className={classnames(className, !isHeader && hideIconButtonActionCellClassName)}\n >\n {children}\n </div>\n );\n});\n","import type { ForwardRefExoticComponent, PropsWithoutRef, RefAttributes } from 'react';\nimport { forwardRef, useContext } from 'react';\n\nimport { TableContext } from './Table';\nimport { TableRowContext } from './TableRow';\nimport tableStyles from './tableStyles';\nimport { Checkbox } from '../Checkbox';\nimport type { DesignSystemEventProviderAnalyticsEventTypes } from '../DesignSystemEventProvider';\nimport { useDesignSystemTheme } from '../Hooks';\nimport type { AnalyticsEventProps, HTMLDataAttributes } from '../types';\nimport { safex } from '../utils/safex';\n\ninterface TableRowSelectCellProps\n extends\n HTMLDataAttributes,\n React.HTMLAttributes<HTMLDivElement>,\n AnalyticsEventProps<DesignSystemEventProviderAnalyticsEventTypes.OnValueChange> {\n /** Called when the checkbox is clicked */\n onChange?: (event: unknown) => void;\n /** Whether the checkbox is checked */\n checked?: boolean;\n /** Whether the row is indeterminate. Should only be used in header rows. */\n indeterminate?: boolean;\n /** Don't render a checkbox; used for providing spacing in header if you don't want \"Select All\" functionality */\n noCheckbox?: boolean;\n /** Whether the checkbox is disabled */\n isDisabled?: boolean;\n checkboxLabel?: string;\n}\n\nexport const TableRowSelectCell: ForwardRefExoticComponent<\n PropsWithoutRef<TableRowSelectCellProps> & RefAttributes<HTMLDivElement>\n> = forwardRef<HTMLDivElement, TableRowSelectCellProps>(function TableRowSelectCell(\n {\n onChange,\n checked,\n indeterminate,\n noCheckbox,\n children,\n isDisabled,\n checkboxLabel,\n componentId,\n analyticsEvents,\n ...rest\n },\n ref,\n) {\n const { theme } = useDesignSystemTheme();\n const { isHeader } = useContext(TableRowContext);\n const { someRowsSelected } = useContext(TableContext);\n\n if (typeof someRowsSelected === 'undefined') {\n throw new Error(\n '`TableRowSelectCell` cannot be used unless `someRowsSelected` has been provided to the `Table` component, see documentation.',\n );\n }\n\n if (!isHeader && indeterminate) {\n throw new Error('`TableRowSelectCell` cannot be used with `indeterminate` in a non-header row.');\n }\n\n // The native <input> Checkbox needs a DEFINED value to stay controlled — passing `undefined`\n // (what `checked || (indeterminate && null)` yields when `checked` is false) leaves it\n // uncontrolled and it retains clicked state across re-renders. The AntD variant coerced\n // `undefined` to `false`, so scope the coercion to the native path only and keep the exact\n // legacy expression for AntD to avoid flipping AntD rows from uncontrolled to controlled.\n const useNativeCheckbox = safex('databricks.fe.designsystem.useNativeCheckbox', false);\n const nativeIsChecked = indeterminate ? null : Boolean(checked);\n const isChecked = useNativeCheckbox ? nativeIsChecked : checked || (indeterminate && null);\n\n return (\n <div\n {...rest}\n ref={ref}\n css={tableStyles.checkboxCell}\n style={{\n ['--row-checkbox-opacity' as any]: someRowsSelected ? 1 : 0,\n zIndex: theme.options.zIndexBase,\n }}\n role={isHeader ? 'columnheader' : 'cell'}\n // TODO: Ideally we shouldn't need to specify this `className`, but it allows for row-hovering to reveal\n // the checkbox in `TableRow`'s CSS without extra JS pointerin/out events.\n className=\"table-row-select-cell\"\n >\n {!noCheckbox && (\n <Checkbox\n componentId={componentId}\n analyticsEvents={analyticsEvents}\n isChecked={isChecked}\n onChange={(_checked, event) => onChange?.(event.nativeEvent)}\n isDisabled={isDisabled}\n aria-label={checkboxLabel}\n />\n )}\n </div>\n );\n});\n","import { useCallback, useReducer } from 'react';\n\nimport type { TreeGridInitialState, TreeGridRowId, TreeGridState } from './types';\n\ntype TreeGridAction =\n | { type: 'TOGGLE_ROW_EXPANDED'; rowId: string | number }\n | { type: 'SET_ACTIVE_ROW_ID'; rowId: TreeGridRowId | null };\n\ntype InternalTreeGridState = Pick<TreeGridState, 'expandedRows' | 'activeRowId'>;\n\nfunction treeGridReducer(state: InternalTreeGridState, action: TreeGridAction): InternalTreeGridState {\n switch (action.type) {\n case 'TOGGLE_ROW_EXPANDED':\n return {\n ...state,\n expandedRows: { ...state.expandedRows, [action.rowId]: !state.expandedRows[action.rowId] },\n };\n case 'SET_ACTIVE_ROW_ID':\n return { ...state, activeRowId: action.rowId };\n default:\n return state;\n }\n}\n\nexport interface UseDefaultTreeGridStateOptions {\n initialState?: TreeGridInitialState;\n}\n\nexport function useDefaultTreeGridState({\n initialState = { expandedRows: {} },\n}: UseDefaultTreeGridStateOptions): TreeGridState {\n const [state, dispatch] = useReducer(treeGridReducer, { ...initialState, activeRowId: null });\n\n const toggleRowExpanded = useCallback((rowId: string | number) => {\n dispatch({ type: 'TOGGLE_ROW_EXPANDED', rowId });\n }, []);\n\n const setActiveRowId = useCallback((rowId: TreeGridRowId | null) => {\n dispatch({ type: 'SET_ACTIVE_ROW_ID', rowId });\n }, []);\n\n return {\n ...state,\n toggleRowExpanded,\n setActiveRowId,\n };\n}\n","import React, { useCallback, useRef, useMemo } from 'react';\n\nimport type {\n TreeGridRow,\n TreeGridRowId,\n TreeGridState,\n TreeGridColumn,\n TreeGridRenderCellArgs,\n TreeGridRenderRowArgs,\n TreeGridRenderTableArgs,\n TreeGridRenderHeaderArgs,\n TreeGridInitialState,\n} from './types';\nimport { useDefaultTreeGridState } from './useDefaultTreeGridState';\n\nexport { useDefaultTreeGridState };\n\ninterface TreeGridRowWithInternalMetadata extends TreeGridRow {\n /** The depth of the row */\n depth: number;\n /** The parent row's id */\n parentId: TreeGridRowId | null;\n}\n\nexport interface TreeGridProps {\n /** The data to be displayed in the grid */\n data: TreeGridRow[];\n /** The columns to be displayed in the grid */\n columns: TreeGridColumn[];\n /** Function to render the cell content */\n renderCell: (args: TreeGridRenderCellArgs) => React.ReactElement;\n /** Optional function to render the row */\n renderRow?: (args: TreeGridRenderRowArgs) => React.ReactElement | null;\n /** Optional function to render the entire table */\n renderTable?: (args: TreeGridRenderTableArgs) => React.ReactElement;\n /** Optional function to render the header */\n renderHeader?: (args: TreeGridRenderHeaderArgs) => React.ReactElement;\n /** Callback function when a row is selected via the keyboard */\n onRowKeyboardSelect?: (rowId: string | number) => void;\n /** Callback function when a cell is selected via the keyboard */\n onCellKeyboardSelect?: (rowId: string | number, columnKey: string) => void;\n /** Whether to include a header in the grid */\n includeHeader?: boolean;\n /**\n * Configures state management for the TreeGrid.\n *\n * When no `state` is provided or when `initialState` is set, the state will be managed within\n * the TreeGrid. Otherwise, the given custom state implementation is used.\n */\n state?: { initialState: TreeGridInitialState } | TreeGridState;\n}\n\nconst flattenData = (\n data: TreeGridRow[],\n expandedRows: Record<string | number, boolean>,\n depth = 0,\n parentId: string | number | null = null,\n): TreeGridRowWithInternalMetadata[] => {\n return data.reduce((acc: TreeGridRowWithInternalMetadata[], node) => {\n acc.push({ ...node, depth, parentId });\n if (node.children && expandedRows[node.id]) {\n acc.push(...flattenData(node.children, expandedRows, depth + 1, node.id));\n }\n return acc;\n }, []);\n};\n\nconst findFocusableElementForCellIndex = (row: HTMLTableRowElement, cellIndex: number): HTMLElement | null => {\n const cell = row.cells[cellIndex] as HTMLTableCellElement;\n return cell?.querySelector<HTMLElement>('[tabindex], button, a, input, select, textarea') || null;\n};\n\nconst findNextFocusableCellIndexInRow = (\n row: HTMLTableRowElement,\n columns: TreeGridColumn[],\n startIndex: number,\n direction: 'next' | 'previous',\n) => {\n const cells = Array.from(row.cells);\n const increment = direction === 'next' ? 1 : -1;\n const limit = direction === 'next' ? cells.length : -1;\n\n for (let i = startIndex + increment; i !== limit; i += increment) {\n const cell = cells[i];\n const column = columns[i];\n const focusableElement = findFocusableElementForCellIndex(row, i);\n const cellContent = cell?.textContent?.trim();\n\n if (focusableElement || (!column.contentFocusable && cellContent)) {\n return i;\n }\n }\n return -1;\n};\n\nexport const TreeGrid: React.FC<React.PropsWithChildren<TreeGridProps>> = ({\n data,\n columns,\n renderCell,\n renderRow,\n renderTable,\n renderHeader,\n onRowKeyboardSelect,\n onCellKeyboardSelect,\n includeHeader = false,\n state: providedState,\n}) => {\n const defaultState = useDefaultTreeGridState({\n initialState: providedState && 'initialState' in providedState ? providedState.initialState : undefined,\n });\n const { expandedRows, activeRowId, toggleRowExpanded, setActiveRowId } =\n providedState && !('initialState' in providedState) ? providedState : defaultState;\n\n const gridRef = useRef<HTMLTableElement>(null);\n\n const flattenedData = useMemo(() => flattenData(data, expandedRows), [data, expandedRows]);\n\n const focusRow = useCallback(\n ({ rowId, rowIndex }: { rowId: TreeGridRowId; rowIndex: number }) => {\n const row = gridRef.current?.querySelector(`tbody tr:nth-child(${rowIndex + 1})`) as HTMLTableRowElement;\n row?.focus();\n setActiveRowId(rowId);\n },\n [setActiveRowId],\n );\n\n const focusElement = useCallback(\n (element: HTMLElement | null, rowIndex: number) => {\n if (element) {\n element.focus();\n setActiveRowId(flattenedData[rowIndex].id);\n }\n },\n [setActiveRowId, flattenedData],\n );\n\n const handleKeyDown = useCallback(\n (event: React.KeyboardEvent<HTMLTableRowElement>, rowIndex: number) => {\n const { key } = event;\n let newRowIndex = rowIndex;\n const closestTd = (event.target as HTMLElement).closest('td') as HTMLTableCellElement;\n\n if (!gridRef.current || !gridRef.current.contains(document.activeElement)) {\n return;\n }\n\n const handleArrowVerticalNavigation = (direction: 'next' | 'previous') => {\n if (closestTd) {\n const currentCellIndex = closestTd.cellIndex;\n let targetRow = closestTd.closest('tr')?.[`${direction}ElementSibling`] as HTMLTableRowElement;\n\n const moveFocusToRow = (row: HTMLTableRowElement) => {\n const focusableElement = findFocusableElementForCellIndex(row, currentCellIndex);\n const cellContent = row.cells[currentCellIndex]?.textContent?.trim();\n if (focusableElement || (!columns[currentCellIndex].contentFocusable && cellContent)) {\n event.preventDefault();\n focusElement(\n focusableElement || row.cells[currentCellIndex],\n flattenedData.findIndex((r) => r.id === row.dataset['id']),\n );\n return true;\n }\n return false;\n };\n\n while (targetRow) {\n if (moveFocusToRow(targetRow)) return;\n targetRow = targetRow[`${direction}ElementSibling`] as HTMLTableRowElement;\n }\n } else if (document.activeElement instanceof HTMLTableRowElement) {\n if (direction === 'next') {\n newRowIndex = Math.min(rowIndex + 1, flattenedData.length - 1);\n } else {\n newRowIndex = Math.max(rowIndex - 1, 0);\n }\n }\n };\n\n const handleArrowHorizontalNavigation = (direction: 'next' | 'previous') => {\n if (closestTd) {\n const currentRow = closestTd.closest('tr') as HTMLTableRowElement;\n let targetCellIndex = closestTd.cellIndex;\n\n targetCellIndex = findNextFocusableCellIndexInRow(currentRow, columns, targetCellIndex, direction);\n\n if (targetCellIndex !== -1) {\n event.preventDefault();\n const targetCell = currentRow.cells[targetCellIndex];\n const focusableElement = findFocusableElementForCellIndex(currentRow, targetCellIndex);\n focusElement(focusableElement || targetCell, rowIndex);\n return;\n } else if (direction === 'previous' && targetCellIndex === -1) {\n // If we're at the leftmost cell, focus on the row\n event.preventDefault();\n currentRow.focus();\n return;\n }\n }\n\n if (document.activeElement instanceof HTMLTableRowElement) {\n const currentRow = document.activeElement as HTMLTableRowElement;\n if (direction === 'next') {\n if (flattenedData[rowIndex].children) {\n if (!expandedRows[flattenedData[rowIndex].id]) {\n toggleRowExpanded(flattenedData[rowIndex].id);\n } else {\n const firstCell = currentRow.cells[0];\n focusElement(firstCell, rowIndex);\n }\n } else {\n const firstFocusableCell = findNextFocusableCellIndexInRow(currentRow, columns, -1, 'next');\n if (firstFocusableCell !== -1) {\n focusElement(currentRow.cells[firstFocusableCell], rowIndex);\n }\n }\n } else {\n if (expandedRows[flattenedData[rowIndex].id]) {\n toggleRowExpanded(flattenedData[rowIndex].id);\n } else if (flattenedData[rowIndex].depth && flattenedData[rowIndex].depth > 0) {\n newRowIndex = flattenedData.findIndex((row) => row.id === flattenedData[rowIndex].parentId);\n }\n }\n return;\n }\n\n // If we're at the edge of the row, handle expanding/collapsing or moving to parent/child\n if (direction === 'next') {\n if (flattenedData[rowIndex].children && !expandedRows[flattenedData[rowIndex].id]) {\n toggleRowExpanded(flattenedData[rowIndex].id);\n }\n } else {\n if (expandedRows[flattenedData[rowIndex].id]) {\n toggleRowExpanded(flattenedData[rowIndex].id);\n } else if (flattenedData[rowIndex].depth && flattenedData[rowIndex].depth > 0) {\n newRowIndex = flattenedData.findIndex((row) => row.id === flattenedData[rowIndex].parentId);\n }\n }\n };\n\n const handleEnterKey = () => {\n if (closestTd) {\n onCellKeyboardSelect?.(flattenedData[rowIndex].id, columns[closestTd.cellIndex].id);\n } else if (document.activeElement instanceof HTMLTableRowElement) {\n onRowKeyboardSelect?.(flattenedData[rowIndex].id);\n }\n };\n\n switch (key) {\n case 'ArrowUp':\n handleArrowVerticalNavigation('previous');\n break;\n case 'ArrowDown':\n handleArrowVerticalNavigation('next');\n break;\n case 'ArrowLeft':\n handleArrowHorizontalNavigation('previous');\n break;\n case 'ArrowRight':\n handleArrowHorizontalNavigation('next');\n break;\n case 'Enter':\n handleEnterKey();\n break;\n default:\n return;\n }\n\n if (newRowIndex !== rowIndex) {\n event.preventDefault();\n focusRow({ rowId: flattenedData[newRowIndex].id, rowIndex: newRowIndex });\n }\n },\n [\n expandedRows,\n columns,\n flattenedData,\n toggleRowExpanded,\n onRowKeyboardSelect,\n onCellKeyboardSelect,\n focusRow,\n focusElement,\n ],\n );\n\n const defaultRenderRow = useCallback(\n ({ rowProps, children }: TreeGridRenderRowArgs) => <tr {...rowProps}>{children}</tr>,\n [],\n );\n\n const defaultRenderTable = useCallback(\n ({ tableProps, children }: TreeGridRenderTableArgs) => <table {...tableProps}>{children}</table>,\n [],\n );\n\n const defaultRenderHeader = useCallback(\n ({ columns, headerProps }: TreeGridRenderHeaderArgs) => (\n <thead {...headerProps}>\n <tr>\n {columns.map((column) => (\n <th key={column.id} role=\"columnheader\">\n {column.header}\n </th>\n ))}\n </tr>\n </thead>\n ),\n [],\n );\n\n const renderRowWrapper = useCallback(\n (row: TreeGridRowWithInternalMetadata, rowIndex: number) => {\n const isExpanded = expandedRows[row.id];\n const isKeyboardActive = row.id === (activeRowId ?? flattenedData[0].id);\n\n const rowProps: React.HTMLAttributes<HTMLTableRowElement> & { key: React.Key; [key: `data-${string}`]: any } = {\n key: row.id,\n 'data-id': row.id,\n role: 'row',\n 'aria-selected': false,\n 'aria-level': (row.depth || 0) + 1,\n 'aria-expanded': row.children ? (isExpanded ? 'true' : 'false') : undefined,\n tabIndex: isKeyboardActive ? 0 : -1,\n onKeyDown: (e) => handleKeyDown(e, rowIndex),\n };\n\n const children = columns.map((column, colIndex) => {\n const cellProps: React.TdHTMLAttributes<HTMLTableCellElement> & { key: string } = {\n key: `${row.id}-${column.id}`,\n role: column.isRowHeader ? 'rowheader' : 'gridcell',\n tabIndex: column.contentFocusable ? undefined : isKeyboardActive ? 0 : -1,\n };\n\n return renderCell({\n row,\n column,\n rowDepth: row.depth || 0,\n rowIndex,\n colIndex,\n rowIsKeyboardActive: isKeyboardActive,\n rowIsExpanded: isExpanded,\n toggleRowExpanded,\n cellProps,\n });\n });\n\n return (renderRow || defaultRenderRow)({\n row,\n rowIndex,\n isExpanded,\n isKeyboardActive,\n rowProps,\n children,\n });\n },\n [\n activeRowId,\n flattenedData,\n expandedRows,\n handleKeyDown,\n renderCell,\n renderRow,\n defaultRenderRow,\n toggleRowExpanded,\n columns,\n ],\n );\n\n return (renderTable || defaultRenderTable)({\n tableProps: { role: 'treegrid', ref: gridRef },\n children: (\n <>\n {includeHeader && (renderHeader || defaultRenderHeader)({ columns, headerProps: {} })}\n <tbody>{flattenedData.map((row, index) => renderRowWrapper(row, index))}</tbody>\n </>\n ),\n });\n};\n","import type { CSSObject } from '@emotion/react';\nimport { useComboBox } from '@react-aria/combobox';\nimport type { ForwardRefExoticComponent, RefAttributes } from 'react';\nimport { forwardRef, useCallback, useMemo, useRef } from 'react';\n\nimport type { ComboboxStateValue } from './hooks/useComboboxState';\nimport { TypeaheadComboboxV2ContextProvider } from './providers/TypeaheadComboboxContext';\nimport { DesignSystemEventProviderComponentTypes } from '../DesignSystemEventProvider';\nimport { useDesignSystemTheme } from '../Hooks';\nimport { useNotifyOnFirstView } from '../utils/useNotifyOnFirstView';\n\nconst ROOT_CSS: CSSObject = { display: 'inline-block', width: '100%', position: 'relative' };\n\nexport interface TypeaheadComboboxRootProps<T> extends React.HTMLAttributes<HTMLDivElement> {\n /** Result of `useComboboxState({...})`. */\n comboboxState: ComboboxStateValue<T>;\n 'aria-label'?: string;\n /**\n * When true (the default), Tab from the input moves DOM focus into the footer's first focusable\n * control (menu stays open), and Shift+Tab / Escape from the footer returns focus to the input.\n * Makes a real footer <button> keyboard/SR-reachable. A footer with no focusable control (e.g. a\n * text-only footer) is unaffected — Tab falls through to the normal commit-and-close. Set to false\n * only to opt a combobox out and keep the input as the sole tab stop.\n */\n footerFocusable?: boolean;\n children: React.ReactNode;\n}\n\n// `any` matches the original Root's pattern: ComboBoxState is invariant in T, so we can't widen\n// ComboboxStateValue<T> at this generic boundary. Typed consumer code still routes through\n// useComboboxState.\nexport const TypeaheadComboboxRoot: ForwardRefExoticComponent<\n TypeaheadComboboxRootProps<any> & RefAttributes<HTMLDivElement>\n> = forwardRef<HTMLDivElement, TypeaheadComboboxRootProps<any>>(function TypeaheadComboboxRoot(\n { comboboxState, children, footerFocusable = true, ...props },\n ref,\n) {\n const { classNamePrefix } = useDesignSystemTheme();\n\n const inputRef = useRef<HTMLInputElement | null>(null);\n const listBoxRef = useRef<HTMLUListElement>(null);\n const popoverRef = useRef<HTMLDivElement | null>(null);\n const buttonRef = useRef<HTMLButtonElement | null>(null);\n const triggerRef = useRef<HTMLDivElement | null>(null);\n const footerRef = useRef<HTMLDivElement | null>(null);\n\n const { state, itemsByKey, getKeyForItem, itemToString, removeByKey, clearSelection, onInputBlur } = comboboxState;\n\n const {\n inputProps: ariaInputProps,\n listBoxProps,\n buttonProps,\n } = useComboBox(\n {\n inputRef,\n listBoxRef,\n popoverRef,\n buttonRef,\n // Arrowing past the last option wraps to the first (and vice versa), matching the original\n // downshift TypeaheadCombobox, whose `useCombobox` defaults to `circularNavigation: true`.\n // react-aria's `useSelectableCollection` defaults `shouldFocusWrap` to false, so without this\n // keyboard focus stops dead at the list boundary.\n shouldFocusWrap: true,\n 'aria-label': props['aria-label'],\n },\n state,\n );\n\n // Compose the consumer's formOnBlur onto react-aria's own input onBlur (which drives the\n // commit-on-blur), rather than clobbering it. useComboBox owns the value re-sync; we only add\n // the form notification on a genuine blur.\n const inputProps = useMemo(\n () => ({\n ...ariaInputProps,\n onBlur: (e: React.FocusEvent<HTMLInputElement>) => {\n ariaInputProps.onBlur?.(e);\n // Only notify the form on a *real* blur — focus leaving the whole widget. Committing a\n // selection (and Tab-to-footer when footerFocusable) transiently blurs the input to a node\n // still inside the trigger/popover and refocuses; treating that as a blur would fire\n // formOnBlur mid-interaction, diverging from RHF touched/validation semantics. Skip when\n // focus lands on a node still inside the combobox.\n const next = e.relatedTarget;\n if (next instanceof Node && (triggerRef.current?.contains(next) || popoverRef.current?.contains(next))) {\n return;\n }\n onInputBlur();\n },\n }),\n [ariaInputProps, onInputBlur, triggerRef, popoverRef],\n );\n\n const { elementRef: viewRef } = useNotifyOnFirstView<HTMLDivElement>({\n onView: comboboxState.onView,\n value: comboboxState.firstOnViewValue,\n });\n\n const mergedRef = useCallback(\n (node: HTMLDivElement | null) => {\n if (typeof ref === 'function') ref(node);\n else if (ref) ref.current = node;\n viewRef.current = node;\n triggerRef.current = node;\n },\n [ref, viewRef],\n );\n\n const contextValue = useMemo(\n () => ({\n componentId: comboboxState.componentId,\n multiSelect: comboboxState.multiSelect,\n showAllOptionsOnOpen: comboboxState.showAllOptionsOnOpen,\n isInsideTypeaheadCombobox: true,\n comboBoxState: state,\n inputProps,\n listBoxProps,\n buttonProps,\n inputRef,\n listBoxRef,\n popoverRef,\n buttonRef,\n triggerRef,\n footerFocusable,\n footerRef,\n itemsByKey,\n getKeyForItem,\n itemToString,\n removeByKey,\n clearSelection,\n }),\n [\n comboboxState.componentId,\n comboboxState.multiSelect,\n comboboxState.showAllOptionsOnOpen,\n state,\n inputProps,\n listBoxProps,\n buttonProps,\n footerFocusable,\n itemsByKey,\n getKeyForItem,\n itemToString,\n removeByKey,\n clearSelection,\n ],\n );\n\n return (\n <TypeaheadComboboxV2ContextProvider value={contextValue}>\n <div\n className={`${classNamePrefix}-typeahead-combobox-react-aria`}\n css={ROOT_CSS}\n {...props}\n ref={mergedRef}\n data-component-type={DesignSystemEventProviderComponentTypes.TypeaheadCombobox}\n // oxlint-disable-next-line @databricks/no-dynamic-property-value -- Valid case, as combostate componentId is checked in the hook exempt:b9d30633-6d2c-4215-8451-f32826273087\n data-component-id={comboboxState.componentId}\n >\n {children}\n </div>\n </TypeaheadComboboxV2ContextProvider>\n );\n});\n","// PROTOTYPE helper (DUBOIS-455, \"Option A\"): move DOM focus between the combobox input and the\n// footer's focusable controls. Only used when `footerFocusable` is set on the Root.\n//\n// Backed by react-aria's `createFocusManager` rather than a hand-rolled `querySelector`. The manager\n// walks the footer with `getFocusableTreeWalker`, whose node filter runs through `isFocusable` — so\n// it skips `display:none` / `visibility:hidden` / ancestor-hidden / `inert` / closed-`<details>`\n// controls that a raw CSS selector would wrongly match (and then `.focus()` as a no-op, stranding\n// focus). It also gives ordered `focusNext` / `focusPrevious`, so a footer with more than one control\n// navigates correctly instead of always landing on the first one.\nimport { createFocusManager } from '@react-aria/focus';\n\n/**\n * Focus the first tabbable control in `container`. Returns true only if focus actually moved onto a\n * control inside `container` — react-aria skips non-visible/inert nodes and `.focus()` on them is a\n * no-op, so we confirm against the resulting element rather than assuming a query match succeeded.\n */\nexport function focusFirstFocusable(container: HTMLElement | null): boolean {\n if (!container) {\n return false;\n }\n const focused = createFocusManager({ current: container }).focusFirst({ tabbable: true });\n return focused != null && container.contains(focused);\n}\n\n/**\n * Step focus to the adjacent tabbable control within `container`, starting from the currently focused\n * element. Returns true if focus moved to another control in `container`; false when there is none in\n * that direction (Shift+Tab from the first control, or forward Tab from the last) — the caller's cue\n * to return focus to the input instead of letting it escape the popover.\n */\nexport function focusAdjacentFocusable(container: HTMLElement | null, direction: 'next' | 'previous'): boolean {\n if (!container) {\n return false;\n }\n const active = document.activeElement;\n if (!(active instanceof HTMLElement) || !container.contains(active)) {\n return false;\n }\n const manager = createFocusManager({ current: container });\n const focused =\n direction === 'next'\n ? manager.focusNext({ from: active, tabbable: true })\n : manager.focusPrevious({ from: active, tabbable: true });\n return focused != null && container.contains(focused);\n}\n","import { useCallback } from 'react';\n\nimport { focusAdjacentFocusable } from './hooks/footerFocus';\nimport { useTypeaheadComboboxV2Context } from './hooks/useTypeaheadComboboxContext';\nimport { useDesignSystemTheme } from '../Hooks';\nimport { getFooterStyles } from '../_shared_/Combobox';\n\nexport type TypeaheadComboboxFooterProps = React.HTMLAttributes<HTMLDivElement>;\n\n// Menu identifies the footer by component type (`child.type === TypeaheadComboboxFooter`), so no\n// marker prop is needed — `defaultProps` on a function component is removed in React 19.\nexport const TypeaheadComboboxFooter = ({\n children,\n onKeyDown,\n ...restProps\n}: TypeaheadComboboxFooterProps): JSX.Element => {\n const { theme } = useDesignSystemTheme();\n const { isInsideTypeaheadCombobox, footerFocusable, footerRef, inputRef, comboBoxState } =\n useTypeaheadComboboxV2Context();\n if (!isInsideTypeaheadCombobox) {\n throw new Error('`TypeaheadComboboxFooter` must be used within `TypeaheadComboboxMenu`');\n }\n\n // PROTOTYPE (DUBOIS-455, \"Option A\"): the return leg. When footerFocusable and focus is inside the\n // footer, Tab / Shift+Tab step between the footer's controls, and Escape (or stepping off either\n // end) sends DOM focus back to the input so the user can resume typing. The menu stays open on the\n // return leg — the Menu gates useOverlay's close-on-blur for focus moving to the input.\n const setFooterRef = useCallback(\n (node: HTMLDivElement | null) => {\n if (footerFocusable) {\n footerRef.current = node;\n }\n },\n [footerFocusable, footerRef],\n );\n\n const returnFocusToInput = (e: React.KeyboardEvent<HTMLDivElement>, close: boolean) => {\n e.preventDefault();\n e.stopPropagation();\n inputRef.current?.focus();\n if (close) {\n comboBoxState?.close();\n }\n };\n\n const handleKeyDown = (e: React.KeyboardEvent<HTMLDivElement>) => {\n onKeyDown?.(e);\n if (!footerFocusable) {\n return;\n }\n if (e.key === 'Escape') {\n returnFocusToInput(e, true);\n return;\n }\n if (e.key === 'Tab') {\n // Step to the adjacent footer control; if there is none in that direction (Shift+Tab from the\n // first control, forward Tab from the last), return to the input instead of letting focus\n // escape the popover. A single-control footer returns on the first Tab either way.\n const moved = focusAdjacentFocusable(footerRef.current, e.shiftKey ? 'previous' : 'next');\n if (moved) {\n e.preventDefault();\n e.stopPropagation();\n } else {\n returnFocusToInput(e, false);\n }\n }\n };\n\n return (\n <div {...restProps} ref={setFooterRef} onKeyDown={handleKeyDown} css={getFooterStyles(theme)}>\n {children}\n </div>\n );\n};\n","import type { SerializedStyles } from '@emotion/react';\nimport { css } from '@emotion/react';\nimport type { AriaListBoxOptions } from '@react-aria/listbox';\nimport { useListBox } from '@react-aria/listbox';\nimport { DismissButton, Overlay, useOverlay, useOverlayPosition } from '@react-aria/overlays';\nimport { mergeRefs } from '@react-aria/utils';\nimport type { ComboBoxState, SelectionMode } from '@react-stately/combobox';\nimport type {\n ForwardRefExoticComponent,\n HTMLAttributes,\n MutableRefObject,\n ReactNode,\n Ref,\n RefAttributes,\n RefObject,\n} from 'react';\nimport { Children, Fragment, forwardRef, isValidElement, useMemo } from 'react';\n\nimport { TypeaheadComboboxFooter } from './TypeaheadComboboxFooter';\nimport type { WrappedItem } from './hooks/useComboboxItems';\nimport { useTypeaheadComboboxV2Context } from './hooks/useTypeaheadComboboxContext';\nimport { useDesignSystemTheme } from '../Hooks';\nimport { useDesignSystemContext } from '../Hooks/useDesignSystemContext';\nimport { useRadixModalContext } from '../Modal';\nimport { EmptyResults, LoadingSpinner, getComboboxContentWrapperStyles } from '../_shared_/Combobox';\nimport { addDebugOutlineIfEnabled } from '../utils/debug';\nimport { useIsomorphicLayoutEffect } from '../utils/useIsomorphicLayoutEffect';\n\nexport interface TypeaheadComboboxMenuProps extends HTMLAttributes<HTMLUListElement> {\n loading?: boolean;\n emptyText?: string | ReactNode;\n width?: number | string;\n minWidth?: number | string;\n maxWidth?: number | string;\n minHeight?: number | string;\n maxHeight?: number | string;\n /** For react-virtual integration: pass `virtualizer.getTotalSize()` (or `totalSize`). */\n listWrapperHeight?: number;\n /** For react-virtual integration: ref to the scrollable parent (the listbox `<ul>`). Merged with the listbox ref. */\n virtualizerRef?: Ref<HTMLUListElement>;\n children?: ReactNode;\n matchTriggerWidth?: boolean;\n /** Gap in px between the trigger and the menu. */\n offset?: number;\n}\n\nconst MENU_STYLES: SerializedStyles = css({\n padding: 0,\n margin: 0,\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'flex-start',\n listStyle: 'none',\n outline: 'none',\n});\n\nexport const TypeaheadComboboxMenu: ForwardRefExoticComponent<\n TypeaheadComboboxMenuProps & RefAttributes<HTMLElement | null>\n> = forwardRef<HTMLElement | null, TypeaheadComboboxMenuProps>(function TypeaheadComboboxMenu(props, _ref) {\n const ctx = useTypeaheadComboboxV2Context();\n if (!ctx.isInsideTypeaheadCombobox) {\n throw new Error('`TypeaheadComboboxMenu` must be used within `TypeaheadComboboxRoot`');\n }\n if (!ctx.comboBoxState || !ctx.comboBoxState.isOpen) return null;\n\n return (\n <TypeaheadComboboxMenuContents\n {...props}\n state={ctx.comboBoxState}\n rawListBoxProps={ctx.listBoxProps}\n listBoxRef={ctx.listBoxRef}\n popoverRef={ctx.popoverRef}\n triggerRef={ctx.triggerRef}\n triggerWidth={ctx.triggerWidth}\n inputRef={ctx.inputRef}\n footerFocusable={ctx.footerFocusable}\n />\n );\n});\n\ninterface MenuContentsProps extends TypeaheadComboboxMenuProps {\n state: ComboBoxState<WrappedItem<unknown>, SelectionMode>;\n rawListBoxProps: AriaListBoxOptions<WrappedItem<unknown>>;\n listBoxRef: RefObject<HTMLUListElement>;\n popoverRef: MutableRefObject<HTMLDivElement | null>;\n triggerRef: MutableRefObject<HTMLDivElement | null>;\n triggerWidth: number | undefined;\n inputRef: MutableRefObject<HTMLInputElement | null>;\n footerFocusable: boolean;\n}\n\nconst TypeaheadComboboxMenuContents = ({\n loading,\n emptyText,\n width,\n minWidth = 240,\n maxWidth,\n minHeight,\n maxHeight,\n listWrapperHeight,\n virtualizerRef,\n children,\n matchTriggerWidth,\n offset = 4,\n state,\n rawListBoxProps,\n listBoxRef,\n popoverRef,\n triggerRef,\n triggerWidth,\n inputRef,\n footerFocusable,\n ...restProps\n}: MenuContentsProps) => {\n const { theme } = useDesignSystemTheme();\n const { getPopupContainer } = useDesignSystemContext();\n const { isInsideRadixModal } = useRadixModalContext();\n\n // useOverlayPosition already caps to the viewport; only forward numeric maxHeight to tighten further.\n const popoverMaxHeight = typeof maxHeight === 'number' ? maxHeight : undefined;\n\n // We compose useOverlay + useOverlayPosition directly instead of usePopover because usePopover\n // hard-wires `onClose` into the position hook (usePopover.ts), which makes react-aria close the\n // menu on *any* scroll whose target contains the trigger (useCloseOnScroll) — including page\n // scroll. The original floating-ui combobox repositioned on scroll instead of closing. Passing\n // `onClose: null` to useOverlayPosition preserves that reposition-don't-close behavior. Dismissal\n // still happens via blur/outside-click (useComboBox + shouldCloseOnBlur) and Escape (useOverlay).\n const { overlayProps: dismissProps } = useOverlay(\n {\n isOpen: state.isOpen,\n onClose: state.close,\n shouldCloseOnBlur: true,\n // Dismiss on outside press. With isDismissable:false, useOverlay wires NO interact-outside\n // handler and dismissal rides entirely on onBlurWithin — which deliberately does NOT close\n // when the blur's relatedTarget is null (focus falling to <body>). Clicking empty page area,\n // or clicking through the count-badge Tooltip that wraps the trigger, produces exactly that\n // null-relatedTarget blur, so the menu got stuck open (only the chevron, which toggles\n // directly, could close it). isDismissable:true activates useInteractOutside, which closes on\n // any outside pointer-down regardless of focus. This is independent of the scroll behavior:\n // useOverlayPosition still gets onClose:null below, so scrolling repositions, never closes.\n isDismissable: true,\n // PROTOTYPE (DUBOIS-455, \"Option A\"): when the footer is focusable, moving focus from the\n // footer BACK to the input leaves the popover and would trip useOverlay's close-on-blur —\n // closing the menu and wiping the typed filter. Gate that: don't treat the input as \"outside\".\n // (No-op when footerFocusable is false, so default behavior is unchanged.)\n ...(footerFocusable\n ? { shouldCloseOnInteractOutside: (element: Element) => !inputRef.current?.contains(element) }\n : {}),\n },\n popoverRef,\n );\n const { overlayProps: positionProps } = useOverlayPosition({\n targetRef: triggerRef,\n overlayRef: popoverRef,\n isOpen: state.isOpen,\n placement: 'bottom start',\n offset,\n maxHeight: popoverMaxHeight,\n onClose: null,\n });\n const popoverProps = { ...dismissProps, ...positionProps };\n\n // PROTOTYPE (DUBOIS-455, \"Option A\"): because the Menu runs with <Overlay disableFocusManagement>\n // (no FocusScope), react-aria does NOT restore focus on close. If the menu closes (Escape, select,\n // outside-click) while focus is on the footer, focus would strand on <body> — a WCAG 2.4.3 gap. On\n // unmount (menu close), if focus is still inside the popover, hand it back to the input.\n //\n // MUST be a layout effect, not a passive useEffect: a passive cleanup runs AFTER the commit that\n // detaches the popover, and removing the focused footer button drops focus to <body> first — so the\n // `popover.contains(document.activeElement)` guard would already be false and the handoff would never\n // fire. A layout-effect cleanup runs before detachment, while focus is still on the footer.\n useIsomorphicLayoutEffect(() => {\n if (!footerFocusable) {\n return;\n }\n // Capture both nodes here rather than reading .current in the cleanup: by teardown the refs may\n // already have been detached, so the cleanup would see null and skip the focus handoff.\n const popover = popoverRef.current;\n const input = inputRef.current;\n return () => {\n if (popover && popover.contains(document.activeElement)) {\n input?.focus();\n }\n };\n }, [footerFocusable, popoverRef, inputRef]);\n\n const isVirtualized = virtualizerRef !== undefined;\n const { listBoxProps } = useListBox({ ...rawListBoxProps, isVirtualized }, state, listBoxRef);\n\n // mergeRefs fans the listbox node out to both refs; memoized so it isn't detached/reattached\n // on every render.\n const setListBoxRef = useMemo(() => mergeRefs(listBoxRef, virtualizerRef), [listBoxRef, virtualizerRef]);\n\n const hasFragmentWrapper =\n children && !Array.isArray(children) && isValidElement(children) && children.type === Fragment;\n const filterableChildren = hasFragmentWrapper\n ? (children as React.ReactElement<{ children?: ReactNode }>).props.children\n : children;\n\n const [menuItemChildren, footer] = Children.toArray(filterableChildren).reduce<React.ReactNode[][]>(\n (acc, child) => {\n const isFooter = isValidElement(child) && child.type === TypeaheadComboboxFooter;\n if (isFooter) acc[1].push(child);\n else acc[0].push(child);\n return acc;\n },\n [[], []],\n );\n const hasResults = menuItemChildren.length > 0;\n\n const close = () => state.close();\n // Inside a focus-trapped Radix modal, portal the menu into the modal's Dialog.Content\n // (role=\"document\" — the FocusScope boundary) instead of document.body. Otherwise focusing a\n // footer control (footerFocusable) lands focus outside the trap and Radix immediately refocuses\n // the input. We target the role=\"document\" node specifically, NOT the inner .modal-content div\n // (which is centered with a `transform`, and a transformed ancestor would become the containing\n // block for the menu's position: fixed and clip it). triggerRef sits inside the modal body, so\n // closest() resolves the content node once the trigger is mounted (always true when the menu is open).\n const modalContentNode =\n isInsideRadixModal && triggerRef.current ? triggerRef.current.closest<HTMLElement>('[role=\"document\"]') : null;\n const portalContainer = modalContentNode ?? (getPopupContainer ? getPopupContainer() : undefined);\n\n return (\n // disableFocusManagement: the combobox input owns focus throughout (options are virtually\n // focused via aria-activedescendant), so the Overlay's default FocusScope must not move or\n // restore focus into the popover.\n <Overlay portalContainer={portalContainer} disableFocusManagement>\n <div\n ref={popoverRef}\n {...popoverProps}\n // Chrome (border, background, radius, shadow) + sizing live on the popover container so they\n // wrap the option list AND the footer/spinner. `overflow: hidden` + a flex column make the\n // <ul> the only scroll area, so the footer stays pinned below it inside the same container.\n css={[\n getComboboxContentWrapperStyles(theme, { maxHeight, maxWidth, minHeight, minWidth, width }),\n { display: 'flex', flexDirection: 'column', overflow: 'hidden' },\n ]}\n style={{\n ...popoverProps.style,\n // react-aria hard-codes zIndex: 100000 on the overlay, which sits *above* Du Bois\n // tooltips (zIndexBase + 70) — burying both the multi-select tooltip and in-menu\n // InfoTooltips. Bring the menu into the Du Bois band (matching Popover, zIndexBase + 30):\n // still above modals (zIndexBase) and page content, but below tooltips as designed.\n zIndex: theme.options.zIndexBase + 30,\n ...(matchTriggerWidth && triggerWidth ? { width: triggerWidth } : {}),\n }}\n >\n <DismissButton onDismiss={close} />\n {/* Progress lives outside the listbox: a `role=\"listbox\"` element must not contain a\n progressbar. */}\n {loading && <LoadingSpinner aria-label=\"Loading\" alt=\"Loading spinner\" />}\n <ul\n {...addDebugOutlineIfEnabled()}\n aria-busy={loading}\n {...listBoxProps}\n ref={setListBoxRef}\n // Inner scroll area only — chrome/sizing moved to the container above. `position: relative`\n // makes the <ul> the containing block for the absolutely-positioned virtualized rows AND\n // the offsetParent that useScrollOptionIntoView's offsetTop/scrollTop math depends on —\n // both break together if it is removed. MENU_STYLES keeps `padding: 0`: the virtual rows'\n // translateY offsets are measured from the <ul>'s padding-box origin, so adding padding\n // here would shift every row.\n css={[\n MENU_STYLES,\n { position: 'relative', flex: '1 1 auto', minHeight: 0, overflowY: 'auto', width: '100%' },\n ]}\n {...restProps}\n >\n {!loading &&\n (hasResults ? (\n <>\n {/* Options render as direct children of the listbox (no wrapper element), so each\n `<li role=\"option\">` is a valid required-owned child of `role=\"listbox\"`. In\n virtualized mode the rows are absolutely positioned (via the consumer's per-item\n style) and this presentational spacer provides the full scroll height. */}\n {menuItemChildren}\n {listWrapperHeight ? (\n // role=\"none\" removes this spacer from the accessibility tree so the listbox still\n // owns only options. Keep it attribute-free: do NOT add any aria-* attribute, no id\n // (especially one targeted by aria-activedescendant), no tabindex, and keep it\n // non-focusable — per WAI-ARIA 1.2 §5.4, any of those makes the browser ignore\n // role=\"none\" and expose this node as a spurious owned child of the listbox.\n // flexShrink: 0 stops the flex column from compressing the scroll-height carrier.\n <li role=\"none\" style={{ height: listWrapperHeight, flexShrink: 0 }} />\n ) : null}\n </>\n ) : (\n <EmptyResults emptyText={emptyText} />\n ))}\n </ul>\n {/* Footer lives outside the listbox (it is not an option) and stays pinned below the\n scrollable option list. */}\n {!loading && footer}\n <DismissButton onDismiss={close} />\n </div>\n </Overlay>\n );\n};\n","import { useOption } from '@react-aria/listbox';\nimport { forwardRef, useCallback, useRef } from 'react';\n\nimport { getMenuItemStyles, type TypeaheadComboboxMenuItemProps } from './TypeaheadComboboxMenuItem';\nimport { useScrollOptionIntoView } from './hooks/useScrollOptionIntoView';\nimport { useTypeaheadComboboxV2Context } from './hooks/useTypeaheadComboboxContext';\nimport { Checkbox } from '../Checkbox';\nimport { useDesignSystemTheme } from '../Hooks';\nimport { InfoTooltip } from '../Tooltip';\nimport {\n HintRow,\n getCheckboxStyles,\n getComboboxOptionItemWrapperStyles,\n getInfoIconStyles,\n} from '../_shared_/Combobox';\n\nexport interface TypeaheadComboboxCheckboxItemProps<T> extends TypeaheadComboboxMenuItemProps<T> {\n /** Custom equality check for \"is this item in selectedItems\"; falls back to context key lookup. */\n selectedMatcher?: (a: T, b: T) => boolean;\n /** Required for `selectedMatcher` to function — kept for API parity with the original. */\n selectedItems?: T[];\n}\n\nconst TypeaheadComboboxCheckboxItemInner = <T,>(\n {\n item,\n selectedItems,\n selectedMatcher,\n textOverflowMode = 'multiline',\n isDisabled,\n disabledReason,\n hintContent,\n children,\n ...restProps\n }: TypeaheadComboboxCheckboxItemProps<T>,\n forwardedRef: React.ForwardedRef<HTMLLIElement>,\n) => {\n const ctx = useTypeaheadComboboxV2Context();\n if (!ctx.isInsideTypeaheadCombobox || !ctx.comboBoxState) {\n throw new Error('`TypeaheadComboboxCheckboxItem` must be used within an open `TypeaheadComboboxRoot`');\n }\n const { comboBoxState: state, getKeyForItem } = ctx;\n const { theme } = useDesignSystemTheme();\n const itemRef = useRef<HTMLLIElement | null>(null);\n\n const setRef = useCallback(\n (node: HTMLLIElement | null) => {\n itemRef.current = node;\n if (typeof forwardedRef === 'function') forwardedRef(node);\n else if (forwardedRef) forwardedRef.current = node;\n },\n [forwardedRef],\n );\n\n const key = getKeyForItem(item);\n const { optionProps, isFocused } = useOption(\n { key, 'aria-label': typeof children === 'string' ? children : undefined },\n state,\n itemRef,\n );\n\n const isSelected =\n selectedMatcher && selectedItems\n ? selectedItems.some((selectedItem) => selectedMatcher(selectedItem, item))\n : state.selectionManager.isSelected(key);\n\n useScrollOptionIntoView(itemRef, isFocused, state.isOpen);\n\n return (\n <li\n {...optionProps}\n ref={setRef}\n css={[getComboboxOptionItemWrapperStyles(theme), getMenuItemStyles(theme, isFocused, isDisabled)]}\n {...restProps}\n >\n <Checkbox\n componentId=\"design_system.typeahead_combobox_v2.checkbox_item\"\n disabled={isDisabled}\n isChecked={isSelected}\n css={getCheckboxStyles(theme, textOverflowMode)}\n tabIndex={-1}\n onClick={(e) => e.stopPropagation()}\n >\n <label>\n {isDisabled && disabledReason ? (\n <div css={{ display: 'flex' }}>\n <div>{children}</div>\n <div css={getInfoIconStyles(theme)}>\n <InfoTooltip\n componentId=\"typeahead-combobox-react-aria-checkbox-item-disabled-reason-info-tooltip\"\n content={disabledReason}\n />\n </div>\n </div>\n ) : (\n children\n )}\n <HintRow disabled={isDisabled}>{hintContent}</HintRow>\n </label>\n </Checkbox>\n </li>\n );\n};\n\nexport const TypeaheadComboboxCheckboxItem = forwardRef(TypeaheadComboboxCheckboxItemInner) as <T>(\n props: TypeaheadComboboxCheckboxItemProps<T> & { ref?: React.Ref<HTMLLIElement> },\n) => JSX.Element;\n","import type { SerializedStyles } from '@emotion/react';\nimport { css } from '@emotion/react';\nimport { useButton } from '@react-aria/button';\n\nimport { useTypeaheadComboboxV2Context } from './hooks/useTypeaheadComboboxContext';\nimport type { Theme } from '../../theme';\nimport { useDesignSystemTheme } from '../Hooks';\nimport { ChevronDownIcon } from '../Icon';\n\nexport interface TypeaheadComboboxToggleButtonProps {\n disabled?: boolean;\n}\n\nconst getToggleButtonStyles = (theme: Theme, disabled?: boolean): SerializedStyles =>\n css({\n cursor: 'pointer',\n userSelect: 'none',\n color: theme.colors.textSecondary,\n backgroundColor: 'transparent',\n border: 'none',\n padding: 0,\n marginLeft: theme.spacing.xs,\n height: 16,\n width: 16,\n ...(disabled && {\n pointerEvents: 'none',\n color: theme.colors.actionDisabledText,\n }),\n });\n\nexport const TypeaheadComboboxToggleButton = ({ disabled }: TypeaheadComboboxToggleButtonProps): JSX.Element => {\n const { theme } = useDesignSystemTheme();\n const { buttonProps: ariaButtonProps, buttonRef } = useTypeaheadComboboxV2Context();\n const { buttonProps } = useButton({ ...ariaButtonProps, isDisabled: disabled }, buttonRef);\n\n return (\n <button\n type=\"button\"\n aria-label=\"toggle menu\"\n ref={(el) => {\n buttonRef.current = el;\n }}\n css={getToggleButtonStyles(theme, disabled)}\n {...buttonProps}\n >\n <ChevronDownIcon />\n </button>\n );\n};\n","import { TypeaheadComboboxToggleButton } from './TypeaheadComboboxToggleButton';\nimport { ClearSelectionButton } from '../_shared_/Combobox/ClearSelectionButton';\nimport { LoadingSpinner } from '../_shared_/Combobox/LoadingSpinner';\n\nexport interface TypeaheadComboboxControlsProps {\n showClearSelectionButton?: boolean;\n showComboboxToggleButton?: boolean;\n handleClear?: () => void;\n disabled?: boolean;\n loading?: boolean;\n /** When true, renders as an inline flex container for use inside AntD's suffix slot. */\n inline?: boolean;\n className?: string;\n}\n\nexport const TypeaheadComboboxControls = ({\n showClearSelectionButton,\n showComboboxToggleButton = true,\n handleClear,\n disabled,\n loading = false,\n inline = false,\n className,\n}: TypeaheadComboboxControlsProps): JSX.Element => {\n return (\n <div\n className={className}\n css={\n inline\n ? { display: 'flex', alignItems: 'center', cursor: disabled ? 'not-allowed' : undefined }\n : { height: 16, zIndex: 1, cursor: disabled ? 'not-allowed' : undefined }\n }\n >\n {showClearSelectionButton && (\n <ClearSelectionButton onClick={handleClear} css={{ pointerEvents: 'all', verticalAlign: 'text-top' }} />\n )}\n {loading ? <LoadingSpinner /> : showComboboxToggleButton && <TypeaheadComboboxToggleButton disabled={disabled} />}\n </div>\n );\n};\n","import type { SerializedStyles } from '@emotion/react';\nimport { css } from '@emotion/react';\nimport { mergeProps } from '@react-aria/utils';\nimport type { ForwardRefExoticComponent, RefAttributes } from 'react';\nimport { forwardRef, useEffect } from 'react';\n\nimport { TypeaheadComboboxControls } from './TypeaheadComboboxControls';\nimport { focusFirstFocusable } from './hooks/footerFocus';\nimport { useTypeaheadComboboxV2Context } from './hooks/useTypeaheadComboboxContext';\nimport type { Theme } from '../../theme';\nimport { useDesignSystemTheme } from '../Hooks';\nimport type { InputProps } from '../Input';\nimport { Input } from '../Input';\nimport { addDebugOutlineIfEnabled } from '../utils/debug';\n\nexport interface TypeaheadComboboxInputProps extends Omit<InputProps, 'componentId' | 'analyticsEvents'> {\n allowClear?: boolean;\n showComboboxToggleButton?: boolean;\n /** When true, replaces the dropdown toggle button with a spinner. */\n loading?: boolean;\n}\n\nconst getInputStyles = (theme: Theme): SerializedStyles =>\n css({\n width: '100%',\n minWidth: 72,\n textOverflow: 'ellipsis',\n borderRadius: theme.borders.borderRadiusSm,\n borderColor: theme.colors.actionDefaultBorderDefault,\n '&:disabled': {\n borderColor: theme.colors.actionDisabledBorder,\n backgroundColor: theme.colors.actionDisabledBackground,\n color: theme.colors.actionDisabledText,\n },\n '&:not(:disabled)': { backgroundColor: 'transparent' },\n });\n\nexport const TypeaheadComboboxInput: ForwardRefExoticComponent<\n TypeaheadComboboxInputProps & RefAttributes<HTMLInputElement | null>\n> = forwardRef<HTMLInputElement | null, TypeaheadComboboxInputProps>(function TypeaheadComboboxInput(\n { allowClear = true, showComboboxToggleButton = true, onClick, size, loading = false, suffix, ...restProps },\n ref,\n) {\n const ctx = useTypeaheadComboboxV2Context();\n if (!ctx.isInsideTypeaheadCombobox) {\n throw new Error('`TypeaheadComboboxInput` must be used within `TypeaheadComboboxRoot`');\n }\n\n const {\n inputProps,\n inputRef,\n comboBoxState: state,\n setTriggerWidth,\n triggerRef,\n componentId,\n clearSelection,\n footerFocusable,\n footerRef,\n showAllOptionsOnOpen,\n } = ctx;\n const { theme } = useDesignSystemTheme();\n\n // Measure trigger so `matchTriggerWidth` on Menu can size to it. Must be a passive effect, not\n // useLayoutEffect: triggerRef points at the Root <div> (an ancestor), whose ref is attached\n // only after this child's layout effects run — reading it in useLayoutEffect sees null and\n // never sets triggerWidth (the menu then falls back to its min width).\n useEffect(() => {\n const node = triggerRef.current;\n if (!node) return;\n const width = node.getBoundingClientRect().width;\n setTriggerWidth(width);\n }, [triggerRef, setTriggerWidth]);\n\n const handleClear = () => {\n // clearSelection() already notifies the form via the hook-level formOnChange(null).\n clearSelection();\n };\n\n const handleClick = (e: React.MouseEvent<HTMLInputElement, MouseEvent>) => {\n onClick?.(e);\n // Open-only: toggling on every click would flicker on repeat clicks. Toggle button + outside-click close.\n // showAllOptionsOnOpen: open via the 'manual' trigger so react-aria shows all options; typing re-filters.\n if (state && !state.isOpen) state.open(null, showAllOptionsOnOpen ? 'manual' : undefined);\n };\n\n // PROTOTYPE (DUBOIS-455, \"Option A\"): when footerFocusable, forward-Tab moves DOM focus into the\n // footer instead of committing. Must run in the CAPTURE phase — useComboBox binds Tab to\n // commit()->closeMenu() in the bubble phase, and that would close the menu (unmounting the footer)\n // before our handler ran. stopPropagation prevents react-aria's bubble handler from also firing;\n // preventDefault stops the browser's native tab. Shift+Tab is left alone (handled in the footer).\n //\n // react-aria coupling (RE-VERIFY ON UPGRADE): this works only because react-aria exposes its Tab\n // handler as a React `onKeyDown` prop on this same input (useComboBox inputProps, bubble phase),\n // which a capture-phase handler preempts and stopPropagation() can suppress. If a future react-aria\n // version moved that handling to a native/document listener, stopPropagation() would no longer stop\n // it and Tab would close the menu again. react-aria is version-pinned in this repo, so an upgrade\n // must re-verify this — the \"Tab moves focus to the footer, menu stays open\" regression test in\n // tests/TypeaheadComboboxV2FooterFocus.test.tsx guards it.\n const handleKeyDownCapture = (e: React.KeyboardEvent<HTMLInputElement>) => {\n if (!footerFocusable || e.key !== 'Tab' || e.shiftKey || !state?.isOpen) {\n return;\n }\n const moved = focusFirstFocusable(footerRef.current);\n if (moved) {\n e.preventDefault();\n e.stopPropagation();\n // Clear virtual focus so the (now-unfocused) input doesn't keep a stale aria-activedescendant\n // pointing at an option while real focus sits on the footer button.\n state.selectionManager.setFocusedKey(null);\n }\n };\n\n return (\n <div className={restProps.className} {...addDebugOutlineIfEnabled()}>\n <Input\n // oxlint-disable-next-line @databricks/no-dynamic-property-value -- Valid case, as combostate componentId is checked in the hook exempt:97883162-7cd4-4bdc-a433-170eb108a4e3\n componentId={componentId ? `${componentId}.input` : 'design_system.typeahead_combobox_v2.input'}\n ref={(antdInput) => {\n // useComboBox needs the underlying HTMLInputElement, exposed by AntD v4 as `.input`.\n const node = antdInput?.input ?? null;\n inputRef.current = node;\n // Also forward to the consumer's ref (e.g. RHF `field.ref` for focus-on-validation-error).\n // Parity with TypeaheadComboboxMultiSelectInput, whose input already forwards; this ref was\n // previously dropped.\n if (typeof ref === 'function') ref(node);\n else if (ref) ref.current = node;\n }}\n // mergeProps composes consumer handlers in restProps with react-aria's inputProps\n // (onKeyDown/onFocus/etc.) instead of letting a later spread clobber them.\n {...mergeProps(inputProps, restProps)}\n onClick={handleClick}\n onKeyDownCapture={handleKeyDownCapture}\n size={size}\n css={getInputStyles(theme)}\n suffix={\n <div css={{ display: 'flex', alignItems: 'center', gap: theme.spacing.xs }}>\n {suffix}\n <TypeaheadComboboxControls\n showClearSelectionButton={allowClear && Boolean(state?.inputValue) && !restProps.disabled}\n showComboboxToggleButton={showComboboxToggleButton}\n handleClear={handleClear}\n disabled={restProps.disabled}\n loading={loading}\n inline\n />\n </div>\n }\n />\n </div>\n );\n});\n","import { css, type SerializedStyles } from '@emotion/react';\nimport { mergeProps } from '@react-aria/utils';\nimport { forwardRef, useCallback, useEffect, useLayoutEffect, useRef, useState } from 'react';\n\nimport { CountBadge } from './CountBadge';\nimport { TypeaheadComboboxControls } from './TypeaheadComboboxControls';\nimport { TypeaheadComboboxSelectedItem } from './TypeaheadComboboxSelectedItem';\nimport { focusFirstFocusable } from './hooks/footerFocus';\nimport { useTypeaheadComboboxV2Context } from './hooks/useTypeaheadComboboxContext';\nimport type { Theme } from '../../theme';\nimport { useDesignSystemTheme } from '../Hooks';\nimport { Tooltip } from '../Tooltip';\nimport type { ValidationState } from '../types';\nimport { getValidationStateColor } from '../utils';\nimport { addDebugOutlineIfEnabled } from '../utils/debug';\n\n// Renders a raw `<input>` (this component owns its surrounding chrome), so it takes HTML attrs\n// rather than the AntD-flavored InputProps used by the single-select variant.\nexport interface TypeaheadComboboxMultiSelectInputProps<T> extends Omit<\n React.InputHTMLAttributes<HTMLInputElement>,\n 'size'\n> {\n selectedItems: T[];\n setSelectedItems: React.Dispatch<React.SetStateAction<T[]>>;\n getSelectedItemLabel: (item: T) => React.ReactNode;\n allowClear?: boolean;\n showComboboxToggleButton?: boolean;\n loading?: boolean;\n /** Tag overflow threshold: number (default 20) or 'responsive' to fit naturally on one line. */\n showTagAfterValueCount?: number | 'responsive';\n width?: string | number;\n maxHeight?: string | number;\n disableTooltip?: boolean;\n validationState?: ValidationState;\n}\n\nconst getContainerStyles = (\n theme: Theme,\n validationState?: ValidationState,\n width?: string | number,\n disabled?: boolean,\n): SerializedStyles => {\n const validationColor = getValidationStateColor(theme, validationState);\n return css({\n cursor: 'text',\n display: 'inline-block',\n verticalAlign: 'top',\n border: `1px solid ${theme.colors.actionDefaultBorderDefault}`,\n borderRadius: theme.general.borderRadiusBase,\n minHeight: 32,\n height: 'auto',\n minWidth: 0,\n ...(width ? { width } : {}),\n position: 'relative',\n '&:hover': { border: `1px solid ${theme.colors.actionPrimaryBackgroundHover}` },\n '&:focus-within': {\n outlineColor: theme.colors.actionDefaultBorderFocus,\n outlineWidth: 2,\n outlineOffset: -2,\n outlineStyle: 'solid',\n boxShadow: 'none',\n borderColor: 'transparent',\n },\n '&&': {\n ...(validationState && { borderColor: validationColor }),\n '&:hover': { borderColor: validationState ? validationColor : theme.colors.actionPrimaryBackgroundHover },\n ...(disabled && {\n borderColor: theme.colors.actionDisabledBorder,\n backgroundColor: theme.colors.actionDisabledBackground,\n cursor: 'not-allowed',\n outline: 'none',\n '&:hover': { border: `1px solid ${theme.colors.actionDisabledBorder}` },\n '&:focus-within': { outline: 'none', borderColor: theme.colors.actionDisabledBorder },\n }),\n },\n });\n};\n\nconst getScrollContainerStyles = (maxHeight?: string | number): SerializedStyles =>\n css({\n padding: '5px 7px 5px 12px',\n overflowY: 'auto',\n overflowX: 'hidden',\n ...(maxHeight ? { maxHeight } : {}),\n });\n\nconst getContentWrapperStyles = (): SerializedStyles =>\n css({ display: 'flex', flex: 'auto', flexWrap: 'wrap', maxWidth: '100%', position: 'relative' });\n\nconst getInputWrapperStyles = (): SerializedStyles =>\n css({\n display: 'inline-flex',\n position: 'relative',\n maxWidth: '100%',\n alignSelf: 'auto',\n flex: '1 1 auto',\n minWidth: 40,\n });\n\nconst getInputStyles = (theme: Theme): SerializedStyles =>\n css({\n lineHeight: 20,\n height: 24,\n margin: 0,\n padding: 0,\n appearance: 'none',\n cursor: 'auto',\n width: '100%',\n backgroundColor: 'transparent',\n color: theme.colors.textPrimary,\n '&, &:hover, &:focus-visible': { border: 'none', outline: 'none' },\n '&::placeholder': { color: theme.colors.textPlaceholder },\n });\n\nconst TypeaheadComboboxMultiSelectInputInner = <T,>(\n {\n selectedItems,\n // Destructured to keep it out of `restProps` (which is spread onto the <input>); the selection\n // reset is routed through the context's clearSelection, so this setter isn't used directly here.\n setSelectedItems: _setSelectedItems,\n getSelectedItemLabel,\n allowClear = true,\n showTagAfterValueCount = 20,\n width,\n maxHeight,\n placeholder,\n validationState,\n showComboboxToggleButton,\n disableTooltip = false,\n loading,\n ...restProps\n }: TypeaheadComboboxMultiSelectInputProps<T>,\n ref: React.ForwardedRef<HTMLInputElement>,\n) => {\n const ctx = useTypeaheadComboboxV2Context();\n if (!ctx.isInsideTypeaheadCombobox) {\n throw new Error('`TypeaheadComboboxMultiSelectInput` must be used within `TypeaheadComboboxRoot`');\n }\n\n const {\n inputProps,\n inputRef,\n comboBoxState: state,\n setTriggerWidth,\n triggerRef,\n clearSelection,\n removeByKey,\n getKeyForItem,\n footerFocusable,\n footerRef,\n } = ctx;\n const { theme } = useDesignSystemTheme();\n const containerRef = useRef<HTMLDivElement | null>(null);\n const scrollContainerRef = useRef<HTMLDivElement | null>(null);\n const itemsRef = useRef<HTMLDivElement | null>(null);\n const measureRef = useRef<HTMLSpanElement | null>(null);\n const [inputWidth, setInputWidth] = useState(0);\n\n const setContainerRef = useCallback(\n (node: HTMLDivElement | null) => {\n containerRef.current = node;\n triggerRef.current = node;\n },\n [triggerRef],\n );\n\n const setInputElRef = useCallback(\n (node: HTMLInputElement | null) => {\n inputRef.current = node;\n if (typeof ref === 'function') ref(node);\n else if (ref) ref.current = node;\n },\n [inputRef, ref],\n );\n\n const isResponsive = showTagAfterValueCount === 'responsive';\n const fixedTagCount = typeof showTagAfterValueCount === 'number' ? showTagAfterValueCount : 20;\n const [responsiveVisibleCount, setResponsiveVisibleCount] = useState<number | null>(null);\n\n const selectedItemsToRender = isResponsive\n ? responsiveVisibleCount === null\n ? selectedItems\n : selectedItems.slice(0, responsiveVisibleCount)\n : selectedItems.slice(0, fixedTagCount);\n\n const shouldShowCountBadge = selectedItems.length > selectedItemsToRender.length;\n const countBadgeStartAt = selectedItemsToRender.length;\n const [showTooltip, setShowTooltip] = useState(shouldShowCountBadge);\n\n const handleClick = () => {\n if (restProps.disabled) return;\n inputRef.current?.focus();\n // Open-only on click (see TypeaheadComboboxInput for rationale).\n if (state && !state.isOpen) state.open();\n };\n\n const handleClear = () => {\n if (!state) return;\n // Clear the typed search text, then route the selection reset through the hook's clearSelection\n // so the onValueChange('[]') analytics event fires — the single-select input clears the same way.\n // (clearSelection resets selectedItems in multi-select mode but does not touch the input value.)\n state.setInputValue('');\n clearSelection();\n };\n\n // Backspace on an empty input removes the last selected item, matching the original downshift\n // TypeaheadCombobox (whose `useMultipleSelection` handled DropdownKeyDownBackspace). react-aria's\n // multi-select is managed by us, so it does not wire this. Routed through `removeByKey` so the\n // same `onValueChange` analytics event fires as tag-click / clear-button removal. Guarded on an\n // empty input so it never interferes with normal text editing (the caret has nothing to delete).\n const handleKeyDown = (e: React.KeyboardEvent<HTMLInputElement>) => {\n // Read the input value from state, not the DOM node: react-aria controls the input via\n // `state.inputValue`, so that is the authoritative \"is the field empty\" source at event time.\n if (e.key !== 'Backspace' || (state?.inputValue ?? '') !== '' || selectedItems.length === 0 || restProps.disabled) {\n return;\n }\n removeByKey(getKeyForItem(selectedItems[selectedItems.length - 1]));\n };\n\n // PROTOTYPE (DUBOIS-455, \"Option A\"): mirror TypeaheadComboboxInput's capture-phase Tab handler for\n // multi-select. Without it, react-aria's bubble-phase Tab->commit fires and toggles (selects/\n // deselects) the highlighted option instead of moving focus to the footer — and with the\n // first-option highlight always on, an option is always highlighted, so Tab always toggled it.\n // Capture phase + stopPropagation suppresses that commit; preventDefault stops the native tab; and\n // clearing the focused key drops the stale aria-activedescendant while focus sits on the footer.\n const handleKeyDownCapture = (e: React.KeyboardEvent<HTMLInputElement>) => {\n if (!footerFocusable || e.key !== 'Tab' || e.shiftKey || !state?.isOpen) {\n return;\n }\n const moved = focusFirstFocusable(footerRef.current);\n if (moved) {\n e.preventDefault();\n e.stopPropagation();\n state.selectionManager.setFocusedKey(null);\n }\n };\n\n const currentInputValue = state?.inputValue ?? '';\n\n useLayoutEffect(() => {\n if (measureRef.current) setInputWidth(measureRef.current.scrollWidth);\n }, [currentInputValue, placeholder]);\n\n useLayoutEffect(() => {\n if (!isResponsive) return;\n setResponsiveVisibleCount(null);\n }, [isResponsive, selectedItems, inputWidth]);\n\n useLayoutEffect(() => {\n if (!isResponsive) return;\n const container = containerRef.current;\n if (!container || typeof ResizeObserver === 'undefined') return;\n const observer = new ResizeObserver(() => setResponsiveVisibleCount(null));\n observer.observe(container);\n return () => observer.disconnect();\n }, [isResponsive]);\n\n useLayoutEffect(() => {\n if (!isResponsive) return;\n const itemsEl = itemsRef.current;\n if (!itemsEl) return;\n const tagEls = itemsEl.querySelectorAll<HTMLElement>('[data-slot=\"tag\"]');\n if (tagEls.length === 0) {\n setResponsiveVisibleCount(0);\n return;\n }\n const firstTop = tagEls[0].offsetTop;\n const onFirstLine = (el: HTMLElement | null) => el != null && Math.abs(el.offsetTop - firstTop) <= 2;\n let firstLineTagCount = 0;\n for (let i = 0; i < tagEls.length; i++) {\n if (onFirstLine(tagEls[i])) firstLineTagCount++;\n else break;\n }\n const inputWrapperEl = itemsEl.querySelector<HTMLElement>('[data-slot=\"input\"]');\n const inputWrapped = inputWrapperEl != null && !onFirstLine(inputWrapperEl);\n let nextCount: number;\n if (firstLineTagCount < tagEls.length) {\n nextCount = firstLineTagCount;\n } else if (tagEls.length === selectedItems.length) {\n nextCount = inputWrapped ? Math.max(0, tagEls.length - 1) : selectedItems.length;\n } else if (inputWrapped) {\n nextCount = Math.max(0, tagEls.length - 1);\n } else {\n nextCount = tagEls.length;\n }\n setResponsiveVisibleCount(nextCount);\n }, [isResponsive, selectedItems, responsiveVisibleCount]);\n\n // Measure trigger so the menu can match its width. useLayoutEffect so it is set before paint.\n useLayoutEffect(() => {\n const node = containerRef.current;\n if (!node) return;\n setTriggerWidth(node.getBoundingClientRect().width);\n }, [setTriggerWidth]);\n\n // When adding tags overflows the (maxHeight-capped) scroll container, the input — which sits at\n // the end of the flow — scrolls below the fold and takes the cursor with it. Scroll the container\n // to the bottom so the input stays visible. Scoped to the container's own scrollTop (not\n // scrollIntoView, which would also scroll the page/menu). Only on growth, so removing a tag\n // doesn't yank the view.\n const prevSelectedCount = useRef(selectedItems.length);\n useLayoutEffect(() => {\n const grew = selectedItems.length > prevSelectedCount.current;\n prevSelectedCount.current = selectedItems.length;\n const container = scrollContainerRef.current;\n if (!grew || !container) return;\n container.scrollTop = container.scrollHeight;\n }, [selectedItems]);\n\n useEffect(() => {\n let isPartiallyHidden = false;\n if (itemsRef.current && scrollContainerRef.current) {\n isPartiallyHidden = itemsRef.current.clientHeight > scrollContainerRef.current.clientHeight;\n }\n setShowTooltip(!disableTooltip && (shouldShowCountBadge || isPartiallyHidden));\n }, [shouldShowCountBadge, disableTooltip]);\n\n const content = (\n <div\n {...addDebugOutlineIfEnabled()}\n onClick={handleClick}\n ref={setContainerRef}\n css={getContainerStyles(theme, validationState, width, restProps.disabled)}\n >\n <div ref={scrollContainerRef} css={getScrollContainerStyles(maxHeight)}>\n <TypeaheadComboboxControls\n showComboboxToggleButton={showComboboxToggleButton}\n showClearSelectionButton={\n allowClear && (Boolean(currentInputValue) || selectedItems.length > 0) && !restProps.disabled\n }\n handleClear={handleClear}\n disabled={restProps.disabled}\n loading={loading}\n css={{ position: 'sticky', top: 3, float: 'right' }}\n />\n <div ref={itemsRef} css={getContentWrapperStyles()}>\n {selectedItemsToRender.map((selectedItem, index) => (\n <TypeaheadComboboxSelectedItem\n key={`selected-item-${index}`}\n label={getSelectedItemLabel(selectedItem)}\n item={selectedItem}\n disabled={restProps.disabled}\n data-slot=\"tag\"\n />\n ))}\n {shouldShowCountBadge && (\n <CountBadge\n countStartAt={countBadgeStartAt}\n totalCount={selectedItems.length}\n disabled={restProps.disabled}\n />\n )}\n <div css={getInputWrapperStyles()} data-slot=\"input\">\n <input\n // mergeProps composes consumer handlers in restProps with react-aria's inputProps\n // (and our Backspace-to-remove handler) instead of letting a later spread clobber them.\n {...mergeProps(inputProps, restProps, { onKeyDown: handleKeyDown })}\n onKeyDownCapture={handleKeyDownCapture}\n ref={setInputElRef}\n css={[getInputStyles(theme), { width: inputWidth }]}\n placeholder={selectedItems.length ? undefined : placeholder}\n />\n <span ref={measureRef} aria-hidden css={{ visibility: 'hidden', whiteSpace: 'pre', position: 'absolute' }}>\n {currentInputValue || placeholder} \n </span>\n </div>\n </div>\n </div>\n </div>\n );\n\n if (showTooltip && selectedItems.length > 0) {\n return (\n <Tooltip\n componentId=\"typeahead-combobox-react-aria-multi-select-input-tooltip\"\n side=\"right\"\n content={selectedItems.map((item) => getSelectedItemLabel(item)).join(', ')}\n >\n {content}\n </Tooltip>\n );\n }\n return content;\n};\n\nexport const TypeaheadComboboxMultiSelectInput = forwardRef(TypeaheadComboboxMultiSelectInputInner) as <T>(\n props: TypeaheadComboboxMultiSelectInputProps<T> & { ref?: React.Ref<HTMLInputElement> },\n) => JSX.Element;\n","import { useTypeaheadComboboxV2Context } from './hooks/useTypeaheadComboboxContext';\nimport { SectionHeader } from '../_shared_/Combobox';\n\nexport const TypeaheadComboboxSectionHeader = ({\n children,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>): JSX.Element => {\n const { isInsideTypeaheadCombobox } = useTypeaheadComboboxV2Context();\n if (!isInsideTypeaheadCombobox) {\n throw new Error('`TypeaheadComboboxSectionHeader` must be used within `TypeaheadComboboxMenu`');\n }\n // role=\"presentation\" keeps the header out of the listbox's owned children (which must be only\n // options) now that menu children render as direct children of the <ul role=\"listbox\">. The\n // header text stays exposed as static content. A consumer-supplied role still wins via {...props}.\n return (\n <SectionHeader role=\"presentation\" {...props}>\n {children}\n </SectionHeader>\n );\n};\n","import { useTypeaheadComboboxV2Context } from './hooks/useTypeaheadComboboxContext';\nimport { Separator } from '../_shared_/Combobox';\n\nexport const TypeaheadComboboxSeparator = (props: React.HTMLAttributes<HTMLDivElement>): JSX.Element => {\n const { isInsideTypeaheadCombobox } = useTypeaheadComboboxV2Context();\n if (!isInsideTypeaheadCombobox) {\n throw new Error('`TypeaheadComboboxSeparator` must be used within `TypeaheadComboboxMenu`');\n }\n // role=\"presentation\" keeps the decorative separator out of the listbox's owned children (which\n // must be only options) now that menu children render as direct children of the <ul role=\"listbox\">.\n return <Separator role=\"presentation\" {...props} />;\n};\n","import { css } from '@emotion/react';\nimport type { ForwardRefExoticComponent, RefAttributes } from 'react';\nimport { forwardRef } from 'react';\n\nimport { useTypeaheadComboboxV2Context } from './hooks/useTypeaheadComboboxContext';\nimport type { ButtonProps } from '../Button';\nimport { Button } from '../Button';\nimport { useDesignSystemTheme } from '../Hooks';\nimport { PlusIcon } from '../Icon';\nimport { getComboboxOptionItemWrapperStyles } from '../_shared_/Combobox';\nimport { importantify } from '../utils/css-utils';\n\nexport const TypeaheadComboboxAddButton: ForwardRefExoticComponent<ButtonProps & RefAttributes<HTMLButtonElement>> =\n forwardRef<HTMLButtonElement, ButtonProps>(function TypeaheadComboboxAddButton(\n { children, componentId: componentIdProp, ...restProps },\n forwardedRef,\n ) {\n const { theme } = useDesignSystemTheme();\n const { isInsideTypeaheadCombobox, componentId } = useTypeaheadComboboxV2Context();\n if (!isInsideTypeaheadCombobox) {\n throw new Error('`TypeaheadComboboxAddButton` must be used within `TypeaheadComboboxRoot`');\n }\n\n return (\n <Button\n {...restProps}\n // oxlint-disable-next-line @databricks/no-dynamic-property-value -- Validated in the Root for the context exempt:ae0b57c6-871d-4375-a3ea-2574d7a3899e\n componentId={componentIdProp ?? `${componentId}.add_option`}\n type=\"tertiary\"\n onClick={(event) => {\n event.stopPropagation();\n restProps.onClick?.(event);\n }}\n onMouseUp={(event) => {\n event.stopPropagation();\n restProps.onMouseUp?.(event);\n }}\n className=\"combobox-footer-add-button\"\n css={{\n ...getComboboxOptionItemWrapperStyles(theme),\n ...css(\n importantify({\n width: '100%',\n padding: 0,\n display: 'flex',\n alignItems: 'center',\n borderRadius: 0,\n // Keep the row-highlight background on focus, but do NOT suppress the outline: the DS\n // Button renders its `:focus-visible` ring (2px actionDefaultBorderFocus, offset -2px),\n // which is the keyboard focus indicator. The old `outline: 'none'` here dated from when\n // the footer button was mouse-only (never keyboard-focusable); now that focus can land\n // on it (footerFocusable), suppressing the ring is a WCAG 2.4.7 failure.\n '&:focus': { background: theme.colors.actionTertiaryBackgroundHover },\n }),\n ),\n }}\n icon={<PlusIcon />}\n ref={forwardedRef}\n >\n {children}\n </Button>\n );\n });\n","import type { Key } from '@react-types/shared';\nimport { useCallback, useMemo } from 'react';\n\nexport type WrappedItem<T> = { id: Key; value: T };\n\n/** JSON-encode a list of items by their display strings (the multi-select analytics value shape). */\nexport const mapItemsToString = <T>(items: T[], itemToString: (item: T | null) => string): string => {\n return JSON.stringify(items.map(itemToString));\n};\n\ninterface UseComboboxItemsParams<T> {\n allItems: T[];\n itemToString?: (item: T) => string;\n getKey?: (item: T) => Key;\n}\n\nexport interface ComboboxItems<T> {\n itemToString: (item: T | null | undefined) => string;\n getKey: (item: T) => Key;\n wrappedItems: WrappedItem<T>[];\n itemsByKey: Map<Key, T>;\n /**\n * textValue → every item sharing that display string. react-aria's `defaultFilter` receives only\n * the display string (not the key), so items that map to the same `itemToString` are\n * indistinguishable to the filter; the custom-matcher path matches the label if any backing item\n * matches.\n */\n itemsByTextValue: Map<string, T[]>;\n}\n\n/**\n * Item ↔ key/string mapping for the TypeaheadCombobox: resolves each item's display string and\n * key, wraps items for react-aria's collection, and builds the key/text lookup maps. Warns in dev\n * when two items collapse to the same key.\n */\nexport function useComboboxItems<T>({\n allItems,\n itemToString: itemToStringProp,\n getKey: getKeyProp,\n}: UseComboboxItemsParams<T>): ComboboxItems<T> {\n const itemToString = useCallback(\n (item: T | null | undefined): string => {\n if (item === null || item === undefined) return '';\n return itemToStringProp ? itemToStringProp(item) : String(item);\n },\n [itemToStringProp],\n );\n\n // Normalize keys to strings. react-aria's collection key comes from the `<Item key>` we render,\n // which React coerces to a string, so `state.selectedKey` (and the keys `useOption` looks up) are\n // always strings. A numeric `getKey` would otherwise leave `itemsByKey` / `disabledKeys` /\n // controlled `value` keyed by the raw number, so every string-vs-number comparison against the\n // collection would miss — breaking selection, option focus, and removal for numeric-id consumers.\n const getKey = useCallback(\n (item: T): Key => {\n if (getKeyProp) return String(getKeyProp(item));\n return itemToString(item);\n },\n [getKeyProp, itemToString],\n );\n\n const wrappedItems = useMemo<WrappedItem<T>[]>(\n () => allItems.map((value) => ({ id: getKey(value), value })),\n [allItems, getKey],\n );\n\n const itemsByKey = useMemo(() => {\n const map = new Map<Key, T>();\n for (const w of wrappedItems) {\n if (process.env.NODE_ENV !== 'production' && map.has(w.id)) {\n // eslint-disable-next-line no-console\n console.error(\n `[TypeaheadCombobox] Duplicate item key \"${String(w.id)}\". Items must map to unique keys; ` +\n 'pass a `getKey` that returns a unique value (the default falls back to `itemToString`, which ' +\n 'is colliding here). Items that share a key are dropped from selection and removal.',\n );\n }\n map.set(w.id, w.value);\n }\n return map;\n }, [wrappedItems]);\n\n // textValue → all items with that display string, for the custom-matcher path (runs per item per\n // keystroke). Grouping (rather than first-wins) keeps distinct items that share a label matchable\n // on their own non-label fields — otherwise every duplicate after the first is filtered against\n // the first item's data.\n const itemsByTextValue = useMemo(() => {\n const map = new Map<string, T[]>();\n for (const w of wrappedItems) {\n const key = itemToString(w.value);\n const group = map.get(key);\n if (group) group.push(w.value);\n else map.set(key, [w.value]);\n }\n return map;\n }, [wrappedItems, itemToString]);\n\n return { itemToString, getKey, wrappedItems, itemsByKey, itemsByTextValue };\n}\n","import { useFilter } from '@react-aria/i18n';\nimport { Item } from '@react-stately/collections';\nimport type { ComboBoxState, ComboBoxStateOptions, SelectionMode } from '@react-stately/combobox';\nimport type { Key } from '@react-types/shared';\nimport type { MutableRefObject } from 'react';\nimport { useCallback, useMemo } from 'react';\n\nimport { mapItemsToString, type ComboboxItems, type WrappedItem } from './useComboboxItems';\n\ninterface UseComboboxStatePropsParams<T> {\n items: ComboboxItems<T>;\n multiSelect: boolean;\n matcher?: (item: T, lowerCasedInputValue: string) => boolean;\n isItemDisabled?: (item: T) => boolean;\n allowNewValue: boolean;\n initialInputValue?: string;\n initialSelectedItem?: T;\n formValue?: T;\n formOnChange?: (value: T | null) => void;\n onStateChange?: (change: {\n type: 'select' | 'input' | 'open' | 'close';\n selectedItem: T | null;\n inputValue: string;\n }) => void;\n onIsOpenChange?: (isOpen: boolean) => void;\n /** Controlled selected items for multi-select; null for single-select. */\n externalSelectedItems: T[] | null;\n /** Setter for controlled multi-select; null for single-select. */\n externalSetSelectedItems: React.Dispatch<React.SetStateAction<T[]>> | null;\n /** Live ref to the created state, so the selection handler can imperatively clear the input. */\n stateRef: MutableRefObject<ComboBoxState<WrappedItem<T>, SelectionMode> | null>;\n onValueChange?: (value: string) => void;\n}\n\n/**\n * Assembles the `ComboBoxStateOptions` passed to react-aria's `useComboBoxState`: the filter, the\n * disabled-keys set, the controlled/uncontrolled selection value, the initial (uncontrolled) input\n * text, and the selection/input/open change handlers (including analytics + multi-select\n * input-reset). Kept separate from `useComboboxState` so the wiring into react-aria is isolated\n * from the selection helpers the hook derives afterward.\n */\nexport function useComboboxStateProps<T>({\n items,\n multiSelect,\n matcher,\n isItemDisabled,\n allowNewValue,\n initialInputValue,\n initialSelectedItem,\n formValue,\n formOnChange,\n onStateChange,\n onIsOpenChange,\n externalSelectedItems,\n externalSetSelectedItems,\n stateRef,\n onValueChange,\n}: UseComboboxStatePropsParams<T>): ComboBoxStateOptions<WrappedItem<T>, SelectionMode> {\n const { itemToString, getKey, wrappedItems, itemsByKey, itemsByTextValue } = items;\n\n // react-aria blocks selection of keys listed here (keyboard + pointer); the per-item `isDisabled`\n // prop only styles the row.\n const disabledKeys = useMemo<Key[]>(\n () => (isItemDisabled ? wrappedItems.filter((w) => isItemDisabled(w.value)).map((w) => w.id) : []),\n [isItemDisabled, wrappedItems],\n );\n\n const { contains } = useFilter({ sensitivity: 'base' });\n const defaultFilter = useCallback(\n (textValue: string, inputValue: string): boolean => {\n if (matcher) {\n const group = itemsByTextValue.get(textValue);\n // A label is shown if any item carrying it matches — items that share a display string are\n // indistinguishable to react-aria's filter (it only gets the string), so we can't route a\n // single row to a single item here.\n if (group !== undefined) {\n const lowerCasedInputValue = inputValue.toLocaleLowerCase();\n return group.some((item) => matcher(item, lowerCasedInputValue));\n }\n return contains(textValue, inputValue);\n }\n return contains(textValue, inputValue);\n },\n [matcher, itemsByTextValue, contains],\n );\n\n // A single-select consumer opts into controlling the selection by passing `formValue` +\n // `formOnChange`. Once controlled, \"nothing selected\" must stay controlled as `null` (not\n // `undefined`) — otherwise clearing the input, which react-aria turns into setValue(null), would\n // flip the selection value from controlled to uncontrolled (React warns, and clicks revert).\n const isControlledSingleSelect = !multiSelect && formOnChange !== undefined;\n const controlledValue = useMemo<Key | Key[] | null | undefined>(() => {\n if (externalSelectedItems !== null) return externalSelectedItems.map(getKey);\n if (formValue !== undefined) return getKey(formValue);\n return isControlledSingleSelect ? null : undefined;\n }, [externalSelectedItems, formValue, getKey, isControlledSingleSelect]);\n\n const handleSelectionChange = useCallback(\n (newValue: Key | readonly Key[] | null) => {\n if (externalSetSelectedItems !== null) {\n const keys = (newValue ?? []) as readonly Key[];\n const selected = keys.map((k) => itemsByKey.get(k)).filter((x): x is T => x !== undefined);\n externalSetSelectedItems(selected);\n // Multi-select stays open after a pick; clear the search text so the menu resets to all items.\n stateRef.current?.setInputValue('');\n onValueChange?.(mapItemsToString(selected, itemToString));\n onStateChange?.({ type: 'select', selectedItem: selected[selected.length - 1] ?? null, inputValue: '' });\n return;\n }\n const key = newValue as Key | null;\n const item = key === null ? null : (itemsByKey.get(key) ?? null);\n formOnChange?.(item);\n onValueChange?.(itemToString(item));\n onStateChange?.({ type: 'select', selectedItem: item, inputValue: '' });\n },\n [externalSetSelectedItems, itemsByKey, onValueChange, itemToString, formOnChange, onStateChange, stateRef],\n );\n\n // Seed the initial input text, then let react-aria manage it (show the selected item's text,\n // revert on blur, etc.). `defaultInputValue` is uncontrolled — we no longer mirror it in state.\n const defaultInputValue = useMemo<string | undefined>(() => {\n if (initialInputValue !== undefined) return initialInputValue;\n if (initialSelectedItem !== undefined) return itemToString(initialSelectedItem);\n if (formValue !== undefined) return itemToString(formValue);\n return undefined;\n }, [initialInputValue, initialSelectedItem, formValue, itemToString]);\n\n // `defaultItems` rather than `items`: react-aria skips `defaultFilter` when `items` is set\n // (\"No default filter if items are controlled\" — useComboBoxState.js:110).\n return {\n defaultItems: wrappedItems,\n defaultFilter,\n disabledKeys,\n allowsCustomValue: allowNewValue,\n defaultInputValue,\n defaultSelectedKey: initialSelectedItem !== undefined ? getKey(initialSelectedItem) : undefined,\n selectionMode: multiSelect ? 'multiple' : 'single',\n value: controlledValue,\n onChange: handleSelectionChange,\n children: (wrapped) => (\n <Item key={wrapped.id} textValue={itemToString(wrapped.value)}>\n {itemToString(wrapped.value)}\n </Item>\n ),\n onInputChange: (inputValue) => {\n onStateChange?.({ type: 'input', selectedItem: null, inputValue });\n },\n onOpenChange: (isOpen) => {\n onIsOpenChange?.(isOpen);\n onStateChange?.({ type: isOpen ? 'open' : 'close', selectedItem: null, inputValue: '' });\n },\n // Non-modal popovers rely on blur as their dismiss path (usePopover hard-codes\n // isDismissable=false when isNonModal=true), so we can't ever leave this off.\n shouldCloseOnBlur: true,\n };\n}\n","import type { ComboBoxState, SelectionMode } from '@react-stately/combobox';\nimport { useEffect } from 'react';\n\nimport type { WrappedItem } from './useComboboxItems';\n\n/**\n * Keeps an option highlighted while the menu is open so Enter commits it, matching the original\n * downshift variant's `defaultHighlightedIndex: 0`. react-aria clears the focused key on every input\n * change (useComboBoxState: \"Clear focused key when input value changes\"), and its `commit()` only\n * selects when `focusedKey != null` — so without this, typing leaves nothing highlighted and Enter\n * falls through to commitValue(), selecting nothing.\n *\n * Only re-focuses when nothing is focused, so arrowing or hovering to another option sticks and we\n * merely restore the default after react-aria drops it. Keyed on the collection so it re-runs as\n * filtering narrows the list. Skipped when `allowNewValue`: there Enter commits the typed text, so\n * pre-highlighting an option would hijack it and select the option instead.\n */\nexport function useRestoreHighlightedOption<T>(\n state: ComboBoxState<WrappedItem<T>, SelectionMode>,\n { allowNewValue, showAllOptionsOnOpen }: { allowNewValue: boolean; showAllOptionsOnOpen: boolean },\n): void {\n const { collection, isOpen, selectionManager, disabledKeys } = state;\n const focusedKey = selectionManager.focusedKey;\n useEffect(() => {\n if (allowNewValue || !isOpen || focusedKey != null) return;\n // Only restore the highlight while the combobox input itself holds DOM focus. With footerFocusable,\n // Tab moves focus onto a footer control and deliberately clears focusedKey so no stale\n // aria-activedescendant points at an option while focus sits on the footer button (WCAG 4.1.3).\n // Re-focusing the first option here would undo that. The input carries role=\"combobox\", so this\n // cleanly excludes footer buttons, tag remove-buttons, etc.\n if (document.activeElement?.getAttribute('role') !== 'combobox') return;\n // On a show-all reopen the selected option is not necessarily first, so highlight it (not option 0)\n // — aria-activedescendant should land on the current selection. Only while the list is still\n // unfiltered though: the input then still shows the selection's label, so once the user types a query\n // (input diverges) react-stately filters and we highlight the first match for Enter, as usual.\n const selectedKey = state.selectedKey;\n const selectedNode = selectedKey != null ? collection.getItem(selectedKey) : null;\n const showingSelection = selectedNode != null && state.inputValue === selectedNode.textValue;\n let candidate = showAllOptionsOnOpen && showingSelection ? selectedKey : collection.getFirstKey();\n while (candidate != null && disabledKeys.has(candidate)) {\n candidate = collection.getKeyAfter(candidate);\n }\n if (candidate == null) return;\n selectionManager.setFocusedKey(candidate);\n }, [\n allowNewValue,\n isOpen,\n focusedKey,\n collection,\n selectionManager,\n disabledKeys,\n showAllOptionsOnOpen,\n state.selectedKey,\n state.inputValue,\n ]);\n}\n","import type { ComboBoxState, SelectionMode } from '@react-stately/combobox';\nimport { useComboBoxState } from '@react-stately/combobox';\nimport type { Key } from '@react-types/shared';\nimport { useCallback, useMemo, useRef } from 'react';\n\nimport { mapItemsToString, useComboboxItems, type WrappedItem } from './useComboboxItems';\nimport { useComboboxStateProps } from './useComboboxStateProps';\nimport { useRestoreHighlightedOption } from './useRestoreHighlightedOption';\nimport {\n DesignSystemEventProviderAnalyticsEventTypes,\n DesignSystemEventProviderComponentTypes,\n useDesignSystemEventComponentCallbacks,\n} from '../../DesignSystemEventProvider';\nimport type { AnalyticsEventValueChangeNoPiiFlagProps } from '../../types';\nimport { safex } from '../../utils/safex';\n\ninterface BaseComboboxStateProps<T> extends AnalyticsEventValueChangeNoPiiFlagProps<\n DesignSystemEventProviderAnalyticsEventTypes.OnValueChange | DesignSystemEventProviderAnalyticsEventTypes.OnView\n> {\n allItems: T[];\n itemToString?: (item: T) => string;\n getKey?: (item: T) => Key;\n matcher?: (item: T, lowerCasedInputValue: string) => boolean;\n /**\n * Predicate marking items the user cannot select. react-aria enforces non-selection via the\n * state's `disabledKeys`, so disabled must be declared here (a `<MenuItem isDisabled>` only\n * styles the row — it can't block selection on its own).\n */\n isItemDisabled?: (item: T) => boolean;\n allowNewValue?: boolean;\n /**\n * Single-select only: open the menu showing the full option list (even with a value selected), and\n * filter only once the user types. Multi-select clears the input on select, so it is unaffected.\n */\n showAllOptionsOnOpen?: boolean;\n initialInputValue?: string;\n initialSelectedItem?: T;\n formValue?: T;\n formOnChange?: (value: T | null) => void;\n formOnBlur?: (value: T | null) => void;\n onStateChange?: (change: {\n type: 'select' | 'input' | 'open' | 'close';\n selectedItem: T | null;\n inputValue: string;\n }) => void;\n onIsOpenChange?: (isOpen: boolean) => void;\n /**\n * @deprecated No-op under react-aria. Blur never clears the selection (it only re-syncs the\n * input text), and closing on blur is required for non-modal popover dismissal, so this flag\n * is ignored. Kept only for source compatibility with the original API.\n */\n preventUnsetOnBlur?: boolean;\n}\n\nexport interface SingleSelectComboboxStateProps<T> extends BaseComboboxStateProps<T> {\n multiSelect?: false;\n}\n\nexport interface MultiSelectComboboxStateProps<T> extends BaseComboboxStateProps<T> {\n multiSelect: true;\n selectedItems: T[];\n setSelectedItems: React.Dispatch<React.SetStateAction<T[]>>;\n}\n\nexport type UseComboboxStateProps<T> = SingleSelectComboboxStateProps<T> | MultiSelectComboboxStateProps<T>;\n\nexport interface ComboboxStateValue<T> {\n state: ComboBoxState<WrappedItem<T>, SelectionMode>;\n itemsByKey: Map<Key, T>;\n getKeyForItem: (item: T) => Key;\n itemToString: (item: T | null | undefined) => string;\n selectedItems: T[];\n selectedKeys: Set<Key>;\n /** Items remaining after react-aria's `defaultFilter` runs against the current `state.inputValue`. */\n filteredItems: T[];\n removeItem: (item: T) => void;\n removeByKey: (key: Key) => void;\n clearSelection: () => void;\n isSelected: (item: T) => boolean;\n /** Fire the consumer's `formOnBlur` on a genuine input blur (wired onto the input by `Root`). */\n onInputBlur: () => void;\n // Required (not optional): the input prop `componentId` is required via AnalyticsEventProps, so the\n // hook always returns one. Matching that here lets Root pass it straight to the (also-required)\n // context field with no fallback.\n componentId: string;\n analyticsEvents?: DesignSystemEventProviderAnalyticsEventTypes[];\n valueHasNoPii?: boolean;\n onView: (value: any) => void;\n firstOnViewValue?: string;\n multiSelect: boolean;\n showAllOptionsOnOpen: boolean;\n}\n\n/**\n * Backs the Du Bois TypeaheadCombobox (react-aria variant) by wrapping react-aria's\n * `useComboBoxState`. Handles single- and multi-select modes, item↔key mapping, filtering\n * (default substring match or a custom `matcher`), selection helpers (`removeItem`,\n * `clearSelection`, `isSelected`), form `onChange`/`onBlur` bridging, and analytics wiring.\n * The returned object is what the `Root`/`Input`/`Menu` subtree consumes via context.\n */\nexport function useComboboxState<T>(props: UseComboboxStateProps<T>): ComboboxStateValue<T> {\n const multiSelect = props.multiSelect === true;\n // Narrow the discriminated union once for stable typed refs in deps/callbacks.\n const externalSelectedItems: T[] | null = multiSelect && props.multiSelect ? props.selectedItems : null;\n const externalSetSelectedItems = multiSelect && props.multiSelect ? props.setSelectedItems : null;\n\n const {\n allItems,\n itemToString: itemToStringProp,\n getKey: getKeyProp,\n matcher,\n isItemDisabled,\n componentId,\n analyticsEvents,\n valueHasNoPii,\n initialInputValue,\n initialSelectedItem,\n formValue,\n formOnChange,\n formOnBlur,\n onStateChange,\n onIsOpenChange,\n allowNewValue = false,\n showAllOptionsOnOpen = false,\n } = props;\n // `preventUnsetOnBlur` is accepted for source compatibility with the original API but is a\n // no-op: in react-aria, blur never clears the selection (only re-syncs input text), and\n // closing on blur is required for non-modal popover dismissal.\n\n const emitOnView = safex('databricks.fe.observability.defaultComponentView.typeaheadCombobox', false);\n\n const items = useComboboxItems({\n allItems,\n itemToString: itemToStringProp,\n getKey: getKeyProp,\n });\n const { itemToString, getKey, itemsByKey } = items;\n\n const memoizedAnalyticsEvents = useMemo<DesignSystemEventProviderAnalyticsEventTypes[]>(\n () =>\n analyticsEvents\n ? [...analyticsEvents]\n : emitOnView\n ? [\n DesignSystemEventProviderAnalyticsEventTypes.OnValueChange,\n DesignSystemEventProviderAnalyticsEventTypes.OnView,\n ]\n : [DesignSystemEventProviderAnalyticsEventTypes.OnValueChange],\n [analyticsEvents, emitOnView],\n );\n\n const eventContext = useDesignSystemEventComponentCallbacks({\n componentType: DesignSystemEventProviderComponentTypes.TypeaheadCombobox,\n componentId,\n analyticsEvents: memoizedAnalyticsEvents,\n valueHasNoPii,\n });\n\n // react-aria owns the input value. `stateRef` lets the selection handler clear the input in\n // multi-select mode without making inputValue a controlled prop.\n const stateRef = useRef<ComboBoxState<WrappedItem<T>, SelectionMode> | null>(null);\n\n const stateOptions = useComboboxStateProps<T>({\n items,\n multiSelect,\n matcher,\n isItemDisabled,\n allowNewValue,\n initialInputValue,\n initialSelectedItem,\n formValue,\n formOnChange,\n onStateChange,\n onIsOpenChange,\n externalSelectedItems,\n externalSetSelectedItems,\n stateRef,\n onValueChange: eventContext.onValueChange,\n });\n\n const state = useComboBoxState(stateOptions);\n stateRef.current = state;\n\n useRestoreHighlightedOption(state, { allowNewValue, showAllOptionsOnOpen });\n\n const selectedKeys = useMemo<Set<Key>>(() => {\n if (externalSelectedItems !== null) {\n const set = new Set<Key>();\n for (const it of externalSelectedItems) set.add(getKey(it));\n return set;\n }\n return state.selectedKey === null ? new Set() : new Set([state.selectedKey]);\n }, [externalSelectedItems, getKey, state.selectedKey]);\n\n const selectedItems = useMemo<T[]>(() => {\n if (externalSelectedItems !== null) return externalSelectedItems;\n if (state.selectedKey === null) return [];\n const item = itemsByKey.get(state.selectedKey);\n return item === undefined ? [] : [item];\n }, [externalSelectedItems, state.selectedKey, itemsByKey]);\n\n // Fire the consumer's formOnBlur on a *real* input blur, reading the committed selection at blur\n // time. react-aria has no blur-with-value callback, so Root wires this onto the input's onBlur\n // (guarded so focus moving within the widget — toggle/clear buttons — doesn't count as a blur).\n // Keying an effect on selectedKey instead — the previous approach — fired formOnBlur on every\n // selection commit/clear while the field still had focus, diverging from RHF touched/validation\n // semantics (DUBOIS-455). Multi-select never routed formOnBlur through the single-value path in\n // the original downshift variant, so it stays single-select-scoped here.\n const selectedItemsRef = useRef<T[]>(selectedItems);\n selectedItemsRef.current = selectedItems;\n const onInputBlur = useCallback(() => {\n if (multiSelect) return;\n if (allowNewValue) {\n // Free-text parity with the downshift variant: react-aria's selection handler only reports\n // matched options, so a typed custom value would otherwise never reach the form. On blur,\n // register the current input string as the form value (empty input → null). allowNewValue\n // implies T is a string, so the raw inputValue is a valid T.\n const custom = stateRef.current?.inputValue ? (stateRef.current.inputValue as T) : null;\n formOnChange?.(custom);\n formOnBlur?.(custom);\n return;\n }\n formOnBlur?.(selectedItemsRef.current[0] ?? null);\n }, [multiSelect, allowNewValue, formOnChange, formOnBlur]);\n\n // Unwrap state.collection (post-filter) back to T[] for consumers.\n const filteredItems = useMemo<T[]>(() => {\n const out: T[] = [];\n for (const node of state.collection) {\n if (node.type === 'item' && node.value) out.push(node.value.value);\n }\n return out;\n }, [state.collection]);\n\n const removeByKey = useCallback(\n (key: Key) => {\n // Normalize to a string so a consumer passing a raw numeric key still matches our string\n // keys (getKey stringifies; react-aria's collection keys are strings — see useComboboxItems).\n const normalizedKey = String(key);\n if (externalSelectedItems !== null && externalSetSelectedItems !== null) {\n const next = externalSelectedItems.filter((it) => getKey(it) !== normalizedKey);\n if (next.length === externalSelectedItems.length) return;\n externalSetSelectedItems(next);\n eventContext.onValueChange?.(mapItemsToString(next, itemToString));\n return;\n }\n // Single-select: removing the active selection clears it.\n if (state.selectedKey === normalizedKey) {\n formOnChange?.(null);\n state.setSelectedKey(null);\n eventContext.onValueChange?.(itemToString(null));\n }\n },\n [externalSelectedItems, externalSetSelectedItems, getKey, eventContext, itemToString, state, formOnChange],\n );\n\n const removeItem = useCallback((item: T) => removeByKey(getKey(item)), [removeByKey, getKey]);\n\n const clearSelection = useCallback(() => {\n if (externalSetSelectedItems !== null) {\n externalSetSelectedItems([]);\n eventContext.onValueChange?.('[]');\n return;\n }\n formOnChange?.(null);\n state.setInputValue('');\n state.setSelectedKey(null);\n }, [externalSetSelectedItems, eventContext, formOnChange, state]);\n\n const isSelected = useCallback((item: T) => selectedKeys.has(getKey(item)), [selectedKeys, getKey]);\n\n const firstOnViewValue = useMemo(() => {\n if (externalSelectedItems !== null) return mapItemsToString(externalSelectedItems, itemToString);\n return itemToString(initialSelectedItem ?? null);\n }, [externalSelectedItems, initialSelectedItem, itemToString]);\n\n return {\n state,\n itemsByKey,\n getKeyForItem: getKey,\n itemToString,\n selectedItems,\n selectedKeys,\n filteredItems,\n removeItem,\n removeByKey,\n clearSelection,\n isSelected,\n onInputBlur,\n componentId,\n analyticsEvents: memoizedAnalyticsEvents,\n valueHasNoPii,\n onView: eventContext.onView,\n firstOnViewValue,\n multiSelect,\n showAllOptionsOnOpen,\n };\n}\n","import type { Key } from '@react-types/shared';\nimport { useCallback, useMemo } from 'react';\n\nimport {\n DesignSystemEventProviderAnalyticsEventTypes,\n DesignSystemEventProviderComponentTypes,\n useDesignSystemEventComponentCallbacks,\n} from '../../DesignSystemEventProvider';\nimport type { AnalyticsEventValueChangeNoPiiFlagProps } from '../../types';\n\nexport interface UseMultipleSelectionStateConfig<T> extends AnalyticsEventValueChangeNoPiiFlagProps<\n DesignSystemEventProviderAnalyticsEventTypes.OnValueChange | DesignSystemEventProviderAnalyticsEventTypes.OnView\n> {\n itemToString?: (item: T) => string;\n getKey?: (item: T) => Key;\n}\n\nexport interface MultipleSelectionStateReturn<T> {\n selectedItems: T[];\n /** Stable Set of keys for currently-selected items — used by CheckboxItem to render the checked state quickly. */\n selectedKeys: Set<Key>;\n addItem: (item: T) => void;\n removeItem: (item: T) => void;\n removeByKey: (key: Key) => void;\n clear: () => void;\n /** Lookup helper. */\n isSelected: (item: T) => boolean;\n}\n\nconst mapItemsToString = <T>(items: T[], itemToString: (item: T | null) => string): string => {\n return JSON.stringify(items.map(itemToString));\n};\n\n/**\n * Companion hook to `useComboboxState` in multi-select mode. Returns chip-management helpers\n * keyed off the consumer-owned `selectedItems` array, plus analytics wiring. Mostly redundant —\n * the state hook already exposes `removeItem`/`removeByKey`/`clearSelection` — but kept for API\n * parity with the original.\n */\nexport function useMultipleSelectionState<T>(\n selectedItems: T[],\n setSelectedItems: React.Dispatch<React.SetStateAction<T[]>>,\n { componentId, analyticsEvents, valueHasNoPii, itemToString, getKey }: UseMultipleSelectionStateConfig<T>,\n): MultipleSelectionStateReturn<T> {\n const toString = useCallback(\n (item: T | null) => (item === null || item === undefined ? '' : itemToString ? itemToString(item) : String(item)),\n [itemToString],\n );\n const keyFor = useCallback((item: T): Key => (getKey ? getKey(item) : toString(item)), [getKey, toString]);\n\n const memoizedAnalyticsEvents = useMemo(\n () => analyticsEvents ?? [DesignSystemEventProviderAnalyticsEventTypes.OnValueChange],\n [analyticsEvents],\n );\n\n const eventContext = useDesignSystemEventComponentCallbacks({\n componentType: DesignSystemEventProviderComponentTypes.TypeaheadCombobox,\n componentId,\n analyticsEvents: memoizedAnalyticsEvents,\n valueHasNoPii,\n });\n\n const selectedKeys = useMemo(() => {\n const set = new Set<Key>();\n for (const item of selectedItems) set.add(keyFor(item));\n return set;\n }, [selectedItems, keyFor]);\n\n const addItem = useCallback(\n (item: T) => {\n const k = keyFor(item);\n if (selectedKeys.has(k)) return;\n const next = [...selectedItems, item];\n setSelectedItems(next);\n eventContext.onValueChange?.(mapItemsToString(next, toString));\n },\n [keyFor, selectedKeys, selectedItems, setSelectedItems, eventContext, toString],\n );\n\n const removeByKey = useCallback(\n (key: Key) => {\n const next = selectedItems.filter((item) => keyFor(item) !== key);\n if (next.length === selectedItems.length) return;\n setSelectedItems(next);\n eventContext.onValueChange?.(mapItemsToString(next, toString));\n },\n [selectedItems, setSelectedItems, keyFor, eventContext, toString],\n );\n\n const removeItem = useCallback((item: T) => removeByKey(keyFor(item)), [removeByKey, keyFor]);\n\n const clear = useCallback(() => {\n setSelectedItems([]);\n eventContext.onValueChange?.('[]');\n }, [setSelectedItems, eventContext]);\n\n const isSelected = useCallback((item: T) => selectedKeys.has(keyFor(item)), [selectedKeys, keyFor]);\n\n return { selectedItems, selectedKeys, addItem, removeItem, removeByKey, clear, isSelected };\n}\n","import type { ComboBoxState, SelectionMode } from '@react-stately/combobox';\nimport type { Key } from '@react-types/shared';\nimport { useEffect, useRef } from 'react';\n\nimport type { WrappedItem } from './useComboboxItems';\n\ninterface UseVirtualizedComboboxScrollParams<T> {\n /** The react-aria combobox state (`comboboxState.state`). */\n state: ComboBoxState<WrappedItem<T>, SelectionMode>;\n /** Post-filter items, index-aligned with the react-virtual `size`. */\n filteredItems: T[];\n /** Same key resolver the combobox uses (`comboboxState.getKeyForItem`). */\n getKey: (item: T) => Key;\n /**\n * The react-virtual (v2) / TanStack Virtual (v3) instance. Only `scrollToIndex` is used, typed\n * structurally so the design-system does not couple to a specific virtualization library version.\n */\n virtualizer: { scrollToIndex: (index: number) => void };\n}\n\n/**\n * Scrolls the virtually-focused option into view when it is NOT currently rendered. Under\n * virtualization only a window of options is in the DOM, so react-aria's own scroll-into-view (and\n * our per-item `useScrollOptionIntoView`) can't reach an option that hasn't mounted — arrowing past\n * the rendered window would otherwise appear to do nothing. This bridges react-aria's\n * `selectionManager.focusedKey` to the consumer's virtualizer so the row mounts and scrolls in.\n *\n * Consumer-invoked (the consumer owns the virtualizer instance).\n *\n * The effect keys ONLY on `focusedKey`/`isOpen` — i.e. it runs when the *active option* changes,\n * not on every render. This is essential: `useVirtual` returns a new `virtualizer` object on every\n * render and re-renders on every scroll frame, so depending on it would re-fire `scrollToIndex` on\n * each scroll tick and fight the user's scrollbar drag. The mutable inputs are read through a ref\n * instead. Hovering an option also moves `focusedKey`, but a hovered option is by definition already\n * rendered/visible, so `scrollToIndex` (align \"auto\") is a no-op for it.\n */\nexport function useVirtualizedComboboxScroll<T>({\n state,\n filteredItems,\n getKey,\n virtualizer,\n}: UseVirtualizedComboboxScrollParams<T>): void {\n const focusedKey = state.selectionManager.focusedKey;\n const isOpen = state.isOpen;\n\n // Latest mutable inputs, read inside the effect without adding them as deps (they change identity\n // every render / scroll frame).\n const latest = useRef({ filteredItems, getKey, virtualizer });\n latest.current = { filteredItems, getKey, virtualizer };\n\n useEffect(() => {\n if (!isOpen || focusedKey == null) return;\n const { filteredItems: items, getKey: key, virtualizer: v } = latest.current;\n const index = items.findIndex((item) => key(item) === focusedKey);\n if (index < 0) return;\n // Defer one frame so the collection re-render + virtualizer measurement settle before we scroll.\n const raf = requestAnimationFrame(() => v.scrollToIndex(index));\n return () => cancelAnimationFrame(raf);\n }, [focusedKey, isOpen]);\n}\n","// Single source of truth for the DM Sans font-family stack used by Databricks One surfaces\n// (webapp DatabricksOneRouter, accounts-ui DatabricksOneWrapper). Co-located with the vendored\n// font CSS under `@databricks/design-system/fonts/dm-sans.css` so consumers can import both\n// from the design-system without duplicating the fallback chain.\nexport const DM_SANS_FONT_FAMILY =\n \"'DM Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, 'Noto Sans', sans-serif\";\n\n// Monospace counterpart to DM_SANS_FONT_FAMILY, vendored under\n// `@databricks/design-system/fonts/dm-mono.css`. Falls back to the platform monospace stack so\n// code and other tabular text keep a fixed-width face if the web font fails to load.\nexport const DM_MONO_FONT_FAMILY =\n \"'DM Mono', ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, 'Liberation Mono', 'Courier New', monospace\";\n"],"names":["consumerDarkColorList","actionDangerDefaultBackgroundDefault","actionDangerDefaultBackgroundHover","actionDangerDefaultBackgroundPress","actionDangerDefaultBorderDefault","primitives","red500","actionDangerDefaultBorderHover","red400","actionDangerDefaultBorderPress","red300","actionDangerDefaultTextDefault","actionDangerDefaultTextHover","actionDangerDefaultTextPress","actionDangerPrimaryBackgroundDefault","actionDangerPrimaryBackgroundHover","actionDangerPrimaryBackgroundPress","actionDangerPrimaryText","grey800","actionDefaultBackgroundDefault","whiteAlpha00","actionDefaultBackgroundHover","whiteAlpha06","actionDefaultBackgroundPress","whiteAlpha10","actionDefaultBorderDefault","actionDefaultBorderFocus","blue400","actionDefaultBorderHover","actionDefaultBorderPress","grey500","actionDefaultIconDefault","grey350","actionDefaultIconHover","actionDefaultIconPress","blue300","actionDefaultTextDefault","grey100","actionDefaultTextHover","actionDefaultTextPress","actionDisabledBackground","grey650","actionDisabledBorder","grey600","actionDisabledText","actionIconBackgroundDefault","actionIconBackgroundHover","actionIconBackgroundPress","actionIconIconDefault","actionIconIconHover","grey300","actionIconIconPress","grey200","actionLinkDefault","blue500","actionLinkHover","actionLinkPress","actionPrimaryBackgroundDefault","actionPrimaryBackgroundHover","actionPrimaryBackgroundPress","actionPrimaryIcon","actionPrimaryTextDefault","actionPrimaryTextHover","actionPrimaryTextPress","actionTertiaryBackgroundDefault","actionTertiaryBackgroundHover","actionTertiaryBackgroundPress","actionTertiaryIconDefault","actionTertiaryIconHover","actionTertiaryIconPress","actionTertiaryTextDefault","actionTertiaryTextHover","actionTertiaryTextPress","backgroundDanger","backgroundPrimary","backgroundSecondary","grey700","backgroundSuccess","backgroundWarning","border","borderAccessible","borderDanger","borderWarning","yellow500","codeBackground","iconTrending","orange","overlayOverlay","progressFill","progressFillPrimary","blue600","progressTrack","skeleton","tableBackgroundSelectedDefault","tableBackgroundSelectedHover","tableBackgroundUnselectedDefault","tableBackgroundUnselectedHover","textPlaceholder","grey400","textPrimary","textSecondary","textValidationDanger","textValidationSuccess","green500","textValidationWarning","tooltipBackgroundTooltip","tooltipTextTooltip","consumerLightColorList","red600","red700","red800","white","blackAlpha00","blackAlpha05","blackAlpha08","neutral300","neutral350","neutral500","neutral800","neutral100","neutral200","blue700","blue800","neutral650","neutral600","red100","neutralWarm050","green100","yellow100","yellow300","blackAlpha26","blackAlpha02","green600","yellow600","noop","blockActiveInteractions","holdName","globalThis","__perfHooks","rit","measureQueue","updateQueue","isScheduled","releaseInteractionHolds","runTasks","tasks","forEach","task","fn","resolve","error","reject","flush","tasksToMeasure","tasksToUpdate","releaseAfterFlush","start","performance","now","measure","end","detail","length","scheduleFlush","requestAnimationFrame","createCancellableTask","queue","promise","Promise","push","cancel","filter","t","update","flushFastdomForTesting","useFastDom","setError","useState","useRef","useEffect","current","scheduleTask","useCallback","type","catch","err","prev","finally","mutate","DANGEROUS_PROTOCOL_RE","ASCII_TAB_OR_NEWLINE_RE","isSafeUrl","url","normalized","replace","test","isSafeRelativeUrl","startsWith","sanitizeNextUrl","nextUrl","fallbackUrl","setupDesignSystemEventProviderForTesting","eventCallback","eventCallbackWrapper","arg","componentViewId","rest","DesignSystemEventProviderForTest","children","_jsx","DesignSystemEventProvider","callback","getColorDelta","colors","ambientColors","delta","colorName","DesignTokenScopeWithEmotionTheme","theme","ambientTheme","useDesignSystemTheme","semanticColors","useMemo","EmotionThemeProvider","DesignTokenScope","isDarkMode","useDesignSystemFlags","context","useDesignSystemContext","flags","useThemedStyles","styleFactory","styleFactoryRef","filledIconsMap","DangerFillIcon","warning","WarningFillIcon","success","CheckCircleFillIcon","info","InfoFillIcon","SeverityIcon","forwardRef","props","ref","FilledIcon","severity","Alert","componentId","analyticsEvents","DesignSystemEventProviderAnalyticsEventTypes","OnView","dangerouslySetAntdProps","closable","closeIconLabel","onClose","actions","showMoreContent","showMoreText","showMoreModalTitle","forceVerticalActionsPlacement","forceHorizontalActionsPlacement","collapsible","defaultExpanded","expandToggleAriaLabel","collapseToggleAriaLabel","size","getPrefixedClassName","memoizedAnalyticsEvents","eventContext","useDesignSystemEventComponentCallbacks","componentType","DesignSystemEventProviderComponentTypes","componentSubType","DesignSystemEventProviderComponentSubTypeMap","closeButtonEventContext","Button","OnClick","elementRef","useNotifyOnFirstView","onView","clsPrefix","isModalOpen","setIsModalOpen","isExpanded","setIsExpanded","descriptionRegionId","useStableUuidV4","mergedProps","showIcon","closeIconRef","removeAttribute","closest","setAttribute","onCloseWrapper","e","onClick","memoizedActions","map","action","index","actionCount","placeActionsHorizontally","horizontalActionsNode","div","css","display","flexDirection","flexWrap","gap","spacing","sm","alignItems","justifyContent","flexShrink","marginInlineStart","hasDescription","description","Boolean","messageWithHorizontalActions","_jsxs","md","width","flex","maxWidth","message","hasVerticalActions","showCollapseToggle","hasDescriptionSlotContent","descriptionTextNode","overflowWrap","wordBreak","Typography","Link","href","preventDefault","verticalActionsNode","marginTop","xs","marginBottom","descriptionBody","_Fragment","finalDescription","id","undefined","alertIcon","aria-expanded","aria-controls","aria-label","htmlType","icon","ChevronDownIcon","color","ChevronRightIcon","v","DesignSystemAntDConfigProvider","AntDAlert","addDebugOutlineIfEnabled","className","cx","getAlertEmotionStyles","banner","closeText","CloseSmallIcon","dataComponentProps","Modal","title","visible","onCancel","footer","alertType","isBanner","hasDescriptionContent","isSmall","classCloseIcon","classCloseText","classDescription","classMessage","classIcon","BORDER_SIZE","general","borderWidth","LARGE_PADDING","SMALL_PADDING","ICON_GAP","styles","padding","boxSizing","borderRadius","token","ShapeTokens","INFO_CONTAINER_BORDER_RADIUS","borders","borderRadiusSm","borderColor","position","top","left","fontSize","iconFontSize","height","typography","lineHeightBase","marginRight","minWidth","fontSizeBase","fontWeight","typographyBoldFontWeight","lineHeight","right","marginLeft","outlineStyle","outlineColor","green300","backgroundColor","borderStyle","getAnimationCss","options","enableAnimation","getGlobalStyles","bodyStyles","globalResetStyles","getGlobalResetStyles","ApplyGlobalStyles","Global","AutoComplete","AntDAutoComplete","dropdownStyle","boxShadow","shadowLow","getDarkModePortalStyles","Option","SvgDatabricksIcon","svg","viewBox","xmlns","rect","fill","path","d","SvgUserIcon","InfoPopover","popoverProps","iconTitle","iconProps","isKeyboardFocusable","ariaLabel","isInsideModal","useModalContext","open","setOpen","handleKeyDown","event","key","onKeyDown","restPopoverProps","Popover","onOpenChange","asChild","span","style","cursor","tabIndex","role","stopPropagation","InfoSmallIcon","aria-hidden","align","TruncationTooltip","tooltipProps","tooltipContent","setTooltipContent","childRef","handleOpenChange","shouldOpen","isHorizontallyTruncated","scrollWidth","clientWidth","isVerticallyTruncated","scrollHeight","clientHeight","textContent","wrappedChildren","React","isValidElement","childElement","originalRef","cloneElement","node","aria-describedby","Tooltip","content","OverflowPopover","items","renderLabel","tooltipText","defaultOpen","showTooltip","setShowTooltip","label","trigger","item","SIZE","Map","avatarSize","groupShift","iconSize","DEFAULT_SIZE","getAvatarEmotionStyles","get","abbr","tagText","textDecoration","textTransform","default","iconfontCssPrefix","DU_BOIS_INTERNAL_ONLY","tagBackgroundDefault","img","objectFit","objectPosition","system","overflow","user","userIcon","getRandomNumberFromString","value","maxRange","hash","char","i","charCodeAt","idx","Math","abs","getAvatarBackgroundColor","randomNumber","indigo","teal","pink","brown","purple","Avatar","src","alt","substring","trim","DBAssistantAvatar","defaultLabel","AssistantAvatar","SparkleDoubleIcon","MAX_AVATAR_GROUP_USERS","getAvatarGroupEmotionStyles","container","avatarsContainer","avatar","AvatarGroup","users","displayedUsers","slice","extraUsers","avatarShift","AntDBreadcrumbWithChildren","AntDBreadcrumbRaw","Breadcrumb","includeTrailingCaret","classNamePrefix","separatorClass","a","separator","Item","Separator","GenericContainerStyles","GenericSkeleton","frameRate","loading","loadingDescription","restProps","genSkeletonAnimatedColor","borderRadiusBase","LoadingState","visuallyHidden","paragraphContainerStyles","paragraphFillStyles","ParagraphSkeleton","seed","offsetWidth","getOffsets","TableContext","createContext","grid","Table","someRowsSelected","pagination","empty","scrollable","noMinHeight","onScroll","tableContentRef","useImperativeHandle","minHeightCss","minHeight","DesignSystemEventSuppressInteractionProviderContext","Provider","DesignSystemEventSuppressInteractionTrueContextValue","tableRowHover","borderDecorative","tableStyles","tableWrapper","classnames","table","lg","paginationContainer","TableCell","ellipsis","multiline","wrapContent","useContext","linkWithEllipsisCss","typographySize","Text","textAlign","repeatingElementsStyles","cell","tableClassNames","TableRowContext","isHeader","TableRow","skipIconHiding","verticalAlignment","shouldUseLargeVerticalPadding","rowPadding","hideIconButtonRowStyles","row","TableRowActionStyles","paddingTop","paddingBottom","TableRowAction","hideIconButtonActionCellClassName","TableRowMenuContainer","TableSkeletonStyles","background","TableSkeleton","lines","widths","aria-busy","Array","_","TableSkeletonRows","actionColumnIds","numRows","keys","getFlatHeaders","header","meta","column","columnDef","fallbackStyle","getSize","includes","numSkeletonLines","LOADING_STATE_DEFAULT_WIDTH","getStyles","args","hasTopBar","hasBottomBar","isInteractive","hoverOrFocusStyle","shadows","paddingRight","paddingLeft","borderRadiusMd","transition","getBottomBarStyles","borderBottomRightRadius","borderBottomLeftRadius","getTopBarStyles","borderTopRightRadius","borderTopLeftRadius","Card","customLoadingContent","dangerouslyAppendEmotionCSS","bottomBarContent","topBarContent","disableHover","navigateFn","anchorProps","shouldStartInteraction","dataAndAttributes","emitOnView","safex","isUndefined","hasHref","hasOnClick","hasNavigateFn","cardStyle","bottomBar","topBar","contentPadding","cardRef","mergedRef","useMergeRefs","navigate","handleClick","blur","handleSelection","isEnter","isSpace","isCardFocused","target","currentTarget","DefaultCardLoadingContent","flexGrow","TitleSkeleton","getEmotionStyles","classFocused","classActiveBar","classSeparator","classSuffix","POPUP_BORDER_RADIUS","outline","outlineOffset","getDropdownStyles","zIndex","zIndexBase","useDatePickerStyles","AccessibilityWrapper","ariaLive","inputs","querySelectorAll","input","DuboisDatePicker","wrapperDivProps","AntDDatePicker","popupStyle","RangePicker","TimePicker","QuarterPicker","WeekPicker","MonthPicker","YearPicker","LegacyDatePicker","Object","assign","margin","borderBottom","alignSelf","DialogComboboxAddButton","isInsideDialogCombobox","useDialogComboboxContext","Error","getComboboxOptionItemWrapperStyles","importantify","PlusIcon","DialogComboboxFooter","getFooterStyles","DialogComboboxHintRow","fontSizeSm","extractTextContent","toString","Children","toArray","join","filterChildren","searchValue","lowerCaseSearchValue","toLowerCase","child","childType","defaultProps","_TYPE","childTextContent","childValue","DialogComboboxOptionListSearch","onChange","onSearch","virtualized","hasWrapper","controlledValue","setControlledValue","rightSearchControls","forwardedRef","setDisableMouseOver","isInsideDialogComboboxOptionList","useDialogComboboxOptionListContext","noResultId","generateUuidV4","inputRef","setSearchValue","handleOnChange","filteredChildren","inputWrapperRef","optionItems","getContentOptions","highlightedOption","findHighlightedOption","firstOptionItem","highlightOption","handleOnKeyDown","nextOption","findClosestOptionSibling","firstOption","lastOption","click","childrenIsNotEmpty","some","hasFilteredResults","Input","name","prefix","SearchIcon","placeholder","shouldPreventFormSubmission","aria-live","EmptyResults","DialogComboboxOptionControlledList","withProgressiveLoading","withSearch","showAllOption","allOptionLabel","multiSelect","setValue","setIsControlled","lookAhead","setLookAhead","lookAheadTimeout","clearTimeout","setTimeout","hasTabIndexedOption","from","optionItem","getAttribute","isOptionChecked","reduce","acc","option","handleUpdate","updatedValue","newValue","find","handleSelectAll","renderedOptions","DialogComboboxOptionListCheckboxItem","checked","indeterminate","DialogComboboxOptionListSelectItem","optionList","DialogComboboxOptionList","DialogComboboxOptionListContextProvider","LoadingSpinner","DialogComboboxSeparator","Dropdown","AntDDropdown","mouseLeaveDelay","overlayStyle","getLabelStyles","inline","getLabelWrapperStyles","Label","required","infoPopoverContents","infoPopoverProps","labelTopRightElement","getSwitchWithLabelStyles","disabled","SWITCH_WIDTH","borderRadiusFull","outlineWidth","animation","opacity","importantStyles","AntDSwitchInternal","labelProps","activeLabel","inactiveLabel","disabledLabel","duboisId","useUniqueId","uniqueId","isChecked","setIsChecked","defaultChecked","OnValueChange","Switch","valueHasNoPii","viewRef","handleToggle","newState","onValueChange","onChangeHandler","hasNewLabels","stateMessage","idPropObj","switchComponent","AntDSwitch","labelComponent","htmlFor","logAntdPropWarning","process","env","NODE_ENV","console","warn","NativeSwitch","uncontrolledChecked","setUncontrolledChecked","handleChange","nextChecked","antdEvent","rootClassName","checkedStateProps","switchControl","useNativeSwitch","ROOT_CSS","TypeaheadComboboxRoot","comboboxState","floatingStrategy","refs","floatingStyles","useFloating","whileElementsMounted","autoUpdate","middleware","offset","flip","shift","placement","strategy","typeaheadComboboxRootRef","firstOnViewValue","contextValue","isInsideTypeaheadCombobox","floatingUiRefs","TypeaheadComboboxContextProvider","getComboboxProps","suppressRefError","data-component-type","TypeaheadCombobox","data-component-id","TYPEAHEAD_COMBOBOX_MENU_STYLES","TypeaheadComboboxMenu","emptyText","maxHeight","listWrapperHeight","virtualizerRef","matchTriggerWidth","getMenuProps","isOpen","downshiftRef","downshiftProps","viewPortMaxHeight","setViewPortMaxHeight","inputWidth","useTypeaheadComboboxContext","setFloating","getPopupContainer","themeClass","useDuboisThemeClass","themeOverrideStyle","useDesignTokenOverrideStyles","recalculateMaxHeight","floating","reference","computePosition","apply","availableHeight","window","addEventListener","removeEventListener","hasFragmentWrapper","isArray","Fragment","filterableChildren","hasResults","_type","menuItemChildren","isFooter","createPortal","ul","getComboboxContentWrapperStyles","document","body","getToggleButtonStyles","userSelect","pointerEvents","TypeaheadComboboxToggleButton","button","TYPEAHEAD_COMBOBOX_CONTROLS_HEIGHT","TypeaheadComboboxControls","getDownshiftToggleButtonProps","showClearSelectionButton","showComboboxToggleButton","handleClear","ClearSelectionButton","getInputStyles","textOverflow","TypeaheadComboboxInput","allowClear","formOnChange","clearInputValueOnFocus","suffix","setInputWidth","getInputProps","getToggleButtonProps","toggleMenu","inputValue","setInputValue","reset","selectedItem","previousInputValue","domReference","getBoundingClientRect","setReference","getContainerStyles","validationState","validationColor","getValidationStateColor","verticalAlign","TAG_ROW_HEIGHT","DEFAULT_VERTICAL_PADDING","MIDDLE_VERTICAL_PADDING","getVerticalPadding","CONTROLS_ROW_OFFSET","getScrollContainerStyles","verticalPadding","overflowY","overflowX","getContentWrapperStyles","getInputWrapperStyles","appearance","TypeaheadComboboxMultiSelectInput","multipleSelectionState","selectedItems","setSelectedItems","getSelectedItemLabel","showTagAfterValueCount","disableTooltip","getSelectedItemProps","getDropdownProps","removeSelectedItem","setContextInputWidth","contextInputWidth","containerRef","mergedContainerRef","scrollContainerRef","itemsRef","measureRef","innerRef","mergedInputRef","isResponsive","fixedTagCount","responsiveVisibleCount","setResponsiveVisibleCount","selectedItemsToRender","shouldShowCountBadge","countBadgeStartAt","focus","useLayoutEffect","measuredWidth","ResizeObserver","observer","observe","disconnect","itemsEl","tagEls","firstTop","offsetTop","onFirstLine","el","firstLineTagCount","inputWrapperEl","querySelector","inputWrapped","nextCount","max","isPartiallyHidden","innerHeight","float","selectedItemForRender","TypeaheadComboboxSelectedItem","data-slot","CountBadge","countStartAt","totalCount","visibility","whiteSpace","side","TypeaheadComboboxSectionHeader","SectionHeader","TypeaheadComboboxSeparator","TypeaheadComboboxAddButton","onMouseUp","RHFControlledInput","control","rules","field","useController","defaultValue","RHFControlledPasswordInput","Password","RHFControlledTextArea","TextArea","RHFControlledLegacySelect","LegacySelect","RHFControlledSelect","triggerProps","contentProps","optionProps","selectedValueLabel","setSelectedValueLabel","renderedChildren","Select","SelectTrigger","onBlur","SelectContent","_createElement","SelectOption","RHFControlledDialogCombobox","optionListProps","valueMap","setValueMap","updateValueMap","handleOnChangeSingleSelect","handleOnChangeMultiSelect","handleOnClear","DialogCombobox","DialogComboboxTrigger","onClear","withInlineLabel","DialogComboboxContent","RHFControlledTypeaheadCombobox","allItems","itemToString","matcher","allowNewValue","inputProps","menuProps","onInputChange","preventUnsetOnBlur","setItems","useComboboxState","formValue","formOnBlur","lastEmmitedInputValue","RHFControlledMultiSelectTypeaheadCombobox","handleItemUpdate","useMultipleSelectionState","LazyRHFControlledTypeaheadComboboxV2","lazy","then","m","RHFControlledTypeaheadComboboxV2","LazyRHFControlledMultiSelectTypeaheadComboboxV2","RHFControlledMultiSelectTypeaheadComboboxV2","Suspense","fallback","RHFControlledCheckboxGroup","Checkbox","Group","RHFControlledCheckbox","RHFControlledRadioGroup","Radio","RHFControlledSwitch","RHFControlledComponents","CheckboxGroup","RadioGroup","MultiSelectTypeaheadCombobox","TypeaheadComboboxV2","MultiSelectTypeaheadComboboxV2","getMessageStyles","errorClass","infoClass","successClass","warningClass","lineHeightSm","VALIDATION_STATE_ICONS","DangerIcon","CheckCircleIcon","WarningIcon","FormMessage","stateClass","StateIcon","wrapperClass","getHorizontalInputStyles","labelColWidth","inputColWidth","HorizontalFormRow","FormUI","Message","Hint","Col","AntDCol","ROW_GUTTER_SIZE","Row","gutter","AntDRow","Space","AntDSpace","getHeaderStyles","breadcrumbClass","Header","breadcrumbs","titleAddOns","buttons","titleElementLevel","allowTitleWrap","buttonsArray","titleWrapper","rowGap","breadcrumbWrapper","titleIfOtherElementsPresent","buttonContainer","titleAddOnsWrapper","Title","level","elementLevel","wrap","defaultKey","HoverCard","sideOffset","withArrow","hoverCardStyles","useHoverCardStyles","RadixHoverCard","Root","Trigger","Portal","Content","Arrow","CONSTANTS","arrowWidth","arrowHeight","arrowBottomLength","arrowSide","arrowStrokeWidth","arrow","stroke","strokeDashoffset","strokeDasharray","strokeWidth","useLegacyNotification","notificationInstance","contextHolder","antDNotification","useNotification","getContainer","mergedArgs","iconClassName","closeIcon","CloseIcon","closeLabel","wrappedNotificationAPI","close","duration","withNotifications","Component","notificationAPI","notificationContextHolder","LegacyPopover","AntDPopover","RestoreAntDDefaultClsPrefix","LegacySkeleton","loadingStateLoading","AccessibleContainer","AntDSkeleton","Image","Menu","AntDMenu","ItemGroup","SubMenu","ClassNames","popupClassName","popupOffset","DEFAULT_SEVERITY_LABELS","noopSwipeHandler","preventSwipeToClose","onSwipeMove","onSwipeEnd","hideAnimation","keyframes","to","slideInAnimation","transform","swipeOutAnimation","getToastRootStyle","columnGap","gridTemplateRows","gridTemplateColumns","gridRow","gridColumn","severityLabel","Notification","Toast","getViewportStyle","listStyle","getTitleStyles","getDescriptionStyles","Description","getCloseStyles","Close","Viewport","DU_BOIS_ENABLE_ANIMATION_CLASSNAME","triggerStyles","containerStyles","Overflow","noMargin","visibleItemsCount","childrenList","visibleItems","additionalItems","renderOverflowLabel","Tag","PageWrapper","STATUS_TO_ICON","online","CircleIcon","disconnected","CircleOutlineIcon","offline","CircleOffIcon","ResourceStatusIndicator","status","StatusIcon","SnackBarManager","snacks","listeners","Set","subscribe","listener","add","delete","getSnapshot","notifyListeners","addSnack","config","snackId","uid","crypto","randomUUID","doesSnackExist","snack","vertical","horizontal","autoDismiss","closeSnack","deleteSnack","snackBarManager","getCloseButtonStyles","notLink","getBtnClassName","fadeInAnimation","fadeOutAnimation","getSnackBarRootStyle","textColor","isSnackbarVertical","isSnackbarHorizontal","base","verticalStyle","bottom","horizontalStyle","SnackBarRoot","SnackBar","handleAnimationEnd","animationName","closeButton","onAnimationEndCapture","useSyncExternalStore","snacksByPosition","grouped","entries","snacksAtPosition","split","useSnackBar","Steps","AntDSteps","Step","getTableFilterInputStyles","defaultWidth","responsive","mediaQueries","xxl","TableFilterInput","SearchInput","onSubmit","showSearchButton","containerProps","searchButtonProps","ignoreFilterMediaSizing","DEFAULT_WIDTH","component","heightSm","form","TableFilterLayout","tableFilterLayoutStyles","layout","filters","filterActions","TableHeaderResizeHandle","resizeHandler","increaseWidthHandler","decreaseWidthHandler","isPopoverOpen","setIsPopoverOpen","dragStartPosRef","initialEventRef","initialRenderRef","isDragging","MAX_DRAG_DISTANCE","handlePointerDown","x","clientX","y","clientY","handlePointerMove","dx","handlePointerUp","result","onPointerDown","resizeHandleContainer","resizeHandle","MinusSquareIcon","PlusSquareIcon","TableHeader","sortable","sortDirection","onToggleSort","isResizing","setColumnSizing","resizable","getCanResize","getResizeHandler","supportsColumnPopover","currentSortDirection","setCurrentSortDirection","tableHeaderRef","sortIcon","ariaSort","SortAscendingIcon","SortDescendingIcon","SortUnsortedIcon","sortIconOnLeft","bold","getColumnResizeHandler","newSize","old","currentSize","renderResizeHandle","isSortButtonVisible","aria-sort","headerButtonTarget","sortHeaderIconOnLeft","sortHeaderIconOnRight","TableRowActionHeader","TableRowMultiAction","emotionCss","TableRowSelectCell","noCheckbox","isDisabled","checkboxLabel","useNativeCheckbox","nativeIsChecked","checkboxCell","_checked","nativeEvent","treeGridReducer","state","expandedRows","rowId","activeRowId","useDefaultTreeGridState","initialState","dispatch","useReducer","toggleRowExpanded","setActiveRowId","flattenData","data","depth","parentId","findFocusableElementForCellIndex","cellIndex","cells","findNextFocusableCellIndexInRow","columns","startIndex","direction","increment","limit","focusableElement","cellContent","contentFocusable","TreeGrid","renderCell","renderRow","renderTable","renderHeader","onRowKeyboardSelect","onCellKeyboardSelect","includeHeader","providedState","defaultState","gridRef","flattenedData","focusRow","rowIndex","focusElement","element","newRowIndex","closestTd","contains","activeElement","handleArrowVerticalNavigation","currentCellIndex","targetRow","moveFocusToRow","findIndex","r","dataset","HTMLTableRowElement","min","handleArrowHorizontalNavigation","currentRow","targetCellIndex","targetCell","firstCell","firstFocusableCell","handleEnterKey","defaultRenderRow","rowProps","tr","defaultRenderTable","tableProps","defaultRenderHeader","headerProps","thead","th","renderRowWrapper","isKeyboardActive","colIndex","cellProps","isRowHeader","rowDepth","rowIsKeyboardActive","rowIsExpanded","tbody","footerFocusable","listBoxRef","popoverRef","buttonRef","triggerRef","footerRef","itemsByKey","getKeyForItem","removeByKey","clearSelection","onInputBlur","ariaInputProps","listBoxProps","buttonProps","useComboBox","shouldFocusWrap","next","relatedTarget","Node","showAllOptionsOnOpen","comboBoxState","TypeaheadComboboxV2ContextProvider","focusFirstFocusable","focused","createFocusManager","focusFirst","tabbable","focusAdjacentFocusable","active","HTMLElement","manager","focusNext","focusPrevious","TypeaheadComboboxFooter","useTypeaheadComboboxV2Context","setFooterRef","returnFocusToInput","moved","shiftKey","MENU_STYLES","_ref","ctx","TypeaheadComboboxMenuContents","rawListBoxProps","triggerWidth","isInsideRadixModal","useRadixModalContext","popoverMaxHeight","overlayProps","dismissProps","useOverlay","shouldCloseOnBlur","isDismissable","shouldCloseOnInteractOutside","positionProps","useOverlayPosition","targetRef","overlayRef","useIsomorphicLayoutEffect","popover","isVirtualized","useListBox","setListBoxRef","mergeRefs","modalContentNode","portalContainer","Overlay","disableFocusManagement","DismissButton","onDismiss","li","TypeaheadComboboxCheckboxItemInner","selectedMatcher","textOverflowMode","disabledReason","hintContent","itemRef","setRef","isFocused","useOption","isSelected","selectionManager","useScrollOptionIntoView","getMenuItemStyles","getCheckboxStyles","getInfoIconStyles","InfoTooltip","HintRow","TypeaheadComboboxCheckboxItem","ariaButtonProps","useButton","setTriggerWidth","handleKeyDownCapture","setFocusedKey","antdInput","mergeProps","onKeyDownCapture","TypeaheadComboboxMultiSelectInputInner","_setSelectedItems","setContainerRef","setInputElRef","currentInputValue","prevSelectedCount","grew","scrollTop","componentIdProp","mapItemsToString","JSON","stringify","useComboboxItems","itemToStringProp","getKey","getKeyProp","String","wrappedItems","w","has","set","itemsByTextValue","group","useComboboxStateProps","isItemDisabled","initialInputValue","initialSelectedItem","onStateChange","onIsOpenChange","externalSelectedItems","externalSetSelectedItems","stateRef","disabledKeys","useFilter","sensitivity","defaultFilter","textValue","lowerCasedInputValue","toLocaleLowerCase","isControlledSingleSelect","handleSelectionChange","selected","k","defaultInputValue","defaultItems","allowsCustomValue","defaultSelectedKey","selectionMode","wrapped","useRestoreHighlightedOption","collection","focusedKey","selectedKey","selectedNode","getItem","showingSelection","candidate","getFirstKey","getKeyAfter","stateOptions","useComboBoxState","selectedKeys","it","selectedItemsRef","custom","filteredItems","out","normalizedKey","setSelectedKey","removeItem","keyFor","addItem","clear","useVirtualizedComboboxScroll","virtualizer","latest","raf","scrollToIndex","cancelAnimationFrame","DM_SANS_FONT_FAMILY","DM_MONO_FONT_FAMILY"],"mappings":"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"}
|