@redsift/design-system 7.7.0 → 7.8.1

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/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../src/types/fonts.ts","../src/types/colors.ts","../src/types/styles.ts","../src/utils/isComponent.ts","../src/utils/filterComponents.ts","../src/utils/partitionComponents.ts","../src/utils/redsift-design-tokens.ts","../src/utils/warnIfNoAccessibleLabelFound.ts","../src/hooks/useWindowSize.ts","../src/components/alert/types.ts","../src/components/alert/intl/index.ts","../src/components/icon-button/types.ts","../src/components/icon/types.ts","../src/components/shared/styles.ts","../src/components/icon/styles.ts","../src/components/icon/Icon.tsx","../src/components/button/types.ts","../src/components/button/styles.ts","../src/components/spinner/intl/index.ts","../src/components/spinner/types.ts","../src/components/spinner/styles.ts","../src/components/app-container/context.ts","../src/components/app-container/styles.ts","../src/components/app-container/AppContainer.tsx","../src/components/spinner/Spinner.tsx","../src/components/button/Button.tsx","../src/components/icon-button/styles.ts","../src/components/icon-button/IconButton.tsx","../src/components/alert/styles.ts","../src/components/heading/types.ts","../src/components/heading/styles.ts","../src/components/heading/Heading.tsx","../src/components/flexbox/styles.ts","../src/components/flexbox/Flexbox.tsx","../src/components/alert/Alert.tsx","../src/components/app-bar/intl/index.ts","../src/hooks/useIsLoaded.ts","../src/components/app-bar/styles.ts","../src/components/app-bar/AppBar.tsx","../src/components/app-content/styles.ts","../src/components/app-content/AppContent.tsx","../src/components/app-side-panel/styles.ts","../src/components/app-side-panel/AppSidePanel.tsx","../src/components/side-navigation-menu/types.ts","../src/components/side-navigation-menu-bar/context.ts","../src/components/side-navigation-menu/context.ts","../src/components/side-navigation-menu-item/styles.ts","../src/components/badge/types.ts","../src/components/badge/styles.ts","../src/components/badge/Badge.tsx","../src/components/side-navigation-menu-item/SideNavigationMenuItem.tsx","../src/components/side-navigation-menu/styles.ts","../src/components/side-navigation-menu/reducer.ts","../src/components/side-navigation-menu/SideNavigationMenu.tsx","../src/components/side-navigation-menu-bar/styles.ts","../src/hooks/useBoundingRect.ts","../src/components/side-navigation-menu-bar/SideNavigationMenuBar.tsx","../src/components/side-navigation-menu-bar/useSideNavigationMenuBar.tsx","../src/components/app-side-panel/useAppSidePanel.tsx","../src/components/breadcrumb-item/styles.ts","../src/components/breadcrumb-item/BreadcrumbItem.tsx","../src/components/breadcrumbs/styles.ts","../src/components/breadcrumbs/Breadcrumbs.tsx","../src/components/button-link/ButtonLink.tsx","../src/components/card/intl/index.ts","../src/components/card/styles.ts","../src/components/card-header/styles.ts","../src/components/skeleton/styles.ts","../src/components/skeleton-circle/styles.ts","../src/components/skeleton-circle/SkeletonCircle.tsx","../src/components/skeleton-text/types.ts","../src/components/skeleton-text/styles.ts","../src/components/skeleton-text/SkeletonText.tsx","../src/components/skeleton/Skeleton.tsx","../src/components/card-header/CardHeader.tsx","../src/components/card-body/styles.ts","../src/components/card-body/CardBody.tsx","../src/components/card-actions/styles.ts","../src/components/card-actions/CardActions.tsx","../src/components/card/Card.tsx","../src/components/checkbox-group/types.ts","../src/components/checkbox-group/context.ts","../src/components/checkbox-group/styles.ts","../src/components/checkbox-group/CheckboxGroup.tsx","../src/components/checkbox/styles.ts","../src/components/checkbox/Checkbox.tsx","../src/components/conditional-wrapper/ConditionalWrapper.tsx","../src/components/detailed-card/intl/index.ts","../src/components/shield/types.ts","../src/components/shield/styles.ts","../src/components/shield/Shield.tsx","../src/components/detailed-card-section/intl/index.ts","../src/components/detailed-card-collapsible-section-items/styles.ts","../src/components/detailed-card-collapsible-section-items/DetailedCardCollapsibleSectionItems.tsx","../src/components/detailed-card-section/styles.ts","../src/components/text/types.ts","../src/components/text/styles.ts","../src/components/text/Text.tsx","../src/components/detailed-card-section/DetailedCardSection.tsx","../src/components/detailed-card/styles.ts","../src/components/detailed-card-header/styles.ts","../src/components/detailed-card-header/DetailedCardHeader.tsx","../src/components/pill/styles.ts","../src/components/pill/Pill.tsx","../src/components/detailed-card-section-item/styles.ts","../src/components/detailed-card-section-item/DetailedCardSectionItem.tsx","../../../node_modules/tabbable/dist/index.esm.js","../../../node_modules/@floating-ui/core/dist/floating-ui.core.mjs","../../../node_modules/@floating-ui/dom/dist/floating-ui.dom.mjs","../../../node_modules/@floating-ui/react-dom/dist/floating-ui.react-dom.esm.js","../../../node_modules/@floating-ui/react/dist/floating-ui.react.esm.js","../../popovers/src/components/tooltip/context.ts","../../popovers/src/components/tooltip/types.ts","../../popovers/src/components/tooltip-content/styles.ts","../../popovers/src/components/tooltip-content/TooltipContent.tsx","../../popovers/src/components/tooltip-trigger/TooltipTrigger.tsx","../../popovers/src/components/tooltip/useTooltip.tsx","../../popovers/src/components/tooltip/Tooltip.tsx","../../popovers/src/components/tooltip/useTooltipContext.tsx","../src/components/detailed-card/DetailedCard.tsx","../src/components/grid/styles.ts","../src/components/grid-item/styles.ts","../src/components/grid-item/GridItem.tsx","../src/components/grid/Grid.tsx","../src/components/link/styles.ts","../src/components/link/Link.tsx","../src/components/link-button/LinkButton.tsx","../src/components/number/styles.ts","../src/components/number/Number.tsx","../src/components/radio-group/types.ts","../src/components/radio-group/context.ts","../src/components/radio-group/styles.ts","../src/components/radio-group/RadioGroup.tsx","../src/components/radio/styles.ts","../src/components/radio/Radio.tsx","../src/components/switch-group/context.ts","../src/components/switch/styles.ts","../src/components/switch/Switch.tsx","../src/components/switch-group/types.ts","../src/components/switch-group/styles.ts","../src/components/switch-group/SwitchGroup.tsx"],"sourcesContent":["import { ValueOf } from './helpers';\n\n/**\n * Font.\n */\nexport const FontFamily = {\n raleway: 'raleway',\n 'source-code-pro': 'source-code-pro',\n electrolize: 'electrolize',\n} as const;\nexport type FontFamily = ValueOf<typeof FontFamily>;\n","import { ValueOf } from './helpers';\n\n/**\n * Color palette.\n */\nexport const ColorPalette = {\n default: 'default',\n success: 'success',\n error: 'error',\n warning: 'warning',\n info: 'info',\n question: 'question',\n 'no-data': 'no-data',\n} as const;\nexport type ColorPalette = ValueOf<typeof ColorPalette>;\n\nexport const ProductColorPalette = {\n website: 'website',\n ondmarc: 'ondmarc',\n oninbox: 'oninbox',\n ondomain: 'ondomain',\n hardenize: 'hardenize',\n tools: 'tools',\n} as const;\nexport type ProductColorPalette = ValueOf<typeof ProductColorPalette>;\n\nexport const DataVizColorPalette = {\n purple: 'purple',\n blue: 'blue',\n green: 'green',\n red: 'red',\n pink: 'pink',\n cyan: 'cyan',\n orange: 'orange',\n yellow: 'yellow',\n brown: 'brown',\n grey: 'grey',\n} as const;\nexport type DataVizColorPalette = ValueOf<typeof DataVizColorPalette>;\n\nexport const NeutralColorPalette = {\n black: 'black',\n darkgrey: 'darkgrey',\n midgrey: 'midgrey',\n lightgrey: 'lightgrey',\n xlightgrey: 'xlightgrey',\n white: 'white',\n} as const;\nexport type NeutralColorPalette = ValueOf<typeof NeutralColorPalette>;\n","import { ValueOf } from './helpers';\n\nexport const AlignSelf = {\n auto: 'auto',\n normal: 'normal',\n start: 'start',\n end: 'end',\n center: 'center',\n 'flex-start': 'flex-start',\n 'flex-end': 'flex-end',\n 'self-start': 'self-start',\n 'self-end': 'self-end',\n baseline: 'baseline',\n stretch: 'stretch',\n} as const;\nexport type AlignSelf = ValueOf<typeof AlignSelf>;\n\nexport const JustifySelf = {\n auto: 'auto',\n normal: 'normal',\n start: 'start',\n end: 'end',\n center: 'center',\n 'flex-start': 'flex-start',\n 'flex-end': 'flex-end',\n 'self-start': 'self-start',\n 'self-end': 'self-end',\n left: 'left',\n right: 'right',\n stretch: 'stretch',\n} as const;\nexport type JustifySelf = ValueOf<typeof JustifySelf>;\n\nexport const AlignContent = {\n 'flex-start': 'flex-start',\n 'flex-end': 'flex-end',\n center: 'center',\n 'space-between': 'space-between',\n 'space-around': 'space-around',\n 'space-evenly': 'space-evenly',\n stretch: 'stretch',\n start: 'start',\n end: 'end',\n baseline: 'baseline',\n 'first baseline': 'first baseline',\n 'last baseline': 'last baseline',\n} as const;\nexport type AlignContent = ValueOf<typeof AlignContent>;\n\nexport const AlignItems = {\n stretch: 'stretch',\n 'flex-start': 'flex-start',\n 'flex-end': 'flex-end',\n center: 'center',\n baseline: 'baseline',\n 'first baseline': 'first baseline',\n 'last baseline': 'last baseline',\n start: 'start',\n end: 'end',\n 'self-start': 'self-start',\n 'self-end': 'self-end',\n} as const;\nexport type AlignItems = ValueOf<typeof AlignItems>;\n\nexport const FlexDirection = {\n row: 'row',\n 'row-reverse': 'row-reverse',\n column: 'column',\n 'column-reverse': 'column-reverse',\n} as const;\nexport type FlexDirection = ValueOf<typeof FlexDirection>;\n\nexport const FlexWrap = {\n nowrap: 'nowrap',\n wrap: 'wrap',\n 'wrap-reverse': 'wrap-reverse',\n} as const;\nexport type FlexWrap = ValueOf<typeof FlexWrap>;\n\nexport const JustifyContent = {\n 'flex-start': 'flex-start',\n 'flex-end': 'flex-end',\n center: 'center',\n 'space-between': 'space-between',\n 'space-around': 'space-around',\n 'space-evenly': 'space-evenly',\n start: 'start',\n end: 'end',\n left: 'left',\n right: 'right',\n baseline: 'baseline',\n 'first baseline': 'first baseline',\n 'last baseline': 'last baseline',\n stretch: 'stretch',\n} as const;\nexport type JustifyContent = ValueOf<typeof JustifyContent>;\n\nexport const JustifyItems = {\n start: 'start',\n end: 'end',\n center: 'center',\n stretch: 'stretch',\n} as const;\nexport type JustifyItems = ValueOf<typeof JustifyItems>;\n\nexport interface LayoutProps {\n /** When used in a flex layout, specifies how the element will grow or shrink to fit the space available. See <a href=\"https://developer.mozilla.org/en-US/docs/Web/CSS/flex\">MDN</a>. */\n flex?: string;\n /** When used in a flex layout, specifies how the element will grow to fit the space available. See <a href=\"https://developer.mozilla.org/en-US/docs/Web/CSS/flex-grow\">MDN</a>. */\n flexGrow?: number;\n /** When used in a flex layout, specifies how the element will shrink to fit the space available. See <a href=\"https://developer.mozilla.org/en-US/docs/Web/CSS/flex-shrink\">MDN</a>. */\n flexShrink?: number;\n /** When used in a flex layout, specifies the initial main size of the element. See <a href=\"https://developer.mozilla.org/en-US/docs/Web/CSS/flex_basis\">MDN</a>. */\n flexBasis?: string;\n /** Overrides the alignItems property of a flex or grid container. See <a href=\"https://developer.mozilla.org/en-US/docs/Web/CSS/align-self\">MDN</a>. */\n alignSelf?: AlignSelf;\n /** Specifies how the element is justified inside a flex or grid container. See <a href=\"https://developer.mozilla.org/en-US/docs/Web/CSS/justify-self\">MDN</a>. */\n justifySelf?: string;\n /** The layout order for the element within a flex or grid container. See <a href=\"https://developer.mozilla.org/en-US/docs/Web/CSS/order\">MDN</a>. */\n order?: number;\n /** When used in a grid layout, specifies the named grid area that the element should be placed in within the grid. See <a href=\"https://developer.mozilla.org/en-US/docs/Web/CSS/grid-area\">MDN</a>. */\n gridArea?: string;\n /** When used in a grid layout, specifies the column the element should be placed in within the grid. See <a href=\"https://developer.mozilla.org/en-US/docs/Web/CSS/grid-column\">MDN</a>. */\n gridColumn?: string;\n /** When used in a grid layout, specifies the row the element should be placed in within the grid. See <a href=\"https://developer.mozilla.org/en-US/docs/Web/CSS/grid-row\">MDN</a>. */\n gridRow?: string;\n /** When used in a grid layout, specifies the starting column to span within the grid. See <a href=\"https://developer.mozilla.org/en-US/docs/Web/CSS/grid-column-start\">MDN</a>. */\n gridColumnStart?: string;\n /** When used in a grid layout, specifies the ending column to span within the grid. See <a href=\"https://developer.mozilla.org/en-US/docs/Web/CSS/grid-column-end\">MDN</a>. */\n gridColumnEnd?: string;\n /** When used in a grid layout, specifies the starting row to span within the grid. See <a href=\"https://developer.mozilla.org/en-US/docs/Web/CSS/grid-row-start\">MDN</a>. */\n gridRowStart?: string;\n /** When used in a grid layout, specifies the ending row to span within the grid. See <a href=\"https://developer.mozilla.org/en-US/docs/Web/CSS/grid-row-end\">MDN</a>. */\n gridRowEnd?: string;\n}\n\nexport interface SpacingProps {\n /** The margin for all four sides of the element. See <a href=\"https://developer.mozilla.org/en-US/docs/Web/CSS/margin\">MDN</a>. */\n margin?: string;\n /** The margin for the bottom side of the element. See <a href=\"https://developer.mozilla.org/en-US/docs/Web/CSS/margin-bottom\">MDN</a>. */\n marginBottom?: string;\n /** The margin for the left side of the element. See <a href=\"https://developer.mozilla.org/en-US/docs/Web/CSS/margin-left\">MDN</a>. */\n marginLeft?: string;\n /** The margin for the right side of the element. See <a href=\"https://developer.mozilla.org/en-US/docs/Web/CSS/margin-right\">MDN</a>. */\n marginRight?: string;\n /** The margin for the top side of the element. See <a href=\"https://developer.mozilla.org/en-US/docs/Web/CSS/margin-top\">MDN</a>. */\n marginTop?: string;\n}\n\nexport interface SizingProps {\n /** The height of the element. See <a href=\"https://developer.mozilla.org/en-US/docs/Web/CSS/height\">MDN</a>. */\n height?: string | number;\n /** The maximum height of the element. See <a href=\"https://developer.mozilla.org/en-US/docs/Web/CSS/max-height\">MDN</a>. */\n maxHeight?: string;\n /** The maximum width of the element. See <a href=\"https://developer.mozilla.org/en-US/docs/Web/CSS/max-width\">MDN</a>. */\n maxWidth?: string;\n /** The minimum height of the element. See <a href=\"https://developer.mozilla.org/en-US/docs/Web/CSS/min-height\">MDN</a>. */\n minHeight?: string;\n /** The minimum width of the element. See <a href=\"https://developer.mozilla.org/en-US/docs/Web/CSS/min-width\">MDN</a>. */\n minWidth?: string;\n /** The width of the element. See <a href=\"https://developer.mozilla.org/en-US/docs/Web/CSS/width\">MDN</a>. */\n width?: string | number;\n}\n\nexport interface PositioningProps {\n /** Specifies how the element is positioned. See <a href=\"https://developer.mozilla.org/en-US/docs/Web/CSS/position\">MDN</a>. */\n position?: string;\n /** The top position for the element. See <a href=\"https://developer.mozilla.org/en-US/docs/Web/CSS/top\">MDN</a>. */\n top?: string;\n /** The bottom position for the element. See <a href=\"https://developer.mozilla.org/en-US/docs/Web/CSS/bottom\">MDN</a>. */\n bottom?: string;\n /** The left position for the element. See <a href=\"https://developer.mozilla.org/en-US/docs/Web/CSS/left\">MDN</a>. Consider using start instead for RTL support. */\n left?: string;\n /** The right position for the element. See <a href=\"https://developer.mozilla.org/en-US/docs/Web/CSS/right\">MDN</a>. Consider using start instead for RTL support. */\n right?: string;\n /** The stacking order for the element. See <a href=\"https://developer.mozilla.org/en-US/docs/Web/CSS/z-index\">MDN</a>. */\n zIndex?: string;\n}\n\nexport interface FlexLayoutProps {\n /** The distribution of space around child items along the cross axis. See <a href=\"https://developer.mozilla.org/en-US/docs/Web/CSS/align-content\">MDN</a>. */\n alignContent?: AlignContent;\n /** The alignment of children within their container. See <a href=\"https://developer.mozilla.org/en-US/docs/Web/CSS/align-items\">MDN</a>. */\n alignItems?: AlignItems;\n /** The direction in which to layout children. See <a href=\"https://developer.mozilla.org/en-US/docs/Web/CSS/flex-direction\">MDN</a>. */\n flexDirection?: FlexDirection;\n /** Whether to wrap items onto multiple lines. See <a href=\"https://developer.mozilla.org/en-US/docs/Web/CSS/flex-wrap\">MDN</a>. */\n flexWrap?: FlexWrap;\n /** The space to display between both rows and columns. See <a href=\"https://developer.mozilla.org/en-US/docs/Web/CSS/gap\">MDN</a>. */\n gap?: string;\n /** Whether the box is displayed inline or not. See <a href=\"https://developer.mozilla.org/en-US/docs/Web/CSS/display\">MDN</a>. */\n inline?: boolean;\n /** The distribution of space around items along the main axis. See <a href=\"https://developer.mozilla.org/en-US/docs/Web/CSS/justify-content\">MDN</a>. */\n justifyContent?: JustifyContent;\n}\n\nexport interface GridLayoutProps {\n /** The distribution of space around child items along the cross axis. See <a href=\"https://developer.mozilla.org/en-US/docs/Web/CSS/align-content\">MDN</a>. */\n alignContent?: AlignContent;\n /** The alignment of children within their container. See <a href=\"https://developer.mozilla.org/en-US/docs/Web/CSS/align-items\">MDN</a>. */\n alignItems?: AlignItems;\n /** The space to display between both rows and columns. See <a href=\"https://developer.mozilla.org/en-US/docs/Web/CSS/gap\">MDN</a>. */\n gap?: string;\n /** Defines the size of implicitly generated columns. See <a href=\"https://developer.mozilla.org/en-US/docs/Web/CSS/grid-auto-columns\">MDN</a>. */\n gridAutoColumns?: string;\n /** Defines the size of implicitly generated rows. See <a href=\"https://developer.mozilla.org/en-US/docs/Web/CSS/grid-auto-rows\">MDN</a>. */\n gridAutoRows?: string;\n /** Defines named grid areas. See <a href=\"https://developer.mozilla.org/en-US/docs/Web/CSS/grid-template-areas\">MDN</a>. */\n gridTemplateAreas?: string;\n /** Defines the sizes of each column in the grid. See <a href=\"https://developer.mozilla.org/en-US/docs/Web/CSS/grid-template-columns\">MDN</a>. */\n gridTemplateColumns?: string;\n /** Defines the sizes of each row in the grid. See <a href=\"https://developer.mozilla.org/en-US/docs/Web/CSS/grid-template-rows\">MDN</a>. */\n gridTemplateRows?: string;\n /** Whether the box is displayed inline or not. */\n inline?: boolean;\n /** The distribution of space around items along the main axis. See <a href=\"https://developer.mozilla.org/en-US/docs/Web/CSS/justify-content\">MDN</a>. */\n justifyContent?: JustifyContent;\n /** Defines the default justifySelf for all items in the grid. See <a href=\"https://developer.mozilla.org/en-US/docs/Web/CSS/justify-items\">MDN</a>. */\n justifyItems?: JustifyItems;\n}\n\nexport interface StylingProps\n extends LayoutProps,\n SpacingProps,\n SizingProps,\n PositioningProps {}\n\nexport interface InternalSpacingProps {\n /** The padding for all four sides of the element. See <a href=\"https://developer.mozilla.org/en-US/docs/Web/CSS/padding\">MDN</a>. */\n padding?: string;\n /** The padding for the bottom side of the element. See <a href=\"https://developer.mozilla.org/en-US/docs/Web/CSS/padding-bottom\">MDN</a>. */\n paddingBottom?: string;\n /** The padding for the left side of the element. See <a href=\"https://developer.mozilla.org/en-US/docs/Web/CSS/padding-left\">MDN</a>. */\n paddingLeft?: string;\n /** The padding for the right side of the element. See <a href=\"https://developer.mozilla.org/en-US/docs/Web/CSS/padding-right\">MDN</a>. */\n paddingRight?: string;\n /** The padding for the top side of the element. See <a href=\"https://developer.mozilla.org/en-US/docs/Web/CSS/padding-top\">MDN</a>. */\n paddingTop?: string;\n}\nexport interface ContainerProps\n extends Omit<FlexLayoutProps, 'inline'>,\n Omit<GridLayoutProps, 'inline'>,\n InternalSpacingProps {\n /** Sets whether an element is treated as a block or inline element and the layout used for its children, such as flow layout, grid or flex. See <a href=\"https://developer.mozilla.org/en-US/docs/Web/CSS/display\">MDN</a>. */\n display?:\n | 'block'\n | 'inline'\n | 'inline-block'\n | 'flex'\n | 'inline-flex'\n | 'grid'\n | 'inline-grid'\n | 'inherit';\n}\n","import React, { ReactNode, ReactElement } from 'react';\nimport { Comp } from '~/types';\n\n/**\n * Create a predicate function that checks if a ReactNode is a react element from the given component.\n *\n * @param component React function component or the component name\n * @return predicate returning true if value is instance of the component\n */\nexport const isComponent =\n <C>(component: Comp<C, any> | string) =>\n (instance: ReactNode): instance is ReactElement => {\n const componentName =\n typeof component === 'string' ? component : component.displayName;\n\n return (\n React.isValidElement(instance) &&\n (instance.type as Comp<any>).displayName === componentName\n );\n };\n","import React, { ReactNode, ReactElement } from 'react';\nimport { Comp } from '~/types';\nimport { isComponent } from './isComponent';\n\n/**\n * Create an array containing only valid and specific components.\n *\n * @param component React function component or the component name\n * @return an array of components\n */\nexport const filterComponents =\n (component: Comp<any, any> | string | Comp<any, any>[] | string[]) =>\n (children: ReactNode): ReactElement[] => {\n const components = Array.isArray(component) ? component : [component];\n const childArray: ReactElement[] = [];\n\n React.Children.forEach(children, (child) => {\n components.forEach((comp) => {\n if (isComponent(comp)(child)) {\n childArray.push(child);\n }\n });\n });\n\n return childArray;\n };\n","/**\n * Return components based on list of predicates.\n *\n * @param components Array of components\n * @param predicates Array of predicates\n * @return an array of arrays of components based on the given array of predicates\n */\nexport function partitionComponents<T>(\n components: T[],\n predicates: Array<(t: T) => boolean>\n): T[][] {\n const elements: T[][] = [...predicates.map(() => []), []];\n components.forEach((component) => {\n let found = false;\n predicates.forEach((predicate, index) => {\n if (predicate(component)) {\n elements[index].push(component);\n found = true;\n }\n });\n if (!found) {\n elements[elements.length - 1].push(component);\n }\n });\n return elements;\n}\n","/**\n * Do not edit directly\n * Generated on Tue, 14 Mar 2023 15:14:37 GMT\n */\n\nexport const RedsiftColorDefaultPrimary = '#0079e1';\nexport const RedsiftColorDefaultSecondary = '#0063b9';\nexport const RedsiftColorDefaultHover = '#dce8f3';\nexport const RedsiftColorDefaultActive = '#c4dcf1';\nexport const RedsiftColorDefaultActiveHover = '#abcfef';\nexport const RedsiftColorDefaultPrimaryActive = '#004a8a';\nexport const RedsiftColorDefaultPrimaryActiveHover = '#00427c';\nexport const RedsiftColorWebsitePrimary = '#0079e1';\nexport const RedsiftColorWebsiteSecondary = '#0063b9';\nexport const RedsiftColorWebsiteHover = '#dce8f3';\nexport const RedsiftColorWebsiteActive = '#c4dcf1';\nexport const RedsiftColorWebsiteActiveHover = '#abcfef';\nexport const RedsiftColorWebsitePrimaryActive = '#004a8a';\nexport const RedsiftColorWebsitePrimaryActiveHover = '#00427c';\nexport const RedsiftColorOndmarcPrimary = '#02ac61';\nexport const RedsiftColorOndmarcSecondary = '#009252';\nexport const RedsiftColorOndmarcHover = '#dcede6';\nexport const RedsiftColorOndmarcActive = '#c4e6d7';\nexport const RedsiftColorOndmarcActiveHover = '#acdfc8';\nexport const RedsiftColorOndmarcPrimaryActive = '#00512e';\nexport const RedsiftColorOndmarcPrimaryActiveHover = '#004829';\nexport const RedsiftColorOninboxPrimary = '#33b222';\nexport const RedsiftColorOninboxSecondary = '#268519';\nexport const RedsiftColorOninboxHover = '#e1eedf';\nexport const RedsiftColorOninboxActive = '#cee8cb';\nexport const RedsiftColorOninboxActiveHover = '#bae0b5';\nexport const RedsiftColorOninboxPrimaryActive = '#164e0e';\nexport const RedsiftColorOninboxPrimaryActiveHover = '#13460c';\nexport const RedsiftColorOndomainPrimary = '#028062';\nexport const RedsiftColorOndomainSecondary = '#015944';\nexport const RedsiftColorOndomainHover = '#dce9e6';\nexport const RedsiftColorOndomainActive = '#c4ded8';\nexport const RedsiftColorOndomainActiveHover = '#acd1c8';\nexport const RedsiftColorOndomainPrimaryActive = '#003f30';\nexport const RedsiftColorOndomainPrimaryActiveHover = '#00382b';\nexport const RedsiftColorHardenizePrimary = '#0f7ab3';\nexport const RedsiftColorHardenizeSecondary = '#3498db';\nexport const RedsiftColorHardenizeHover = '#dee8ee';\nexport const RedsiftColorHardenizeActive = '#c7dce8';\nexport const RedsiftColorHardenizeActiveHover = '#b0d0e1';\nexport const RedsiftColorHardenizePrimaryActive = '#0a5379';\nexport const RedsiftColorHardenizePrimaryActiveHover = '#094a6c';\nexport const RedsiftColorToolsPrimary = '#37bdfb';\nexport const RedsiftColorToolsSecondary = '#02a2ef';\nexport const RedsiftColorToolsHover = '#e2eff5';\nexport const RedsiftColorToolsActive = '#cfeaf6';\nexport const RedsiftColorToolsActiveHover = '#bce4f6';\nexport const RedsiftColorToolsPrimaryActive = '#237ea8';\nexport const RedsiftColorToolsPrimaryActiveHover = '#1f7197';\nexport const RedsiftColorSuccessPrimary = '#02ac61';\nexport const RedsiftColorSuccessSecondary = '#009252';\nexport const RedsiftColorSuccessHover = '#dcede6';\nexport const RedsiftColorSuccessActive = '#c4e6d7';\nexport const RedsiftColorSuccessActiveHover = '#acdfc8';\nexport const RedsiftColorSuccessPrimaryActive = '#00512e';\nexport const RedsiftColorSuccessPrimaryActiveHover = '#004829';\nexport const RedsiftColorErrorPrimary = '#e11010';\nexport const RedsiftColorErrorSecondary = '#b41010';\nexport const RedsiftColorErrorHover = '#f3dede';\nexport const RedsiftColorErrorActive = '#f1c7c7';\nexport const RedsiftColorErrorActiveHover = '#efb0b0';\nexport const RedsiftColorErrorPrimaryActive = '#770a0a';\nexport const RedsiftColorErrorPrimaryActiveHover = '#6b0909';\nexport const RedsiftColorWarningPrimary = '#fcbb54';\nexport const RedsiftColorWarningSecondary = '#c09300';\nexport const RedsiftColorWarningHover = '#f5efe4';\nexport const RedsiftColorWarningActive = '#f6e9d5';\nexport const RedsiftColorWarningActiveHover = '#f7e3c4';\nexport const RedsiftColorWarningPrimaryActive = '#ae833f';\nexport const RedsiftColorWarningPrimaryActiveHover = '#9c7538';\nexport const RedsiftColorInfoPrimary = '#0079e1';\nexport const RedsiftColorInfoSecondary = '#0063b9';\nexport const RedsiftColorInfoHover = '#dce8f3';\nexport const RedsiftColorInfoActive = '#c4dcf1';\nexport const RedsiftColorInfoActiveHover = '#abcfef';\nexport const RedsiftColorInfoPrimaryActive = '#004a8a';\nexport const RedsiftColorInfoPrimaryActiveHover = '#00427c';\nexport const RedsiftColorQuestionPrimary = '#666666';\nexport const RedsiftColorQuestionSecondary = '#1c1c1c';\nexport const RedsiftColorQuestionHover = '#e6e6e6';\nexport const RedsiftColorQuestionActive = '#d8d8d8';\nexport const RedsiftColorQuestionActiveHover = '#cacaca';\nexport const RedsiftColorQuestionPrimaryActive = '#111111';\nexport const RedsiftColorQuestionPrimaryActiveHover = '#0f0f0f';\nexport const RedsiftColorNoDataPrimary = '#bdbdbd';\nexport const RedsiftColorNoDataSecondary = '#666666';\nexport const RedsiftColorNoDataHover = '#efefef';\nexport const RedsiftColorNoDataActive = '#eaeaea';\nexport const RedsiftColorNoDataActiveHover = '#e4e4e4';\nexport const RedsiftColorNoDataPrimaryActive = '#3d3d3d';\nexport const RedsiftColorNoDataPrimaryActiveHover = '#363636';\nexport const RedsiftColorNeutralBlack = '#1c1c1c';\nexport const RedsiftColorNeutralDarkgrey = '#666666';\nexport const RedsiftColorNeutralMidgrey = '#bdbdbd';\nexport const RedsiftColorNeutralLightgrey = '#ebebeb';\nexport const RedsiftColorNeutralXlightgrey = '#f5f5f5';\nexport const RedsiftColorNeutralWhite = '#ffffff';\nexport const RedsiftAppBarColorBackground = '#0079e1';\nexport const RedsiftAppBarColorText = '#FFFFFF';\nexport const RedsiftAppBarColorExpandIconResting = '#FFFFFF';\nexport const RedsiftAppBarColorExpandIconHover = '#FFFFFF';\nexport const RedsiftAppBarColorExpandIconBackgroundHover = '#0063b9';\nexport const RedsiftDataVizColorPurpleDefault = '#C1AAEA';\nexport const RedsiftDataVizColorPurpleDark = '#A78ADB';\nexport const RedsiftDataVizColorPurpleDarker = '#8D6CC9';\nexport const RedsiftDataVizColorPurpleLight = '#D9CAF5';\nexport const RedsiftDataVizColorPurpleLighter = '#F0E9FC';\nexport const RedsiftDataVizColorBlueDefault = '#B6DAEE';\nexport const RedsiftDataVizColorBlueDark = '#97C5DE';\nexport const RedsiftDataVizColorBlueDarker = '#73ADCC';\nexport const RedsiftDataVizColorBlueLight = '#D8EDF8';\nexport const RedsiftDataVizColorBlueLighter = '#F6FBFE';\nexport const RedsiftDataVizColorGreenDefault = '#B3E3C5';\nexport const RedsiftDataVizColorGreenDark = '#90D2A9';\nexport const RedsiftDataVizColorGreenDarker = '#6DBE8B';\nexport const RedsiftDataVizColorGreenLight = '#D3F0DE';\nexport const RedsiftDataVizColorGreenLighter = '#EDFAF1';\nexport const RedsiftDataVizColorRedDefault = '#EAADAC';\nexport const RedsiftDataVizColorRedDark = '#D18785';\nexport const RedsiftDataVizColorRedDarker = '#BA6361';\nexport const RedsiftDataVizColorRedLight = '#FFD3D2';\nexport const RedsiftDataVizColorRedLighter = '#FFE5E5';\nexport const RedsiftDataVizColorPinkDefault = '#E2A7D7';\nexport const RedsiftDataVizColorPinkDark = '#D185C3';\nexport const RedsiftDataVizColorPinkDarker = '#BD63AC';\nexport const RedsiftDataVizColorPinkLight = '#EFC8E8';\nexport const RedsiftDataVizColorPinkLighter = '#F9E6F6';\nexport const RedsiftDataVizColorCyanDefault = '#AFF5F3';\nexport const RedsiftDataVizColorCyanDark = '#8CEAE6';\nexport const RedsiftDataVizColorCyanDarker = '#6CDCD8';\nexport const RedsiftDataVizColorCyanLight = '#D4FCFA';\nexport const RedsiftDataVizColorCyanLighter = '#E1FFFF';\nexport const RedsiftDataVizColorOrangeDefault = '#F2D39E';\nexport const RedsiftDataVizColorOrangeDark = '#D8B475';\nexport const RedsiftDataVizColorOrangeDarker = '#BD954F';\nexport const RedsiftDataVizColorOrangeLight = '#FFE8C0';\nexport const RedsiftDataVizColorOrangeLighter = '#FFF0D7';\nexport const RedsiftDataVizColorYellowDefault = '#F6EFC7';\nexport const RedsiftDataVizColorYellowDark = '#DED4A0';\nexport const RedsiftDataVizColorYellowDarker = '#C6BB7A';\nexport const RedsiftDataVizColorYellowLight = '#FFFBE1';\nexport const RedsiftDataVizColorYellowLighter = '#FFFDF0';\nexport const RedsiftDataVizColorBrownDefault = '#E6C2A0';\nexport const RedsiftDataVizColorBrownDark = '#CDA279';\nexport const RedsiftDataVizColorBrownDarker = '#B58556';\nexport const RedsiftDataVizColorBrownLight = '#FFE3C9';\nexport const RedsiftDataVizColorBrownLighter = '#FFEEDE';\nexport const RedsiftDataVizColorGreyDefault = '#E5E5E5';\nexport const RedsiftDataVizColorGreyDark = '#BDBDBD';\nexport const RedsiftDataVizColorGreyDarker = '#666666';\nexport const RedsiftDataVizColorGreyLight = '#F5F5F5';\nexport const RedsiftDataVizColorGreyLighter = '#FFFFFF';\nexport const RedsiftSideNavigationColorBackground = '#2D2D34';\nexport const RedsiftSideNavigationColorMenuItemTextResting = '#FFFFFFB3';\nexport const RedsiftSideNavigationColorMenuItemTextDisabled = '#76767A';\nexport const RedsiftSideNavigationColorMenuItemTextHover = '#FFFFFF';\nexport const RedsiftSideNavigationColorMenuItemBackgroundHover = '#4C4C64';\nexport const RedsiftSideNavigationColorMenuItemBackgroundSecondary = '#333340';\nexport const RedsiftSideNavigationColorMenuItemBackgroundActive = '#39394C';\nexport const RedsiftSideNavigationColorMenuItemActive = '#02AC61';\nexport const RedsiftSideNavigationColorScrollbarResting = '#4C4C64';\nexport const RedsiftSideNavigationColorScrollbarHover = '#5d5d73';\nexport const RedsiftLayoutZIndexFooter = '1000';\nexport const RedsiftLayoutZIndexHeader = '1010';\nexport const RedsiftLayoutZIndexSidePanel = '1050';\nexport const RedsiftLayoutZIndexDropdown = '1100';\nexport const RedsiftLayoutZIndexOverlay = '1150';\nexport const RedsiftLayoutZIndexDialog = '1200';\nexport const RedsiftLayoutZIndexPopover = '1250';\nexport const RedsiftLayoutZIndexTooltip = '1300';\nexport const RedsiftTypographyFontFamilyRaleway = \"'Raleway', sans-serif\";\nexport const RedsiftTypographyFontFamilyElectrolize =\n \"'electrolize', sans-serif\";\nexport const RedsiftTypographyFontFamilySourceCodePro =\n \"'Source Code Pro', sans-serif\";\nexport const RedsiftTypographyFontWeightRegular = '400';\nexport const RedsiftTypographyFontWeightMedium = '500';\nexport const RedsiftTypographyFontWeightSemiBold = '600';\nexport const RedsiftTypographyFontWeightBold = '700';\nexport const RedsiftTypographyH1FontFamily = \"'electrolize', sans-serif\";\nexport const RedsiftTypographyH1FontSize = '24px';\nexport const RedsiftTypographyH1FontWeight = '400';\nexport const RedsiftTypographyH1LineHeight = '28px';\nexport const RedsiftTypographyH1TextTransform = 'uppercase';\nexport const RedsiftTypographyH2FontFamily = \"'Raleway', sans-serif\";\nexport const RedsiftTypographyH2FontSize = '24px';\nexport const RedsiftTypographyH2FontWeight = '600';\nexport const RedsiftTypographyH2LineHeight = '28px';\nexport const RedsiftTypographyH2TextTransform = 'unset';\nexport const RedsiftTypographyH3FontFamily = \"'Raleway', sans-serif\";\nexport const RedsiftTypographyH3FontSize = '20px';\nexport const RedsiftTypographyH3FontWeight = '500';\nexport const RedsiftTypographyH3LineHeight = '24px';\nexport const RedsiftTypographyH3TextTransform = 'unset';\nexport const RedsiftTypographyH4FontFamily = \"'Raleway', sans-serif\";\nexport const RedsiftTypographyH4FontSize = '18px';\nexport const RedsiftTypographyH4FontWeight = '500';\nexport const RedsiftTypographyH4LineHeight = '22px';\nexport const RedsiftTypographyH4TextTransform = 'unset';\nexport const RedsiftTypographyH5FontFamily = \"'Raleway', sans-serif\";\nexport const RedsiftTypographyH5FontSize = '16px';\nexport const RedsiftTypographyH5FontWeight = '600';\nexport const RedsiftTypographyH5LineHeight = '20px';\nexport const RedsiftTypographyH5TextTransform = 'unset';\nexport const RedsiftTypographySubtitleFontFamily = \"'Raleway', sans-serif\";\nexport const RedsiftTypographySubtitleFontSize = '15px';\nexport const RedsiftTypographySubtitleFontWeight = '700';\nexport const RedsiftTypographySubtitleLineHeight = '26px';\nexport const RedsiftTypographySubtitleTextTransform = 'unset';\nexport const RedsiftTypographyBodyFontFamily = \"'Raleway', sans-serif\";\nexport const RedsiftTypographyBodyFontSize = '15px';\nexport const RedsiftTypographyBodyFontWeight = '400';\nexport const RedsiftTypographyBodyLineHeight = '26px';\nexport const RedsiftTypographyBodyTextTransform = 'unset';\nexport const RedsiftTypographyBody2FontFamily = \"'Raleway', sans-serif\";\nexport const RedsiftTypographyBody2FontSize = '14px';\nexport const RedsiftTypographyBody2FontWeight = '400';\nexport const RedsiftTypographyBody2LineHeight = '20px';\nexport const RedsiftTypographyLinkFontFamily = \"'Raleway', sans-serif\";\nexport const RedsiftTypographyLinkFontSize = '15px';\nexport const RedsiftTypographyLinkFontWeight = '400';\nexport const RedsiftTypographyLinkLineHeight = '26px';\nexport const RedsiftTypographyInputTextFontFamily =\n \"'Source Code Pro', sans-serif\";\nexport const RedsiftTypographyInputTextFontSize = '15px';\nexport const RedsiftTypographyInputTextFontWeight = '400';\nexport const RedsiftTypographyInputTextLineHeight = '26px';\nexport const RedsiftTypographyButtonFontFamily = \"'Raleway', sans-serif\";\nexport const RedsiftTypographyButtonFontSize = '15px';\nexport const RedsiftTypographyButtonFontWeight = '500';\nexport const RedsiftTypographyButtonLineHeight = '26px';\nexport const RedsiftTypographyButtonTextTransform = 'uppercase';\nexport const RedsiftTypographyCaptionFontFamily = \"'Raleway', sans-serif\";\nexport const RedsiftTypographyCaptionFontSize = '13px';\nexport const RedsiftTypographyCaptionFontWeight = '400';\nexport const RedsiftTypographyCaptionLineHeight = '23px';\nexport const RedsiftTypographyCaptionTextTransform = 'unset';\nexport const RedsiftTypographyHelperFontFamily = \"'Raleway', sans-serif\";\nexport const RedsiftTypographyHelperFontSize = '12px';\nexport const RedsiftTypographyHelperFontWeight = '400';\nexport const RedsiftTypographyHelperLineHeight = '16px';\nexport const RedsiftTypographyBadgeFontFamily = \"'Source Code Pro', sans-serif\";\nexport const RedsiftTypographyBadgeFontSize = '12px';\nexport const RedsiftTypographyBadgeFontWeight = '500';\nexport const RedsiftTypographyBadgeLineHeight = '20px';\nexport const RedsiftTypographyPillFontFamily = \"'Source Code Pro', sans-serif\";\nexport const RedsiftTypographyPillFontSize = '15px';\nexport const RedsiftTypographyPillFontWeight = '500';\nexport const RedsiftTypographyPillLineHeight = '28px';\nexport const RedsiftTypographyChipFontFamily = \"'Source Code Pro', sans-serif\";\nexport const RedsiftTypographyChipFontSize = '13px';\nexport const RedsiftTypographyChipFontWeight = '400';\nexport const RedsiftTypographyChipLineHeight = '18px';\nexport const RedsiftTypographyTooltipFontFamily = \"'Raleway', sans-serif\";\nexport const RedsiftTypographyTooltipFontSize = '13px';\nexport const RedsiftTypographyTooltipFontWeight = '500';\nexport const RedsiftTypographyTooltipLineHeight = '23px';\n","import { ComponentProps, DependencyList } from 'react';\n\n/**\n * Display a warning if no label was found for screen readers and assistive technologies.\n *\n * @param props Component props containing the aria-label and aria-labelledby params to check for.\n * @param additionalKeysToCheck Additional props to check that can act as a label for screen readers (i.e. children).\n */\nexport const warnIfNoAccessibleLabelFound = (\n props: ComponentProps<keyof JSX.IntrinsicElements>,\n additionalKeysToCheck?: DependencyList\n): void => {\n const { 'aria-label': ariaLabel, 'aria-labelledby': ariaLabelledby } = props;\n\n const hasText =\n additionalKeysToCheck &&\n additionalKeysToCheck.filter((key) => !!key).length > 0;\n const hasAriaLabel = Boolean(ariaLabel || ariaLabelledby);\n\n if (!hasAriaLabel && !hasText) {\n console.warn('You must provide a label for accessibility');\n }\n};\n","import { useState, useEffect } from 'react';\n\ninterface WindowSize {\n height?: number;\n width?: number;\n size?: 'xs' | 'sm' | 'md' | 'lg' | 'xl';\n}\n\nexport const useWindowSize = () => {\n const [windowSize, setWindowSize] = useState<WindowSize>({\n width: undefined,\n height: undefined,\n size: undefined,\n });\n\n useEffect(() => {\n function handleResize() {\n setWindowSize((windowSize) => {\n if (\n window.innerWidth === windowSize.width &&\n window.innerHeight === windowSize.height\n ) {\n return windowSize;\n }\n\n let size: WindowSize['size'];\n if (window.innerWidth <= 480) {\n size = 'xs';\n } else if (window.innerWidth <= 768) {\n size = 'sm';\n } else if (window.innerWidth <= 1024) {\n size = 'md';\n } else if (window.innerWidth <= 1200) {\n size = 'lg';\n } else {\n size = 'xl';\n }\n return {\n width: window.innerWidth,\n height: window.innerHeight,\n size,\n };\n });\n }\n\n window.addEventListener('resize', handleResize);\n handleResize();\n\n return () => window.removeEventListener('resize', handleResize);\n }, []);\n return windowSize;\n};\n","import { ComponentProps } from 'react';\nimport { ValueOf, StylingProps } from '~/types';\n\n/**\n * Component variant.\n */\nexport const AlertVariant = {\n success: 'success',\n error: 'error',\n warning: 'warning',\n info: 'info',\n} as const;\nexport type AlertVariant = ValueOf<typeof AlertVariant>;\n\n/**\n * Component props.\n */\nexport interface AlertProps extends ComponentProps<'div'>, StylingProps {\n /** Whether the component can be closed or not. */\n isClosable?: boolean;\n /** Whether the component is closed or not. Used for controlled version. */\n isClosed?: boolean;\n /** Method to handle component change. */\n onClose?(isClosed: boolean): void;\n /** Title. */\n title?: string;\n /** Variant */\n variant?: AlertVariant;\n}\n\nexport type StyledAlertProps = Omit<AlertProps, 'variant'> & {\n $hasTitle: boolean;\n $isClosable: AlertProps['isClosable'];\n $isClosed: AlertProps['isClosed'];\n $variant: AlertProps['variant'];\n};\n","import enUS from './en-US.json';\nimport frFR from './fr-FR.json';\n\nexport default {\n 'en-US': enUS,\n 'fr-FR': frFR,\n};\n","import { ComponentProps } from 'react';\nimport { PressEvent } from '@react-types/shared';\nimport {\n ColorPalette,\n ProductColorPalette,\n StylingProps,\n ValueOf,\n} from '~/types';\n\n/**\n * Component variant.\n */\nexport const IconButtonVariant = {\n primary: 'primary',\n secondary: 'secondary',\n unstyled: 'unstyled',\n} as const;\nexport type IconButtonVariant = ValueOf<typeof IconButtonVariant>;\n\n/**\n * Component color.\n */\nexport type IconButtonColor = ColorPalette | ProductColorPalette;\n\n/**\n * Component props.\n */\nexport interface IconButtonProps\n extends ComponentProps<'button'>,\n StylingProps {\n /** Color variant. */\n color?: IconButtonColor;\n /**\n * Icon path data (`d` property of the `path` SVG element).<br />\n * See <a href=\"https://developer.mozilla.org/en-US/docs/Web/SVG/Tutorial/Paths\">https://developer.mozilla.org/en-US/docs/Web/SVG/Tutorial/Paths</a>.<br />\n * Recommended path data come from mdi/js.<br />\n * See <a href=\"https://www.npmjs.com/package/@mdi/js\">https://www.npmjs.com/package/@mdi/js</a>.\n */\n icon: string;\n /** Whether the component is active or not. */\n isActive?: boolean;\n /** Whether the component is disabled or not. */\n isDisabled?: boolean;\n /** Preferred method to handle click, press and touch. */\n onPress?: (e: PressEvent) => void;\n /** Button variant. */\n variant?: IconButtonVariant;\n}\n\nexport type StyledIconButtonProps = Omit<\n IconButtonProps,\n 'isActive' | 'isDisabled' | 'variant' | 'color' | 'icon'\n> & {\n $color: IconButtonProps['color'];\n $isActive: IconButtonProps['isActive'];\n $isDisabled: IconButtonProps['isDisabled'];\n $variant: IconButtonProps['variant'];\n};\n","import { ComponentProps, ReactElement } from 'react';\nimport {\n ColorPalette,\n LayoutProps,\n PositioningProps,\n ProductColorPalette,\n SpacingProps,\n ValueOf,\n} from '~/types';\n\n/**\n * Component size.\n */\nexport const IconSize = {\n xsmall: 'xsmall',\n small: 'small',\n medium: 'medium',\n large: 'large',\n xlarge: 'xlarge',\n} as const;\nexport type IconSize = ValueOf<typeof IconSize>;\n\n/**\n * Component props.\n */\nexport interface IconProps\n extends ComponentProps<'span'>,\n LayoutProps,\n SpacingProps,\n PositioningProps {\n /** Indicates whether the element is exposed to an accessibility API. */\n 'aria-hidden'?: boolean | 'false' | 'true';\n /** A screen reader only label for the Icon. */\n 'aria-label'?: string;\n /** Color variant. Either from color palette or hex or rgb strings. */\n color?: ColorPalette | ProductColorPalette | string;\n /** Whether the icon has a badge attached to it. */\n badge?: ReactElement;\n /**\n * Icon path data (`d` property of the `path` SVG element).<br />\n * See <a href=\"https://developer.mozilla.org/en-US/docs/Web/SVG/Tutorial/Paths\">https://developer.mozilla.org/en-US/docs/Web/SVG/Tutorial/Paths</a>.<br />\n * Recommended path data come from mdi/js.<br />\n * See <a href=\"https://www.npmjs.com/package/@mdi/js\">https://www.npmjs.com/package/@mdi/js</a>.\n */\n icon: string;\n /** Icon size. */\n size?: IconSize;\n /** Additional properties to forward to the SVG tag. */\n svgProps?: ComponentProps<'svg'>;\n}\n\nexport type StyledIconProps = Omit<\n IconProps,\n 'color' | 'size' | 'icon' | 'svgProps'\n> & {\n $color: IconProps['color'];\n $size: IconProps['size'];\n};\n","import { css } from 'styled-components';\nimport {\n LayoutProps,\n SpacingProps,\n SizingProps,\n PositioningProps,\n FlexLayoutProps,\n GridLayoutProps,\n StylingProps,\n ContainerProps,\n InternalSpacingProps,\n} from '~/types';\n\nexport const baseLayout = css<LayoutProps>`\n ${({\n flex,\n flexGrow,\n flexShrink,\n flexBasis,\n alignSelf,\n justifySelf,\n order,\n gridArea,\n gridColumn,\n gridRow,\n gridColumnStart,\n gridColumnEnd,\n gridRowStart,\n gridRowEnd,\n }) =>\n css`\n ${flex ? `flex: ${flex};` : ''}\n ${flexGrow !== undefined ? `flex-grow: ${flexGrow};` : ''}\n ${flexShrink !== undefined ? `flex-shrink: ${flexShrink};` : ''}\n ${flexBasis ? `flex-basis: ${flexBasis};` : ''}\n ${alignSelf ? `align-self: ${alignSelf};` : ''}\n ${justifySelf ? `justify-self: ${justifySelf};` : ''}\n ${order !== undefined ? `order: ${order};` : ''}\n ${gridArea ? `grid-area: ${gridArea};` : ''}\n ${gridColumn ? `grid-column: ${gridColumn};` : ''}\n ${gridRow ? `grid-row: ${gridRow};` : ''}\n ${gridColumnStart ? `grid-column-start: ${gridColumnStart};` : ''}\n ${gridColumnEnd ? `grid-column-end: ${gridColumnEnd};` : ''}\n ${gridRowStart ? `grid-row-start: ${gridRowStart};` : ''}\n ${gridRowEnd ? `grid-row-end: ${gridRowEnd};` : ''}\n `}\n`;\n\nexport const baseSpacing = css<SpacingProps>`\n ${({ margin, marginBottom, marginLeft, marginRight, marginTop }) =>\n css`\n ${margin ? `margin: ${margin};` : ''}\n ${marginBottom ? `margin-bottom: ${marginBottom};` : ''}\n ${marginLeft ? `margin-left: ${marginLeft};` : ''}\n ${marginRight ? `margin-right: ${marginRight};` : ''}\n ${marginTop ? `margin-top: ${marginTop};` : ''}\n `}\n`;\n\nexport const baseInternalSpacing = css<InternalSpacingProps>`\n ${({ padding, paddingBottom, paddingLeft, paddingRight, paddingTop }) =>\n css`\n ${padding ? `padding: ${padding};` : ''}\n ${paddingBottom ? `padding-bottom: ${paddingBottom};` : ''}\n ${paddingLeft ? `padding-left: ${paddingLeft};` : ''}\n ${paddingRight ? `padding-right: ${paddingRight};` : ''}\n ${paddingTop ? `padding-top: ${paddingTop};` : ''}\n `}\n`;\n\nexport const baseSizing = css<SizingProps>`\n ${({ height, maxHeight, maxWidth, minHeight, minWidth, width }) =>\n css`\n ${height !== undefined\n ? `height: ${typeof height === 'number' ? `${height}px` : height};`\n : ''}\n ${maxHeight ? `max-height: ${maxHeight};` : ''}\n ${maxWidth ? `max-width: ${maxWidth};` : ''}\n ${minHeight ? `min-height: ${minHeight};` : ''}\n ${minWidth ? `min-width: ${minWidth};` : ''}\n ${width !== undefined\n ? `width: ${typeof width === 'number' ? `${width}px` : width};`\n : ''}\n `}\n`;\n\nexport const basePositioning = css<PositioningProps>`\n ${({ position, top, bottom, left, right, zIndex }) =>\n css`\n ${position ? `position: ${position};` : ''}\n ${top ? `top: ${top};` : ''}\n ${bottom ? `bottom: ${bottom};` : ''}\n ${left ? `left: ${left};` : ''}\n ${right ? `right: ${right};` : ''}\n ${zIndex ? `z-index: ${zIndex};` : ''}\n `}\n`;\n\nexport const baseFlexbox = css<FlexLayoutProps>`\n ${({\n alignContent,\n alignItems,\n flexDirection,\n flexWrap,\n gap,\n justifyContent,\n }) =>\n css`\n ${alignContent ? `align-content: ${alignContent};` : ''}\n ${alignItems ? `align-items: ${alignItems};` : ''}\n ${flexDirection ? `flex-direction: ${flexDirection};` : ''}\n ${flexWrap ? `flex-wrap: ${flexWrap};` : ''}\n gap: ${gap};\n ${justifyContent ? `justify-content: ${justifyContent};` : ''}\n `}\n`;\n\nexport const baseGrid = css<GridLayoutProps>`\n ${({\n alignContent,\n alignItems,\n gap,\n gridAutoColumns,\n gridAutoRows,\n gridTemplateAreas,\n gridTemplateColumns,\n gridTemplateRows,\n justifyContent,\n justifyItems,\n }) =>\n css`\n ${alignContent ? `align-content: ${alignContent};` : ''}\n ${alignItems ? `align-items: ${alignItems};` : ''}\n ${gap ? `gap: ${gap};` : ''}\n ${gridAutoColumns ? `grid-auto-columns: ${gridAutoColumns};` : ''}\n ${gridAutoRows ? `grid-auto-rows: ${gridAutoRows};` : ''}\n ${gridTemplateAreas ? `grid-template-areas: ${gridTemplateAreas};` : ''}\n ${gridTemplateColumns\n ? `grid-template-columns: ${gridTemplateColumns};`\n : ''}\n ${gridTemplateRows ? `grid-template-rows: ${gridTemplateRows};` : ''}\n ${justifyContent ? `justify-content: ${justifyContent};` : ''}\n ${justifyItems ? `justify-items: ${justifyItems};` : ''}\n `}\n`;\n\nexport const baseStyling = css<StylingProps>`\n font-family: var(--redsift-typography-body-font-family);\n font-size: var(--redsift-typography-body-font-size);\n font-weight: var(--redsift-typography-body-font-weight);\n line-height: var(--redsift-typography-body-line-height);\n color: var(--redsift-color-neutral-black);\n\n ${baseLayout}\n ${baseSpacing}\n ${baseSizing}\n ${basePositioning}\n`;\n\nexport const baseContainer = css<ContainerProps>`\n ${({ display }) => (display ? `display: ${display};` : '')}\n font-family: var(--redsift-typography-body-font-family);\n font-size: var(--redsift-typography-body-font-size);\n font-weight: var(--redsift-typography-body-font-weight);\n line-height: var(--redsift-typography-body-line-height);\n color: var(--redsift-color-neutral-black);\n\n ${baseInternalSpacing}\n ${baseFlexbox}\n ${baseGrid}\n`;\n","import styled, { css } from 'styled-components';\nimport { ColorPalette, ProductColorPalette } from '~/types';\nimport { baseStyling } from '~/components/shared';\nimport { StyledIconProps, IconSize } from './types';\n\n/**\n * Component style.\n */\nexport const StyledIcon = styled.span<StyledIconProps>`\n position: relative;\n ${baseStyling}\n\n font-style: normal;\n\n svg {\n vertical-align: -0.125em;\n }\n\n ${({ $color }) =>\n $color &&\n [...Object.keys(ColorPalette), ...Object.keys(ProductColorPalette)].indexOf(\n $color\n ) !== -1\n ? css`\n color: var(--redsift-color-${$color}-primary);\n `\n : css`\n color: ${$color || css`var(--redsift-color-neutral-darkgrey)`};\n `}\n\n ${({ $size }) => {\n switch ($size) {\n case IconSize.xlarge:\n return css`\n font-size: 40px;\n height: 40px;\n line-height: 40px;\n width: 40px;\n\n & .redsift-badge-standard {\n position: absolute;\n right: -24px;\n top: -2px;\n }\n\n & .redsift-badge-dot {\n position: absolute;\n right: -14px;\n top: 6px;\n }\n `;\n case IconSize.large:\n return css`\n font-size: 28px;\n height: 28px;\n line-height: 28px;\n width: 28px;\n\n & .redsift-badge-standard {\n position: absolute;\n right: -24px;\n top: -4px;\n }\n\n & .redsift-badge-dot {\n position: absolute;\n right: -14px;\n top: 2px;\n }\n `;\n case IconSize.small:\n return css`\n font-size: 20px;\n height: 20px;\n line-height: 20px;\n width: 20px;\n\n & .redsift-badge-standard {\n position: absolute;\n right: -24px;\n top: -8px;\n }\n\n & .redsift-badge-dot {\n position: absolute;\n right: -14px;\n top: 1px;\n }\n `;\n case IconSize.xsmall:\n return css`\n font-size: 16px;\n height: 16px;\n line-height: 16px;\n width: 16px;\n\n & .redsift-badge-standard {\n position: absolute;\n right: -24px;\n top: -12px;\n }\n\n & .redsift-badge-dot {\n position: absolute;\n right: -14px;\n top: -1px;\n }\n `;\n case IconSize.medium:\n default:\n return css`\n font-size: 24px;\n height: 24px;\n line-height: 24px;\n width: 24px;\n\n & .redsift-badge-standard {\n position: absolute;\n right: -24px;\n top: -5px;\n }\n\n & .redsift-badge-dot {\n position: absolute;\n right: -14px;\n top: 1px;\n }\n `;\n }\n }}\n`;\n","import React, { forwardRef, RefObject } from 'react';\nimport classNames from 'classnames';\nimport { Comp } from '~/types';\nimport { StyledIcon } from './styles';\nimport { IconProps, IconSize } from './types';\n\nconst COMPONENT_NAME = 'Icon';\nconst CLASSNAME = 'redsift-icon';\nconst DEFAULT_PROPS: Partial<IconProps> = {\n size: IconSize.medium,\n};\n\n/**\n * The Icon component.\n */\nexport const Icon: Comp<IconProps, HTMLSpanElement> = forwardRef(\n (props, ref) => {\n const {\n 'aria-hidden': ariaHidden,\n 'aria-label': ariaLabel,\n badge,\n className,\n color,\n icon,\n size,\n svgProps,\n ...forwardedProps\n } = props;\n\n return (\n <StyledIcon\n {...forwardedProps}\n $color={color}\n $size={size}\n aria-hidden={ariaLabel ? (ariaHidden ? ariaHidden : undefined) : true}\n aria-label={ariaLabel}\n className={classNames(Icon.className, className)}\n ref={ref as RefObject<HTMLSpanElement>}\n >\n <svg\n {...svgProps}\n aria-hidden={ariaLabel ? (ariaHidden ? ariaHidden : undefined) : true}\n aria-label={ariaLabel}\n focusable=\"false\"\n height=\"1em\"\n preserveAspectRatio=\"xMidYMid meet\"\n role=\"img\"\n viewBox=\"0 0 24 24\"\n width=\"1em\"\n >\n <path d={icon} fill=\"currentColor\" />\n </svg>\n {badge ? badge : null}\n </StyledIcon>\n );\n }\n);\nIcon.className = CLASSNAME;\nIcon.defaultProps = DEFAULT_PROPS;\nIcon.displayName = COMPONENT_NAME;\n","import { ComponentProps } from 'react';\nimport { PressEvent } from '@react-types/shared';\nimport {\n ColorPalette,\n ProductColorPalette,\n StylingProps,\n ValueOf,\n} from '~/types';\n\n/**\n * Component variant.\n */\nexport const ButtonVariant = {\n primary: 'primary',\n secondary: 'secondary',\n unstyled: 'unstyled',\n} as const;\nexport type ButtonVariant = ValueOf<typeof ButtonVariant>;\n\n/**\n * Component color.\n */\nexport type ButtonColor = ColorPalette | ProductColorPalette;\n\n/**\n * Component props.\n */\nexport interface ButtonProps extends ComponentProps<'button'>, StylingProps {\n /** Color variant. The product colors are available but should only be used to display the Button in the color of another product. To display a Button with a color of the current product, use `default`. */\n color?: ButtonColor;\n /** Whether the component take the full width or not. */\n fullWidth?: boolean;\n /** Whether the component is active or not. */\n isActive?: boolean;\n /** Whether the component is disabled or not. */\n isDisabled?: boolean;\n /** Whether the component is in a loading state or not. */\n isLoading?: boolean;\n /**\n * Icon path data (`d` property of the `path` SVG element).<br />\n * See <a href=\"https://developer.mozilla.org/en-US/docs/Web/SVG/Tutorial/Paths\">https://developer.mozilla.org/en-US/docs/Web/SVG/Tutorial/Paths</a>.<br />\n * Recommended path data come from mdi/js.<br />\n * See <a href=\"https://www.npmjs.com/package/@mdi/js\">https://www.npmjs.com/package/@mdi/js</a>.\n */\n leftIcon?: string;\n /** Preferred method to handle click, press and touch. */\n onPress?: (e: PressEvent) => void;\n /**\n * Icon path data (`d` property of the `path` SVG element).<br />\n * See <a href=\"https://developer.mozilla.org/en-US/docs/Web/SVG/Tutorial/Paths\">https://developer.mozilla.org/en-US/docs/Web/SVG/Tutorial/Paths</a>.<br />\n * Recommended path data come from mdi/js.<br />\n * See <a href=\"https://www.npmjs.com/package/@mdi/js\">https://www.npmjs.com/package/@mdi/js</a>.\n */\n rightIcon?: string;\n /** Button variant. */\n variant?: ButtonVariant;\n}\n\nexport type StyledButtonProps = Omit<\n ButtonProps,\n 'isActive' | 'isDisabled' | 'variant' | 'color' | 'size' | 'fullWidth'\n> & {\n $color: ButtonProps['color'];\n $fullWidth?: ButtonProps['fullWidth'];\n $isActive: ButtonProps['isActive'];\n $isDisabled: ButtonProps['isDisabled'];\n $variant: ButtonProps['variant'];\n};\n","import styled, { css } from 'styled-components';\nimport { baseStyling } from '~/components/shared';\nimport { StyledButtonProps, ButtonVariant } from './types';\n\n/**\n * Component style.\n */\nexport const StyledButton = styled.button<StyledButtonProps>`\n ${baseStyling}\n\n align-items: center;\n background: none;\n border: none;\n display: flex;\n font-family: var(--redsift-typography-button-font-family);\n font-size: var(--redsift-typography-button-font-size);\n font-weight: var(--redsift-typography-button-font-weight);\n gap: 8px;\n justify-content: center;\n line-height: var(--redsift-typography-button-line-height);\n text-decoration: none;\n text-transform: var(--redsift-typography-button-text-transform);\n\n ${({ $variant, $color, $isActive, $isDisabled }) => css`\n padding: ${$variant === ButtonVariant.secondary ? '7px 15px' : '8px 16px'};\n\n ${$variant === ButtonVariant.secondary\n ? css`\n background-color: ${$isActive\n ? `var(--redsift-color-${$color}-active)`\n : $isDisabled\n ? 'var(--redsift-color-neutral-white)'\n : 'var(--redsift-color-neutral-white)'};\n &,\n .redsift-icon {\n color: ${$isDisabled\n ? 'var(--redsift-color-neutral-midgrey)'\n : `var(--redsift-color-${$color}-primary)`};\n }\n `\n : $variant === ButtonVariant.unstyled\n ? css`\n background-color: ${$isActive\n ? `var(--redsift-color-${$color}-active)`\n : $isDisabled\n ? 'none'\n : 'none'};\n &,\n .redsift-icon {\n color: ${$isDisabled\n ? 'var(--redsift-color-neutral-midgrey)'\n : `var(--redsift-color-${$color}-primary)`};\n }\n `\n : css`\n background-color: ${$isActive\n ? `var(--redsift-color-${$color}-primary-active)`\n : $isDisabled\n ? 'var(--redsift-color-neutral-lightgrey)'\n : `var(--redsift-color-${$color}-primary)`};\n &,\n .redsift-icon {\n color: ${$isDisabled\n ? 'var(--redsift-color-neutral-midgrey)'\n : 'var(--redsift-color-neutral-white)'};\n }\n `}\n\n ${$variant === ButtonVariant.secondary\n ? css`\n border: 1px solid\n ${$isDisabled\n ? 'var(--redsift-color-neutral-midgrey)'\n : `var(--redsift-color-${$color}-primary)`};\n `\n : ''}\n `};\n\n &:hover,\n &:focus-visible {\n outline: none;\n\n ${({ $variant, $color, $isActive, $isDisabled }) => css`\n cursor: ${$isDisabled ? 'default' : 'pointer'};\n\n ${$variant === ButtonVariant.secondary\n ? css`\n background-color: ${$isActive\n ? `var(--redsift-color-${$color}-active-hover)`\n : $isDisabled\n ? 'var(--redsift-color-neutral-white)'\n : `var(--redsift-color-${$color}-hover)`};\n &,\n .redsift-icon {\n color: ${$isDisabled\n ? 'var(--redsift-color-neutral-midgrey)'\n : `var(--redsift-color-${$color}-secondary)`};\n }\n `\n : $variant === ButtonVariant.unstyled\n ? css`\n background-color: ${$isActive\n ? `var(--redsift-color-${$color}-active-hover)`\n : $isDisabled\n ? 'none'\n : `var(--redsift-color-${$color}-hover)`};\n &,\n .redsift-icon {\n color: ${$isDisabled\n ? 'var(--redsift-color-neutral-midgrey)'\n : `var(--redsift-color-${$color}-secondary)`};\n }\n `\n : css`\n background-color: ${$isActive\n ? `var(--redsift-color-${$color}-primary-active-hover)`\n : $isDisabled\n ? 'var(--redsift-color-neutral-lightgrey)'\n : `var(--redsift-color-${$color}-secondary)`};\n &,\n .redsift-icon {\n color: ${$isDisabled\n ? 'var(--redsift-color-neutral-midgrey)'\n : 'var(--redsift-color-neutral-white)'};\n }\n `}\n\n ${$variant === ButtonVariant.secondary\n ? css`\n border: 1px solid\n ${$isDisabled\n ? 'var(--redsift-color-neutral-midgrey)'\n : `var(--redsift-color-${$color}-primary)`};\n `\n : `\n border: none;\n `}\n `};\n }\n\n ${({ $fullWidth }) =>\n $fullWidth\n ? `\n width: 100%;\n flex-grow: 1;\n\n .redsift-icon.left {\n margin-right: unset;\n }\n\n .redsift-icon.right {\n margin-left: unset;\n }\n `\n : ''}\n`;\n","import enUS from './en-US.json';\nimport frFR from './fr-FR.json';\n\nexport default {\n 'en-US': enUS,\n 'fr-FR': frFR,\n};\n","import { ComponentProps } from 'react';\nimport {\n ColorPalette,\n LayoutProps,\n PositioningProps,\n ProductColorPalette,\n SpacingProps,\n ValueOf,\n} from '~/types';\n\n/**\n * Component size.\n */\nexport const SpinnerSize = {\n xsmall: 'xsmall',\n small: 'small',\n medium: 'medium',\n large: 'large',\n} as const;\nexport type SpinnerSize = ValueOf<typeof SpinnerSize>;\n\n/**\n * Component color.\n */\nexport type SpinnerColor =\n | typeof ColorPalette.default\n | typeof ColorPalette.question\n | typeof ColorPalette['no-data']\n | ProductColorPalette;\n\n/**\n * Component props.\n */\nexport interface SpinnerProps\n extends ComponentProps<'img'>,\n LayoutProps,\n SpacingProps,\n PositioningProps {\n /** Indicates whether the element is exposed to an accessibility API. */\n 'aria-hidden'?: boolean | 'false' | 'true';\n /** A screen reader only label for the Spinner. */\n 'aria-label'?: string;\n /** Color variant. The product colors are available but should only be used to display the Spinner in the color of another product. To display a Spinner with a color of the current product, use `default`. */\n color?: SpinnerColor;\n /** Spinner size. */\n size?: SpinnerSize;\n}\n\nexport type StyledSpinnerProps = Omit<SpinnerProps, 'color'> & {\n $color?: SpinnerProps['color'];\n $size?: SpinnerProps['size'];\n};\n","import styled from 'styled-components';\nimport { baseStyling } from '~/components/shared';\nimport { StyledSpinnerProps } from './types';\n\nexport const StyledSpinner = styled.img<StyledSpinnerProps>`\n ${baseStyling}\n\n display: inline;\n line-height: 0px;\n vertical-align: -0.125em;\n`;\n","import React from 'react';\nimport { AppContainerState } from './types';\n\nexport const AppContainerContext =\n React.createContext<AppContainerState | null>(null);\n","import styled, { css } from 'styled-components';\nimport { ProductColorPalette } from '~/types';\nimport { StyledAppContainerProps } from './types';\n\n/**\n * Component style.\n */\nexport const StyledAppContainer = styled.div<StyledAppContainerProps>`\n overflow: hidden;\n\n ${({ $productTheme }) =>\n $productTheme &&\n Object.keys(ProductColorPalette).indexOf($productTheme) !== -1\n ? css`\n --redsift-color-default-primary: var(\n --redsift-color-${$productTheme}-primary\n );\n --redsift-color-default-secondary: var(\n --redsift-color-${$productTheme}-secondary\n );\n --redsift-color-default-hover: var(\n --redsift-color-${$productTheme}-hover\n );\n --redsift-color-default-active: var(\n --redsift-color-${$productTheme}-active\n );\n --redsift-color-default-active-hover: var(\n --redsift-color-${$productTheme}-active-hover\n );\n --redsift-color-default-primary-active: var(\n --redsift-color-${$productTheme}-primary-active\n );\n `\n : ''}\n`;\n","import React, { forwardRef, RefObject, useMemo, useState } from 'react';\nimport { I18nProvider } from '@react-aria/i18n';\nimport classNames from 'classnames';\nimport { Comp } from '~/types';\nimport { AppContainerProps } from './types';\nimport { AppContainerContext } from './context';\nimport { StyledAppContainer } from './styles';\nimport { partitionComponents } from '~/utils/partitionComponents';\nimport { isComponent } from '~/utils/isComponent';\n\nconst COMPONENT_NAME = 'AppContainer';\nconst CLASSNAME = 'redsift-app-container';\nconst DEFAULT_PROPS: Partial<AppContainerProps> = {};\n\n/**\n * The AppContainer component.\n */\nexport const AppContainer: Comp<AppContainerProps, HTMLDivElement> = forwardRef(\n (props, ref) => {\n const { children, className, locale, productTheme, ...forwardedProps } =\n props;\n\n const { hasAppBar, hasAppSidePanel, hasAppContent } = useMemo(() => {\n const [[appBar], [appSidePanel], [appContent]] = partitionComponents(\n React.Children.toArray(children),\n [\n isComponent('AppBar'),\n isComponent('AppSidePanel'),\n isComponent('AppContent'),\n ]\n );\n\n return {\n hasAppBar: Boolean(appBar),\n hasAppSidePanel: Boolean(appSidePanel),\n hasAppContent: Boolean(appContent),\n };\n }, [children]);\n\n if (\n (hasAppBar || hasAppSidePanel || hasAppContent) &&\n !(hasAppBar && hasAppSidePanel && hasAppContent)\n ) {\n console.warn(\n 'Missing AppSidePanel, AppBar or AppContent inside AppContainer. These components are meant to work together.'\n );\n }\n\n const [isSidePanelCollapsed, setIsSidePanelCollapsed] =\n useState<boolean>(false);\n const [title, setTitle] = useState<string | undefined>();\n\n const state = {\n collapseSidePanel() {\n setIsSidePanelCollapsed(true);\n },\n expandSidePanel() {\n setIsSidePanelCollapsed(false);\n },\n hasAppBar,\n hasAppSidePanel,\n hasAppContent,\n setTitle(title: string) {\n setTitle(title);\n },\n isSidePanelCollapsed,\n productTheme,\n title,\n };\n\n return (\n <StyledAppContainer\n {...forwardedProps}\n $productTheme={productTheme}\n className={classNames(AppContainer.className, className)}\n ref={ref as RefObject<HTMLDivElement>}\n >\n <AppContainerContext.Provider value={state}>\n <I18nProvider locale={locale}>{children}</I18nProvider>\n </AppContainerContext.Provider>\n </StyledAppContainer>\n );\n }\n);\nAppContainer.className = CLASSNAME;\nAppContainer.defaultProps = DEFAULT_PROPS;\nAppContainer.displayName = COMPONENT_NAME;\n","import React, { forwardRef, RefObject, useContext } from 'react';\nimport classNames from 'classnames';\nimport { ColorPalette, Comp } from '~/types';\n\nimport { useLocalizedStringFormatter } from '@react-aria/i18n';\nimport intlMessages from './intl';\n\nimport { SpinnerProps, SpinnerSize } from './types';\nimport { StyledSpinner } from './styles';\nimport { AppContainerContext } from '../app-container';\n\nimport spinnerDefault from './images/spinner-default.svg';\nimport spinnerHardenize from './images/spinner-hardenize.svg';\nimport spinnerNoData from './images/spinner-no-data.svg';\nimport spinnerOndmarc from './images/spinner-ondmarc.svg';\nimport spinnerOndomain from './images/spinner-ondomain.svg';\nimport spinnerOninbox from './images/spinner-oninbox.svg';\nimport spinnerQuestion from './images/spinner-question.svg';\nimport spinnerTools from './images/spinner-tools.svg';\nimport spinnerWebsite from './images/spinner-website.svg';\n\nconst colorToFile = {\n default: spinnerDefault,\n hardenize: spinnerHardenize,\n 'no-data': spinnerNoData,\n ondmarc: spinnerOndmarc,\n ondomain: spinnerOndomain,\n oninbox: spinnerOninbox,\n question: spinnerQuestion,\n tools: spinnerTools,\n website: spinnerWebsite,\n};\n\nconst COMPONENT_NAME = 'Spinner';\nconst CLASSNAME = 'redsift-shield';\nconst DEFAULT_PROPS: Partial<SpinnerProps> = {\n color: ColorPalette.default,\n size: SpinnerSize.medium,\n};\n\nconst sizeToDimension = (\n size: SpinnerSize\n): { width: number; height: number } => {\n switch (size) {\n case SpinnerSize.xsmall:\n return { width: 15, height: 15 };\n case SpinnerSize.small:\n return { width: 24, height: 24 };\n case SpinnerSize.large:\n return { width: 56, height: 56 };\n case SpinnerSize.medium:\n default:\n return { width: 40, height: 40 };\n }\n};\n\n/**\n * The Spinner component.\n */\nexport const Spinner: Comp<SpinnerProps, HTMLImageElement> = forwardRef(\n (props, ref) => {\n const {\n 'aria-hidden': ariaHidden,\n 'aria-label': ariaLabel,\n className,\n color: propsColor,\n size,\n ...forwardedProps\n } = props;\n\n const { width, height } = sizeToDimension(size!);\n const appContainerState = useContext(AppContainerContext);\n const color =\n propsColor === ColorPalette.default &&\n appContainerState &&\n appContainerState.productTheme\n ? appContainerState.productTheme\n : propsColor;\n\n const stringFormatter = useLocalizedStringFormatter(intlMessages);\n\n return (\n <StyledSpinner\n alt={stringFormatter.format('loading')}\n {...forwardedProps}\n aria-hidden={ariaLabel ? (ariaHidden ? ariaHidden : undefined) : true}\n aria-label={ariaLabel}\n className={classNames(Spinner.className, className)}\n height={height}\n ref={ref as RefObject<HTMLImageElement>}\n src={colorToFile[color!]}\n width={width}\n $color={color}\n $size={size}\n />\n );\n }\n);\nSpinner.className = CLASSNAME;\nSpinner.defaultProps = DEFAULT_PROPS;\nSpinner.displayName = COMPONENT_NAME;\n","import React, { forwardRef, RefObject, useRef } from 'react';\nimport classNames from 'classnames';\nimport { useButton } from '@react-aria/button';\nimport { AriaButtonProps } from '@react-types/button';\nimport { ColorPalette, Comp } from '~/types';\nimport { Icon } from '~/components/icon';\nimport { StyledButton } from './styles';\nimport { ButtonProps, ButtonVariant } from './types';\nimport { Spinner } from '~/components/spinner';\n\nconst COMPONENT_NAME = 'Button';\nconst CLASSNAME = 'redsift-button';\nconst DEFAULT_PROPS: Partial<ButtonProps> = {\n color: ColorPalette.default,\n height: 'fit-content',\n variant: ButtonVariant.primary,\n};\n\n/**\n * The Button is a semantic button that looks like a button.\n *\n * For a semantic link that looks like a button, please use the ButtonLink component.\n * For a semantic link that looks like a link, please use the Link component.\n * For a semantic button that looks like a link, please use the LinkButton component.\n */\nexport const Button: Comp<ButtonProps, HTMLButtonElement> = forwardRef(\n (props, ref) => {\n const buttonRef = ref || useRef<HTMLButtonElement>();\n const { buttonProps, isPressed } = useButton(\n {\n ...props,\n isDisabled: props.isLoading || props.isDisabled || props.disabled,\n preventFocusOnPress: true,\n } as AriaButtonProps<'button'>,\n buttonRef as RefObject<HTMLButtonElement>\n );\n\n const {\n children,\n className,\n color,\n disabled,\n fullWidth,\n isActive,\n isDisabled,\n isLoading,\n leftIcon,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n onPress,\n rightIcon,\n variant,\n ...forwardedProps\n } = props;\n\n return (\n <StyledButton\n {...forwardedProps}\n {...buttonProps}\n $color={color}\n $fullWidth={fullWidth}\n $isActive={isActive || isPressed}\n $isDisabled={isLoading || isDisabled || disabled}\n $variant={variant}\n aria-disabled={isLoading || isDisabled || disabled}\n className={classNames(Button.className, className)}\n disabled={isLoading || isDisabled || disabled}\n ref={buttonRef as RefObject<HTMLButtonElement>}\n >\n {leftIcon ? (\n <Icon icon={leftIcon} aria-hidden=\"true\" className=\"left\" />\n ) : null}\n {isLoading ? <Spinner size=\"small\" color=\"no-data\" /> : null}\n {children}\n {rightIcon ? (\n <Icon icon={rightIcon} aria-hidden=\"true\" className=\"right\" />\n ) : null}\n </StyledButton>\n );\n }\n);\nButton.className = CLASSNAME;\nButton.defaultProps = DEFAULT_PROPS;\nButton.displayName = COMPONENT_NAME;\n","import styled, { css } from 'styled-components';\nimport { StyledButton } from '~/components/button';\nimport { IconButtonVariant, StyledIconButtonProps } from './types';\n\n/**\n * Component style.\n */\nexport const StyledIconButton = styled(StyledButton)<StyledIconButtonProps>`\n ${({ $variant }) => css`\n padding: ${$variant === IconButtonVariant.secondary ? '7px' : '8px'};\n `};\n`;\n","import React, { forwardRef, RefObject, useRef } from 'react';\nimport classNames from 'classnames';\nimport { useButton } from '@react-aria/button';\nimport { AriaButtonProps } from '@react-types/button';\nimport { ColorPalette, Comp } from '~/types';\nimport { Icon } from '~/components/icon';\nimport { warnIfNoAccessibleLabelFound } from '~/utils/warnIfNoAccessibleLabelFound';\nimport { StyledIconButton } from './styles';\nimport { IconButtonProps, IconButtonVariant } from './types';\n\nconst COMPONENT_NAME = 'IconButton';\nconst CLASSNAME = 'redsift-icon-button';\nconst DEFAULT_PROPS: Partial<IconButtonProps> = {\n color: ColorPalette.default,\n height: 'fit-content',\n variant: IconButtonVariant.unstyled,\n};\n\n/**\n * The Icon Button is a component that contains only one icon as a child, without text.\n *\n * This component should use aria-label, aria-labelledby or aria-describedby to make this\n * component usable with a screen reader.\n */\nexport const IconButton: Comp<IconButtonProps, HTMLButtonElement> = forwardRef(\n (props, ref) => {\n const buttonRef = ref || useRef<HTMLButtonElement>();\n const { buttonProps, isPressed } = useButton(\n {\n ...props,\n isDisabled: props.isDisabled || props.disabled,\n preventFocusOnPress: true,\n } as AriaButtonProps<'button'>,\n buttonRef as RefObject<HTMLButtonElement>\n );\n\n const {\n className,\n color,\n disabled,\n icon,\n isActive,\n isDisabled,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n onPress,\n variant,\n ...forwardedProps\n } = props;\n\n warnIfNoAccessibleLabelFound(props);\n\n return (\n <StyledIconButton\n {...forwardedProps}\n {...buttonProps}\n $color={isDisabled || disabled ? undefined : color}\n $isActive={isActive || isPressed}\n $isDisabled={isDisabled || disabled}\n $variant={variant}\n aria-disabled={isDisabled || disabled}\n className={classNames(IconButton.className, className)}\n disabled={isDisabled || disabled}\n ref={buttonRef as RefObject<HTMLButtonElement>}\n >\n <Icon icon={icon} color={isDisabled || disabled ? undefined : color} />\n </StyledIconButton>\n );\n }\n);\nIconButton.className = CLASSNAME;\nIconButton.defaultProps = DEFAULT_PROPS;\nIconButton.displayName = COMPONENT_NAME;\n","import styled, { css } from 'styled-components';\nimport { baseStyling } from '~/components/shared';\nimport { StyledAlertProps } from './types';\n\n/**\n * Component style.\n */\nexport const StyledAlert = styled.div<StyledAlertProps>`\n ${baseStyling}\n\n padding: 16px;\n ${({ $hasTitle, $isClosable, $isClosed, $variant }) => css`\n display: ${!$isClosed ? 'block' : 'none'};\n background-color: var(--redsift-color-${$variant}-hover);\n\n .redsift-alert__header {\n h5 {\n line-height: 26px;\n }\n }\n\n .redsift-alert-header__icon-button {\n padding: 0px;\n .redsift-icon {\n color: var(--redsift-color-neutral-black);\n }\n\n &:hover,\n &:focus-visible {\n background-color: var(--redsift-color-${$variant}-active);\n }\n }\n\n .redsift-alert__content {\n margin-top: ${$hasTitle ? '8px' : '-24px'};\n margin-left: 38px;\n ${$isClosable\n ? css`\n margin-right: 24px;\n `\n : ''};\n }\n `}\n`;\n","import { ComponentProps } from 'react';\nimport { ValueOf } from '~/types';\nimport { StylingProps } from '~/types';\n\n/**\n * Component variant.\n */\nexport const HeadingVariant = {\n h1: 'h1',\n h2: 'h2',\n h3: 'h3',\n h4: 'h4',\n h5: 'h5',\n body: 'body',\n} as const;\nexport type HeadingVariant = ValueOf<typeof HeadingVariant>;\n\nexport const HeadingComponent = {\n h1: 'h1',\n h2: 'h2',\n h3: 'h3',\n h4: 'h4',\n h5: 'h5',\n span: 'span',\n} as const;\nexport type HeadingComponent = ValueOf<typeof HeadingComponent>;\n\n/**\n * Component props.\n */\nexport interface HeadingProps extends ComponentProps<'span'>, StylingProps {\n /** The actual component rendered in the DOM. */\n as: HeadingComponent;\n /** Whether the text will truncate with a text overflow ellipsis or wrap. */\n noWrap?: boolean;\n /** The component the Heading will look like. */\n variant?: HeadingVariant;\n}\n\nexport type StyledHeadingProps = Omit<HeadingProps, 'color' | 'noWrap'> & {\n $noWrap: HeadingProps['noWrap'];\n $variant: HeadingProps['variant'];\n};\n","import styled, { css } from 'styled-components';\nimport { baseStyling } from '~/components/shared';\nimport { StyledHeadingProps } from './types';\n\n/**\n * Component style.\n */\nexport const StyledHeading = styled.span<StyledHeadingProps>`\n margin: 0;\n padding: 0;\n border: 0;\n font-size: 100%;\n font: inherit;\n vertical-align: baseline;\n\n ${baseStyling}\n\n ${({ $variant }) =>\n $variant === 'h1'\n ? css`\n color: var(--redsift-color-neutral-black);\n font-family: var(--redsift-typography-h1-font-family);\n font-size: var(--redsift-typography-h1-font-size);\n font-weight: var(--redsift-typography-h1-font-weight);\n line-height: var(--redsift-typography-h1-line-height);\n text-transform: var(--redsift-typography-h1-text-transform);\n `\n : $variant === 'h2'\n ? css`\n color: var(--redsift-color-neutral-black);\n font-family: var(--redsift-typography-h2-font-family);\n font-size: var(--redsift-typography-h2-font-size);\n font-weight: var(--redsift-typography-h2-font-weight);\n line-height: var(--redsift-typography-h2-line-height);\n `\n : $variant === 'h3'\n ? css`\n color: var(--redsift-color-neutral-black);\n font-family: var(--redsift-typography-h3-font-family);\n font-size: var(--redsift-typography-h3-font-size);\n font-weight: var(--redsift-typography-h3-font-weight);\n line-height: var(--redsift-typography-h3-line-height);\n `\n : $variant === 'h4'\n ? css`\n color: var(--redsift-color-neutral-black);\n font-family: var(--redsift-typography-h4-font-family);\n font-size: var(--redsift-typography-h4-font-size);\n font-weight: var(--redsift-typography-h4-font-weight);\n line-height: var(--redsift-typography-h4-line-height);\n `\n : $variant === 'h5'\n ? css`\n color: var(--redsift-color-neutral-black);\n font-family: var(--redsift-typography-h5-font-family);\n font-size: var(--redsift-typography-h5-font-size);\n font-weight: var(--redsift-typography-h5-font-weight);\n line-height: var(--redsift-typography-h5-line-height);\n `\n : css`\n color: var(--redsift-color-neutral-black);\n font-family: var(--redsift-typography-body-font-family);\n font-size: var(--redsift-typography-body-font-size);\n font-weight: var(--redsift-typography-body-font-weight);\n line-height: var(--redsift-typography-body-line-height);\n `}\n\n ${({ $noWrap }) =>\n $noWrap\n ? css`\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n `\n : css`\n word-break: break-word;\n `}\n`;\n","import React, { forwardRef, RefObject } from 'react';\nimport classNames from 'classnames';\nimport { Comp } from '~/types';\nimport { StyledHeading } from './styles';\nimport { HeadingProps } from './types';\n\nconst COMPONENT_NAME = 'Heading';\nconst CLASSNAME = 'redsift-heading';\nconst DEFAULT_PROPS: Partial<HeadingProps> = {};\n\n/**\n * The Heading component.\n */\nexport const Heading: Comp<HeadingProps, HTMLDivElement> = forwardRef(\n (props, ref) => {\n const { as, children, className, noWrap, variant, ...forwardedProps } =\n props;\n\n return (\n <StyledHeading\n as={as}\n {...forwardedProps}\n className={classNames(Heading.className, className)}\n ref={ref as RefObject<HTMLDivElement>}\n $noWrap={noWrap}\n $variant={variant ? variant : as === 'span' ? 'body' : as}\n >\n {children}\n </StyledHeading>\n );\n }\n);\nHeading.className = CLASSNAME;\nHeading.defaultProps = DEFAULT_PROPS;\nHeading.displayName = COMPONENT_NAME;\n","import styled from 'styled-components';\nimport {\n baseFlexbox,\n baseInternalSpacing,\n baseStyling,\n} from '~/components/shared';\nimport { StyledFlexboxProps } from './types';\n\n/**\n * Component style.\n */\nexport const StyledFlexbox = styled.div<StyledFlexboxProps>`\n display: ${({ inline }) => (inline ? 'inline-flex' : 'flex')};\n\n ${baseStyling}\n ${baseInternalSpacing}\n ${baseFlexbox}\n`;\n","import React, { forwardRef, RefObject } from 'react';\nimport classNames from 'classnames';\nimport { Comp } from '~/types';\nimport { StyledFlexbox } from './styles';\nimport { FlexboxProps } from './types';\n\nconst COMPONENT_NAME = 'Flexbox';\nconst CLASSNAME = 'redsift-flex-box';\nconst DEFAULT_PROPS: Partial<FlexboxProps> = {\n gap: '16px',\n};\n\n/**\n * The Flexbox component.\n */\nexport const Flexbox: Comp<FlexboxProps, HTMLDivElement> = forwardRef(\n (props, ref) => {\n const { children, className, ...forwardedProps } = props;\n\n return (\n <StyledFlexbox\n {...forwardedProps}\n className={classNames(Flexbox.className, className)}\n ref={ref as RefObject<HTMLDivElement>}\n >\n {children}\n </StyledFlexbox>\n );\n }\n);\nFlexbox.className = CLASSNAME;\nFlexbox.defaultProps = DEFAULT_PROPS;\nFlexbox.displayName = COMPONENT_NAME;\n","import React, {\n forwardRef,\n RefObject,\n useCallback,\n useEffect,\n useState,\n} from 'react';\nimport classNames from 'classnames';\n\nimport { useLocalizedStringFormatter } from '@react-aria/i18n';\nimport intlMessages from './intl';\n\nimport {\n mdiAlert,\n mdiAlertCircle,\n mdiCheckCircle,\n mdiClose,\n mdiInformation,\n} from '@redsift/icons';\nimport { IconButton } from '~/components/icon-button';\nimport { ColorPalette, Comp } from '~/types';\nimport { StyledAlert } from './styles';\nimport { AlertProps, AlertVariant } from './types';\nimport { Icon } from '~/components/icon';\nimport { Heading } from '~/components/heading';\nimport { Flexbox } from '~/components/flexbox';\n\nconst COMPONENT_NAME = 'Alert';\nconst CLASSNAME = 'redsift-alert';\nconst DEFAULT_PROPS: Partial<AlertProps> = {\n variant: 'info',\n};\n\nconst getVariant = (variant: AlertVariant) => {\n switch (variant) {\n case AlertVariant.info:\n default:\n return {\n color: ColorPalette.info,\n icon: mdiInformation,\n };\n case AlertVariant.error:\n return {\n color: ColorPalette.error,\n icon: mdiAlertCircle,\n };\n case AlertVariant.success:\n return {\n color: ColorPalette.success,\n icon: mdiCheckCircle,\n };\n case AlertVariant.warning:\n return {\n color: ColorPalette.warning,\n icon: mdiAlert,\n };\n }\n};\n\n/**\n * The Alert component.\n */\nexport const Alert: Comp<AlertProps, HTMLDivElement> = forwardRef(\n (props, ref) => {\n const {\n children,\n className,\n isClosable,\n isClosed: propsIsClosed,\n onClose,\n title,\n variant,\n ...forwardedProps\n } = props;\n\n const stringFormatter = useLocalizedStringFormatter(intlMessages);\n\n const { color, icon } = getVariant(variant!);\n const [isClosed, setIsClosed] = useState(propsIsClosed);\n\n useEffect(() => {\n setIsClosed(propsIsClosed);\n }, [propsIsClosed]);\n\n const handleClose = useCallback(() => {\n if (onClose) {\n onClose(true);\n }\n if (propsIsClosed === undefined || propsIsClosed === null) {\n setIsClosed(true);\n }\n }, [onClose]);\n\n return (\n <StyledAlert\n {...forwardedProps}\n className={classNames(Alert.className, className)}\n ref={ref as RefObject<HTMLDivElement>}\n $hasTitle={Boolean(title)}\n $isClosable={isClosable}\n $isClosed={isClosed}\n $variant={variant}\n >\n <Flexbox\n className={`${Alert.className}__header`}\n justifyContent=\"space-between\"\n >\n <Flexbox\n className={`${Alert.className}-header__title`}\n gap=\"14px\"\n alignItems=\"flex-start\"\n >\n <Icon icon={icon} color={color} />\n {title ? <Heading as=\"h5\">{title}</Heading> : null}\n </Flexbox>\n\n {isClosable ? (\n <IconButton\n aria-label={stringFormatter.format('close')}\n className={`${Alert.className}-header__icon-button`}\n icon={mdiClose}\n onPress={handleClose}\n />\n ) : null}\n </Flexbox>\n\n {children ? (\n <div className={`${Alert.className}__content`}>{children}</div>\n ) : null}\n </StyledAlert>\n );\n }\n);\nAlert.className = CLASSNAME;\nAlert.defaultProps = DEFAULT_PROPS;\nAlert.displayName = COMPONENT_NAME;\n","import enUS from './en-US.json';\nimport frFR from './fr-FR.json';\n\nexport default {\n 'en-US': enUS,\n 'fr-FR': frFR,\n};\n","import { useState, useEffect } from 'react';\n\nexport const useIsLoaded = () => {\n const [isLoaded, setIsLoaded] = useState(false);\n\n useEffect(() => {\n setIsLoaded(true);\n });\n\n return {\n isLoaded,\n };\n};\n","import styled, { css } from 'styled-components';\nimport { StyledAppBarProps } from './types';\n\n/**\n * Component style.\n */\nexport const StyledAppBar = styled.header<StyledAppBarProps>`\n align-content: center;\n align-items: center;\n background-color: var(--redsift-color-default-primary);\n color: var(--redsift-color-neutral-white);\n display: flex;\n flex-direction: row;\n height: 72px;\n justify-content: space-between;\n left: 0;\n position: fixed;\n top: 0;\n z-index: var(--redsift-layout-z-index-header);\n\n ${({ $isSidePanelCollapsed }) =>\n !$isSidePanelCollapsed\n ? css`\n transform: translate(240px);\n width: calc(100% - 240px);\n `\n : `\n transform: translate(0px);\n width: 100%;\n `}\n\n ${({ $isLoaded }) =>\n $isLoaded\n ? css`\n transition: transform 0.25s ease-out, width 0.25s ease-out;\n `\n : ''}\n\n h1 {\n margin: unset;\n padding: unset;\n color: var(--redsift-color-neutral-white);\n }\n\n .redsift-app-bar__left {\n align-content: center;\n align-items: center;\n display: inline-flex;\n flex-direction: row;\n gap: 8px;\n justify-content: center;\n margin-left: 24px;\n }\n\n .redsift-app-bar-left__expand-button,\n .redsift-app-bar-left__collapse-button {\n margin-left: -8px;\n }\n\n .redsift-app-bar__right {\n display: inline-flex;\n margin: 16px;\n }\n`;\n","import React, { forwardRef, RefObject, useContext } from 'react';\nimport classNames from 'classnames';\n\nimport { useLocalizedStringFormatter } from '@react-aria/i18n';\nimport intlMessages from './intl';\n\nimport { mdiMenu, mdiMenuOpen } from '@redsift/icons';\nimport { Comp } from '~/types';\nimport { IconButton, IconButtonVariant } from '~/components/icon-button';\nimport { AppContainerContext } from '~/components/app-container/context';\nimport { useIsLoaded } from '~/hooks/useIsLoaded';\nimport { StyledAppBar } from './styles';\nimport { AppBarProps } from './types';\nimport { Heading } from '~/components/heading';\n\nconst COMPONENT_NAME = 'AppBar';\nconst CLASSNAME = 'redsift-app-bar';\nconst DEFAULT_PROPS: Partial<AppBarProps> = {};\n\n/**\n * The AppBar component.\n */\nexport const AppBar: Comp<AppBarProps, HTMLHeadingElement> = forwardRef(\n (props, ref) => {\n const {\n children,\n className,\n collapseIconButtonProps,\n collapseIconButtonRef,\n expandIconButtonProps,\n expandIconButtonRef,\n fallbackTitle,\n title: propsTitle,\n ...forwardedProps\n } = props;\n\n const { isLoaded } = useIsLoaded();\n const appContainerState = useContext(AppContainerContext);\n\n const stringFormatter = useLocalizedStringFormatter(intlMessages);\n\n return (\n <StyledAppBar\n {...forwardedProps}\n $isLoaded={isLoaded}\n $isSidePanelCollapsed={\n appContainerState ? appContainerState.isSidePanelCollapsed : true\n }\n className={classNames(AppBar.className, className)}\n ref={ref as RefObject<HTMLHeadingElement>}\n >\n <div className={`${AppBar.className}__left`}>\n {appContainerState ? (\n <>\n {appContainerState.isSidePanelCollapsed ? (\n <IconButton\n className={`${AppBar.className}-left__expand-button`}\n {...expandIconButtonProps}\n aria-label={stringFormatter.format('expand')}\n icon={mdiMenu}\n onPress={appContainerState.expandSidePanel}\n ref={collapseIconButtonRef as RefObject<HTMLButtonElement>}\n variant={IconButtonVariant.primary}\n />\n ) : (\n <IconButton\n className={`${AppBar.className}-left__collapse-button`}\n {...collapseIconButtonProps}\n aria-label={stringFormatter.format('collapse')}\n icon={mdiMenuOpen}\n onPress={appContainerState.collapseSidePanel}\n ref={expandIconButtonRef as RefObject<HTMLButtonElement>}\n variant={IconButtonVariant.primary}\n />\n )}\n </>\n ) : null}\n {propsTitle && typeof propsTitle !== 'string' ? (\n <>{propsTitle}</>\n ) : typeof propsTitle === 'string' ? (\n <Heading as=\"h1\">{propsTitle}</Heading>\n ) : appContainerState && appContainerState.title ? (\n <Heading as=\"h1\">{appContainerState.title}</Heading>\n ) : fallbackTitle ? (\n <Heading as=\"h1\">{fallbackTitle}</Heading>\n ) : null}\n </div>\n <div className={`${AppBar.className}__right`}>{children}</div>\n </StyledAppBar>\n );\n }\n);\nAppBar.className = CLASSNAME;\nAppBar.defaultProps = DEFAULT_PROPS;\nAppBar.displayName = COMPONENT_NAME;\n","import styled, { css } from 'styled-components';\nimport { ProductColorPalette } from '~/types';\nimport { baseContainer } from '~/components/shared';\nimport { StyledAppContentProps } from './types';\n\n/**\n * Component style.\n */\nexport const StyledAppContent = styled.main<StyledAppContentProps>`\n ${baseContainer}\n\n box-sizing: border-box;\n margin-top: 72px;\n min-height: calc(100vh - 72px);\n padding: 16px 32px;\n\n @media screen and (max-width: 768px) {\n padding: 0px;\n }\n\n ${({ $isSidePanelCollapsed }) =>\n !$isSidePanelCollapsed\n ? css`\n transform: translate(240px);\n width: calc(100% - 240px);\n `\n : `\n transform: translate(0px);\n width: 100%;\n `}\n\n ${({ $isLoaded }) =>\n $isLoaded\n ? css`\n transition: transform 0.25s ease-out, width 0.25s ease-out;\n `\n : ''}\n\n ${({ $productTheme }) =>\n $productTheme &&\n Object.keys(ProductColorPalette).indexOf($productTheme) !== -1\n ? css`\n --redsift-color-default-primary: var(\n --redsift-color-${$productTheme}-primary\n );\n --redsift-color-default-secondary: var(\n --redsift-color-${$productTheme}-secondary\n );\n --redsift-color-default-hover: var(\n --redsift-color-${$productTheme}-hover\n );\n --redsift-color-default-active: var(\n --redsift-color-${$productTheme}-active\n );\n --redsift-color-default-active-hover: var(\n --redsift-color-${$productTheme}-active-hover\n );\n --redsift-color-default-primary-active: var(\n --redsift-color-${$productTheme}-primary-active\n );\n `\n : ''}\n`;\n","import React, { forwardRef, RefObject, useContext } from 'react';\nimport classNames from 'classnames';\nimport { Comp } from '~/types';\nimport { AppContainerContext } from '~/components/app-container/context';\nimport { useIsLoaded } from '~/hooks/useIsLoaded';\nimport { StyledAppContent } from './styles';\nimport { AppContentProps } from './types';\n\nconst COMPONENT_NAME = 'AppContent';\nconst CLASSNAME = 'redsift-app-content';\nconst DEFAULT_PROPS: Partial<AppContentProps> = {};\n\n/**\n * The AppContent component.\n */\nexport const AppContent: Comp<AppContentProps, HTMLElement> = forwardRef(\n (props, ref) => {\n const { children, className, productTheme, ...forwardedProps } = props;\n\n const { isLoaded } = useIsLoaded();\n const appContainerState = useContext(AppContainerContext);\n\n return (\n <StyledAppContent\n {...forwardedProps}\n $isLoaded={isLoaded}\n $isSidePanelCollapsed={\n appContainerState ? appContainerState.isSidePanelCollapsed : true\n }\n $productTheme={productTheme}\n className={classNames(AppContent.className, className)}\n ref={ref as RefObject<HTMLElement>}\n >\n {children}\n </StyledAppContent>\n );\n }\n);\nAppContent.className = CLASSNAME;\nAppContent.defaultProps = DEFAULT_PROPS;\nAppContent.displayName = COMPONENT_NAME;\n","import styled from 'styled-components';\nimport { StyledAppSidePanelProps } from './types';\n\n/**\n * Component style.\n */\nexport const StyledAppSidePanel = styled.div<StyledAppSidePanelProps>`\n align-items: center;\n background-color: var(--redsift-side-navigation-color-background);\n flex-direction: column;\n height: 100%;\n left: 0px;\n overflow: hidden;\n position: fixed;\n top: 0;\n transform: ${({ $isCollapsed }) =>\n !$isCollapsed ? 'translate(0px)' : 'translate(-240px)'};\n transition: transform 0.25s ease-out, visibility 0.25s ease-out;\n visibility: ${({ $isCollapsed }) => (!$isCollapsed ? 'visible' : 'hidden')};\n width: 240px;\n z-index: var(--redsift-layout-z-index-side-panel);\n\n .redsift-app-side-panel__header {\n align-items: center;\n box-sizing: border-box;\n display: flex;\n flex-direction: row;\n gap: 8px;\n justify-content: space-between;\n padding: 16px;\n width: 100%;\n height: 72px;\n }\n\n .redsift-app-side-panel__header > img {\n max-height: 36px;\n max-width: 160px;\n }\n\n .redsift-app-side-panel__featured {\n box-sizing: border-box;\n margin-bottom: 16px;\n padding: 0px 16px;\n width: 100%;\n }\n\n [dir='rtl'] & {\n left: unset;\n right: 0px;\n transform: unset;\n transition: unset;\n }\n\n scrollbar-color: var(--redsift-side-navigation-color-scrollbar-resting)\n transparent;\n scrollbar-width: thin;\n\n &::-webkit-scrollbar {\n block-size: 9px;\n inline-size: 9px;\n }\n\n &::-webkit-scrollbar-thumb {\n background-clip: padding-box;\n background-color: var(--redsift-side-navigation-color-scrollbar-resting);\n border-radius: 0px;\n border-left: 2px solid transparent;\n border-right: 2px solid transparent;\n }\n\n &::-webkit-scrollbar-track {\n background-color: transparent;\n }\n\n &::-webkit-scrollbar-thumb:horizontal,\n &::-webkit-scrollbar-thumb:vertical {\n &:hover {\n background-color: var(--redsift-side-navigation-color-scrollbar-hover);\n }\n }\n\n &::-webkit-scrollbar-corner {\n visibility: hidden;\n }\n`;\n","import React, { forwardRef, RefObject, useContext } from 'react';\nimport classNames from 'classnames';\nimport { Comp } from '~/types';\nimport { AppContainerContext } from '~/components/app-container/context';\nimport { StyledAppSidePanel } from './styles';\nimport { AppSidePanelProps } from './types';\n\nconst COMPONENT_NAME = 'AppSidePanel';\nconst CLASSNAME = 'redsift-app-side-panel';\nconst DEFAULT_PROPS: Partial<AppSidePanelProps> = {};\n\n/**\n * The AppSidePanel component.\n */\nexport const AppSidePanel: Comp<AppSidePanelProps, HTMLDivElement> = forwardRef(\n (props, ref) => {\n const {\n children,\n className,\n featuredElements,\n isCollapsed = false,\n logo,\n ...forwardedProps\n } = props;\n\n const appContainerState = useContext(AppContainerContext);\n\n return (\n <StyledAppSidePanel\n {...forwardedProps}\n $isCollapsed={\n !!(isCollapsed || appContainerState?.isSidePanelCollapsed)\n }\n className={classNames(AppSidePanel.className, className)}\n ref={ref as RefObject<HTMLDivElement>}\n >\n {logo || appContainerState?.hasAppBar ? (\n <div className={`${AppSidePanel.className}__header`}>\n {logo ? (\n React.isValidElement(logo) ? (\n logo\n ) : (\n <img src={logo.src} alt={logo.alt} />\n )\n ) : null}\n </div>\n ) : null}\n {featuredElements ? (\n <div className={`${AppSidePanel.className}__featured`}>\n {featuredElements}\n </div>\n ) : null}\n {children}\n </StyledAppSidePanel>\n );\n }\n);\nAppSidePanel.className = CLASSNAME;\nAppSidePanel.defaultProps = DEFAULT_PROPS;\nAppSidePanel.displayName = COMPONENT_NAME;\n","import { ComponentProps, MutableRefObject } from 'react';\nimport { IconProps } from '~/components/icon';\n\n/**\n * Context props.\n */\nexport type SideNavigationMenuContextProps = {\n menuItems: Set<HTMLAnchorElement | HTMLButtonElement>;\n};\n\n/**\n * Reducer props.\n */\nexport type SideNavigationMenuReducerState = {\n isExpanded: boolean;\n currentIndex: number;\n previousIndex: number;\n};\n\nexport enum SideNavigationMenuReducerActionType {\n Expand = 'expand',\n Collapse = 'collapse',\n Move = 'move',\n}\n\nexport type SideNavigationMenuReducerAction = {\n type: SideNavigationMenuReducerActionType;\n index?: number;\n};\n\n/**\n * Component props.\n */\nexport interface SideNavigationMenuProps extends ComponentProps<'div'> {\n /** Custom props to pass to the button. */\n buttonProps?: ComponentProps<'button'>;\n /** Custom ref to pass to the button. */\n buttonRef?: MutableRefObject<HTMLButtonElement>;\n /** Whether or not the menu contains children that have a badge. */\n hasBadge?: boolean;\n /**\n * Icon path data (`d` property of the `path` SVG element).<br />\n * See <a href=\"https://developer.mozilla.org/en-US/docs/Web/SVG/Tutorial/Paths\">https://developer.mozilla.org/en-US/docs/Web/SVG/Tutorial/Paths</a>.<br />\n * Recommended path data come from mdi/js.<br />\n * See <a href=\"https://www.npmjs.com/package/@mdi/js\">https://www.npmjs.com/package/@mdi/js</a>.\n */\n icon?: string;\n /** Custom props to pass to the Icon component. */\n iconProps?: Omit<IconProps, 'icon'>;\n /** Custom ref to pass to the Icon component. */\n iconRef?: MutableRefObject<HTMLElement>;\n /** Whether the component is disabled or not. */\n isDisabled?: boolean;\n /** Whether the menu is expanded or not. */\n isExpanded?: boolean;\n /** Custom props to pass to the menu. */\n menuProps?: ComponentProps<'ul'>;\n /** Custom ref to pass to the menu. */\n menuRef?: MutableRefObject<HTMLUListElement>;\n /** Whether the component should hide icons or not. */\n withoutIcons?: boolean;\n}\n\nexport type StyledSideNavigationMenuProps = Omit<\n SideNavigationMenuProps,\n 'isDisabled' | 'isExpanded' | 'withoutIcons'\n> & {\n $isDisabled: SideNavigationMenuProps['isDisabled'];\n $isExpanded: SideNavigationMenuProps['isExpanded'];\n $withoutIcons: SideNavigationMenuProps['withoutIcons'];\n};\n","import React from 'react';\nimport { SideNavigationMenuBarContextProps } from './types';\n\nexport const SideNavigationMenuBarContext =\n React.createContext<SideNavigationMenuBarContextProps>(null!);\n","import React from 'react';\nimport { SideNavigationMenuContextProps } from './types';\n\nexport const SideNavigationMenuContext =\n React.createContext<SideNavigationMenuContextProps>(null!);\n","import styled, { css } from 'styled-components';\nimport { StyledSideNavigationMenuItemProps } from './types';\n\n/**\n * Component style.\n */\nexport const StyledSideNavigationMenuItem = styled.a<StyledSideNavigationMenuItemProps>`\n /**\n * Common style\n */\n ${({ $isDisabled }) =>\n !$isDisabled\n ? css`\n &,\n .redsift-icon.first {\n color: var(--redsift-side-navigation-color-menu-item-text-resting);\n }\n `\n : css`\n &,\n .redsift-icon.first {\n color: var(--redsift-side-navigation-color-menu-item-text-disabled);\n }\n `}\n align-items: center;\n display: flex;\n font-family: var(--redsift-typography-body-font-family);\n font-size: var(--redsift-typography-body-font-size);\n font-weight: var(--redsift-typography-body-font-weight);\n line-height: var(--redsift-typography-body-line-height);\n text-decoration: none;\n\n &:hover,\n &:focus-visible {\n outline: none;\n\n ${({ $isDisabled }) =>\n !$isDisabled\n ? css`\n background-color: var(\n --redsift-side-navigation-color-menu-item-background-hover\n );\n &,\n .redsift-icon.first {\n color: var(--redsift-side-navigation-color-menu-item-text-hover);\n }\n `\n : ''}\n }\n\n ${({ $isSecondLevel, $withoutIcons }) =>\n !$isSecondLevel\n ? css`\n /**\n * First-level items\n */\n\n background-color: var(--redsift-side-navigation-color-background);\n padding: 8px 16px;\n\n .redsift-icon.first {\n padding-right: 16px;\n box-sizing: unset;\n }\n\n span {\n padding-right: 12px;\n }\n\n [dir='rtl'] & {\n padding-right: unset;\n\n .redsift-icon.first {\n padding-left: 16px;\n padding-right: unset;\n }\n\n span {\n padding-left: 12px;\n padding-right: unset;\n }\n }\n `\n : `\n /**\n * Second-level items\n */\n\n background-color: var(--redsift-side-navigation-color-menu-item-background-secondary);\n padding-bottom: 8px;\n padding-left: ${!$withoutIcons ? '52px' : '16px'};\n padding-right: 8px;\n padding-top: 8px;\n\n span {\n padding-right: 12px;\n }\n\n [dir=\"rtl\"] & {\n padding-left: unset;\n padding-right: 16px;\n\n span {\n padding-left: 12px;\n padding-right: unset;\n }\n }\n `}\n\n ${({ $isCurrent, $isDisabled }) =>\n $isCurrent && !$isDisabled\n ? css`\n background-color: var(\n --redsift-side-navigation-color-menu-item-background-active\n );\n box-shadow: inset -4px 0px 0px var(--redsift-side-navigation-color-menu-item-active);\n `\n : ''}\n`;\n","import { ComponentProps } from 'react';\nimport {\n ColorPalette,\n DataVizColorPalette,\n LayoutProps,\n PositioningProps,\n ProductColorPalette,\n SpacingProps,\n ValueOf,\n} from '~/types';\n\n/**\n * Component variant.\n */\nexport const BadgeVariant = {\n dot: 'dot',\n standard: 'standard',\n} as const;\nexport type BadgeVariant = ValueOf<typeof BadgeVariant>;\n\n/**\n * Component props.\n */\nexport interface BadgeProps\n extends ComponentProps<'div'>,\n LayoutProps,\n SpacingProps,\n PositioningProps {\n /** Whether the badge should automatically break content. */\n autoBreak?: boolean;\n /** Color variant. The product colors are available but should only be used to display the Badge in the color of another product. To display a Badge with a color of the current product, use `default`. */\n color?: ColorPalette | DataVizColorPalette | ProductColorPalette;\n /** Whether the Badge has its colors reversed or not. */\n isReversed?: boolean;\n /** Badge variant. */\n variant?: BadgeVariant;\n}\n\nexport type StyledBadgeProps = Omit<\n BadgeProps,\n 'color' | 'variant' | 'isReversed' | 'autoBreak'\n> & {\n $autoBreak: BadgeProps['autoBreak'];\n $color: BadgeProps['color'];\n $isReversed: BadgeProps['isReversed'];\n $variant: BadgeProps['variant'];\n};\n","import styled, { css } from 'styled-components';\nimport { baseStyling } from '~/components/shared';\nimport { DataVizColorPalette } from '~/types';\nimport { BadgeVariant, StyledBadgeProps } from './types';\n\n/**\n * Component style.\n */\nexport const StyledBadge = styled.div<StyledBadgeProps>`\n ${baseStyling}\n\n ${({ $color, $isReversed }) => {\n if ($isReversed) {\n return css`\n background-color: var(--redsift-color-neutral-white);\n\n &,\n .redsift-icon {\n color: ${Object.keys(DataVizColorPalette).includes($color!)\n ? `var(--redsift-data-viz-color-${$color}-darker);`\n : `var(--redsift-color-${$color}-primary);`};\n }\n `;\n } else {\n return css`\n background-color: ${Object.keys(DataVizColorPalette).includes($color!)\n ? `var(--redsift-data-viz-color-${$color}-darker);`\n : `var(--redsift-color-${$color}-primary);`}\n &,\n .redsift-icon {\n color: var(--redsift-color-neutral-white);\n }\n `;\n }\n }}\n\n ${({ $variant, $autoBreak }) => {\n switch ($variant) {\n case BadgeVariant.dot:\n return css`\n border-radius: 50%;\n height: 8px;\n margin-bottom: 12px;\n margin-right: 12px;\n width: 8px;\n `;\n case BadgeVariant.standard:\n default:\n return css`\n border-radius: 64px;\n height: fit-content;\n min-width: 8px;\n padding: 0 6px;\n text-align: center;\n width: fit-content;\n word-break: ${$autoBreak ? 'break-word' : 'normal'};\n\n &,\n .redsift-icon {\n font-family: var(--redsift-typography-badge-font-family);\n font-size: var(--redsift-typography-badge-font-size);\n font-weight: var(--redsift-typography-badge-font-weight);\n line-height: var(--redsift-typography-badge-line-height);\n }\n `;\n }\n }}\n`;\n","import React, { forwardRef, RefObject } from 'react';\nimport classNames from 'classnames';\nimport { ColorPalette, Comp } from '~/types';\nimport { StyledBadge } from './styles';\nimport { BadgeProps, BadgeVariant } from './types';\n\nconst COMPONENT_NAME = 'Badge';\nconst CLASSNAME = 'redsift-badge';\nconst DEFAULT_PROPS: Partial<BadgeProps> = {\n color: ColorPalette.question,\n variant: BadgeVariant.dot,\n};\n\n/**\n * The Badge component.\n */\nexport const Badge: Comp<BadgeProps, HTMLDivElement> = forwardRef(\n (props, ref) => {\n const {\n autoBreak,\n children,\n className,\n color,\n isReversed,\n variant,\n ...forwardedProps\n } = props;\n\n return (\n <StyledBadge\n {...forwardedProps}\n $autoBreak={autoBreak}\n $color={color}\n $isReversed={isReversed}\n $variant={variant}\n className={classNames(\n Badge.className,\n `${Badge.className}-${variant}`,\n className\n )}\n ref={ref as RefObject<HTMLDivElement>}\n >\n {variant === BadgeVariant.standard ? children : null}\n </StyledBadge>\n );\n }\n);\nBadge.className = CLASSNAME;\nBadge.defaultProps = DEFAULT_PROPS;\nBadge.displayName = COMPONENT_NAME;\n","import React, {\n forwardRef,\n MutableRefObject,\n useContext,\n useEffect,\n useRef,\n useState,\n} from 'react';\nimport classNames from 'classnames';\nimport { Comp } from '~/types';\nimport { Icon, IconSize } from '~/components/icon';\nimport { warnIfNoAccessibleLabelFound } from '~/utils/warnIfNoAccessibleLabelFound';\nimport { SideNavigationMenuBarContext } from '~/components/side-navigation-menu-bar/context';\nimport { SideNavigationMenuContext } from '~/components/side-navigation-menu/context';\nimport { AppContainerContext } from '~/components/app-container/context';\nimport { StyledSideNavigationMenuItem } from './styles';\nimport { SideNavigationMenuItemProps } from './types';\nimport { Badge, BadgeVariant } from '~/components/badge';\n\nconst COMPONENT_NAME = 'SideNavigationMenuItem';\nconst CLASSNAME = 'redsift-side-navigation-menu-item';\nconst DEFAULT_PROPS: Partial<SideNavigationMenuItemProps> = {};\n\n/**\n * The SideNavigationMenuItem component.\n */\nexport const SideNavigationMenuItem: Comp<\n SideNavigationMenuItemProps,\n HTMLAnchorElement\n> = forwardRef((props, ref) => {\n const menuItemRef = ref || useRef<HTMLAnchorElement>();\n\n const {\n badge,\n badgeProps,\n children,\n className,\n href,\n icon,\n iconProps,\n iconRef = useRef<HTMLElement>(),\n isCurrent,\n isDisabled,\n isSecondLevel,\n onClick,\n onKeyDown,\n tabIndex,\n withoutIcons,\n ...forwardedProps\n } = props;\n\n warnIfNoAccessibleLabelFound(props, [children]);\n\n const appContainerState = useContext(AppContainerContext);\n useEffect(() => {\n if (appContainerState && isCurrent && typeof children === 'string') {\n appContainerState.setTitle(children);\n }\n\n return () => {\n if (appContainerState) {\n appContainerState.setTitle(undefined);\n }\n };\n }, [isCurrent]);\n\n const sideNavigationMenuBarContext = useContext(SideNavigationMenuBarContext);\n const sideNavigationMenuContext = useContext(SideNavigationMenuContext);\n const [isFirstChild, setIsFirstChild] = useState(false);\n const { menuItems } =\n sideNavigationMenuContext || sideNavigationMenuBarContext || {};\n\n useEffect(() => {\n if (!(sideNavigationMenuContext || sideNavigationMenuBarContext)) {\n setIsFirstChild(true);\n return;\n }\n\n const menuItemNode = (menuItemRef as MutableRefObject<HTMLAnchorElement>)\n .current;\n\n if (menuItemNode) {\n if (!menuItems.size) {\n setIsFirstChild(true);\n }\n\n menuItems.add(menuItemNode);\n }\n\n return () => {\n menuItems.delete(menuItemNode);\n };\n }, [menuItems]);\n\n return (\n <StyledSideNavigationMenuItem\n role=\"menuitem\"\n {...forwardedProps}\n $isCurrent={isCurrent}\n $isDisabled={isDisabled}\n $isSecondLevel={isSecondLevel}\n $withoutIcons={withoutIcons}\n aria-current={isCurrent ? 'page' : undefined}\n aria-disabled={isDisabled}\n className={classNames(SideNavigationMenuItem.className, className)}\n href={!isDisabled ? href : undefined}\n onClick={isDisabled ? undefined : onClick}\n onKeyDown={isDisabled ? undefined : onKeyDown}\n ref={menuItemRef as MutableRefObject<HTMLAnchorElement>}\n tabIndex={\n tabIndex !== undefined\n ? tabIndex\n : !sideNavigationMenuContext && isFirstChild\n ? 0\n : -1\n }\n >\n {icon ? (\n <Icon\n color=\"var(--redsift-side-navigation-color-menu-item-text-resting)\"\n {...iconProps}\n icon={icon}\n ref={iconRef as MutableRefObject<HTMLElement>}\n className=\"first\"\n size={IconSize.small}\n />\n ) : null}\n <span>{children}</span>\n {badge ? (\n <Badge variant={BadgeVariant.standard} color=\"error\" {...badgeProps}>\n {badge}\n </Badge>\n ) : null}\n </StyledSideNavigationMenuItem>\n );\n});\nSideNavigationMenuItem.className = CLASSNAME;\nSideNavigationMenuItem.defaultProps = DEFAULT_PROPS;\nSideNavigationMenuItem.displayName = COMPONENT_NAME;\n","import styled, { css } from 'styled-components';\nimport { StyledSideNavigationMenuProps } from './types';\n\n/**\n * Component style.\n */\nexport const StyledSideNavigationMenu = styled.div<StyledSideNavigationMenuProps>`\n > button {\n background-color: var(--redsift-side-navigation-color-background);\n border: none;\n ${({ $isDisabled }) =>\n !$isDisabled\n ? css`\n &,\n .redsift-icon.first {\n color: var(\n --redsift-side-navigation-color-menu-item-text-resting\n );\n }\n `\n : css`\n &,\n .redsift-icon.first {\n color: var(\n --redsift-side-navigation-color-menu-item-text-disabled\n );\n }\n `}\n align-items: center;\n display: flex;\n font-family: var(--redsift-typography-body-font-family);\n font-size: var(--redsift-typography-body-font-size);\n font-weight: var(--redsift-typography-body-font-weight);\n line-height: var(--redsift-typography-body-line-height);\n padding: 8px 16px;\n text-decoration: none;\n width: 100%;\n }\n\n ul {\n list-style: none;\n margin: unset;\n padding: unset;\n }\n\n .redsift-icon.first {\n padding-right: 16px;\n box-sizing: unset;\n }\n\n span {\n padding-right: 12px;\n }\n\n [dir='rtl'] & {\n .redsift-icon.first {\n padding-left: 16px;\n padding-right: unset;\n }\n\n span {\n padding-left: 12px;\n padding-right: unset;\n }\n }\n\n > button:hover,\n > button:focus-visible {\n outline: none;\n\n ${({ $isDisabled }) =>\n !$isDisabled\n ? css`\n background-color: var(\n --redsift-side-navigation-color-menu-item-background-hover\n );\n &,\n .redsift-icon.first,\n .redsift-side-navigation-menu__expand-icon {\n color: var(--redsift-side-navigation-color-menu-item-text-hover);\n }\n cursor: pointer;\n `\n : ''}\n }\n\n .redsift-side-navigation-menu__expand-icon {\n ${({ $isDisabled }) =>\n !$isDisabled\n ? css`\n &,\n .redsift-icon.first {\n color: var(\n --redsift-side-navigation-color-menu-item-text-resting\n );\n }\n `\n : css`\n &,\n .redsift-icon.first {\n color: var(\n --redsift-side-navigation-color-menu-item-text-disabled\n );\n }\n `}\n margin-left: auto;\n }\n\n [dir='rtl'] & {\n .redsift-side-navigation-menu__expand-icon {\n margin-left: unset;\n margin-right: auto;\n }\n }\n\n /**\n * Display children or not\n */\n\n > ul {\n ${({ $isExpanded }) =>\n $isExpanded\n ? css`\n display: block;\n `\n : css`\n display: none;\n `}\n }\n`;\n","import {\n SideNavigationMenuReducerState,\n SideNavigationMenuReducerAction,\n SideNavigationMenuReducerActionType,\n} from './types';\n\nexport const SideNavigationMenuReducer = (\n state: SideNavigationMenuReducerState,\n action: SideNavigationMenuReducerAction\n): SideNavigationMenuReducerState => {\n switch (action.type) {\n case SideNavigationMenuReducerActionType.Expand:\n return { ...state, isExpanded: true };\n case SideNavigationMenuReducerActionType.Collapse:\n return {\n isExpanded: false,\n currentIndex: null!,\n previousIndex: null!,\n };\n case SideNavigationMenuReducerActionType.Move:\n return {\n ...state,\n isExpanded: true,\n currentIndex: action.index!,\n previousIndex: state.currentIndex,\n };\n }\n};\n","import React, {\n forwardRef,\n KeyboardEvent,\n MouseEvent,\n MutableRefObject,\n useCallback,\n useContext,\n useEffect,\n useMemo,\n useReducer,\n useRef,\n useState,\n} from 'react';\nimport classNames from 'classnames';\nimport { mdiChevronDown, mdiChevronRight } from '@redsift/icons';\nimport { Comp } from '~/types';\nimport { SideNavigationMenuItem } from '~/components/side-navigation-menu-item';\nimport { Icon, IconSize } from '~/components/icon';\nimport { Badge } from '~/components/badge';\nimport { StyledSideNavigationMenu } from './styles';\nimport {\n SideNavigationMenuContextProps,\n SideNavigationMenuProps,\n SideNavigationMenuReducerActionType,\n} from './types';\nimport { SideNavigationMenuContext } from './context';\nimport { SideNavigationMenuReducer } from './reducer';\nimport { SideNavigationMenuBarContext } from '~/components/side-navigation-menu-bar/context';\nimport { warnIfNoAccessibleLabelFound } from '~/utils/warnIfNoAccessibleLabelFound';\nimport { filterComponents } from '~/utils/filterComponents';\n\nconst COMPONENT_NAME = 'SideNavigationMenu';\nconst CLASSNAME = 'redsift-side-navigation-menu';\nconst DEFAULT_PROPS: Partial<SideNavigationMenuProps> = {};\n\n/**\n * The SideNavigationMenu component.\n */\nexport const SideNavigationMenu: Comp<SideNavigationMenuProps, HTMLDivElement> =\n forwardRef((props, ref) => {\n const {\n 'aria-label': ariaLabel,\n buttonProps = {},\n buttonRef = useRef<HTMLButtonElement>() as MutableRefObject<HTMLButtonElement>,\n children,\n className,\n hasBadge,\n icon,\n iconProps,\n iconRef = useRef<HTMLElement>(),\n isDisabled,\n isExpanded: propsIsExpanded,\n menuProps = {},\n menuRef = useRef<HTMLUListElement>(),\n tabIndex,\n withoutIcons,\n ...forwardedProps\n } = props;\n\n warnIfNoAccessibleLabelFound(props);\n\n const sideNavigationMenuBarContext = useContext(\n SideNavigationMenuBarContext\n );\n const [isFirstChild, setIsFirstChild] = useState(false);\n const { menuItems: menubarItems } = sideNavigationMenuBarContext || {};\n\n /**\n * Create an array containing only valid children which can only be SideNavigationMenuItem.\n * This prevent the navigation menubar to have more than two levels.\n */\n const childArray = filterComponents(SideNavigationMenuItem)(children);\n const renderedMenuItems = childArray.map((child, index) => {\n return (\n <li key={child.key ?? index} role=\"none\">\n {React.cloneElement(child, {\n icon: undefined, // Second-level item should not have icon\n isDisabled: child.props.isDisabled || isDisabled || undefined,\n isSecondLevel: true,\n key: child.key ?? index,\n withoutIcons,\n })}\n </li>\n );\n });\n\n const menuItems = useRef<Set<HTMLAnchorElement | HTMLButtonElement>>(\n new Set()\n ).current;\n const [state, dispatch] = useReducer(SideNavigationMenuReducer, {\n currentIndex: null!,\n isExpanded: Boolean(propsIsExpanded),\n previousIndex: null!,\n });\n const { isExpanded, currentIndex, previousIndex } = state;\n\n const first = useCallback(\n () =>\n dispatch({ type: SideNavigationMenuReducerActionType.Move, index: 0 }),\n []\n );\n\n const last = useCallback(\n () =>\n dispatch({\n type: SideNavigationMenuReducerActionType.Move,\n index: menuItems.size - 1,\n }),\n [menuItems.size]\n );\n\n const move = useCallback(\n (index: number) =>\n dispatch({ type: SideNavigationMenuReducerActionType.Move, index }),\n []\n );\n\n const open = useCallback(\n () => dispatch({ type: SideNavigationMenuReducerActionType.Expand }),\n []\n );\n\n const close = useCallback(\n (focusButton?: boolean) => {\n if (isExpanded) {\n if (focusButton) {\n buttonRef.current.focus();\n }\n\n dispatch({ type: SideNavigationMenuReducerActionType.Collapse });\n }\n },\n [isExpanded]\n );\n\n const previous = () => {\n const index = currentIndex === 0 ? menuItems.size - 1 : currentIndex - 1;\n move(index);\n };\n\n const next = () => {\n const index = currentIndex === menuItems.size - 1 ? 0 : currentIndex + 1;\n move(index);\n };\n\n const match = (e: React.KeyboardEvent<HTMLUListElement>) => {\n const items = Array.from(menuItems);\n\n // Reorder the array, starting with the currentNode\n const reorderedItems = [\n ...items.slice(currentIndex),\n ...items.slice(0, currentIndex),\n ];\n\n // Find all nodes that begin with the pressed letter\n const matches = reorderedItems.filter((menuItem) => {\n const { textContent } = menuItem;\n // istanbul ignore next\n const firstLetter = textContent?.toLowerCase().charAt(0);\n return e.key === firstLetter;\n });\n\n // Exit early if there are no matches\n if (!matches.length) {\n return;\n }\n\n // If the focused item is a match, focus the next match.\n // Otherwise, focus the first match\n const currentNode = items[currentIndex];\n const nextMatch = matches.includes(currentNode) ? matches[1] : matches[0];\n const index = items.findIndex((item) => {\n return item === nextMatch;\n });\n\n move(index);\n };\n\n const value = useMemo<SideNavigationMenuContextProps>(\n () => ({ menuItems }),\n [menuItems]\n );\n\n useEffect(() => {\n const items = Array.from(menuItems);\n\n if (currentIndex !== previousIndex) {\n const currentNode = items[currentIndex] as HTMLElement;\n currentNode?.focus();\n }\n }, [menuItems, currentIndex, previousIndex]);\n\n useEffect(() => {\n if (!sideNavigationMenuBarContext) {\n setIsFirstChild(true);\n return;\n }\n\n const menuItemNode = (buttonRef as MutableRefObject<HTMLButtonElement>)\n .current;\n\n if (menuItemNode) {\n menubarItems.add(menuItemNode);\n }\n\n return () => {\n menubarItems.delete(menuItemNode);\n };\n }, [menubarItems]);\n\n const keyDownOnButton = (e: KeyboardEvent<HTMLButtonElement>) => {\n if (isDisabled) {\n return;\n }\n const currentNode = e.target as HTMLUListElement;\n\n switch (e.code) {\n case 'Enter':\n case 'Space':\n e.stopPropagation();\n currentNode.click();\n first();\n break;\n case 'ArrowRight':\n e.stopPropagation();\n first();\n break;\n case 'ArrowLeft':\n last();\n break;\n default:\n break;\n }\n };\n\n const buttonEventHandler = {\n onClick: (event: MouseEvent<HTMLButtonElement>) => {\n if (isDisabled) {\n return;\n }\n\n buttonProps.onClick?.(event);\n event.stopPropagation();\n if (isExpanded) {\n close();\n } else {\n open();\n }\n },\n onKeyDown: (event: KeyboardEvent<HTMLButtonElement>) => {\n buttonProps.onKeyDown?.(event);\n keyDownOnButton(event);\n },\n };\n\n const keyDownOnMenuItemList = (e: KeyboardEvent<HTMLUListElement>) => {\n const currentNode = e.target as HTMLUListElement;\n\n switch (e.code) {\n case 'ArrowUp':\n e.stopPropagation();\n e.preventDefault();\n previous();\n break;\n case 'ArrowDown':\n e.stopPropagation();\n e.preventDefault();\n next();\n break;\n case 'ArrowLeft':\n e.preventDefault();\n e.stopPropagation();\n close(true);\n break;\n case 'ArrowRight':\n e.preventDefault();\n close(!sideNavigationMenuBarContext);\n break;\n case 'Home':\n e.stopPropagation();\n e.preventDefault();\n first();\n break;\n case 'End':\n e.stopPropagation();\n e.preventDefault();\n last();\n break;\n case 'Enter':\n case 'Space':\n e.preventDefault();\n currentNode.click();\n break;\n case 'Escape':\n e.stopPropagation();\n e.preventDefault();\n close(true);\n break;\n default:\n e.stopPropagation();\n match(e);\n break;\n }\n };\n\n const menuItemListEventHandler = {\n onKeyDown: (event: KeyboardEvent<HTMLUListElement>) => {\n menuProps.onKeyDown?.(event);\n keyDownOnMenuItemList(event);\n },\n onClick: (event: MouseEvent<HTMLUListElement>) => {\n if (isDisabled) {\n return;\n }\n menuProps.onClick?.(event);\n },\n };\n\n return (\n <StyledSideNavigationMenu\n {...forwardedProps}\n $isDisabled={isDisabled}\n $isExpanded={isExpanded}\n $withoutIcons={withoutIcons}\n className={classNames(SideNavigationMenu.className, className)}\n ref={ref as MutableRefObject<HTMLDivElement>}\n tabIndex={undefined}\n >\n <SideNavigationMenuContext.Provider value={value}>\n <button\n {...buttonProps}\n aria-disabled={isDisabled}\n aria-expanded={isExpanded ? 'true' : 'false'}\n aria-haspopup=\"true\"\n ref={buttonRef as MutableRefObject<HTMLButtonElement>}\n role=\"menuitem\"\n tabIndex={tabIndex !== undefined ? tabIndex : isFirstChild ? 0 : -1}\n type=\"button\"\n {...buttonEventHandler}\n >\n {icon ? (\n <Icon\n color=\"var(--redsift-side-navigation-color-menu-item-text-resting)\"\n {...iconProps}\n icon={icon}\n ref={iconRef as MutableRefObject<HTMLElement>}\n className={classNames(iconProps?.className, 'first')}\n size={IconSize.small}\n />\n ) : null}\n <span>{ariaLabel}</span>\n {hasBadge && !isExpanded ? <Badge color=\"error\" /> : null}\n {isExpanded ? (\n <Icon\n icon={mdiChevronDown}\n className={`${SideNavigationMenu.className}__expand-icon`}\n size={IconSize.small}\n />\n ) : (\n <Icon\n icon={mdiChevronRight}\n className={`${SideNavigationMenu.className}__expand-icon`}\n size={IconSize.small}\n />\n )}\n </button>\n <ul\n {...menuProps}\n aria-label={ariaLabel}\n aria-orientation=\"vertical\"\n hidden={!isExpanded}\n ref={menuRef as MutableRefObject<HTMLUListElement>}\n role=\"menu\"\n {...menuItemListEventHandler}\n >\n {renderedMenuItems}\n </ul>\n </SideNavigationMenuContext.Provider>\n </StyledSideNavigationMenu>\n );\n });\nSideNavigationMenu.className = CLASSNAME;\nSideNavigationMenu.defaultProps = DEFAULT_PROPS;\nSideNavigationMenu.displayName = COMPONENT_NAME;\n","import styled, { css } from 'styled-components';\nimport { StyledSideNavigationMenuBarProps } from './types';\n\n/**\n * Component style.\n */\nexport const StyledSideNavigationMenuBar = styled.nav<StyledSideNavigationMenuBarProps>`\n background-color: var(--redsift-side-navigation-color-background);\n overflow-y: auto;\n width: 240px;\n\n ${({ $marginTop = 0 }) =>\n $marginTop\n ? css`\n height: calc(100% - ${$marginTop}px);\n `\n : ''}\n\n ul {\n list-style: none;\n margin: unset;\n padding: unset;\n }\n\n scrollbar-color: var(--redsift-side-navigation-color-scrollbar-resting)\n transparent;\n scrollbar-width: thin;\n\n &::-webkit-scrollbar {\n block-size: 9px;\n inline-size: 9px;\n }\n\n &::-webkit-scrollbar-thumb {\n background-clip: padding-box;\n background-color: var(--redsift-side-navigation-color-scrollbar-resting);\n border-radius: 0px;\n border-left: 2px solid transparent;\n border-right: 2px solid transparent;\n }\n\n &::-webkit-scrollbar-track {\n background-color: transparent;\n }\n\n &::-webkit-scrollbar-thumb:horizontal,\n &::-webkit-scrollbar-thumb:vertical {\n &:hover {\n background-color: var(--redsift-side-navigation-color-scrollbar-hover);\n }\n }\n\n &::-webkit-scrollbar-corner {\n visibility: hidden;\n }\n`;\n","import { useState, useEffect, MutableRefObject, DependencyList } from 'react';\n\n/**\n * Get the bounding rect of a component.\n */\nexport const useBoundingClientRect = (\n ref: MutableRefObject<HTMLElement>,\n deps?: DependencyList\n) => {\n const [boundingRect, setBoundingRect] = useState<DOMRect>({} as DOMRect);\n\n useEffect(() => {\n if (ref.current) {\n setBoundingRect(ref.current.getBoundingClientRect());\n }\n }, deps);\n\n return boundingRect;\n};\n","import React, {\n forwardRef,\n KeyboardEvent,\n MutableRefObject,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport classNames from 'classnames';\nimport { Comp } from '~/types';\nimport { SideNavigationMenu } from '~/components/side-navigation-menu';\nimport { SideNavigationMenuItem } from '~/components/side-navigation-menu-item';\nimport { warnIfNoAccessibleLabelFound } from '~/utils/warnIfNoAccessibleLabelFound';\nimport { StyledSideNavigationMenuBar } from './styles';\nimport {\n SideNavigationMenuBarProps,\n SideNavigationMenuBarContextProps,\n} from './types';\nimport { SideNavigationMenuBarContext } from './context';\nimport { useBoundingClientRect } from '~/hooks/useBoundingRect';\nimport { filterComponents } from '~/utils/filterComponents';\n\nconst COMPONENT_NAME = 'SideNavigationMenuBar';\nconst CLASSNAME = 'redsift-side-navigation-menu-bar';\nconst DEFAULT_PROPS: Partial<SideNavigationMenuBarProps> = {};\n\n/**\n * Hook to store the previous index for further use\n */\nconst usePrevious = (value: number) => {\n const ref = useRef(0);\n\n useEffect(() => {\n ref.current = value;\n }, [value]);\n\n return ref.current;\n};\n\n/**\n * The SideNavigationMenuBar component.\n */\nexport const SideNavigationMenuBar: Comp<\n SideNavigationMenuBarProps,\n HTMLElement\n> = forwardRef((props, ref) => {\n const navRef = (ref ||\n useRef<HTMLElement>()) as MutableRefObject<HTMLElement>;\n\n const {\n 'aria-label': ariaLabel,\n 'aria-labelledby': ariaLabelledby,\n children,\n className,\n isDisabled,\n menubarProps = {},\n menubarRef = useRef<HTMLUListElement>(),\n withoutIcons,\n ...forwardedProps\n } = props;\n\n warnIfNoAccessibleLabelFound(props);\n const { top } = useBoundingClientRect(navRef, [children]);\n\n /**\n * Create an array containing only valid children being either SideNavigationMenu or SideNavigationMenuItem.\n */\n const childArray = filterComponents([\n SideNavigationMenu,\n SideNavigationMenuItem,\n ])(children);\n const navItems = childArray.map((child, index) => {\n return (\n <li key={child.key ?? index} role=\"none\">\n {React.cloneElement(child, {\n isDisabled: child.props.isDisabled || isDisabled || undefined,\n key: child.key ?? index,\n // First-level children should have icon, even empty one (except when withoutIcons is set to true)\n icon: withoutIcons ? undefined : child.props.icon || 'M 0,0',\n withoutIcons,\n tabIndex: index === 0 ? 0 : -1,\n })}\n </li>\n );\n });\n\n const menuItems = useRef<Set<HTMLAnchorElement | HTMLButtonElement>>(\n new Set()\n ).current;\n const [currentIndex, setCurrentIndex] = useState(0);\n const previousIndex = usePrevious(currentIndex);\n\n const first = () => setCurrentIndex(0);\n\n const last = () => setCurrentIndex(menuItems.size - 1);\n\n const next = () => {\n const index = currentIndex === menuItems.size - 1 ? 0 : currentIndex + 1;\n setCurrentIndex(index);\n };\n\n const previous = () => {\n const index = currentIndex === 0 ? menuItems.size - 1 : currentIndex - 1;\n setCurrentIndex(index);\n };\n\n const match = (event: React.KeyboardEvent<HTMLUListElement>) => {\n const items = Array.from(menuItems);\n\n // Reorder the array, starting with the currentNode\n const reorderedItems = [\n ...items.slice(currentIndex),\n ...items.slice(0, currentIndex),\n ];\n\n // Find all nodes that begin with the pressed letter\n const matches = reorderedItems.filter((menuItem) => {\n const { textContent } = menuItem;\n // istanbul ignore next\n const firstLetter = textContent?.toLowerCase().charAt(0);\n return event.key === firstLetter;\n });\n\n // Exit early if there are no matches\n if (!matches.length) {\n return;\n }\n\n // If the focused item is a match, focus the next match.\n // Otherwise, focus the first match\n const currentNode = items[currentIndex];\n const nextMatch = matches.includes(currentNode) ? matches[1] : matches[0];\n const index = items.findIndex((item) => {\n return item === nextMatch;\n });\n\n setCurrentIndex(index);\n };\n\n const keyDown = (e: KeyboardEvent<HTMLUListElement>) => {\n menubarProps.onKeyDown?.(e);\n e.stopPropagation();\n\n const currentNode = e.target as HTMLUListElement;\n // istanbul ignore next\n const parentMenu = currentNode?.parentNode?.parentNode as HTMLElement;\n const isFromSubmenu = parentMenu.getAttribute('role') === 'menu';\n\n switch (e.code) {\n case 'ArrowUp':\n e.preventDefault();\n previous();\n break;\n case 'ArrowDown':\n e.preventDefault();\n next();\n break;\n case 'ArrowRight':\n e.preventDefault();\n if (isFromSubmenu) {\n next();\n }\n break;\n case 'End':\n e.preventDefault();\n last();\n break;\n case 'Home':\n e.preventDefault();\n first();\n break;\n case 'Enter':\n case 'Space':\n e.preventDefault();\n currentNode.click();\n break;\n default:\n match(e);\n break;\n }\n };\n\n const value = useMemo<SideNavigationMenuBarContextProps>(\n () => ({ menuItems }),\n [menuItems]\n );\n\n useEffect(() => {\n if (currentIndex !== previousIndex) {\n const items = Array.from(menuItems);\n const currentNode = items[currentIndex] as HTMLElement;\n const previousNode = items[previousIndex] as HTMLElement;\n\n // istanbul ignore next\n previousNode?.setAttribute('tabindex', '-1');\n currentNode?.setAttribute('tabindex', '0');\n currentNode?.focus();\n }\n }, [currentIndex, previousIndex, menuItems]);\n\n return (\n <StyledSideNavigationMenuBar\n {...forwardedProps}\n $isDisabled={isDisabled}\n $marginTop={top}\n $withoutIcons={withoutIcons}\n aria-label={ariaLabel}\n aria-labelledby={ariaLabelledby}\n className={classNames(SideNavigationMenuBar.className, className)}\n ref={navRef as MutableRefObject<HTMLElement>}\n >\n <SideNavigationMenuBarContext.Provider value={value}>\n <ul\n {...menubarProps}\n aria-label={ariaLabel}\n aria-labelledby={ariaLabelledby}\n aria-orientation=\"vertical\"\n onKeyDown={keyDown}\n ref={menubarRef as MutableRefObject<HTMLUListElement>}\n role=\"menubar\"\n >\n {navItems}\n </ul>\n </SideNavigationMenuBarContext.Provider>\n </StyledSideNavigationMenuBar>\n );\n});\nSideNavigationMenuBar.className = CLASSNAME;\nSideNavigationMenuBar.defaultProps = DEFAULT_PROPS;\nSideNavigationMenuBar.displayName = COMPONENT_NAME;\n","import React, { MutableRefObject } from 'react';\nimport { SideNavigationMenu } from '~/components/side-navigation-menu';\nimport { SideNavigationMenuItem } from '~/components/side-navigation-menu-item';\nimport {\n MenuBarItems,\n MenuItem,\n Menu,\n SideNavigationMenuBarProps,\n} from './types';\n\nconst isMenu = (item: MenuItem | Menu): item is Menu => {\n return (item as Menu).children !== undefined;\n};\n\nexport interface UseSideNavigationMenuBarProps {\n items: MenuBarItems;\n isActive?: (href: string) => boolean;\n}\n\nexport const useSideNavigationMenuBar = ({\n items,\n isActive,\n}: UseSideNavigationMenuBarProps): Omit<SideNavigationMenuBarProps, 'ref'> => {\n const menuBarChildren: SideNavigationMenuBarProps['children'][] = [];\n\n items.map((item) => {\n if (!isMenu(item)) {\n const { title, href, ref, ...rest } = item;\n menuBarChildren.push(\n <SideNavigationMenuItem\n key={title}\n isCurrent={isActive ? isActive(href!) : undefined}\n {...rest}\n href={href}\n ref={ref as MutableRefObject<HTMLAnchorElement>}\n >\n {title}\n </SideNavigationMenuItem>\n );\n } else {\n const { title, children, ref, ...rest } = item;\n menuBarChildren.push(\n <SideNavigationMenu\n key={title}\n aria-label={title}\n isExpanded={\n isActive\n ? children.filter((child) => isActive(child.href!)).length > 0\n : undefined\n }\n hasBadge={children.filter((child) => child.badge).length > 0}\n {...rest}\n ref={ref as MutableRefObject<HTMLDivElement>}\n >\n {children.map((child) => {\n const { title, href, ref, ...rest } = child;\n return (\n <SideNavigationMenuItem\n key={title}\n href={href}\n isCurrent={isActive ? isActive(href!) : undefined}\n {...rest}\n ref={ref as MutableRefObject<HTMLAnchorElement>}\n >\n {title}\n </SideNavigationMenuItem>\n );\n })}\n </SideNavigationMenu>\n );\n }\n });\n\n return {\n children: menuBarChildren,\n };\n};\n","import React from 'react';\nimport {\n SideNavigationMenuBar,\n useSideNavigationMenuBar,\n UseSideNavigationMenuBarProps,\n} from '~/components/side-navigation-menu-bar';\nimport { AppSidePanelProps } from './types';\n\nexport const useAppSidePanel = ({\n items,\n isActive,\n}: UseSideNavigationMenuBarProps): Omit<AppSidePanelProps, 'ref'> => {\n const sideNavigationMenuBarProps = useSideNavigationMenuBar({\n items,\n isActive,\n });\n\n return {\n children: (\n <SideNavigationMenuBar\n {...sideNavigationMenuBarProps}\n aria-label=\"Navigation\"\n />\n ),\n };\n};\n","import styled, { css } from 'styled-components';\nimport { StyledBreadcrumbItemProps } from './types';\n\n/**\n * Component style.\n */\nexport const StyledBreadcrumbItem = styled.a<StyledBreadcrumbItemProps>`\n background: none;\n border: none;\n font-family: var(--redsift-typography-body-font-family);\n font-size: var(--redsift-typography-body-font-size);\n font-weight: var(--redsift-typography-body-font-weight);\n line-height: var(--redsift-typography-body-line-height);\n padding: 4px;\n text-decoration: none;\n\n ${({ $isDisabled, $isCurrent }) => css`\n ${$isDisabled\n ? `\n color: var(--redsift-color-neutral-midgrey);\n `\n : $isCurrent\n ? `\n color: var(--redsift-color-default-primary);\n `\n : `\n color: var(--redsift-color-neutral-darkgrey);\n `}\n\n ${!$isDisabled &&\n !$isCurrent &&\n css`\n &:hover,\n &:focus-visible {\n cursor: pointer;\n text-decoration: underline;\n text-underline-offset: 2px;\n }\n `}\n `}\n\n &:focus-visible {\n outline: 2px solid var(--redsift-color-neutral-darkgrey);\n }\n`;\n","import React, { forwardRef, RefObject } from 'react';\nimport classNames from 'classnames';\nimport { Comp } from '~/types';\nimport { warnIfNoAccessibleLabelFound } from '~/utils/warnIfNoAccessibleLabelFound';\nimport { StyledBreadcrumbItem } from './styles';\nimport { BreadcrumbItemProps } from './types';\n\nconst COMPONENT_NAME = 'BreadcrumbItem';\nconst CLASSNAME = 'redsift-breadcrumb-item';\nconst DEFAULT_PROPS: Partial<BreadcrumbItemProps> = {};\n\n/**\n * The BreadcrumbItem components is a list of links to the parent pages of the current page in hierarchical order.\n */\nexport const BreadcrumbItem: Comp<BreadcrumbItemProps, HTMLAnchorElement> =\n forwardRef((props, ref) => {\n const {\n children,\n className,\n href,\n isCurrent,\n isDisabled,\n ...forwardedProps\n } = props;\n\n warnIfNoAccessibleLabelFound(props, [children]);\n\n return (\n <StyledBreadcrumbItem\n role=\"link\"\n tabIndex={!isDisabled && !isCurrent ? 0 : undefined}\n {...forwardedProps}\n $isCurrent={isCurrent}\n $isDisabled={isDisabled}\n aria-current={isCurrent ? 'page' : undefined}\n aria-disabled={isDisabled || isCurrent}\n className={classNames(BreadcrumbItem.className, className)}\n href={!isDisabled && !isCurrent ? href : undefined}\n ref={ref as RefObject<HTMLAnchorElement>}\n >\n {children}\n </StyledBreadcrumbItem>\n );\n });\nBreadcrumbItem.className = CLASSNAME;\nBreadcrumbItem.defaultProps = DEFAULT_PROPS;\nBreadcrumbItem.displayName = COMPONENT_NAME;\n","import styled, { css } from 'styled-components';\nimport { baseStyling } from '~/components/shared';\nimport { StyledBreadcrumbsProps } from './types';\n\n/**\n * Component style.\n */\nexport const StyledBreadcrumbs = styled.nav<StyledBreadcrumbsProps>`\n ${baseStyling}\n\n ol {\n display: inline-flex;\n list-style: none;\n padding: unset;\n }\n\n .redsift-breadcrumbs__separator {\n font-family: var(--redsift-typography-body-font-family);\n font-size: var(--redsift-typography-body-font-size);\n font-weight: var(--redsift-typography-body-font-weight);\n line-height: var(--redsift-typography-body-line-height);\n margin: 0px 4px;\n\n ${({ $isDisabled }) =>\n $isDisabled\n ? css`\n color: var(--redsift-color-neutral-midgrey);\n `\n : css`\n color: var(--redsift-color-neutral-black);\n `}\n }\n`;\n","import React, { forwardRef, RefObject } from 'react';\nimport classNames from 'classnames';\nimport { Comp } from '~/types';\nimport { BreadcrumbItem } from '~/components/breadcrumb-item';\nimport { warnIfNoAccessibleLabelFound } from '~/utils/warnIfNoAccessibleLabelFound';\nimport { StyledBreadcrumbs } from './styles';\nimport { BreadcrumbsProps } from './types';\nimport { filterComponents } from '~/utils';\n\nconst COMPONENT_NAME = 'Breadcrumbs';\nconst CLASSNAME = 'redsift-breadcrumbs';\nconst DEFAULT_PROPS: Partial<BreadcrumbsProps> = {};\n\n/**\n * The Breadcrumbs components is a list of links to the parent pages of the current page in hierarchical order.\n */\nexport const BaseBreadcrumbs: Comp<BreadcrumbsProps, HTMLElement> = forwardRef(\n (props, ref) => {\n const { children, className, isDisabled, ...forwardedProps } = props;\n\n warnIfNoAccessibleLabelFound(props);\n\n const childArray = filterComponents([Breadcrumbs.Item])(children);\n const breadcrumbItems = childArray.map((child, index) => {\n const isCurrent = index === childArray.length - 1;\n\n return (\n <li key={index}>\n <Breadcrumbs.Item\n isDisabled={child.props.isDisabled || isDisabled || undefined}\n {...child.props}\n key={child.key ?? index}\n isCurrent={isCurrent}\n />\n {isCurrent === false ? (\n <span className={`${BaseBreadcrumbs.className}__separator`}>\n {'/'}\n </span>\n ) : null}\n </li>\n );\n });\n\n return (\n <StyledBreadcrumbs\n {...forwardedProps}\n $isDisabled={isDisabled}\n className={classNames(BaseBreadcrumbs.className, className)}\n ref={ref as RefObject<HTMLElement>}\n >\n <ol>{breadcrumbItems}</ol>\n </StyledBreadcrumbs>\n );\n }\n);\nBaseBreadcrumbs.className = CLASSNAME;\nBaseBreadcrumbs.defaultProps = DEFAULT_PROPS;\nBaseBreadcrumbs.displayName = COMPONENT_NAME;\n\nexport const Breadcrumbs = Object.assign(BaseBreadcrumbs, {\n Item: BreadcrumbItem,\n});\n","import React, { forwardRef, RefObject } from 'react';\nimport classNames from 'classnames';\nimport { ColorPalette, Comp } from '~/types';\nimport { Icon } from '~/components/icon';\nimport { ButtonVariant, StyledButton } from '~/components/button';\nimport { ButtonLinkProps } from './types';\n\nconst COMPONENT_NAME = 'ButtonLink';\nconst CLASSNAME = 'redsift-button-link';\nconst DEFAULT_PROPS: Partial<ButtonLinkProps> = {\n color: ColorPalette.default,\n height: 'fit-content',\n variant: ButtonVariant.primary,\n};\n\n/**\n * The ButtonLink is a semantic link that looks like a button.\n *\n * For a semantic button that looks like a button, please use the Button component.\n * For a semantic link that looks like a link, please use the Link component.\n * For a semantic button that looks like a link, please use the LinkButton component.\n */\nexport const ButtonLink: Comp<ButtonLinkProps, HTMLAnchorElement> = forwardRef(\n (props, ref) => {\n const {\n as,\n children,\n className,\n color,\n href,\n isActive,\n isDisabled,\n leftIcon,\n rightIcon,\n target,\n variant,\n ...forwardedProps\n } = props;\n\n return (\n <StyledButton\n as={as || 'a'}\n role=\"link\"\n tabIndex={!isDisabled ? 0 : undefined}\n {...forwardedProps}\n $color={color}\n $isActive={isActive}\n $isDisabled={isDisabled}\n $variant={variant}\n className={classNames(ButtonLink.className, className)}\n href={!isDisabled ? href : undefined}\n ref={ref as RefObject<HTMLAnchorElement>}\n target={target}\n >\n {leftIcon ? (\n <Icon icon={leftIcon} aria-hidden=\"true\" className=\"left\" />\n ) : null}\n {children}\n {rightIcon ? (\n <Icon icon={rightIcon} aria-hidden=\"true\" className=\"right\" />\n ) : null}\n </StyledButton>\n );\n }\n);\nButtonLink.className = CLASSNAME;\nButtonLink.defaultProps = DEFAULT_PROPS;\nButtonLink.displayName = COMPONENT_NAME;\n","import enUS from './en-US.json';\nimport frFR from './fr-FR.json';\n\nexport default {\n 'en-US': enUS,\n 'fr-FR': frFR,\n};\n","import styled from 'styled-components';\nimport { baseStyling } from '~/components/shared';\nimport { StyledCardProps } from './types';\n\n/**\n * Component style.\n */\nexport const StyledCard = styled.div<StyledCardProps>`\n ${baseStyling}\n\n background-color: var(--redsift-color-neutral-white);\n box-shadow: 0px 1px 2px rgba(0, 0, 0, 0.5);\n display: flex;\n flex-direction: column;\n padding: 16px;\n\n .redsift-card__header {\n align-items: flex-start;\n display: flex;\n justify-content: space-between;\n }\n\n .redsift-card-header__icon-button {\n margin-top: 8px;\n margin-left: auto;\n margin-right: 8px;\n\n [dir='rtl'] & {\n margin-left: 8px;\n margin-right: auto;\n }\n }\n\n .redsift-card__content {\n visibility: ${({ $isCollapsed }) => (!$isCollapsed ? 'visible' : 'hidden')};\n overflow: ${({ $isCollapsed }) => (!$isCollapsed ? 'visible' : 'hidden')};\n height: ${({ $isCollapsed }) => (!$isCollapsed ? 'auto' : '0px')};\n }\n`;\n","import styled from 'styled-components';\nimport { StyledCardHeaderProps } from './types';\n\n/**\n * Component style.\n */\nexport const StyledCardHeader = styled.div<StyledCardHeaderProps>`\n color: var(--redsift-color-neutral-black);\n\n .redsift-card-header__header {\n align-items: center;\n display: flex;\n gap: 8px;\n padding: 10px 0px;\n margin: 0px;\n\n .redsift-icon {\n color: var(--redsift-color-neutral-black);\n padding-right: 8px;\n font-size: 30px;\n line-height: 30px;\n height: 30px;\n }\n }\n\n .redsift-card-header__subheader {\n font-family: var(--redsift-typography-body-font-family);\n font-size: var(--redsift-typography-body-font-size);\n font-weight: var(--redsift-typography-body-font-weight);\n line-height: var(--redsift-typography-body-line-height);\n }\n`;\n","import styled, { keyframes } from 'styled-components';\nimport { baseInternalSpacing, baseStyling } from '~/components/shared';\nimport { StyledSkeletonProps } from './types';\n\n/**\n * Component style.\n */\nconst wave = keyframes`\n 0% {\n -webkit-transform: translateX(-100%);\n -moz-transform: translateX(-100%);\n -ms-transform: translateX(-100%);\n transform: translateX(-100%);\n }\n\n 50% {\n -webkit-transform: translateX(100%);\n -moz-transform: translateX(100%);\n -ms-transform: translateX(100%);\n transform: translateX(100%);\n }\n\n 100% {\n -webkit-transform: translateX(100%);\n -moz-transform: translateX(100%);\n -ms-transform: translateX(100%);\n transform: translateX(100%);\n }\n`;\n\nexport const StyledSkeleton = styled.div<StyledSkeletonProps>`\n height: fit-content;\n width: fit-content;\n\n > * {\n visibility: hidden;\n }\n\n flex: 0 0 auto;\n\n ${baseStyling}\n ${baseInternalSpacing}\n\n display: block;\n background-color: rgba(0, 0, 0, 0.11);\n position: relative;\n overflow: hidden;\n -webkit-mask-image: -webkit-radial-gradient(white, black);\n\n &::after {\n -webkit-animation: ${wave} 1.6s linear 0.5s infinite;\n animation: ${wave} 1.6s linear 0.5s infinite;\n background: linear-gradient(\n 90deg,\n transparent,\n rgba(0, 0, 0, 0.04),\n transparent\n );\n background-clip: content-box;\n content: '';\n position: absolute;\n -webkit-transform: translateX(-100%);\n -moz-transform: translateX(-100%);\n -ms-transform: translateX(-100%);\n transform: translateX(-100%);\n bottom: 0;\n left: 0;\n right: 0;\n top: 0;\n }\n`;\n","import styled, { css } from 'styled-components';\nimport { StyledSkeleton } from '../skeleton/styles';\nimport { StyledSkeletonCircleProps } from './types';\n\n/**\n * Component style.\n */\nexport const StyledSkeletonCircle = styled(\n StyledSkeleton\n)<StyledSkeletonCircleProps>`\n border-radius: 50%;\n\n ${({ height, width }) => css`\n &,\n &::after {\n ${height ? `height: ${height};` : width ? `height: ${width};` : ''}\n ${width ? `width: ${width};` : height ? `width: ${height};` : ''}\n }\n `}\n`;\n","import React, { forwardRef, RefObject } from 'react';\nimport classNames from 'classnames';\n\nimport { Comp } from '~/types';\nimport { StyledSkeletonCircle } from './styles';\nimport { SkeletonCircleProps } from './types';\n\nconst COMPONENT_NAME = 'SkeletonCircle';\nconst CLASSNAME = 'redsift-skeleton-circle';\nconst DEFAULT_PROPS: Partial<SkeletonCircleProps> = {};\n\n/**\n * The SkeletonCircle component.\n */\nexport const SkeletonCircle: Comp<SkeletonCircleProps, HTMLDivElement> =\n forwardRef((props, ref) => {\n const { children, className, isLoaded, ...forwardedProps } = props;\n\n if (isLoaded) {\n return <>{children}</>;\n }\n\n return (\n <StyledSkeletonCircle\n {...forwardedProps}\n className={classNames(SkeletonCircle.className, className)}\n ref={ref as RefObject<HTMLDivElement>}\n >\n {typeof children === 'string' ? <span>{children}</span> : children}\n </StyledSkeletonCircle>\n );\n });\nSkeletonCircle.className = CLASSNAME;\nSkeletonCircle.defaultProps = DEFAULT_PROPS;\nSkeletonCircle.displayName = COMPONENT_NAME;\n","import { ValueOf } from '~/types';\nimport { SkeletonProps } from '../skeleton/types';\n\n/**\n * Component variant.\n */\nexport const SkeletonTextVariant = {\n h1: 'h1',\n h2: 'h2',\n h3: 'h3',\n h4: 'h4',\n h5: 'h5',\n subtitle: 'subtitle',\n body: 'body',\n body2: 'body2',\n button: 'button',\n caption: 'caption',\n} as const;\nexport type SkeletonTextVariant = ValueOf<typeof SkeletonTextVariant>;\n\n/**\n * Component props.\n */\nexport interface SkeletonTextProps extends SkeletonProps {\n /** Font size. */\n fontSize?: string;\n /** Line height. */\n lineHeight?: string;\n /** Variant. */\n variant?: SkeletonTextVariant;\n}\n\nexport type StyledSkeletonTextProps = Omit<\n SkeletonTextProps,\n 'fontSize' | 'lineHeight' | 'variant'\n> & {\n $fontSize: SkeletonTextProps['fontSize'];\n $lineHeight: SkeletonTextProps['lineHeight'];\n $variant: SkeletonTextProps['variant'];\n};\n","import styled, { css } from 'styled-components';\nimport { StyledSkeleton } from '../skeleton/styles';\nimport { StyledSkeletonTextProps } from './types';\n\n/**\n * Component style.\n */\nexport const StyledSkeletonText = styled(\n StyledSkeleton\n)<StyledSkeletonTextProps>`\n background-clip: content-box;\n\n ${({ height, $fontSize, $lineHeight, $variant }) =>\n height\n ? css`\n &,\n &::after {\n height: ${height};\n }\n `\n : css`\n &,\n &::after {\n height: ${$fontSize\n ? $fontSize\n : `var(--redsift-typography-${$variant}-font-size)`};\n padding: calc(\n (\n ${$lineHeight\n ? $lineHeight\n : `var(--redsift-typography-${$variant}-line-height)`} -\n ${$fontSize\n ? $fontSize\n : `var(--redsift-typography-${$variant}-font-size)`}\n ) / 2\n )\n 0px;\n }\n `}}\n`;\n","import React, { forwardRef, RefObject } from 'react';\nimport classNames from 'classnames';\n\nimport { Comp } from '~/types';\nimport { StyledSkeletonText } from './styles';\nimport { SkeletonTextProps } from './types';\n\nconst COMPONENT_NAME = 'SkeletonText';\nconst CLASSNAME = 'redsift-skeleton-text';\nconst DEFAULT_PROPS: Partial<SkeletonTextProps> = {\n variant: 'body',\n};\n\n/**\n * The SkeletonText component.\n */\nexport const SkeletonText: Comp<SkeletonTextProps, HTMLDivElement> = forwardRef(\n (props, ref) => {\n const {\n children,\n className,\n fontSize,\n isLoaded,\n lineHeight,\n variant,\n ...forwardedProps\n } = props;\n\n if (isLoaded) {\n return <>{children}</>;\n }\n\n return (\n <StyledSkeletonText\n {...forwardedProps}\n className={classNames(SkeletonText.className, className)}\n ref={ref as RefObject<HTMLDivElement>}\n $fontSize={fontSize}\n $lineHeight={lineHeight}\n $variant={variant}\n >\n {typeof children === 'string' ? <span>{children}</span> : children}\n </StyledSkeletonText>\n );\n }\n);\nSkeletonText.className = CLASSNAME;\nSkeletonText.defaultProps = DEFAULT_PROPS;\nSkeletonText.displayName = COMPONENT_NAME;\n","import React, { forwardRef, RefObject } from 'react';\nimport classNames from 'classnames';\n\nimport { Comp } from '~/types';\nimport { StyledSkeleton } from './styles';\nimport { SkeletonProps } from './types';\nimport { SkeletonCircle } from '../skeleton-circle';\nimport { SkeletonText } from '../skeleton-text';\n\nconst COMPONENT_NAME = 'Skeleton';\nconst CLASSNAME = 'redsift-skeleton';\nconst DEFAULT_PROPS: Partial<SkeletonProps> = {};\n\n/**\n * The Skeleton component.\n */\nexport const BaseSkeleton: Comp<SkeletonProps, HTMLDivElement> = forwardRef(\n (props, ref) => {\n const { children, className, isLoaded, ...forwardedProps } = props;\n\n if (isLoaded) {\n return <>{children}</>;\n }\n\n return (\n <StyledSkeleton\n {...forwardedProps}\n className={classNames(BaseSkeleton.className, className)}\n ref={ref as RefObject<HTMLDivElement>}\n >\n {typeof children === 'string' ? <span>{children}</span> : children}\n </StyledSkeleton>\n );\n }\n);\nBaseSkeleton.className = CLASSNAME;\nBaseSkeleton.defaultProps = DEFAULT_PROPS;\nBaseSkeleton.displayName = COMPONENT_NAME;\n\nexport const Skeleton = Object.assign(BaseSkeleton, {\n Circle: SkeletonCircle,\n Text: SkeletonText,\n});\n","import React, { forwardRef, RefObject } from 'react';\nimport classNames from 'classnames';\n\nimport { Icon } from '~/components/icon';\nimport { Heading } from '~/components/heading';\nimport { Comp } from '~/types';\nimport { StyledCardHeader } from './styles';\nimport { CardHeaderProps } from './types';\nimport { Skeleton } from '~/components/skeleton';\n\nconst COMPONENT_NAME = 'CardHeader';\nconst CLASSNAME = 'redsift-card-header';\nconst DEFAULT_PROPS: Partial<CardHeaderProps> = {};\n\n/**\n * The CardHeader component.\n */\nexport const CardHeader: Comp<CardHeaderProps, HTMLDivElement> = forwardRef(\n (props, ref) => {\n const {\n children,\n className,\n header,\n headingProps,\n icon,\n isLoading,\n subheader,\n ...forwardedProps\n } = props;\n\n return (\n <StyledCardHeader\n {...forwardedProps}\n className={classNames(CardHeader.className, className)}\n ref={ref as RefObject<HTMLDivElement>}\n >\n {subheader ? (\n <Skeleton.Text variant=\"body\" isLoaded={!isLoading}>\n <div className={`${CardHeader.className}__subheader`}>\n {subheader}\n </div>\n </Skeleton.Text>\n ) : null}\n {header ? (\n <Skeleton.Text\n variant=\"h2\"\n isLoaded={!isLoading}\n marginTop=\"10px\"\n marginBottom=\"10px\"\n >\n <Heading\n as=\"h2\"\n color=\"black\"\n className={`${CardHeader.className}__header`}\n variant=\"h2\"\n {...headingProps}\n >\n {icon ? <Icon icon={icon} aria-hidden=\"true\" /> : null}\n {header}\n </Heading>\n </Skeleton.Text>\n ) : null}\n {children}\n </StyledCardHeader>\n );\n }\n);\nCardHeader.className = CLASSNAME;\nCardHeader.defaultProps = DEFAULT_PROPS;\nCardHeader.displayName = COMPONENT_NAME;\n","import styled from 'styled-components';\nimport { baseContainer } from '~/components/shared';\nimport { StyledCardBodyProps } from './types';\n\n/**\n * Component style.\n */\nexport const StyledCardBody = styled.div<StyledCardBodyProps>`\n ${baseContainer}\n\n color: var(--redsift-color-neutral-darkgrey);\n font-family: var(--redsift-typography-body2-font-family);\n font-size: var(--redsift-typography-body2-font-size);\n font-weight: var(--redsift-typography-body2-font-weight);\n line-height: var(--redsift-typography-body2-line-height);\n padding: 16px 0px;\n`;\n","import React, { forwardRef, RefObject } from 'react';\nimport classNames from 'classnames';\n\nimport { Comp } from '~/types';\nimport { StyledCardBody } from './styles';\nimport { CardBodyProps } from './types';\n\nconst COMPONENT_NAME = 'CardBody';\nconst CLASSNAME = 'redsift-card-body';\nconst DEFAULT_PROPS: Partial<CardBodyProps> = {};\n\n/**\n * The CardBody component.\n */\nexport const CardBody: Comp<CardBodyProps, HTMLDivElement> = forwardRef(\n (props, ref) => {\n const { children, className, ...forwardedProps } = props;\n\n return (\n <StyledCardBody\n {...forwardedProps}\n className={classNames(CardBody.className, className)}\n ref={ref as RefObject<HTMLDivElement>}\n >\n {children}\n </StyledCardBody>\n );\n }\n);\nCardBody.className = CLASSNAME;\nCardBody.defaultProps = DEFAULT_PROPS;\nCardBody.displayName = COMPONENT_NAME;\n","import styled from 'styled-components';\nimport { baseContainer } from '~/components/shared';\nimport { StyledCardActionsProps } from './types';\n\n/**\n * Component style.\n */\nexport const StyledCardActions = styled.div<StyledCardActionsProps>`\n ${baseContainer}\n\n margin-top: 8px;\n margin-bottom: 8px;\n`;\n","import React, { forwardRef, RefObject } from 'react';\nimport classNames from 'classnames';\n\nimport { Comp } from '~/types';\nimport { StyledCardActions } from './styles';\nimport { CardActionsProps } from './types';\n\nconst COMPONENT_NAME = 'CardActions';\nconst CLASSNAME = 'redsift-card-actions';\nconst DEFAULT_PROPS: Partial<CardActionsProps> = {\n display: 'flex',\n flexDirection: 'row',\n};\n\n/**\n * The CardActions component.\n */\nexport const CardActions: Comp<CardActionsProps, HTMLDivElement> = forwardRef(\n (props, ref) => {\n const { children, className, ...forwardedProps } = props;\n\n return (\n <StyledCardActions\n {...forwardedProps}\n className={classNames(CardActions.className, className)}\n ref={ref as RefObject<HTMLDivElement>}\n >\n {children}\n </StyledCardActions>\n );\n }\n);\nCardActions.className = CLASSNAME;\nCardActions.defaultProps = DEFAULT_PROPS;\nCardActions.displayName = COMPONENT_NAME;\n","import React, {\n forwardRef,\n RefObject,\n useCallback,\n useEffect,\n useState,\n} from 'react';\nimport classNames from 'classnames';\n\nimport { useLocalizedStringFormatter } from '@react-aria/i18n';\nimport intlMessages from './intl';\n\nimport { mdiChevronDown, mdiChevronUp } from '@redsift/icons';\nimport { IconButton } from '~/components/icon-button';\nimport { Comp } from '~/types';\nimport { StyledCard } from './styles';\nimport { CardProps } from './types';\nimport { partitionComponents } from '~/utils/partitionComponents';\nimport { isComponent } from '~/utils/isComponent';\nimport { CardHeader } from '../card-header';\nimport { CardBody } from '../card-body';\nimport { CardActions } from '../card-actions';\n\nconst COMPONENT_NAME = 'Card';\nconst CLASSNAME = 'redsift-card';\nconst DEFAULT_PROPS: Partial<CardProps> = {};\n\n/**\n * The Card component.\n */\nconst BaseCard: Comp<CardProps, HTMLDivElement> = forwardRef((props, ref) => {\n const {\n children,\n className,\n defaultCollapsed,\n isCollapsed: propsIsCollapsed,\n isCollapsible,\n onCollapse,\n ...forwardedProps\n } = props;\n\n const stringFormatter = useLocalizedStringFormatter(intlMessages);\n\n const [isCollapsed, setIsCollapsed] = useState(\n propsIsCollapsed ?? defaultCollapsed\n );\n\n useEffect(() => {\n setIsCollapsed(propsIsCollapsed ?? defaultCollapsed);\n }, [propsIsCollapsed, defaultCollapsed]);\n\n const handleCollapse = useCallback(\n (collapsed: boolean) => {\n if (onCollapse) {\n onCollapse(collapsed);\n }\n if (propsIsCollapsed === undefined || propsIsCollapsed === null) {\n setIsCollapsed(collapsed);\n }\n },\n [onCollapse]\n );\n\n const [[header], [body], [actions]] = partitionComponents(\n React.Children.toArray(children),\n [\n isComponent('CardHeader'),\n isComponent('CardBody'),\n isComponent('CardActions'),\n ]\n );\n\n return (\n <StyledCard\n {...forwardedProps}\n className={classNames(BaseCard.className, className)}\n ref={ref as RefObject<HTMLDivElement>}\n $isCollapsed={isCollapsed}\n >\n {header || isCollapsible ? (\n <div className={`${BaseCard.className}__header`}>\n {header ? header : null}\n\n {isCollapsible ? (\n <IconButton\n aria-label={stringFormatter.format(\n isCollapsed ? 'expand' : 'collapse'\n )}\n className={`${BaseCard.className}-header__icon-button`}\n color=\"question\"\n icon={isCollapsed ? mdiChevronDown : mdiChevronUp}\n onPress={() => handleCollapse(!isCollapsed)}\n />\n ) : null}\n </div>\n ) : null}\n\n {body || actions ? (\n <div className={`${BaseCard.className}__content`}>\n {body}\n {actions}\n </div>\n ) : null}\n </StyledCard>\n );\n});\nBaseCard.className = CLASSNAME;\nBaseCard.defaultProps = DEFAULT_PROPS;\nBaseCard.displayName = COMPONENT_NAME;\n\nexport const Card = Object.assign(BaseCard, {\n Header: CardHeader,\n Body: CardBody,\n Actions: CardActions,\n});\n","import { ComponentProps } from 'react';\nimport { ValueOf, StylingProps } from '~/types';\n\n/**\n * Context props.\n */\nexport type CheckboxGroupState = {\n /** Adds a value to the set of selected values. */\n addValue(value: string): void;\n /** Whether the checkbox group is disabled or not. */\n readonly isDisabled: boolean;\n /** Whether the checkbox group is read only or not. */\n readonly isReadOnly: boolean;\n /** Removes a value from the set of selected values. */\n removeValue(value: string): void;\n /** Sets the selected values. */\n setValue(value: string[]): void;\n /** Current selected values. */\n readonly value: readonly string[];\n};\n\n/**\n * Component orientation.\n */\nexport const CheckboxGroupOrientation = {\n horizontal: 'horizontal',\n vertical: 'vertical',\n} as const;\nexport type CheckboxGroupOrientation = ValueOf<typeof CheckboxGroupOrientation>;\n\n/**\n * Component props.\n */\nexport interface CheckboxGroupProps\n extends Omit<ComponentProps<'div'>, 'onChange'>,\n StylingProps {\n /**\n * Default selected values.\n * Used for uncontrolled version.\n */\n defaultValues?: string[];\n /** Description of the checkbox group. */\n description?: string;\n /** Whether the component is disabled or not. */\n isDisabled?: boolean;\n /** Whether the component is invalid or not. */\n isInvalid?: boolean;\n /** Whether the component is read only or not. */\n isReadOnly?: boolean;\n /** Whether the component is required or not. */\n isRequired?: boolean;\n /** Label of the checkbox group. */\n label?: string;\n /** Method to handle component change. */\n onChange?(values: string[]): void;\n /** Method to handle component change. */\n orientation?: CheckboxGroupOrientation;\n /** List of possible values. Useful to select all. */\n possibleValues?: string[];\n /**\n * Currently selected values.\n * Used for controlled version.\n */\n value?: string[];\n}\n\nexport type StyledCheckboxGroupProps = Omit<\n CheckboxGroupProps,\n 'isDisabled' | 'isInvalid' | 'isReadOnly' | 'orientation' | 'isRequired'\n> & {\n $isDisabled: CheckboxGroupProps['isDisabled'];\n $isInvalid: CheckboxGroupProps['isInvalid'];\n $isReadOnly: CheckboxGroupProps['isReadOnly'];\n $orientation: CheckboxGroupProps['orientation'];\n};\n","import React from 'react';\nimport { CheckboxGroupState } from './types';\n\nexport const CheckboxGroupContext =\n React.createContext<CheckboxGroupState | null>(null);\n","import styled from 'styled-components';\nimport { baseStyling } from '~/components/shared';\nimport { CheckboxGroupOrientation, StyledCheckboxGroupProps } from './types';\n\n/**\n * Component style.\n */\nexport const StyledCheckboxGroup = styled.div<StyledCheckboxGroupProps>`\n ${baseStyling}\n\n display: flex;\n flex-direction: column;\n\n ${({ $orientation }) =>\n $orientation === CheckboxGroupOrientation.vertical\n ? `\n div.redsift-checkbox-group-boxes {\n display: flex;\n flex-direction: column;\n }\n `\n : `\n div.redsift-checkbox-group-boxes {\n display: flex;\n flex-direction: row;\n flex-wrap: wrap;\n }\n `}\n\n span.redsift-checkbox-group-label {\n font-family: var(--redsift-typography-body-font-family);\n font-weight: var(--redsift-typography-body-font-weight);\n font-size: var(--redsift-typography-body-font-size);\n line-height: var(--redsift-typography-body-line-height);\n\n color: var(--redsift-color-neutral-black);\n ${({ $isDisabled }) =>\n $isDisabled\n ? `\n color: var(--redsift-color-neutral-midgrey);\n `\n : ''}\n ${({ $isInvalid }) =>\n $isInvalid\n ? `\n color: var(--redsift-color-error-primary);\n `\n : ''}\n }\n\n span.redsift-checkbox-group-description {\n font-family: var(--redsift-typography-helper-font-family);\n font-weight: var(--redsift-typography-helper-font-weight);\n font-size: var(--redsift-typography-helper-font-size);\n line-height: var(--redsift-typography-helper-line-height);\n\n color: var(--redsift-color-neutral-darkgrey);\n ${({ $isDisabled }) =>\n $isDisabled\n ? `\n color: var(--redsift-color-neutral-midgrey);\n `\n : ''}\n ${({ $isInvalid }) =>\n $isInvalid\n ? `\n color: var(--redsift-color-error-primary);\n `\n : ''}\n }\n`;\n","import React, { forwardRef, RefObject, useEffect, useState } from 'react';\nimport classNames from 'classnames';\nimport { ColorPalette, Comp } from '~/types';\nimport { CheckboxGroupOrientation, CheckboxGroupProps } from './types';\nimport { CheckboxGroupContext } from './context';\nimport { StyledCheckboxGroup } from './styles';\n\nconst COMPONENT_NAME = 'CheckboxGroup';\nconst CLASSNAME = 'redsift-checkbox-group';\nconst DEFAULT_PROPS: Partial<CheckboxGroupProps> = {\n color: ColorPalette.default,\n orientation: CheckboxGroupOrientation.vertical,\n};\n\n/**\n * The CheckboxGroup component.\n * Can be used as controlled or uncontrolled.\n */\nexport const CheckboxGroup: Comp<CheckboxGroupProps, HTMLDivElement> =\n forwardRef((props, ref) => {\n const {\n children,\n className,\n defaultValues,\n description,\n isDisabled,\n isInvalid,\n isReadOnly,\n isRequired,\n label,\n onChange,\n orientation,\n possibleValues,\n value,\n ...forwardedProps\n } = props;\n\n const [selectedValues, setValue] = useState<string[]>(\n value || defaultValues || []\n );\n useEffect(() => {\n if (value) {\n state.setValue(value);\n }\n }, [value]);\n\n const state = {\n value: selectedValues,\n isDisabled: isDisabled || false,\n isReadOnly: isReadOnly || false,\n possibleValues: possibleValues,\n setValue(values: string[]) {\n if (isReadOnly || isDisabled) {\n return;\n }\n\n setValue(values);\n },\n addValue(value: string) {\n if (!selectedValues.includes(value)) {\n setValue(selectedValues.concat(value));\n if (onChange) {\n onChange(selectedValues.concat(value));\n }\n }\n },\n removeValue(value: string) {\n if (selectedValues.includes(value)) {\n setValue(\n selectedValues.filter((existingValue) => existingValue !== value)\n );\n if (onChange) {\n onChange(\n selectedValues.filter((existingValue) => existingValue !== value)\n );\n }\n }\n },\n };\n\n return (\n <StyledCheckboxGroup\n {...forwardedProps}\n $isDisabled={isDisabled}\n $isInvalid={isInvalid || (isRequired && selectedValues.length === 0)}\n $isReadOnly={isReadOnly}\n $orientation={orientation}\n aria-disabled={isDisabled}\n className={classNames(CheckboxGroup.className, className)}\n ref={ref as RefObject<HTMLDivElement>}\n role=\"group\"\n >\n <span className={`${CheckboxGroup.className}-label`}>\n {label}\n {isRequired ? ' *' : null}\n </span>\n <div className={`${CheckboxGroup.className}-boxes`}>\n <CheckboxGroupContext.Provider value={state}>\n {children}\n </CheckboxGroupContext.Provider>\n </div>\n <span className={`${CheckboxGroup.className}-description`}>\n {description}\n </span>\n </StyledCheckboxGroup>\n );\n });\nCheckboxGroup.className = CLASSNAME;\nCheckboxGroup.defaultProps = DEFAULT_PROPS;\nCheckboxGroup.displayName = COMPONENT_NAME;\n","import styled, { css } from 'styled-components';\nimport { baseStyling } from '~/components/shared';\nimport { StyledCheckboxProps } from './types';\n\n/**\n * Component style.\n */\nexport const StyledCheckbox = styled.label<StyledCheckboxProps>`\n height: fit-content;\n position: relative;\n width: fit-content;\n ${baseStyling}\n\n align-items: baseline;\n background: none;\n border: none;\n display: inline-flex;\n\n input {\n height: 100%;\n margin: 0;\n opacity: 0;\n overflow: visible;\n padding: 0;\n position: absolute;\n width: 100%;\n }\n\n span.label {\n ${({ $isDisabled, $isInvalid }) =>\n $isDisabled\n ? css`\n color: var(--redsift-color-neutral-midgrey);\n `\n : $isInvalid\n ? css`\n color: var(--redsift-color-error-primary);\n `\n : css`\n color: var(--redsift-color-neutral-black);\n `}\n\n font-family: var(--redsift-typography-body-font-family);\n font-size: var(--redsift-typography-body-font-size);\n font-weight: var(--redsift-typography-body-font-weight);\n line-height: var(--redsift-typography-body-line-height);\n padding-left: 4px;\n padding-right: 16px;\n position: relative;\n top: -4px;\n\n [dir='rtl'] & {\n padding-left: 16px;\n padding-right: 4px;\n }\n }\n\n .redsift-icon {\n padding: 2px;\n width: 24px;\n\n ${({ $isColored, $isDisabled, $isInvalid, $isFocusVisible }) => css`\n ${$isDisabled\n ? css`\n color: var(--redsift-color-neutral-midgrey);\n `\n : $isInvalid\n ? css`\n color: var(--redsift-color-error-primary);\n `\n : css`\n color: var(\n --redsift-color-${$isColored ? 'default' : 'question'}-primary\n );\n `}\n\n ${$isFocusVisible && !$isDisabled\n ? css`\n background-color: var(\n --redsift-color-${$isColored ? 'default' : 'question'}-hover\n );\n `\n : ''}\n `}\n }\n\n &:hover,\n &:focus-visible {\n outline: none;\n\n ${({ $isColored, $isDisabled }) =>\n !$isDisabled\n ? css`\n .redsift-icon {\n background-color: var(\n --redsift-color-${$isColored ? 'default' : 'question'}-hover\n );\n }\n `\n : ''}\n }\n`;\n","import React, {\n ComponentProps,\n forwardRef,\n MutableRefObject,\n useCallback,\n useContext,\n useEffect,\n useState,\n} from 'react';\nimport classNames from 'classnames';\nimport { useFocusRing } from '@react-aria/focus';\nimport {\n mdiCheckboxBlankOutline,\n mdiMinusBox,\n mdiCheckboxMarked,\n} from '@redsift/icons';\nimport { Comp } from '~/types';\nimport { Icon } from '~/components/icon';\nimport { CheckboxGroupContext } from '~/components/checkbox-group/context';\nimport { warnIfNoAccessibleLabelFound } from '~/utils/warnIfNoAccessibleLabelFound';\nimport { CheckboxProps } from './types';\nimport { StyledCheckbox } from './styles';\n\nconst COMPONENT_NAME = 'Checkbox';\nconst CLASSNAME = 'redsift-checkbox';\nconst DEFAULT_PROPS: Partial<CheckboxProps> = {\n isColored: true,\n};\n\n/**\n * The Checkbox component.\n * Works both inside a CheckboxGroup or as standalone.\n * Can be used as controlled or uncontrolled.\n */\nexport const Checkbox: Comp<CheckboxProps, HTMLLabelElement> = forwardRef(\n (props, ref) => {\n const groupState = useContext(CheckboxGroupContext);\n\n let {\n 'aria-label': ariaLabel,\n 'aria-labelledby': ariaLabelledby,\n autoFocus,\n children,\n className,\n defaultSelected,\n inputProps,\n inputRef,\n isColored,\n isControlled,\n isDisabled,\n isIndeterminate,\n isInvalid,\n isReadOnly,\n isRequired,\n isSelected: propsIsSelected,\n name,\n onChange,\n value,\n ...forwardedProps\n } = props;\n\n const { isFocusVisible, focusProps } = useFocusRing({ autoFocus });\n isDisabled = isDisabled ?? groupState?.isDisabled;\n isReadOnly = isReadOnly ?? groupState?.isReadOnly;\n\n const [isSelected, setSelected] = useState(\n propsIsSelected ??\n defaultSelected ??\n groupState?.value.includes(value as string)\n );\n\n useEffect(() => {\n setSelected(propsIsSelected ?? defaultSelected);\n }, [propsIsSelected, defaultSelected]);\n\n useEffect(() => {\n if (groupState) {\n setSelected(groupState.value.includes(value as string));\n }\n }, [groupState?.value]);\n\n warnIfNoAccessibleLabelFound(props as ComponentProps<'label'>, [children]);\n\n if (groupState && !isControlled) {\n if (propsIsSelected != null) {\n console.warn(\n 'isSelected is unsupported on individual <Checkbox> elements within a <CheckboxGroup> unless the <Checkbox> is controlled. Please apply this prop to the group instead or pass isControlled to the component.'\n );\n }\n if (defaultSelected != null) {\n console.warn(\n 'defaultSelected is unsupported on individual <Checkbox> elements within a <CheckboxGroup> unless the <Checkbox> is controlled. Please apply this prop to the group instead or pass isControlled to the component.'\n );\n }\n if (props.value == null) {\n console.warn(\n 'A <Checkbox> element within a <CheckboxGroup> requires a `value` property unless the <Checkbox> is controlled.'\n );\n }\n }\n\n const handleChange = useCallback(\n (event: React.ChangeEvent<HTMLInputElement>) => {\n if (isDisabled || isReadOnly) {\n return;\n }\n\n if (groupState) {\n if (!groupState.value.includes(value as string)) {\n groupState.addValue(value as string);\n } else {\n groupState.removeValue(value as string);\n }\n }\n\n if (onChange) {\n onChange(!isSelected, value, name, event, groupState!);\n }\n setSelected(event.target.checked);\n },\n [onChange, groupState]\n );\n\n return (\n <StyledCheckbox\n {...forwardedProps}\n $isColored={isColored}\n $isDisabled={isDisabled}\n $isFocusVisible={isFocusVisible}\n $isInvalid={isInvalid || (isRequired && !isSelected)}\n $isRequired={isRequired}\n $isSelected={isSelected}\n className={classNames(Checkbox.className, className)}\n ref={ref as MutableRefObject<HTMLLabelElement>}\n >\n <input\n {...inputProps}\n {...focusProps}\n aria-checked={\n isSelected || (isControlled && propsIsSelected)\n ? 'true'\n : isIndeterminate\n ? 'mixed'\n : 'false'\n }\n aria-disabled={isDisabled}\n aria-invalid={isInvalid || (isRequired && !isSelected)}\n aria-label={ariaLabel}\n aria-labelledby={ariaLabelledby}\n aria-readonly={isReadOnly}\n aria-required={isRequired}\n checked={isSelected ? true : false}\n disabled={isDisabled}\n name={name}\n onChange={handleChange}\n ref={inputRef as MutableRefObject<HTMLInputElement>}\n type=\"checkbox\"\n value={value}\n />\n {isSelected || (isControlled && propsIsSelected) ? (\n <Icon icon={mdiCheckboxMarked} />\n ) : isIndeterminate ? (\n <Icon icon={mdiMinusBox} />\n ) : (\n <Icon icon={mdiCheckboxBlankOutline} />\n )}\n {children ? <span className=\"label\">{children}</span> : null}\n </StyledCheckbox>\n );\n }\n);\nCheckbox.className = CLASSNAME;\nCheckbox.defaultProps = DEFAULT_PROPS;\nCheckbox.displayName = COMPONENT_NAME;\n","import React from 'react';\nimport { ConditionalWrapperProps } from './types';\n\nexport const ConditionalWrapper: React.FC<ConditionalWrapperProps> = ({\n children,\n condition,\n wrapper,\n}) => (condition ? wrapper(children) : <>{children}</>);\n","import enUS from './en-US.json';\nimport frFR from './fr-FR.json';\n\nexport default {\n 'en-US': enUS,\n 'fr-FR': frFR,\n};\n","import { ComponentProps } from 'react';\nimport {\n ColorPalette,\n ProductColorPalette,\n StylingProps,\n ValueOf,\n} from '~/types';\n\n/**\n * Component variant.\n */\nexport const ShieldVariant = {\n success: 'success',\n successLocked: 'successLocked',\n successUnlocked: 'successUnlocked',\n fail: 'fail',\n failLocked: 'failLocked',\n failUnlocked: 'failUnlocked',\n warning: 'warning',\n warningLocked: 'warningLocked',\n warningUnlocked: 'warningUnlocked',\n ignored: 'ignored',\n noData: 'noData',\n question: 'question',\n email: 'email',\n} as const;\nexport type ShieldVariant = ValueOf<typeof ShieldVariant>;\n\n/**\n * Component props.\n */\nexport interface ShieldProps extends ComponentProps<'div'>, StylingProps {\n /** Indicates whether the element is exposed to an accessibility API. */\n 'aria-hidden'?: boolean | 'false' | 'true';\n /** A screen reader only label for the Icon. */\n 'aria-label'?: string;\n /** Additional properties to forward to the SVG tag. */\n svgProps?: ComponentProps<'svg'>;\n /** Whether the shield has an outline or not. */\n isOutlined?: boolean;\n /** Whether the shield has its colors reversed or not. */\n isReversed?: boolean;\n /** Shield variant. */\n variant?: ShieldVariant;\n}\n\nexport type StyledShieldProps = Omit<ShieldProps, 'color'> & {\n $color?: ColorPalette | ProductColorPalette | string;\n $isOutlined: ShieldProps['isOutlined'];\n $isReversed: ShieldProps['isReversed'];\n $variant: ShieldProps['variant'];\n};\n","import styled, { css } from 'styled-components';\nimport { baseStyling } from '~/components/shared';\nimport { StyledShieldProps } from './types';\n\nexport const StyledShield = styled.div<StyledShieldProps>`\n height: 24px;\n width: 20px;\n ${baseStyling}\n\n box-sizing: content-box;\n\n ${({ $color, $isOutlined, $isReversed }) => {\n if ($isReversed && $isOutlined) {\n return css`\n & .shield {\n fill: var(--redsift-color-${$color}-primary);\n stroke: #ffffff;\n stroke-width: 2;\n }\n & .icon {\n fill-rule: evenodd;\n clip-rule: evenodd;\n fill: #ffffff;\n }\n `;\n } else if ($isOutlined) {\n return css`\n & .shield {\n fill: #ffffff;\n stroke: var(--redsift-color-${$color}-primary);\n stroke-width: 2;\n }\n & .icon {\n fill-rule: evenodd;\n clip-rule: evenodd;\n fill: var(--redsift-color-${$color}-primary);\n }\n `;\n } else if ($isReversed) {\n return css`\n & .shield {\n fill: #ffffff;\n }\n & .icon {\n fill-rule: evenodd;\n clip-rule: evenodd;\n fill: var(--redsift-color-${$color}-primary);\n }\n `;\n } else {\n return css`\n & .shield {\n fill: var(--redsift-color-${$color}-primary);\n }\n & .icon {\n fill-rule: evenodd;\n clip-rule: evenodd;\n fill: #ffffff;\n }\n `;\n }\n }}\n`;\n","import React, { forwardRef, RefObject } from 'react';\nimport classNames from 'classnames';\nimport { ColorPalette, Comp } from '~/types';\n\nimport { ShieldProps, ShieldVariant } from './types';\nimport { StyledShield } from './styles';\n\nconst COMPONENT_NAME = 'Shield';\nconst CLASSNAME = 'redsift-shield';\nconst DEFAULT_PROPS: Partial<ShieldProps> = {\n variant: ShieldVariant.success,\n};\n\nconst getVariant = (variant: ShieldVariant) => {\n switch (variant) {\n case ShieldVariant.email:\n return {\n color: ColorPalette.info,\n icon: 'M14.7,6.3H5.3c-0.6,0-1.2,0.5-1.2,1.2l0,7c0,0.6,0.5,1.2,1.2,1.2h9.3c0.6,0,1.2-0.5,1.2-1.2v-7 C15.8,6.9,15.3,6.3,14.7,6.3z M14.7,14.5H5.3V8.7l4.7,2.9l4.7-2.9V14.5z M10,10.4L5.3,7.5h9.3L10,10.4z',\n };\n case ShieldVariant.fail:\n return {\n color: ColorPalette.error,\n icon: 'M9,15V5h2v10H9z M9,19v-2h2v2H9z',\n };\n case ShieldVariant.failLocked:\n return {\n color: ColorPalette.error,\n icon: 'M13.5,9.7h-0.6V8.5c0-1.6-1.3-2.9-2.9-2.9S7.1,6.9,7.1,8.5v1.2H6.5c-0.6,0-1.2,0.5-1.2,1.2v5.8 c0,0.6,0.5,1.2,1.2,1.2h7c0.6,0,1.2-0.5,1.2-1.2v-5.8C14.7,10.2,14.1,9.7,13.5,9.7z M10,14.9c-0.6,0-1.2-0.5-1.2-1.2 s0.5-1.2,1.2-1.2c0.6,0,1.2,0.5,1.2,1.2S10.6,14.9,10,14.9z M11.8,9.7H8.2V8.5c0-1,0.8-1.8,1.8-1.8s1.8,0.8,1.8,1.8V9.7z',\n };\n case ShieldVariant.failUnlocked:\n return {\n color: ColorPalette.error,\n icon: 'M10,14.9c0.6,0,1.2-0.5,1.2-1.2s-0.5-1.2-1.2-1.2c-0.6,0-1.2,0.5-1.2,1.2S9.4,14.9,10,14.9z M13.5,9.7h-0.6V8.5 c0-1.6-1.3-2.9-2.9-2.9S7.1,6.9,7.1,8.5h1.1c0-1,0.8-1.8,1.8-1.8s1.8,0.8,1.8,1.8v1.2H6.5c-0.6,0-1.2,0.5-1.2,1.2v5.8 c0,0.6,0.5,1.2,1.2,1.2h7c0.6,0,1.2-0.5,1.2-1.2v-5.8C14.7,10.2,14.1,9.7,13.5,9.7z M13.5,16.7h-7v-5.8h7V16.7z',\n };\n case ShieldVariant.ignored:\n return {\n color: ColorPalette['no-data'],\n icon: 'M10,6.2c-3.2,0-5.8,2.6-5.8,5.8c0,3.2,2.6,5.8,5.8,5.8s5.8-2.6,5.8-5.8C15.8,8.8,13.2,6.2,10,6.2z M5.3,12 c0-2.6,2.1-4.7,4.7-4.7c1.1,0,2.1,0.4,2.9,1l-6.5,6.5C5.7,14.1,5.3,13.1,5.3,12z M10,16.7c-1.1,0-2.1-0.4-2.9-1l6.5-6.5 c0.6,0.8,1,1.8,1,2.9C14.7,14.6,12.6,16.7,10,16.7z',\n };\n case ShieldVariant.noData:\n return {\n color: ColorPalette['no-data'],\n icon: 'M16,13H4v-2h12V13z',\n };\n case ShieldVariant.question:\n return {\n color: ColorPalette.question,\n icon: 'M9,17h2v-2H9V17z M10,5C7.8,5,6,6.8,6,9h2c0-1.1,0.9-2,2-2s2,0.9,2,2c0,2-3,1.8-3,5h2c0-2.2,3-2.5,3-5 C14,6.8,12.2,5,10,5z',\n };\n case ShieldVariant.success:\n return {\n color: ColorPalette.success,\n icon: 'M8,16.6l8.5-8.5l-1.4-1.4L8,13.7l-2.8-2.8l-1.4,1.4L8,16.6z',\n };\n case ShieldVariant.successLocked:\n return {\n color: ColorPalette.success,\n icon: 'M13.5,9.7h-0.6V8.5c0-1.6-1.3-2.9-2.9-2.9S7.1,6.9,7.1,8.5v1.2H6.5c-0.6,0-1.2,0.5-1.2,1.2v5.8 c0,0.6,0.5,1.2,1.2,1.2h7c0.6,0,1.2-0.5,1.2-1.2v-5.8C14.7,10.2,14.1,9.7,13.5,9.7z M10,14.9c-0.6,0-1.2-0.5-1.2-1.2 s0.5-1.2,1.2-1.2c0.6,0,1.2,0.5,1.2,1.2S10.6,14.9,10,14.9z M11.8,9.7H8.2V8.5c0-1,0.8-1.8,1.8-1.8s1.8,0.8,1.8,1.8V9.7z',\n };\n case ShieldVariant.successUnlocked:\n return {\n color: ColorPalette.success,\n icon: 'M10,14.9c0.6,0,1.2-0.5,1.2-1.2s-0.5-1.2-1.2-1.2c-0.6,0-1.2,0.5-1.2,1.2S9.4,14.9,10,14.9z M13.5,9.7h-0.6V8.5 c0-1.6-1.3-2.9-2.9-2.9S7.1,6.9,7.1,8.5h1.1c0-1,0.8-1.8,1.8-1.8s1.8,0.8,1.8,1.8v1.2H6.5c-0.6,0-1.2,0.5-1.2,1.2v5.8 c0,0.6,0.5,1.2,1.2,1.2h7c0.6,0,1.2-0.5,1.2-1.2v-5.8C14.7,10.2,14.1,9.7,13.5,9.7z M13.5,16.7h-7v-5.8h7V16.7z',\n };\n case ShieldVariant.warning:\n return {\n color: ColorPalette.warning,\n icon: 'M10,5c0.7,0,1.4,0.4,1.7,1l4,7c0.4,0.6,0.4,1.4,0,2c-0.4,0.6-1,1-1.7,1H6c-0.7,0-1.4-0.4-1.7-1 c-0.4-0.6-0.4-1.4,0-2l4-7C8.6,5.4,9.3,5,10,5z M10,7l-4,7h8L10,7z',\n };\n case ShieldVariant.warningLocked:\n return {\n color: ColorPalette.warning,\n icon: 'M13.5,9.7h-0.6V8.5c0-1.6-1.3-2.9-2.9-2.9S7.1,6.9,7.1,8.5v1.2H6.5c-0.6,0-1.2,0.5-1.2,1.2v5.8 c0,0.6,0.5,1.2,1.2,1.2h7c0.6,0,1.2-0.5,1.2-1.2v-5.8C14.7,10.2,14.1,9.7,13.5,9.7z M10,14.9c-0.6,0-1.2-0.5-1.2-1.2 s0.5-1.2,1.2-1.2c0.6,0,1.2,0.5,1.2,1.2S10.6,14.9,10,14.9z M11.8,9.7H8.2V8.5c0-1,0.8-1.8,1.8-1.8s1.8,0.8,1.8,1.8V9.7z',\n };\n case ShieldVariant.warningUnlocked:\n return {\n color: ColorPalette.warning,\n icon: 'M10,14.9c0.6,0,1.2-0.5,1.2-1.2s-0.5-1.2-1.2-1.2c-0.6,0-1.2,0.5-1.2,1.2S9.4,14.9,10,14.9z M13.5,9.7h-0.6V8.5 c0-1.6-1.3-2.9-2.9-2.9S7.1,6.9,7.1,8.5h1.1c0-1,0.8-1.8,1.8-1.8s1.8,0.8,1.8,1.8v1.2H6.5c-0.6,0-1.2,0.5-1.2,1.2v5.8 c0,0.6,0.5,1.2,1.2,1.2h7c0.6,0,1.2-0.5,1.2-1.2v-5.8C14.7,10.2,14.1,9.7,13.5,9.7z M13.5,16.7h-7v-5.8h7V16.7z',\n };\n }\n};\n\n/**\n * The Shield component.\n */\nexport const Shield: Comp<ShieldProps, HTMLDivElement> = forwardRef(\n (props, ref) => {\n const {\n 'aria-hidden': ariaHidden,\n 'aria-label': ariaLabel,\n className,\n svgProps,\n isOutlined,\n isReversed,\n variant,\n ...forwardedProps\n } = props;\n\n const { color, icon } = getVariant(variant!);\n\n return (\n <StyledShield\n {...forwardedProps}\n aria-hidden={ariaLabel ? (ariaHidden ? ariaHidden : undefined) : true}\n aria-label={ariaLabel}\n className={classNames(Shield.className, className)}\n ref={ref as RefObject<HTMLDivElement>}\n $color={color}\n $isOutlined={isOutlined}\n $isReversed={isReversed}\n $variant={variant}\n >\n <svg\n aria-hidden={ariaLabel ? (ariaHidden ? ariaHidden : undefined) : true}\n aria-label={ariaLabel}\n focusable=\"false\"\n preserveAspectRatio=\"xMidYMid meet\"\n role=\"img\"\n style={{ verticalAlign: '-0.125em' }}\n viewBox=\"0 0 20 24\"\n width=\"20\"\n height=\"24\"\n {...svgProps}\n >\n <path\n d={\n isOutlined\n ? 'M1,10.9V5l9-3.9L19,5v5.9c0,5.5-3.9,10.7-9,12.1C4.9,21.6,1,16.4,1,10.9z'\n : 'M10,0L0,4.4v6.5C0,17,4.3,22.6,10,24c5.7-1.4,10-7,10-13.1V4.4L10,0z'\n }\n className=\"shield\"\n />\n <path d={icon} className=\"icon\" />\n </svg>\n </StyledShield>\n );\n }\n);\nShield.className = CLASSNAME;\nShield.defaultProps = DEFAULT_PROPS;\nShield.displayName = COMPONENT_NAME;\n","import enUS from './en-US.json';\nimport frFR from './fr-FR.json';\n\nexport default {\n 'en-US': enUS,\n 'fr-FR': frFR,\n};\n","import styled, { css } from 'styled-components';\nimport { StyledDetailedCardCollapsibleSectionItemsProps } from './types';\n\n/**\n * Component style.\n */\nexport const StyledDetailedCardCollapsibleSectionItems = styled.div<StyledDetailedCardCollapsibleSectionItemsProps>`\n ${({ $hideBackground }) =>\n $hideBackground\n ? css`\n background: none;\n `\n : css`\n background-color: var(--redsift-color-neutral-xlightgrey);\n margin: 8px -16px;\n padding: 8px 16px;\n `}\n\n .redsift-detailed-card-collapsible-section-items__caption {\n color: var(--redsift-color-neutral-black);\n display: flex;\n font-family: var(--redsift-typography-font-family-raleway);\n font-size: 12px;\n font-weight: 300;\n justify-content: flex-end;\n line-height: 14px;\n margin: 8px 0px;\n }\n`;\n","import React, { forwardRef, RefObject } from 'react';\nimport classNames from 'classnames';\n\nimport { Comp } from '~/types';\nimport { DetailedCardCollapsibleSectionItemsProps } from './types';\nimport { StyledDetailedCardCollapsibleSectionItems } from './styles';\n\nconst COMPONENT_NAME = 'DetailedCardCollapsibleSectionItems';\nconst CLASSNAME = 'redsift-detailed-card-collapsible-section-items';\nconst DEFAULT_PROPS: Partial<DetailedCardCollapsibleSectionItemsProps> = {};\n\n/**\n * The DetailedCardCollapsibleSectionItems Section component.\n */\nexport const DetailedCardCollapsibleSectionItems: Comp<\n DetailedCardCollapsibleSectionItemsProps,\n HTMLDivElement\n> = forwardRef((props, ref) => {\n const { caption, children, className, hideBackground, ...forwardedProps } =\n props;\n\n return (\n <StyledDetailedCardCollapsibleSectionItems\n {...forwardedProps}\n className={classNames(\n DetailedCardCollapsibleSectionItems.className,\n className\n )}\n ref={ref as RefObject<HTMLDivElement>}\n $hideBackground={hideBackground}\n >\n {children}\n {caption ? (\n <div\n className={`${DetailedCardCollapsibleSectionItems.className}__caption`}\n >\n {caption}\n </div>\n ) : null}\n </StyledDetailedCardCollapsibleSectionItems>\n );\n});\nDetailedCardCollapsibleSectionItems.className = CLASSNAME;\nDetailedCardCollapsibleSectionItems.defaultProps = DEFAULT_PROPS;\nDetailedCardCollapsibleSectionItems.displayName = COMPONENT_NAME;\n","import styled, { css } from 'styled-components';\nimport { StyledDetailedCardSectionProps } from './types';\n\n/**\n * Component style.\n */\nexport const StyledDetailedCardSection = styled.div<StyledDetailedCardSectionProps>`\n margin: 8px 0;\n\n .redsift-detailed-card-section__header {\n border-bottom: 1px solid\n ${({ $color }) =>\n $color\n ? css`var(--redsift-color-${$color}-primary)`\n : 'var(--redsift-color-neutral-midgrey)'};\n margin-bottom: 8px;\n }\n\n .redsift-detailed-card-section-header__title {\n font-size: 18px;\n font-weight: 700;\n lineheight: 22px;\n padding: 6px 0px;\n }\n\n .redsift-detailed-card-section-header__collapse-button {\n color: var(--redsift-color-neutral-black);\n }\n\n .redsift-detailed-card-collapsible-section-items {\n visibility: ${({ $isCollapsed }) => (!$isCollapsed ? 'visible' : 'hidden')};\n overflow: ${({ $isCollapsed }) => (!$isCollapsed ? 'visible' : 'hidden')};\n height: ${({ $isCollapsed }) => (!$isCollapsed ? 'auto' : '0px')};\n ${({ $isCollapsed }) =>\n $isCollapsed\n ? css`\n margin: unset;\n padding: unset;\n `\n : ''};\n }\n`;\n","import { ComponentProps } from 'react';\nimport {\n ColorPalette,\n FontFamily,\n NeutralColorPalette,\n ProductColorPalette,\n StylingProps,\n ValueOf,\n} from '~/types';\n\n/**\n * Component variant.\n */\nexport const TextVariant = {\n subtitle: 'subtitle',\n body: 'body',\n body2: 'body2',\n button: 'button',\n caption: 'caption',\n inherit: 'inherit',\n} as const;\nexport type TextVariant = ValueOf<typeof TextVariant>;\n\nexport const TextComponent = {\n p: 'p',\n b: 'b',\n i: 'i',\n u: 'u',\n abbr: 'abbr',\n cite: 'cite',\n del: 'del',\n em: 'em',\n ins: 'ins',\n kbd: 'kbd',\n mark: 'mark',\n s: 's',\n samp: 'samp',\n sub: 'sub',\n sup: 'sup',\n} as const;\nexport type TextComponent = ValueOf<typeof TextComponent>;\n\n/**\n * Component props.\n */\nexport interface TextProps extends ComponentProps<'span'>, StylingProps {\n /** Override component. */\n as?: TextComponent;\n /** Color variant. Either from color palette or hex or rgb strings. */\n color?: ColorPalette | ProductColorPalette | NeutralColorPalette | string;\n /** Font family. */\n fontFamily?: FontFamily;\n /** Font size. */\n fontSize?: string;\n /** Line height. */\n lineHeight?: string;\n /** Whether the text will truncate with a text overflow ellipsis or wrap. */\n noWrap?: boolean;\n /** Variant. */\n variant?: TextVariant;\n}\n\nexport type StyledTextProps = Omit<\n TextProps,\n | 'as'\n | 'color'\n | 'fontFamily'\n | 'fontSize'\n | 'lineHeight'\n | 'noWrap'\n | 'variant'\n> & {\n $as: TextProps['as'];\n $color: TextProps['color'];\n $fontFamily?: TextProps['fontFamily'];\n $fontSize: TextProps['fontSize'];\n $lineHeight: TextProps['lineHeight'];\n $noWrap: TextProps['noWrap'];\n $variant: TextProps['variant'];\n};\n","import styled, { css } from 'styled-components';\nimport {\n ColorPalette,\n NeutralColorPalette,\n ProductColorPalette,\n} from '~/types';\nimport { baseStyling } from '~/components/shared';\nimport { StyledTextProps, TextComponent, TextVariant } from './types';\n\n/**\n * Component style.\n */\nexport const StyledText = styled.span<StyledTextProps>`\n ${baseStyling}\n\n ${({ $color }) =>\n $color &&\n [...Object.keys(ColorPalette), ...Object.keys(ProductColorPalette)].indexOf(\n $color\n ) !== -1\n ? css`\n color: var(--redsift-color-${$color}-primary);\n `\n : Object.keys(NeutralColorPalette).indexOf($color!) !== -1\n ? css`\n color: var(--redsift-color-neutral-${$color});\n `\n : css`\n color: ${$color || css`inherit`};\n `}\n\n ${({ $as }) => css`\n ${$as === TextComponent.i ||\n $as === TextComponent.cite ||\n $as === TextComponent.em\n ? css`\n font-style: italic;\n `\n : $as === TextComponent.sub\n ? css`\n vertical-align: sub;\n `\n : $as === TextComponent.sup\n ? css`\n vertical-align: super;\n `\n : ''}\n `}\n\n ${({ $as, $fontFamily, $fontSize, $lineHeight, $variant }) =>\n !$variant\n ? css`\n ${$fontFamily\n ? css`\n font-family: var(\n --redsift-typography-font-family-${$fontFamily}\n );\n `\n : ''}\n ${$fontSize\n ? css`\n font-size: ${$fontSize};\n `\n : ''}\n ${$lineHeight\n ? css`\n line-height: ${$lineHeight};\n `\n : ''}\n ${$as === TextComponent.b\n ? css`\n font-weight: var(--redsift-typography-font-weight-bold);\n `\n : $as === TextComponent.sup || $as === TextComponent.sub\n ? css`\n font-size: ${$fontSize ? $fontSize : '12px'};\n `\n : ''}\n `\n : $variant === TextVariant.inherit\n ? css`\n font-family: ${$fontFamily\n ? css`var(--redsift-typography-font-family-${$fontFamily})`\n : css`inherit`};\n font-size: ${$fontSize\n ? $fontSize\n : $as === TextComponent.sup || $as === TextComponent.sub\n ? '12px'\n : css`inherit`};\n font-weight: ${$as === TextComponent.b\n ? 'var(--redsift-typography-font-weight-bold)'\n : 'inherit'};\n line-height: ${$lineHeight ? $lineHeight : css`inherit`};\n text-transform: inherit;\n `\n : css`\n font-family: ${$fontFamily\n ? css`var(--redsift-typography-font-family-${$fontFamily})`\n : css`var(--redsift-typography-${$variant}-font-family)`};\n font-size: ${$fontSize\n ? $fontSize\n : css`var(--redsift-typography-${$variant}-font-size)`};\n font-weight: var(--redsift-typography-${$variant}-font-weight);\n line-height: ${$lineHeight\n ? $lineHeight\n : css`var(--redsift-typography-${$variant}-line-height)`};\n text-transform: var(--redsift-typography-${$variant}-text-transform);\n `}\n \n ${({ $noWrap }) =>\n $noWrap\n ? css`\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n `\n : css`\n word-break: break-word;\n `}\n`;\n","import React, { forwardRef, RefObject } from 'react';\nimport classNames from 'classnames';\nimport { Comp, FontFamily } from '~/types';\nimport { StyledText } from './styles';\nimport { TextProps } from './types';\n\nconst COMPONENT_NAME = 'Text';\nconst CLASSNAME = 'redsift-text';\nconst DEFAULT_PROPS: Partial<TextProps> = {\n fontFamily: FontFamily.raleway,\n};\n\n/**\n * The Text component.\n */\nexport const Text: Comp<TextProps, HTMLDivElement> = forwardRef(\n (props, ref) => {\n const {\n as,\n children,\n className,\n color,\n fontFamily,\n fontSize,\n lineHeight,\n noWrap,\n variant,\n ...forwardedProps\n } = props;\n\n return (\n <StyledText\n as={as}\n {...forwardedProps}\n className={classNames(Text.className, className)}\n ref={ref as RefObject<HTMLDivElement>}\n $as={as}\n $color={color}\n $fontFamily={fontFamily}\n $fontSize={fontSize}\n $lineHeight={lineHeight}\n $noWrap={noWrap}\n $variant={variant}\n >\n {children}\n </StyledText>\n );\n }\n);\nText.className = CLASSNAME;\nText.defaultProps = DEFAULT_PROPS;\nText.displayName = COMPONENT_NAME;\n","import React, { forwardRef, ReactNode, RefObject, useState } from 'react';\nimport classNames from 'classnames';\n\nimport { useLocalizedStringFormatter } from '@react-aria/i18n';\nimport intlMessages from './intl';\n\nimport { mdiChevronDown, mdiChevronUp } from '@redsift/icons';\nimport { Comp } from '~/types';\nimport { Flexbox } from '~/components/flexbox';\nimport { IconButton } from '~/components/icon-button';\nimport { DetailedCardSectionProps } from './types';\nimport { isComponent } from '~/utils/isComponent';\nimport { DetailedCardCollapsibleSectionItems } from '~/components/detailed-card-collapsible-section-items';\nimport { StyledDetailedCardSection } from './styles';\nimport { Skeleton } from '~/components/skeleton';\nimport { Text } from '~/components/text';\nimport { Badge, BadgeVariant } from '~/components/badge';\n\nconst COMPONENT_NAME = 'DetailedCardSection';\nconst CLASSNAME = 'redsift-detailed-card-section';\nconst DEFAULT_PROPS: Partial<DetailedCardSectionProps> = {\n isCollapsible: true,\n};\n\nconst hasCollapsibleChildren = (children: ReactNode): boolean => {\n let hasCollapsible = false;\n\n React.Children.map(children, (child) => {\n if (isComponent(DetailedCardCollapsibleSectionItems)(child)) {\n hasCollapsible = true;\n }\n });\n\n return hasCollapsible;\n};\n\n/**\n * The DetailedCardSection component.\n */\nexport const DetailedCardSection: Comp<\n DetailedCardSectionProps,\n HTMLDivElement\n> = forwardRef((props, ref) => {\n const {\n badge,\n color,\n children,\n className,\n header,\n isCollapsed: propsIsCollapsed,\n isCollapsible: propsIsCollapsible,\n isLoading,\n ...forwardedProps\n } = props;\n\n const stringFormatter = useLocalizedStringFormatter(intlMessages);\n\n const isCollapsible = propsIsCollapsible && hasCollapsibleChildren(children);\n\n const [isCollapsed, setIsCollapsed] = useState<boolean>(\n Boolean(propsIsCollapsed)\n );\n\n return (\n <StyledDetailedCardSection\n {...forwardedProps}\n className={classNames(DetailedCardSection.className, className)}\n ref={ref as RefObject<HTMLDivElement>}\n $color={color}\n $isCollapsed={isCollapsed}\n >\n <Flexbox\n justifyContent=\"space-between\"\n className={`${DetailedCardSection.className}__header`}\n >\n {header ? (\n <Skeleton.Text\n variant=\"body\"\n isLoaded={!isLoading}\n fontSize=\"18px\"\n lineHeight=\"22px\"\n marginTop=\"6px\"\n marginBottom=\"12px\"\n >\n <Flexbox alignItems=\"center\" gap=\"8px\">\n {typeof header === 'string' ? (\n <Text\n className={`${DetailedCardSection.className}-header__title`}\n color=\"black\"\n fontFamily=\"raleway\"\n fontSize=\"18px\"\n lineHeight=\"22px\"\n >\n {header}\n </Text>\n ) : (\n <div\n className={`${DetailedCardSection.className}-header__title`}\n >\n {header}\n </div>\n )}\n {badge ? (\n <Badge variant={BadgeVariant.standard} {...badge} />\n ) : null}\n </Flexbox>\n </Skeleton.Text>\n ) : null}\n {isCollapsible && !isLoading ? (\n <IconButton\n aria-label={stringFormatter.format(\n isCollapsed ? 'expand' : 'collapse'\n )}\n className={`${DetailedCardSection.className}-header__collapse-button`}\n color=\"question\"\n icon={isCollapsed ? mdiChevronDown : mdiChevronUp}\n onPress={() => {\n setIsCollapsed((isCollapsed) => !isCollapsed);\n }}\n />\n ) : null}\n </Flexbox>\n\n {children}\n </StyledDetailedCardSection>\n );\n});\nDetailedCardSection.className = CLASSNAME;\nDetailedCardSection.defaultProps = DEFAULT_PROPS;\nDetailedCardSection.displayName = COMPONENT_NAME;\n","import styled, { css } from 'styled-components';\nimport { baseStyling } from '~/components/shared';\nimport { StyledDetailedCardProps } from './types';\n\n/**\n * Component style.\n */\nexport const StyledDetailedCard = styled.div<StyledDetailedCardProps>`\n ${baseStyling}\n\n background-color: var(--redsift-color-neutral-white);\n box-shadow: 0px 1px 2px rgba(0, 0, 0, 0.5);\n padding: 16px;\n\n .redsift-detailed-card__banner {\n background-color: ${({ $color }) =>\n css`var(--redsift-color-${$color}-primary)`};\n }\n\n .redsift-detailed-card__collapse-buttons {\n width: 100%;\n }\n`;\n","import styled from 'styled-components';\nimport { StyledDetailedCardHeaderProps } from './types';\n\n/**\n * Component style.\n */\nexport const StyledDetailedCardHeader = styled.div<StyledDetailedCardHeaderProps>`\n margin: 8px 0;\n\n .redsift-detailed-card-header__header {\n font-family: var(--redsift-typography-font-family-raleway);\n font-size: 32px;\n font-weight: 500;\n line-height: 32px;\n margin-bottom: 16px;\n }\n`;\n","import React, { forwardRef, RefObject } from 'react';\nimport classNames from 'classnames';\n\nimport { Comp } from '~/types';\nimport { Heading } from '~/components/heading';\nimport { Skeleton } from '~/components/skeleton';\nimport { StyledDetailedCardHeader } from './styles';\nimport { DetailedCardHeaderProps } from './types';\n\nconst COMPONENT_NAME = 'DetailedCardHeader';\nconst CLASSNAME = 'redsift-detailed-card-header';\nconst DEFAULT_PROPS: Partial<DetailedCardHeaderProps> = {};\n\n/**\n * The DetailedCardHeader component.\n */\nexport const DetailedCardHeader: Comp<DetailedCardHeaderProps, HTMLDivElement> =\n forwardRef((props, ref) => {\n const {\n children,\n className,\n header,\n headingProps,\n isLoading,\n ...forwardedProps\n } = props;\n\n return (\n <StyledDetailedCardHeader\n {...forwardedProps}\n className={classNames(DetailedCardHeader.className, className)}\n ref={ref as RefObject<HTMLDivElement>}\n >\n {header ? (\n <Skeleton.Text\n variant=\"h2\"\n isLoaded={!isLoading}\n height=\"32px\"\n marginBottom=\"16px\"\n >\n <Heading\n as=\"h2\"\n className={`${DetailedCardHeader.className}__header`}\n variant=\"h2\"\n {...headingProps}\n >\n {header}\n </Heading>\n </Skeleton.Text>\n ) : null}\n\n {children}\n </StyledDetailedCardHeader>\n );\n });\nDetailedCardHeader.className = CLASSNAME;\nDetailedCardHeader.defaultProps = DEFAULT_PROPS;\nDetailedCardHeader.displayName = COMPONENT_NAME;\n","import styled, { css } from 'styled-components';\nimport { baseStyling } from '~/components/shared';\nimport { StyledPillProps } from './types';\n\n/**\n * Component style.\n */\nexport const StyledPill = styled.div<StyledPillProps>`\n width: fit-content;\n ${baseStyling}\n\n padding: 0 6.5px;\n text-align: center;\n word-break: ${({ $autoBreak }) => ($autoBreak ? 'break-word' : 'normal')};\n\n ${({ $color }) => css`\n ${$color === 'black'\n ? 'background-color: var(--redsift-color-neutral-black);'\n : $color === 'white'\n ? 'background-color: var(--redsift-color-neutral-white);'\n : $color === 'error'\n ? 'background-color: var(--redsift-data-viz-color-red-default);'\n : $color === 'warning'\n ? 'background-color: var(--redsift-data-viz-color-orange-default);'\n : $color === 'success'\n ? 'background-color: var(--redsift-data-viz-color-green-default);'\n : `background-color: var(--redsift-data-viz-color-${$color}-default);`}\n\n &,\n .redsift-icon {\n color: var(\n --redsift-color-neutral-${$color === 'black' ? 'white' : 'black'}\n );\n }\n `}}\n\n &,\n .redsift-icon {\n font-family: var(--redsift-typography-pill-font-family);\n font-size: var(--redsift-typography-pill-font-size);\n font-weight: var(--redsift-typography-pill-font-weight);\n line-height: var(--redsift-typography-pill-line-height);\n }\n`;\n","import React, { forwardRef, RefObject } from 'react';\nimport classNames from 'classnames';\nimport { Comp, DataVizColorPalette } from '~/types';\nimport { StyledPill } from './styles';\nimport { PillProps } from './types';\n\nconst COMPONENT_NAME = 'Pill';\nconst CLASSNAME = 'redsift-pill';\nconst DEFAULT_PROPS: Partial<PillProps> = {\n color: DataVizColorPalette.blue,\n height: 'fit-content',\n};\n\n/**\n * The Pill component.\n */\nexport const Pill: Comp<PillProps, HTMLDivElement> = forwardRef(\n (props, ref) => {\n const { autoBreak, children, className, color, ...forwardedProps } = props;\n\n return (\n <StyledPill\n {...forwardedProps}\n $autoBreak={autoBreak}\n $color={color}\n className={classNames(Pill.className, className)}\n ref={ref as RefObject<HTMLDivElement>}\n >\n {children}\n </StyledPill>\n );\n }\n);\nPill.className = CLASSNAME;\nPill.defaultProps = DEFAULT_PROPS;\nPill.displayName = COMPONENT_NAME;\n","import styled from 'styled-components';\nimport { StyledDetailedCardSectionItemProps } from './types';\n\n/**\n * Component style.\n */\nexport const StyledDetailedCardSectionItem = styled.div<StyledDetailedCardSectionItemProps>`\n padding: 8px 0;\n\n .redsift-detailed-card-section-item-header__shield {\n align-items: center;\n display: flex;\n height: 28px;\n justify-content: center;\n padding: 0 4px;\n }\n\n .redsift-detailed-card-section-item-header__icon {\n height: 28px;\n }\n\n .redsift-detailed-card-section-item-header__pill {\n display: inline-block;\n margin-right: 8px;\n }\n\n .redsift-detailed-card-section-item-header__description {\n line-height: 28px;\n }\n`;\n","import React, { forwardRef, RefObject } from 'react';\nimport classNames from 'classnames';\n\nimport { Comp } from '~/types';\nimport { Flexbox } from '~/components/flexbox';\nimport { Shield } from '~/components/shield';\nimport { Icon } from '~/components/icon';\nimport { Pill } from '~/components/pill';\nimport { Text } from '~/components/text';\nimport { DetailedCardSectionItemProps } from './types';\nimport { StyledDetailedCardSectionItem } from './styles';\nimport { Skeleton } from '../skeleton';\n\nconst COMPONENT_NAME = 'DetailedCardSectionItem';\nconst CLASSNAME = 'redsift-detailed-card-section-item';\nconst DEFAULT_PROPS: Partial<DetailedCardSectionItemProps> = {};\n\n/**\n * The DetailedCardSectionItems component.\n */\nexport const DetailedCardSectionItem: Comp<\n DetailedCardSectionItemProps,\n HTMLDivElement\n> = forwardRef((props, ref) => {\n const {\n children,\n className,\n description,\n icon,\n iconProps,\n isLoading,\n pill,\n pillProps,\n shield,\n ...forwardedProps\n } = props;\n\n return (\n <StyledDetailedCardSectionItem\n {...forwardedProps}\n className={classNames(DetailedCardSectionItem.className, className)}\n ref={ref as RefObject<HTMLDivElement>}\n >\n <Flexbox\n alignItems=\"flex-start\"\n className={`${DetailedCardSectionItem.className}__header`}\n >\n {shield ? (\n <Skeleton isLoaded={!isLoading}>\n <Shield\n variant={shield}\n className={`${DetailedCardSectionItem.className}-header__shield`}\n />\n </Skeleton>\n ) : icon ? (\n <Skeleton isLoaded={!isLoading}>\n <div\n className={`${DetailedCardSectionItem.className}-header__icon`}\n >\n <Icon icon={icon} {...iconProps} size=\"large\" />\n </div>\n </Skeleton>\n ) : null}\n {description || pill ? (\n <div\n className={`${DetailedCardSectionItem.className}-header__description`}\n >\n <Skeleton isLoaded={!isLoading}>\n {pill && (\n <Pill\n className={`${DetailedCardSectionItem.className}-header__pill`}\n {...pillProps}\n >\n {pill}\n </Pill>\n )}\n {typeof description === 'string' ? (\n <Text>{description}</Text>\n ) : (\n description\n )}\n </Skeleton>\n </div>\n ) : null}\n </Flexbox>\n {children}\n </StyledDetailedCardSectionItem>\n );\n});\nDetailedCardSectionItem.className = CLASSNAME;\nDetailedCardSectionItem.defaultProps = DEFAULT_PROPS;\nDetailedCardSectionItem.displayName = COMPONENT_NAME;\n","/*!\n* tabbable 6.1.1\n* @license MIT, https://github.com/focus-trap/tabbable/blob/master/LICENSE\n*/\n// NOTE: separate `:not()` selectors has broader browser support than the newer\n// `:not([inert], [inert] *)` (Feb 2023)\n// CAREFUL: JSDom does not support `:not([inert] *)` as a selector; using it causes\n// the entire query to fail, resulting in no nodes found, which will break a lot\n// of things... so we have to rely on JS to identify nodes inside an inert container\nvar candidateSelectors = ['input:not([inert])', 'select:not([inert])', 'textarea:not([inert])', 'a[href]:not([inert])', 'button:not([inert])', '[tabindex]:not(slot):not([inert])', 'audio[controls]:not([inert])', 'video[controls]:not([inert])', '[contenteditable]:not([contenteditable=\"false\"]):not([inert])', 'details>summary:first-of-type:not([inert])', 'details:not([inert])'];\nvar candidateSelector = /* #__PURE__ */candidateSelectors.join(',');\nvar NoElement = typeof Element === 'undefined';\nvar matches = NoElement ? function () {} : Element.prototype.matches || Element.prototype.msMatchesSelector || Element.prototype.webkitMatchesSelector;\nvar getRootNode = !NoElement && Element.prototype.getRootNode ? function (element) {\n var _element$getRootNode;\n return element === null || element === void 0 ? void 0 : (_element$getRootNode = element.getRootNode) === null || _element$getRootNode === void 0 ? void 0 : _element$getRootNode.call(element);\n} : function (element) {\n return element === null || element === void 0 ? void 0 : element.ownerDocument;\n};\n\n/**\n * Determines if a node is inert or in an inert ancestor.\n * @param {Element} [node]\n * @param {boolean} [lookUp] If true and `node` is not inert, looks up at ancestors to\n * see if any of them are inert. If false, only `node` itself is considered.\n * @returns {boolean} True if inert itself or by way of being in an inert ancestor.\n * False if `node` is falsy.\n */\nvar isInert = function isInert(node, lookUp) {\n var _node$getAttribute;\n if (lookUp === void 0) {\n lookUp = true;\n }\n // CAREFUL: JSDom does not support inert at all, so we can't use the `HTMLElement.inert`\n // JS API property; we have to check the attribute, which can either be empty or 'true';\n // if it's `null` (not specified) or 'false', it's an active element\n var inertAtt = node === null || node === void 0 ? void 0 : (_node$getAttribute = node.getAttribute) === null || _node$getAttribute === void 0 ? void 0 : _node$getAttribute.call(node, 'inert');\n var inert = inertAtt === '' || inertAtt === 'true';\n\n // NOTE: this could also be handled with `node.matches('[inert], :is([inert] *)')`\n // if it weren't for `matches()` not being a function on shadow roots; the following\n // code works for any kind of node\n // CAREFUL: JSDom does not appear to support certain selectors like `:not([inert] *)`\n // so it likely would not support `:is([inert] *)` either...\n var result = inert || lookUp && node && isInert(node.parentNode); // recursive\n\n return result;\n};\n\n/**\n * Determines if a node's content is editable.\n * @param {Element} [node]\n * @returns True if it's content-editable; false if it's not or `node` is falsy.\n */\nvar isContentEditable = function isContentEditable(node) {\n var _node$getAttribute2;\n // CAREFUL: JSDom does not support the `HTMLElement.isContentEditable` API so we have\n // to use the attribute directly to check for this, which can either be empty or 'true';\n // if it's `null` (not specified) or 'false', it's a non-editable element\n var attValue = node === null || node === void 0 ? void 0 : (_node$getAttribute2 = node.getAttribute) === null || _node$getAttribute2 === void 0 ? void 0 : _node$getAttribute2.call(node, 'contenteditable');\n return attValue === '' || attValue === 'true';\n};\n\n/**\n * @param {Element} el container to check in\n * @param {boolean} includeContainer add container to check\n * @param {(node: Element) => boolean} filter filter candidates\n * @returns {Element[]}\n */\nvar getCandidates = function getCandidates(el, includeContainer, filter) {\n // even if `includeContainer=false`, we still have to check it for inertness because\n // if it's inert, all its children are inert\n if (isInert(el)) {\n return [];\n }\n var candidates = Array.prototype.slice.apply(el.querySelectorAll(candidateSelector));\n if (includeContainer && matches.call(el, candidateSelector)) {\n candidates.unshift(el);\n }\n candidates = candidates.filter(filter);\n return candidates;\n};\n\n/**\n * @callback GetShadowRoot\n * @param {Element} element to check for shadow root\n * @returns {ShadowRoot|boolean} ShadowRoot if available or boolean indicating if a shadowRoot is attached but not available.\n */\n\n/**\n * @callback ShadowRootFilter\n * @param {Element} shadowHostNode the element which contains shadow content\n * @returns {boolean} true if a shadow root could potentially contain valid candidates.\n */\n\n/**\n * @typedef {Object} CandidateScope\n * @property {Element} scopeParent contains inner candidates\n * @property {Element[]} candidates list of candidates found in the scope parent\n */\n\n/**\n * @typedef {Object} IterativeOptions\n * @property {GetShadowRoot|boolean} getShadowRoot true if shadow support is enabled; falsy if not;\n * if a function, implies shadow support is enabled and either returns the shadow root of an element\n * or a boolean stating if it has an undisclosed shadow root\n * @property {(node: Element) => boolean} filter filter candidates\n * @property {boolean} flatten if true then result will flatten any CandidateScope into the returned list\n * @property {ShadowRootFilter} shadowRootFilter filter shadow roots;\n */\n\n/**\n * @param {Element[]} elements list of element containers to match candidates from\n * @param {boolean} includeContainer add container list to check\n * @param {IterativeOptions} options\n * @returns {Array.<Element|CandidateScope>}\n */\nvar getCandidatesIteratively = function getCandidatesIteratively(elements, includeContainer, options) {\n var candidates = [];\n var elementsToCheck = Array.from(elements);\n while (elementsToCheck.length) {\n var element = elementsToCheck.shift();\n if (isInert(element, false)) {\n // no need to look up since we're drilling down\n // anything inside this container will also be inert\n continue;\n }\n if (element.tagName === 'SLOT') {\n // add shadow dom slot scope (slot itself cannot be focusable)\n var assigned = element.assignedElements();\n var content = assigned.length ? assigned : element.children;\n var nestedCandidates = getCandidatesIteratively(content, true, options);\n if (options.flatten) {\n candidates.push.apply(candidates, nestedCandidates);\n } else {\n candidates.push({\n scopeParent: element,\n candidates: nestedCandidates\n });\n }\n } else {\n // check candidate element\n var validCandidate = matches.call(element, candidateSelector);\n if (validCandidate && options.filter(element) && (includeContainer || !elements.includes(element))) {\n candidates.push(element);\n }\n\n // iterate over shadow content if possible\n var shadowRoot = element.shadowRoot ||\n // check for an undisclosed shadow\n typeof options.getShadowRoot === 'function' && options.getShadowRoot(element);\n\n // no inert look up because we're already drilling down and checking for inertness\n // on the way down, so all containers to this root node should have already been\n // vetted as non-inert\n var validShadowRoot = !isInert(shadowRoot, false) && (!options.shadowRootFilter || options.shadowRootFilter(element));\n if (shadowRoot && validShadowRoot) {\n // add shadow dom scope IIF a shadow root node was given; otherwise, an undisclosed\n // shadow exists, so look at light dom children as fallback BUT create a scope for any\n // child candidates found because they're likely slotted elements (elements that are\n // children of the web component element (which has the shadow), in the light dom, but\n // slotted somewhere _inside_ the undisclosed shadow) -- the scope is created below,\n // _after_ we return from this recursive call\n var _nestedCandidates = getCandidatesIteratively(shadowRoot === true ? element.children : shadowRoot.children, true, options);\n if (options.flatten) {\n candidates.push.apply(candidates, _nestedCandidates);\n } else {\n candidates.push({\n scopeParent: element,\n candidates: _nestedCandidates\n });\n }\n } else {\n // there's not shadow so just dig into the element's (light dom) children\n // __without__ giving the element special scope treatment\n elementsToCheck.unshift.apply(elementsToCheck, element.children);\n }\n }\n }\n return candidates;\n};\nvar getTabindex = function getTabindex(node, isScope) {\n if (node.tabIndex < 0) {\n // in Chrome, <details/>, <audio controls/> and <video controls/> elements get a default\n // `tabIndex` of -1 when the 'tabindex' attribute isn't specified in the DOM,\n // yet they are still part of the regular tab order; in FF, they get a default\n // `tabIndex` of 0; since Chrome still puts those elements in the regular tab\n // order, consider their tab index to be 0.\n // Also browsers do not return `tabIndex` correctly for contentEditable nodes;\n // so if they don't have a tabindex attribute specifically set, assume it's 0.\n //\n // isScope is positive for custom element with shadow root or slot that by default\n // have tabIndex -1, but need to be sorted by document order in order for their\n // content to be inserted in the correct position\n if ((isScope || /^(AUDIO|VIDEO|DETAILS)$/.test(node.tagName) || isContentEditable(node)) && isNaN(parseInt(node.getAttribute('tabindex'), 10))) {\n return 0;\n }\n }\n return node.tabIndex;\n};\nvar sortOrderedTabbables = function sortOrderedTabbables(a, b) {\n return a.tabIndex === b.tabIndex ? a.documentOrder - b.documentOrder : a.tabIndex - b.tabIndex;\n};\nvar isInput = function isInput(node) {\n return node.tagName === 'INPUT';\n};\nvar isHiddenInput = function isHiddenInput(node) {\n return isInput(node) && node.type === 'hidden';\n};\nvar isDetailsWithSummary = function isDetailsWithSummary(node) {\n var r = node.tagName === 'DETAILS' && Array.prototype.slice.apply(node.children).some(function (child) {\n return child.tagName === 'SUMMARY';\n });\n return r;\n};\nvar getCheckedRadio = function getCheckedRadio(nodes, form) {\n for (var i = 0; i < nodes.length; i++) {\n if (nodes[i].checked && nodes[i].form === form) {\n return nodes[i];\n }\n }\n};\nvar isTabbableRadio = function isTabbableRadio(node) {\n if (!node.name) {\n return true;\n }\n var radioScope = node.form || getRootNode(node);\n var queryRadios = function queryRadios(name) {\n return radioScope.querySelectorAll('input[type=\"radio\"][name=\"' + name + '\"]');\n };\n var radioSet;\n if (typeof window !== 'undefined' && typeof window.CSS !== 'undefined' && typeof window.CSS.escape === 'function') {\n radioSet = queryRadios(window.CSS.escape(node.name));\n } else {\n try {\n radioSet = queryRadios(node.name);\n } catch (err) {\n // eslint-disable-next-line no-console\n console.error('Looks like you have a radio button with a name attribute containing invalid CSS selector characters and need the CSS.escape polyfill: %s', err.message);\n return false;\n }\n }\n var checked = getCheckedRadio(radioSet, node.form);\n return !checked || checked === node;\n};\nvar isRadio = function isRadio(node) {\n return isInput(node) && node.type === 'radio';\n};\nvar isNonTabbableRadio = function isNonTabbableRadio(node) {\n return isRadio(node) && !isTabbableRadio(node);\n};\n\n// determines if a node is ultimately attached to the window's document\nvar isNodeAttached = function isNodeAttached(node) {\n var _nodeRoot;\n // The root node is the shadow root if the node is in a shadow DOM; some document otherwise\n // (but NOT _the_ document; see second 'If' comment below for more).\n // If rootNode is shadow root, it'll have a host, which is the element to which the shadow\n // is attached, and the one we need to check if it's in the document or not (because the\n // shadow, and all nodes it contains, is never considered in the document since shadows\n // behave like self-contained DOMs; but if the shadow's HOST, which is part of the document,\n // is hidden, or is not in the document itself but is detached, it will affect the shadow's\n // visibility, including all the nodes it contains). The host could be any normal node,\n // or a custom element (i.e. web component). Either way, that's the one that is considered\n // part of the document, not the shadow root, nor any of its children (i.e. the node being\n // tested).\n // To further complicate things, we have to look all the way up until we find a shadow HOST\n // that is attached (or find none) because the node might be in nested shadows...\n // If rootNode is not a shadow root, it won't have a host, and so rootNode should be the\n // document (per the docs) and while it's a Document-type object, that document does not\n // appear to be the same as the node's `ownerDocument` for some reason, so it's safer\n // to ignore the rootNode at this point, and use `node.ownerDocument`. Otherwise,\n // using `rootNode.contains(node)` will _always_ be true we'll get false-positives when\n // node is actually detached.\n // NOTE: If `nodeRootHost` or `node` happens to be the `document` itself (which is possible\n // if a tabbable/focusable node was quickly added to the DOM, focused, and then removed\n // from the DOM as in https://github.com/focus-trap/focus-trap-react/issues/905), then\n // `ownerDocument` will be `null`, hence the optional chaining on it.\n var nodeRoot = node && getRootNode(node);\n var nodeRootHost = (_nodeRoot = nodeRoot) === null || _nodeRoot === void 0 ? void 0 : _nodeRoot.host;\n\n // in some cases, a detached node will return itself as the root instead of a document or\n // shadow root object, in which case, we shouldn't try to look further up the host chain\n var attached = false;\n if (nodeRoot && nodeRoot !== node) {\n var _nodeRootHost, _nodeRootHost$ownerDo, _node$ownerDocument;\n attached = !!((_nodeRootHost = nodeRootHost) !== null && _nodeRootHost !== void 0 && (_nodeRootHost$ownerDo = _nodeRootHost.ownerDocument) !== null && _nodeRootHost$ownerDo !== void 0 && _nodeRootHost$ownerDo.contains(nodeRootHost) || node !== null && node !== void 0 && (_node$ownerDocument = node.ownerDocument) !== null && _node$ownerDocument !== void 0 && _node$ownerDocument.contains(node));\n while (!attached && nodeRootHost) {\n var _nodeRoot2, _nodeRootHost2, _nodeRootHost2$ownerD;\n // since it's not attached and we have a root host, the node MUST be in a nested shadow DOM,\n // which means we need to get the host's host and check if that parent host is contained\n // in (i.e. attached to) the document\n nodeRoot = getRootNode(nodeRootHost);\n nodeRootHost = (_nodeRoot2 = nodeRoot) === null || _nodeRoot2 === void 0 ? void 0 : _nodeRoot2.host;\n attached = !!((_nodeRootHost2 = nodeRootHost) !== null && _nodeRootHost2 !== void 0 && (_nodeRootHost2$ownerD = _nodeRootHost2.ownerDocument) !== null && _nodeRootHost2$ownerD !== void 0 && _nodeRootHost2$ownerD.contains(nodeRootHost));\n }\n }\n return attached;\n};\nvar isZeroArea = function isZeroArea(node) {\n var _node$getBoundingClie = node.getBoundingClientRect(),\n width = _node$getBoundingClie.width,\n height = _node$getBoundingClie.height;\n return width === 0 && height === 0;\n};\nvar isHidden = function isHidden(node, _ref) {\n var displayCheck = _ref.displayCheck,\n getShadowRoot = _ref.getShadowRoot;\n // NOTE: visibility will be `undefined` if node is detached from the document\n // (see notes about this further down), which means we will consider it visible\n // (this is legacy behavior from a very long way back)\n // NOTE: we check this regardless of `displayCheck=\"none\"` because this is a\n // _visibility_ check, not a _display_ check\n if (getComputedStyle(node).visibility === 'hidden') {\n return true;\n }\n var isDirectSummary = matches.call(node, 'details>summary:first-of-type');\n var nodeUnderDetails = isDirectSummary ? node.parentElement : node;\n if (matches.call(nodeUnderDetails, 'details:not([open]) *')) {\n return true;\n }\n if (!displayCheck || displayCheck === 'full' || displayCheck === 'legacy-full') {\n if (typeof getShadowRoot === 'function') {\n // figure out if we should consider the node to be in an undisclosed shadow and use the\n // 'non-zero-area' fallback\n var originalNode = node;\n while (node) {\n var parentElement = node.parentElement;\n var rootNode = getRootNode(node);\n if (parentElement && !parentElement.shadowRoot && getShadowRoot(parentElement) === true // check if there's an undisclosed shadow\n ) {\n // node has an undisclosed shadow which means we can only treat it as a black box, so we\n // fall back to a non-zero-area test\n return isZeroArea(node);\n } else if (node.assignedSlot) {\n // iterate up slot\n node = node.assignedSlot;\n } else if (!parentElement && rootNode !== node.ownerDocument) {\n // cross shadow boundary\n node = rootNode.host;\n } else {\n // iterate up normal dom\n node = parentElement;\n }\n }\n node = originalNode;\n }\n // else, `getShadowRoot` might be true, but all that does is enable shadow DOM support\n // (i.e. it does not also presume that all nodes might have undisclosed shadows); or\n // it might be a falsy value, which means shadow DOM support is disabled\n\n // Since we didn't find it sitting in an undisclosed shadow (or shadows are disabled)\n // now we can just test to see if it would normally be visible or not, provided it's\n // attached to the main document.\n // NOTE: We must consider case where node is inside a shadow DOM and given directly to\n // `isTabbable()` or `isFocusable()` -- regardless of `getShadowRoot` option setting.\n\n if (isNodeAttached(node)) {\n // this works wherever the node is: if there's at least one client rect, it's\n // somehow displayed; it also covers the CSS 'display: contents' case where the\n // node itself is hidden in place of its contents; and there's no need to search\n // up the hierarchy either\n return !node.getClientRects().length;\n }\n\n // Else, the node isn't attached to the document, which means the `getClientRects()`\n // API will __always__ return zero rects (this can happen, for example, if React\n // is used to render nodes onto a detached tree, as confirmed in this thread:\n // https://github.com/facebook/react/issues/9117#issuecomment-284228870)\n //\n // It also means that even window.getComputedStyle(node).display will return `undefined`\n // because styles are only computed for nodes that are in the document.\n //\n // NOTE: THIS HAS BEEN THE CASE FOR YEARS. It is not new, nor is it caused by tabbable\n // somehow. Though it was never stated officially, anyone who has ever used tabbable\n // APIs on nodes in detached containers has actually implicitly used tabbable in what\n // was later (as of v5.2.0 on Apr 9, 2021) called `displayCheck=\"none\"` mode -- essentially\n // considering __everything__ to be visible because of the innability to determine styles.\n //\n // v6.0.0: As of this major release, the default 'full' option __no longer treats detached\n // nodes as visible with the 'none' fallback.__\n if (displayCheck !== 'legacy-full') {\n return true; // hidden\n }\n // else, fallback to 'none' mode and consider the node visible\n } else if (displayCheck === 'non-zero-area') {\n // NOTE: Even though this tests that the node's client rect is non-zero to determine\n // whether it's displayed, and that a detached node will __always__ have a zero-area\n // client rect, we don't special-case for whether the node is attached or not. In\n // this mode, we do want to consider nodes that have a zero area to be hidden at all\n // times, and that includes attached or not.\n return isZeroArea(node);\n }\n\n // visible, as far as we can tell, or per current `displayCheck=none` mode, we assume\n // it's visible\n return false;\n};\n\n// form fields (nested) inside a disabled fieldset are not focusable/tabbable\n// unless they are in the _first_ <legend> element of the top-most disabled\n// fieldset\nvar isDisabledFromFieldset = function isDisabledFromFieldset(node) {\n if (/^(INPUT|BUTTON|SELECT|TEXTAREA)$/.test(node.tagName)) {\n var parentNode = node.parentElement;\n // check if `node` is contained in a disabled <fieldset>\n while (parentNode) {\n if (parentNode.tagName === 'FIELDSET' && parentNode.disabled) {\n // look for the first <legend> among the children of the disabled <fieldset>\n for (var i = 0; i < parentNode.children.length; i++) {\n var child = parentNode.children.item(i);\n // when the first <legend> (in document order) is found\n if (child.tagName === 'LEGEND') {\n // if its parent <fieldset> is not nested in another disabled <fieldset>,\n // return whether `node` is a descendant of its first <legend>\n return matches.call(parentNode, 'fieldset[disabled] *') ? true : !child.contains(node);\n }\n }\n // the disabled <fieldset> containing `node` has no <legend>\n return true;\n }\n parentNode = parentNode.parentElement;\n }\n }\n\n // else, node's tabbable/focusable state should not be affected by a fieldset's\n // enabled/disabled state\n return false;\n};\nvar isNodeMatchingSelectorFocusable = function isNodeMatchingSelectorFocusable(options, node) {\n if (node.disabled ||\n // we must do an inert look up to filter out any elements inside an inert ancestor\n // because we're limited in the type of selectors we can use in JSDom (see related\n // note related to `candidateSelectors`)\n isInert(node) || isHiddenInput(node) || isHidden(node, options) ||\n // For a details element with a summary, the summary element gets the focus\n isDetailsWithSummary(node) || isDisabledFromFieldset(node)) {\n return false;\n }\n return true;\n};\nvar isNodeMatchingSelectorTabbable = function isNodeMatchingSelectorTabbable(options, node) {\n if (isNonTabbableRadio(node) || getTabindex(node) < 0 || !isNodeMatchingSelectorFocusable(options, node)) {\n return false;\n }\n return true;\n};\nvar isValidShadowRootTabbable = function isValidShadowRootTabbable(shadowHostNode) {\n var tabIndex = parseInt(shadowHostNode.getAttribute('tabindex'), 10);\n if (isNaN(tabIndex) || tabIndex >= 0) {\n return true;\n }\n // If a custom element has an explicit negative tabindex,\n // browsers will not allow tab targeting said element's children.\n return false;\n};\n\n/**\n * @param {Array.<Element|CandidateScope>} candidates\n * @returns Element[]\n */\nvar sortByOrder = function sortByOrder(candidates) {\n var regularTabbables = [];\n var orderedTabbables = [];\n candidates.forEach(function (item, i) {\n var isScope = !!item.scopeParent;\n var element = isScope ? item.scopeParent : item;\n var candidateTabindex = getTabindex(element, isScope);\n var elements = isScope ? sortByOrder(item.candidates) : element;\n if (candidateTabindex === 0) {\n isScope ? regularTabbables.push.apply(regularTabbables, elements) : regularTabbables.push(element);\n } else {\n orderedTabbables.push({\n documentOrder: i,\n tabIndex: candidateTabindex,\n item: item,\n isScope: isScope,\n content: elements\n });\n }\n });\n return orderedTabbables.sort(sortOrderedTabbables).reduce(function (acc, sortable) {\n sortable.isScope ? acc.push.apply(acc, sortable.content) : acc.push(sortable.content);\n return acc;\n }, []).concat(regularTabbables);\n};\nvar tabbable = function tabbable(el, options) {\n options = options || {};\n var candidates;\n if (options.getShadowRoot) {\n candidates = getCandidatesIteratively([el], options.includeContainer, {\n filter: isNodeMatchingSelectorTabbable.bind(null, options),\n flatten: false,\n getShadowRoot: options.getShadowRoot,\n shadowRootFilter: isValidShadowRootTabbable\n });\n } else {\n candidates = getCandidates(el, options.includeContainer, isNodeMatchingSelectorTabbable.bind(null, options));\n }\n return sortByOrder(candidates);\n};\nvar focusable = function focusable(el, options) {\n options = options || {};\n var candidates;\n if (options.getShadowRoot) {\n candidates = getCandidatesIteratively([el], options.includeContainer, {\n filter: isNodeMatchingSelectorFocusable.bind(null, options),\n flatten: true,\n getShadowRoot: options.getShadowRoot\n });\n } else {\n candidates = getCandidates(el, options.includeContainer, isNodeMatchingSelectorFocusable.bind(null, options));\n }\n return candidates;\n};\nvar isTabbable = function isTabbable(node, options) {\n options = options || {};\n if (!node) {\n throw new Error('No node provided');\n }\n if (matches.call(node, candidateSelector) === false) {\n return false;\n }\n return isNodeMatchingSelectorTabbable(options, node);\n};\nvar focusableCandidateSelector = /* #__PURE__ */candidateSelectors.concat('iframe').join(',');\nvar isFocusable = function isFocusable(node, options) {\n options = options || {};\n if (!node) {\n throw new Error('No node provided');\n }\n if (matches.call(node, focusableCandidateSelector) === false) {\n return false;\n }\n return isNodeMatchingSelectorFocusable(options, node);\n};\n\nexport { focusable, isFocusable, isTabbable, tabbable };\n//# sourceMappingURL=index.esm.js.map\n","function getAlignment(placement) {\n return placement.split('-')[1];\n}\n\nfunction getLengthFromAxis(axis) {\n return axis === 'y' ? 'height' : 'width';\n}\n\nfunction getSide(placement) {\n return placement.split('-')[0];\n}\n\nfunction getMainAxisFromPlacement(placement) {\n return ['top', 'bottom'].includes(getSide(placement)) ? 'x' : 'y';\n}\n\nfunction computeCoordsFromPlacement(_ref, placement, rtl) {\n let {\n reference,\n floating\n } = _ref;\n const commonX = reference.x + reference.width / 2 - floating.width / 2;\n const commonY = reference.y + reference.height / 2 - floating.height / 2;\n const mainAxis = getMainAxisFromPlacement(placement);\n const length = getLengthFromAxis(mainAxis);\n const commonAlign = reference[length] / 2 - floating[length] / 2;\n const side = getSide(placement);\n const isVertical = mainAxis === 'x';\n let coords;\n switch (side) {\n case 'top':\n coords = {\n x: commonX,\n y: reference.y - floating.height\n };\n break;\n case 'bottom':\n coords = {\n x: commonX,\n y: reference.y + reference.height\n };\n break;\n case 'right':\n coords = {\n x: reference.x + reference.width,\n y: commonY\n };\n break;\n case 'left':\n coords = {\n x: reference.x - floating.width,\n y: commonY\n };\n break;\n default:\n coords = {\n x: reference.x,\n y: reference.y\n };\n }\n switch (getAlignment(placement)) {\n case 'start':\n coords[mainAxis] -= commonAlign * (rtl && isVertical ? -1 : 1);\n break;\n case 'end':\n coords[mainAxis] += commonAlign * (rtl && isVertical ? -1 : 1);\n break;\n }\n return coords;\n}\n\n/**\n * Computes the `x` and `y` coordinates that will place the floating element\n * next to a reference element when it is given a certain positioning strategy.\n *\n * This export does not have any `platform` interface logic. You will need to\n * write one for the platform you are using Floating UI with.\n */\nconst computePosition = async (reference, floating, config) => {\n const {\n placement = 'bottom',\n strategy = 'absolute',\n middleware = [],\n platform\n } = config;\n const validMiddleware = middleware.filter(Boolean);\n const rtl = await (platform.isRTL == null ? void 0 : platform.isRTL(floating));\n if (process.env.NODE_ENV !== \"production\") {\n if (platform == null) {\n console.error(['Floating UI: `platform` property was not passed to config. If you', 'want to use Floating UI on the web, install @floating-ui/dom', 'instead of the /core package. Otherwise, you can create your own', '`platform`: https://floating-ui.com/docs/platform'].join(' '));\n }\n if (validMiddleware.filter(_ref => {\n let {\n name\n } = _ref;\n return name === 'autoPlacement' || name === 'flip';\n }).length > 1) {\n throw new Error(['Floating UI: duplicate `flip` and/or `autoPlacement` middleware', 'detected. This will lead to an infinite loop. Ensure only one of', 'either has been passed to the `middleware` array.'].join(' '));\n }\n if (!reference || !floating) {\n console.error(['Floating UI: The reference and/or floating element was not defined', 'when `computePosition()` was called. Ensure that both elements have', 'been created and can be measured.'].join(' '));\n }\n }\n let rects = await platform.getElementRects({\n reference,\n floating,\n strategy\n });\n let {\n x,\n y\n } = computeCoordsFromPlacement(rects, placement, rtl);\n let statefulPlacement = placement;\n let middlewareData = {};\n let resetCount = 0;\n for (let i = 0; i < validMiddleware.length; i++) {\n const {\n name,\n fn\n } = validMiddleware[i];\n const {\n x: nextX,\n y: nextY,\n data,\n reset\n } = await fn({\n x,\n y,\n initialPlacement: placement,\n placement: statefulPlacement,\n strategy,\n middlewareData,\n rects,\n platform,\n elements: {\n reference,\n floating\n }\n });\n x = nextX != null ? nextX : x;\n y = nextY != null ? nextY : y;\n middlewareData = {\n ...middlewareData,\n [name]: {\n ...middlewareData[name],\n ...data\n }\n };\n if (process.env.NODE_ENV !== \"production\") {\n if (resetCount > 50) {\n console.warn(['Floating UI: The middleware lifecycle appears to be running in an', 'infinite loop. This is usually caused by a `reset` continually', 'being returned without a break condition.'].join(' '));\n }\n }\n if (reset && resetCount <= 50) {\n resetCount++;\n if (typeof reset === 'object') {\n if (reset.placement) {\n statefulPlacement = reset.placement;\n }\n if (reset.rects) {\n rects = reset.rects === true ? await platform.getElementRects({\n reference,\n floating,\n strategy\n }) : reset.rects;\n }\n ({\n x,\n y\n } = computeCoordsFromPlacement(rects, statefulPlacement, rtl));\n }\n i = -1;\n continue;\n }\n }\n return {\n x,\n y,\n placement: statefulPlacement,\n strategy,\n middlewareData\n };\n};\n\nfunction expandPaddingObject(padding) {\n return {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0,\n ...padding\n };\n}\n\nfunction getSideObjectFromPadding(padding) {\n return typeof padding !== 'number' ? expandPaddingObject(padding) : {\n top: padding,\n right: padding,\n bottom: padding,\n left: padding\n };\n}\n\nfunction rectToClientRect(rect) {\n return {\n ...rect,\n top: rect.y,\n left: rect.x,\n right: rect.x + rect.width,\n bottom: rect.y + rect.height\n };\n}\n\n/**\n * Resolves with an object of overflow side offsets that determine how much the\n * element is overflowing a given clipping boundary on each side.\n * - positive = overflowing the boundary by that number of pixels\n * - negative = how many pixels left before it will overflow\n * - 0 = lies flush with the boundary\n * @see https://floating-ui.com/docs/detectOverflow\n */\nasync function detectOverflow(state, options) {\n var _await$platform$isEle;\n if (options === void 0) {\n options = {};\n }\n const {\n x,\n y,\n platform,\n rects,\n elements,\n strategy\n } = state;\n const {\n boundary = 'clippingAncestors',\n rootBoundary = 'viewport',\n elementContext = 'floating',\n altBoundary = false,\n padding = 0\n } = options;\n const paddingObject = getSideObjectFromPadding(padding);\n const altContext = elementContext === 'floating' ? 'reference' : 'floating';\n const element = elements[altBoundary ? altContext : elementContext];\n const clippingClientRect = rectToClientRect(await platform.getClippingRect({\n element: ((_await$platform$isEle = await (platform.isElement == null ? void 0 : platform.isElement(element))) != null ? _await$platform$isEle : true) ? element : element.contextElement || (await (platform.getDocumentElement == null ? void 0 : platform.getDocumentElement(elements.floating))),\n boundary,\n rootBoundary,\n strategy\n }));\n const rect = elementContext === 'floating' ? {\n ...rects.floating,\n x,\n y\n } : rects.reference;\n const offsetParent = await (platform.getOffsetParent == null ? void 0 : platform.getOffsetParent(elements.floating));\n const offsetScale = (await (platform.isElement == null ? void 0 : platform.isElement(offsetParent))) ? (await (platform.getScale == null ? void 0 : platform.getScale(offsetParent))) || {\n x: 1,\n y: 1\n } : {\n x: 1,\n y: 1\n };\n const elementClientRect = rectToClientRect(platform.convertOffsetParentRelativeRectToViewportRelativeRect ? await platform.convertOffsetParentRelativeRectToViewportRelativeRect({\n rect,\n offsetParent,\n strategy\n }) : rect);\n if (process.env.NODE_ENV !== \"production\") ;\n return {\n top: (clippingClientRect.top - elementClientRect.top + paddingObject.top) / offsetScale.y,\n bottom: (elementClientRect.bottom - clippingClientRect.bottom + paddingObject.bottom) / offsetScale.y,\n left: (clippingClientRect.left - elementClientRect.left + paddingObject.left) / offsetScale.x,\n right: (elementClientRect.right - clippingClientRect.right + paddingObject.right) / offsetScale.x\n };\n}\n\nconst min = Math.min;\nconst max = Math.max;\n\nfunction within(min$1, value, max$1) {\n return max(min$1, min(value, max$1));\n}\n\n/**\n * Provides data to position an inner element of the floating element so that it\n * appears centered to the reference element.\n * @see https://floating-ui.com/docs/arrow\n */\nconst arrow = options => ({\n name: 'arrow',\n options,\n async fn(state) {\n // Since `element` is required, we don't Partial<> the type.\n const {\n element,\n padding = 0\n } = options || {};\n const {\n x,\n y,\n placement,\n rects,\n platform\n } = state;\n if (element == null) {\n if (process.env.NODE_ENV !== \"production\") {\n console.warn('Floating UI: No `element` was passed to the `arrow` middleware.');\n }\n return {};\n }\n const paddingObject = getSideObjectFromPadding(padding);\n const coords = {\n x,\n y\n };\n const axis = getMainAxisFromPlacement(placement);\n const length = getLengthFromAxis(axis);\n const arrowDimensions = await platform.getDimensions(element);\n const minProp = axis === 'y' ? 'top' : 'left';\n const maxProp = axis === 'y' ? 'bottom' : 'right';\n const endDiff = rects.reference[length] + rects.reference[axis] - coords[axis] - rects.floating[length];\n const startDiff = coords[axis] - rects.reference[axis];\n const arrowOffsetParent = await (platform.getOffsetParent == null ? void 0 : platform.getOffsetParent(element));\n let clientSize = arrowOffsetParent ? axis === 'y' ? arrowOffsetParent.clientHeight || 0 : arrowOffsetParent.clientWidth || 0 : 0;\n if (clientSize === 0) {\n clientSize = rects.floating[length];\n }\n const centerToReference = endDiff / 2 - startDiff / 2;\n\n // Make sure the arrow doesn't overflow the floating element if the center\n // point is outside the floating element's bounds.\n const min = paddingObject[minProp];\n const max = clientSize - arrowDimensions[length] - paddingObject[maxProp];\n const center = clientSize / 2 - arrowDimensions[length] / 2 + centerToReference;\n const offset = within(min, center, max);\n\n // If the reference is small enough that the arrow's padding causes it to\n // to point to nothing for an aligned placement, adjust the offset of the\n // floating element itself. This stops `shift()` from taking action, but can\n // be worked around by calling it again after the `arrow()` if desired.\n const shouldAddOffset = getAlignment(placement) != null && center != offset && rects.reference[length] / 2 - (center < min ? paddingObject[minProp] : paddingObject[maxProp]) - arrowDimensions[length] / 2 < 0;\n const alignmentOffset = shouldAddOffset ? center < min ? min - center : max - center : 0;\n return {\n [axis]: coords[axis] - alignmentOffset,\n data: {\n [axis]: offset,\n centerOffset: center - offset\n }\n };\n }\n});\n\nconst sides = ['top', 'right', 'bottom', 'left'];\nconst allPlacements = /*#__PURE__*/sides.reduce((acc, side) => acc.concat(side, side + \"-start\", side + \"-end\"), []);\n\nconst oppositeSideMap = {\n left: 'right',\n right: 'left',\n bottom: 'top',\n top: 'bottom'\n};\nfunction getOppositePlacement(placement) {\n return placement.replace(/left|right|bottom|top/g, side => oppositeSideMap[side]);\n}\n\nfunction getAlignmentSides(placement, rects, rtl) {\n if (rtl === void 0) {\n rtl = false;\n }\n const alignment = getAlignment(placement);\n const mainAxis = getMainAxisFromPlacement(placement);\n const length = getLengthFromAxis(mainAxis);\n let mainAlignmentSide = mainAxis === 'x' ? alignment === (rtl ? 'end' : 'start') ? 'right' : 'left' : alignment === 'start' ? 'bottom' : 'top';\n if (rects.reference[length] > rects.floating[length]) {\n mainAlignmentSide = getOppositePlacement(mainAlignmentSide);\n }\n return {\n main: mainAlignmentSide,\n cross: getOppositePlacement(mainAlignmentSide)\n };\n}\n\nconst oppositeAlignmentMap = {\n start: 'end',\n end: 'start'\n};\nfunction getOppositeAlignmentPlacement(placement) {\n return placement.replace(/start|end/g, alignment => oppositeAlignmentMap[alignment]);\n}\n\nfunction getPlacementList(alignment, autoAlignment, allowedPlacements) {\n const allowedPlacementsSortedByAlignment = alignment ? [...allowedPlacements.filter(placement => getAlignment(placement) === alignment), ...allowedPlacements.filter(placement => getAlignment(placement) !== alignment)] : allowedPlacements.filter(placement => getSide(placement) === placement);\n return allowedPlacementsSortedByAlignment.filter(placement => {\n if (alignment) {\n return getAlignment(placement) === alignment || (autoAlignment ? getOppositeAlignmentPlacement(placement) !== placement : false);\n }\n return true;\n });\n}\n/**\n * Optimizes the visibility of the floating element by choosing the placement\n * that has the most space available automatically, without needing to specify a\n * preferred placement. Alternative to `flip`.\n * @see https://floating-ui.com/docs/autoPlacement\n */\nconst autoPlacement = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'autoPlacement',\n options,\n async fn(state) {\n var _middlewareData$autoP, _middlewareData$autoP2, _placementsThatFitOnE;\n const {\n rects,\n middlewareData,\n placement,\n platform,\n elements\n } = state;\n const {\n crossAxis = false,\n alignment,\n allowedPlacements = allPlacements,\n autoAlignment = true,\n ...detectOverflowOptions\n } = options;\n const placements = alignment !== undefined || allowedPlacements === allPlacements ? getPlacementList(alignment || null, autoAlignment, allowedPlacements) : allowedPlacements;\n const overflow = await detectOverflow(state, detectOverflowOptions);\n const currentIndex = ((_middlewareData$autoP = middlewareData.autoPlacement) == null ? void 0 : _middlewareData$autoP.index) || 0;\n const currentPlacement = placements[currentIndex];\n if (currentPlacement == null) {\n return {};\n }\n const {\n main,\n cross\n } = getAlignmentSides(currentPlacement, rects, await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating)));\n\n // Make `computeCoords` start from the right place.\n if (placement !== currentPlacement) {\n return {\n reset: {\n placement: placements[0]\n }\n };\n }\n const currentOverflows = [overflow[getSide(currentPlacement)], overflow[main], overflow[cross]];\n const allOverflows = [...(((_middlewareData$autoP2 = middlewareData.autoPlacement) == null ? void 0 : _middlewareData$autoP2.overflows) || []), {\n placement: currentPlacement,\n overflows: currentOverflows\n }];\n const nextPlacement = placements[currentIndex + 1];\n\n // There are more placements to check.\n if (nextPlacement) {\n return {\n data: {\n index: currentIndex + 1,\n overflows: allOverflows\n },\n reset: {\n placement: nextPlacement\n }\n };\n }\n const placementsSortedByMostSpace = allOverflows.map(d => {\n const alignment = getAlignment(d.placement);\n return [d.placement, alignment && crossAxis ?\n // Check along the mainAxis and main crossAxis side.\n d.overflows.slice(0, 2).reduce((acc, v) => acc + v, 0) :\n // Check only the mainAxis.\n d.overflows[0], d.overflows];\n }).sort((a, b) => a[1] - b[1]);\n const placementsThatFitOnEachSide = placementsSortedByMostSpace.filter(d => d[2].slice(0,\n // Aligned placements should not check their opposite crossAxis\n // side.\n getAlignment(d[0]) ? 2 : 3).every(v => v <= 0));\n const resetPlacement = ((_placementsThatFitOnE = placementsThatFitOnEachSide[0]) == null ? void 0 : _placementsThatFitOnE[0]) || placementsSortedByMostSpace[0][0];\n if (resetPlacement !== placement) {\n return {\n data: {\n index: currentIndex + 1,\n overflows: allOverflows\n },\n reset: {\n placement: resetPlacement\n }\n };\n }\n return {};\n }\n };\n};\n\nfunction getExpandedPlacements(placement) {\n const oppositePlacement = getOppositePlacement(placement);\n return [getOppositeAlignmentPlacement(placement), oppositePlacement, getOppositeAlignmentPlacement(oppositePlacement)];\n}\n\nfunction getSideList(side, isStart, rtl) {\n const lr = ['left', 'right'];\n const rl = ['right', 'left'];\n const tb = ['top', 'bottom'];\n const bt = ['bottom', 'top'];\n switch (side) {\n case 'top':\n case 'bottom':\n if (rtl) return isStart ? rl : lr;\n return isStart ? lr : rl;\n case 'left':\n case 'right':\n return isStart ? tb : bt;\n default:\n return [];\n }\n}\nfunction getOppositeAxisPlacements(placement, flipAlignment, direction, rtl) {\n const alignment = getAlignment(placement);\n let list = getSideList(getSide(placement), direction === 'start', rtl);\n if (alignment) {\n list = list.map(side => side + \"-\" + alignment);\n if (flipAlignment) {\n list = list.concat(list.map(getOppositeAlignmentPlacement));\n }\n }\n return list;\n}\n\n/**\n * Optimizes the visibility of the floating element by flipping the `placement`\n * in order to keep it in view when the preferred placement(s) will overflow the\n * clipping boundary. Alternative to `autoPlacement`.\n * @see https://floating-ui.com/docs/flip\n */\nconst flip = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'flip',\n options,\n async fn(state) {\n var _middlewareData$flip;\n const {\n placement,\n middlewareData,\n rects,\n initialPlacement,\n platform,\n elements\n } = state;\n const {\n mainAxis: checkMainAxis = true,\n crossAxis: checkCrossAxis = true,\n fallbackPlacements: specifiedFallbackPlacements,\n fallbackStrategy = 'bestFit',\n fallbackAxisSideDirection = 'none',\n flipAlignment = true,\n ...detectOverflowOptions\n } = options;\n const side = getSide(placement);\n const isBasePlacement = getSide(initialPlacement) === initialPlacement;\n const rtl = await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating));\n const fallbackPlacements = specifiedFallbackPlacements || (isBasePlacement || !flipAlignment ? [getOppositePlacement(initialPlacement)] : getExpandedPlacements(initialPlacement));\n if (!specifiedFallbackPlacements && fallbackAxisSideDirection !== 'none') {\n fallbackPlacements.push(...getOppositeAxisPlacements(initialPlacement, flipAlignment, fallbackAxisSideDirection, rtl));\n }\n const placements = [initialPlacement, ...fallbackPlacements];\n const overflow = await detectOverflow(state, detectOverflowOptions);\n const overflows = [];\n let overflowsData = ((_middlewareData$flip = middlewareData.flip) == null ? void 0 : _middlewareData$flip.overflows) || [];\n if (checkMainAxis) {\n overflows.push(overflow[side]);\n }\n if (checkCrossAxis) {\n const {\n main,\n cross\n } = getAlignmentSides(placement, rects, rtl);\n overflows.push(overflow[main], overflow[cross]);\n }\n overflowsData = [...overflowsData, {\n placement,\n overflows\n }];\n\n // One or more sides is overflowing.\n if (!overflows.every(side => side <= 0)) {\n var _middlewareData$flip2, _overflowsData$filter;\n const nextIndex = (((_middlewareData$flip2 = middlewareData.flip) == null ? void 0 : _middlewareData$flip2.index) || 0) + 1;\n const nextPlacement = placements[nextIndex];\n if (nextPlacement) {\n // Try next placement and re-run the lifecycle.\n return {\n data: {\n index: nextIndex,\n overflows: overflowsData\n },\n reset: {\n placement: nextPlacement\n }\n };\n }\n\n // First, find the candidates that fit on the mainAxis side of overflow,\n // then find the placement that fits the best on the main crossAxis side.\n let resetPlacement = (_overflowsData$filter = overflowsData.filter(d => d.overflows[0] <= 0).sort((a, b) => a.overflows[1] - b.overflows[1])[0]) == null ? void 0 : _overflowsData$filter.placement;\n\n // Otherwise fallback.\n if (!resetPlacement) {\n switch (fallbackStrategy) {\n case 'bestFit':\n {\n var _overflowsData$map$so;\n const placement = (_overflowsData$map$so = overflowsData.map(d => [d.placement, d.overflows.filter(overflow => overflow > 0).reduce((acc, overflow) => acc + overflow, 0)]).sort((a, b) => a[1] - b[1])[0]) == null ? void 0 : _overflowsData$map$so[0];\n if (placement) {\n resetPlacement = placement;\n }\n break;\n }\n case 'initialPlacement':\n resetPlacement = initialPlacement;\n break;\n }\n }\n if (placement !== resetPlacement) {\n return {\n reset: {\n placement: resetPlacement\n }\n };\n }\n }\n return {};\n }\n };\n};\n\nfunction getSideOffsets(overflow, rect) {\n return {\n top: overflow.top - rect.height,\n right: overflow.right - rect.width,\n bottom: overflow.bottom - rect.height,\n left: overflow.left - rect.width\n };\n}\nfunction isAnySideFullyClipped(overflow) {\n return sides.some(side => overflow[side] >= 0);\n}\n/**\n * Provides data to hide the floating element in applicable situations, such as\n * when it is not in the same clipping context as the reference element.\n * @see https://floating-ui.com/docs/hide\n */\nconst hide = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'hide',\n options,\n async fn(state) {\n const {\n strategy = 'referenceHidden',\n ...detectOverflowOptions\n } = options;\n const {\n rects\n } = state;\n switch (strategy) {\n case 'referenceHidden':\n {\n const overflow = await detectOverflow(state, {\n ...detectOverflowOptions,\n elementContext: 'reference'\n });\n const offsets = getSideOffsets(overflow, rects.reference);\n return {\n data: {\n referenceHiddenOffsets: offsets,\n referenceHidden: isAnySideFullyClipped(offsets)\n }\n };\n }\n case 'escaped':\n {\n const overflow = await detectOverflow(state, {\n ...detectOverflowOptions,\n altBoundary: true\n });\n const offsets = getSideOffsets(overflow, rects.floating);\n return {\n data: {\n escapedOffsets: offsets,\n escaped: isAnySideFullyClipped(offsets)\n }\n };\n }\n default:\n {\n return {};\n }\n }\n }\n };\n};\n\n/**\n * Provides improved positioning for inline reference elements that can span\n * over multiple lines, such as hyperlinks or range selections.\n * @see https://floating-ui.com/docs/inline\n */\nconst inline = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'inline',\n options,\n async fn(state) {\n const {\n placement,\n elements,\n rects,\n platform,\n strategy\n } = state;\n // A MouseEvent's client{X,Y} coords can be up to 2 pixels off a\n // ClientRect's bounds, despite the event listener being triggered. A\n // padding of 2 seems to handle this issue.\n const {\n padding = 2,\n x,\n y\n } = options;\n const fallback = rectToClientRect(platform.convertOffsetParentRelativeRectToViewportRelativeRect ? await platform.convertOffsetParentRelativeRectToViewportRelativeRect({\n rect: rects.reference,\n offsetParent: await (platform.getOffsetParent == null ? void 0 : platform.getOffsetParent(elements.floating)),\n strategy\n }) : rects.reference);\n const clientRects = (await (platform.getClientRects == null ? void 0 : platform.getClientRects(elements.reference))) || [];\n const paddingObject = getSideObjectFromPadding(padding);\n function getBoundingClientRect() {\n // There are two rects and they are disjoined.\n if (clientRects.length === 2 && clientRects[0].left > clientRects[1].right && x != null && y != null) {\n // Find the first rect in which the point is fully inside.\n return clientRects.find(rect => x > rect.left - paddingObject.left && x < rect.right + paddingObject.right && y > rect.top - paddingObject.top && y < rect.bottom + paddingObject.bottom) || fallback;\n }\n\n // There are 2 or more connected rects.\n if (clientRects.length >= 2) {\n if (getMainAxisFromPlacement(placement) === 'x') {\n const firstRect = clientRects[0];\n const lastRect = clientRects[clientRects.length - 1];\n const isTop = getSide(placement) === 'top';\n const top = firstRect.top;\n const bottom = lastRect.bottom;\n const left = isTop ? firstRect.left : lastRect.left;\n const right = isTop ? firstRect.right : lastRect.right;\n const width = right - left;\n const height = bottom - top;\n return {\n top,\n bottom,\n left,\n right,\n width,\n height,\n x: left,\n y: top\n };\n }\n const isLeftSide = getSide(placement) === 'left';\n const maxRight = max(...clientRects.map(rect => rect.right));\n const minLeft = min(...clientRects.map(rect => rect.left));\n const measureRects = clientRects.filter(rect => isLeftSide ? rect.left === minLeft : rect.right === maxRight);\n const top = measureRects[0].top;\n const bottom = measureRects[measureRects.length - 1].bottom;\n const left = minLeft;\n const right = maxRight;\n const width = right - left;\n const height = bottom - top;\n return {\n top,\n bottom,\n left,\n right,\n width,\n height,\n x: left,\n y: top\n };\n }\n return fallback;\n }\n const resetRects = await platform.getElementRects({\n reference: {\n getBoundingClientRect\n },\n floating: elements.floating,\n strategy\n });\n if (rects.reference.x !== resetRects.reference.x || rects.reference.y !== resetRects.reference.y || rects.reference.width !== resetRects.reference.width || rects.reference.height !== resetRects.reference.height) {\n return {\n reset: {\n rects: resetRects\n }\n };\n }\n return {};\n }\n };\n};\n\nasync function convertValueToCoords(state, value) {\n const {\n placement,\n platform,\n elements\n } = state;\n const rtl = await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating));\n const side = getSide(placement);\n const alignment = getAlignment(placement);\n const isVertical = getMainAxisFromPlacement(placement) === 'x';\n const mainAxisMulti = ['left', 'top'].includes(side) ? -1 : 1;\n const crossAxisMulti = rtl && isVertical ? -1 : 1;\n const rawValue = typeof value === 'function' ? value(state) : value;\n\n // eslint-disable-next-line prefer-const\n let {\n mainAxis,\n crossAxis,\n alignmentAxis\n } = typeof rawValue === 'number' ? {\n mainAxis: rawValue,\n crossAxis: 0,\n alignmentAxis: null\n } : {\n mainAxis: 0,\n crossAxis: 0,\n alignmentAxis: null,\n ...rawValue\n };\n if (alignment && typeof alignmentAxis === 'number') {\n crossAxis = alignment === 'end' ? alignmentAxis * -1 : alignmentAxis;\n }\n return isVertical ? {\n x: crossAxis * crossAxisMulti,\n y: mainAxis * mainAxisMulti\n } : {\n x: mainAxis * mainAxisMulti,\n y: crossAxis * crossAxisMulti\n };\n}\n\n/**\n * Modifies the placement by translating the floating element along the\n * specified axes.\n * A number (shorthand for `mainAxis` or distance), or an axes configuration\n * object may be passed.\n * @see https://floating-ui.com/docs/offset\n */\nconst offset = function (value) {\n if (value === void 0) {\n value = 0;\n }\n return {\n name: 'offset',\n options: value,\n async fn(state) {\n const {\n x,\n y\n } = state;\n const diffCoords = await convertValueToCoords(state, value);\n return {\n x: x + diffCoords.x,\n y: y + diffCoords.y,\n data: diffCoords\n };\n }\n };\n};\n\nfunction getCrossAxis(axis) {\n return axis === 'x' ? 'y' : 'x';\n}\n\n/**\n * Optimizes the visibility of the floating element by shifting it in order to\n * keep it in view when it will overflow the clipping boundary.\n * @see https://floating-ui.com/docs/shift\n */\nconst shift = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'shift',\n options,\n async fn(state) {\n const {\n x,\n y,\n placement\n } = state;\n const {\n mainAxis: checkMainAxis = true,\n crossAxis: checkCrossAxis = false,\n limiter = {\n fn: _ref => {\n let {\n x,\n y\n } = _ref;\n return {\n x,\n y\n };\n }\n },\n ...detectOverflowOptions\n } = options;\n const coords = {\n x,\n y\n };\n const overflow = await detectOverflow(state, detectOverflowOptions);\n const mainAxis = getMainAxisFromPlacement(getSide(placement));\n const crossAxis = getCrossAxis(mainAxis);\n let mainAxisCoord = coords[mainAxis];\n let crossAxisCoord = coords[crossAxis];\n if (checkMainAxis) {\n const minSide = mainAxis === 'y' ? 'top' : 'left';\n const maxSide = mainAxis === 'y' ? 'bottom' : 'right';\n const min = mainAxisCoord + overflow[minSide];\n const max = mainAxisCoord - overflow[maxSide];\n mainAxisCoord = within(min, mainAxisCoord, max);\n }\n if (checkCrossAxis) {\n const minSide = crossAxis === 'y' ? 'top' : 'left';\n const maxSide = crossAxis === 'y' ? 'bottom' : 'right';\n const min = crossAxisCoord + overflow[minSide];\n const max = crossAxisCoord - overflow[maxSide];\n crossAxisCoord = within(min, crossAxisCoord, max);\n }\n const limitedCoords = limiter.fn({\n ...state,\n [mainAxis]: mainAxisCoord,\n [crossAxis]: crossAxisCoord\n });\n return {\n ...limitedCoords,\n data: {\n x: limitedCoords.x - x,\n y: limitedCoords.y - y\n }\n };\n }\n };\n};\n/**\n * Built-in `limiter` that will stop `shift()` at a certain point.\n */\nconst limitShift = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n options,\n fn(state) {\n const {\n x,\n y,\n placement,\n rects,\n middlewareData\n } = state;\n const {\n offset = 0,\n mainAxis: checkMainAxis = true,\n crossAxis: checkCrossAxis = true\n } = options;\n const coords = {\n x,\n y\n };\n const mainAxis = getMainAxisFromPlacement(placement);\n const crossAxis = getCrossAxis(mainAxis);\n let mainAxisCoord = coords[mainAxis];\n let crossAxisCoord = coords[crossAxis];\n const rawOffset = typeof offset === 'function' ? offset(state) : offset;\n const computedOffset = typeof rawOffset === 'number' ? {\n mainAxis: rawOffset,\n crossAxis: 0\n } : {\n mainAxis: 0,\n crossAxis: 0,\n ...rawOffset\n };\n if (checkMainAxis) {\n const len = mainAxis === 'y' ? 'height' : 'width';\n const limitMin = rects.reference[mainAxis] - rects.floating[len] + computedOffset.mainAxis;\n const limitMax = rects.reference[mainAxis] + rects.reference[len] - computedOffset.mainAxis;\n if (mainAxisCoord < limitMin) {\n mainAxisCoord = limitMin;\n } else if (mainAxisCoord > limitMax) {\n mainAxisCoord = limitMax;\n }\n }\n if (checkCrossAxis) {\n var _middlewareData$offse, _middlewareData$offse2;\n const len = mainAxis === 'y' ? 'width' : 'height';\n const isOriginSide = ['top', 'left'].includes(getSide(placement));\n const limitMin = rects.reference[crossAxis] - rects.floating[len] + (isOriginSide ? ((_middlewareData$offse = middlewareData.offset) == null ? void 0 : _middlewareData$offse[crossAxis]) || 0 : 0) + (isOriginSide ? 0 : computedOffset.crossAxis);\n const limitMax = rects.reference[crossAxis] + rects.reference[len] + (isOriginSide ? 0 : ((_middlewareData$offse2 = middlewareData.offset) == null ? void 0 : _middlewareData$offse2[crossAxis]) || 0) - (isOriginSide ? computedOffset.crossAxis : 0);\n if (crossAxisCoord < limitMin) {\n crossAxisCoord = limitMin;\n } else if (crossAxisCoord > limitMax) {\n crossAxisCoord = limitMax;\n }\n }\n return {\n [mainAxis]: mainAxisCoord,\n [crossAxis]: crossAxisCoord\n };\n }\n };\n};\n\n/**\n * Provides data that allows you to change the size of the floating element —\n * for instance, prevent it from overflowing the clipping boundary or match the\n * width of the reference element.\n * @see https://floating-ui.com/docs/size\n */\nconst size = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'size',\n options,\n async fn(state) {\n const {\n placement,\n rects,\n platform,\n elements\n } = state;\n const {\n apply = () => {},\n ...detectOverflowOptions\n } = options;\n const overflow = await detectOverflow(state, detectOverflowOptions);\n const side = getSide(placement);\n const alignment = getAlignment(placement);\n const axis = getMainAxisFromPlacement(placement);\n const isXAxis = axis === 'x';\n const {\n width,\n height\n } = rects.floating;\n let heightSide;\n let widthSide;\n if (side === 'top' || side === 'bottom') {\n heightSide = side;\n widthSide = alignment === ((await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating))) ? 'start' : 'end') ? 'left' : 'right';\n } else {\n widthSide = side;\n heightSide = alignment === 'end' ? 'top' : 'bottom';\n }\n const overflowAvailableHeight = height - overflow[heightSide];\n const overflowAvailableWidth = width - overflow[widthSide];\n let availableHeight = overflowAvailableHeight;\n let availableWidth = overflowAvailableWidth;\n if (isXAxis) {\n availableWidth = min(\n // Maximum clipping viewport width\n width - overflow.right - overflow.left, overflowAvailableWidth);\n } else {\n availableHeight = min(\n // Maximum clipping viewport height\n height - overflow.bottom - overflow.top, overflowAvailableHeight);\n }\n if (!state.middlewareData.shift && !alignment) {\n const xMin = max(overflow.left, 0);\n const xMax = max(overflow.right, 0);\n const yMin = max(overflow.top, 0);\n const yMax = max(overflow.bottom, 0);\n if (isXAxis) {\n availableWidth = width - 2 * (xMin !== 0 || xMax !== 0 ? xMin + xMax : max(overflow.left, overflow.right));\n } else {\n availableHeight = height - 2 * (yMin !== 0 || yMax !== 0 ? yMin + yMax : max(overflow.top, overflow.bottom));\n }\n }\n await apply({\n ...state,\n availableWidth,\n availableHeight\n });\n const nextDimensions = await platform.getDimensions(elements.floating);\n if (width !== nextDimensions.width || height !== nextDimensions.height) {\n return {\n reset: {\n rects: true\n }\n };\n }\n return {};\n }\n };\n};\n\nexport { arrow, autoPlacement, computePosition, detectOverflow, flip, hide, inline, limitShift, offset, rectToClientRect, shift, size };\n","import { rectToClientRect, computePosition as computePosition$1 } from '@floating-ui/core';\nexport { arrow, autoPlacement, detectOverflow, flip, hide, inline, limitShift, offset, shift, size } from '@floating-ui/core';\n\nfunction getWindow(node) {\n var _node$ownerDocument;\n return ((_node$ownerDocument = node.ownerDocument) == null ? void 0 : _node$ownerDocument.defaultView) || window;\n}\n\nfunction getComputedStyle$1(element) {\n return getWindow(element).getComputedStyle(element);\n}\n\nconst min = Math.min;\nconst max = Math.max;\nconst round = Math.round;\n\nfunction getCssDimensions(element) {\n const css = getComputedStyle$1(element);\n let width = parseFloat(css.width);\n let height = parseFloat(css.height);\n const offsetWidth = element.offsetWidth;\n const offsetHeight = element.offsetHeight;\n const shouldFallback = round(width) !== offsetWidth || round(height) !== offsetHeight;\n if (shouldFallback) {\n width = offsetWidth;\n height = offsetHeight;\n }\n return {\n width,\n height,\n fallback: shouldFallback\n };\n}\n\nfunction getNodeName(node) {\n return isNode(node) ? (node.nodeName || '').toLowerCase() : '';\n}\n\nlet uaString;\nfunction getUAString() {\n if (uaString) {\n return uaString;\n }\n const uaData = navigator.userAgentData;\n if (uaData && Array.isArray(uaData.brands)) {\n uaString = uaData.brands.map(item => item.brand + \"/\" + item.version).join(' ');\n return uaString;\n }\n return navigator.userAgent;\n}\n\nfunction isHTMLElement(value) {\n return value instanceof getWindow(value).HTMLElement;\n}\nfunction isElement(value) {\n return value instanceof getWindow(value).Element;\n}\nfunction isNode(value) {\n return value instanceof getWindow(value).Node;\n}\nfunction isShadowRoot(node) {\n // Browsers without `ShadowRoot` support.\n if (typeof ShadowRoot === 'undefined') {\n return false;\n }\n const OwnElement = getWindow(node).ShadowRoot;\n return node instanceof OwnElement || node instanceof ShadowRoot;\n}\nfunction isOverflowElement(element) {\n const {\n overflow,\n overflowX,\n overflowY,\n display\n } = getComputedStyle$1(element);\n return /auto|scroll|overlay|hidden|clip/.test(overflow + overflowY + overflowX) && !['inline', 'contents'].includes(display);\n}\nfunction isTableElement(element) {\n return ['table', 'td', 'th'].includes(getNodeName(element));\n}\nfunction isContainingBlock(element) {\n // TODO: Try to use feature detection here instead.\n const isFirefox = /firefox/i.test(getUAString());\n const css = getComputedStyle$1(element);\n const backdropFilter = css.backdropFilter || css.WebkitBackdropFilter;\n\n // This is non-exhaustive but covers the most common CSS properties that\n // create a containing block.\n // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block\n return css.transform !== 'none' || css.perspective !== 'none' || (backdropFilter ? backdropFilter !== 'none' : false) || isFirefox && css.willChange === 'filter' || isFirefox && (css.filter ? css.filter !== 'none' : false) || ['transform', 'perspective'].some(value => css.willChange.includes(value)) || ['paint', 'layout', 'strict', 'content'].some(value => {\n // Add type check for old browsers.\n const contain = css.contain;\n return contain != null ? contain.includes(value) : false;\n });\n}\n\n/**\n * Determines whether or not `.getBoundingClientRect()` is affected by visual\n * viewport offsets. In Safari, the `x`/`y` offsets are values relative to the\n * visual viewport, while in other engines, they are values relative to the\n * layout viewport.\n */\nfunction isClientRectVisualViewportBased() {\n // TODO: Try to use feature detection here instead. Feature detection for\n // this can fail in various ways, making the userAgent check the most\n // reliable:\n // • Always-visible scrollbar or not\n // • Width of <html>\n\n // Is Safari.\n return /^((?!chrome|android).)*safari/i.test(getUAString());\n}\nfunction isLastTraversableNode(node) {\n return ['html', 'body', '#document'].includes(getNodeName(node));\n}\n\nfunction unwrapElement(element) {\n return !isElement(element) ? element.contextElement : element;\n}\n\nconst FALLBACK_SCALE = {\n x: 1,\n y: 1\n};\nfunction getScale(element) {\n const domElement = unwrapElement(element);\n if (!isHTMLElement(domElement)) {\n return FALLBACK_SCALE;\n }\n const rect = domElement.getBoundingClientRect();\n const {\n width,\n height,\n fallback\n } = getCssDimensions(domElement);\n let x = (fallback ? round(rect.width) : rect.width) / width;\n let y = (fallback ? round(rect.height) : rect.height) / height;\n\n // 0, NaN, or Infinity should always fallback to 1.\n\n if (!x || !Number.isFinite(x)) {\n x = 1;\n }\n if (!y || !Number.isFinite(y)) {\n y = 1;\n }\n return {\n x,\n y\n };\n}\n\nfunction getBoundingClientRect(element, includeScale, isFixedStrategy, offsetParent) {\n var _win$visualViewport, _win$visualViewport2;\n if (includeScale === void 0) {\n includeScale = false;\n }\n if (isFixedStrategy === void 0) {\n isFixedStrategy = false;\n }\n const clientRect = element.getBoundingClientRect();\n const domElement = unwrapElement(element);\n let scale = FALLBACK_SCALE;\n if (includeScale) {\n if (offsetParent) {\n if (isElement(offsetParent)) {\n scale = getScale(offsetParent);\n }\n } else {\n scale = getScale(element);\n }\n }\n const win = domElement ? getWindow(domElement) : window;\n const addVisualOffsets = isClientRectVisualViewportBased() && isFixedStrategy;\n let x = (clientRect.left + (addVisualOffsets ? ((_win$visualViewport = win.visualViewport) == null ? void 0 : _win$visualViewport.offsetLeft) || 0 : 0)) / scale.x;\n let y = (clientRect.top + (addVisualOffsets ? ((_win$visualViewport2 = win.visualViewport) == null ? void 0 : _win$visualViewport2.offsetTop) || 0 : 0)) / scale.y;\n let width = clientRect.width / scale.x;\n let height = clientRect.height / scale.y;\n if (domElement) {\n const win = getWindow(domElement);\n const offsetWin = offsetParent && isElement(offsetParent) ? getWindow(offsetParent) : offsetParent;\n let currentIFrame = win.frameElement;\n while (currentIFrame && offsetParent && offsetWin !== win) {\n const iframeScale = getScale(currentIFrame);\n const iframeRect = currentIFrame.getBoundingClientRect();\n const css = getComputedStyle(currentIFrame);\n iframeRect.x += (currentIFrame.clientLeft + parseFloat(css.paddingLeft)) * iframeScale.x;\n iframeRect.y += (currentIFrame.clientTop + parseFloat(css.paddingTop)) * iframeScale.y;\n x *= iframeScale.x;\n y *= iframeScale.y;\n width *= iframeScale.x;\n height *= iframeScale.y;\n x += iframeRect.x;\n y += iframeRect.y;\n currentIFrame = getWindow(currentIFrame).frameElement;\n }\n }\n return {\n width,\n height,\n top: y,\n right: x + width,\n bottom: y + height,\n left: x,\n x,\n y\n };\n}\n\nfunction getDocumentElement(node) {\n return ((isNode(node) ? node.ownerDocument : node.document) || window.document).documentElement;\n}\n\nfunction getNodeScroll(element) {\n if (isElement(element)) {\n return {\n scrollLeft: element.scrollLeft,\n scrollTop: element.scrollTop\n };\n }\n return {\n scrollLeft: element.pageXOffset,\n scrollTop: element.pageYOffset\n };\n}\n\nfunction convertOffsetParentRelativeRectToViewportRelativeRect(_ref) {\n let {\n rect,\n offsetParent,\n strategy\n } = _ref;\n const isOffsetParentAnElement = isHTMLElement(offsetParent);\n const documentElement = getDocumentElement(offsetParent);\n if (offsetParent === documentElement) {\n return rect;\n }\n let scroll = {\n scrollLeft: 0,\n scrollTop: 0\n };\n let scale = {\n x: 1,\n y: 1\n };\n const offsets = {\n x: 0,\n y: 0\n };\n if (isOffsetParentAnElement || !isOffsetParentAnElement && strategy !== 'fixed') {\n if (getNodeName(offsetParent) !== 'body' || isOverflowElement(documentElement)) {\n scroll = getNodeScroll(offsetParent);\n }\n if (isHTMLElement(offsetParent)) {\n const offsetRect = getBoundingClientRect(offsetParent);\n scale = getScale(offsetParent);\n offsets.x = offsetRect.x + offsetParent.clientLeft;\n offsets.y = offsetRect.y + offsetParent.clientTop;\n }\n }\n return {\n width: rect.width * scale.x,\n height: rect.height * scale.y,\n x: rect.x * scale.x - scroll.scrollLeft * scale.x + offsets.x,\n y: rect.y * scale.y - scroll.scrollTop * scale.y + offsets.y\n };\n}\n\nfunction getWindowScrollBarX(element) {\n // If <html> has a CSS width greater than the viewport, then this will be\n // incorrect for RTL.\n return getBoundingClientRect(getDocumentElement(element)).left + getNodeScroll(element).scrollLeft;\n}\n\n// Gets the entire size of the scrollable document area, even extending outside\n// of the `<html>` and `<body>` rect bounds if horizontally scrollable.\nfunction getDocumentRect(element) {\n const html = getDocumentElement(element);\n const scroll = getNodeScroll(element);\n const body = element.ownerDocument.body;\n const width = max(html.scrollWidth, html.clientWidth, body.scrollWidth, body.clientWidth);\n const height = max(html.scrollHeight, html.clientHeight, body.scrollHeight, body.clientHeight);\n let x = -scroll.scrollLeft + getWindowScrollBarX(element);\n const y = -scroll.scrollTop;\n if (getComputedStyle$1(body).direction === 'rtl') {\n x += max(html.clientWidth, body.clientWidth) - width;\n }\n return {\n width,\n height,\n x,\n y\n };\n}\n\nfunction getParentNode(node) {\n if (getNodeName(node) === 'html') {\n return node;\n }\n const result =\n // Step into the shadow DOM of the parent of a slotted node.\n node.assignedSlot ||\n // DOM Element detected.\n node.parentNode ||\n // ShadowRoot detected.\n isShadowRoot(node) && node.host ||\n // Fallback.\n getDocumentElement(node);\n return isShadowRoot(result) ? result.host : result;\n}\n\nfunction getNearestOverflowAncestor(node) {\n const parentNode = getParentNode(node);\n if (isLastTraversableNode(parentNode)) {\n // `getParentNode` will never return a `Document` due to the fallback\n // check, so it's either the <html> or <body> element.\n return parentNode.ownerDocument.body;\n }\n if (isHTMLElement(parentNode) && isOverflowElement(parentNode)) {\n return parentNode;\n }\n return getNearestOverflowAncestor(parentNode);\n}\n\nfunction getOverflowAncestors(node, list) {\n var _node$ownerDocument;\n if (list === void 0) {\n list = [];\n }\n const scrollableAncestor = getNearestOverflowAncestor(node);\n const isBody = scrollableAncestor === ((_node$ownerDocument = node.ownerDocument) == null ? void 0 : _node$ownerDocument.body);\n const win = getWindow(scrollableAncestor);\n if (isBody) {\n return list.concat(win, win.visualViewport || [], isOverflowElement(scrollableAncestor) ? scrollableAncestor : []);\n }\n return list.concat(scrollableAncestor, getOverflowAncestors(scrollableAncestor));\n}\n\nfunction getViewportRect(element, strategy) {\n const win = getWindow(element);\n const html = getDocumentElement(element);\n const visualViewport = win.visualViewport;\n let width = html.clientWidth;\n let height = html.clientHeight;\n let x = 0;\n let y = 0;\n if (visualViewport) {\n width = visualViewport.width;\n height = visualViewport.height;\n const visualViewportBased = isClientRectVisualViewportBased();\n if (!visualViewportBased || visualViewportBased && strategy === 'fixed') {\n x = visualViewport.offsetLeft;\n y = visualViewport.offsetTop;\n }\n }\n return {\n width,\n height,\n x,\n y\n };\n}\n\n// Returns the inner client rect, subtracting scrollbars if present.\nfunction getInnerBoundingClientRect(element, strategy) {\n const clientRect = getBoundingClientRect(element, true, strategy === 'fixed');\n const top = clientRect.top + element.clientTop;\n const left = clientRect.left + element.clientLeft;\n const scale = isHTMLElement(element) ? getScale(element) : {\n x: 1,\n y: 1\n };\n const width = element.clientWidth * scale.x;\n const height = element.clientHeight * scale.y;\n const x = left * scale.x;\n const y = top * scale.y;\n return {\n width,\n height,\n x,\n y\n };\n}\nfunction getClientRectFromClippingAncestor(element, clippingAncestor, strategy) {\n let rect;\n if (clippingAncestor === 'viewport') {\n rect = getViewportRect(element, strategy);\n } else if (clippingAncestor === 'document') {\n rect = getDocumentRect(getDocumentElement(element));\n } else if (isElement(clippingAncestor)) {\n rect = getInnerBoundingClientRect(clippingAncestor, strategy);\n } else {\n const mutableRect = {\n ...clippingAncestor\n };\n if (isClientRectVisualViewportBased()) {\n var _win$visualViewport, _win$visualViewport2;\n const win = getWindow(element);\n mutableRect.x -= ((_win$visualViewport = win.visualViewport) == null ? void 0 : _win$visualViewport.offsetLeft) || 0;\n mutableRect.y -= ((_win$visualViewport2 = win.visualViewport) == null ? void 0 : _win$visualViewport2.offsetTop) || 0;\n }\n rect = mutableRect;\n }\n return rectToClientRect(rect);\n}\n\n// A \"clipping ancestor\" is an `overflow` element with the characteristic of\n// clipping (or hiding) child elements. This returns all clipping ancestors\n// of the given element up the tree.\nfunction getClippingElementAncestors(element, cache) {\n const cachedResult = cache.get(element);\n if (cachedResult) {\n return cachedResult;\n }\n let result = getOverflowAncestors(element).filter(el => isElement(el) && getNodeName(el) !== 'body');\n let currentContainingBlockComputedStyle = null;\n const elementIsFixed = getComputedStyle$1(element).position === 'fixed';\n let currentNode = elementIsFixed ? getParentNode(element) : element;\n\n // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block\n while (isElement(currentNode) && !isLastTraversableNode(currentNode)) {\n const computedStyle = getComputedStyle$1(currentNode);\n const containingBlock = isContainingBlock(currentNode);\n const shouldIgnoreCurrentNode = computedStyle.position === 'fixed';\n if (shouldIgnoreCurrentNode) {\n currentContainingBlockComputedStyle = null;\n } else {\n const shouldDropCurrentNode = elementIsFixed ? !containingBlock && !currentContainingBlockComputedStyle : !containingBlock && computedStyle.position === 'static' && !!currentContainingBlockComputedStyle && ['absolute', 'fixed'].includes(currentContainingBlockComputedStyle.position);\n if (shouldDropCurrentNode) {\n // Drop non-containing blocks.\n result = result.filter(ancestor => ancestor !== currentNode);\n } else {\n // Record last containing block for next iteration.\n currentContainingBlockComputedStyle = computedStyle;\n }\n }\n currentNode = getParentNode(currentNode);\n }\n cache.set(element, result);\n return result;\n}\n\n// Gets the maximum area that the element is visible in due to any number of\n// clipping ancestors.\nfunction getClippingRect(_ref) {\n let {\n element,\n boundary,\n rootBoundary,\n strategy\n } = _ref;\n const elementClippingAncestors = boundary === 'clippingAncestors' ? getClippingElementAncestors(element, this._c) : [].concat(boundary);\n const clippingAncestors = [...elementClippingAncestors, rootBoundary];\n const firstClippingAncestor = clippingAncestors[0];\n const clippingRect = clippingAncestors.reduce((accRect, clippingAncestor) => {\n const rect = getClientRectFromClippingAncestor(element, clippingAncestor, strategy);\n accRect.top = max(rect.top, accRect.top);\n accRect.right = min(rect.right, accRect.right);\n accRect.bottom = min(rect.bottom, accRect.bottom);\n accRect.left = max(rect.left, accRect.left);\n return accRect;\n }, getClientRectFromClippingAncestor(element, firstClippingAncestor, strategy));\n return {\n width: clippingRect.right - clippingRect.left,\n height: clippingRect.bottom - clippingRect.top,\n x: clippingRect.left,\n y: clippingRect.top\n };\n}\n\nfunction getDimensions(element) {\n if (isHTMLElement(element)) {\n return getCssDimensions(element);\n }\n return element.getBoundingClientRect();\n}\n\nfunction getTrueOffsetParent(element, polyfill) {\n if (!isHTMLElement(element) || getComputedStyle$1(element).position === 'fixed') {\n return null;\n }\n if (polyfill) {\n return polyfill(element);\n }\n return element.offsetParent;\n}\nfunction getContainingBlock(element) {\n let currentNode = getParentNode(element);\n while (isHTMLElement(currentNode) && !isLastTraversableNode(currentNode)) {\n if (isContainingBlock(currentNode)) {\n return currentNode;\n } else {\n currentNode = getParentNode(currentNode);\n }\n }\n return null;\n}\n\n// Gets the closest ancestor positioned element. Handles some edge cases,\n// such as table ancestors and cross browser bugs.\nfunction getOffsetParent(element, polyfill) {\n const window = getWindow(element);\n let offsetParent = getTrueOffsetParent(element, polyfill);\n while (offsetParent && isTableElement(offsetParent) && getComputedStyle$1(offsetParent).position === 'static') {\n offsetParent = getTrueOffsetParent(offsetParent, polyfill);\n }\n if (offsetParent && (getNodeName(offsetParent) === 'html' || getNodeName(offsetParent) === 'body' && getComputedStyle$1(offsetParent).position === 'static' && !isContainingBlock(offsetParent))) {\n return window;\n }\n return offsetParent || getContainingBlock(element) || window;\n}\n\nfunction getRectRelativeToOffsetParent(element, offsetParent, strategy) {\n const isOffsetParentAnElement = isHTMLElement(offsetParent);\n const documentElement = getDocumentElement(offsetParent);\n const rect = getBoundingClientRect(element, true, strategy === 'fixed', offsetParent);\n let scroll = {\n scrollLeft: 0,\n scrollTop: 0\n };\n const offsets = {\n x: 0,\n y: 0\n };\n if (isOffsetParentAnElement || !isOffsetParentAnElement && strategy !== 'fixed') {\n if (getNodeName(offsetParent) !== 'body' || isOverflowElement(documentElement)) {\n scroll = getNodeScroll(offsetParent);\n }\n if (isHTMLElement(offsetParent)) {\n const offsetRect = getBoundingClientRect(offsetParent, true);\n offsets.x = offsetRect.x + offsetParent.clientLeft;\n offsets.y = offsetRect.y + offsetParent.clientTop;\n } else if (documentElement) {\n offsets.x = getWindowScrollBarX(documentElement);\n }\n }\n return {\n x: rect.left + scroll.scrollLeft - offsets.x,\n y: rect.top + scroll.scrollTop - offsets.y,\n width: rect.width,\n height: rect.height\n };\n}\n\nconst platform = {\n getClippingRect,\n convertOffsetParentRelativeRectToViewportRelativeRect,\n isElement,\n getDimensions,\n getOffsetParent,\n getDocumentElement,\n getScale,\n async getElementRects(_ref) {\n let {\n reference,\n floating,\n strategy\n } = _ref;\n const getOffsetParentFn = this.getOffsetParent || getOffsetParent;\n const getDimensionsFn = this.getDimensions;\n return {\n reference: getRectRelativeToOffsetParent(reference, await getOffsetParentFn(floating), strategy),\n floating: {\n x: 0,\n y: 0,\n ...(await getDimensionsFn(floating))\n }\n };\n },\n getClientRects: element => Array.from(element.getClientRects()),\n isRTL: element => getComputedStyle$1(element).direction === 'rtl'\n};\n\n/**\n * Automatically updates the position of the floating element when necessary.\n * Should only be called when the floating element is mounted on the DOM or\n * visible on the screen.\n * @returns cleanup function that should be invoked when the floating element is\n * removed from the DOM or hidden from the screen.\n * @see https://floating-ui.com/docs/autoUpdate\n */\nfunction autoUpdate(reference, floating, update, options) {\n if (options === void 0) {\n options = {};\n }\n const {\n ancestorScroll: _ancestorScroll = true,\n ancestorResize = true,\n elementResize = true,\n animationFrame = false\n } = options;\n const ancestorScroll = _ancestorScroll && !animationFrame;\n const ancestors = ancestorScroll || ancestorResize ? [...(isElement(reference) ? getOverflowAncestors(reference) : reference.contextElement ? getOverflowAncestors(reference.contextElement) : []), ...getOverflowAncestors(floating)] : [];\n ancestors.forEach(ancestor => {\n ancestorScroll && ancestor.addEventListener('scroll', update, {\n passive: true\n });\n ancestorResize && ancestor.addEventListener('resize', update);\n });\n let observer = null;\n if (elementResize) {\n let initialUpdate = true;\n observer = new ResizeObserver(() => {\n if (!initialUpdate) {\n update();\n }\n initialUpdate = false;\n });\n isElement(reference) && !animationFrame && observer.observe(reference);\n if (!isElement(reference) && reference.contextElement && !animationFrame) {\n observer.observe(reference.contextElement);\n }\n observer.observe(floating);\n }\n let frameId;\n let prevRefRect = animationFrame ? getBoundingClientRect(reference) : null;\n if (animationFrame) {\n frameLoop();\n }\n function frameLoop() {\n const nextRefRect = getBoundingClientRect(reference);\n if (prevRefRect && (nextRefRect.x !== prevRefRect.x || nextRefRect.y !== prevRefRect.y || nextRefRect.width !== prevRefRect.width || nextRefRect.height !== prevRefRect.height)) {\n update();\n }\n prevRefRect = nextRefRect;\n frameId = requestAnimationFrame(frameLoop);\n }\n update();\n return () => {\n var _observer;\n ancestors.forEach(ancestor => {\n ancestorScroll && ancestor.removeEventListener('scroll', update);\n ancestorResize && ancestor.removeEventListener('resize', update);\n });\n (_observer = observer) == null ? void 0 : _observer.disconnect();\n observer = null;\n if (animationFrame) {\n cancelAnimationFrame(frameId);\n }\n };\n}\n\n/**\n * Computes the `x` and `y` coordinates that will place the floating element\n * next to a reference element when it is given a certain CSS positioning\n * strategy.\n */\nconst computePosition = (reference, floating, options) => {\n // This caches the expensive `getClippingElementAncestors` function so that\n // multiple lifecycle resets re-use the same result. It only lives for a\n // single call. If other functions become expensive, we can add them as well.\n const cache = new Map();\n const mergedOptions = {\n platform,\n ...options\n };\n const platformWithCache = {\n ...mergedOptions.platform,\n _c: cache\n };\n return computePosition$1(reference, floating, {\n ...mergedOptions,\n platform: platformWithCache\n });\n};\n\nexport { autoUpdate, computePosition, getOverflowAncestors, platform };\n","import { arrow as arrow$1, computePosition } from '@floating-ui/dom';\nexport { autoPlacement, autoUpdate, computePosition, detectOverflow, flip, getOverflowAncestors, hide, inline, limitShift, offset, platform, shift, size } from '@floating-ui/dom';\nimport * as React from 'react';\nimport { useLayoutEffect, useEffect } from 'react';\nimport * as ReactDOM from 'react-dom';\n\n/**\n * A data provider that provides data to position an inner element of the\n * floating element (usually a triangle or caret) so that it is centered to the\n * reference element.\n * This wraps the core `arrow` middleware to allow React refs as the element.\n * @see https://floating-ui.com/docs/arrow\n */\nconst arrow = options => {\n const {\n element,\n padding\n } = options;\n function isRef(value) {\n return Object.prototype.hasOwnProperty.call(value, 'current');\n }\n return {\n name: 'arrow',\n options,\n fn(args) {\n if (isRef(element)) {\n if (element.current != null) {\n return arrow$1({\n element: element.current,\n padding\n }).fn(args);\n }\n return {};\n } else if (element) {\n return arrow$1({\n element,\n padding\n }).fn(args);\n }\n return {};\n }\n };\n};\n\nvar index = typeof document !== 'undefined' ? useLayoutEffect : useEffect;\n\n// Fork of `fast-deep-equal` that only does the comparisons we need and compares\n// functions\nfunction deepEqual(a, b) {\n if (a === b) {\n return true;\n }\n if (typeof a !== typeof b) {\n return false;\n }\n if (typeof a === 'function' && a.toString() === b.toString()) {\n return true;\n }\n let length, i, keys;\n if (a && b && typeof a == 'object') {\n if (Array.isArray(a)) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;) {\n if (!deepEqual(a[i], b[i])) {\n return false;\n }\n }\n return true;\n }\n keys = Object.keys(a);\n length = keys.length;\n if (length !== Object.keys(b).length) {\n return false;\n }\n for (i = length; i-- !== 0;) {\n if (!Object.prototype.hasOwnProperty.call(b, keys[i])) {\n return false;\n }\n }\n for (i = length; i-- !== 0;) {\n const key = keys[i];\n if (key === '_owner' && a.$$typeof) {\n continue;\n }\n if (!deepEqual(a[key], b[key])) {\n return false;\n }\n }\n return true;\n }\n return a !== a && b !== b;\n}\n\nfunction useLatestRef(value) {\n const ref = React.useRef(value);\n index(() => {\n ref.current = value;\n });\n return ref;\n}\n\n/**\n * Provides data to position a floating element.\n * @see https://floating-ui.com/docs/react\n */\nfunction useFloating(options) {\n if (options === void 0) {\n options = {};\n }\n const {\n placement = 'bottom',\n strategy = 'absolute',\n middleware = [],\n platform,\n whileElementsMounted,\n open\n } = options;\n const [data, setData] = React.useState({\n x: null,\n y: null,\n strategy,\n placement,\n middlewareData: {},\n isPositioned: false\n });\n const [latestMiddleware, setLatestMiddleware] = React.useState(middleware);\n if (!deepEqual(latestMiddleware, middleware)) {\n setLatestMiddleware(middleware);\n }\n const referenceRef = React.useRef(null);\n const floatingRef = React.useRef(null);\n const dataRef = React.useRef(data);\n const whileElementsMountedRef = useLatestRef(whileElementsMounted);\n const platformRef = useLatestRef(platform);\n const [reference, _setReference] = React.useState(null);\n const [floating, _setFloating] = React.useState(null);\n const setReference = React.useCallback(node => {\n if (referenceRef.current !== node) {\n referenceRef.current = node;\n _setReference(node);\n }\n }, []);\n const setFloating = React.useCallback(node => {\n if (floatingRef.current !== node) {\n floatingRef.current = node;\n _setFloating(node);\n }\n }, []);\n const update = React.useCallback(() => {\n if (!referenceRef.current || !floatingRef.current) {\n return;\n }\n const config = {\n placement,\n strategy,\n middleware: latestMiddleware\n };\n if (platformRef.current) {\n config.platform = platformRef.current;\n }\n computePosition(referenceRef.current, floatingRef.current, config).then(data => {\n const fullData = {\n ...data,\n isPositioned: true\n };\n if (isMountedRef.current && !deepEqual(dataRef.current, fullData)) {\n dataRef.current = fullData;\n ReactDOM.flushSync(() => {\n setData(fullData);\n });\n }\n });\n }, [latestMiddleware, placement, strategy, platformRef]);\n index(() => {\n if (open === false && dataRef.current.isPositioned) {\n dataRef.current.isPositioned = false;\n setData(data => ({\n ...data,\n isPositioned: false\n }));\n }\n }, [open]);\n const isMountedRef = React.useRef(false);\n index(() => {\n isMountedRef.current = true;\n return () => {\n isMountedRef.current = false;\n };\n }, []);\n index(() => {\n if (reference && floating) {\n if (whileElementsMountedRef.current) {\n return whileElementsMountedRef.current(reference, floating, update);\n } else {\n update();\n }\n }\n }, [reference, floating, update, whileElementsMountedRef]);\n const refs = React.useMemo(() => ({\n reference: referenceRef,\n floating: floatingRef,\n setReference,\n setFloating\n }), [setReference, setFloating]);\n const elements = React.useMemo(() => ({\n reference,\n floating\n }), [reference, floating]);\n return React.useMemo(() => ({\n ...data,\n update,\n refs,\n elements,\n reference: setReference,\n floating: setFloating\n }), [data, update, refs, elements, setReference, setFloating]);\n}\n\nexport { arrow, useFloating };\n","import * as React from 'react';\nimport { useLayoutEffect, useEffect, useRef } from 'react';\nimport { hideOthers } from 'aria-hidden';\nimport { tabbable } from 'tabbable';\nimport { createPortal, flushSync } from 'react-dom';\nimport { getOverflowAncestors, offset, detectOverflow, useFloating as useFloating$1 } from '@floating-ui/react-dom';\nexport { arrow, autoPlacement, autoUpdate, computePosition, detectOverflow, flip, getOverflowAncestors, hide, inline, limitShift, offset, platform, shift, size } from '@floating-ui/react-dom';\n\nvar index = typeof document !== 'undefined' ? useLayoutEffect : useEffect;\n\nlet serverHandoffComplete = false;\nlet count = 0;\nconst genId = () => \"floating-ui-\" + count++;\nfunction useFloatingId() {\n const [id, setId] = React.useState(() => serverHandoffComplete ? genId() : undefined);\n index(() => {\n if (id == null) {\n setId(genId());\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n React.useEffect(() => {\n if (!serverHandoffComplete) {\n serverHandoffComplete = true;\n }\n }, []);\n return id;\n}\n\n// `toString()` prevents bundlers from trying to `import { useId } from 'react'`\nconst useReactId = React[/*#__PURE__*/'useId'.toString()];\n\n/**\n * Uses React 18's built-in `useId()` when available, or falls back to a\n * slightly less performant (requiring a double render) implementation for\n * earlier React versions.\n * @see https://floating-ui.com/docs/useId\n */\nconst useId = useReactId || useFloatingId;\n\nfunction createPubSub() {\n const map = new Map();\n return {\n emit(event, data) {\n var _map$get;\n (_map$get = map.get(event)) == null ? void 0 : _map$get.forEach(handler => handler(data));\n },\n on(event, listener) {\n map.set(event, [...(map.get(event) || []), listener]);\n },\n off(event, listener) {\n map.set(event, (map.get(event) || []).filter(l => l !== listener));\n }\n };\n}\n\nconst FloatingNodeContext = /*#__PURE__*/React.createContext(null);\nconst FloatingTreeContext = /*#__PURE__*/React.createContext(null);\nconst useFloatingParentNodeId = () => {\n var _React$useContext;\n return ((_React$useContext = React.useContext(FloatingNodeContext)) == null ? void 0 : _React$useContext.id) || null;\n};\nconst useFloatingTree = () => React.useContext(FloatingTreeContext);\n\n/**\n * Registers a node into the floating tree, returning its id.\n */\nconst useFloatingNodeId = customParentId => {\n const id = useId();\n const tree = useFloatingTree();\n const reactParentId = useFloatingParentNodeId();\n const parentId = customParentId || reactParentId;\n index(() => {\n const node = {\n id,\n parentId\n };\n tree == null ? void 0 : tree.addNode(node);\n return () => {\n tree == null ? void 0 : tree.removeNode(node);\n };\n }, [tree, id, parentId]);\n return id;\n};\n\n/**\n * Provides parent node context for nested floating elements.\n * @see https://floating-ui.com/docs/FloatingTree\n */\nconst FloatingNode = _ref => {\n let {\n children,\n id\n } = _ref;\n const parentId = useFloatingParentNodeId();\n return /*#__PURE__*/React.createElement(FloatingNodeContext.Provider, {\n value: React.useMemo(() => ({\n id,\n parentId\n }), [id, parentId])\n }, children);\n};\n\n/**\n * Provides context for nested floating elements when they are not children of\n * each other on the DOM (i.e. portalled to a common node, rather than their\n * respective parent).\n * @see https://floating-ui.com/docs/FloatingTree\n */\nconst FloatingTree = _ref2 => {\n let {\n children\n } = _ref2;\n const nodesRef = React.useRef([]);\n const addNode = React.useCallback(node => {\n nodesRef.current = [...nodesRef.current, node];\n }, []);\n const removeNode = React.useCallback(node => {\n nodesRef.current = nodesRef.current.filter(n => n !== node);\n }, []);\n const events = React.useState(() => createPubSub())[0];\n return /*#__PURE__*/React.createElement(FloatingTreeContext.Provider, {\n value: React.useMemo(() => ({\n nodesRef,\n addNode,\n removeNode,\n events\n }), [nodesRef, addNode, removeNode, events])\n }, children);\n};\n\nfunction getDocument(node) {\n return (node == null ? void 0 : node.ownerDocument) || document;\n}\n\n// Avoid Chrome DevTools blue warning.\nfunction getPlatform() {\n const uaData = navigator.userAgentData;\n if (uaData != null && uaData.platform) {\n return uaData.platform;\n }\n return navigator.platform;\n}\nfunction getUserAgent() {\n const uaData = navigator.userAgentData;\n if (uaData && Array.isArray(uaData.brands)) {\n return uaData.brands.map(_ref => {\n let {\n brand,\n version\n } = _ref;\n return brand + \"/\" + version;\n }).join(' ');\n }\n return navigator.userAgent;\n}\n\nfunction getWindow(value) {\n return getDocument(value).defaultView || window;\n}\nfunction isElement(value) {\n return value ? value instanceof getWindow(value).Element : false;\n}\nfunction isHTMLElement(value) {\n return value ? value instanceof getWindow(value).HTMLElement : false;\n}\nfunction isShadowRoot(node) {\n // Browsers without `ShadowRoot` support\n if (typeof ShadowRoot === 'undefined') {\n return false;\n }\n const OwnElement = getWindow(node).ShadowRoot;\n return node instanceof OwnElement || node instanceof ShadowRoot;\n}\n\n// License: https://github.com/adobe/react-spectrum/blob/b35d5c02fe900badccd0cf1a8f23bb593419f238/packages/@react-aria/utils/src/isVirtualEvent.ts\nfunction isVirtualClick(event) {\n if (event.mozInputSource === 0 && event.isTrusted) {\n return true;\n }\n const androidRe = /Android/i;\n if ((androidRe.test(getPlatform()) || androidRe.test(getUserAgent())) && event.pointerType) {\n return event.type === 'click' && event.buttons === 1;\n }\n return event.detail === 0 && !event.pointerType;\n}\nfunction isVirtualPointerEvent(event) {\n return event.width === 0 && event.height === 0 || event.width === 1 && event.height === 1 && event.pressure === 0 && event.detail === 0 && event.pointerType !== 'mouse' ||\n // iOS VoiceOver returns 0.333• for width/height.\n event.width < 1 && event.height < 1 && event.pressure === 0 && event.detail === 0;\n}\nfunction isSafari() {\n // Chrome DevTools does not complain about navigator.vendor\n return /apple/i.test(navigator.vendor);\n}\nfunction isMac() {\n return getPlatform().toLowerCase().startsWith('mac') && !navigator.maxTouchPoints;\n}\nfunction isMouseLikePointerType(pointerType, strict) {\n // On some Linux machines with Chromium, mouse inputs return a `pointerType`\n // of \"pen\": https://github.com/floating-ui/floating-ui/issues/2015\n const values = ['mouse', 'pen'];\n if (!strict) {\n values.push('', undefined);\n }\n return values.includes(pointerType);\n}\n\nfunction useLatestRef(value) {\n const ref = useRef(value);\n index(() => {\n ref.current = value;\n });\n return ref;\n}\n\nconst safePolygonIdentifier = 'data-floating-ui-safe-polygon';\nfunction getDelay(value, prop, pointerType) {\n if (pointerType && !isMouseLikePointerType(pointerType)) {\n return 0;\n }\n if (typeof value === 'number') {\n return value;\n }\n return value == null ? void 0 : value[prop];\n}\n/**\n * Opens the floating element while hovering over the reference element, like\n * CSS `:hover`.\n * @see https://floating-ui.com/docs/useHover\n */\nconst useHover = function (context, _temp) {\n let {\n enabled = true,\n delay = 0,\n handleClose = null,\n mouseOnly = false,\n restMs = 0,\n move = true\n } = _temp === void 0 ? {} : _temp;\n const {\n open,\n onOpenChange,\n dataRef,\n events,\n elements: {\n domReference,\n floating\n },\n refs\n } = context;\n const tree = useFloatingTree();\n const parentId = useFloatingParentNodeId();\n const handleCloseRef = useLatestRef(handleClose);\n const delayRef = useLatestRef(delay);\n const pointerTypeRef = React.useRef();\n const timeoutRef = React.useRef();\n const handlerRef = React.useRef();\n const restTimeoutRef = React.useRef();\n const blockMouseMoveRef = React.useRef(true);\n const performedPointerEventsMutationRef = React.useRef(false);\n const unbindMouseMoveRef = React.useRef(() => {});\n const isHoverOpen = React.useCallback(() => {\n var _dataRef$current$open;\n const type = (_dataRef$current$open = dataRef.current.openEvent) == null ? void 0 : _dataRef$current$open.type;\n return (type == null ? void 0 : type.includes('mouse')) && type !== 'mousedown';\n }, [dataRef]);\n\n // When dismissing before opening, clear the delay timeouts to cancel it\n // from showing.\n React.useEffect(() => {\n if (!enabled) {\n return;\n }\n function onDismiss() {\n clearTimeout(timeoutRef.current);\n clearTimeout(restTimeoutRef.current);\n blockMouseMoveRef.current = true;\n }\n events.on('dismiss', onDismiss);\n return () => {\n events.off('dismiss', onDismiss);\n };\n }, [enabled, events]);\n React.useEffect(() => {\n if (!enabled || !handleCloseRef.current || !open) {\n return;\n }\n function onLeave() {\n if (isHoverOpen()) {\n onOpenChange(false);\n }\n }\n const html = getDocument(floating).documentElement;\n html.addEventListener('mouseleave', onLeave);\n return () => {\n html.removeEventListener('mouseleave', onLeave);\n };\n }, [floating, open, onOpenChange, enabled, handleCloseRef, dataRef, isHoverOpen]);\n const closeWithDelay = React.useCallback(function (runElseBranch) {\n if (runElseBranch === void 0) {\n runElseBranch = true;\n }\n const closeDelay = getDelay(delayRef.current, 'close', pointerTypeRef.current);\n if (closeDelay && !handlerRef.current) {\n clearTimeout(timeoutRef.current);\n timeoutRef.current = setTimeout(() => onOpenChange(false), closeDelay);\n } else if (runElseBranch) {\n clearTimeout(timeoutRef.current);\n onOpenChange(false);\n }\n }, [delayRef, onOpenChange]);\n const cleanupMouseMoveHandler = React.useCallback(() => {\n unbindMouseMoveRef.current();\n handlerRef.current = undefined;\n }, []);\n const clearPointerEvents = React.useCallback(() => {\n if (performedPointerEventsMutationRef.current) {\n const body = getDocument(refs.floating.current).body;\n body.style.pointerEvents = '';\n body.removeAttribute(safePolygonIdentifier);\n performedPointerEventsMutationRef.current = false;\n }\n }, [refs]);\n\n // Registering the mouse events on the reference directly to bypass React's\n // delegation system. If the cursor was on a disabled element and then entered\n // the reference (no gap), `mouseenter` doesn't fire in the delegation system.\n React.useEffect(() => {\n if (!enabled) {\n return;\n }\n function isClickLikeOpenEvent() {\n return dataRef.current.openEvent ? ['click', 'mousedown'].includes(dataRef.current.openEvent.type) : false;\n }\n function onMouseEnter(event) {\n clearTimeout(timeoutRef.current);\n blockMouseMoveRef.current = false;\n if (mouseOnly && !isMouseLikePointerType(pointerTypeRef.current) || restMs > 0 && getDelay(delayRef.current, 'open') === 0) {\n return;\n }\n dataRef.current.openEvent = event;\n const openDelay = getDelay(delayRef.current, 'open', pointerTypeRef.current);\n if (openDelay) {\n timeoutRef.current = setTimeout(() => {\n onOpenChange(true);\n }, openDelay);\n } else {\n onOpenChange(true);\n }\n }\n function onMouseLeave(event) {\n if (isClickLikeOpenEvent()) {\n return;\n }\n unbindMouseMoveRef.current();\n const doc = getDocument(floating);\n clearTimeout(restTimeoutRef.current);\n if (handleCloseRef.current) {\n // Prevent clearing `onScrollMouseLeave` timeout.\n if (!open) {\n clearTimeout(timeoutRef.current);\n }\n handlerRef.current = handleCloseRef.current({\n ...context,\n tree,\n x: event.clientX,\n y: event.clientY,\n onClose() {\n clearPointerEvents();\n cleanupMouseMoveHandler();\n closeWithDelay();\n }\n });\n const handler = handlerRef.current;\n doc.addEventListener('mousemove', handler);\n unbindMouseMoveRef.current = () => {\n doc.removeEventListener('mousemove', handler);\n };\n return;\n }\n closeWithDelay();\n }\n\n // Ensure the floating element closes after scrolling even if the pointer\n // did not move.\n // https://github.com/floating-ui/floating-ui/discussions/1692\n function onScrollMouseLeave(event) {\n if (isClickLikeOpenEvent()) {\n return;\n }\n handleCloseRef.current == null ? void 0 : handleCloseRef.current({\n ...context,\n tree,\n x: event.clientX,\n y: event.clientY,\n onClose() {\n clearPointerEvents();\n cleanupMouseMoveHandler();\n closeWithDelay();\n }\n })(event);\n }\n if (isElement(domReference)) {\n const ref = domReference;\n open && ref.addEventListener('mouseleave', onScrollMouseLeave);\n floating == null ? void 0 : floating.addEventListener('mouseleave', onScrollMouseLeave);\n move && ref.addEventListener('mousemove', onMouseEnter, {\n once: true\n });\n ref.addEventListener('mouseenter', onMouseEnter);\n ref.addEventListener('mouseleave', onMouseLeave);\n return () => {\n open && ref.removeEventListener('mouseleave', onScrollMouseLeave);\n floating == null ? void 0 : floating.removeEventListener('mouseleave', onScrollMouseLeave);\n move && ref.removeEventListener('mousemove', onMouseEnter);\n ref.removeEventListener('mouseenter', onMouseEnter);\n ref.removeEventListener('mouseleave', onMouseLeave);\n };\n }\n }, [domReference, floating, enabled, context, mouseOnly, restMs, move, closeWithDelay, cleanupMouseMoveHandler, clearPointerEvents, onOpenChange, open, tree, delayRef, handleCloseRef, dataRef]);\n\n // Block pointer-events of every element other than the reference and floating\n // while the floating element is open and has a `handleClose` handler. Also\n // handles nested floating elements.\n // https://github.com/floating-ui/floating-ui/issues/1722\n index(() => {\n var _handleCloseRef$curre;\n if (!enabled) {\n return;\n }\n if (open && (_handleCloseRef$curre = handleCloseRef.current) != null && _handleCloseRef$curre.__options.blockPointerEvents && isHoverOpen()) {\n const body = getDocument(floating).body;\n body.setAttribute(safePolygonIdentifier, '');\n body.style.pointerEvents = 'none';\n performedPointerEventsMutationRef.current = true;\n if (isElement(domReference) && floating) {\n var _tree$nodesRef$curren, _tree$nodesRef$curren2;\n const ref = domReference;\n const parentFloating = tree == null ? void 0 : (_tree$nodesRef$curren = tree.nodesRef.current.find(node => node.id === parentId)) == null ? void 0 : (_tree$nodesRef$curren2 = _tree$nodesRef$curren.context) == null ? void 0 : _tree$nodesRef$curren2.elements.floating;\n if (parentFloating) {\n parentFloating.style.pointerEvents = '';\n }\n ref.style.pointerEvents = 'auto';\n floating.style.pointerEvents = 'auto';\n return () => {\n ref.style.pointerEvents = '';\n floating.style.pointerEvents = '';\n };\n }\n }\n }, [enabled, open, parentId, floating, domReference, tree, handleCloseRef, dataRef, isHoverOpen]);\n index(() => {\n if (!open) {\n pointerTypeRef.current = undefined;\n cleanupMouseMoveHandler();\n clearPointerEvents();\n }\n }, [open, cleanupMouseMoveHandler, clearPointerEvents]);\n React.useEffect(() => {\n return () => {\n cleanupMouseMoveHandler();\n clearTimeout(timeoutRef.current);\n clearTimeout(restTimeoutRef.current);\n clearPointerEvents();\n };\n }, [enabled, cleanupMouseMoveHandler, clearPointerEvents]);\n return React.useMemo(() => {\n if (!enabled) {\n return {};\n }\n function setPointerRef(event) {\n pointerTypeRef.current = event.pointerType;\n }\n return {\n reference: {\n onPointerDown: setPointerRef,\n onPointerEnter: setPointerRef,\n onMouseMove() {\n if (open || restMs === 0) {\n return;\n }\n clearTimeout(restTimeoutRef.current);\n restTimeoutRef.current = setTimeout(() => {\n if (!blockMouseMoveRef.current) {\n onOpenChange(true);\n }\n }, restMs);\n }\n },\n floating: {\n onMouseEnter() {\n clearTimeout(timeoutRef.current);\n },\n onMouseLeave() {\n events.emit('dismiss', {\n type: 'mouseLeave',\n data: {\n returnFocus: false\n }\n });\n closeWithDelay(false);\n }\n }\n };\n }, [events, enabled, restMs, open, onOpenChange, closeWithDelay]);\n};\n\nconst FloatingDelayGroupContext = /*#__PURE__*/React.createContext({\n delay: 0,\n initialDelay: 0,\n timeoutMs: 0,\n currentId: null,\n setCurrentId: () => {},\n setState: () => {},\n isInstantPhase: false\n});\nconst useDelayGroupContext = () => React.useContext(FloatingDelayGroupContext);\n\n/**\n * Provides context for a group of floating elements that should share a\n * `delay`.\n * @see https://floating-ui.com/docs/FloatingDelayGroup\n */\nconst FloatingDelayGroup = _ref => {\n let {\n children,\n delay,\n timeoutMs = 0\n } = _ref;\n const [state, setState] = React.useReducer((prev, next) => ({\n ...prev,\n ...next\n }), {\n delay,\n timeoutMs,\n initialDelay: delay,\n currentId: null,\n isInstantPhase: false\n });\n const initialCurrentIdRef = React.useRef(null);\n const setCurrentId = React.useCallback(currentId => {\n setState({\n currentId\n });\n }, []);\n index(() => {\n if (state.currentId) {\n if (initialCurrentIdRef.current === null) {\n initialCurrentIdRef.current = state.currentId;\n } else {\n setState({\n isInstantPhase: true\n });\n }\n } else {\n setState({\n isInstantPhase: false\n });\n initialCurrentIdRef.current = null;\n }\n }, [state.currentId]);\n return /*#__PURE__*/React.createElement(FloatingDelayGroupContext.Provider, {\n value: React.useMemo(() => ({\n ...state,\n setState,\n setCurrentId\n }), [state, setState, setCurrentId])\n }, children);\n};\nconst useDelayGroup = (_ref2, _ref3) => {\n let {\n open,\n onOpenChange\n } = _ref2;\n let {\n id\n } = _ref3;\n const {\n currentId,\n setCurrentId,\n initialDelay,\n setState,\n timeoutMs\n } = useDelayGroupContext();\n React.useEffect(() => {\n if (currentId) {\n setState({\n delay: {\n open: 1,\n close: getDelay(initialDelay, 'close')\n }\n });\n if (currentId !== id) {\n onOpenChange(false);\n }\n }\n }, [id, onOpenChange, setState, currentId, initialDelay]);\n React.useEffect(() => {\n function unset() {\n onOpenChange(false);\n setState({\n delay: initialDelay,\n currentId: null\n });\n }\n if (!open && currentId === id) {\n if (timeoutMs) {\n const timeout = window.setTimeout(unset, timeoutMs);\n return () => {\n clearTimeout(timeout);\n };\n } else {\n unset();\n }\n }\n }, [open, setState, currentId, id, onOpenChange, initialDelay, timeoutMs]);\n React.useEffect(() => {\n if (open) {\n setCurrentId(id);\n }\n }, [open, setCurrentId, id]);\n};\n\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends.apply(this, arguments);\n}\n\n/**\n * Find the real active element. Traverses into shadowRoots.\n */\nfunction activeElement$1(doc) {\n let activeElement = doc.activeElement;\n while (((_activeElement = activeElement) == null ? void 0 : (_activeElement$shadow = _activeElement.shadowRoot) == null ? void 0 : _activeElement$shadow.activeElement) != null) {\n var _activeElement, _activeElement$shadow;\n activeElement = activeElement.shadowRoot.activeElement;\n }\n return activeElement;\n}\n\nfunction contains(parent, child) {\n if (!parent || !child) {\n return false;\n }\n const rootNode = child.getRootNode && child.getRootNode();\n\n // First, attempt with faster native method\n if (parent.contains(child)) {\n return true;\n }\n // then fallback to custom implementation with Shadow DOM support\n else if (rootNode && isShadowRoot(rootNode)) {\n let next = child;\n do {\n if (next && parent === next) {\n return true;\n }\n // @ts-ignore\n next = next.parentNode || next.host;\n } while (next);\n }\n\n // Give up, the result is false\n return false;\n}\n\nlet rafId = 0;\nfunction enqueueFocus(el, options) {\n if (options === void 0) {\n options = {};\n }\n const {\n preventScroll = false,\n cancelPrevious = true,\n sync = false\n } = options;\n cancelPrevious && cancelAnimationFrame(rafId);\n const exec = () => el == null ? void 0 : el.focus({\n preventScroll\n });\n if (sync) {\n exec();\n } else {\n rafId = requestAnimationFrame(exec);\n }\n}\n\nfunction getAncestors(nodes, id) {\n var _nodes$find;\n let allAncestors = [];\n let currentParentId = (_nodes$find = nodes.find(node => node.id === id)) == null ? void 0 : _nodes$find.parentId;\n while (currentParentId) {\n const currentNode = nodes.find(node => node.id === currentParentId);\n currentParentId = currentNode == null ? void 0 : currentNode.parentId;\n if (currentNode) {\n allAncestors = allAncestors.concat(currentNode);\n }\n }\n return allAncestors;\n}\n\nfunction getChildren(nodes, id) {\n let allChildren = nodes.filter(node => {\n var _node$context;\n return node.parentId === id && ((_node$context = node.context) == null ? void 0 : _node$context.open);\n }) || [];\n let currentChildren = allChildren;\n while (currentChildren.length) {\n currentChildren = nodes.filter(node => {\n var _currentChildren;\n return (_currentChildren = currentChildren) == null ? void 0 : _currentChildren.some(n => {\n var _node$context2;\n return node.parentId === n.id && ((_node$context2 = node.context) == null ? void 0 : _node$context2.open);\n });\n }) || [];\n allChildren = allChildren.concat(currentChildren);\n }\n return allChildren;\n}\n\nfunction getTarget(event) {\n if ('composedPath' in event) {\n return event.composedPath()[0];\n }\n\n // TS thinks `event` is of type never as it assumes all browsers support\n // `composedPath()`, but browsers without shadow DOM don't.\n return event.target;\n}\n\nconst TYPEABLE_SELECTOR = \"input:not([type='hidden']):not([disabled]),\" + \"[contenteditable]:not([contenteditable='false']),textarea:not([disabled])\";\nfunction isTypeableElement(element) {\n return isHTMLElement(element) && element.matches(TYPEABLE_SELECTOR);\n}\n\nfunction stopEvent(event) {\n event.preventDefault();\n event.stopPropagation();\n}\n\nconst getTabbableOptions = () => ({\n getShadowRoot: true,\n displayCheck:\n // JSDOM does not support the `tabbable` library. To solve this we can\n // check if `ResizeObserver` is a real function (not polyfilled), which\n // determines if the current environment is JSDOM-like.\n typeof ResizeObserver === 'function' && ResizeObserver.toString().includes('[native code]') ? 'full' : 'none'\n});\nfunction getTabbableIn(container, direction) {\n const allTabbable = tabbable(container, getTabbableOptions());\n if (direction === 'prev') {\n allTabbable.reverse();\n }\n const activeIndex = allTabbable.indexOf(activeElement$1(getDocument(container)));\n const nextTabbableElements = allTabbable.slice(activeIndex + 1);\n return nextTabbableElements[0];\n}\nfunction getNextTabbable() {\n return getTabbableIn(document.body, 'next');\n}\nfunction getPreviousTabbable() {\n return getTabbableIn(document.body, 'prev');\n}\nfunction isOutsideEvent(event, container) {\n const containerElement = container || event.currentTarget;\n const relatedTarget = event.relatedTarget;\n return !relatedTarget || !contains(containerElement, relatedTarget);\n}\nfunction disableFocusInside(container) {\n const tabbableElements = tabbable(container, getTabbableOptions());\n tabbableElements.forEach(element => {\n element.dataset.tabindex = element.getAttribute('tabindex') || '';\n element.setAttribute('tabindex', '-1');\n });\n}\nfunction enableFocusInside(container) {\n const elements = container.querySelectorAll('[data-tabindex]');\n elements.forEach(element => {\n const tabindex = element.dataset.tabindex;\n delete element.dataset.tabindex;\n if (tabindex) {\n element.setAttribute('tabindex', tabindex);\n } else {\n element.removeAttribute('tabindex');\n }\n });\n}\n\n// `toString()` prevents bundlers from trying to `import { useInsertionEffect } from 'react'`\nconst useInsertionEffect = React[/*#__PURE__*/'useInsertionEffect'.toString()];\nconst useSafeInsertionEffect = useInsertionEffect || (fn => fn());\nfunction useEvent(callback) {\n const ref = React.useRef(() => {\n if (process.env.NODE_ENV !== \"production\") {\n throw new Error('Cannot call an event handler while rendering.');\n }\n });\n useSafeInsertionEffect(() => {\n ref.current = callback;\n });\n return React.useCallback(function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n return ref.current == null ? void 0 : ref.current(...args);\n }, []);\n}\n\n// See Diego Haz's Sandbox for making this logic work well on Safari/iOS:\n// https://codesandbox.io/s/tabbable-portal-f4tng?file=/src/FocusTrap.tsx\n\nconst HIDDEN_STYLES = {\n border: 0,\n clip: 'rect(0 0 0 0)',\n height: '1px',\n margin: '-1px',\n overflow: 'hidden',\n padding: 0,\n position: 'fixed',\n whiteSpace: 'nowrap',\n width: '1px',\n top: 0,\n left: 0\n};\nlet activeElement;\nlet timeoutId;\nfunction setActiveElementOnTab(event) {\n if (event.key === 'Tab') {\n activeElement = event.target;\n clearTimeout(timeoutId);\n }\n}\nfunction isTabFocus(event) {\n const result = activeElement === event.relatedTarget;\n activeElement = event.relatedTarget;\n clearTimeout(timeoutId);\n return result;\n}\nconst FocusGuard = /*#__PURE__*/React.forwardRef(function FocusGuard(props, ref) {\n const onFocus = useEvent(props.onFocus);\n const [role, setRole] = React.useState();\n index(() => {\n if (isSafari()) {\n // Unlike other screen readers such as NVDA and JAWS, the virtual cursor\n // on VoiceOver does trigger the onFocus event, so we can use the focus\n // trap element. On Safari, only buttons trigger the onFocus event.\n // NB: \"group\" role in the Sandbox no longer appears to work, must be a\n // button role.\n setRole('button');\n }\n document.addEventListener('keydown', setActiveElementOnTab);\n return () => {\n document.removeEventListener('keydown', setActiveElementOnTab);\n };\n }, []);\n return /*#__PURE__*/React.createElement(\"span\", _extends({}, props, {\n ref: ref,\n tabIndex: 0\n // Role is only for VoiceOver\n ,\n role: role,\n \"aria-hidden\": role ? undefined : true,\n \"data-floating-ui-focus-guard\": \"\",\n style: HIDDEN_STYLES,\n onFocus: event => {\n if (isSafari() && isMac() && !isTabFocus(event)) {\n // On macOS we need to wait a little bit before moving\n // focus again.\n event.persist();\n timeoutId = window.setTimeout(() => {\n onFocus(event);\n }, 50);\n } else {\n onFocus(event);\n }\n }\n }));\n});\n\nconst PortalContext = /*#__PURE__*/React.createContext(null);\nconst useFloatingPortalNode = function (_temp) {\n let {\n id,\n enabled = true\n } = _temp === void 0 ? {} : _temp;\n const [portalEl, setPortalEl] = React.useState(null);\n const uniqueId = useId();\n const portalContext = usePortalContext();\n index(() => {\n if (!enabled) {\n return;\n }\n const rootNode = id ? document.getElementById(id) : null;\n if (rootNode) {\n rootNode.setAttribute('data-floating-ui-portal', '');\n setPortalEl(rootNode);\n } else {\n const newPortalEl = document.createElement('div');\n if (id !== '') {\n newPortalEl.id = id || uniqueId;\n }\n newPortalEl.setAttribute('data-floating-ui-portal', '');\n setPortalEl(newPortalEl);\n const container = (portalContext == null ? void 0 : portalContext.portalNode) || document.body;\n container.appendChild(newPortalEl);\n return () => {\n container.removeChild(newPortalEl);\n };\n }\n }, [id, portalContext, uniqueId, enabled]);\n return portalEl;\n};\n\n/**\n * Portals the floating element into a given container element — by default,\n * outside of the app root and into the body.\n * @see https://floating-ui.com/docs/FloatingPortal\n */\nconst FloatingPortal = _ref => {\n let {\n children,\n id,\n root = null,\n preserveTabOrder = true\n } = _ref;\n const portalNode = useFloatingPortalNode({\n id,\n enabled: !root\n });\n const [focusManagerState, setFocusManagerState] = React.useState(null);\n const beforeOutsideRef = React.useRef(null);\n const afterOutsideRef = React.useRef(null);\n const beforeInsideRef = React.useRef(null);\n const afterInsideRef = React.useRef(null);\n const shouldRenderGuards =\n // The FocusManager and therefore floating element are currently open/\n // rendered.\n !!focusManagerState &&\n // Guards are only for non-modal focus management.\n !focusManagerState.modal && !!(root || portalNode) && preserveTabOrder;\n\n // https://codesandbox.io/s/tabbable-portal-f4tng?file=/src/TabbablePortal.tsx\n React.useEffect(() => {\n if (!portalNode || !preserveTabOrder || focusManagerState != null && focusManagerState.modal) {\n return;\n }\n\n // Make sure elements inside the portal element are tabbable only when the\n // portal has already been focused, either by tabbing into a focus trap\n // element outside or using the mouse.\n function onFocus(event) {\n if (portalNode && isOutsideEvent(event)) {\n const focusing = event.type === 'focusin';\n const manageFocus = focusing ? enableFocusInside : disableFocusInside;\n manageFocus(portalNode);\n }\n }\n // Listen to the event on the capture phase so they run before the focus\n // trap elements onFocus prop is called.\n portalNode.addEventListener('focusin', onFocus, true);\n portalNode.addEventListener('focusout', onFocus, true);\n return () => {\n portalNode.removeEventListener('focusin', onFocus, true);\n portalNode.removeEventListener('focusout', onFocus, true);\n };\n }, [portalNode, preserveTabOrder, focusManagerState == null ? void 0 : focusManagerState.modal]);\n return /*#__PURE__*/React.createElement(PortalContext.Provider, {\n value: React.useMemo(() => ({\n preserveTabOrder,\n beforeOutsideRef,\n afterOutsideRef,\n beforeInsideRef,\n afterInsideRef,\n portalNode,\n setFocusManagerState\n }), [preserveTabOrder, portalNode])\n }, shouldRenderGuards && portalNode && /*#__PURE__*/React.createElement(FocusGuard, {\n \"data-type\": \"outside\",\n ref: beforeOutsideRef,\n onFocus: event => {\n if (isOutsideEvent(event, portalNode)) {\n var _beforeInsideRef$curr;\n (_beforeInsideRef$curr = beforeInsideRef.current) == null ? void 0 : _beforeInsideRef$curr.focus();\n } else {\n const prevTabbable = getPreviousTabbable() || (focusManagerState == null ? void 0 : focusManagerState.refs.domReference.current);\n prevTabbable == null ? void 0 : prevTabbable.focus();\n }\n }\n }), shouldRenderGuards && portalNode && /*#__PURE__*/React.createElement(\"span\", {\n \"aria-owns\": portalNode.id,\n style: HIDDEN_STYLES\n }), root ? /*#__PURE__*/createPortal(children, root) : portalNode ? /*#__PURE__*/createPortal(children, portalNode) : null, shouldRenderGuards && portalNode && /*#__PURE__*/React.createElement(FocusGuard, {\n \"data-type\": \"outside\",\n ref: afterOutsideRef,\n onFocus: event => {\n if (isOutsideEvent(event, portalNode)) {\n var _afterInsideRef$curre;\n (_afterInsideRef$curre = afterInsideRef.current) == null ? void 0 : _afterInsideRef$curre.focus();\n } else {\n const nextTabbable = getNextTabbable() || (focusManagerState == null ? void 0 : focusManagerState.refs.domReference.current);\n nextTabbable == null ? void 0 : nextTabbable.focus();\n (focusManagerState == null ? void 0 : focusManagerState.closeOnFocusOut) && (focusManagerState == null ? void 0 : focusManagerState.onOpenChange(false));\n }\n }\n }));\n};\nconst usePortalContext = () => React.useContext(PortalContext);\n\nconst VisuallyHiddenDismiss = /*#__PURE__*/React.forwardRef(function VisuallyHiddenDismiss(props, ref) {\n return /*#__PURE__*/React.createElement(\"button\", _extends({}, props, {\n type: \"button\",\n ref: ref,\n tabIndex: -1,\n style: HIDDEN_STYLES\n }));\n});\n/**\n * Provides focus management for the floating element.\n * @see https://floating-ui.com/docs/FloatingFocusManager\n */\nfunction FloatingFocusManager(_ref) {\n let {\n context,\n children,\n order = ['content'],\n guards = true,\n initialFocus = 0,\n returnFocus = true,\n modal = true,\n visuallyHiddenDismiss = false,\n closeOnFocusOut = true\n } = _ref;\n const {\n refs,\n nodeId,\n onOpenChange,\n events,\n dataRef,\n elements: {\n domReference,\n floating\n }\n } = context;\n const orderRef = useLatestRef(order);\n const tree = useFloatingTree();\n const portalContext = usePortalContext();\n const [tabbableContentLength, setTabbableContentLength] = React.useState(null);\n\n // Controlled by `useListNavigation`.\n const ignoreInitialFocus = typeof initialFocus === 'number' && initialFocus < 0;\n const startDismissButtonRef = React.useRef(null);\n const endDismissButtonRef = React.useRef(null);\n const preventReturnFocusRef = React.useRef(false);\n const previouslyFocusedElementRef = React.useRef(null);\n const isPointerDownRef = React.useRef(false);\n const isInsidePortal = portalContext != null;\n\n // If the reference is a combobox and is typeable (e.g. input/textarea),\n // there are different focus semantics. The guards should not be rendered, but\n // aria-hidden should be applied to all nodes still. Further, the visually\n // hidden dismiss button should only appear at the end of the list, not the\n // start.\n const isTypeableCombobox = domReference && domReference.getAttribute('role') === 'combobox' && isTypeableElement(domReference);\n const getTabbableContent = React.useCallback(function (container) {\n if (container === void 0) {\n container = floating;\n }\n return container ? tabbable(container, getTabbableOptions()) : [];\n }, [floating]);\n const getTabbableElements = React.useCallback(container => {\n const content = getTabbableContent(container);\n return orderRef.current.map(type => {\n if (domReference && type === 'reference') {\n return domReference;\n }\n if (floating && type === 'floating') {\n return floating;\n }\n return content;\n }).filter(Boolean).flat();\n }, [domReference, floating, orderRef, getTabbableContent]);\n React.useEffect(() => {\n if (!modal) {\n return;\n }\n function onKeyDown(event) {\n if (event.key === 'Tab') {\n // The focus guards have nothing to focus, so we need to stop the event.\n if (getTabbableContent().length === 0 && !isTypeableCombobox) {\n stopEvent(event);\n }\n const els = getTabbableElements();\n const target = getTarget(event);\n if (orderRef.current[0] === 'reference' && target === domReference) {\n stopEvent(event);\n if (event.shiftKey) {\n enqueueFocus(els[els.length - 1]);\n } else {\n enqueueFocus(els[1]);\n }\n }\n if (orderRef.current[1] === 'floating' && target === floating && event.shiftKey) {\n stopEvent(event);\n enqueueFocus(els[0]);\n }\n }\n }\n const doc = getDocument(floating);\n doc.addEventListener('keydown', onKeyDown);\n return () => {\n doc.removeEventListener('keydown', onKeyDown);\n };\n }, [domReference, floating, modal, orderRef, refs, isTypeableCombobox, getTabbableContent, getTabbableElements]);\n React.useEffect(() => {\n if (!closeOnFocusOut) {\n return;\n }\n\n // In Safari, buttons lose focus when pressing them.\n function handlePointerDown() {\n isPointerDownRef.current = true;\n setTimeout(() => {\n isPointerDownRef.current = false;\n });\n }\n function handleFocusOutside(event) {\n const relatedTarget = event.relatedTarget;\n const movedToUnrelatedNode = !(contains(domReference, relatedTarget) || contains(floating, relatedTarget) || contains(relatedTarget, floating) || contains(portalContext == null ? void 0 : portalContext.portalNode, relatedTarget) || relatedTarget != null && relatedTarget.hasAttribute('data-floating-ui-focus-guard') || tree && (getChildren(tree.nodesRef.current, nodeId).find(node => {\n var _node$context, _node$context2;\n return contains((_node$context = node.context) == null ? void 0 : _node$context.elements.floating, relatedTarget) || contains((_node$context2 = node.context) == null ? void 0 : _node$context2.elements.domReference, relatedTarget);\n }) || getAncestors(tree.nodesRef.current, nodeId).find(node => {\n var _node$context3, _node$context4;\n return ((_node$context3 = node.context) == null ? void 0 : _node$context3.elements.floating) === relatedTarget || ((_node$context4 = node.context) == null ? void 0 : _node$context4.elements.domReference) === relatedTarget;\n })));\n\n // Focus did not move inside the floating tree, and there are no tabbable\n // portal guards to handle closing.\n if (relatedTarget && movedToUnrelatedNode && !isPointerDownRef.current &&\n // Fix React 18 Strict Mode returnFocus due to double rendering.\n relatedTarget !== previouslyFocusedElementRef.current) {\n preventReturnFocusRef.current = true;\n // On iOS VoiceOver, dismissing the nested submenu will cause the\n // first item of the list to receive focus. Delaying it appears to fix\n // the issue.\n setTimeout(() => onOpenChange(false));\n }\n }\n if (floating && isHTMLElement(domReference)) {\n domReference.addEventListener('focusout', handleFocusOutside);\n domReference.addEventListener('pointerdown', handlePointerDown);\n !modal && floating.addEventListener('focusout', handleFocusOutside);\n return () => {\n domReference.removeEventListener('focusout', handleFocusOutside);\n domReference.removeEventListener('pointerdown', handlePointerDown);\n !modal && floating.removeEventListener('focusout', handleFocusOutside);\n };\n }\n }, [domReference, floating, modal, nodeId, tree, portalContext, onOpenChange, closeOnFocusOut]);\n React.useEffect(() => {\n var _portalContext$portal;\n // Don't hide portals nested within the parent portal.\n const portalNodes = Array.from((portalContext == null ? void 0 : (_portalContext$portal = portalContext.portalNode) == null ? void 0 : _portalContext$portal.querySelectorAll('[data-floating-ui-portal]')) || []);\n function getDismissButtons() {\n return [startDismissButtonRef.current, endDismissButtonRef.current].filter(Boolean);\n }\n if (floating && modal) {\n const insideNodes = [floating, ...portalNodes, ...getDismissButtons()];\n const cleanup = hideOthers(orderRef.current.includes('reference') || isTypeableCombobox ? insideNodes.concat(domReference || []) : insideNodes);\n return () => {\n cleanup();\n };\n }\n }, [domReference, floating, modal, orderRef, portalContext, isTypeableCombobox]);\n React.useEffect(() => {\n if (modal && !guards && floating) {\n const tabIndexValues = [];\n const options = getTabbableOptions();\n const allTabbable = tabbable(getDocument(floating).body, options);\n const floatingTabbable = getTabbableElements();\n\n // Exclude all tabbable elements that are part of the order\n const elements = allTabbable.filter(el => !floatingTabbable.includes(el));\n elements.forEach((el, i) => {\n tabIndexValues[i] = el.getAttribute('tabindex');\n el.setAttribute('tabindex', '-1');\n });\n return () => {\n elements.forEach((el, i) => {\n const value = tabIndexValues[i];\n if (value == null) {\n el.removeAttribute('tabindex');\n } else {\n el.setAttribute('tabindex', value);\n }\n });\n };\n }\n }, [floating, modal, guards, getTabbableElements]);\n index(() => {\n if (!floating) return;\n const doc = getDocument(floating);\n let returnFocusValue = returnFocus;\n let preventReturnFocusScroll = false;\n const previouslyFocusedElement = activeElement$1(doc);\n const contextData = dataRef.current;\n previouslyFocusedElementRef.current = previouslyFocusedElement;\n const focusableElements = getTabbableElements(floating);\n const elToFocus = (typeof initialFocus === 'number' ? focusableElements[initialFocus] : initialFocus.current) || floating;\n\n // If the `useListNavigation` hook is active, always ignore `initialFocus`\n // because it has its own handling of the initial focus.\n !ignoreInitialFocus && enqueueFocus(elToFocus, {\n preventScroll: elToFocus === floating\n });\n\n // Dismissing via outside press should always ignore `returnFocus` to\n // prevent unwanted scrolling.\n function onDismiss(payload) {\n if (payload.type === 'escapeKey' && refs.domReference.current) {\n previouslyFocusedElementRef.current = refs.domReference.current;\n }\n if (['referencePress', 'escapeKey'].includes(payload.type)) {\n return;\n }\n const returnFocus = payload.data.returnFocus;\n if (typeof returnFocus === 'object') {\n returnFocusValue = true;\n preventReturnFocusScroll = returnFocus.preventScroll;\n } else {\n returnFocusValue = returnFocus;\n }\n }\n events.on('dismiss', onDismiss);\n return () => {\n events.off('dismiss', onDismiss);\n if (contains(floating, activeElement$1(doc)) && refs.domReference.current) {\n previouslyFocusedElementRef.current = refs.domReference.current;\n }\n if (returnFocusValue && isHTMLElement(previouslyFocusedElementRef.current) && !preventReturnFocusRef.current) {\n // `isPointerDownRef.current` to avoid the focus ring from appearing on\n // the reference element when click-toggling it.\n if (!refs.domReference.current || isPointerDownRef.current) {\n enqueueFocus(previouslyFocusedElementRef.current, {\n // When dismissing nested floating elements, by the time the rAF has\n // executed, the menus will all have been unmounted. When they try\n // to get focused, the calls get ignored — leaving the root\n // reference focused as desired.\n cancelPrevious: false,\n preventScroll: preventReturnFocusScroll\n });\n } else {\n var _previouslyFocusedEle;\n // If the user has specified a `keydown` listener that calls\n // setOpen(false) (e.g. selecting an item and closing the floating\n // element), then sync return focus causes `useClick` to immediately\n // re-open it, unless they call `event.preventDefault()` in the\n // `keydown` listener. This helps keep backwards compatibility with\n // older examples.\n contextData.__syncReturnFocus = true;\n\n // In Safari, `useListNavigation` moves focus sync, so making this\n // sync ensures the initial item remains focused despite this being\n // invoked in Strict Mode due to double-invoked useEffects. This also\n // has the positive side effect of closing a modally focus-managed\n // <Menu> on `Tab` keydown to move naturally to the next focusable\n // element.\n (_previouslyFocusedEle = previouslyFocusedElementRef.current) == null ? void 0 : _previouslyFocusedEle.focus({\n preventScroll: preventReturnFocusScroll\n });\n setTimeout(() => {\n // This isn't an actual property the user should access, make sure\n // it doesn't persist.\n delete contextData.__syncReturnFocus;\n });\n }\n }\n };\n }, [floating, getTabbableElements, initialFocus, returnFocus, dataRef, refs, events, ignoreInitialFocus]);\n\n // Synchronize the `context` & `modal` value to the FloatingPortal context.\n // It will decide whether or not it needs to render its own guards.\n index(() => {\n if (!portalContext) return;\n portalContext.setFocusManagerState({\n ...context,\n modal,\n closeOnFocusOut\n // Not concerned about the <RT> generic type.\n });\n\n return () => {\n portalContext.setFocusManagerState(null);\n };\n }, [portalContext, modal, closeOnFocusOut, context]);\n index(() => {\n if (ignoreInitialFocus || !floating) return;\n function setState() {\n setTabbableContentLength(getTabbableContent().length);\n }\n setState();\n if (typeof MutationObserver === 'function') {\n const observer = new MutationObserver(setState);\n observer.observe(floating, {\n childList: true,\n subtree: true\n });\n return () => {\n observer.disconnect();\n };\n }\n }, [floating, getTabbableContent, ignoreInitialFocus, refs]);\n const shouldRenderGuards = guards && (isInsidePortal || modal) && !isTypeableCombobox;\n function renderDismissButton(location) {\n return visuallyHiddenDismiss && modal ? /*#__PURE__*/React.createElement(VisuallyHiddenDismiss, {\n ref: location === 'start' ? startDismissButtonRef : endDismissButtonRef,\n onClick: () => onOpenChange(false)\n }, typeof visuallyHiddenDismiss === 'string' ? visuallyHiddenDismiss : 'Dismiss') : null;\n }\n return /*#__PURE__*/React.createElement(React.Fragment, null, shouldRenderGuards && /*#__PURE__*/React.createElement(FocusGuard, {\n \"data-type\": \"inside\",\n ref: portalContext == null ? void 0 : portalContext.beforeInsideRef,\n onFocus: event => {\n if (modal) {\n const els = getTabbableElements();\n enqueueFocus(order[0] === 'reference' ? els[0] : els[els.length - 1]);\n } else if (portalContext != null && portalContext.preserveTabOrder && portalContext.portalNode) {\n preventReturnFocusRef.current = false;\n if (isOutsideEvent(event, portalContext.portalNode)) {\n const nextTabbable = getNextTabbable() || domReference;\n nextTabbable == null ? void 0 : nextTabbable.focus();\n } else {\n var _portalContext$before;\n (_portalContext$before = portalContext.beforeOutsideRef.current) == null ? void 0 : _portalContext$before.focus();\n }\n }\n }\n }), isTypeableCombobox ? null : renderDismissButton('start'), /*#__PURE__*/React.cloneElement(children, tabbableContentLength === 0 || order.includes('floating') ? {\n tabIndex: 0\n } : {}), renderDismissButton('end'), shouldRenderGuards && /*#__PURE__*/React.createElement(FocusGuard, {\n \"data-type\": \"inside\",\n ref: portalContext == null ? void 0 : portalContext.afterInsideRef,\n onFocus: event => {\n if (modal) {\n enqueueFocus(getTabbableElements()[0]);\n } else if (portalContext != null && portalContext.preserveTabOrder && portalContext.portalNode) {\n preventReturnFocusRef.current = true;\n if (isOutsideEvent(event, portalContext.portalNode)) {\n const prevTabbable = getPreviousTabbable() || domReference;\n prevTabbable == null ? void 0 : prevTabbable.focus();\n } else {\n var _portalContext$afterO;\n (_portalContext$afterO = portalContext.afterOutsideRef.current) == null ? void 0 : _portalContext$afterO.focus();\n }\n }\n }\n }));\n}\n\nconst identifier = 'data-floating-ui-scroll-lock';\n\n/**\n * Provides base styling for a fixed overlay element to dim content or block\n * pointer events behind a floating element.\n * It's a regular `<div>`, so it can be styled via any CSS solution you prefer.\n * @see https://floating-ui.com/docs/FloatingOverlay\n */\nconst FloatingOverlay = /*#__PURE__*/React.forwardRef(function FloatingOverlay(_ref, ref) {\n let {\n lockScroll = false,\n ...rest\n } = _ref;\n index(() => {\n var _window$visualViewpor, _window$visualViewpor2;\n if (!lockScroll) {\n return;\n }\n const alreadyLocked = document.body.hasAttribute(identifier);\n if (alreadyLocked) {\n return;\n }\n document.body.setAttribute(identifier, '');\n\n // RTL <body> scrollbar\n const scrollbarX = Math.round(document.documentElement.getBoundingClientRect().left) + document.documentElement.scrollLeft;\n const paddingProp = scrollbarX ? 'paddingLeft' : 'paddingRight';\n const scrollbarWidth = window.innerWidth - document.documentElement.clientWidth;\n\n // Only iOS doesn't respect `overflow: hidden` on document.body, and this\n // technique has fewer side effects.\n if (!/iP(hone|ad|od)|iOS/.test(getPlatform())) {\n Object.assign(document.body.style, {\n overflow: 'hidden',\n [paddingProp]: scrollbarWidth + \"px\"\n });\n return () => {\n document.body.removeAttribute(identifier);\n Object.assign(document.body.style, {\n overflow: '',\n [paddingProp]: ''\n });\n };\n }\n\n // iOS 12 does not support `visualViewport`.\n const offsetLeft = ((_window$visualViewpor = window.visualViewport) == null ? void 0 : _window$visualViewpor.offsetLeft) || 0;\n const offsetTop = ((_window$visualViewpor2 = window.visualViewport) == null ? void 0 : _window$visualViewpor2.offsetTop) || 0;\n const scrollX = window.pageXOffset;\n const scrollY = window.pageYOffset;\n Object.assign(document.body.style, {\n position: 'fixed',\n overflow: 'hidden',\n top: -(scrollY - Math.floor(offsetTop)) + \"px\",\n left: -(scrollX - Math.floor(offsetLeft)) + \"px\",\n right: '0',\n [paddingProp]: scrollbarWidth + \"px\"\n });\n return () => {\n Object.assign(document.body.style, {\n position: '',\n overflow: '',\n top: '',\n left: '',\n right: '',\n [paddingProp]: ''\n });\n document.body.removeAttribute(identifier);\n window.scrollTo(scrollX, scrollY);\n };\n }, [lockScroll]);\n return /*#__PURE__*/React.createElement(\"div\", _extends({\n ref: ref\n }, rest, {\n style: {\n position: 'fixed',\n overflow: 'auto',\n top: 0,\n right: 0,\n bottom: 0,\n left: 0,\n ...rest.style\n }\n }));\n});\n\nfunction isButtonTarget(event) {\n return isHTMLElement(event.target) && event.target.tagName === 'BUTTON';\n}\nfunction isSpaceIgnored(element) {\n return isTypeableElement(element);\n}\n/**\n * Opens or closes the floating element when clicking the reference element.\n * @see https://floating-ui.com/docs/useClick\n */\nconst useClick = function (_ref, _temp) {\n let {\n open,\n onOpenChange,\n dataRef,\n elements: {\n domReference\n }\n } = _ref;\n let {\n enabled = true,\n event: eventOption = 'click',\n toggle = true,\n ignoreMouse = false,\n keyboardHandlers = true\n } = _temp === void 0 ? {} : _temp;\n const pointerTypeRef = React.useRef();\n return React.useMemo(() => {\n if (!enabled) {\n return {};\n }\n return {\n reference: {\n onPointerDown(event) {\n pointerTypeRef.current = event.pointerType;\n },\n onMouseDown(event) {\n // Ignore all buttons except for the \"main\" button.\n // https://developer.mozilla.org/en-US/docs/Web/API/MouseEvent/button\n if (event.button !== 0) {\n return;\n }\n if (isMouseLikePointerType(pointerTypeRef.current, true) && ignoreMouse) {\n return;\n }\n if (eventOption === 'click') {\n return;\n }\n if (open) {\n if (toggle && (dataRef.current.openEvent ? dataRef.current.openEvent.type === 'mousedown' : true)) {\n onOpenChange(false);\n }\n } else {\n // Prevent stealing focus from the floating element\n event.preventDefault();\n onOpenChange(true);\n }\n dataRef.current.openEvent = event.nativeEvent;\n },\n onClick(event) {\n if (dataRef.current.__syncReturnFocus) {\n return;\n }\n if (eventOption === 'mousedown' && pointerTypeRef.current) {\n pointerTypeRef.current = undefined;\n return;\n }\n if (isMouseLikePointerType(pointerTypeRef.current, true) && ignoreMouse) {\n return;\n }\n if (open) {\n if (toggle && (dataRef.current.openEvent ? dataRef.current.openEvent.type === 'click' : true)) {\n onOpenChange(false);\n }\n } else {\n onOpenChange(true);\n }\n dataRef.current.openEvent = event.nativeEvent;\n },\n onKeyDown(event) {\n pointerTypeRef.current = undefined;\n if (!keyboardHandlers) {\n return;\n }\n if (isButtonTarget(event)) {\n return;\n }\n if (event.key === ' ' && !isSpaceIgnored(domReference)) {\n // Prevent scrolling\n event.preventDefault();\n }\n if (event.key === 'Enter') {\n if (open) {\n if (toggle) {\n onOpenChange(false);\n }\n } else {\n onOpenChange(true);\n }\n }\n },\n onKeyUp(event) {\n if (!keyboardHandlers) {\n return;\n }\n if (isButtonTarget(event) || isSpaceIgnored(domReference)) {\n return;\n }\n if (event.key === ' ') {\n if (open) {\n if (toggle) {\n onOpenChange(false);\n }\n } else {\n onOpenChange(true);\n }\n }\n }\n }\n };\n }, [enabled, dataRef, eventOption, ignoreMouse, keyboardHandlers, domReference, toggle, open, onOpenChange]);\n};\n\n/**\n * Check whether the event.target is within the provided node. Uses event.composedPath if available for custom element support.\n *\n * @param event The event whose target/composedPath to check\n * @param node The node to check against\n * @returns Whether the event.target/composedPath is within the node.\n */\nfunction isEventTargetWithin(event, node) {\n if (node == null) {\n return false;\n }\n if ('composedPath' in event) {\n return event.composedPath().includes(node);\n }\n\n // TS thinks `event` is of type never as it assumes all browsers support composedPath, but browsers without shadow dom don't\n const e = event;\n return e.target != null && node.contains(e.target);\n}\n\nconst bubbleHandlerKeys = {\n pointerdown: 'onPointerDown',\n mousedown: 'onMouseDown',\n click: 'onClick'\n};\nconst captureHandlerKeys = {\n pointerdown: 'onPointerDownCapture',\n mousedown: 'onMouseDownCapture',\n click: 'onClickCapture'\n};\nconst normalizeBubblesProp = function (bubbles) {\n var _bubbles$escapeKey, _bubbles$outsidePress;\n if (bubbles === void 0) {\n bubbles = true;\n }\n return {\n escapeKeyBubbles: typeof bubbles === 'boolean' ? bubbles : (_bubbles$escapeKey = bubbles.escapeKey) != null ? _bubbles$escapeKey : true,\n outsidePressBubbles: typeof bubbles === 'boolean' ? bubbles : (_bubbles$outsidePress = bubbles.outsidePress) != null ? _bubbles$outsidePress : true\n };\n};\n/**\n * Closes the floating element when a dismissal is requested — by default, when\n * the user presses the `escape` key or outside of the floating element.\n * @see https://floating-ui.com/docs/useDismiss\n */\nconst useDismiss = function (_ref, _temp) {\n let {\n open,\n onOpenChange,\n events,\n nodeId,\n elements: {\n reference,\n domReference,\n floating\n },\n dataRef\n } = _ref;\n let {\n enabled = true,\n escapeKey = true,\n outsidePress: unstable_outsidePress = true,\n outsidePressEvent = 'pointerdown',\n referencePress = false,\n referencePressEvent = 'pointerdown',\n ancestorScroll = false,\n bubbles = true\n } = _temp === void 0 ? {} : _temp;\n const tree = useFloatingTree();\n const nested = useFloatingParentNodeId() != null;\n const outsidePressFn = useEvent(typeof unstable_outsidePress === 'function' ? unstable_outsidePress : () => false);\n const outsidePress = typeof unstable_outsidePress === 'function' ? outsidePressFn : unstable_outsidePress;\n const insideReactTreeRef = React.useRef(false);\n const {\n escapeKeyBubbles,\n outsidePressBubbles\n } = normalizeBubblesProp(bubbles);\n React.useEffect(() => {\n if (!open || !enabled) {\n return;\n }\n dataRef.current.__escapeKeyBubbles = escapeKeyBubbles;\n dataRef.current.__outsidePressBubbles = outsidePressBubbles;\n function onKeyDown(event) {\n if (event.key === 'Escape') {\n const children = tree ? getChildren(tree.nodesRef.current, nodeId) : [];\n if (children.length > 0) {\n let shouldDismiss = true;\n children.forEach(child => {\n var _child$context;\n if ((_child$context = child.context) != null && _child$context.open && !child.context.dataRef.current.__escapeKeyBubbles) {\n shouldDismiss = false;\n return;\n }\n });\n if (!shouldDismiss) {\n return;\n }\n }\n events.emit('dismiss', {\n type: 'escapeKey',\n data: {\n returnFocus: {\n preventScroll: false\n }\n }\n });\n onOpenChange(false);\n }\n }\n function onOutsidePress(event) {\n // Given developers can stop the propagation of the synthetic event,\n // we can only be confident with a positive value.\n const insideReactTree = insideReactTreeRef.current;\n insideReactTreeRef.current = false;\n if (insideReactTree) {\n return;\n }\n if (typeof outsidePress === 'function' && !outsidePress(event)) {\n return;\n }\n const target = getTarget(event);\n\n // Check if the click occurred on the scrollbar\n if (isHTMLElement(target) && floating) {\n const win = floating.ownerDocument.defaultView || window;\n const canScrollX = target.scrollWidth > target.clientWidth;\n const canScrollY = target.scrollHeight > target.clientHeight;\n let xCond = canScrollY && event.offsetX > target.clientWidth;\n\n // In some browsers it is possible to change the <body> (or window)\n // scrollbar to the left side, but is very rare and is difficult to\n // check for. Plus, for modal dialogs with backdrops, it is more\n // important that the backdrop is checked but not so much the window.\n if (canScrollY) {\n const isRTL = win.getComputedStyle(target).direction === 'rtl';\n if (isRTL) {\n xCond = event.offsetX <= target.offsetWidth - target.clientWidth;\n }\n }\n if (xCond || canScrollX && event.offsetY > target.clientHeight) {\n return;\n }\n }\n const targetIsInsideChildren = tree && getChildren(tree.nodesRef.current, nodeId).some(node => {\n var _node$context;\n return isEventTargetWithin(event, (_node$context = node.context) == null ? void 0 : _node$context.elements.floating);\n });\n if (isEventTargetWithin(event, floating) || isEventTargetWithin(event, domReference) || targetIsInsideChildren) {\n return;\n }\n const children = tree ? getChildren(tree.nodesRef.current, nodeId) : [];\n if (children.length > 0) {\n let shouldDismiss = true;\n children.forEach(child => {\n var _child$context2;\n if ((_child$context2 = child.context) != null && _child$context2.open && !child.context.dataRef.current.__outsidePressBubbles) {\n shouldDismiss = false;\n return;\n }\n });\n if (!shouldDismiss) {\n return;\n }\n }\n events.emit('dismiss', {\n type: 'outsidePress',\n data: {\n returnFocus: nested ? {\n preventScroll: true\n } : isVirtualClick(event) || isVirtualPointerEvent(event)\n }\n });\n onOpenChange(false);\n }\n function onScroll() {\n onOpenChange(false);\n }\n const doc = getDocument(floating);\n escapeKey && doc.addEventListener('keydown', onKeyDown);\n outsidePress && doc.addEventListener(outsidePressEvent, onOutsidePress);\n let ancestors = [];\n if (ancestorScroll) {\n if (isElement(domReference)) {\n ancestors = getOverflowAncestors(domReference);\n }\n if (isElement(floating)) {\n ancestors = ancestors.concat(getOverflowAncestors(floating));\n }\n if (!isElement(reference) && reference && reference.contextElement) {\n ancestors = ancestors.concat(getOverflowAncestors(reference.contextElement));\n }\n }\n\n // Ignore the visual viewport for scrolling dismissal (allow pinch-zoom)\n ancestors = ancestors.filter(ancestor => {\n var _doc$defaultView;\n return ancestor !== ((_doc$defaultView = doc.defaultView) == null ? void 0 : _doc$defaultView.visualViewport);\n });\n ancestors.forEach(ancestor => {\n ancestor.addEventListener('scroll', onScroll, {\n passive: true\n });\n });\n return () => {\n escapeKey && doc.removeEventListener('keydown', onKeyDown);\n outsidePress && doc.removeEventListener(outsidePressEvent, onOutsidePress);\n ancestors.forEach(ancestor => {\n ancestor.removeEventListener('scroll', onScroll);\n });\n };\n }, [dataRef, floating, domReference, reference, escapeKey, outsidePress, outsidePressEvent, events, tree, nodeId, open, onOpenChange, ancestorScroll, enabled, escapeKeyBubbles, outsidePressBubbles, nested]);\n React.useEffect(() => {\n insideReactTreeRef.current = false;\n }, [outsidePress, outsidePressEvent]);\n return React.useMemo(() => {\n if (!enabled) {\n return {};\n }\n return {\n reference: {\n [bubbleHandlerKeys[referencePressEvent]]: () => {\n if (referencePress) {\n events.emit('dismiss', {\n type: 'referencePress',\n data: {\n returnFocus: false\n }\n });\n onOpenChange(false);\n }\n }\n },\n floating: {\n [captureHandlerKeys[outsidePressEvent]]: () => {\n insideReactTreeRef.current = true;\n }\n }\n };\n }, [enabled, events, referencePress, outsidePressEvent, referencePressEvent, onOpenChange]);\n};\n\n/**\n * Opens the floating element while the reference element has focus, like CSS\n * `:focus`.\n * @see https://floating-ui.com/docs/useFocus\n */\nconst useFocus = function (_ref, _temp) {\n let {\n open,\n onOpenChange,\n dataRef,\n events,\n refs,\n elements: {\n floating,\n domReference\n }\n } = _ref;\n let {\n enabled = true,\n keyboardOnly = true\n } = _temp === void 0 ? {} : _temp;\n const pointerTypeRef = React.useRef('');\n const blockFocusRef = React.useRef(false);\n const timeoutRef = React.useRef();\n React.useEffect(() => {\n if (!enabled) {\n return;\n }\n const doc = getDocument(floating);\n const win = doc.defaultView || window;\n\n // If the reference was focused and the user left the tab/window, and the\n // floating element was not open, the focus should be blocked when they\n // return to the tab/window.\n function onBlur() {\n if (!open && isHTMLElement(domReference) && domReference === activeElement$1(getDocument(domReference))) {\n blockFocusRef.current = true;\n }\n }\n win.addEventListener('blur', onBlur);\n return () => {\n win.removeEventListener('blur', onBlur);\n };\n }, [floating, domReference, open, enabled]);\n React.useEffect(() => {\n if (!enabled) {\n return;\n }\n function onDismiss(payload) {\n if (payload.type === 'referencePress' || payload.type === 'escapeKey') {\n blockFocusRef.current = true;\n }\n }\n events.on('dismiss', onDismiss);\n return () => {\n events.off('dismiss', onDismiss);\n };\n }, [events, enabled]);\n React.useEffect(() => {\n return () => {\n clearTimeout(timeoutRef.current);\n };\n }, []);\n return React.useMemo(() => {\n if (!enabled) {\n return {};\n }\n return {\n reference: {\n onPointerDown(_ref2) {\n let {\n pointerType\n } = _ref2;\n pointerTypeRef.current = pointerType;\n blockFocusRef.current = !!(pointerType && keyboardOnly);\n },\n onMouseLeave() {\n blockFocusRef.current = false;\n },\n onFocus(event) {\n var _dataRef$current$open;\n if (blockFocusRef.current) {\n return;\n }\n\n // Dismiss with click should ignore the subsequent `focus` trigger,\n // but only if the click originated inside the reference element.\n if (event.type === 'focus' && ((_dataRef$current$open = dataRef.current.openEvent) == null ? void 0 : _dataRef$current$open.type) === 'mousedown' && dataRef.current.openEvent && isEventTargetWithin(dataRef.current.openEvent, domReference)) {\n return;\n }\n dataRef.current.openEvent = event.nativeEvent;\n onOpenChange(true);\n },\n onBlur(event) {\n blockFocusRef.current = false;\n const relatedTarget = event.relatedTarget;\n\n // Hit the non-modal focus management portal guard. Focus will be\n // moved into the floating element immediately after.\n const movedToFocusGuard = isElement(relatedTarget) && relatedTarget.hasAttribute('data-floating-ui-focus-guard') && relatedTarget.getAttribute('data-type') === 'outside';\n\n // Wait for the window blur listener to fire.\n timeoutRef.current = setTimeout(() => {\n // When focusing the reference element (e.g. regular click), then\n // clicking into the floating element, prevent it from hiding.\n // Note: it must be focusable, e.g. `tabindex=\"-1\"`.\n if (contains(refs.floating.current, relatedTarget) || contains(domReference, relatedTarget) || movedToFocusGuard) {\n return;\n }\n onOpenChange(false);\n });\n }\n }\n };\n }, [enabled, keyboardOnly, domReference, refs, dataRef, onOpenChange]);\n};\n\nlet isPreventScrollSupported = false;\nconst ARROW_UP = 'ArrowUp';\nconst ARROW_DOWN = 'ArrowDown';\nconst ARROW_LEFT = 'ArrowLeft';\nconst ARROW_RIGHT = 'ArrowRight';\nfunction isDifferentRow(index, cols, prevRow) {\n return Math.floor(index / cols) !== prevRow;\n}\nfunction isIndexOutOfBounds(listRef, index) {\n return index < 0 || index >= listRef.current.length;\n}\nfunction findNonDisabledIndex(listRef, _temp) {\n let {\n startingIndex = -1,\n decrement = false,\n disabledIndices,\n amount = 1\n } = _temp === void 0 ? {} : _temp;\n const list = listRef.current;\n let index = startingIndex;\n do {\n var _list$index, _list$index2;\n index = index + (decrement ? -amount : amount);\n } while (index >= 0 && index <= list.length - 1 && (disabledIndices ? disabledIndices.includes(index) : list[index] == null || ((_list$index = list[index]) == null ? void 0 : _list$index.hasAttribute('disabled')) || ((_list$index2 = list[index]) == null ? void 0 : _list$index2.getAttribute('aria-disabled')) === 'true'));\n return index;\n}\nfunction doSwitch(orientation, vertical, horizontal) {\n switch (orientation) {\n case 'vertical':\n return vertical;\n case 'horizontal':\n return horizontal;\n default:\n return vertical || horizontal;\n }\n}\nfunction isMainOrientationKey(key, orientation) {\n const vertical = key === ARROW_UP || key === ARROW_DOWN;\n const horizontal = key === ARROW_LEFT || key === ARROW_RIGHT;\n return doSwitch(orientation, vertical, horizontal);\n}\nfunction isMainOrientationToEndKey(key, orientation, rtl) {\n const vertical = key === ARROW_DOWN;\n const horizontal = rtl ? key === ARROW_LEFT : key === ARROW_RIGHT;\n return doSwitch(orientation, vertical, horizontal) || key === 'Enter' || key == ' ' || key === '';\n}\nfunction isCrossOrientationOpenKey(key, orientation, rtl) {\n const vertical = rtl ? key === ARROW_LEFT : key === ARROW_RIGHT;\n const horizontal = key === ARROW_DOWN;\n return doSwitch(orientation, vertical, horizontal);\n}\nfunction isCrossOrientationCloseKey(key, orientation, rtl) {\n const vertical = rtl ? key === ARROW_RIGHT : key === ARROW_LEFT;\n const horizontal = key === ARROW_UP;\n return doSwitch(orientation, vertical, horizontal);\n}\nfunction getMinIndex(listRef, disabledIndices) {\n return findNonDisabledIndex(listRef, {\n disabledIndices\n });\n}\nfunction getMaxIndex(listRef, disabledIndices) {\n return findNonDisabledIndex(listRef, {\n decrement: true,\n startingIndex: listRef.current.length,\n disabledIndices\n });\n}\n/**\n * Adds arrow key-based navigation of a list of items, either using real DOM\n * focus or virtual focus.\n * @see https://floating-ui.com/docs/useListNavigation\n */\nconst useListNavigation = function (_ref, _temp2) {\n let {\n open,\n onOpenChange,\n refs,\n elements: {\n domReference\n }\n } = _ref;\n let {\n listRef,\n activeIndex,\n onNavigate: unstable_onNavigate = () => {},\n enabled = true,\n selectedIndex = null,\n allowEscape = false,\n loop = false,\n nested = false,\n rtl = false,\n virtual = false,\n focusItemOnOpen = 'auto',\n focusItemOnHover = true,\n openOnArrowKeyDown = true,\n disabledIndices = undefined,\n orientation = 'vertical',\n cols = 1,\n scrollItemIntoView = true\n } = _temp2 === void 0 ? {\n listRef: {\n current: []\n },\n activeIndex: null,\n onNavigate: () => {}\n } : _temp2;\n if (process.env.NODE_ENV !== \"production\") {\n if (allowEscape) {\n if (!loop) {\n console.warn(['Floating UI: `useListNavigation` looping must be enabled to allow', 'escaping.'].join(' '));\n }\n if (!virtual) {\n console.warn(['Floating UI: `useListNavigation` must be virtual to allow', 'escaping.'].join(' '));\n }\n }\n if (orientation === 'vertical' && cols > 1) {\n console.warn(['Floating UI: In grid list navigation mode (`cols` > 1), the', '`orientation` should be either \"horizontal\" or \"both\".'].join(' '));\n }\n }\n const parentId = useFloatingParentNodeId();\n const tree = useFloatingTree();\n const onNavigate = useEvent(unstable_onNavigate);\n const focusItemOnOpenRef = React.useRef(focusItemOnOpen);\n const indexRef = React.useRef(selectedIndex != null ? selectedIndex : -1);\n const keyRef = React.useRef(null);\n const isPointerModalityRef = React.useRef(true);\n const previousOnNavigateRef = React.useRef(onNavigate);\n const previousOpenRef = React.useRef(open);\n const forceSyncFocus = React.useRef(false);\n const forceScrollIntoViewRef = React.useRef(false);\n const disabledIndicesRef = useLatestRef(disabledIndices);\n const latestOpenRef = useLatestRef(open);\n const scrollItemIntoViewRef = useLatestRef(scrollItemIntoView);\n const [activeId, setActiveId] = React.useState();\n const focusItem = React.useCallback(function (listRef, indexRef, forceScrollIntoView) {\n if (forceScrollIntoView === void 0) {\n forceScrollIntoView = false;\n }\n const item = listRef.current[indexRef.current];\n if (virtual) {\n setActiveId(item == null ? void 0 : item.id);\n } else {\n enqueueFocus(item, {\n preventScroll: true,\n // Mac Safari does not move the virtual cursor unless the focus call\n // is sync. However, for the very first focus call, we need to wait\n // for the position to be ready in order to prevent unwanted\n // scrolling. This means the virtual cursor will not move to the first\n // item when first opening the floating element, but will on\n // subsequent calls. `preventScroll` is supported in modern Safari,\n // so we can use that instead.\n // iOS Safari must be async or the first item will not be focused.\n sync: isMac() && isSafari() ? isPreventScrollSupported || forceSyncFocus.current : false\n });\n }\n requestAnimationFrame(() => {\n const scrollIntoViewOptions = scrollItemIntoViewRef.current;\n const shouldScrollIntoView = scrollIntoViewOptions && item && (forceScrollIntoView || !isPointerModalityRef.current);\n if (shouldScrollIntoView) {\n // JSDOM doesn't support `.scrollIntoView()` but it's widely supported\n // by all browsers.\n item.scrollIntoView == null ? void 0 : item.scrollIntoView(typeof scrollIntoViewOptions === 'boolean' ? {\n block: 'nearest',\n inline: 'nearest'\n } : scrollIntoViewOptions);\n }\n });\n }, [virtual, scrollItemIntoViewRef]);\n index(() => {\n document.createElement('div').focus({\n get preventScroll() {\n isPreventScrollSupported = true;\n return false;\n }\n });\n }, []);\n\n // Sync `selectedIndex` to be the `activeIndex` upon opening the floating\n // element. Also, reset `activeIndex` upon closing the floating element.\n index(() => {\n if (!enabled) {\n return;\n }\n if (open) {\n if (focusItemOnOpenRef.current && selectedIndex != null) {\n // Regardless of the pointer modality, we want to ensure the selected\n // item comes into view when the floating element is opened.\n forceScrollIntoViewRef.current = true;\n onNavigate(selectedIndex);\n }\n } else if (previousOpenRef.current) {\n // Since the user can specify `onNavigate` conditionally\n // (onNavigate: open ? setActiveIndex : setSelectedIndex),\n // we store and call the previous function.\n indexRef.current = -1;\n previousOnNavigateRef.current(null);\n }\n }, [enabled, open, selectedIndex, onNavigate]);\n\n // Sync `activeIndex` to be the focused item while the floating element is\n // open.\n index(() => {\n if (!enabled) {\n return;\n }\n if (open) {\n if (activeIndex == null) {\n forceSyncFocus.current = false;\n if (selectedIndex != null) {\n return;\n }\n\n // Reset while the floating element was open (e.g. the list changed).\n if (previousOpenRef.current) {\n indexRef.current = -1;\n focusItem(listRef, indexRef);\n }\n\n // Initial sync.\n if (!previousOpenRef.current && focusItemOnOpenRef.current && (keyRef.current != null || focusItemOnOpenRef.current === true && keyRef.current == null)) {\n indexRef.current = keyRef.current == null || isMainOrientationToEndKey(keyRef.current, orientation, rtl) || nested ? getMinIndex(listRef, disabledIndicesRef.current) : getMaxIndex(listRef, disabledIndicesRef.current);\n onNavigate(indexRef.current);\n }\n } else if (!isIndexOutOfBounds(listRef, activeIndex)) {\n indexRef.current = activeIndex;\n focusItem(listRef, indexRef, forceScrollIntoViewRef.current);\n forceScrollIntoViewRef.current = false;\n }\n }\n }, [enabled, open, activeIndex, selectedIndex, nested, listRef, orientation, rtl, onNavigate, focusItem, disabledIndicesRef]);\n\n // Ensure the parent floating element has focus when a nested child closes\n // to allow arrow key navigation to work after the pointer leaves the child.\n index(() => {\n if (!enabled) {\n return;\n }\n if (previousOpenRef.current && !open) {\n var _tree$nodesRef$curren, _tree$nodesRef$curren2;\n const parentFloating = tree == null ? void 0 : (_tree$nodesRef$curren = tree.nodesRef.current.find(node => node.id === parentId)) == null ? void 0 : (_tree$nodesRef$curren2 = _tree$nodesRef$curren.context) == null ? void 0 : _tree$nodesRef$curren2.elements.floating;\n if (parentFloating && !contains(parentFloating, activeElement$1(getDocument(parentFloating)))) {\n parentFloating.focus({\n preventScroll: true\n });\n }\n }\n }, [enabled, open, tree, parentId]);\n index(() => {\n keyRef.current = null;\n previousOnNavigateRef.current = onNavigate;\n previousOpenRef.current = open;\n });\n const hasActiveIndex = activeIndex != null;\n const item = React.useMemo(() => {\n function syncCurrentTarget(currentTarget) {\n if (!open) return;\n const index = listRef.current.indexOf(currentTarget);\n if (index !== -1) {\n onNavigate(index);\n }\n }\n const props = {\n onFocus(_ref2) {\n let {\n currentTarget\n } = _ref2;\n syncCurrentTarget(currentTarget);\n },\n onClick: _ref3 => {\n let {\n currentTarget\n } = _ref3;\n return currentTarget.focus({\n preventScroll: true\n });\n },\n // Safari\n ...(focusItemOnHover && {\n onMouseMove(_ref4) {\n let {\n currentTarget\n } = _ref4;\n syncCurrentTarget(currentTarget);\n },\n onPointerLeave() {\n if (!isPointerModalityRef.current) {\n return;\n }\n indexRef.current = -1;\n focusItem(listRef, indexRef);\n\n // Virtual cursor with VoiceOver on iOS needs this to be flushed\n // synchronously or there is a glitch that prevents nested\n // submenus from being accessible.\n flushSync(() => onNavigate(null));\n if (!virtual) {\n var _refs$floating$curren;\n // This also needs to be sync to prevent fast mouse movements\n // from leaving behind a stale active item when landing on a\n // disabled button item.\n (_refs$floating$curren = refs.floating.current) == null ? void 0 : _refs$floating$curren.focus({\n preventScroll: true\n });\n }\n }\n })\n };\n return props;\n }, [open, refs, focusItem, focusItemOnHover, listRef, onNavigate, virtual]);\n return React.useMemo(() => {\n if (!enabled) {\n return {};\n }\n const disabledIndices = disabledIndicesRef.current;\n function onKeyDown(event) {\n isPointerModalityRef.current = false;\n forceSyncFocus.current = true;\n\n // If the floating element is animating out, ignore navigation. Otherwise,\n // the `activeIndex` gets set to 0 despite not being open so the next time\n // the user ArrowDowns, the first item won't be focused.\n if (!latestOpenRef.current && event.currentTarget === refs.floating.current) {\n return;\n }\n if (nested && isCrossOrientationCloseKey(event.key, orientation, rtl)) {\n stopEvent(event);\n onOpenChange(false);\n if (isHTMLElement(domReference)) {\n domReference.focus();\n }\n return;\n }\n const currentIndex = indexRef.current;\n const minIndex = getMinIndex(listRef, disabledIndices);\n const maxIndex = getMaxIndex(listRef, disabledIndices);\n if (event.key === 'Home') {\n indexRef.current = minIndex;\n onNavigate(indexRef.current);\n }\n if (event.key === 'End') {\n indexRef.current = maxIndex;\n onNavigate(indexRef.current);\n }\n\n // Grid navigation.\n if (cols > 1) {\n const prevIndex = indexRef.current;\n if (event.key === ARROW_UP) {\n stopEvent(event);\n if (prevIndex === -1) {\n indexRef.current = maxIndex;\n } else {\n indexRef.current = findNonDisabledIndex(listRef, {\n startingIndex: prevIndex,\n amount: cols,\n decrement: true,\n disabledIndices\n });\n if (loop && (prevIndex - cols < minIndex || indexRef.current < 0)) {\n const col = prevIndex % cols;\n const maxCol = maxIndex % cols;\n const offset = maxIndex - (maxCol - col);\n if (maxCol === col) {\n indexRef.current = maxIndex;\n } else {\n indexRef.current = maxCol > col ? offset : offset - cols;\n }\n }\n }\n if (isIndexOutOfBounds(listRef, indexRef.current)) {\n indexRef.current = prevIndex;\n }\n onNavigate(indexRef.current);\n }\n if (event.key === ARROW_DOWN) {\n stopEvent(event);\n if (prevIndex === -1) {\n indexRef.current = minIndex;\n } else {\n indexRef.current = findNonDisabledIndex(listRef, {\n startingIndex: prevIndex,\n amount: cols,\n disabledIndices\n });\n if (loop && prevIndex + cols > maxIndex) {\n indexRef.current = findNonDisabledIndex(listRef, {\n startingIndex: prevIndex % cols - cols,\n amount: cols,\n disabledIndices\n });\n }\n }\n if (isIndexOutOfBounds(listRef, indexRef.current)) {\n indexRef.current = prevIndex;\n }\n onNavigate(indexRef.current);\n }\n\n // Remains on the same row/column.\n if (orientation === 'both') {\n const prevRow = Math.floor(prevIndex / cols);\n if (event.key === ARROW_RIGHT) {\n stopEvent(event);\n if (prevIndex % cols !== cols - 1) {\n indexRef.current = findNonDisabledIndex(listRef, {\n startingIndex: prevIndex,\n disabledIndices\n });\n if (loop && isDifferentRow(indexRef.current, cols, prevRow)) {\n indexRef.current = findNonDisabledIndex(listRef, {\n startingIndex: prevIndex - prevIndex % cols - 1,\n disabledIndices\n });\n }\n } else if (loop) {\n indexRef.current = findNonDisabledIndex(listRef, {\n startingIndex: prevIndex - prevIndex % cols - 1,\n disabledIndices\n });\n }\n if (isDifferentRow(indexRef.current, cols, prevRow)) {\n indexRef.current = prevIndex;\n }\n }\n if (event.key === ARROW_LEFT) {\n stopEvent(event);\n if (prevIndex % cols !== 0) {\n indexRef.current = findNonDisabledIndex(listRef, {\n startingIndex: prevIndex,\n disabledIndices,\n decrement: true\n });\n if (loop && isDifferentRow(indexRef.current, cols, prevRow)) {\n indexRef.current = findNonDisabledIndex(listRef, {\n startingIndex: prevIndex + (cols - prevIndex % cols),\n decrement: true,\n disabledIndices\n });\n }\n } else if (loop) {\n indexRef.current = findNonDisabledIndex(listRef, {\n startingIndex: prevIndex + (cols - prevIndex % cols),\n decrement: true,\n disabledIndices\n });\n }\n if (isDifferentRow(indexRef.current, cols, prevRow)) {\n indexRef.current = prevIndex;\n }\n }\n const lastRow = Math.floor(maxIndex / cols) === prevRow;\n if (isIndexOutOfBounds(listRef, indexRef.current)) {\n if (loop && lastRow) {\n indexRef.current = event.key === ARROW_LEFT ? maxIndex : findNonDisabledIndex(listRef, {\n startingIndex: prevIndex - prevIndex % cols - 1,\n disabledIndices\n });\n } else {\n indexRef.current = prevIndex;\n }\n }\n onNavigate(indexRef.current);\n return;\n }\n }\n if (isMainOrientationKey(event.key, orientation)) {\n stopEvent(event);\n\n // Reset the index if no item is focused.\n if (open && !virtual && activeElement$1(event.currentTarget.ownerDocument) === event.currentTarget) {\n indexRef.current = isMainOrientationToEndKey(event.key, orientation, rtl) ? minIndex : maxIndex;\n onNavigate(indexRef.current);\n return;\n }\n if (isMainOrientationToEndKey(event.key, orientation, rtl)) {\n if (loop) {\n indexRef.current = currentIndex >= maxIndex ? allowEscape && currentIndex !== listRef.current.length ? -1 : minIndex : findNonDisabledIndex(listRef, {\n startingIndex: currentIndex,\n disabledIndices\n });\n } else {\n indexRef.current = Math.min(maxIndex, findNonDisabledIndex(listRef, {\n startingIndex: currentIndex,\n disabledIndices\n }));\n }\n } else {\n if (loop) {\n indexRef.current = currentIndex <= minIndex ? allowEscape && currentIndex !== -1 ? listRef.current.length : maxIndex : findNonDisabledIndex(listRef, {\n startingIndex: currentIndex,\n decrement: true,\n disabledIndices\n });\n } else {\n indexRef.current = Math.max(minIndex, findNonDisabledIndex(listRef, {\n startingIndex: currentIndex,\n decrement: true,\n disabledIndices\n }));\n }\n }\n if (isIndexOutOfBounds(listRef, indexRef.current)) {\n onNavigate(null);\n } else {\n onNavigate(indexRef.current);\n }\n }\n }\n function checkVirtualMouse(event) {\n if (focusItemOnOpen === 'auto' && isVirtualClick(event.nativeEvent)) {\n focusItemOnOpenRef.current = true;\n }\n }\n function checkVirtualPointer(event) {\n // `pointerdown` fires first, reset the state then perform the checks.\n focusItemOnOpenRef.current = focusItemOnOpen;\n if (focusItemOnOpen === 'auto' && isVirtualPointerEvent(event.nativeEvent)) {\n focusItemOnOpenRef.current = true;\n }\n }\n const ariaActiveDescendantProp = virtual && open && hasActiveIndex && {\n 'aria-activedescendant': activeId\n };\n return {\n reference: {\n ...ariaActiveDescendantProp,\n onKeyDown(event) {\n isPointerModalityRef.current = false;\n const isArrowKey = event.key.indexOf('Arrow') === 0;\n if (virtual && open) {\n return onKeyDown(event);\n }\n\n // If a floating element should not open on arrow key down, avoid\n // setting `activeIndex` while it's closed.\n if (!open && !openOnArrowKeyDown && isArrowKey) {\n return;\n }\n const isNavigationKey = isArrowKey || event.key === 'Enter' || event.key === ' ' || event.key === '';\n if (isNavigationKey) {\n keyRef.current = event.key;\n }\n if (nested) {\n if (isCrossOrientationOpenKey(event.key, orientation, rtl)) {\n stopEvent(event);\n if (open) {\n indexRef.current = getMinIndex(listRef, disabledIndices);\n onNavigate(indexRef.current);\n } else {\n onOpenChange(true);\n }\n }\n return;\n }\n if (isMainOrientationKey(event.key, orientation)) {\n if (selectedIndex != null) {\n indexRef.current = selectedIndex;\n }\n stopEvent(event);\n if (!open && openOnArrowKeyDown) {\n onOpenChange(true);\n } else {\n onKeyDown(event);\n }\n if (open) {\n onNavigate(indexRef.current);\n }\n }\n },\n onFocus() {\n if (open) {\n onNavigate(null);\n }\n },\n onPointerDown: checkVirtualPointer,\n onMouseDown: checkVirtualMouse,\n onClick: checkVirtualMouse\n },\n floating: {\n 'aria-orientation': orientation === 'both' ? undefined : orientation,\n ...ariaActiveDescendantProp,\n onKeyDown,\n onPointerMove() {\n isPointerModalityRef.current = true;\n }\n },\n item\n };\n }, [domReference, refs, activeId, disabledIndicesRef, latestOpenRef, listRef, enabled, orientation, rtl, virtual, open, hasActiveIndex, nested, selectedIndex, openOnArrowKeyDown, allowEscape, cols, loop, focusItemOnOpen, onNavigate, onOpenChange, item]);\n};\n\n/**\n * Merges an array of refs into a single memoized callback ref or `null`.\n * @see https://floating-ui.com/docs/useMergeRefs\n */\nfunction useMergeRefs(refs) {\n return React.useMemo(() => {\n if (refs.every(ref => ref == null)) {\n return null;\n }\n return value => {\n refs.forEach(ref => {\n if (typeof ref === 'function') {\n ref(value);\n } else if (ref != null) {\n ref.current = value;\n }\n });\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, refs);\n}\n\n/**\n * Adds base screen reader props to the reference and floating elements for a\n * given floating element `role`.\n * @see https://floating-ui.com/docs/useRole\n */\nconst useRole = function (_ref, _temp) {\n let {\n open\n } = _ref;\n let {\n enabled = true,\n role = 'dialog'\n } = _temp === void 0 ? {} : _temp;\n const rootId = useId();\n const referenceId = useId();\n return React.useMemo(() => {\n const floatingProps = {\n id: rootId,\n role\n };\n if (!enabled) {\n return {};\n }\n if (role === 'tooltip') {\n return {\n reference: {\n 'aria-describedby': open ? rootId : undefined\n },\n floating: floatingProps\n };\n }\n return {\n reference: {\n 'aria-expanded': open ? 'true' : 'false',\n 'aria-haspopup': role === 'alertdialog' ? 'dialog' : role,\n 'aria-controls': open ? rootId : undefined,\n ...(role === 'listbox' && {\n role: 'combobox'\n }),\n ...(role === 'menu' && {\n id: referenceId\n })\n },\n floating: {\n ...floatingProps,\n ...(role === 'menu' && {\n 'aria-labelledby': referenceId\n })\n }\n };\n }, [enabled, role, open, rootId, referenceId]);\n};\n\n// Converts a JS style key like `backgroundColor` to a CSS transition-property\n// like `background-color`.\nconst camelCaseToKebabCase = str => str.replace(/[A-Z]+(?![a-z])|[A-Z]/g, ($, ofs) => (ofs ? '-' : '') + $.toLowerCase());\nfunction useDelayUnmount(open, durationMs) {\n const [isMounted, setIsMounted] = React.useState(open);\n if (open && !isMounted) {\n setIsMounted(true);\n }\n React.useEffect(() => {\n if (!open) {\n const timeout = setTimeout(() => setIsMounted(false), durationMs);\n return () => clearTimeout(timeout);\n }\n }, [open, durationMs]);\n return isMounted;\n}\n/**\n * Provides a status string to apply CSS transitions to a floating element,\n * correctly handling placement-aware transitions.\n * @see https://floating-ui.com/docs/useTransition#usetransitionstatus\n */\nfunction useTransitionStatus(_ref, _temp) {\n let {\n open,\n elements: {\n floating\n }\n } = _ref;\n let {\n duration = 250\n } = _temp === void 0 ? {} : _temp;\n const isNumberDuration = typeof duration === 'number';\n const closeDuration = (isNumberDuration ? duration : duration.close) || 0;\n const [initiated, setInitiated] = React.useState(false);\n const [status, setStatus] = React.useState('unmounted');\n const isMounted = useDelayUnmount(open, closeDuration);\n\n // `initiated` check prevents this `setState` call from breaking\n // <FloatingPortal />. This call is necessary to ensure subsequent opens\n // after the initial one allows the correct side animation to play when the\n // placement has changed.\n index(() => {\n if (initiated && !isMounted) {\n setStatus('unmounted');\n }\n }, [initiated, isMounted]);\n index(() => {\n if (!floating) return;\n if (open) {\n setStatus('initial');\n const frame = requestAnimationFrame(() => {\n setStatus('open');\n });\n return () => {\n cancelAnimationFrame(frame);\n };\n } else {\n setInitiated(true);\n setStatus('close');\n }\n }, [open, floating]);\n return {\n isMounted,\n status\n };\n}\n/**\n * Provides styles to apply CSS transitions to a floating element, correctly\n * handling placement-aware transitions. Wrapper around `useTransitionStatus`.\n * @see https://floating-ui.com/docs/useTransition#usetransitionstyles\n */\nfunction useTransitionStyles(context, _temp2) {\n let {\n initial: unstable_initial = {\n opacity: 0\n },\n open: unstable_open,\n close: unstable_close,\n common: unstable_common,\n duration = 250\n } = _temp2 === void 0 ? {} : _temp2;\n const placement = context.placement;\n const side = placement.split('-')[0];\n const [styles, setStyles] = React.useState({});\n const {\n isMounted,\n status\n } = useTransitionStatus(context, {\n duration\n });\n const initialRef = useLatestRef(unstable_initial);\n const openRef = useLatestRef(unstable_open);\n const closeRef = useLatestRef(unstable_close);\n const commonRef = useLatestRef(unstable_common);\n const isNumberDuration = typeof duration === 'number';\n const openDuration = (isNumberDuration ? duration : duration.open) || 0;\n const closeDuration = (isNumberDuration ? duration : duration.close) || 0;\n index(() => {\n const fnArgs = {\n side,\n placement\n };\n const initial = initialRef.current;\n const close = closeRef.current;\n const open = openRef.current;\n const common = commonRef.current;\n const initialStyles = typeof initial === 'function' ? initial(fnArgs) : initial;\n const closeStyles = typeof close === 'function' ? close(fnArgs) : close;\n const commonStyles = typeof common === 'function' ? common(fnArgs) : common;\n const openStyles = (typeof open === 'function' ? open(fnArgs) : open) || Object.keys(initialStyles).reduce((acc, key) => {\n acc[key] = '';\n return acc;\n }, {});\n if (status === 'initial' || status === 'unmounted') {\n setStyles(styles => ({\n transitionProperty: styles.transitionProperty,\n ...commonStyles,\n ...initialStyles\n }));\n }\n if (status === 'open') {\n setStyles({\n transitionProperty: Object.keys(openStyles).map(camelCaseToKebabCase).join(','),\n transitionDuration: openDuration + \"ms\",\n ...commonStyles,\n ...openStyles\n });\n }\n if (status === 'close') {\n const styles = closeStyles || initialStyles;\n setStyles({\n transitionProperty: Object.keys(styles).map(camelCaseToKebabCase).join(','),\n transitionDuration: closeDuration + \"ms\",\n ...commonStyles,\n ...styles\n });\n }\n }, [side, placement, closeDuration, closeRef, initialRef, openRef, commonRef, openDuration, status]);\n return {\n isMounted,\n styles\n };\n}\n\n/**\n * Provides a matching callback that can be used to focus an item as the user\n * types, often used in tandem with `useListNavigation()`.\n * @see https://floating-ui.com/docs/useTypeahead\n */\nconst useTypeahead = function (_ref, _temp) {\n var _ref2;\n let {\n open,\n dataRef,\n refs\n } = _ref;\n let {\n listRef,\n activeIndex,\n onMatch: unstable_onMatch = () => {},\n enabled = true,\n findMatch = null,\n resetMs = 1000,\n ignoreKeys = [],\n selectedIndex = null\n } = _temp === void 0 ? {\n listRef: {\n current: []\n },\n activeIndex: null\n } : _temp;\n const timeoutIdRef = React.useRef();\n const stringRef = React.useRef('');\n const prevIndexRef = React.useRef((_ref2 = selectedIndex != null ? selectedIndex : activeIndex) != null ? _ref2 : -1);\n const matchIndexRef = React.useRef(null);\n const onMatch = useEvent(unstable_onMatch);\n const findMatchRef = useLatestRef(findMatch);\n const ignoreKeysRef = useLatestRef(ignoreKeys);\n index(() => {\n if (open) {\n clearTimeout(timeoutIdRef.current);\n matchIndexRef.current = null;\n stringRef.current = '';\n }\n }, [open]);\n index(() => {\n // Sync arrow key navigation but not typeahead navigation.\n if (open && stringRef.current === '') {\n var _ref3;\n prevIndexRef.current = (_ref3 = selectedIndex != null ? selectedIndex : activeIndex) != null ? _ref3 : -1;\n }\n }, [open, selectedIndex, activeIndex]);\n return React.useMemo(() => {\n if (!enabled) {\n return {};\n }\n function onKeyDown(event) {\n var _refs$floating$curren;\n // Correctly scope nested non-portalled floating elements. Since the nested\n // floating element is inside of the another, we find the closest role\n // that indicates the floating element scope.\n const target = getTarget(event.nativeEvent);\n if (isElement(target) && (activeElement$1(getDocument(target)) !== event.currentTarget ? (_refs$floating$curren = refs.floating.current) != null && _refs$floating$curren.contains(target) ? target.closest('[role=\"dialog\"],[role=\"menu\"],[role=\"listbox\"],[role=\"tree\"],[role=\"grid\"]') !== event.currentTarget : false : !event.currentTarget.contains(target))) {\n return;\n }\n if (stringRef.current.length > 0 && stringRef.current[0] !== ' ') {\n dataRef.current.typing = true;\n if (event.key === ' ') {\n stopEvent(event);\n }\n }\n const listContent = listRef.current;\n if (listContent == null || ignoreKeysRef.current.includes(event.key) ||\n // Character key.\n event.key.length !== 1 ||\n // Modifier key.\n event.ctrlKey || event.metaKey || event.altKey) {\n return;\n }\n\n // Bail out if the list contains a word like \"llama\" or \"aaron\". TODO:\n // allow it in this case, too.\n const allowRapidSuccessionOfFirstLetter = listContent.every(text => {\n var _text$, _text$2;\n return text ? ((_text$ = text[0]) == null ? void 0 : _text$.toLocaleLowerCase()) !== ((_text$2 = text[1]) == null ? void 0 : _text$2.toLocaleLowerCase()) : true;\n });\n\n // Allows the user to cycle through items that start with the same letter\n // in rapid succession.\n if (allowRapidSuccessionOfFirstLetter && stringRef.current === event.key) {\n stringRef.current = '';\n prevIndexRef.current = matchIndexRef.current;\n }\n stringRef.current += event.key;\n clearTimeout(timeoutIdRef.current);\n timeoutIdRef.current = setTimeout(() => {\n stringRef.current = '';\n prevIndexRef.current = matchIndexRef.current;\n dataRef.current.typing = false;\n }, resetMs);\n const prevIndex = prevIndexRef.current;\n const orderedList = [...listContent.slice((prevIndex || 0) + 1), ...listContent.slice(0, (prevIndex || 0) + 1)];\n const str = findMatchRef.current ? findMatchRef.current(orderedList, stringRef.current) : orderedList.find(text => (text == null ? void 0 : text.toLocaleLowerCase().indexOf(stringRef.current.toLocaleLowerCase())) === 0);\n const index = str ? listContent.indexOf(str) : -1;\n if (index !== -1) {\n onMatch(index);\n matchIndexRef.current = index;\n }\n }\n return {\n reference: {\n onKeyDown\n },\n floating: {\n onKeyDown\n }\n };\n }, [enabled, dataRef, listRef, resetMs, ignoreKeysRef, findMatchRef, onMatch, refs]);\n};\n\nfunction getArgsWithCustomFloatingHeight(state, height) {\n return {\n ...state,\n rects: {\n ...state.rects,\n floating: {\n ...state.rects.floating,\n height\n }\n }\n };\n}\n/**\n * Positions the floating element such that an inner element inside\n * of it is anchored to the reference element.\n * @see https://floating-ui.com/docs/inner\n */\nconst inner = props => ({\n name: 'inner',\n options: props,\n async fn(state) {\n const {\n listRef,\n overflowRef,\n onFallbackChange,\n offset: innerOffset = 0,\n index = 0,\n minItemsVisible = 4,\n referenceOverflowThreshold = 0,\n scrollRef,\n ...detectOverflowOptions\n } = props;\n const {\n rects,\n elements: {\n floating\n }\n } = state;\n const item = listRef.current[index];\n if (process.env.NODE_ENV !== \"production\") {\n if (!state.placement.startsWith('bottom')) {\n console.warn(['Floating UI: `placement` side must be \"bottom\" when using the', '`inner` middleware.'].join(' '));\n }\n }\n if (!item) {\n return {};\n }\n const nextArgs = {\n ...state,\n ...(await offset(-item.offsetTop - rects.reference.height / 2 - item.offsetHeight / 2 - innerOffset).fn(state))\n };\n const el = (scrollRef == null ? void 0 : scrollRef.current) || floating;\n const overflow = await detectOverflow(getArgsWithCustomFloatingHeight(nextArgs, el.scrollHeight), detectOverflowOptions);\n const refOverflow = await detectOverflow(nextArgs, {\n ...detectOverflowOptions,\n elementContext: 'reference'\n });\n const diffY = Math.max(0, overflow.top);\n const nextY = nextArgs.y + diffY;\n const maxHeight = Math.max(0, el.scrollHeight - diffY - Math.max(0, overflow.bottom));\n el.style.maxHeight = maxHeight + \"px\";\n el.scrollTop = diffY;\n\n // There is not enough space, fallback to standard anchored positioning\n if (onFallbackChange) {\n if (el.offsetHeight < item.offsetHeight * Math.min(minItemsVisible, listRef.current.length - 1) - 1 || refOverflow.top >= -referenceOverflowThreshold || refOverflow.bottom >= -referenceOverflowThreshold) {\n flushSync(() => onFallbackChange(true));\n } else {\n flushSync(() => onFallbackChange(false));\n }\n }\n if (overflowRef) {\n overflowRef.current = await detectOverflow(getArgsWithCustomFloatingHeight({\n ...nextArgs,\n y: nextY\n }, el.offsetHeight), detectOverflowOptions);\n }\n return {\n y: nextY\n };\n }\n});\n/**\n * Changes the `inner` middleware's `offset` upon a `wheel` event to\n * expand the floating element's height, revealing more list items.\n * @see https://floating-ui.com/docs/inner\n */\nconst useInnerOffset = (_ref, _ref2) => {\n let {\n open,\n elements\n } = _ref;\n let {\n enabled = true,\n overflowRef,\n scrollRef,\n onChange: unstable_onChange\n } = _ref2;\n const onChange = useEvent(unstable_onChange);\n const controlledScrollingRef = React.useRef(false);\n const prevScrollTopRef = React.useRef(null);\n const initialOverflowRef = React.useRef(null);\n React.useEffect(() => {\n if (!enabled) {\n return;\n }\n function onWheel(e) {\n if (e.ctrlKey || !el || overflowRef.current == null) {\n return;\n }\n const dY = e.deltaY;\n const isAtTop = overflowRef.current.top >= -0.5;\n const isAtBottom = overflowRef.current.bottom >= -0.5;\n const remainingScroll = el.scrollHeight - el.clientHeight;\n const sign = dY < 0 ? -1 : 1;\n const method = dY < 0 ? 'max' : 'min';\n if (el.scrollHeight <= el.clientHeight) {\n return;\n }\n if (!isAtTop && dY > 0 || !isAtBottom && dY < 0) {\n e.preventDefault();\n flushSync(() => {\n onChange(d => d + Math[method](dY, remainingScroll * sign));\n });\n } else if (/firefox/i.test(getUserAgent())) {\n // Needed to propagate scrolling during momentum scrolling phase once\n // it gets limited by the boundary. UX improvement, not critical.\n el.scrollTop += dY;\n }\n }\n const el = (scrollRef == null ? void 0 : scrollRef.current) || elements.floating;\n if (open && el) {\n el.addEventListener('wheel', onWheel);\n\n // Wait for the position to be ready.\n requestAnimationFrame(() => {\n prevScrollTopRef.current = el.scrollTop;\n if (overflowRef.current != null) {\n initialOverflowRef.current = {\n ...overflowRef.current\n };\n }\n });\n return () => {\n prevScrollTopRef.current = null;\n initialOverflowRef.current = null;\n el.removeEventListener('wheel', onWheel);\n };\n }\n }, [enabled, open, elements.floating, overflowRef, scrollRef, onChange]);\n return React.useMemo(() => {\n if (!enabled) {\n return {};\n }\n return {\n floating: {\n onKeyDown() {\n controlledScrollingRef.current = true;\n },\n onWheel() {\n controlledScrollingRef.current = false;\n },\n onPointerMove() {\n controlledScrollingRef.current = false;\n },\n onScroll() {\n const el = (scrollRef == null ? void 0 : scrollRef.current) || elements.floating;\n if (!overflowRef.current || !el || !controlledScrollingRef.current) {\n return;\n }\n if (prevScrollTopRef.current !== null) {\n const scrollDiff = el.scrollTop - prevScrollTopRef.current;\n if (overflowRef.current.bottom < -0.5 && scrollDiff < -1 || overflowRef.current.top < -0.5 && scrollDiff > 1) {\n flushSync(() => onChange(d => d + scrollDiff));\n }\n }\n\n // [Firefox] Wait for the height change to have been applied.\n requestAnimationFrame(() => {\n prevScrollTopRef.current = el.scrollTop;\n });\n }\n }\n };\n }, [enabled, overflowRef, elements.floating, scrollRef, onChange]);\n};\n\nfunction isPointInPolygon(point, polygon) {\n const [x, y] = point;\n let isInside = false;\n const length = polygon.length;\n for (let i = 0, j = length - 1; i < length; j = i++) {\n const [xi, yi] = polygon[i] || [0, 0];\n const [xj, yj] = polygon[j] || [0, 0];\n const intersect = yi >= y !== yj >= y && x <= (xj - xi) * (y - yi) / (yj - yi) + xi;\n if (intersect) {\n isInside = !isInside;\n }\n }\n return isInside;\n}\nfunction isInside(point, rect) {\n return point[0] >= rect.x && point[0] <= rect.x + rect.width && point[1] >= rect.y && point[1] <= rect.y + rect.height;\n}\nfunction safePolygon(_temp) {\n let {\n restMs = 0,\n buffer = 0.5,\n blockPointerEvents = false\n } = _temp === void 0 ? {} : _temp;\n let timeoutId;\n let isInsideRect = false;\n let hasLanded = false;\n const fn = _ref => {\n let {\n x,\n y,\n placement,\n elements,\n onClose,\n nodeId,\n tree\n } = _ref;\n return function onMouseMove(event) {\n function close() {\n clearTimeout(timeoutId);\n onClose();\n }\n clearTimeout(timeoutId);\n if (!elements.domReference || !elements.floating || placement == null || x == null || y == null) {\n return;\n }\n const {\n clientX,\n clientY\n } = event;\n const clientPoint = [clientX, clientY];\n const target = getTarget(event);\n const isLeave = event.type === 'mouseleave';\n const isOverFloatingEl = contains(elements.floating, target);\n const isOverReferenceEl = contains(elements.domReference, target);\n const refRect = elements.domReference.getBoundingClientRect();\n const rect = elements.floating.getBoundingClientRect();\n const side = placement.split('-')[0];\n const cursorLeaveFromRight = x > rect.right - rect.width / 2;\n const cursorLeaveFromBottom = y > rect.bottom - rect.height / 2;\n const isOverReferenceRect = isInside(clientPoint, refRect);\n if (isOverFloatingEl) {\n hasLanded = true;\n if (!isLeave) {\n return;\n }\n }\n if (isOverReferenceEl) {\n hasLanded = false;\n }\n if (isOverReferenceEl && !isLeave) {\n hasLanded = true;\n return;\n }\n\n // Prevent overlapping floating element from being stuck in an open-close\n // loop: https://github.com/floating-ui/floating-ui/issues/1910\n if (isLeave && isElement(event.relatedTarget) && contains(elements.floating, event.relatedTarget)) {\n return;\n }\n\n // If any nested child is open, abort.\n if (tree && getChildren(tree.nodesRef.current, nodeId).some(_ref2 => {\n let {\n context\n } = _ref2;\n return context == null ? void 0 : context.open;\n })) {\n return;\n }\n\n // If the pointer is leaving from the opposite side, the \"buffer\" logic\n // creates a point where the floating element remains open, but should be\n // ignored.\n // A constant of 1 handles floating point rounding errors.\n if (side === 'top' && y >= refRect.bottom - 1 || side === 'bottom' && y <= refRect.top + 1 || side === 'left' && x >= refRect.right - 1 || side === 'right' && x <= refRect.left + 1) {\n return close();\n }\n\n // Ignore when the cursor is within the rectangular trough between the\n // two elements. Since the triangle is created from the cursor point,\n // which can start beyond the ref element's edge, traversing back and\n // forth from the ref to the floating element can cause it to close. This\n // ensures it always remains open in that case.\n let rectPoly = [];\n switch (side) {\n case 'top':\n rectPoly = [[rect.left, refRect.top + 1], [rect.left, rect.bottom - 1], [rect.right, rect.bottom - 1], [rect.right, refRect.top + 1]];\n isInsideRect = clientX >= rect.left && clientX <= rect.right && clientY >= rect.top && clientY <= refRect.top + 1;\n break;\n case 'bottom':\n rectPoly = [[rect.left, rect.top + 1], [rect.left, refRect.bottom - 1], [rect.right, refRect.bottom - 1], [rect.right, rect.top + 1]];\n isInsideRect = clientX >= rect.left && clientX <= rect.right && clientY >= refRect.bottom - 1 && clientY <= rect.bottom;\n break;\n case 'left':\n rectPoly = [[rect.right - 1, rect.bottom], [rect.right - 1, rect.top], [refRect.left + 1, rect.top], [refRect.left + 1, rect.bottom]];\n isInsideRect = clientX >= rect.left && clientX <= refRect.left + 1 && clientY >= rect.top && clientY <= rect.bottom;\n break;\n case 'right':\n rectPoly = [[refRect.right - 1, rect.bottom], [refRect.right - 1, rect.top], [rect.left + 1, rect.top], [rect.left + 1, rect.bottom]];\n isInsideRect = clientX >= refRect.right - 1 && clientX <= rect.right && clientY >= rect.top && clientY <= rect.bottom;\n break;\n }\n function getPolygon(_ref3) {\n let [x, y] = _ref3;\n const isFloatingWider = rect.width > refRect.width;\n const isFloatingTaller = rect.height > refRect.height;\n switch (side) {\n case 'top':\n {\n const cursorPointOne = [isFloatingWider ? x + buffer / 2 : cursorLeaveFromRight ? x + buffer * 4 : x - buffer * 4, y + buffer + 1];\n const cursorPointTwo = [isFloatingWider ? x - buffer / 2 : cursorLeaveFromRight ? x + buffer * 4 : x - buffer * 4, y + buffer + 1];\n const commonPoints = [[rect.left, cursorLeaveFromRight ? rect.bottom - buffer : isFloatingWider ? rect.bottom - buffer : rect.top], [rect.right, cursorLeaveFromRight ? isFloatingWider ? rect.bottom - buffer : rect.top : rect.bottom - buffer]];\n return [cursorPointOne, cursorPointTwo, ...commonPoints];\n }\n case 'bottom':\n {\n const cursorPointOne = [isFloatingWider ? x + buffer / 2 : cursorLeaveFromRight ? x + buffer * 4 : x - buffer * 4, y - buffer];\n const cursorPointTwo = [isFloatingWider ? x - buffer / 2 : cursorLeaveFromRight ? x + buffer * 4 : x - buffer * 4, y - buffer];\n const commonPoints = [[rect.left, cursorLeaveFromRight ? rect.top + buffer : isFloatingWider ? rect.top + buffer : rect.bottom], [rect.right, cursorLeaveFromRight ? isFloatingWider ? rect.top + buffer : rect.bottom : rect.top + buffer]];\n return [cursorPointOne, cursorPointTwo, ...commonPoints];\n }\n case 'left':\n {\n const cursorPointOne = [x + buffer + 1, isFloatingTaller ? y + buffer / 2 : cursorLeaveFromBottom ? y + buffer * 4 : y - buffer * 4];\n const cursorPointTwo = [x + buffer + 1, isFloatingTaller ? y - buffer / 2 : cursorLeaveFromBottom ? y + buffer * 4 : y - buffer * 4];\n const commonPoints = [[cursorLeaveFromBottom ? rect.right - buffer : isFloatingTaller ? rect.right - buffer : rect.left, rect.top], [cursorLeaveFromBottom ? isFloatingTaller ? rect.right - buffer : rect.left : rect.right - buffer, rect.bottom]];\n return [...commonPoints, cursorPointOne, cursorPointTwo];\n }\n case 'right':\n {\n const cursorPointOne = [x - buffer, isFloatingTaller ? y + buffer / 2 : cursorLeaveFromBottom ? y + buffer * 4 : y - buffer * 4];\n const cursorPointTwo = [x - buffer, isFloatingTaller ? y - buffer / 2 : cursorLeaveFromBottom ? y + buffer * 4 : y - buffer * 4];\n const commonPoints = [[cursorLeaveFromBottom ? rect.left + buffer : isFloatingTaller ? rect.left + buffer : rect.right, rect.top], [cursorLeaveFromBottom ? isFloatingTaller ? rect.left + buffer : rect.right : rect.left + buffer, rect.bottom]];\n return [cursorPointOne, cursorPointTwo, ...commonPoints];\n }\n }\n }\n const poly = isInsideRect ? rectPoly : getPolygon([x, y]);\n if (isInsideRect) {\n return;\n } else if (hasLanded && !isOverReferenceRect) {\n return close();\n }\n if (!isPointInPolygon([clientX, clientY], poly)) {\n close();\n } else if (restMs && !hasLanded) {\n timeoutId = setTimeout(close, restMs);\n }\n };\n };\n fn.__options = {\n blockPointerEvents\n };\n return fn;\n}\n\n/**\n * Provides data to position a floating element and context to add interactions.\n * @see https://floating-ui.com/docs/react\n */\nfunction useFloating(options) {\n if (options === void 0) {\n options = {};\n }\n const {\n open = false,\n onOpenChange: unstable_onOpenChange,\n nodeId\n } = options;\n const position = useFloating$1(options);\n const tree = useFloatingTree();\n const domReferenceRef = React.useRef(null);\n const dataRef = React.useRef({});\n const events = React.useState(() => createPubSub())[0];\n const [domReference, setDomReference] = React.useState(null);\n const setPositionReference = React.useCallback(node => {\n const positionReference = isElement(node) ? {\n getBoundingClientRect: () => node.getBoundingClientRect(),\n contextElement: node\n } : node;\n position.refs.setReference(positionReference);\n }, [position.refs]);\n const setReference = React.useCallback(node => {\n if (isElement(node) || node === null) {\n domReferenceRef.current = node;\n setDomReference(node);\n }\n\n // Backwards-compatibility for passing a virtual element to `reference`\n // after it has set the DOM reference.\n if (isElement(position.refs.reference.current) || position.refs.reference.current === null ||\n // Don't allow setting virtual elements using the old technique back to\n // `null` to support `positionReference` + an unstable `reference`\n // callback ref.\n node !== null && !isElement(node)) {\n position.refs.setReference(node);\n }\n }, [position.refs]);\n const refs = React.useMemo(() => ({\n ...position.refs,\n setReference,\n setPositionReference,\n domReference: domReferenceRef\n }), [position.refs, setReference, setPositionReference]);\n const elements = React.useMemo(() => ({\n ...position.elements,\n domReference: domReference\n }), [position.elements, domReference]);\n const onOpenChange = useEvent(unstable_onOpenChange);\n const context = React.useMemo(() => ({\n ...position,\n refs,\n elements,\n dataRef,\n nodeId,\n events,\n open,\n onOpenChange\n }), [position, nodeId, events, open, onOpenChange, refs, elements]);\n index(() => {\n const node = tree == null ? void 0 : tree.nodesRef.current.find(node => node.id === nodeId);\n if (node) {\n node.context = context;\n }\n });\n return React.useMemo(() => ({\n ...position,\n context,\n refs,\n reference: setReference,\n positionReference: setPositionReference\n }), [position, refs, context, setReference, setPositionReference]);\n}\n\nfunction mergeProps(userProps, propsList, elementKey) {\n const map = new Map();\n return {\n ...(elementKey === 'floating' && {\n tabIndex: -1\n }),\n ...userProps,\n ...propsList.map(value => value ? value[elementKey] : null).concat(userProps).reduce((acc, props) => {\n if (!props) {\n return acc;\n }\n Object.entries(props).forEach(_ref => {\n let [key, value] = _ref;\n if (key.indexOf('on') === 0) {\n if (!map.has(key)) {\n map.set(key, []);\n }\n if (typeof value === 'function') {\n var _map$get;\n (_map$get = map.get(key)) == null ? void 0 : _map$get.push(value);\n acc[key] = function () {\n var _map$get2;\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n (_map$get2 = map.get(key)) == null ? void 0 : _map$get2.forEach(fn => fn(...args));\n };\n }\n } else {\n acc[key] = value;\n }\n });\n return acc;\n }, {})\n };\n}\nconst useInteractions = function (propsList) {\n if (propsList === void 0) {\n propsList = [];\n }\n // The dependencies are a dynamic array, so we can't use the linter's\n // suggestion to add it to the deps array.\n const deps = propsList;\n const getReferenceProps = React.useCallback(userProps => mergeProps(userProps, propsList, 'reference'),\n // eslint-disable-next-line react-hooks/exhaustive-deps\n deps);\n const getFloatingProps = React.useCallback(userProps => mergeProps(userProps, propsList, 'floating'),\n // eslint-disable-next-line react-hooks/exhaustive-deps\n deps);\n const getItemProps = React.useCallback(userProps => mergeProps(userProps, propsList, 'item'),\n // Granularly check for `item` changes, because the `getItemProps` getter\n // should be as referentially stable as possible since it may be passed as\n // a prop to many components. All `item` key values must therefore be\n // memoized.\n // eslint-disable-next-line react-hooks/exhaustive-deps\n propsList.map(key => key == null ? void 0 : key.item));\n return React.useMemo(() => ({\n getReferenceProps,\n getFloatingProps,\n getItemProps\n }), [getReferenceProps, getFloatingProps, getItemProps]);\n};\n\nexport { FloatingDelayGroup, FloatingFocusManager, FloatingNode, FloatingOverlay, FloatingPortal, FloatingTree, inner, safePolygon, useClick, useDelayGroup, useDelayGroupContext, useDismiss, useFloating, useFloatingNodeId, useFloatingParentNodeId, useFloatingPortalNode, useFloatingTree, useFocus, useHover, useId, useInnerOffset, useInteractions, useListNavigation, useMergeRefs, useRole, useTransitionStatus, useTransitionStyles, useTypeahead };\n","import React from 'react';\nimport { TooltipState } from './types';\n\nexport const TooltipContext = React.createContext<TooltipState | null>(null);\n","import { ReactNode } from 'react';\nimport { ValueOf } from '~/types';\nimport { useTooltip } from './useTooltip';\n\n/**\n * Context props.\n */\nexport type TooltipState = ReturnType<typeof useTooltip> | null;\n\n/**\n * Component variant.\n */\nexport const TooltipPlacement = {\n top: 'top',\n right: 'right',\n bottom: 'bottom',\n left: 'left',\n 'top-start': 'top-start',\n 'top-end': 'top-end',\n 'right-start': 'right-start',\n 'right-end': 'right-end',\n 'bottom-start': 'bottom-start',\n 'bottom-end': 'bottom-end',\n 'left-start': 'left-start',\n 'left-end': 'left-end',\n} as const;\nexport type TooltipPlacement = ValueOf<typeof TooltipPlacement>;\n\n/**\n * Component props.\n */\nexport interface TooltipProps {\n /** Children. Can only be TooltipTrigger and TooltilContent. */\n children: ReactNode;\n /**\n * Default open status.\n * Used for uncontrolled version.\n */\n defaultOpen?: boolean;\n /** Delay time (in ms) for the tooltip to show up. */\n delay?: number;\n /** Default placement of the tooltip. */\n placement?: TooltipPlacement;\n /**\n * Whether the component is opened or not.\n * Used for controlled version.\n */\n isOpen?: boolean;\n /** Method to handle component change. */\n onOpen?: (open: boolean) => void;\n /** Id to the tooltip content. */\n tooltipId?: string;\n}\n\nexport type StyledTooltipProps = TooltipProps;\n","import styled, { css } from 'styled-components';\nimport { baseContainer } from '~/components/shared';\nimport { TooltipPlacement } from '../tooltip';\nimport { StyledTooltipContentProps } from './types';\n\n/**\n * Component style.\n */\nexport const StyledTooltipContent = styled.div<StyledTooltipContentProps>`\n ${baseContainer}\n\n align-items: center;\n background-color: var(--redsift-color-neutral-white);\n box-shadow: 0px 2px 4px -1px rgba(0, 0, 0, 0.2);\n color: var(--redsift-color-neutral-black);\n display: flex;\n filter: drop-shadow(0px 4px 5px rgba(0, 0, 0, 0.14))\n drop-shadow(0px 1px 10px rgba(0, 0, 0, 0.12));\n font-family: var(--redsift-typography-tooltip-font-family);\n font-size: var(--redsift-typography-tooltip-font-size);\n font-weight: var(--redsift-typography-tooltip-font-weight);\n line-height: var(--redsift-typography-tooltip-line-height);\n max-width: calc(100vw - 48px);\n padding: 4px 8px;\n z-index: var(--redsift-layout-z-index-tooltip);\n\n .redsift-tooltip-content__arrow {\n position: absolute;\n width: 0;\n height: 0;\n border-color: var(--redsift-color-neutral-white);\n border-style: solid;\n }\n\n ${({ $placement }) => {\n switch ($placement) {\n case TooltipPlacement.left:\n case TooltipPlacement['left-end']:\n case TooltipPlacement['left-start']:\n return css`\n .redsift-tooltip-content__arrow {\n border-width: 6px 0 6px 6px;\n border-top-color: transparent;\n border-right-color: transparent;\n border-bottom-color: transparent;\n }\n `;\n case TooltipPlacement.top:\n case TooltipPlacement['top-end']:\n case TooltipPlacement['top-start']:\n return css`\n .redsift-tooltip-content__arrow {\n border-width: 6px 6px 0;\n border-right-color: transparent;\n border-bottom-color: transparent;\n border-left-color: transparent;\n }\n `;\n case TooltipPlacement.right:\n case TooltipPlacement['right-end']:\n case TooltipPlacement['right-start']:\n return css`\n .redsift-tooltip-content__arrow {\n border-width: 6px 6px 6px 0;\n border-top-color: transparent;\n border-bottom-color: transparent;\n border-left-color: transparent;\n }\n `;\n case TooltipPlacement.bottom:\n case TooltipPlacement['bottom-end']:\n case TooltipPlacement['bottom-start']:\n default:\n return css`\n .redsift-tooltip-content__arrow {\n border-width: 0 6px 6px;\n border-top-color: transparent;\n border-right-color: transparent;\n border-left-color: transparent;\n }\n `;\n }\n }}\n`;\n","import React, { forwardRef } from 'react';\nimport { useMergeRefs, FloatingPortal } from '@floating-ui/react';\n\nimport { Comp } from '~/types';\nimport { TooltipContentProps } from './types';\nimport { TooltipPlacement, useTooltipContext } from '../tooltip';\nimport { StyledTooltipContent } from './styles';\nimport classNames from 'classnames';\n\nconst COMPONENT_NAME = 'TooltipContent';\nconst CLASSNAME = 'redsift-tooltip-content';\nconst DEFAULT_PROPS: Partial<TooltipContentProps> = {};\n\n/**\n * The TooltipContent component.\n */\nexport const TooltipContent: Comp<TooltipContentProps, HTMLDivElement> =\n forwardRef((props, ref) => {\n const { children, className, style } = props;\n const {\n getFloatingProps,\n isOpen,\n placement,\n refs,\n strategy,\n tooltipId,\n x,\n y,\n middlewareData: { arrow: { x: arrowX, y: arrowY } = {} },\n } = useTooltipContext();\n const popoverRef = useMergeRefs([refs.setFloating, ref]);\n\n const { arrowRef } = useTooltipContext();\n\n const staticSide = {\n top: 'bottom',\n right: 'left',\n bottom: 'top',\n left: 'right',\n }[placement.split('-')[0]];\n\n return (\n <FloatingPortal id={tooltipId}>\n {isOpen && (\n <StyledTooltipContent\n className={classNames(TooltipContent.className, className)}\n ref={popoverRef}\n style={{\n position: strategy,\n top: y ?? 0,\n left: x ?? 0,\n visibility: x == null ? 'hidden' : 'visible',\n ...style,\n }}\n {...getFloatingProps(props)}\n $placement={placement as TooltipPlacement}\n >\n <div\n ref={arrowRef}\n className={`${TooltipContent.className}__arrow`}\n style={{\n left: arrowX != null ? `${arrowX}px` : '',\n top: arrowY != null ? `${arrowY}px` : '',\n [staticSide!]: '-6px',\n }}\n />\n <div className={`${TooltipContent.className}__inner`}>\n {children}\n </div>\n </StyledTooltipContent>\n )}\n </FloatingPortal>\n );\n });\nTooltipContent.className = CLASSNAME;\nTooltipContent.defaultProps = DEFAULT_PROPS;\nTooltipContent.displayName = COMPONENT_NAME;\n","import React, { forwardRef, ReactElement } from 'react';\nimport { useMergeRefs } from '@floating-ui/react';\n\nimport { Comp } from '~/types';\nimport { useTooltipContext } from '../tooltip';\nimport { TooltipTriggerProps } from './types';\n\nconst COMPONENT_NAME = 'TooltipTrigger';\nconst CLASSNAME = 'redsift-tooltip-trigger';\nconst DEFAULT_PROPS: Partial<TooltipTriggerProps> = {};\n\n/**\n * The TooltipTrigger component.\n */\nexport const TooltipTrigger: Comp<TooltipTriggerProps, HTMLSpanElement> =\n forwardRef((props, ref) => {\n const { children } = props;\n\n const { getReferenceProps, refs, tooltipId } = useTooltipContext();\n const childrenRef = (children as any).ref;\n const triggerRef = useMergeRefs([refs.setReference, ref, childrenRef]);\n\n if (React.isValidElement(children)) {\n return React.cloneElement(children as ReactElement, {\n ...getReferenceProps({\n ref: triggerRef,\n ...props,\n 'aria-describedby': tooltipId,\n ...children.props,\n }),\n });\n }\n\n return (\n <span ref={triggerRef} {...getReferenceProps(props)}>\n {children}\n </span>\n );\n });\nTooltipTrigger.className = CLASSNAME;\nTooltipTrigger.defaultProps = DEFAULT_PROPS;\nTooltipTrigger.displayName = COMPONENT_NAME;\n","import React, { useCallback, useEffect, useId, useRef, useState } from 'react';\nimport {\n useFloating,\n arrow,\n autoUpdate,\n offset,\n flip,\n shift,\n useHover,\n useFocus,\n useDismiss,\n useRole,\n useInteractions,\n} from '@floating-ui/react';\nimport { TooltipProps } from './types';\n\nexport function useTooltip({\n defaultOpen,\n delay,\n placement,\n isOpen: propsIsOpen,\n onOpen,\n tooltipId: propsTooltipId,\n}: Omit<TooltipProps, 'children'>) {\n const arrowRef = useRef(null);\n const [isOpen, setIsOpen] = useState(propsIsOpen ?? defaultOpen);\n\n const tooltipId = propsTooltipId ?? useId();\n\n useEffect(() => {\n setIsOpen(propsIsOpen ?? defaultOpen);\n }, [propsIsOpen, defaultOpen]);\n\n const handleOpen = useCallback(\n (collapsed: boolean) => {\n if (onOpen) {\n onOpen(collapsed);\n }\n if (propsIsOpen === undefined || propsIsOpen === null) {\n setIsOpen(collapsed);\n }\n },\n [onOpen]\n );\n\n const data = useFloating({\n placement,\n open: isOpen,\n onOpenChange: handleOpen,\n whileElementsMounted: autoUpdate,\n middleware: [\n offset(8),\n flip({\n fallbackAxisSideDirection: 'start',\n }),\n shift({ padding: 8 }),\n arrow({\n element: arrowRef,\n }),\n ],\n });\n\n const context = data.context;\n\n const hover = useHover(context, {\n move: false,\n delay: {\n open: delay,\n close: 0,\n },\n });\n const focus = useFocus(context);\n const dismiss = useDismiss(context);\n const role = useRole(context, { role: 'tooltip' });\n\n const interactions = useInteractions([hover, focus, dismiss, role]);\n\n return React.useMemo(\n () => ({\n isOpen,\n handleOpen,\n ...interactions,\n ...data,\n arrowRef,\n tooltipId,\n }),\n [isOpen, handleOpen, interactions, data, arrowRef, tooltipId]\n );\n}\n","import React from 'react';\nimport { partitionComponents, isComponent } from '~/utils';\nimport { TooltipContent } from '../tooltip-content';\nimport { TooltipTrigger } from '../tooltip-trigger';\n\nimport { TooltipContext } from './context';\nimport { TooltipPlacement, TooltipProps } from './types';\nimport { useTooltip } from './useTooltip';\n\nconst COMPONENT_NAME = 'Tooltip';\nconst CLASSNAME = 'redsift-tooltip';\nconst DEFAULT_PROPS: Partial<TooltipProps> = {\n delay: 500,\n placement: TooltipPlacement.top,\n};\n\n/**\n * The Tooltip component.\n */\nexport const BaseTooltip: React.FC<TooltipProps> & {\n displayName?: string;\n className?: string;\n} = (props) => {\n const { children, defaultOpen, delay, isOpen, onOpen, placement, tooltipId } =\n props;\n\n const tooltip = useTooltip({\n defaultOpen,\n delay,\n placement,\n isOpen,\n onOpen,\n tooltipId,\n });\n\n const [[trigger], [content]] = partitionComponents(\n React.Children.toArray(children),\n [isComponent('TooltipTrigger'), isComponent('TooltipContent')]\n );\n\n return (\n <TooltipContext.Provider value={tooltip}>\n {trigger}\n {content}\n </TooltipContext.Provider>\n );\n};\nBaseTooltip.className = CLASSNAME;\nBaseTooltip.defaultProps = DEFAULT_PROPS;\nBaseTooltip.displayName = COMPONENT_NAME;\n\nexport const Tooltip = Object.assign(BaseTooltip, {\n Trigger: TooltipTrigger,\n Content: TooltipContent,\n});\n","import React from 'react';\nimport { TooltipContext } from './context';\n\nexport const useTooltipContext = () => {\n const context = React.useContext(TooltipContext);\n\n if (context == null) {\n throw new Error('Tooltip components must be wrapped in <Tooltip />');\n }\n\n return context;\n};\n","import React, {\n forwardRef,\n ReactElement,\n ReactNode,\n RefObject,\n useCallback,\n useEffect,\n useState,\n} from 'react';\nimport classNames from 'classnames';\n\nimport { useLocalizedStringFormatter } from '@react-aria/i18n';\nimport intlMessages from './intl';\n\nimport { mdiKeyboardCaps, mdiPageLast } from '@redsift/icons';\nimport { Comp } from '~/types';\nimport { Icon } from '~/components/icon';\nimport { Flexbox } from '~/components/flexbox';\nimport { IconButton } from '~/components/icon-button';\nimport { Shield } from '~/components/shield';\nimport {\n DetailedCardSection,\n DetailedCardSectionProps,\n} from '~/components/detailed-card-section';\nimport { StyledDetailedCard } from './styles';\nimport { DetailedCardProps } from './types';\nimport { partitionComponents, isComponent } from '~/utils';\nimport { DetailedCardCollapsibleSectionItems } from '~/components/detailed-card-collapsible-section-items';\nimport { DetailedCardHeader } from '../detailed-card-header';\nimport { DetailedCardSectionItem } from '../detailed-card-section-item';\nimport { Tooltip } from '@redsift/popovers';\nimport { Skeleton } from '../skeleton';\n\nconst COMPONENT_NAME = 'DetailedCard';\nconst CLASSNAME = 'redsift-detailed-card';\nconst DEFAULT_PROPS: Partial<DetailedCardProps> = {\n isCollapsible: true,\n width: '400px',\n};\n\nconst hasMultipleCollapsibleChildren = (children: ReactNode): boolean => {\n const collapsibleChildren: ReactNode[] = [];\n\n const childrenArray = React.Children.toArray(children);\n for (const child of childrenArray) {\n if (isComponent(DetailedCardSection)(child)) {\n let hasCollapsibleItems = Boolean(\n (child as DetailedCardSectionProps).isCollapsible\n );\n React.Children.forEach(child.props.children, (sectionChild) => {\n if (isComponent(DetailedCardCollapsibleSectionItems)(sectionChild)) {\n hasCollapsibleItems = true;\n }\n });\n\n if (hasCollapsibleItems) {\n collapsibleChildren.push(child);\n }\n }\n }\n\n return collapsibleChildren.length > 1;\n};\n\n/**\n * The DetailedCard component.\n */\nconst BaseDetailedCard: Comp<DetailedCardProps, HTMLDivElement> = forwardRef(\n (props, ref) => {\n const {\n areAllCollapsed: propsAreAllCollapsed,\n children,\n className,\n color,\n defaultAllCollapsed,\n icon,\n isCollapsible: propsIsCollapsible,\n isLoading,\n onCollapseAll,\n shield,\n ...forwardedProps\n } = props;\n\n const stringFormatter = useLocalizedStringFormatter(intlMessages);\n\n const isCollapsible =\n propsIsCollapsible && hasMultipleCollapsibleChildren(children);\n\n const [allCollapsed, setAllCollapsed] = useState({\n state: propsAreAllCollapsed ?? defaultAllCollapsed,\n });\n\n useEffect(() => {\n setAllCollapsed({\n state: propsAreAllCollapsed ?? defaultAllCollapsed,\n });\n }, [propsAreAllCollapsed, defaultAllCollapsed]);\n\n const handleCollapse = useCallback(\n (allCollapsed: boolean) => {\n if (onCollapseAll) {\n onCollapseAll(allCollapsed);\n }\n if (\n propsAreAllCollapsed === undefined ||\n propsAreAllCollapsed === null\n ) {\n setAllCollapsed({\n state: allCollapsed,\n });\n }\n },\n [onCollapseAll]\n );\n\n const [[header], content] = partitionComponents(\n React.Children.toArray(children),\n [isComponent('DetailedCardHeader')]\n );\n\n return (\n <StyledDetailedCard\n {...forwardedProps}\n className={classNames(BaseDetailedCard.className, className)}\n ref={ref as RefObject<HTMLDivElement>}\n $color={color}\n >\n {color ? (\n isLoading ? (\n <Skeleton\n height=\"80px\"\n width=\"calc(100% + 32px)\"\n margin=\"-16px -16px 16px -16px\"\n />\n ) : (\n <Flexbox\n className={`${BaseDetailedCard.className}__banner`}\n alignItems=\"center\"\n height=\"80px\"\n justifyContent=\"center\"\n margin=\"-16px -16px 16px -16px\"\n width=\"calc(100% + 32px)\"\n >\n {shield ? (\n <Shield\n variant={shield}\n isOutlined\n isReversed\n svgProps={{ width: '40px', height: '40px' }}\n style={{ width: '40px', height: '40px' }}\n />\n ) : icon ? (\n <Icon icon={icon} color=\"white\" size=\"xlarge\" />\n ) : null}\n </Flexbox>\n )\n ) : null}\n {header ? (\n <div className={`${BaseDetailedCard.className}__header`}>\n {header}\n </div>\n ) : null}\n {isCollapsible ? (\n <Flexbox\n justifyContent=\"flex-end\"\n className={`${BaseDetailedCard.className}__collapse-buttons`}\n >\n <Tooltip>\n <Tooltip.Trigger>\n <IconButton\n aria-label={stringFormatter.format('collapse-all')}\n aria-describedby={undefined}\n icon={mdiPageLast}\n onPress={() => handleCollapse(true)}\n style={{ transform: 'rotate(-90deg)' }}\n color=\"question\"\n />\n </Tooltip.Trigger>\n <Tooltip.Content>\n {stringFormatter.format('collapse-all')}\n </Tooltip.Content>\n </Tooltip>\n <Tooltip>\n <Tooltip.Trigger>\n <IconButton\n aria-label={stringFormatter.format('expand-all')}\n aria-describedby={undefined}\n icon={mdiKeyboardCaps}\n onPress={() => handleCollapse(false)}\n style={{ transform: 'rotate(180deg)' }}\n color=\"question\"\n />\n </Tooltip.Trigger>\n <Tooltip.Content>\n {stringFormatter.format('expand-all')}\n </Tooltip.Content>\n </Tooltip>\n </Flexbox>\n ) : null}\n\n {React.Children.map(content, (child) => {\n if (isComponent(DetailedCardSection)(child)) {\n return React.cloneElement(child as ReactElement, {\n isCollapsed: allCollapsed.state,\n key: Math.random(),\n });\n }\n return child;\n })}\n </StyledDetailedCard>\n );\n }\n);\nBaseDetailedCard.className = CLASSNAME;\nBaseDetailedCard.defaultProps = DEFAULT_PROPS;\nBaseDetailedCard.displayName = COMPONENT_NAME;\n\nexport const DetailedCard = Object.assign(BaseDetailedCard, {\n Header: DetailedCardHeader,\n Section: DetailedCardSection,\n CollapsibleSectionItems: DetailedCardCollapsibleSectionItems,\n SectionItem: DetailedCardSectionItem,\n});\n","import styled from 'styled-components';\nimport {\n baseGrid,\n baseInternalSpacing,\n baseStyling,\n} from '~/components/shared';\nimport { StyledGridProps } from './types';\n\n/**\n * Component style.\n */\nexport const StyledGrid = styled.div<StyledGridProps>`\n display: ${({ inline }) => (inline ? 'inline-grid' : 'grid')};\n\n ${baseStyling}\n ${baseInternalSpacing}\n ${baseGrid}\n`;\n","import styled from 'styled-components';\nimport { baseInternalSpacing, baseStyling } from '~/components/shared';\nimport { StyledGridItemProps } from './types';\n\n/**\n * Component style.\n */\nexport const StyledGridItem = styled.div<StyledGridItemProps>`\n display: inherit;\n\n ${baseStyling}\n ${baseInternalSpacing}\n`;\n","import React, { forwardRef, RefObject } from 'react';\nimport classNames from 'classnames';\nimport { Comp } from '~/types';\nimport { StyledGridItem } from './styles';\nimport { GridItemProps } from './types';\n\nconst COMPONENT_NAME = 'GridItem';\nconst CLASSNAME = 'redsift-grid-item';\nconst DEFAULT_PROPS: Partial<GridItemProps> = {};\n\n/**\n * The GridItem component.\n */\nexport const GridItem: Comp<GridItemProps, HTMLDivElement> = forwardRef(\n (props, ref) => {\n const { children, className, ...forwardedProps } = props;\n\n return (\n <StyledGridItem\n {...forwardedProps}\n className={classNames(GridItem.className, className)}\n ref={ref as RefObject<HTMLDivElement>}\n >\n {children}\n </StyledGridItem>\n );\n }\n);\nGridItem.className = CLASSNAME;\nGridItem.defaultProps = DEFAULT_PROPS;\nGridItem.displayName = COMPONENT_NAME;\n","import React, { forwardRef, RefObject } from 'react';\nimport classNames from 'classnames';\nimport { Comp } from '~/types';\nimport { StyledGrid } from './styles';\nimport { GridProps } from './types';\nimport { GridItem } from '../grid-item';\n\nconst COMPONENT_NAME = 'Grid';\nconst CLASSNAME = 'redsift-grid';\nconst DEFAULT_PROPS: Partial<GridProps> = {};\n\n/**\n * The Grid component.\n */\nexport const BaseGrid: Comp<GridProps, HTMLDivElement> = forwardRef(\n (props, ref) => {\n const { children, className, ...forwardedProps } = props;\n\n return (\n <StyledGrid\n {...forwardedProps}\n className={classNames(BaseGrid.className, className)}\n ref={ref as RefObject<HTMLDivElement>}\n >\n {children}\n </StyledGrid>\n );\n }\n);\nBaseGrid.className = CLASSNAME;\nBaseGrid.defaultProps = DEFAULT_PROPS;\nBaseGrid.displayName = COMPONENT_NAME;\n\nexport const Grid = Object.assign(BaseGrid, {\n Item: GridItem,\n});\n","import styled, { css } from 'styled-components';\nimport { baseStyling } from '~/components/shared';\nimport { StyledLinkProps } from './types';\n\n/**\n * Component style.\n */\nexport const StyledLink = styled.a<StyledLinkProps>`\n ${baseStyling}\n\n background: none;\n border: none;\n color: inherit;\n cursor: text !important;\n font-family: var(--redsift-typography-link-font-family);\n font-size: var(--redsift-typography-link-font-size);\n font-weight: var(--redsift-typography-link-font-weight);\n line-height: var(--redsift-typography-link-line-height);\n padding: unset;\n text-decoration: none;\n\n ${({ $isDisabled }) =>\n !$isDisabled\n ? css`\n color: var(--redsift-color-success-primary);\n text-decoration: underline;\n text-decoration-color: var(--redsift-color-success-secondary);\n text-underline-offset: 2px;\n\n &:hover,\n &:focus-visible {\n cursor: pointer !important;\n text-decoration-color: var(--redsift-color-success-primary);\n }\n `\n : ''}\n\n &:focus-visible {\n outline: 2px solid var(--redsift-color-success-primary);\n }\n`;\n","import React, { forwardRef, RefObject } from 'react';\nimport classNames from 'classnames';\nimport { Comp } from '~/types';\nimport { StyledLink } from './styles';\nimport { LinkProps } from './types';\n\nconst COMPONENT_NAME = 'Link';\nconst CLASSNAME = 'redsift-link';\nconst DEFAULT_PROPS: Partial<LinkProps> = {};\n\n/**\n * The Link is a semantic link that looks like a link.\n * Shoud be used for internal and external navigation only.\n *\n * For a semantic link that looks like a button, please use the ButtonLink component.\n * For a semantic button that looks like a button, please use the Button component.\n * For a semantic button that looks like a link, please use the LinkButton component.\n */\nexport const Link: Comp<LinkProps, HTMLAnchorElement> = forwardRef(\n (props, ref) => {\n const { children, className, href, isDisabled, ...forwardedProps } = props;\n\n return (\n <StyledLink\n aria-disabled={isDisabled}\n role=\"link\"\n tabIndex={!isDisabled ? 0 : undefined}\n {...forwardedProps}\n $isDisabled={isDisabled}\n className={classNames(Link.className, className)}\n href={!isDisabled ? href : undefined}\n ref={ref as RefObject<HTMLAnchorElement>}\n >\n {children}\n </StyledLink>\n );\n }\n);\nLink.className = CLASSNAME;\nLink.defaultProps = DEFAULT_PROPS;\nLink.displayName = COMPONENT_NAME;\n","import React, { forwardRef, RefObject, useRef } from 'react';\nimport classNames from 'classnames';\nimport { useButton } from '@react-aria/button';\nimport { AriaButtonProps } from '@react-types/button';\nimport { Comp } from '~/types';\nimport { StyledLink } from '~/components/link';\nimport { LinkButtonProps } from './types';\n\nconst COMPONENT_NAME = 'LinkButton';\nconst CLASSNAME = 'redsift-link-button';\nconst DEFAULT_PROPS: Partial<LinkButtonProps> = {};\n\n/**\n * The LinkButton is a semantic button that looks like a link.\n *\n * For a semantic button that looks like a button, please use the Button component.\n * For a semantic link that looks like a link, please use the Link component.\n * For a semantic link that looks like a button, please use the ButtonLink component.\n */\nexport const LinkButton: Comp<LinkButtonProps, HTMLButtonElement> = forwardRef(\n (props, ref) => {\n const buttonRef = ref || useRef<HTMLButtonElement>();\n const { buttonProps } = useButton(\n {\n ...props,\n isDisabled: props.isDisabled || props.disabled,\n preventFocusOnPress: true,\n } as AriaButtonProps<'button'>,\n buttonRef as RefObject<HTMLButtonElement>\n );\n\n const {\n children,\n className,\n disabled,\n isDisabled,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n onPress,\n ...forwardedProps\n } = props;\n\n return (\n <StyledLink\n as=\"button\"\n {...forwardedProps}\n {...buttonProps}\n $isDisabled={isDisabled || disabled}\n aria-disabled={isDisabled || disabled}\n className={classNames(LinkButton.className, className)}\n disabled={isDisabled || disabled}\n // @ts-ignore\n ref={buttonRef as RefObject<HTMLButtonElement>}\n >\n {children}\n </StyledLink>\n );\n }\n);\nLinkButton.className = CLASSNAME;\nLinkButton.defaultProps = DEFAULT_PROPS;\nLinkButton.displayName = COMPONENT_NAME;\n","import styled from 'styled-components';\nimport { StyledText } from '~/components/text/styles';\nimport { StyledNumberProps } from './types';\n\n/**\n * Component style.\n */\nexport const StyledNumber = styled(StyledText)<StyledNumberProps>`\n font-family: var(--redsift-typography-font-family-source-code-pro);\n`;\n","import React, { forwardRef, RefObject } from 'react';\nimport { useNumberFormatter } from '@react-aria/i18n';\nimport classNames from 'classnames';\nimport { Comp } from '~/types';\nimport { StyledNumber } from './styles';\nimport { NumberProps } from './types';\n\nconst COMPONENT_NAME = 'Number';\nconst CLASSNAME = 'redsift-number';\nconst DEFAULT_PROPS: Partial<NumberProps> = {\n compactDisplay: 'short',\n currencyDisplay: 'symbol',\n currencySign: 'standard',\n localeMatcher: 'best fit',\n notation: 'standard',\n signDisplay: 'auto',\n type: 'decimal',\n unitDisplay: 'short',\n roundingMode: 'halfExpand',\n roundingPriority: 'auto',\n trailingZeroDisplay: 'auto',\n};\n\n/**\n * The Number component.\n */\nexport const Number: Comp<NumberProps, HTMLDivElement> = forwardRef(\n (props, ref) => {\n const {\n as,\n className,\n color,\n compactDisplay,\n currency,\n currencyDisplay,\n currencySign,\n fontSize,\n lineHeight,\n localeMatcher,\n maximumFractionDigits,\n maximumSignificantDigits,\n minimumFractionDigits,\n minimumIntegerDigits,\n minimumSignificantDigits,\n notation,\n noWrap,\n numberingSystem,\n roundingIncrement,\n roundingMode,\n roundingPriority,\n signDisplay,\n trailingZeroDisplay,\n type,\n unit,\n unitDisplay,\n useGrouping,\n value,\n variant,\n ...forwardedProps\n } = props;\n const formatter = useNumberFormatter({\n compactDisplay,\n currency,\n currencyDisplay,\n currencySign,\n localeMatcher,\n ...(maximumFractionDigits !== undefined && { maximumFractionDigits }),\n ...(maximumSignificantDigits !== undefined && {\n maximumSignificantDigits,\n }),\n ...(minimumFractionDigits !== undefined && { minimumFractionDigits }),\n ...(minimumIntegerDigits !== undefined && { minimumIntegerDigits }),\n ...(minimumSignificantDigits !== undefined && {\n minimumSignificantDigits,\n }),\n notation,\n numberingSystem,\n // @ts-ignore\n roundingIncrement,\n // @ts-ignore\n roundingMode,\n // @ts-ignore\n roundingPriority,\n signDisplay,\n style: type,\n // @ts-ignore\n trailingZeroDisplay,\n unit,\n unitDisplay,\n useGrouping,\n });\n\n return (\n <StyledNumber\n as={as}\n {...forwardedProps}\n $as={as}\n className={classNames(Number.className, className)}\n ref={ref as RefObject<HTMLDivElement>}\n $color={color}\n $lineHeight={lineHeight}\n $fontSize={fontSize}\n $noWrap={noWrap}\n $variant={variant}\n >\n {formatter.format(value)}\n </StyledNumber>\n );\n }\n);\nNumber.className = CLASSNAME;\nNumber.defaultProps = DEFAULT_PROPS;\nNumber.displayName = COMPONENT_NAME;\n","import { ComponentProps } from 'react';\nimport { StylingProps, ValueOf } from '~/types';\n\n/**\n * Context props.\n */\nexport type RadioGroupState = {\n /** Whether the radio group is disabled or not. */\n readonly isDisabled: boolean;\n /** Whether the radio group is read only or not. */\n readonly isReadOnly: boolean;\n /** Sets the selected value. */\n setValue(value: string): void;\n /** Current selected value. */\n readonly value: string;\n};\n\n/**\n * Component orientation.\n */\nexport const RadioGroupOrientation = {\n horizontal: 'horizontal',\n vertical: 'vertical',\n} as const;\nexport type RadioGroupOrientation = ValueOf<typeof RadioGroupOrientation>;\n\n/**\n * Component props.\n */\nexport interface RadioGroupProps\n extends Omit<ComponentProps<'div'>, 'onChange'>,\n StylingProps {\n /**\n * Default selected value.\n * Used for uncontrolled version.\n */\n defaultValue?: string;\n /** Description of the radio group. */\n description?: string;\n /** Whether the component is disabled or not. */\n isDisabled?: boolean;\n /** Whether the component is invalid or not. */\n isInvalid?: boolean;\n /** Whether the component is read only or not. */\n isReadOnly?: boolean;\n /** Whether the component is required or not. */\n isRequired?: boolean;\n /** Label of the radio group. */\n label?: string;\n /** Method to handle component change. */\n onChange?(values: string): void;\n /** Method to handle component change. */\n orientation?: RadioGroupOrientation;\n /** List of possible values. Useful to select all. */\n possibleValues?: string[];\n /**\n * Currently selected value.\n * Used for controlled version.\n */\n value?: string;\n}\n\nexport type StyledRadioGroupProps = Omit<\n RadioGroupProps,\n 'isDisabled' | 'isInvalid' | 'isReadOnly' | 'orientation' | 'isRequired'\n> & {\n $isDisabled: RadioGroupProps['isDisabled'];\n $isInvalid: RadioGroupProps['isInvalid'];\n $isReadOnly: RadioGroupProps['isReadOnly'];\n $orientation: RadioGroupProps['orientation'];\n};\n","import React from 'react';\nimport { RadioGroupState } from './types';\n\nexport const RadioGroupContext =\n React.createContext<RadioGroupState | null>(null);\n","import styled from 'styled-components';\nimport { baseStyling } from '~/components/shared';\nimport { RadioGroupOrientation, StyledRadioGroupProps } from './types';\n\n/**\n * Component style.\n */\nexport const StyledRadioGroup = styled.div<StyledRadioGroupProps>`\n ${baseStyling}\n\n display: flex;\n flex-direction: column;\n\n ${({ $orientation }) =>\n $orientation === RadioGroupOrientation.vertical\n ? `\n div.redsift-radio-group-boxes {\n display: flex;\n flex-direction: column;\n }\n `\n : `\n div.redsift-radio-group-boxes {\n display: flex;\n flex-direction: row;\n flex-wrap: wrap;\n }\n `}\n\n span.redsift-radio-group-label {\n font-family: var(--redsift-typography-body-font-family);\n font-weight: var(--redsift-typography-body-font-weight);\n font-size: var(--redsift-typography-body-font-size);\n line-height: var(--redsift-typography-body-line-height);\n\n color: var(--redsift-color-neutral-black);\n ${({ $isDisabled }) =>\n $isDisabled\n ? `\n color: var(--redsift-color-neutral-midgrey);\n `\n : ''}\n ${({ $isInvalid }) =>\n $isInvalid\n ? `\n color: var(--redsift-color-error-primary);\n `\n : ''}\n }\n\n span.redsift-radio-group-description {\n font-family: var(--redsift-typography-helper-font-family);\n font-weight: var(--redsift-typography-helper-font-weight);\n font-size: var(--redsift-typography-helper-font-size);\n line-height: var(--redsift-typography-helper-line-height);\n\n color: var(--redsift-color-neutral-darkgrey);\n ${({ $isDisabled }) =>\n $isDisabled\n ? `\n color: var(--redsift-color-neutral-midgrey);\n `\n : ''}\n ${({ $isInvalid }) =>\n $isInvalid\n ? `\n color: var(--redsift-color-error-primary);\n `\n : ''}\n }\n`;\n","import React, { forwardRef, RefObject, useEffect, useState } from 'react';\nimport classNames from 'classnames';\nimport { ColorPalette, Comp } from '~/types';\nimport { RadioGroupOrientation, RadioGroupProps } from './types';\nimport { RadioGroupContext } from './context';\nimport { StyledRadioGroup } from './styles';\n\nconst COMPONENT_NAME = 'RadioGroup';\nconst CLASSNAME = 'redsift-radio-group';\nconst DEFAULT_PROPS: Partial<RadioGroupProps> = {\n color: ColorPalette.default,\n orientation: RadioGroupOrientation.vertical,\n};\n\n/**\n * The RadioGroup component.\n * Can be used as controlled or uncontrolled.\n */\nexport const RadioGroup: Comp<RadioGroupProps, HTMLDivElement> = forwardRef(\n (props, ref) => {\n const {\n children,\n className,\n defaultValue,\n description,\n isDisabled,\n isInvalid,\n isReadOnly,\n isRequired,\n label,\n onChange,\n orientation,\n possibleValues,\n value,\n ...forwardedProps\n } = props;\n\n const [selectedValue, setValue] = useState<string>(\n value || defaultValue || ''\n );\n useEffect(() => {\n if (value) {\n state.setValue(value);\n }\n }, [value]);\n\n const state = {\n value: selectedValue,\n isDisabled: isDisabled || false,\n isReadOnly: isReadOnly || false,\n possibleValues: possibleValues,\n setValue(value: string) {\n if (isReadOnly || isDisabled) {\n return;\n }\n\n const previousValue = selectedValue;\n setValue(value);\n if (value !== previousValue && onChange) {\n onChange(value);\n }\n },\n };\n\n return (\n <StyledRadioGroup\n {...forwardedProps}\n $isDisabled={isDisabled}\n $isInvalid={isInvalid || (isRequired && selectedValue.length === 0)}\n $isReadOnly={isReadOnly}\n $orientation={orientation}\n aria-disabled={isDisabled}\n className={classNames(RadioGroup.className, className)}\n ref={ref as RefObject<HTMLDivElement>}\n role=\"radiogroup\"\n >\n <span className={`${RadioGroup.className}-label`}>\n {label}\n {isRequired ? ' *' : null}\n </span>\n <div className={`${RadioGroup.className}-boxes`}>\n <RadioGroupContext.Provider value={state}>\n {children}\n </RadioGroupContext.Provider>\n </div>\n <span className={`${RadioGroup.className}-description`}>\n {description}\n </span>\n </StyledRadioGroup>\n );\n }\n);\nRadioGroup.className = CLASSNAME;\nRadioGroup.defaultProps = DEFAULT_PROPS;\nRadioGroup.displayName = COMPONENT_NAME;\n","import styled, { css } from 'styled-components';\nimport { baseStyling } from '~/components/shared';\nimport { StyledRadioProps } from './types';\n\n/**\n * Component style.\n */\nexport const StyledRadio = styled.label<StyledRadioProps>`\n height: fit-content;\n position: relative;\n width: fit-content;\n ${baseStyling}\n\n align-items: baseline;\n background: none;\n border: none;\n display: inline-flex;\n\n input {\n height: 100%;\n margin: 0;\n opacity: 0;\n overflow: visible;\n padding: 0;\n position: absolute;\n width: 100%;\n }\n\n span.label {\n ${({ $isDisabled, $isInvalid }) =>\n $isDisabled\n ? css`\n color: var(--redsift-color-neutral-midgrey);\n `\n : $isInvalid\n ? css`\n color: var(--redsift-color-error-primary);\n `\n : css`\n color: var(--redsift-color-neutral-black);\n `}\n\n font-family: var(--redsift-typography-body-font-family);\n font-size: var(--redsift-typography-body-font-size);\n font-weight: var(--redsift-typography-body-font-weight);\n line-height: var(--redsift-typography-body-line-height);\n padding-left: 4px;\n padding-right: 16px;\n position: relative;\n top: -4px;\n\n [dir='rtl'] & {\n padding-left: 16px;\n padding-right: 4px;\n }\n }\n\n .redsift-icon {\n padding: 2px;\n width: 24px;\n\n ${({ $isColored, $isDisabled, $isInvalid, $isFocusVisible }) => css`\n ${$isDisabled\n ? css`\n color: var(--redsift-color-neutral-midgrey);\n `\n : $isInvalid\n ? css`\n color: var(--redsift-color-error-primary);\n `\n : css`\n color: var(\n --redsift-color-${$isColored ? 'default' : 'question'}-primary\n );\n `}\n\n ${$isFocusVisible && !$isDisabled\n ? css`\n background-color: var(\n --redsift-color-${$isColored ? 'default' : 'question'}-hover\n );\n border-radius: 16px;\n `\n : ''}\n `}\n }\n\n &:hover,\n &:focus-visible {\n outline: none;\n\n ${({ $isColored, $isDisabled }) =>\n !$isDisabled\n ? css`\n .redsift-icon {\n background-color: var(\n --redsift-color-${$isColored ? 'default' : 'question'}-hover\n );\n border-radius: 16px;\n }\n `\n : ''}\n }\n`;\n","import React, {\n ComponentProps,\n forwardRef,\n MutableRefObject,\n useCallback,\n useContext,\n useEffect,\n useState,\n} from 'react';\nimport classNames from 'classnames';\nimport { useFocusRing } from '@react-aria/focus';\nimport { mdiRadioboxBlank, mdiRadioboxMarked } from '@redsift/icons';\nimport { Comp } from '~/types';\nimport { Icon } from '~/components/icon';\nimport { RadioGroupContext } from '~/components/radio-group/context';\nimport { warnIfNoAccessibleLabelFound } from '~/utils/warnIfNoAccessibleLabelFound';\nimport { RadioProps } from './types';\nimport { StyledRadio } from './styles';\n\nconst COMPONENT_NAME = 'Radio';\nconst CLASSNAME = 'redsift-radio';\nconst DEFAULT_PROPS: Partial<RadioProps> = {\n isColored: true,\n};\n\n/**\n * The Radio component.\n * Works both inside a RadioGroup or as standalone.\n * Can be used as controlled or uncontrolled.\n */\nexport const Radio: Comp<RadioProps, HTMLLabelElement> = forwardRef(\n (props, ref) => {\n const groupState = useContext(RadioGroupContext);\n\n let {\n 'aria-label': ariaLabel,\n 'aria-labelledby': ariaLabelledby,\n autoFocus,\n children,\n className,\n defaultSelected,\n inputProps,\n inputRef,\n isColored,\n isDisabled,\n isInvalid,\n isReadOnly,\n isRequired,\n isSelected: propsIsSelected,\n name,\n onChange,\n value,\n ...forwardedProps\n } = props;\n\n const { isFocusVisible, focusProps } = useFocusRing({ autoFocus });\n isDisabled = isDisabled ?? groupState?.isDisabled;\n isReadOnly = isReadOnly ?? groupState?.isReadOnly;\n\n const [isSelected, setSelected] = useState<boolean | undefined>(\n propsIsSelected ??\n defaultSelected ??\n Boolean(groupState?.value && groupState.value === value)\n );\n\n useEffect(() => {\n setSelected(propsIsSelected ?? defaultSelected);\n }, [propsIsSelected, defaultSelected]);\n\n useEffect(() => {\n if (groupState) {\n setSelected(groupState.value === value);\n }\n }, [groupState?.value]);\n\n warnIfNoAccessibleLabelFound(props as ComponentProps<'label'>, [children]);\n\n if (groupState) {\n if (propsIsSelected != null) {\n console.warn(\n 'isSelected is unsupported on individual <Radio> elements within a <RadioGroup> unless the <Radio> is controlled. Please apply this prop to the group instead or pass isControlled to the component.'\n );\n }\n if (defaultSelected != null) {\n console.warn(\n 'defaultSelected is unsupported on individual <Radio> elements within a <RadioGroup> unless the <Radio> is controlled. Please apply this prop to the group instead or pass isControlled to the component.'\n );\n }\n if (props.value == null) {\n console.warn(\n 'A <Radio> element within a <RadioGroup> requires a `value` property unless the <Radio> is controlled.'\n );\n }\n }\n\n const handleChange = useCallback(\n (event: React.ChangeEvent<HTMLInputElement>) => {\n if (isDisabled || isReadOnly) {\n return;\n }\n\n if (groupState) {\n groupState.setValue(value as string);\n }\n\n if (onChange) {\n onChange(!isSelected, value, name, event, groupState!);\n }\n setSelected(event.target.checked);\n },\n [onChange, groupState]\n );\n\n return (\n <StyledRadio\n {...forwardedProps}\n $isColored={isColored}\n $isDisabled={isDisabled}\n $isFocusVisible={isFocusVisible}\n $isInvalid={isInvalid || (isRequired && !isSelected)}\n $isRequired={isRequired}\n $isSelected={isSelected}\n className={classNames(Radio.className, className)}\n ref={ref as MutableRefObject<HTMLLabelElement>}\n >\n <input\n {...inputProps}\n {...focusProps}\n aria-checked={isSelected ? 'true' : 'false'}\n aria-disabled={isDisabled}\n aria-invalid={isInvalid || (isRequired && !isSelected)}\n aria-label={ariaLabel}\n aria-labelledby={ariaLabelledby}\n aria-readonly={isReadOnly}\n aria-required={isRequired}\n checked={isSelected ? true : false}\n disabled={isDisabled}\n name={name}\n onChange={handleChange}\n ref={inputRef as MutableRefObject<HTMLInputElement>}\n type=\"radio\"\n value={value}\n />\n {isSelected ? (\n <Icon icon={mdiRadioboxMarked} />\n ) : (\n <Icon icon={mdiRadioboxBlank} />\n )}\n {children ? <span className=\"label\">{children}</span> : null}\n </StyledRadio>\n );\n }\n);\nRadio.className = CLASSNAME;\nRadio.defaultProps = DEFAULT_PROPS;\nRadio.displayName = COMPONENT_NAME;\n","import React from 'react';\nimport { SwitchGroupState } from './types';\n\nexport const SwitchGroupContext =\n React.createContext<SwitchGroupState | null>(null);\n","import styled, { css } from 'styled-components';\nimport { baseStyling } from '~/components/shared';\nimport { StyledSwitchProps } from './types';\n\n/**\n * Component style.\n */\nexport const StyledSwitch = styled.label<StyledSwitchProps>`\n height: fit-content;\n position: relative;\n width: fit-content;\n ${baseStyling}\n\n align-items: baseline;\n background: none;\n border: none;\n display: inline-flex;\n margin: 4px;\n\n input {\n height: 100%;\n margin: 0;\n opacity: 0;\n overflow: visible;\n padding: 0;\n position: absolute;\n width: 100%;\n }\n\n span.label {\n ${({ $isDisabled, $isInvalid }) =>\n $isDisabled\n ? css`\n color: var(--redsift-color-neutral-midgrey);\n `\n : $isInvalid\n ? css`\n color: var(--redsift-color-error-primary);\n `\n : css`\n color: var(--redsift-color-neutral-black);\n `}\n\n font-family: var(--redsift-typography-body-font-family);\n font-size: var(--redsift-typography-body-font-size);\n font-weight: var(--redsift-typography-body-font-weight);\n line-height: var(--redsift-typography-body-line-height);\n padding-inline-start: 4px;\n padding-inline-end: 16px;\n position: relative;\n top: -5px;\n }\n\n .redsift-switch__slide {\n height: 20px;\n position: relative;\n min-width: 40px;\n }\n\n .redsift-switch-slide__inner {\n background-color: var(--redsift-color-neutral-midgrey);\n border-radius: 10px;\n height: 16px;\n position: absolute;\n top: calc(50% - 16px / 2);\n width: 32px;\n z-index: 2;\n }\n\n .redsift-switch-slide__knob-wrapper {\n border-radius: 50%;\n height: 32px;\n margin-inline-start: ${({ $isSelected }) =>\n !$isSelected ? '-10px' : '10px'};\n position: absolute;\n top: -6px;\n width: 32px;\n z-index: 3;\n }\n\n .redsift-switch-slide-knob-wrapper__elevation {\n background-color: var(--redsift-color-neutral-xlightgrey);\n border-radius: 50%;\n height: 32px;\n opacity: 0;\n position: absolute;\n width: 32px;\n z-index: 3;\n }\n\n .redsift-switch-slide-knob-wrapper__knob {\n background-color: var(--redsift-color-neutral-xlightgrey);\n border-radius: 50%;\n box-shadow: 0px 2px 1px -1px rgba(0, 0, 0, 0.2),\n 0px 1px 1px rgba(0, 0, 0, 0.14), 0px 1px 3px rgba(0, 0, 0, 0.12);\n height: 20px;\n left: 6px;\n position: absolute;\n top: 6px;\n width: 20px;\n }\n\n .redsift-switch-slide__inner {\n ${({ $isColored, $isDisabled, $isInvalid, $isSelected }) => css`\n ${$isSelected && $isDisabled\n ? css`\n background-color: var(\n --redsift-color-${$isInvalid ? 'error' : $isColored ? 'default' : 'no-data'}-active\n );\n `\n : $isSelected\n ? css`\n background-color: var(\n --redsift-color-${$isInvalid ? 'error' : $isColored ? 'default' : 'no-data'}-primary\n );\n `\n : !$isSelected && $isDisabled\n ? css`\n background-color: var(--redsift-color-neutral-lightgrey);\n `\n : css`\n background-color: var(--redsift-color-neutral-midgrey);\n `}\n `}\n }\n\n &:hover,\n &:focus-visible {\n outline: none;\n cursor: pointer;\n\n ${({ $isDisabled }) =>\n !$isDisabled\n ? css`\n .redsift-switch-slide-knob-wrapper__elevation {\n opacity: 0.5;\n }\n `\n : ''}\n }\n\n ${({ $isDisabled, $isFocusVisible }) =>\n $isFocusVisible && !$isDisabled\n ? css`\n .redsift-switch-slide-knob-wrapper__elevation {\n opacity: 0.5;\n }\n `\n : ''}\n`;\n","import React, {\n ComponentProps,\n forwardRef,\n MutableRefObject,\n useCallback,\n useContext,\n useEffect,\n useState,\n} from 'react';\nimport classNames from 'classnames';\nimport { useFocusRing } from '@react-aria/focus';\nimport { Comp } from '~/types';\nimport { SwitchGroupContext } from '~/components/switch-group/context';\nimport { warnIfNoAccessibleLabelFound } from '~/utils/warnIfNoAccessibleLabelFound';\nimport { SwitchProps } from './types';\nimport { StyledSwitch } from './styles';\n\nconst COMPONENT_NAME = 'Switch';\nconst CLASSNAME = 'redsift-switch';\nconst DEFAULT_PROPS: Partial<SwitchProps> = {\n isColored: true,\n};\n\n/**\n * The Switch component.\n * Works both inside a SwitchGroup or as standalone.\n * Can be used as controlled or uncontrolled.\n */\nexport const Switch: Comp<SwitchProps, HTMLLabelElement> = forwardRef(\n (props, ref) => {\n const groupState = useContext(SwitchGroupContext);\n\n let {\n 'aria-label': ariaLabel,\n 'aria-labelledby': ariaLabelledby,\n autoFocus,\n children,\n className,\n defaultSelected,\n inputProps,\n inputRef,\n isColored,\n isDisabled,\n isInvalid,\n isReadOnly,\n isRequired,\n isSelected: propsIsSelected,\n name,\n onChange,\n value,\n ...forwardedProps\n } = props;\n\n const { isFocusVisible, focusProps } = useFocusRing({ autoFocus });\n isDisabled = isDisabled ?? groupState?.isDisabled;\n isReadOnly = isReadOnly ?? groupState?.isReadOnly;\n\n const [isSelected, setSelected] = useState(\n propsIsSelected ??\n defaultSelected ??\n groupState?.value.includes(value as string)\n );\n\n useEffect(() => {\n setSelected(propsIsSelected ?? defaultSelected);\n }, [propsIsSelected, defaultSelected]);\n\n useEffect(() => {\n if (groupState) {\n setSelected(groupState.value.includes(value as string));\n }\n }, [groupState?.value]);\n\n warnIfNoAccessibleLabelFound(props as ComponentProps<'label'>, [children]);\n\n if (groupState) {\n if (propsIsSelected != null) {\n console.warn(\n 'isSelected is unsupported on individual <Switch> elements within a <SwitchGroup> unless the <Switch> is controlled. Please apply this prop to the group instead or pass isControlled to the component.'\n );\n }\n if (defaultSelected != null) {\n console.warn(\n 'defaultSelected is unsupported on individual <Switch> elements within a <SwitchGroup> unless the <Switch> is controlled. Please apply this prop to the group instead or pass isControlled to the component.'\n );\n }\n if (props.value == null) {\n console.warn(\n 'A <Switch> element within a <SwitchGroup> requires a `value` property unless the <Switch> is controlled.'\n );\n }\n }\n\n const handleChange = useCallback(\n (event: React.ChangeEvent<HTMLInputElement>) => {\n if (isDisabled || isReadOnly) {\n return;\n }\n\n if (groupState) {\n if (!groupState.value.includes(value as string)) {\n groupState.addValue(value as string);\n } else {\n groupState.removeValue(value as string);\n }\n }\n\n if (onChange) {\n onChange(!isSelected, value, name, event, groupState!);\n }\n setSelected(event.target.checked);\n },\n [onChange, groupState]\n );\n\n return (\n <StyledSwitch\n {...forwardedProps}\n $isColored={isColored}\n $isDisabled={isDisabled}\n $isFocusVisible={isFocusVisible}\n $isInvalid={isInvalid || (isRequired && !isSelected)}\n $isRequired={isRequired}\n $isSelected={isSelected}\n className={classNames(Switch.className, className)}\n ref={ref as MutableRefObject<HTMLLabelElement>}\n >\n <input\n {...inputProps}\n {...focusProps}\n aria-checked={isSelected ? 'true' : 'false'}\n aria-disabled={isDisabled}\n aria-invalid={isInvalid || (isRequired && !isSelected)}\n aria-label={ariaLabel}\n aria-labelledby={ariaLabelledby}\n aria-readonly={isReadOnly}\n aria-required={isRequired}\n checked={isSelected ? true : false}\n disabled={isDisabled}\n name={name}\n onChange={handleChange}\n ref={inputRef as MutableRefObject<HTMLInputElement>}\n role=\"switch\"\n type=\"checkbox\"\n value={value}\n />\n <div className={`${Switch.className}__slide`}>\n <div className={`${Switch.className}-slide__inner`} />\n <div className={`${Switch.className}-slide__knob-wrapper`}>\n <div\n className={`${Switch.className}-slide-knob-wrapper__elevation`}\n />\n <div className={`${Switch.className}-slide-knob-wrapper__knob`} />\n </div>\n </div>\n {children ? <span className=\"label\">{children}</span> : null}\n </StyledSwitch>\n );\n }\n);\nSwitch.className = CLASSNAME;\nSwitch.defaultProps = DEFAULT_PROPS;\nSwitch.displayName = COMPONENT_NAME;\n","import { ComponentProps } from 'react';\nimport { ValueOf, StylingProps } from '~/types';\n\n/**\n * Context props.\n */\nexport type SwitchGroupState = {\n /** Adds a value to the set of selected values. */\n addValue(value: string): void;\n /** Whether the switch group is disabled or not. */\n readonly isDisabled: boolean;\n /** Whether the switch group is read only or not. */\n readonly isReadOnly: boolean;\n /** Removes a value from the set of selected values. */\n removeValue(value: string): void;\n /** Sets the selected values. */\n setValue(value: string[]): void;\n /** Current selected values. */\n readonly value: readonly string[];\n};\n\n/**\n * Component orientation.\n */\nexport const SwitchGroupOrientation = {\n horizontal: 'horizontal',\n vertical: 'vertical',\n} as const;\nexport type SwitchGroupOrientation = ValueOf<typeof SwitchGroupOrientation>;\n\n/**\n * Component props.\n */\nexport interface SwitchGroupProps\n extends Omit<ComponentProps<'div'>, 'onChange'>,\n StylingProps {\n /**\n * Default selected values.\n * Used for uncontrolled version.\n */\n defaultValues?: string[];\n /** Description of the switch group. */\n description?: string;\n /** Whether the component is disabled or not. */\n isDisabled?: boolean;\n /** Whether the component is invalid or not. */\n isInvalid?: boolean;\n /** Whether the component is read only or not. */\n isReadOnly?: boolean;\n /** Whether the component is required or not. */\n isRequired?: boolean;\n /** Label of the switch group. */\n label?: string;\n /** Method to handle component change. */\n onChange?(values: string[]): void;\n /** Method to handle component change. */\n orientation?: SwitchGroupOrientation;\n /** List of possible values. Useful to select all. */\n possibleValues?: string[];\n /**\n * Currently selected values.\n * Used for controlled version.\n */\n value?: string[];\n}\n\nexport type StyledSwitchGroupProps = Omit<\n SwitchGroupProps,\n 'isDisabled' | 'isInvalid' | 'isReadOnly' | 'orientation' | 'isRequired'\n> & {\n $isDisabled: SwitchGroupProps['isDisabled'];\n $isInvalid: SwitchGroupProps['isInvalid'];\n $isReadOnly: SwitchGroupProps['isReadOnly'];\n $orientation: SwitchGroupProps['orientation'];\n};\n","import styled from 'styled-components';\nimport { baseStyling } from '~/components/shared';\nimport { SwitchGroupOrientation, StyledSwitchGroupProps } from './types';\n\n/**\n * Component style.\n */\nexport const StyledSwitchGroup = styled.div<StyledSwitchGroupProps>`\n ${baseStyling}\n\n display: flex;\n flex-direction: column;\n\n ${({ $orientation }) =>\n $orientation === SwitchGroupOrientation.vertical\n ? `\n div.redsift-checkbox-group-boxes {\n display: flex;\n flex-direction: column;\n }\n `\n : `\n div.redsift-checkbox-group-boxes {\n display: flex;\n flex-direction: row;\n flex-wrap: wrap;\n }\n `}\n\n span.redsift-checkbox-group-label {\n font-family: var(--redsift-typography-body-font-family);\n font-weight: var(--redsift-typography-body-font-weight);\n font-size: var(--redsift-typography-body-font-size);\n line-height: var(--redsift-typography-body-line-height);\n\n color: var(--redsift-color-neutral-black);\n ${({ $isDisabled }) =>\n $isDisabled\n ? `\n color: var(--redsift-color-neutral-midgrey);\n `\n : ''}\n ${({ $isInvalid }) =>\n $isInvalid\n ? `\n color: var(--redsift-color-error-primary);\n `\n : ''}\n }\n\n span.redsift-checkbox-group-description {\n font-family: var(--redsift-typography-helper-font-family);\n font-weight: var(--redsift-typography-helper-font-weight);\n font-size: var(--redsift-typography-helper-font-size);\n line-height: var(--redsift-typography-helper-line-height);\n\n color: var(--redsift-color-neutral-darkgrey);\n ${({ $isDisabled }) =>\n $isDisabled\n ? `\n color: var(--redsift-color-neutral-midgrey);\n `\n : ''}\n ${({ $isInvalid }) =>\n $isInvalid\n ? `\n color: var(--redsift-color-error-primary);\n `\n : ''}\n }\n`;\n","import React, { forwardRef, RefObject, useEffect, useState } from 'react';\nimport classNames from 'classnames';\nimport { ColorPalette, Comp } from '~/types';\nimport { SwitchGroupOrientation, SwitchGroupProps } from './types';\nimport { SwitchGroupContext } from './context';\nimport { StyledSwitchGroup } from './styles';\n\nconst COMPONENT_NAME = 'SwitchGroup';\nconst CLASSNAME = 'redsift-checkbox-group';\nconst DEFAULT_PROPS: Partial<SwitchGroupProps> = {\n color: ColorPalette.default,\n orientation: SwitchGroupOrientation.vertical,\n};\n\n/**\n * The SwitchGroup component.\n * Can be used as controlled or uncontrolled.\n */\nexport const SwitchGroup: Comp<SwitchGroupProps, HTMLDivElement> = forwardRef(\n (props, ref) => {\n const {\n children,\n className,\n defaultValues,\n description,\n isDisabled,\n isInvalid,\n isReadOnly,\n isRequired,\n label,\n onChange,\n orientation,\n possibleValues,\n value,\n ...forwardedProps\n } = props;\n\n const [selectedValues, setValue] = useState<string[]>(\n value || defaultValues || []\n );\n useEffect(() => {\n if (value) {\n state.setValue(value);\n }\n }, [value]);\n\n const state = {\n value: selectedValues,\n isDisabled: isDisabled || false,\n isReadOnly: isReadOnly || false,\n possibleValues: possibleValues,\n setValue(values: string[]) {\n if (isReadOnly || isDisabled) {\n return;\n }\n\n setValue(values);\n },\n addValue(value: string) {\n if (!selectedValues.includes(value)) {\n setValue(selectedValues.concat(value));\n if (onChange) {\n onChange(selectedValues.concat(value));\n }\n }\n },\n removeValue(value: string) {\n if (selectedValues.includes(value)) {\n setValue(\n selectedValues.filter((existingValue) => existingValue !== value)\n );\n if (onChange) {\n onChange(\n selectedValues.filter((existingValue) => existingValue !== value)\n );\n }\n }\n },\n };\n\n return (\n <StyledSwitchGroup\n {...forwardedProps}\n $isDisabled={isDisabled}\n $isInvalid={isInvalid || (isRequired && selectedValues.length === 0)}\n $isReadOnly={isReadOnly}\n $orientation={orientation}\n aria-disabled={isDisabled}\n className={classNames(SwitchGroup.className, className)}\n ref={ref as RefObject<HTMLDivElement>}\n role=\"group\"\n >\n <span className={`${SwitchGroup.className}-label`}>\n {label}\n {isRequired ? ' *' : null}\n </span>\n <div className={`${SwitchGroup.className}-boxes`}>\n <SwitchGroupContext.Provider value={state}>\n {children}\n </SwitchGroupContext.Provider>\n </div>\n <span className={`${SwitchGroup.className}-description`}>\n {description}\n </span>\n </StyledSwitchGroup>\n );\n }\n);\nSwitchGroup.className = CLASSNAME;\nSwitchGroup.defaultProps = DEFAULT_PROPS;\nSwitchGroup.displayName = COMPONENT_NAME;\n"],"names":["FontFamily","raleway","electrolize","ColorPalette","default","success","error","warning","info","question","ProductColorPalette","website","ondmarc","oninbox","ondomain","hardenize","tools","DataVizColorPalette","purple","blue","green","red","pink","cyan","orange","yellow","brown","grey","NeutralColorPalette","black","darkgrey","midgrey","lightgrey","xlightgrey","white","AlignSelf","auto","normal","start","end","center","baseline","stretch","JustifySelf","left","right","AlignContent","AlignItems","FlexDirection","row","column","FlexWrap","nowrap","wrap","JustifyContent","JustifyItems","isComponent","component","instance","componentName","displayName","React","isValidElement","type","filterComponents","children","components","Array","isArray","childArray","Children","forEach","child","comp","push","partitionComponents","predicates","elements","map","found","predicate","index","length","RedsiftColorDefaultPrimary","RedsiftColorDefaultSecondary","RedsiftColorDefaultHover","RedsiftColorDefaultActive","RedsiftColorDefaultActiveHover","RedsiftColorDefaultPrimaryActive","RedsiftColorDefaultPrimaryActiveHover","RedsiftColorWebsitePrimary","RedsiftColorWebsiteSecondary","RedsiftColorWebsiteHover","RedsiftColorWebsiteActive","RedsiftColorWebsiteActiveHover","RedsiftColorWebsitePrimaryActive","RedsiftColorWebsitePrimaryActiveHover","RedsiftColorOndmarcPrimary","RedsiftColorOndmarcSecondary","RedsiftColorOndmarcHover","RedsiftColorOndmarcActive","RedsiftColorOndmarcActiveHover","RedsiftColorOndmarcPrimaryActive","RedsiftColorOndmarcPrimaryActiveHover","RedsiftColorOninboxPrimary","RedsiftColorOninboxSecondary","RedsiftColorOninboxHover","RedsiftColorOninboxActive","RedsiftColorOninboxActiveHover","RedsiftColorOninboxPrimaryActive","RedsiftColorOninboxPrimaryActiveHover","RedsiftColorOndomainPrimary","RedsiftColorOndomainSecondary","RedsiftColorOndomainHover","RedsiftColorOndomainActive","RedsiftColorOndomainActiveHover","RedsiftColorOndomainPrimaryActive","RedsiftColorOndomainPrimaryActiveHover","RedsiftColorHardenizePrimary","RedsiftColorHardenizeSecondary","RedsiftColorHardenizeHover","RedsiftColorHardenizeActive","RedsiftColorHardenizeActiveHover","RedsiftColorHardenizePrimaryActive","RedsiftColorHardenizePrimaryActiveHover","RedsiftColorToolsPrimary","RedsiftColorToolsSecondary","RedsiftColorToolsHover","RedsiftColorToolsActive","RedsiftColorToolsActiveHover","RedsiftColorToolsPrimaryActive","RedsiftColorToolsPrimaryActiveHover","RedsiftColorSuccessPrimary","RedsiftColorSuccessSecondary","RedsiftColorSuccessHover","RedsiftColorSuccessActive","RedsiftColorSuccessActiveHover","RedsiftColorSuccessPrimaryActive","RedsiftColorSuccessPrimaryActiveHover","RedsiftColorErrorPrimary","RedsiftColorErrorSecondary","RedsiftColorErrorHover","RedsiftColorErrorActive","RedsiftColorErrorActiveHover","RedsiftColorErrorPrimaryActive","RedsiftColorErrorPrimaryActiveHover","RedsiftColorWarningPrimary","RedsiftColorWarningSecondary","RedsiftColorWarningHover","RedsiftColorWarningActive","RedsiftColorWarningActiveHover","RedsiftColorWarningPrimaryActive","RedsiftColorWarningPrimaryActiveHover","RedsiftColorInfoPrimary","RedsiftColorInfoSecondary","RedsiftColorInfoHover","RedsiftColorInfoActive","RedsiftColorInfoActiveHover","RedsiftColorInfoPrimaryActive","RedsiftColorInfoPrimaryActiveHover","RedsiftColorQuestionPrimary","RedsiftColorQuestionSecondary","RedsiftColorQuestionHover","RedsiftColorQuestionActive","RedsiftColorQuestionActiveHover","RedsiftColorQuestionPrimaryActive","RedsiftColorQuestionPrimaryActiveHover","RedsiftColorNoDataPrimary","RedsiftColorNoDataSecondary","RedsiftColorNoDataHover","RedsiftColorNoDataActive","RedsiftColorNoDataActiveHover","RedsiftColorNoDataPrimaryActive","RedsiftColorNoDataPrimaryActiveHover","RedsiftColorNeutralBlack","RedsiftColorNeutralDarkgrey","RedsiftColorNeutralMidgrey","RedsiftColorNeutralLightgrey","RedsiftColorNeutralXlightgrey","RedsiftColorNeutralWhite","RedsiftAppBarColorBackground","RedsiftAppBarColorText","RedsiftAppBarColorExpandIconResting","RedsiftAppBarColorExpandIconHover","RedsiftAppBarColorExpandIconBackgroundHover","RedsiftDataVizColorPurpleDefault","RedsiftDataVizColorPurpleDark","RedsiftDataVizColorPurpleDarker","RedsiftDataVizColorPurpleLight","RedsiftDataVizColorPurpleLighter","RedsiftDataVizColorBlueDefault","RedsiftDataVizColorBlueDark","RedsiftDataVizColorBlueDarker","RedsiftDataVizColorBlueLight","RedsiftDataVizColorBlueLighter","RedsiftDataVizColorGreenDefault","RedsiftDataVizColorGreenDark","RedsiftDataVizColorGreenDarker","RedsiftDataVizColorGreenLight","RedsiftDataVizColorGreenLighter","RedsiftDataVizColorRedDefault","RedsiftDataVizColorRedDark","RedsiftDataVizColorRedDarker","RedsiftDataVizColorRedLight","RedsiftDataVizColorRedLighter","RedsiftDataVizColorPinkDefault","RedsiftDataVizColorPinkDark","RedsiftDataVizColorPinkDarker","RedsiftDataVizColorPinkLight","RedsiftDataVizColorPinkLighter","RedsiftDataVizColorCyanDefault","RedsiftDataVizColorCyanDark","RedsiftDataVizColorCyanDarker","RedsiftDataVizColorCyanLight","RedsiftDataVizColorCyanLighter","RedsiftDataVizColorOrangeDefault","RedsiftDataVizColorOrangeDark","RedsiftDataVizColorOrangeDarker","RedsiftDataVizColorOrangeLight","RedsiftDataVizColorOrangeLighter","RedsiftDataVizColorYellowDefault","RedsiftDataVizColorYellowDark","RedsiftDataVizColorYellowDarker","RedsiftDataVizColorYellowLight","RedsiftDataVizColorYellowLighter","RedsiftDataVizColorBrownDefault","RedsiftDataVizColorBrownDark","RedsiftDataVizColorBrownDarker","RedsiftDataVizColorBrownLight","RedsiftDataVizColorBrownLighter","RedsiftDataVizColorGreyDefault","RedsiftDataVizColorGreyDark","RedsiftDataVizColorGreyDarker","RedsiftDataVizColorGreyLight","RedsiftDataVizColorGreyLighter","RedsiftSideNavigationColorBackground","RedsiftSideNavigationColorMenuItemTextResting","RedsiftSideNavigationColorMenuItemTextDisabled","RedsiftSideNavigationColorMenuItemTextHover","RedsiftSideNavigationColorMenuItemBackgroundHover","RedsiftSideNavigationColorMenuItemBackgroundSecondary","RedsiftSideNavigationColorMenuItemBackgroundActive","RedsiftSideNavigationColorMenuItemActive","RedsiftSideNavigationColorScrollbarResting","RedsiftSideNavigationColorScrollbarHover","RedsiftLayoutZIndexFooter","RedsiftLayoutZIndexHeader","RedsiftLayoutZIndexSidePanel","RedsiftLayoutZIndexDropdown","RedsiftLayoutZIndexOverlay","RedsiftLayoutZIndexDialog","RedsiftLayoutZIndexPopover","RedsiftLayoutZIndexTooltip","RedsiftTypographyFontFamilyRaleway","RedsiftTypographyFontFamilyElectrolize","RedsiftTypographyFontFamilySourceCodePro","RedsiftTypographyFontWeightRegular","RedsiftTypographyFontWeightMedium","RedsiftTypographyFontWeightSemiBold","RedsiftTypographyFontWeightBold","RedsiftTypographyH1FontFamily","RedsiftTypographyH1FontSize","RedsiftTypographyH1FontWeight","RedsiftTypographyH1LineHeight","RedsiftTypographyH1TextTransform","RedsiftTypographyH2FontFamily","RedsiftTypographyH2FontSize","RedsiftTypographyH2FontWeight","RedsiftTypographyH2LineHeight","RedsiftTypographyH2TextTransform","RedsiftTypographyH3FontFamily","RedsiftTypographyH3FontSize","RedsiftTypographyH3FontWeight","RedsiftTypographyH3LineHeight","RedsiftTypographyH3TextTransform","RedsiftTypographyH4FontFamily","RedsiftTypographyH4FontSize","RedsiftTypographyH4FontWeight","RedsiftTypographyH4LineHeight","RedsiftTypographyH4TextTransform","RedsiftTypographyH5FontFamily","RedsiftTypographyH5FontSize","RedsiftTypographyH5FontWeight","RedsiftTypographyH5LineHeight","RedsiftTypographyH5TextTransform","RedsiftTypographySubtitleFontFamily","RedsiftTypographySubtitleFontSize","RedsiftTypographySubtitleFontWeight","RedsiftTypographySubtitleLineHeight","RedsiftTypographySubtitleTextTransform","RedsiftTypographyBodyFontFamily","RedsiftTypographyBodyFontSize","RedsiftTypographyBodyFontWeight","RedsiftTypographyBodyLineHeight","RedsiftTypographyBodyTextTransform","RedsiftTypographyBody2FontFamily","RedsiftTypographyBody2FontSize","RedsiftTypographyBody2FontWeight","RedsiftTypographyBody2LineHeight","RedsiftTypographyLinkFontFamily","RedsiftTypographyLinkFontSize","RedsiftTypographyLinkFontWeight","RedsiftTypographyLinkLineHeight","RedsiftTypographyInputTextFontFamily","RedsiftTypographyInputTextFontSize","RedsiftTypographyInputTextFontWeight","RedsiftTypographyInputTextLineHeight","RedsiftTypographyButtonFontFamily","RedsiftTypographyButtonFontSize","RedsiftTypographyButtonFontWeight","RedsiftTypographyButtonLineHeight","RedsiftTypographyButtonTextTransform","RedsiftTypographyCaptionFontFamily","RedsiftTypographyCaptionFontSize","RedsiftTypographyCaptionFontWeight","RedsiftTypographyCaptionLineHeight","RedsiftTypographyCaptionTextTransform","RedsiftTypographyHelperFontFamily","RedsiftTypographyHelperFontSize","RedsiftTypographyHelperFontWeight","RedsiftTypographyHelperLineHeight","RedsiftTypographyBadgeFontFamily","RedsiftTypographyBadgeFontSize","RedsiftTypographyBadgeFontWeight","RedsiftTypographyBadgeLineHeight","RedsiftTypographyPillFontFamily","RedsiftTypographyPillFontSize","RedsiftTypographyPillFontWeight","RedsiftTypographyPillLineHeight","RedsiftTypographyChipFontFamily","RedsiftTypographyChipFontSize","RedsiftTypographyChipFontWeight","RedsiftTypographyChipLineHeight","RedsiftTypographyTooltipFontFamily","RedsiftTypographyTooltipFontSize","RedsiftTypographyTooltipFontWeight","RedsiftTypographyTooltipLineHeight","warnIfNoAccessibleLabelFound","props","additionalKeysToCheck","ariaLabel","ariaLabelledby","hasText","filter","key","hasAriaLabel","Boolean","console","warn","useWindowSize","windowSize","setWindowSize","useState","width","undefined","height","size","useEffect","handleResize","window","innerWidth","innerHeight","addEventListener","removeEventListener","AlertVariant","enUS","frFR","IconButtonVariant","primary","secondary","unstyled","IconSize","xsmall","small","medium","large","xlarge","baseLayout","css","flex","flexGrow","flexShrink","flexBasis","alignSelf","justifySelf","order","gridArea","gridColumn","gridRow","gridColumnStart","gridColumnEnd","gridRowStart","gridRowEnd","baseSpacing","margin","marginBottom","marginLeft","marginRight","marginTop","baseInternalSpacing","padding","paddingBottom","paddingLeft","paddingRight","paddingTop","baseSizing","maxHeight","maxWidth","minHeight","minWidth","basePositioning","position","top","bottom","zIndex","baseFlexbox","alignContent","alignItems","flexDirection","flexWrap","gap","justifyContent","baseGrid","gridAutoColumns","gridAutoRows","gridTemplateAreas","gridTemplateColumns","gridTemplateRows","justifyItems","baseStyling","baseContainer","display","StyledIcon","styled","span","$color","Object","keys","indexOf","$size","COMPONENT_NAME","CLASSNAME","DEFAULT_PROPS","Icon","forwardRef","ref","ariaHidden","badge","className","color","icon","svgProps","forwardedProps","_excluded","_extends","classNames","defaultProps","ButtonVariant","StyledButton","button","$variant","$isActive","$isDisabled","$fullWidth","SpinnerSize","StyledSpinner","img","AppContainerContext","createContext","StyledAppContainer","div","$productTheme","AppContainer","locale","productTheme","hasAppBar","hasAppSidePanel","hasAppContent","useMemo","appBar","appSidePanel","appContent","toArray","isSidePanelCollapsed","setIsSidePanelCollapsed","title","setTitle","state","collapseSidePanel","expandSidePanel","colorToFile","spinnerDefault","spinnerHardenize","spinnerNoData","spinnerOndmarc","spinnerOndomain","spinnerOninbox","spinnerQuestion","spinnerTools","spinnerWebsite","sizeToDimension","Spinner","propsColor","appContainerState","useContext","stringFormatter","useLocalizedStringFormatter","intlMessages","format","variant","Button","buttonRef","useRef","buttonProps","isPressed","useButton","_objectSpread","isDisabled","isLoading","disabled","preventFocusOnPress","fullWidth","isActive","leftIcon","onPress","rightIcon","StyledIconButton","IconButton","StyledAlert","$hasTitle","$isClosable","$isClosed","HeadingVariant","h1","h2","h3","h4","h5","body","HeadingComponent","StyledHeading","$noWrap","Heading","as","noWrap","StyledFlexbox","inline","Flexbox","getVariant","mdiInformation","mdiAlertCircle","mdiCheckCircle","mdiAlert","Alert","isClosable","isClosed","propsIsClosed","onClose","setIsClosed","handleClose","useCallback","mdiClose","useIsLoaded","isLoaded","setIsLoaded","StyledAppBar","header","$isSidePanelCollapsed","$isLoaded","AppBar","collapseIconButtonProps","collapseIconButtonRef","expandIconButtonProps","expandIconButtonRef","fallbackTitle","propsTitle","mdiMenu","mdiMenuOpen","StyledAppContent","main","AppContent","StyledAppSidePanel","$isCollapsed","AppSidePanel","featuredElements","isCollapsed","logo","src","alt","SideNavigationMenuReducerActionType","SideNavigationMenuBarContext","SideNavigationMenuContext","StyledSideNavigationMenuItem","a","$isSecondLevel","$withoutIcons","$isCurrent","BadgeVariant","dot","standard","StyledBadge","$isReversed","includes","$autoBreak","Badge","autoBreak","isReversed","SideNavigationMenuItem","menuItemRef","badgeProps","href","iconProps","iconRef","isCurrent","isSecondLevel","onClick","onKeyDown","tabIndex","withoutIcons","sideNavigationMenuBarContext","sideNavigationMenuContext","isFirstChild","setIsFirstChild","menuItems","menuItemNode","current","add","delete","StyledSideNavigationMenu","$isExpanded","SideNavigationMenuReducer","action","Expand","isExpanded","Collapse","currentIndex","previousIndex","Move","SideNavigationMenu","hasBadge","propsIsExpanded","menuProps","menuRef","menubarItems","renderedMenuItems","cloneElement","Set","dispatch","useReducer","first","last","move","open","close","focusButton","focus","previous","next","match","e","items","from","reorderedItems","slice","matches","menuItem","textContent","firstLetter","toLowerCase","charAt","currentNode","nextMatch","findIndex","item","value","keyDownOnButton","target","code","stopPropagation","click","buttonEventHandler","event","keyDownOnMenuItemList","preventDefault","menuItemListEventHandler","mdiChevronDown","mdiChevronRight","StyledSideNavigationMenuBar","nav","$marginTop","useBoundingClientRect","deps","boundingRect","setBoundingRect","getBoundingClientRect","usePrevious","SideNavigationMenuBar","navRef","menubarProps","menubarRef","navItems","setCurrentIndex","keyDown","parentMenu","parentNode","isFromSubmenu","getAttribute","previousNode","setAttribute","isMenu","useSideNavigationMenuBar","menuBarChildren","rest","useAppSidePanel","sideNavigationMenuBarProps","StyledBreadcrumbItem","BreadcrumbItem","StyledBreadcrumbs","BaseBreadcrumbs","Breadcrumbs","Item","breadcrumbItems","assign","ButtonLink","StyledCard","StyledCardHeader","wave","keyframes","StyledSkeleton","StyledSkeletonCircle","SkeletonCircle","SkeletonTextVariant","subtitle","body2","caption","StyledSkeletonText","$fontSize","$lineHeight","SkeletonText","fontSize","lineHeight","BaseSkeleton","Skeleton","Circle","Text","CardHeader","headingProps","subheader","StyledCardBody","CardBody","StyledCardActions","CardActions","BaseCard","defaultCollapsed","propsIsCollapsed","isCollapsible","onCollapse","setIsCollapsed","handleCollapse","collapsed","actions","mdiChevronUp","Card","Header","Body","Actions","CheckboxGroupOrientation","horizontal","vertical","CheckboxGroupContext","StyledCheckboxGroup","$orientation","$isInvalid","orientation","CheckboxGroup","defaultValues","description","isInvalid","isReadOnly","isRequired","label","onChange","possibleValues","selectedValues","setValue","values","addValue","concat","removeValue","existingValue","StyledCheckbox","$isColored","$isFocusVisible","isColored","Checkbox","groupState","autoFocus","defaultSelected","inputProps","inputRef","isControlled","isIndeterminate","isSelected","propsIsSelected","name","isFocusVisible","focusProps","useFocusRing","setSelected","handleChange","checked","mdiCheckboxMarked","mdiMinusBox","mdiCheckboxBlankOutline","ConditionalWrapper","condition","wrapper","ShieldVariant","successLocked","successUnlocked","fail","failLocked","failUnlocked","warningLocked","warningUnlocked","ignored","noData","email","StyledShield","$isOutlined","Shield","isOutlined","verticalAlign","StyledDetailedCardCollapsibleSectionItems","$hideBackground","DetailedCardCollapsibleSectionItems","hideBackground","StyledDetailedCardSection","TextVariant","inherit","TextComponent","p","b","i","u","abbr","cite","del","em","ins","kbd","mark","s","samp","sub","sup","StyledText","$as","$fontFamily","fontFamily","hasCollapsibleChildren","hasCollapsible","DetailedCardSection","propsIsCollapsible","StyledDetailedCard","StyledDetailedCardHeader","DetailedCardHeader","StyledPill","Pill","StyledDetailedCardSectionItem","DetailedCardSectionItem","pill","pillProps","shield","computePosition","min","max","min$1","max$1","arrow","getWindow","isHTMLElement","isElement","isShadowRoot","useLatestRef","useFloating","TooltipContext","TooltipPlacement","StyledTooltipContent","$placement","TooltipContent","style","getFloatingProps","isOpen","placement","refs","strategy","tooltipId","x","y","middlewareData","arrowX","arrowY","useTooltipContext","popoverRef","useMergeRefs","setFloating","arrowRef","staticSide","split","visibility","TooltipTrigger","getReferenceProps","childrenRef","triggerRef","setReference","useTooltip","defaultOpen","delay","propsIsOpen","onOpen","propsTooltipId","setIsOpen","useId","handleOpen","data","onOpenChange","whileElementsMounted","autoUpdate","middleware","offset","flip","fallbackAxisSideDirection","shift","element","context","hover","useHover","useFocus","dismiss","useDismiss","role","useRole","interactions","useInteractions","BaseTooltip","tooltip","trigger","content","Tooltip","Trigger","Content","Error","hasMultipleCollapsibleChildren","collapsibleChildren","childrenArray","hasCollapsibleItems","sectionChild","BaseDetailedCard","areAllCollapsed","propsAreAllCollapsed","defaultAllCollapsed","onCollapseAll","allCollapsed","setAllCollapsed","mdiPageLast","transform","mdiKeyboardCaps","Math","random","DetailedCard","Section","CollapsibleSectionItems","SectionItem","StyledGrid","StyledGridItem","GridItem","BaseGrid","Grid","StyledLink","Link","LinkButton","StyledNumber","compactDisplay","currencyDisplay","currencySign","localeMatcher","notation","signDisplay","unitDisplay","roundingMode","roundingPriority","trailingZeroDisplay","Number","currency","maximumFractionDigits","maximumSignificantDigits","minimumFractionDigits","minimumIntegerDigits","minimumSignificantDigits","numberingSystem","roundingIncrement","unit","useGrouping","formatter","useNumberFormatter","RadioGroupOrientation","RadioGroupContext","StyledRadioGroup","RadioGroup","defaultValue","selectedValue","previousValue","StyledRadio","Radio","mdiRadioboxMarked","mdiRadioboxBlank","SwitchGroupContext","StyledSwitch","$isSelected","Switch","SwitchGroupOrientation","StyledSwitchGroup","SwitchGroup"],"mappings":"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K;IACX,KAAKpE,QAAQ,CAACK,MAAM;AAClB,MAAA,OAAOE,GAAI,CAAA;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAS,CAAA,CAAA;IACH,KAAKP,QAAQ,CAACI,KAAK;AACjB,MAAA,OAAOG,GAAI,CAAA;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAS,CAAA,CAAA;IACH,KAAKP,QAAQ,CAACE,KAAK;AACjB,MAAA,OAAOK,GAAI,CAAA;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAS,CAAA,CAAA;IACH,KAAKP,QAAQ,CAACC,MAAM;AAClB,MAAA,OAAOM,GAAI,CAAA;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAS,CAAA,CAAA;IACH,KAAKP,QAAQ,CAACG,MAAM,CAAA;AACpB,IAAA;AACE,MAAA,OAAOI,GAAI,CAAA;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAS,CAAA,CAAA;AAAC,GAAA;AAER,CAAE,CAAA;AACJ,CAAC;;;AC5HD,MAAM8D,gBAAc,GAAG,MAAM,CAAA;AAC7B,MAAMC,WAAS,GAAG,cAAc,CAAA;AAChC,MAAMC,eAAiC,GAAG;EACxCtF,IAAI,EAAEe,QAAQ,CAACG,MAAAA;AACjB,CAAC,CAAA;;AAED;AACA;AACA;AACO,MAAMqE,IAAsC,gBAAGC,UAAU,CAC9D,CAAC1G,KAAK,EAAE2G,GAAG,KAAK;EACd,MAAM;AACJ,MAAA,aAAa,EAAEC,UAAU;AACzB,MAAA,YAAY,EAAE1G,SAAS;MACvB2G,KAAK;MACLC,SAAS;MACTC,KAAK;MACLC,IAAI;MACJ9F,IAAI;AACJ+F,MAAAA,QAAAA;AAEF,KA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"}
1
+ {"version":3,"file":"index.js","sources":["../src/types/fonts.ts","../src/types/colors.ts","../src/types/styles.ts","../src/utils/isComponent.ts","../src/utils/filterComponents.ts","../src/utils/partitionComponents.ts","../src/utils/redsift-design-tokens.ts","../src/utils/warnIfNoAccessibleLabelFound.ts","../src/hooks/useWindowSize.ts","../src/hooks/useBoundingRect.ts","../../../node_modules/@react-aria/ssr/dist/import.mjs","../../../node_modules/@internationalized/string/dist/import.mjs","../../../node_modules/@internationalized/date/dist/import.mjs","../../../node_modules/@internationalized/number/dist/import.mjs","../../../node_modules/@react-aria/i18n/dist/real-module.mjs","../src/components/alert/types.ts","../src/components/alert/intl/index.ts","../src/components/icon-button/types.ts","../src/components/icon/types.ts","../src/components/shared/styles.ts","../src/components/icon/styles.ts","../src/components/icon/Icon.tsx","../src/components/button/types.ts","../src/components/button/styles.ts","../src/components/spinner/intl/index.ts","../src/components/spinner/types.ts","../src/components/spinner/styles.ts","../src/components/app-container/context.ts","../src/components/app-container/styles.ts","../src/components/app-container/AppContainer.tsx","../src/components/spinner/Spinner.tsx","../src/components/button/Button.tsx","../src/components/icon-button/styles.ts","../src/components/icon-button/IconButton.tsx","../src/components/alert/styles.ts","../src/components/heading/types.ts","../src/components/heading/styles.ts","../src/components/heading/Heading.tsx","../src/components/flexbox/styles.ts","../src/components/flexbox/Flexbox.tsx","../src/components/alert/Alert.tsx","../src/components/app-bar/intl/index.ts","../src/hooks/useIsLoaded.ts","../src/components/app-bar/styles.ts","../src/components/app-bar/AppBar.tsx","../src/components/app-content/styles.ts","../src/components/app-content/AppContent.tsx","../src/components/app-side-panel/styles.ts","../src/components/app-side-panel/AppSidePanel.tsx","../src/components/side-navigation-menu/types.ts","../src/components/side-navigation-menu-bar/context.ts","../src/components/side-navigation-menu/context.ts","../src/components/side-navigation-menu-item/styles.ts","../src/components/badge/types.ts","../src/components/badge/styles.ts","../src/components/badge/Badge.tsx","../src/components/side-navigation-menu-item/SideNavigationMenuItem.tsx","../src/components/side-navigation-menu/styles.ts","../src/components/side-navigation-menu/reducer.ts","../src/components/side-navigation-menu/SideNavigationMenu.tsx","../src/components/side-navigation-menu-bar/styles.ts","../src/components/side-navigation-menu-bar/SideNavigationMenuBar.tsx","../src/components/side-navigation-menu-bar/useSideNavigationMenuBar.tsx","../src/components/app-side-panel/useAppSidePanel.tsx","../src/components/breadcrumb-item/styles.ts","../src/components/breadcrumb-item/BreadcrumbItem.tsx","../src/components/breadcrumbs/styles.ts","../src/components/breadcrumbs/Breadcrumbs.tsx","../src/components/button-link/ButtonLink.tsx","../src/components/card/intl/index.ts","../src/components/card/styles.ts","../src/components/card-header/styles.ts","../src/components/skeleton/styles.ts","../src/components/skeleton-circle/styles.ts","../src/components/skeleton-circle/SkeletonCircle.tsx","../src/components/skeleton-text/types.ts","../src/components/skeleton-text/styles.ts","../src/components/skeleton-text/SkeletonText.tsx","../src/components/skeleton/Skeleton.tsx","../src/components/card-header/CardHeader.tsx","../src/components/card-body/styles.ts","../src/components/card-body/CardBody.tsx","../src/components/card-actions/styles.ts","../src/components/card-actions/CardActions.tsx","../src/components/card/Card.tsx","../src/components/checkbox-group/types.ts","../src/components/checkbox-group/context.ts","../src/components/checkbox-group/styles.ts","../src/components/checkbox-group/CheckboxGroup.tsx","../src/components/checkbox/styles.ts","../src/components/checkbox/Checkbox.tsx","../src/components/conditional-wrapper/ConditionalWrapper.tsx","../src/components/detailed-card/intl/index.ts","../src/components/shield/types.ts","../src/components/shield/styles.ts","../src/components/shield/Shield.tsx","../src/components/detailed-card-section/intl/index.ts","../src/components/detailed-card-collapsible-section-items/styles.ts","../src/components/detailed-card-collapsible-section-items/DetailedCardCollapsibleSectionItems.tsx","../src/components/detailed-card-section/styles.ts","../src/components/text/types.ts","../src/components/text/styles.ts","../src/components/text/Text.tsx","../src/components/detailed-card-section/DetailedCardSection.tsx","../src/components/detailed-card/styles.ts","../src/components/detailed-card-header/styles.ts","../src/components/detailed-card-header/DetailedCardHeader.tsx","../src/components/pill/styles.ts","../src/components/pill/Pill.tsx","../src/components/detailed-card-section-item/styles.ts","../src/components/detailed-card-section-item/DetailedCardSectionItem.tsx","../../../node_modules/tabbable/dist/index.esm.js","../../../node_modules/@floating-ui/core/dist/floating-ui.core.mjs","../../../node_modules/@floating-ui/dom/dist/floating-ui.dom.mjs","../../../node_modules/@floating-ui/react-dom/dist/floating-ui.react-dom.esm.js","../../../node_modules/@floating-ui/react/dist/floating-ui.react.esm.js","../../popovers/src/components/tooltip/context.ts","../../popovers/src/components/tooltip/types.ts","../../popovers/src/components/tooltip-content/styles.ts","../../popovers/src/components/tooltip-content/TooltipContent.tsx","../../popovers/src/components/tooltip-trigger/TooltipTrigger.tsx","../../popovers/src/components/tooltip/useTooltip.tsx","../../popovers/src/components/tooltip/Tooltip.tsx","../../popovers/src/components/tooltip/useTooltipContext.tsx","../src/components/detailed-card/DetailedCard.tsx","../src/components/grid/styles.ts","../src/components/grid-item/styles.ts","../src/components/grid-item/GridItem.tsx","../src/components/grid/Grid.tsx","../src/components/link/styles.ts","../src/components/link/Link.tsx","../src/components/link-button/LinkButton.tsx","../src/components/number/styles.ts","../src/components/number/Number.tsx","../src/components/radio-group/types.ts","../src/components/radio-group/context.ts","../src/components/radio-group/styles.ts","../src/components/radio-group/RadioGroup.tsx","../src/components/radio/styles.ts","../src/components/radio/Radio.tsx","../src/components/switch-group/context.ts","../src/components/switch/styles.ts","../src/components/switch/Switch.tsx","../src/components/switch-group/types.ts","../src/components/switch-group/styles.ts","../src/components/switch-group/SwitchGroup.tsx","../src/components/text-field/types.ts","../src/components/text-field/styles.ts","../src/components/text-field/TextField.tsx"],"sourcesContent":["import { ValueOf } from './helpers';\n\n/**\n * Font.\n */\nexport const FontFamily = {\n raleway: 'raleway',\n 'source-code-pro': 'source-code-pro',\n electrolize: 'electrolize',\n} as const;\nexport type FontFamily = ValueOf<typeof FontFamily>;\n","import { ValueOf } from './helpers';\n\n/**\n * Color palette.\n */\nexport const ColorPalette = {\n default: 'default',\n success: 'success',\n error: 'error',\n warning: 'warning',\n info: 'info',\n question: 'question',\n 'no-data': 'no-data',\n} as const;\nexport type ColorPalette = ValueOf<typeof ColorPalette>;\n\nexport const ProductColorPalette = {\n website: 'website',\n ondmarc: 'ondmarc',\n oninbox: 'oninbox',\n ondomain: 'ondomain',\n hardenize: 'hardenize',\n tools: 'tools',\n} as const;\nexport type ProductColorPalette = ValueOf<typeof ProductColorPalette>;\n\nexport const DataVizColorPalette = {\n purple: 'purple',\n blue: 'blue',\n green: 'green',\n red: 'red',\n pink: 'pink',\n cyan: 'cyan',\n orange: 'orange',\n yellow: 'yellow',\n brown: 'brown',\n grey: 'grey',\n} as const;\nexport type DataVizColorPalette = ValueOf<typeof DataVizColorPalette>;\n\nexport const NeutralColorPalette = {\n black: 'black',\n darkgrey: 'darkgrey',\n midgrey: 'midgrey',\n lightgrey: 'lightgrey',\n xlightgrey: 'xlightgrey',\n white: 'white',\n} as const;\nexport type NeutralColorPalette = ValueOf<typeof NeutralColorPalette>;\n","import { ValueOf } from './helpers';\n\nexport const AlignSelf = {\n auto: 'auto',\n normal: 'normal',\n start: 'start',\n end: 'end',\n center: 'center',\n 'flex-start': 'flex-start',\n 'flex-end': 'flex-end',\n 'self-start': 'self-start',\n 'self-end': 'self-end',\n baseline: 'baseline',\n stretch: 'stretch',\n} as const;\nexport type AlignSelf = ValueOf<typeof AlignSelf>;\n\nexport const JustifySelf = {\n auto: 'auto',\n normal: 'normal',\n start: 'start',\n end: 'end',\n center: 'center',\n 'flex-start': 'flex-start',\n 'flex-end': 'flex-end',\n 'self-start': 'self-start',\n 'self-end': 'self-end',\n left: 'left',\n right: 'right',\n stretch: 'stretch',\n} as const;\nexport type JustifySelf = ValueOf<typeof JustifySelf>;\n\nexport const AlignContent = {\n 'flex-start': 'flex-start',\n 'flex-end': 'flex-end',\n center: 'center',\n 'space-between': 'space-between',\n 'space-around': 'space-around',\n 'space-evenly': 'space-evenly',\n stretch: 'stretch',\n start: 'start',\n end: 'end',\n baseline: 'baseline',\n 'first baseline': 'first baseline',\n 'last baseline': 'last baseline',\n} as const;\nexport type AlignContent = ValueOf<typeof AlignContent>;\n\nexport const AlignItems = {\n stretch: 'stretch',\n 'flex-start': 'flex-start',\n 'flex-end': 'flex-end',\n center: 'center',\n baseline: 'baseline',\n 'first baseline': 'first baseline',\n 'last baseline': 'last baseline',\n start: 'start',\n end: 'end',\n 'self-start': 'self-start',\n 'self-end': 'self-end',\n} as const;\nexport type AlignItems = ValueOf<typeof AlignItems>;\n\nexport const FlexDirection = {\n row: 'row',\n 'row-reverse': 'row-reverse',\n column: 'column',\n 'column-reverse': 'column-reverse',\n} as const;\nexport type FlexDirection = ValueOf<typeof FlexDirection>;\n\nexport const FlexWrap = {\n nowrap: 'nowrap',\n wrap: 'wrap',\n 'wrap-reverse': 'wrap-reverse',\n} as const;\nexport type FlexWrap = ValueOf<typeof FlexWrap>;\n\nexport const JustifyContent = {\n 'flex-start': 'flex-start',\n 'flex-end': 'flex-end',\n center: 'center',\n 'space-between': 'space-between',\n 'space-around': 'space-around',\n 'space-evenly': 'space-evenly',\n start: 'start',\n end: 'end',\n left: 'left',\n right: 'right',\n baseline: 'baseline',\n 'first baseline': 'first baseline',\n 'last baseline': 'last baseline',\n stretch: 'stretch',\n} as const;\nexport type JustifyContent = ValueOf<typeof JustifyContent>;\n\nexport const JustifyItems = {\n start: 'start',\n end: 'end',\n center: 'center',\n stretch: 'stretch',\n} as const;\nexport type JustifyItems = ValueOf<typeof JustifyItems>;\n\nexport interface LayoutProps {\n /** When used in a flex layout, specifies how the element will grow or shrink to fit the space available. See <a href=\"https://developer.mozilla.org/en-US/docs/Web/CSS/flex\">MDN</a>. */\n flex?: string;\n /** When used in a flex layout, specifies how the element will grow to fit the space available. See <a href=\"https://developer.mozilla.org/en-US/docs/Web/CSS/flex-grow\">MDN</a>. */\n flexGrow?: number;\n /** When used in a flex layout, specifies how the element will shrink to fit the space available. See <a href=\"https://developer.mozilla.org/en-US/docs/Web/CSS/flex-shrink\">MDN</a>. */\n flexShrink?: number;\n /** When used in a flex layout, specifies the initial main size of the element. See <a href=\"https://developer.mozilla.org/en-US/docs/Web/CSS/flex_basis\">MDN</a>. */\n flexBasis?: string;\n /** Overrides the alignItems property of a flex or grid container. See <a href=\"https://developer.mozilla.org/en-US/docs/Web/CSS/align-self\">MDN</a>. */\n alignSelf?: AlignSelf;\n /** Specifies how the element is justified inside a flex or grid container. See <a href=\"https://developer.mozilla.org/en-US/docs/Web/CSS/justify-self\">MDN</a>. */\n justifySelf?: string;\n /** The layout order for the element within a flex or grid container. See <a href=\"https://developer.mozilla.org/en-US/docs/Web/CSS/order\">MDN</a>. */\n order?: number;\n /** When used in a grid layout, specifies the named grid area that the element should be placed in within the grid. See <a href=\"https://developer.mozilla.org/en-US/docs/Web/CSS/grid-area\">MDN</a>. */\n gridArea?: string;\n /** When used in a grid layout, specifies the column the element should be placed in within the grid. See <a href=\"https://developer.mozilla.org/en-US/docs/Web/CSS/grid-column\">MDN</a>. */\n gridColumn?: string;\n /** When used in a grid layout, specifies the row the element should be placed in within the grid. See <a href=\"https://developer.mozilla.org/en-US/docs/Web/CSS/grid-row\">MDN</a>. */\n gridRow?: string;\n /** When used in a grid layout, specifies the starting column to span within the grid. See <a href=\"https://developer.mozilla.org/en-US/docs/Web/CSS/grid-column-start\">MDN</a>. */\n gridColumnStart?: string;\n /** When used in a grid layout, specifies the ending column to span within the grid. See <a href=\"https://developer.mozilla.org/en-US/docs/Web/CSS/grid-column-end\">MDN</a>. */\n gridColumnEnd?: string;\n /** When used in a grid layout, specifies the starting row to span within the grid. See <a href=\"https://developer.mozilla.org/en-US/docs/Web/CSS/grid-row-start\">MDN</a>. */\n gridRowStart?: string;\n /** When used in a grid layout, specifies the ending row to span within the grid. See <a href=\"https://developer.mozilla.org/en-US/docs/Web/CSS/grid-row-end\">MDN</a>. */\n gridRowEnd?: string;\n}\n\nexport interface SpacingProps {\n /** The margin for all four sides of the element. See <a href=\"https://developer.mozilla.org/en-US/docs/Web/CSS/margin\">MDN</a>. */\n margin?: string;\n /** The margin for the bottom side of the element. See <a href=\"https://developer.mozilla.org/en-US/docs/Web/CSS/margin-bottom\">MDN</a>. */\n marginBottom?: string;\n /** The margin for the left side of the element. See <a href=\"https://developer.mozilla.org/en-US/docs/Web/CSS/margin-left\">MDN</a>. */\n marginLeft?: string;\n /** The margin for the right side of the element. See <a href=\"https://developer.mozilla.org/en-US/docs/Web/CSS/margin-right\">MDN</a>. */\n marginRight?: string;\n /** The margin for the top side of the element. See <a href=\"https://developer.mozilla.org/en-US/docs/Web/CSS/margin-top\">MDN</a>. */\n marginTop?: string;\n}\n\nexport interface SizingProps {\n /** The height of the element. See <a href=\"https://developer.mozilla.org/en-US/docs/Web/CSS/height\">MDN</a>. */\n height?: string | number;\n /** The maximum height of the element. See <a href=\"https://developer.mozilla.org/en-US/docs/Web/CSS/max-height\">MDN</a>. */\n maxHeight?: string;\n /** The maximum width of the element. See <a href=\"https://developer.mozilla.org/en-US/docs/Web/CSS/max-width\">MDN</a>. */\n maxWidth?: string;\n /** The minimum height of the element. See <a href=\"https://developer.mozilla.org/en-US/docs/Web/CSS/min-height\">MDN</a>. */\n minHeight?: string;\n /** The minimum width of the element. See <a href=\"https://developer.mozilla.org/en-US/docs/Web/CSS/min-width\">MDN</a>. */\n minWidth?: string;\n /** The width of the element. See <a href=\"https://developer.mozilla.org/en-US/docs/Web/CSS/width\">MDN</a>. */\n width?: string | number;\n}\n\nexport interface PositioningProps {\n /** Specifies how the element is positioned. See <a href=\"https://developer.mozilla.org/en-US/docs/Web/CSS/position\">MDN</a>. */\n position?: string;\n /** The top position for the element. See <a href=\"https://developer.mozilla.org/en-US/docs/Web/CSS/top\">MDN</a>. */\n top?: string;\n /** The bottom position for the element. See <a href=\"https://developer.mozilla.org/en-US/docs/Web/CSS/bottom\">MDN</a>. */\n bottom?: string;\n /** The left position for the element. See <a href=\"https://developer.mozilla.org/en-US/docs/Web/CSS/left\">MDN</a>. Consider using start instead for RTL support. */\n left?: string;\n /** The right position for the element. See <a href=\"https://developer.mozilla.org/en-US/docs/Web/CSS/right\">MDN</a>. Consider using start instead for RTL support. */\n right?: string;\n /** The stacking order for the element. See <a href=\"https://developer.mozilla.org/en-US/docs/Web/CSS/z-index\">MDN</a>. */\n zIndex?: string;\n}\n\nexport interface FlexLayoutProps {\n /** The distribution of space around child items along the cross axis. See <a href=\"https://developer.mozilla.org/en-US/docs/Web/CSS/align-content\">MDN</a>. */\n alignContent?: AlignContent;\n /** The alignment of children within their container. See <a href=\"https://developer.mozilla.org/en-US/docs/Web/CSS/align-items\">MDN</a>. */\n alignItems?: AlignItems;\n /** The direction in which to layout children. See <a href=\"https://developer.mozilla.org/en-US/docs/Web/CSS/flex-direction\">MDN</a>. */\n flexDirection?: FlexDirection;\n /** Whether to wrap items onto multiple lines. See <a href=\"https://developer.mozilla.org/en-US/docs/Web/CSS/flex-wrap\">MDN</a>. */\n flexWrap?: FlexWrap;\n /** The space to display between both rows and columns. See <a href=\"https://developer.mozilla.org/en-US/docs/Web/CSS/gap\">MDN</a>. */\n gap?: string;\n /** Whether the box is displayed inline or not. See <a href=\"https://developer.mozilla.org/en-US/docs/Web/CSS/display\">MDN</a>. */\n inline?: boolean;\n /** The distribution of space around items along the main axis. See <a href=\"https://developer.mozilla.org/en-US/docs/Web/CSS/justify-content\">MDN</a>. */\n justifyContent?: JustifyContent;\n}\n\nexport interface GridLayoutProps {\n /** The distribution of space around child items along the cross axis. See <a href=\"https://developer.mozilla.org/en-US/docs/Web/CSS/align-content\">MDN</a>. */\n alignContent?: AlignContent;\n /** The alignment of children within their container. See <a href=\"https://developer.mozilla.org/en-US/docs/Web/CSS/align-items\">MDN</a>. */\n alignItems?: AlignItems;\n /** The space to display between both rows and columns. See <a href=\"https://developer.mozilla.org/en-US/docs/Web/CSS/gap\">MDN</a>. */\n gap?: string;\n /** Defines the size of implicitly generated columns. See <a href=\"https://developer.mozilla.org/en-US/docs/Web/CSS/grid-auto-columns\">MDN</a>. */\n gridAutoColumns?: string;\n /** Defines the size of implicitly generated rows. See <a href=\"https://developer.mozilla.org/en-US/docs/Web/CSS/grid-auto-rows\">MDN</a>. */\n gridAutoRows?: string;\n /** Defines named grid areas. See <a href=\"https://developer.mozilla.org/en-US/docs/Web/CSS/grid-template-areas\">MDN</a>. */\n gridTemplateAreas?: string;\n /** Defines the sizes of each column in the grid. See <a href=\"https://developer.mozilla.org/en-US/docs/Web/CSS/grid-template-columns\">MDN</a>. */\n gridTemplateColumns?: string;\n /** Defines the sizes of each row in the grid. See <a href=\"https://developer.mozilla.org/en-US/docs/Web/CSS/grid-template-rows\">MDN</a>. */\n gridTemplateRows?: string;\n /** Whether the box is displayed inline or not. */\n inline?: boolean;\n /** The distribution of space around items along the main axis. See <a href=\"https://developer.mozilla.org/en-US/docs/Web/CSS/justify-content\">MDN</a>. */\n justifyContent?: JustifyContent;\n /** Defines the default justifySelf for all items in the grid. See <a href=\"https://developer.mozilla.org/en-US/docs/Web/CSS/justify-items\">MDN</a>. */\n justifyItems?: JustifyItems;\n}\n\nexport interface StylingProps\n extends LayoutProps,\n SpacingProps,\n SizingProps,\n PositioningProps {}\n\nexport interface InternalSpacingProps {\n /** The padding for all four sides of the element. See <a href=\"https://developer.mozilla.org/en-US/docs/Web/CSS/padding\">MDN</a>. */\n padding?: string;\n /** The padding for the bottom side of the element. See <a href=\"https://developer.mozilla.org/en-US/docs/Web/CSS/padding-bottom\">MDN</a>. */\n paddingBottom?: string;\n /** The padding for the left side of the element. See <a href=\"https://developer.mozilla.org/en-US/docs/Web/CSS/padding-left\">MDN</a>. */\n paddingLeft?: string;\n /** The padding for the right side of the element. See <a href=\"https://developer.mozilla.org/en-US/docs/Web/CSS/padding-right\">MDN</a>. */\n paddingRight?: string;\n /** The padding for the top side of the element. See <a href=\"https://developer.mozilla.org/en-US/docs/Web/CSS/padding-top\">MDN</a>. */\n paddingTop?: string;\n}\nexport interface ContainerProps\n extends Omit<FlexLayoutProps, 'inline'>,\n Omit<GridLayoutProps, 'inline'>,\n InternalSpacingProps {\n /** Sets whether an element is treated as a block or inline element and the layout used for its children, such as flow layout, grid or flex. See <a href=\"https://developer.mozilla.org/en-US/docs/Web/CSS/display\">MDN</a>. */\n display?:\n | 'block'\n | 'inline'\n | 'inline-block'\n | 'flex'\n | 'inline-flex'\n | 'grid'\n | 'inline-grid'\n | 'inherit';\n}\n","import React, { ReactNode, ReactElement } from 'react';\nimport { Comp } from '../types';\n\n/**\n * Create a predicate function that checks if a ReactNode is a react element from the given component.\n *\n * @param component React function component or the component name\n * @return predicate returning true if value is instance of the component\n */\nexport const isComponent =\n <C>(component: Comp<C, any> | string) =>\n (instance: ReactNode): instance is ReactElement => {\n const componentName =\n typeof component === 'string' ? component : component.displayName;\n\n return (\n React.isValidElement(instance) &&\n (instance.type as Comp<any>).displayName === componentName\n );\n };\n","import React, { ReactNode, ReactElement } from 'react';\nimport { Comp } from '../types';\nimport { isComponent } from './isComponent';\n\n/**\n * Create an array containing only valid and specific components.\n *\n * @param component React function component or the component name\n * @return an array of components\n */\nexport const filterComponents =\n (component: Comp<any, any> | string | Comp<any, any>[] | string[]) =>\n (children: ReactNode): ReactElement[] => {\n const components = Array.isArray(component) ? component : [component];\n const childArray: ReactElement[] = [];\n\n React.Children.forEach(children, (child) => {\n components.forEach((comp) => {\n if (isComponent(comp)(child)) {\n childArray.push(child);\n }\n });\n });\n\n return childArray;\n };\n","/**\n * Return components based on list of predicates.\n *\n * @param components Array of components\n * @param predicates Array of predicates\n * @return an array of arrays of components based on the given array of predicates\n */\nexport function partitionComponents<T>(\n components: T[],\n predicates: Array<(t: T) => boolean>\n): T[][] {\n const elements: T[][] = [...predicates.map(() => []), []];\n components.forEach((component) => {\n let found = false;\n predicates.forEach((predicate, index) => {\n if (predicate(component)) {\n elements[index].push(component);\n found = true;\n }\n });\n if (!found) {\n elements[elements.length - 1].push(component);\n }\n });\n return elements;\n}\n","/**\n * Do not edit directly\n * Generated on Fri, 28 Apr 2023 13:20:47 GMT\n */\n\nexport const RedsiftColorDefaultPrimary = '#0079e1';\nexport const RedsiftColorDefaultSecondary = '#0063b9';\nexport const RedsiftColorDefaultHover = '#dce8f3';\nexport const RedsiftColorDefaultActive = '#c4dcf1';\nexport const RedsiftColorDefaultActiveHover = '#abcfef';\nexport const RedsiftColorDefaultPrimaryActive = '#004a8a';\nexport const RedsiftColorDefaultPrimaryActiveHover = '#00427c';\nexport const RedsiftColorWebsitePrimary = '#0079e1';\nexport const RedsiftColorWebsiteSecondary = '#0063b9';\nexport const RedsiftColorWebsiteHover = '#dce8f3';\nexport const RedsiftColorWebsiteActive = '#c4dcf1';\nexport const RedsiftColorWebsiteActiveHover = '#abcfef';\nexport const RedsiftColorWebsitePrimaryActive = '#004a8a';\nexport const RedsiftColorWebsitePrimaryActiveHover = '#00427c';\nexport const RedsiftColorOndmarcPrimary = '#02ac61';\nexport const RedsiftColorOndmarcSecondary = '#009252';\nexport const RedsiftColorOndmarcHover = '#dcede6';\nexport const RedsiftColorOndmarcActive = '#c4e6d7';\nexport const RedsiftColorOndmarcActiveHover = '#acdfc8';\nexport const RedsiftColorOndmarcPrimaryActive = '#00512e';\nexport const RedsiftColorOndmarcPrimaryActiveHover = '#004829';\nexport const RedsiftColorOninboxPrimary = '#33b222';\nexport const RedsiftColorOninboxSecondary = '#268519';\nexport const RedsiftColorOninboxHover = '#e1eedf';\nexport const RedsiftColorOninboxActive = '#cee8cb';\nexport const RedsiftColorOninboxActiveHover = '#bae0b5';\nexport const RedsiftColorOninboxPrimaryActive = '#164e0e';\nexport const RedsiftColorOninboxPrimaryActiveHover = '#13460c';\nexport const RedsiftColorOndomainPrimary = '#028062';\nexport const RedsiftColorOndomainSecondary = '#015944';\nexport const RedsiftColorOndomainHover = '#dce9e6';\nexport const RedsiftColorOndomainActive = '#c4ded8';\nexport const RedsiftColorOndomainActiveHover = '#acd1c8';\nexport const RedsiftColorOndomainPrimaryActive = '#003f30';\nexport const RedsiftColorOndomainPrimaryActiveHover = '#00382b';\nexport const RedsiftColorHardenizePrimary = '#0f7ab3';\nexport const RedsiftColorHardenizeSecondary = '#3498db';\nexport const RedsiftColorHardenizeHover = '#dee8ee';\nexport const RedsiftColorHardenizeActive = '#c7dce8';\nexport const RedsiftColorHardenizeActiveHover = '#b0d0e1';\nexport const RedsiftColorHardenizePrimaryActive = '#0a5379';\nexport const RedsiftColorHardenizePrimaryActiveHover = '#094a6c';\nexport const RedsiftColorToolsPrimary = '#37bdfb';\nexport const RedsiftColorToolsSecondary = '#02a2ef';\nexport const RedsiftColorToolsHover = '#e2eff5';\nexport const RedsiftColorToolsActive = '#cfeaf6';\nexport const RedsiftColorToolsActiveHover = '#bce4f6';\nexport const RedsiftColorToolsPrimaryActive = '#237ea8';\nexport const RedsiftColorToolsPrimaryActiveHover = '#1f7197';\nexport const RedsiftColorSuccessPrimary = '#02ac61';\nexport const RedsiftColorSuccessSecondary = '#009252';\nexport const RedsiftColorSuccessHover = '#dcede6';\nexport const RedsiftColorSuccessActive = '#c4e6d7';\nexport const RedsiftColorSuccessActiveHover = '#acdfc8';\nexport const RedsiftColorSuccessPrimaryActive = '#00512e';\nexport const RedsiftColorSuccessPrimaryActiveHover = '#004829';\nexport const RedsiftColorErrorPrimary = '#e11010';\nexport const RedsiftColorErrorSecondary = '#b41010';\nexport const RedsiftColorErrorHover = '#f3dede';\nexport const RedsiftColorErrorActive = '#f1c7c7';\nexport const RedsiftColorErrorActiveHover = '#efb0b0';\nexport const RedsiftColorErrorPrimaryActive = '#770a0a';\nexport const RedsiftColorErrorPrimaryActiveHover = '#6b0909';\nexport const RedsiftColorWarningPrimary = '#fcbb54';\nexport const RedsiftColorWarningSecondary = '#c09300';\nexport const RedsiftColorWarningHover = '#f5efe4';\nexport const RedsiftColorWarningActive = '#f6e9d5';\nexport const RedsiftColorWarningActiveHover = '#f7e3c4';\nexport const RedsiftColorWarningPrimaryActive = '#ae833f';\nexport const RedsiftColorWarningPrimaryActiveHover = '#9c7538';\nexport const RedsiftColorInfoPrimary = '#0079e1';\nexport const RedsiftColorInfoSecondary = '#0063b9';\nexport const RedsiftColorInfoHover = '#dce8f3';\nexport const RedsiftColorInfoActive = '#c4dcf1';\nexport const RedsiftColorInfoActiveHover = '#abcfef';\nexport const RedsiftColorInfoPrimaryActive = '#004a8a';\nexport const RedsiftColorInfoPrimaryActiveHover = '#00427c';\nexport const RedsiftColorQuestionPrimary = '#666666';\nexport const RedsiftColorQuestionSecondary = '#1c1c1c';\nexport const RedsiftColorQuestionHover = '#e6e6e6';\nexport const RedsiftColorQuestionActive = '#d8d8d8';\nexport const RedsiftColorQuestionActiveHover = '#cacaca';\nexport const RedsiftColorQuestionPrimaryActive = '#111111';\nexport const RedsiftColorQuestionPrimaryActiveHover = '#0f0f0f';\nexport const RedsiftColorNoDataPrimary = '#bdbdbd';\nexport const RedsiftColorNoDataSecondary = '#666666';\nexport const RedsiftColorNoDataHover = '#efefef';\nexport const RedsiftColorNoDataActive = '#eaeaea';\nexport const RedsiftColorNoDataActiveHover = '#e4e4e4';\nexport const RedsiftColorNoDataPrimaryActive = '#3d3d3d';\nexport const RedsiftColorNoDataPrimaryActiveHover = '#363636';\nexport const RedsiftColorNeutralBlack = '#1c1c1c';\nexport const RedsiftColorNeutralDarkgrey = '#666666';\nexport const RedsiftColorNeutralMidgrey = '#bdbdbd';\nexport const RedsiftColorNeutralLightgrey = '#ebebeb';\nexport const RedsiftColorNeutralXlightgrey = '#f5f5f5';\nexport const RedsiftColorNeutralWhite = '#ffffff';\nexport const RedsiftAppBarColorBackground = '#0079e1';\nexport const RedsiftAppBarColorText = '#FFFFFF';\nexport const RedsiftAppBarColorExpandIconResting = '#FFFFFF';\nexport const RedsiftAppBarColorExpandIconHover = '#FFFFFF';\nexport const RedsiftAppBarColorExpandIconBackgroundHover = '#0063b9';\nexport const RedsiftDataVizColorPurpleDefault = '#C1AAEA';\nexport const RedsiftDataVizColorPurpleDark = '#A78ADB';\nexport const RedsiftDataVizColorPurpleDarker = '#8D6CC9';\nexport const RedsiftDataVizColorPurpleLight = '#D9CAF5';\nexport const RedsiftDataVizColorPurpleLighter = '#F0E9FC';\nexport const RedsiftDataVizColorBlueDefault = '#B6DAEE';\nexport const RedsiftDataVizColorBlueDark = '#97C5DE';\nexport const RedsiftDataVizColorBlueDarker = '#73ADCC';\nexport const RedsiftDataVizColorBlueLight = '#D8EDF8';\nexport const RedsiftDataVizColorBlueLighter = '#F6FBFE';\nexport const RedsiftDataVizColorGreenDefault = '#B3E3C5';\nexport const RedsiftDataVizColorGreenDark = '#90D2A9';\nexport const RedsiftDataVizColorGreenDarker = '#6DBE8B';\nexport const RedsiftDataVizColorGreenLight = '#D3F0DE';\nexport const RedsiftDataVizColorGreenLighter = '#EDFAF1';\nexport const RedsiftDataVizColorRedDefault = '#EAADAC';\nexport const RedsiftDataVizColorRedDark = '#D18785';\nexport const RedsiftDataVizColorRedDarker = '#BA6361';\nexport const RedsiftDataVizColorRedLight = '#FFD3D2';\nexport const RedsiftDataVizColorRedLighter = '#FFE5E5';\nexport const RedsiftDataVizColorPinkDefault = '#E2A7D7';\nexport const RedsiftDataVizColorPinkDark = '#D185C3';\nexport const RedsiftDataVizColorPinkDarker = '#BD63AC';\nexport const RedsiftDataVizColorPinkLight = '#EFC8E8';\nexport const RedsiftDataVizColorPinkLighter = '#F9E6F6';\nexport const RedsiftDataVizColorCyanDefault = '#AFF5F3';\nexport const RedsiftDataVizColorCyanDark = '#8CEAE6';\nexport const RedsiftDataVizColorCyanDarker = '#6CDCD8';\nexport const RedsiftDataVizColorCyanLight = '#D4FCFA';\nexport const RedsiftDataVizColorCyanLighter = '#E1FFFF';\nexport const RedsiftDataVizColorOrangeDefault = '#F2D39E';\nexport const RedsiftDataVizColorOrangeDark = '#D8B475';\nexport const RedsiftDataVizColorOrangeDarker = '#BD954F';\nexport const RedsiftDataVizColorOrangeLight = '#FFE8C0';\nexport const RedsiftDataVizColorOrangeLighter = '#FFF0D7';\nexport const RedsiftDataVizColorYellowDefault = '#F6EFC7';\nexport const RedsiftDataVizColorYellowDark = '#DED4A0';\nexport const RedsiftDataVizColorYellowDarker = '#C6BB7A';\nexport const RedsiftDataVizColorYellowLight = '#FFFBE1';\nexport const RedsiftDataVizColorYellowLighter = '#FFFDF0';\nexport const RedsiftDataVizColorBrownDefault = '#E6C2A0';\nexport const RedsiftDataVizColorBrownDark = '#CDA279';\nexport const RedsiftDataVizColorBrownDarker = '#B58556';\nexport const RedsiftDataVizColorBrownLight = '#FFE3C9';\nexport const RedsiftDataVizColorBrownLighter = '#FFEEDE';\nexport const RedsiftDataVizColorGreyDefault = '#E5E5E5';\nexport const RedsiftDataVizColorGreyDark = '#BDBDBD';\nexport const RedsiftDataVizColorGreyDarker = '#666666';\nexport const RedsiftDataVizColorGreyLight = '#F5F5F5';\nexport const RedsiftDataVizColorGreyLighter = '#FFFFFF';\nexport const RedsiftSideNavigationColorBackground = '#2D2D34';\nexport const RedsiftSideNavigationColorMenuItemTextResting = '#FFFFFFB3';\nexport const RedsiftSideNavigationColorMenuItemTextDisabled = '#76767A';\nexport const RedsiftSideNavigationColorMenuItemTextHover = '#FFFFFF';\nexport const RedsiftSideNavigationColorMenuItemBackgroundHover = '#4C4C64';\nexport const RedsiftSideNavigationColorMenuItemBackgroundSecondary = '#333340';\nexport const RedsiftSideNavigationColorMenuItemBackgroundActive = '#39394C';\nexport const RedsiftSideNavigationColorMenuItemActive = '#02AC61';\nexport const RedsiftSideNavigationColorScrollbarResting = '#4C4C64';\nexport const RedsiftSideNavigationColorScrollbarHover = '#5d5d73';\nexport const RedsiftLayoutZIndexFooter = '1000';\nexport const RedsiftLayoutZIndexHeader = '1010';\nexport const RedsiftLayoutZIndexSidePanel = '1050';\nexport const RedsiftLayoutZIndexDropdown = '1100';\nexport const RedsiftLayoutZIndexOverlay = '1150';\nexport const RedsiftLayoutZIndexDialog = '1200';\nexport const RedsiftLayoutZIndexPopover = '1250';\nexport const RedsiftLayoutZIndexTooltip = '1300';\nexport const RedsiftTypographyFontFamilyRaleway = \"'Raleway', sans-serif\";\nexport const RedsiftTypographyFontFamilyElectrolize = \"'electrolize', sans-serif\";\nexport const RedsiftTypographyFontFamilySourceCodePro = \"'Source Code Pro', sans-serif\";\nexport const RedsiftTypographyFontWeightRegular = '400';\nexport const RedsiftTypographyFontWeightMedium = '500';\nexport const RedsiftTypographyFontWeightSemiBold = '600';\nexport const RedsiftTypographyFontWeightBold = '700';\nexport const RedsiftTypographyH1FontFamily = \"'electrolize', sans-serif\";\nexport const RedsiftTypographyH1FontSize = '24px';\nexport const RedsiftTypographyH1FontWeight = '400';\nexport const RedsiftTypographyH1LineHeight = '28px';\nexport const RedsiftTypographyH1TextTransform = 'uppercase';\nexport const RedsiftTypographyH2FontFamily = \"'Raleway', sans-serif\";\nexport const RedsiftTypographyH2FontSize = '24px';\nexport const RedsiftTypographyH2FontWeight = '600';\nexport const RedsiftTypographyH2LineHeight = '28px';\nexport const RedsiftTypographyH2TextTransform = 'unset';\nexport const RedsiftTypographyH3FontFamily = \"'Raleway', sans-serif\";\nexport const RedsiftTypographyH3FontSize = '20px';\nexport const RedsiftTypographyH3FontWeight = '500';\nexport const RedsiftTypographyH3LineHeight = '24px';\nexport const RedsiftTypographyH3TextTransform = 'unset';\nexport const RedsiftTypographyH4FontFamily = \"'Raleway', sans-serif\";\nexport const RedsiftTypographyH4FontSize = '18px';\nexport const RedsiftTypographyH4FontWeight = '500';\nexport const RedsiftTypographyH4LineHeight = '22px';\nexport const RedsiftTypographyH4TextTransform = 'unset';\nexport const RedsiftTypographyH5FontFamily = \"'Raleway', sans-serif\";\nexport const RedsiftTypographyH5FontSize = '16px';\nexport const RedsiftTypographyH5FontWeight = '600';\nexport const RedsiftTypographyH5LineHeight = '20px';\nexport const RedsiftTypographyH5TextTransform = 'unset';\nexport const RedsiftTypographySubtitleFontFamily = \"'Raleway', sans-serif\";\nexport const RedsiftTypographySubtitleFontSize = '15px';\nexport const RedsiftTypographySubtitleFontWeight = '700';\nexport const RedsiftTypographySubtitleLineHeight = '26px';\nexport const RedsiftTypographySubtitleTextTransform = 'unset';\nexport const RedsiftTypographyBodyFontFamily = \"'Raleway', sans-serif\";\nexport const RedsiftTypographyBodyFontSize = '15px';\nexport const RedsiftTypographyBodyFontWeight = '400';\nexport const RedsiftTypographyBodyLineHeight = '26px';\nexport const RedsiftTypographyBodyTextTransform = 'unset';\nexport const RedsiftTypographyBody2FontFamily = \"'Raleway', sans-serif\";\nexport const RedsiftTypographyBody2FontSize = '14px';\nexport const RedsiftTypographyBody2FontWeight = '400';\nexport const RedsiftTypographyBody2LineHeight = '20px';\nexport const RedsiftTypographyLinkFontFamily = \"'Raleway', sans-serif\";\nexport const RedsiftTypographyLinkFontSize = '15px';\nexport const RedsiftTypographyLinkFontWeight = '400';\nexport const RedsiftTypographyLinkLineHeight = '26px';\nexport const RedsiftTypographyInputTextFontFamily = \"'Source Code Pro', sans-serif\";\nexport const RedsiftTypographyInputTextFontSize = '15px';\nexport const RedsiftTypographyInputTextFontWeight = '400';\nexport const RedsiftTypographyInputTextLineHeight = '26px';\nexport const RedsiftTypographyButtonFontFamily = \"'Raleway', sans-serif\";\nexport const RedsiftTypographyButtonFontSize = '15px';\nexport const RedsiftTypographyButtonFontWeight = '500';\nexport const RedsiftTypographyButtonLineHeight = '26px';\nexport const RedsiftTypographyButtonTextTransform = 'uppercase';\nexport const RedsiftTypographyCaptionFontFamily = \"'Raleway', sans-serif\";\nexport const RedsiftTypographyCaptionFontSize = '13px';\nexport const RedsiftTypographyCaptionFontWeight = '400';\nexport const RedsiftTypographyCaptionLineHeight = '23px';\nexport const RedsiftTypographyCaptionTextTransform = 'unset';\nexport const RedsiftTypographyHelperFontFamily = \"'Raleway', sans-serif\";\nexport const RedsiftTypographyHelperFontSize = '12px';\nexport const RedsiftTypographyHelperFontWeight = '400';\nexport const RedsiftTypographyHelperLineHeight = '16px';\nexport const RedsiftTypographyBadgeFontFamily = \"'Source Code Pro', sans-serif\";\nexport const RedsiftTypographyBadgeFontSize = '12px';\nexport const RedsiftTypographyBadgeFontWeight = '500';\nexport const RedsiftTypographyBadgeLineHeight = '20px';\nexport const RedsiftTypographyPillFontFamily = \"'Source Code Pro', sans-serif\";\nexport const RedsiftTypographyPillFontSize = '15px';\nexport const RedsiftTypographyPillFontWeight = '500';\nexport const RedsiftTypographyPillLineHeight = '28px';\nexport const RedsiftTypographyChipFontFamily = \"'Source Code Pro', sans-serif\";\nexport const RedsiftTypographyChipFontSize = '13px';\nexport const RedsiftTypographyChipFontWeight = '400';\nexport const RedsiftTypographyChipLineHeight = '18px';\nexport const RedsiftTypographyTooltipFontFamily = \"'Raleway', sans-serif\";\nexport const RedsiftTypographyTooltipFontSize = '13px';\nexport const RedsiftTypographyTooltipFontWeight = '500';\nexport const RedsiftTypographyTooltipLineHeight = '23px';","import { ComponentProps, DependencyList } from 'react';\n\n/**\n * Display a warning if no label was found for screen readers and assistive technologies.\n *\n * @param props Component props containing the aria-label and aria-labelledby params to check for.\n * @param additionalKeysToCheck Additional props to check that can act as a label for screen readers (i.e. children).\n */\nexport const warnIfNoAccessibleLabelFound = (\n props: ComponentProps<keyof JSX.IntrinsicElements>,\n additionalKeysToCheck?: DependencyList\n): void => {\n const { 'aria-label': ariaLabel, 'aria-labelledby': ariaLabelledby } = props;\n\n const hasText =\n additionalKeysToCheck &&\n additionalKeysToCheck.filter((key) => !!key).length > 0;\n const hasAriaLabel = Boolean(ariaLabel || ariaLabelledby);\n\n if (!hasAriaLabel && !hasText) {\n console.warn('You must provide a label for accessibility');\n }\n};\n","import { useState, useEffect } from 'react';\n\ninterface WindowSize {\n height?: number;\n width?: number;\n size?: 'xs' | 'sm' | 'md' | 'lg' | 'xl';\n}\n\nexport const useWindowSize = () => {\n const [windowSize, setWindowSize] = useState<WindowSize>({\n width: undefined,\n height: undefined,\n size: undefined,\n });\n\n useEffect(() => {\n function handleResize() {\n setWindowSize((windowSize) => {\n if (\n window.innerWidth === windowSize.width &&\n window.innerHeight === windowSize.height\n ) {\n return windowSize;\n }\n\n let size: WindowSize['size'];\n if (window.innerWidth <= 480) {\n size = 'xs';\n } else if (window.innerWidth <= 768) {\n size = 'sm';\n } else if (window.innerWidth <= 1024) {\n size = 'md';\n } else if (window.innerWidth <= 1200) {\n size = 'lg';\n } else {\n size = 'xl';\n }\n return {\n width: window.innerWidth,\n height: window.innerHeight,\n size,\n };\n });\n }\n\n window.addEventListener('resize', handleResize);\n handleResize();\n\n return () => window.removeEventListener('resize', handleResize);\n }, []);\n return windowSize;\n};\n","import { useState, useEffect, MutableRefObject, DependencyList } from 'react';\n\n/**\n * Get the bounding rect of a component.\n */\nexport const useBoundingClientRect = (\n ref: MutableRefObject<HTMLElement>,\n deps?: DependencyList\n) => {\n const [boundingRect, setBoundingRect] = useState<DOMRect>({} as DOMRect);\n\n useEffect(() => {\n if (ref.current) {\n setBoundingRect(ref.current.getBoundingClientRect());\n }\n }, deps);\n\n return boundingRect;\n};\n","import $89yE2$react, {useContext as $89yE2$useContext, useMemo as $89yE2$useMemo, useRef as $89yE2$useRef, useState as $89yE2$useState, useLayoutEffect as $89yE2$useLayoutEffect} from \"react\";\n\n/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ /*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ // We must avoid a circular dependency with @react-aria/utils, and this useLayoutEffect is\n// guarded by a check that it only runs on the client side.\n// eslint-disable-next-line rulesdir/useLayoutEffectRule\n\n// Default context value to use in case there is no SSRProvider. This is fine for\n// client-only apps. In order to support multiple copies of React Aria potentially\n// being on the page at once, the prefix is set to a random number. SSRProvider\n// will reset this to zero for consistency between server and client, so in the\n// SSR case multiple copies of React Aria is not supported.\nconst $704cf1d3b684cc5c$var$defaultContext = {\n prefix: String(Math.round(Math.random() * 10000000000)),\n current: 0\n};\nconst $704cf1d3b684cc5c$var$SSRContext = /*#__PURE__*/ (0, $89yE2$react).createContext($704cf1d3b684cc5c$var$defaultContext);\nfunction $704cf1d3b684cc5c$export$9f8ac96af4b1b2ae(props) {\n let cur = (0, $89yE2$useContext)($704cf1d3b684cc5c$var$SSRContext);\n let counter = $704cf1d3b684cc5c$var$useCounter(cur === $704cf1d3b684cc5c$var$defaultContext);\n let value = (0, $89yE2$useMemo)(()=>({\n // If this is the first SSRProvider, start with an empty string prefix, otherwise\n // append and increment the counter.\n prefix: cur === $704cf1d3b684cc5c$var$defaultContext ? \"\" : `${cur.prefix}-${counter}`,\n current: 0\n }), [\n cur,\n counter\n ]);\n return /*#__PURE__*/ (0, $89yE2$react).createElement($704cf1d3b684cc5c$var$SSRContext.Provider, {\n value: value\n }, props.children);\n}\nlet $704cf1d3b684cc5c$var$canUseDOM = Boolean(typeof window !== \"undefined\" && window.document && window.document.createElement);\nlet $704cf1d3b684cc5c$var$componentIds = new WeakMap();\nfunction $704cf1d3b684cc5c$var$useCounter(isDisabled = false) {\n let ctx = (0, $89yE2$useContext)($704cf1d3b684cc5c$var$SSRContext);\n let ref = (0, $89yE2$useRef)(null);\n if (ref.current === null && !isDisabled) {\n var _React___SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED, _React___SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED_ReactCurrentOwner;\n // In strict mode, React renders components twice, and the ref will be reset to null on the second render.\n // This means our id counter will be incremented twice instead of once. This is a problem because on the\n // server, components are only rendered once and so ids generated on the server won't match the client.\n // In React 18, useId was introduced to solve this, but it is not available in older versions. So to solve this\n // we need to use some React internals to access the underlying Fiber instance, which is stable between renders.\n // This is exposed as ReactCurrentOwner in development, which is all we need since StrictMode only runs in development.\n // To ensure that we only increment the global counter once, we store the starting id for this component in\n // a weak map associated with the Fiber. On the second render, we reset the global counter to this value.\n // Since React runs the second render immediately after the first, this is safe.\n // @ts-ignore\n let currentOwner = (_React___SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED = (0, $89yE2$react).__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED) === null || _React___SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED === void 0 ? void 0 : (_React___SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED_ReactCurrentOwner = _React___SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner) === null || _React___SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED_ReactCurrentOwner === void 0 ? void 0 : _React___SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED_ReactCurrentOwner.current;\n if (currentOwner) {\n let prevComponentValue = $704cf1d3b684cc5c$var$componentIds.get(currentOwner);\n if (prevComponentValue == null) // On the first render, and first call to useId, store the id and state in our weak map.\n $704cf1d3b684cc5c$var$componentIds.set(currentOwner, {\n id: ctx.current,\n state: currentOwner.memoizedState\n });\n else if (currentOwner.memoizedState !== prevComponentValue.state) {\n // On the second render, the memoizedState gets reset by React.\n // Reset the counter, and remove from the weak map so we don't\n // do this for subsequent useId calls.\n ctx.current = prevComponentValue.id;\n $704cf1d3b684cc5c$var$componentIds.delete(currentOwner);\n }\n }\n ref.current = ++ctx.current;\n }\n return ref.current;\n}\nfunction $704cf1d3b684cc5c$export$619500959fc48b26(defaultId) {\n let ctx = (0, $89yE2$useContext)($704cf1d3b684cc5c$var$SSRContext);\n // If we are rendering in a non-DOM environment, and there's no SSRProvider,\n // provide a warning to hint to the developer to add one.\n if (ctx === $704cf1d3b684cc5c$var$defaultContext && !$704cf1d3b684cc5c$var$canUseDOM) console.warn(\"When server rendering, you must wrap your application in an <SSRProvider> to ensure consistent ids are generated between the client and server.\");\n let counter = $704cf1d3b684cc5c$var$useCounter(!!defaultId);\n return defaultId || `react-aria${ctx.prefix}-${counter}`;\n}\nfunction $704cf1d3b684cc5c$export$535bd6ca7f90a273() {\n let cur = (0, $89yE2$useContext)($704cf1d3b684cc5c$var$SSRContext);\n let isInSSRContext = cur !== $704cf1d3b684cc5c$var$defaultContext;\n let [isSSR, setIsSSR] = (0, $89yE2$useState)(isInSSRContext);\n // If on the client, and the component was initially server rendered,\n // then schedule a layout effect to update the component after hydration.\n if (typeof window !== \"undefined\" && isInSSRContext) // This if statement technically breaks the rules of hooks, but is safe\n // because the condition never changes after mounting.\n // eslint-disable-next-line react-hooks/rules-of-hooks\n (0, $89yE2$useLayoutEffect)(()=>{\n setIsSSR(false);\n }, []);\n return isSSR;\n}\n\n\n\n\nexport {$704cf1d3b684cc5c$export$9f8ac96af4b1b2ae as SSRProvider, $704cf1d3b684cc5c$export$619500959fc48b26 as useSSRSafeId, $704cf1d3b684cc5c$export$535bd6ca7f90a273 as useIsSSR};\n//# sourceMappingURL=module.js.map\n","/*\n * Copyright 2022 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ /*\n * Copyright 2022 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ class $5b160d28a433310d$export$c17fa47878dc55b6 {\n /** Returns a localized string for the given key and locale. */ getStringForLocale(key, locale) {\n let strings = this.strings[locale];\n if (!strings) {\n strings = $5b160d28a433310d$var$getStringsForLocale(locale, this.strings, this.defaultLocale);\n this.strings[locale] = strings;\n }\n let string = strings[key];\n if (!string) throw new Error(`Could not find intl message ${key} in ${locale} locale`);\n return string;\n }\n constructor(messages, defaultLocale = \"en-US\"){\n // Clone messages so we don't modify the original object.\n this.strings = {\n ...messages\n };\n this.defaultLocale = defaultLocale;\n }\n}\nfunction $5b160d28a433310d$var$getStringsForLocale(locale, strings, defaultLocale = \"en-US\") {\n // If there is an exact match, use it.\n if (strings[locale]) return strings[locale];\n // Attempt to find the closest match by language.\n // For example, if the locale is fr-CA (French Canadian), but there is only\n // an fr-FR (France) set of strings, use that.\n // This could be replaced with Intl.LocaleMatcher once it is supported.\n // https://github.com/tc39/proposal-intl-localematcher\n let language = $5b160d28a433310d$var$getLanguage(locale);\n if (strings[language]) return strings[language];\n for(let key in strings){\n if (key.startsWith(language + \"-\")) return strings[key];\n }\n // Nothing close, use english.\n return strings[defaultLocale];\n}\nfunction $5b160d28a433310d$var$getLanguage(locale) {\n // @ts-ignore\n if (Intl.Locale) // @ts-ignore\n return new Intl.Locale(locale).language;\n return locale.split(\"-\")[0];\n}\n\n\n/*\n * Copyright 2022 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ const $6db58dc88e78b024$var$pluralRulesCache = new Map();\nconst $6db58dc88e78b024$var$numberFormatCache = new Map();\nclass $6db58dc88e78b024$export$2f817fcdc4b89ae0 {\n /** Formats a localized string for the given key with the provided variables. */ format(key, variables) {\n let message = this.strings.getStringForLocale(key, this.locale);\n return typeof message === \"function\" ? message(variables, this) : message;\n }\n plural(count, options, type = \"cardinal\") {\n let opt = options[\"=\" + count];\n if (opt) return typeof opt === \"function\" ? opt() : opt;\n let key = this.locale + \":\" + type;\n let pluralRules = $6db58dc88e78b024$var$pluralRulesCache.get(key);\n if (!pluralRules) {\n pluralRules = new Intl.PluralRules(this.locale, {\n type: type\n });\n $6db58dc88e78b024$var$pluralRulesCache.set(key, pluralRules);\n }\n let selected = pluralRules.select(count);\n opt = options[selected] || options.other;\n return typeof opt === \"function\" ? opt() : opt;\n }\n number(value) {\n let numberFormat = $6db58dc88e78b024$var$numberFormatCache.get(this.locale);\n if (!numberFormat) {\n numberFormat = new Intl.NumberFormat(this.locale);\n $6db58dc88e78b024$var$numberFormatCache.set(this.locale, numberFormat);\n }\n return numberFormat.format(value);\n }\n select(options, value) {\n let opt = options[value] || options.other;\n return typeof opt === \"function\" ? opt() : opt;\n }\n constructor(locale, strings){\n this.locale = locale;\n this.strings = strings;\n }\n}\n\n\n\n\nexport {$5b160d28a433310d$export$c17fa47878dc55b6 as LocalizedStringDictionary, $6db58dc88e78b024$export$2f817fcdc4b89ae0 as LocalizedStringFormatter};\n//# sourceMappingURL=module.js.map\n","import $cUVuN$swchelperssrc_class_private_field_initmjs from \"@swc/helpers/src/_class_private_field_init.mjs\";\nimport $cUVuN$swchelperssrc_define_propertymjs from \"@swc/helpers/src/_define_property.mjs\";\n\n/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ /*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ \n/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ /*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ // Portions of the code in this file are based on code from the TC39 Temporal proposal.\n// Original licensing can be found in the NOTICE file in the root directory of this source tree.\n\n\n/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ // Portions of the code in this file are based on code from ICU.\n// Original licensing can be found in the NOTICE file in the root directory of this source tree.\n\n\n/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ \nfunction $2b4dce13dd5a17fa$export$842a2cf37af977e1(amount, numerator) {\n return amount - numerator * Math.floor(amount / numerator);\n}\nfunction $2b4dce13dd5a17fa$export$784d13d8ee351f07(date) {\n if (date.era) return new (0, $35ea8db9cb2ccb90$export$99faa760c7908e4f)(date.calendar, date.era, date.year, date.month, date.day);\n else return new (0, $35ea8db9cb2ccb90$export$99faa760c7908e4f)(date.calendar, date.year, date.month, date.day);\n}\nfunction $2b4dce13dd5a17fa$export$27fa0172ae2644b3(date) {\n if (date.era) return new (0, $35ea8db9cb2ccb90$export$ca871e8dbb80966f)(date.calendar, date.era, date.year, date.month, date.day, date.hour, date.minute, date.second, date.millisecond);\n else return new (0, $35ea8db9cb2ccb90$export$ca871e8dbb80966f)(date.calendar, date.year, date.month, date.day, date.hour, date.minute, date.second);\n}\n\n\nconst $3b62074eb05584b2$var$EPOCH = 1721426; // 001/01/03 Julian C.E.\nfunction $3b62074eb05584b2$export$f297eb839006d339(era, year, month, day) {\n year = $3b62074eb05584b2$export$c36e0ecb2d4fa69d(era, year);\n let y1 = year - 1;\n let monthOffset = -2;\n if (month <= 2) monthOffset = 0;\n else if ($3b62074eb05584b2$export$553d7fa8e3805fc0(year)) monthOffset = -1;\n return $3b62074eb05584b2$var$EPOCH - 1 + 365 * y1 + Math.floor(y1 / 4) - Math.floor(y1 / 100) + Math.floor(y1 / 400) + Math.floor((367 * month - 362) / 12 + monthOffset + day);\n}\nfunction $3b62074eb05584b2$export$553d7fa8e3805fc0(year) {\n return year % 4 === 0 && (year % 100 !== 0 || year % 400 === 0);\n}\nfunction $3b62074eb05584b2$export$c36e0ecb2d4fa69d(era, year) {\n return era === \"BC\" ? 1 - year : year;\n}\nfunction $3b62074eb05584b2$export$4475b7e617eb123c(year) {\n let era = \"AD\";\n if (year <= 0) {\n era = \"BC\";\n year = 1 - year;\n }\n return [\n era,\n year\n ];\n}\nconst $3b62074eb05584b2$var$daysInMonth = {\n standard: [\n 31,\n 28,\n 31,\n 30,\n 31,\n 30,\n 31,\n 31,\n 30,\n 31,\n 30,\n 31\n ],\n leapyear: [\n 31,\n 29,\n 31,\n 30,\n 31,\n 30,\n 31,\n 31,\n 30,\n 31,\n 30,\n 31\n ]\n};\nclass $3b62074eb05584b2$export$80ee6245ec4f29ec {\n fromJulianDay(jd) {\n let jd0 = jd;\n let depoch = jd0 - $3b62074eb05584b2$var$EPOCH;\n let quadricent = Math.floor(depoch / 146097);\n let dqc = (0, $2b4dce13dd5a17fa$export$842a2cf37af977e1)(depoch, 146097);\n let cent = Math.floor(dqc / 36524);\n let dcent = (0, $2b4dce13dd5a17fa$export$842a2cf37af977e1)(dqc, 36524);\n let quad = Math.floor(dcent / 1461);\n let dquad = (0, $2b4dce13dd5a17fa$export$842a2cf37af977e1)(dcent, 1461);\n let yindex = Math.floor(dquad / 365);\n let extendedYear = quadricent * 400 + cent * 100 + quad * 4 + yindex + (cent !== 4 && yindex !== 4 ? 1 : 0);\n let [era, year] = $3b62074eb05584b2$export$4475b7e617eb123c(extendedYear);\n let yearDay = jd0 - $3b62074eb05584b2$export$f297eb839006d339(era, year, 1, 1);\n let leapAdj = 2;\n if (jd0 < $3b62074eb05584b2$export$f297eb839006d339(era, year, 3, 1)) leapAdj = 0;\n else if ($3b62074eb05584b2$export$553d7fa8e3805fc0(year)) leapAdj = 1;\n let month = Math.floor(((yearDay + leapAdj) * 12 + 373) / 367);\n let day = jd0 - $3b62074eb05584b2$export$f297eb839006d339(era, year, month, 1) + 1;\n return new (0, $35ea8db9cb2ccb90$export$99faa760c7908e4f)(era, year, month, day);\n }\n toJulianDay(date) {\n return $3b62074eb05584b2$export$f297eb839006d339(date.era, date.year, date.month, date.day);\n }\n getDaysInMonth(date) {\n return $3b62074eb05584b2$var$daysInMonth[$3b62074eb05584b2$export$553d7fa8e3805fc0(date.year) ? \"leapyear\" : \"standard\"][date.month - 1];\n }\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n getMonthsInYear(date) {\n return 12;\n }\n getDaysInYear(date) {\n return $3b62074eb05584b2$export$553d7fa8e3805fc0(date.year) ? 366 : 365;\n }\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n getYearsInEra(date) {\n return 9999;\n }\n getEras() {\n return [\n \"BC\",\n \"AD\"\n ];\n }\n isInverseEra(date) {\n return date.era === \"BC\";\n }\n balanceDate(date) {\n if (date.year <= 0) {\n date.era = date.era === \"BC\" ? \"AD\" : \"BC\";\n date.year = 1 - date.year;\n }\n }\n constructor(){\n (0, $cUVuN$swchelperssrc_define_propertymjs)(this, \"identifier\", \"gregory\");\n }\n}\n\n\n/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ \n/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ // Data from https://github.com/unicode-cldr/cldr-core/blob/master/supplemental/weekData.json\n// Locales starting on Sunday have been removed for compression.\nconst $2fe286d2fb449abb$export$7a5acbd77d414bd9 = {\n \"001\": 1,\n AD: 1,\n AE: 6,\n AF: 6,\n AI: 1,\n AL: 1,\n AM: 1,\n AN: 1,\n AT: 1,\n AX: 1,\n AZ: 1,\n BA: 1,\n BE: 1,\n BG: 1,\n BH: 6,\n BM: 1,\n BN: 1,\n BY: 1,\n CH: 1,\n CL: 1,\n CM: 1,\n CR: 1,\n CY: 1,\n CZ: 1,\n DE: 1,\n DJ: 6,\n DK: 1,\n DZ: 6,\n EC: 1,\n EE: 1,\n EG: 6,\n ES: 1,\n FI: 1,\n FJ: 1,\n FO: 1,\n FR: 1,\n GB: 1,\n GE: 1,\n GF: 1,\n GP: 1,\n GR: 1,\n HR: 1,\n HU: 1,\n IE: 1,\n IQ: 6,\n IR: 6,\n IS: 1,\n IT: 1,\n JO: 6,\n KG: 1,\n KW: 6,\n KZ: 1,\n LB: 1,\n LI: 1,\n LK: 1,\n LT: 1,\n LU: 1,\n LV: 1,\n LY: 6,\n MC: 1,\n MD: 1,\n ME: 1,\n MK: 1,\n MN: 1,\n MQ: 1,\n MV: 5,\n MY: 1,\n NL: 1,\n NO: 1,\n NZ: 1,\n OM: 6,\n PL: 1,\n QA: 6,\n RE: 1,\n RO: 1,\n RS: 1,\n RU: 1,\n SD: 6,\n SE: 1,\n SI: 1,\n SK: 1,\n SM: 1,\n SY: 6,\n TJ: 1,\n TM: 1,\n TR: 1,\n UA: 1,\n UY: 1,\n UZ: 1,\n VA: 1,\n VN: 1,\n XK: 1\n};\n\n\nfunction $14e0f24ef4ac5c92$export$ea39ec197993aef0(a, b) {\n b = (0, $11d87f3f76e88657$export$b4a036af3fc0b032)(b, a.calendar);\n return a.era === b.era && a.year === b.year && a.month === b.month && a.day === b.day;\n}\nfunction $14e0f24ef4ac5c92$export$a18c89cbd24170ff(a, b) {\n b = (0, $11d87f3f76e88657$export$b4a036af3fc0b032)(b, a.calendar);\n // In the Japanese calendar, months can span multiple eras/years, so only compare the first of the month.\n a = $14e0f24ef4ac5c92$export$a5a3b454ada2268e(a);\n b = $14e0f24ef4ac5c92$export$a5a3b454ada2268e(b);\n return a.era === b.era && a.year === b.year && a.month === b.month;\n}\nfunction $14e0f24ef4ac5c92$export$5841f9eb9773f25f(a, b) {\n b = (0, $11d87f3f76e88657$export$b4a036af3fc0b032)(b, a.calendar);\n a = $14e0f24ef4ac5c92$export$f91e89d3d0406102(a);\n b = $14e0f24ef4ac5c92$export$f91e89d3d0406102(b);\n return a.era === b.era && a.year === b.year;\n}\nfunction $14e0f24ef4ac5c92$export$91b62ebf2ba703ee(a, b) {\n return a.calendar.identifier === b.calendar.identifier && a.era === b.era && a.year === b.year && a.month === b.month && a.day === b.day;\n}\nfunction $14e0f24ef4ac5c92$export$5a8da0c44a3afdf2(a, b) {\n a = $14e0f24ef4ac5c92$export$a5a3b454ada2268e(a);\n b = $14e0f24ef4ac5c92$export$a5a3b454ada2268e(b);\n return a.calendar.identifier === b.calendar.identifier && a.era === b.era && a.year === b.year && a.month === b.month;\n}\nfunction $14e0f24ef4ac5c92$export$ea840f5a6dda8147(a, b) {\n a = $14e0f24ef4ac5c92$export$f91e89d3d0406102(a);\n b = $14e0f24ef4ac5c92$export$f91e89d3d0406102(b);\n return a.calendar.identifier === b.calendar.identifier && a.era === b.era && a.year === b.year;\n}\nfunction $14e0f24ef4ac5c92$export$629b0a497aa65267(date, timeZone) {\n return $14e0f24ef4ac5c92$export$ea39ec197993aef0(date, $14e0f24ef4ac5c92$export$d0bdf45af03a6ea3(timeZone));\n}\nfunction $14e0f24ef4ac5c92$export$2061056d06d7cdf7(date, locale) {\n let julian = date.calendar.toJulianDay(date);\n // If julian is negative, then julian % 7 will be negative, so we adjust\n // accordingly. Julian day 0 is Monday.\n let dayOfWeek = Math.ceil(julian + 1 - $14e0f24ef4ac5c92$var$getWeekStart(locale)) % 7;\n if (dayOfWeek < 0) dayOfWeek += 7;\n return dayOfWeek;\n}\nfunction $14e0f24ef4ac5c92$export$461939dd4422153(timeZone) {\n return (0, $11d87f3f76e88657$export$1b96692a1ba042ac)(Date.now(), timeZone);\n}\nfunction $14e0f24ef4ac5c92$export$d0bdf45af03a6ea3(timeZone) {\n return (0, $11d87f3f76e88657$export$93522d1a439f3617)($14e0f24ef4ac5c92$export$461939dd4422153(timeZone));\n}\nfunction $14e0f24ef4ac5c92$export$68781ddf31c0090f(a, b) {\n return a.calendar.toJulianDay(a) - b.calendar.toJulianDay(b);\n}\nfunction $14e0f24ef4ac5c92$export$c19a80a9721b80f6(a, b) {\n return $14e0f24ef4ac5c92$var$timeToMs(a) - $14e0f24ef4ac5c92$var$timeToMs(b);\n}\nfunction $14e0f24ef4ac5c92$var$timeToMs(a) {\n return a.hour * 3600000 + a.minute * 60000 + a.second * 1000 + a.millisecond;\n}\nfunction $14e0f24ef4ac5c92$export$126c91c941de7e(a, timeZone) {\n let ms = (0, $11d87f3f76e88657$export$5107c82f94518f5c)(a, timeZone);\n let tomorrow = a.add({\n days: 1\n });\n let tomorrowMs = (0, $11d87f3f76e88657$export$5107c82f94518f5c)(tomorrow, timeZone);\n return (tomorrowMs - ms) / 3600000;\n}\nlet $14e0f24ef4ac5c92$var$localTimeZone = null;\nfunction $14e0f24ef4ac5c92$export$aa8b41735afcabd2() {\n // TODO: invalidate this somehow?\n if ($14e0f24ef4ac5c92$var$localTimeZone == null) $14e0f24ef4ac5c92$var$localTimeZone = new Intl.DateTimeFormat().resolvedOptions().timeZone;\n return $14e0f24ef4ac5c92$var$localTimeZone;\n}\nfunction $14e0f24ef4ac5c92$export$a5a3b454ada2268e(date) {\n // Use `subtract` instead of `set` so we don't get constrained in an era.\n return date.subtract({\n days: date.day - 1\n });\n}\nfunction $14e0f24ef4ac5c92$export$a2258d9c4118825c(date) {\n return date.add({\n days: date.calendar.getDaysInMonth(date) - date.day\n });\n}\nfunction $14e0f24ef4ac5c92$export$f91e89d3d0406102(date) {\n return $14e0f24ef4ac5c92$export$a5a3b454ada2268e(date.subtract({\n months: date.month - 1\n }));\n}\nfunction $14e0f24ef4ac5c92$export$8b7aa55c66d5569e(date) {\n return $14e0f24ef4ac5c92$export$a2258d9c4118825c(date.add({\n months: date.calendar.getMonthsInYear(date) - date.month\n }));\n}\nfunction $14e0f24ef4ac5c92$export$5412ac11713b72ad(date) {\n if (date.calendar.getMinimumMonthInYear) return date.calendar.getMinimumMonthInYear(date);\n return 1;\n}\nfunction $14e0f24ef4ac5c92$export$b2f4953d301981d5(date) {\n if (date.calendar.getMinimumDayInMonth) return date.calendar.getMinimumDayInMonth(date);\n return 1;\n}\nfunction $14e0f24ef4ac5c92$export$42c81a444fbfb5d4(date, locale) {\n let dayOfWeek = $14e0f24ef4ac5c92$export$2061056d06d7cdf7(date, locale);\n return date.subtract({\n days: dayOfWeek\n });\n}\nfunction $14e0f24ef4ac5c92$export$ef8b6d9133084f4e(date, locale) {\n return $14e0f24ef4ac5c92$export$42c81a444fbfb5d4(date, locale).add({\n days: 6\n });\n}\nconst $14e0f24ef4ac5c92$var$cachedRegions = new Map();\nfunction $14e0f24ef4ac5c92$var$getRegion(locale) {\n // If the Intl.Locale API is available, use it to get the region for the locale.\n // @ts-ignore\n if (Intl.Locale) {\n // Constructing an Intl.Locale is expensive, so cache the result.\n let region = $14e0f24ef4ac5c92$var$cachedRegions.get(locale);\n if (!region) {\n // @ts-ignore\n region = new Intl.Locale(locale).maximize().region;\n $14e0f24ef4ac5c92$var$cachedRegions.set(locale, region);\n }\n return region;\n }\n // If not, just try splitting the string.\n // If the second part of the locale string is 'u',\n // then this is a unicode extension, so ignore it.\n // Otherwise, it should be the region.\n let part = locale.split(\"-\")[1];\n return part === \"u\" ? null : part;\n}\nfunction $14e0f24ef4ac5c92$var$getWeekStart(locale) {\n // TODO: use Intl.Locale for this once browsers support the weekInfo property\n // https://github.com/tc39/proposal-intl-locale-info\n let region = $14e0f24ef4ac5c92$var$getRegion(locale);\n return (0, $2fe286d2fb449abb$export$7a5acbd77d414bd9)[region] || 0;\n}\nfunction $14e0f24ef4ac5c92$export$ccc1b2479e7dd654(date, locale) {\n let days = date.calendar.getDaysInMonth(date);\n return Math.ceil(($14e0f24ef4ac5c92$export$2061056d06d7cdf7($14e0f24ef4ac5c92$export$a5a3b454ada2268e(date), locale) + days) / 7);\n}\nfunction $14e0f24ef4ac5c92$export$5c333a116e949cdd(a, b) {\n if (a && b) return a.compare(b) <= 0 ? a : b;\n return a || b;\n}\nfunction $14e0f24ef4ac5c92$export$a75f2bff57811055(a, b) {\n if (a && b) return a.compare(b) >= 0 ? a : b;\n return a || b;\n}\nconst $14e0f24ef4ac5c92$var$WEEKEND_DATA = {\n AF: [\n 4,\n 5\n ],\n AE: [\n 5,\n 6\n ],\n BH: [\n 5,\n 6\n ],\n DZ: [\n 5,\n 6\n ],\n EG: [\n 5,\n 6\n ],\n IL: [\n 5,\n 6\n ],\n IQ: [\n 5,\n 6\n ],\n IR: [\n 5,\n 5\n ],\n JO: [\n 5,\n 6\n ],\n KW: [\n 5,\n 6\n ],\n LY: [\n 5,\n 6\n ],\n OM: [\n 5,\n 6\n ],\n QA: [\n 5,\n 6\n ],\n SA: [\n 5,\n 6\n ],\n SD: [\n 5,\n 6\n ],\n SY: [\n 5,\n 6\n ],\n YE: [\n 5,\n 6\n ]\n};\nfunction $14e0f24ef4ac5c92$export$618d60ea299da42(date, locale) {\n let julian = date.calendar.toJulianDay(date);\n // If julian is negative, then julian % 7 will be negative, so we adjust\n // accordingly. Julian day 0 is Monday.\n let dayOfWeek = Math.ceil(julian + 1) % 7;\n if (dayOfWeek < 0) dayOfWeek += 7;\n let region = $14e0f24ef4ac5c92$var$getRegion(locale);\n // Use Intl.Locale for this once weekInfo is supported.\n // https://github.com/tc39/proposal-intl-locale-info\n let [start, end] = $14e0f24ef4ac5c92$var$WEEKEND_DATA[region] || [\n 6,\n 0\n ];\n return dayOfWeek === start || dayOfWeek === end;\n}\nfunction $14e0f24ef4ac5c92$export$ee9d87258e1d19ed(date, locale) {\n return !$14e0f24ef4ac5c92$export$618d60ea299da42(date, locale);\n}\n\n\nfunction $11d87f3f76e88657$export$bd4fb2bc8bb06fb(date) {\n date = $11d87f3f76e88657$export$b4a036af3fc0b032(date, new (0, $3b62074eb05584b2$export$80ee6245ec4f29ec)());\n let year = (0, $3b62074eb05584b2$export$c36e0ecb2d4fa69d)(date.era, date.year);\n return $11d87f3f76e88657$var$epochFromParts(year, date.month, date.day, date.hour, date.minute, date.second, date.millisecond);\n}\nfunction $11d87f3f76e88657$var$epochFromParts(year, month, day, hour, minute, second, millisecond) {\n // Note: Date.UTC() interprets one and two-digit years as being in the\n // 20th century, so don't use it\n let date = new Date();\n date.setUTCHours(hour, minute, second, millisecond);\n date.setUTCFullYear(year, month - 1, day);\n return date.getTime();\n}\nfunction $11d87f3f76e88657$export$59c99f3515d3493f(ms, timeZone) {\n // Fast path for UTC.\n if (timeZone === \"UTC\") return 0;\n // Fast path: for local timezone after 1970, use native Date.\n if (ms > 0 && timeZone === (0, $14e0f24ef4ac5c92$export$aa8b41735afcabd2)()) return new Date(ms).getTimezoneOffset() * -60000;\n let { year: year , month: month , day: day , hour: hour , minute: minute , second: second } = $11d87f3f76e88657$var$getTimeZoneParts(ms, timeZone);\n let utc = $11d87f3f76e88657$var$epochFromParts(year, month, day, hour, minute, second, 0);\n return utc - Math.floor(ms / 1000) * 1000;\n}\nconst $11d87f3f76e88657$var$formattersByTimeZone = new Map();\nfunction $11d87f3f76e88657$var$getTimeZoneParts(ms, timeZone) {\n let formatter = $11d87f3f76e88657$var$formattersByTimeZone.get(timeZone);\n if (!formatter) {\n formatter = new Intl.DateTimeFormat(\"en-US\", {\n timeZone: timeZone,\n hour12: false,\n era: \"short\",\n year: \"numeric\",\n month: \"numeric\",\n day: \"numeric\",\n hour: \"numeric\",\n minute: \"numeric\",\n second: \"numeric\"\n });\n $11d87f3f76e88657$var$formattersByTimeZone.set(timeZone, formatter);\n }\n let parts = formatter.formatToParts(new Date(ms));\n let namedParts = {};\n for (let part of parts)if (part.type !== \"literal\") namedParts[part.type] = part.value;\n return {\n // Firefox returns B instead of BC... https://bugzilla.mozilla.org/show_bug.cgi?id=1752253\n year: namedParts.era === \"BC\" || namedParts.era === \"B\" ? -namedParts.year + 1 : +namedParts.year,\n month: +namedParts.month,\n day: +namedParts.day,\n hour: namedParts.hour === \"24\" ? 0 : +namedParts.hour,\n minute: +namedParts.minute,\n second: +namedParts.second\n };\n}\nconst $11d87f3f76e88657$var$DAYMILLIS = 86400000;\nfunction $11d87f3f76e88657$export$136f38efe7caf549(date, timeZone) {\n let ms = $11d87f3f76e88657$export$bd4fb2bc8bb06fb(date);\n let earlier = ms - $11d87f3f76e88657$export$59c99f3515d3493f(ms - $11d87f3f76e88657$var$DAYMILLIS, timeZone);\n let later = ms - $11d87f3f76e88657$export$59c99f3515d3493f(ms + $11d87f3f76e88657$var$DAYMILLIS, timeZone);\n return $11d87f3f76e88657$var$getValidWallTimes(date, timeZone, earlier, later);\n}\nfunction $11d87f3f76e88657$var$getValidWallTimes(date, timeZone, earlier, later) {\n let found = earlier === later ? [\n earlier\n ] : [\n earlier,\n later\n ];\n return found.filter((absolute)=>$11d87f3f76e88657$var$isValidWallTime(date, timeZone, absolute));\n}\nfunction $11d87f3f76e88657$var$isValidWallTime(date, timeZone, absolute) {\n let parts = $11d87f3f76e88657$var$getTimeZoneParts(absolute, timeZone);\n return date.year === parts.year && date.month === parts.month && date.day === parts.day && date.hour === parts.hour && date.minute === parts.minute && date.second === parts.second;\n}\nfunction $11d87f3f76e88657$export$5107c82f94518f5c(date, timeZone, disambiguation = \"compatible\") {\n let dateTime = $11d87f3f76e88657$export$b21e0b124e224484(date);\n // Fast path: if the time zone is UTC, use native Date.\n if (timeZone === \"UTC\") return $11d87f3f76e88657$export$bd4fb2bc8bb06fb(dateTime);\n // Fast path: if the time zone is the local timezone and disambiguation is compatible, use native Date.\n if (timeZone === (0, $14e0f24ef4ac5c92$export$aa8b41735afcabd2)() && disambiguation === \"compatible\") {\n dateTime = $11d87f3f76e88657$export$b4a036af3fc0b032(dateTime, new (0, $3b62074eb05584b2$export$80ee6245ec4f29ec)());\n // Don't use Date constructor here because two-digit years are interpreted in the 20th century.\n let date1 = new Date();\n let year = (0, $3b62074eb05584b2$export$c36e0ecb2d4fa69d)(dateTime.era, dateTime.year);\n date1.setFullYear(year, dateTime.month - 1, dateTime.day);\n date1.setHours(dateTime.hour, dateTime.minute, dateTime.second, dateTime.millisecond);\n return date1.getTime();\n }\n let ms = $11d87f3f76e88657$export$bd4fb2bc8bb06fb(dateTime);\n let offsetBefore = $11d87f3f76e88657$export$59c99f3515d3493f(ms - $11d87f3f76e88657$var$DAYMILLIS, timeZone);\n let offsetAfter = $11d87f3f76e88657$export$59c99f3515d3493f(ms + $11d87f3f76e88657$var$DAYMILLIS, timeZone);\n let valid = $11d87f3f76e88657$var$getValidWallTimes(dateTime, timeZone, ms - offsetBefore, ms - offsetAfter);\n if (valid.length === 1) return valid[0];\n if (valid.length > 1) switch(disambiguation){\n // 'compatible' means 'earlier' for \"fall back\" transitions\n case \"compatible\":\n case \"earlier\":\n return valid[0];\n case \"later\":\n return valid[valid.length - 1];\n case \"reject\":\n throw new RangeError(\"Multiple possible absolute times found\");\n }\n switch(disambiguation){\n case \"earlier\":\n return Math.min(ms - offsetBefore, ms - offsetAfter);\n // 'compatible' means 'later' for \"spring forward\" transitions\n case \"compatible\":\n case \"later\":\n return Math.max(ms - offsetBefore, ms - offsetAfter);\n case \"reject\":\n throw new RangeError(\"No such absolute time found\");\n }\n}\nfunction $11d87f3f76e88657$export$e67a095c620b86fe(dateTime, timeZone, disambiguation = \"compatible\") {\n return new Date($11d87f3f76e88657$export$5107c82f94518f5c(dateTime, timeZone, disambiguation));\n}\nfunction $11d87f3f76e88657$export$1b96692a1ba042ac(ms, timeZone) {\n let offset = $11d87f3f76e88657$export$59c99f3515d3493f(ms, timeZone);\n let date = new Date(ms + offset);\n let year = date.getUTCFullYear();\n let month = date.getUTCMonth() + 1;\n let day = date.getUTCDate();\n let hour = date.getUTCHours();\n let minute = date.getUTCMinutes();\n let second = date.getUTCSeconds();\n let millisecond = date.getUTCMilliseconds();\n return new (0, $35ea8db9cb2ccb90$export$d3b7288e7994edea)(year, month, day, timeZone, offset, hour, minute, second, millisecond);\n}\nfunction $11d87f3f76e88657$export$e57ff100d91bd4b9(date, timeZone) {\n return $11d87f3f76e88657$export$1b96692a1ba042ac(date.getTime(), timeZone);\n}\nfunction $11d87f3f76e88657$export$d7f92bcd3596b086(date) {\n return $11d87f3f76e88657$export$e57ff100d91bd4b9(date, (0, $14e0f24ef4ac5c92$export$aa8b41735afcabd2)());\n}\nfunction $11d87f3f76e88657$export$93522d1a439f3617(dateTime) {\n return new (0, $35ea8db9cb2ccb90$export$99faa760c7908e4f)(dateTime.calendar, dateTime.era, dateTime.year, dateTime.month, dateTime.day);\n}\nfunction $11d87f3f76e88657$export$6f4d78149f3f53ac(date) {\n return {\n era: date.era,\n year: date.year,\n month: date.month,\n day: date.day\n };\n}\nfunction $11d87f3f76e88657$export$4d0393e732857be5(date) {\n return {\n hour: date.hour,\n minute: date.minute,\n second: date.second,\n millisecond: date.millisecond\n };\n}\nfunction $11d87f3f76e88657$export$b21e0b124e224484(date, time) {\n let hour = 0, minute = 0, second = 0, millisecond = 0;\n if (\"timeZone\" in date) ({ hour: hour , minute: minute , second: second , millisecond: millisecond } = date);\n else if (\"hour\" in date && !time) return date;\n if (time) ({ hour: hour , minute: minute , second: second , millisecond: millisecond } = time);\n return new (0, $35ea8db9cb2ccb90$export$ca871e8dbb80966f)(date.calendar, date.era, date.year, date.month, date.day, hour, minute, second, millisecond);\n}\nfunction $11d87f3f76e88657$export$d33f79e3ffc3dc83(dateTime) {\n return new (0, $35ea8db9cb2ccb90$export$680ea196effce5f)(dateTime.hour, dateTime.minute, dateTime.second, dateTime.millisecond);\n}\nfunction $11d87f3f76e88657$export$b4a036af3fc0b032(date, calendar) {\n if (date.calendar.identifier === calendar.identifier) return date;\n let calendarDate = calendar.fromJulianDay(date.calendar.toJulianDay(date));\n let copy = date.copy();\n copy.calendar = calendar;\n copy.era = calendarDate.era;\n copy.year = calendarDate.year;\n copy.month = calendarDate.month;\n copy.day = calendarDate.day;\n (0, $735220c2d4774dd3$export$c4e2ecac49351ef2)(copy);\n return copy;\n}\nfunction $11d87f3f76e88657$export$84c95a83c799e074(date, timeZone, disambiguation) {\n if (date instanceof (0, $35ea8db9cb2ccb90$export$d3b7288e7994edea)) {\n if (date.timeZone === timeZone) return date;\n return $11d87f3f76e88657$export$538b00033cc11c75(date, timeZone);\n }\n let ms = $11d87f3f76e88657$export$5107c82f94518f5c(date, timeZone, disambiguation);\n return $11d87f3f76e88657$export$1b96692a1ba042ac(ms, timeZone);\n}\nfunction $11d87f3f76e88657$export$83aac07b4c37b25(date) {\n let ms = $11d87f3f76e88657$export$bd4fb2bc8bb06fb(date) - date.offset;\n return new Date(ms);\n}\nfunction $11d87f3f76e88657$export$538b00033cc11c75(date, timeZone) {\n let ms = $11d87f3f76e88657$export$bd4fb2bc8bb06fb(date) - date.offset;\n return $11d87f3f76e88657$export$b4a036af3fc0b032($11d87f3f76e88657$export$1b96692a1ba042ac(ms, timeZone), date.calendar);\n}\nfunction $11d87f3f76e88657$export$d9b67bc93c097491(date) {\n return $11d87f3f76e88657$export$538b00033cc11c75(date, (0, $14e0f24ef4ac5c92$export$aa8b41735afcabd2)());\n}\n\n\n\nconst $735220c2d4774dd3$var$ONE_HOUR = 3600000;\nfunction $735220c2d4774dd3$export$e16d8520af44a096(date, duration) {\n let mutableDate = date.copy();\n let days = \"hour\" in mutableDate ? $735220c2d4774dd3$var$addTimeFields(mutableDate, duration) : 0;\n $735220c2d4774dd3$var$addYears(mutableDate, duration.years || 0);\n if (mutableDate.calendar.balanceYearMonth) mutableDate.calendar.balanceYearMonth(mutableDate, date);\n mutableDate.month += duration.months || 0;\n $735220c2d4774dd3$var$balanceYearMonth(mutableDate);\n $735220c2d4774dd3$var$constrainMonthDay(mutableDate);\n mutableDate.day += (duration.weeks || 0) * 7;\n mutableDate.day += duration.days || 0;\n mutableDate.day += days;\n $735220c2d4774dd3$var$balanceDay(mutableDate);\n if (mutableDate.calendar.balanceDate) mutableDate.calendar.balanceDate(mutableDate);\n // Constrain in case adding ended up with a date outside the valid range for the calendar system.\n // The behavior here is slightly different than when constraining in the `set` function in that\n // we adjust smaller fields to their minimum/maximum values rather than constraining each field\n // individually. This matches the general behavior of `add` vs `set` regarding how fields are balanced.\n if (mutableDate.year < 1) {\n mutableDate.year = 1;\n mutableDate.month = 1;\n mutableDate.day = 1;\n }\n let maxYear = mutableDate.calendar.getYearsInEra(mutableDate);\n if (mutableDate.year > maxYear) {\n var _mutableDate_calendar, _mutableDate_calendar_isInverseEra;\n let isInverseEra = (_mutableDate_calendar_isInverseEra = (_mutableDate_calendar = mutableDate.calendar).isInverseEra) === null || _mutableDate_calendar_isInverseEra === void 0 ? void 0 : _mutableDate_calendar_isInverseEra.call(_mutableDate_calendar, mutableDate);\n mutableDate.year = maxYear;\n mutableDate.month = isInverseEra ? 1 : mutableDate.calendar.getMonthsInYear(mutableDate);\n mutableDate.day = isInverseEra ? 1 : mutableDate.calendar.getDaysInMonth(mutableDate);\n }\n if (mutableDate.month < 1) {\n mutableDate.month = 1;\n mutableDate.day = 1;\n }\n let maxMonth = mutableDate.calendar.getMonthsInYear(mutableDate);\n if (mutableDate.month > maxMonth) {\n mutableDate.month = maxMonth;\n mutableDate.day = mutableDate.calendar.getDaysInMonth(mutableDate);\n }\n mutableDate.day = Math.max(1, Math.min(mutableDate.calendar.getDaysInMonth(mutableDate), mutableDate.day));\n return mutableDate;\n}\nfunction $735220c2d4774dd3$var$addYears(date, years) {\n var _date_calendar, _date_calendar_isInverseEra;\n if ((_date_calendar_isInverseEra = (_date_calendar = date.calendar).isInverseEra) === null || _date_calendar_isInverseEra === void 0 ? void 0 : _date_calendar_isInverseEra.call(_date_calendar, date)) years = -years;\n date.year += years;\n}\nfunction $735220c2d4774dd3$var$balanceYearMonth(date) {\n while(date.month < 1){\n $735220c2d4774dd3$var$addYears(date, -1);\n date.month += date.calendar.getMonthsInYear(date);\n }\n let monthsInYear = 0;\n while(date.month > (monthsInYear = date.calendar.getMonthsInYear(date))){\n date.month -= monthsInYear;\n $735220c2d4774dd3$var$addYears(date, 1);\n }\n}\nfunction $735220c2d4774dd3$var$balanceDay(date) {\n while(date.day < 1){\n date.month--;\n $735220c2d4774dd3$var$balanceYearMonth(date);\n date.day += date.calendar.getDaysInMonth(date);\n }\n while(date.day > date.calendar.getDaysInMonth(date)){\n date.day -= date.calendar.getDaysInMonth(date);\n date.month++;\n $735220c2d4774dd3$var$balanceYearMonth(date);\n }\n}\nfunction $735220c2d4774dd3$var$constrainMonthDay(date) {\n date.month = Math.max(1, Math.min(date.calendar.getMonthsInYear(date), date.month));\n date.day = Math.max(1, Math.min(date.calendar.getDaysInMonth(date), date.day));\n}\nfunction $735220c2d4774dd3$export$c4e2ecac49351ef2(date) {\n if (date.calendar.constrainDate) date.calendar.constrainDate(date);\n date.year = Math.max(1, Math.min(date.calendar.getYearsInEra(date), date.year));\n $735220c2d4774dd3$var$constrainMonthDay(date);\n}\nfunction $735220c2d4774dd3$export$3e2544e88a25bff8(duration) {\n let inverseDuration = {};\n for(let key in duration)if (typeof duration[key] === \"number\") inverseDuration[key] = -duration[key];\n return inverseDuration;\n}\nfunction $735220c2d4774dd3$export$4e2d2ead65e5f7e3(date, duration) {\n return $735220c2d4774dd3$export$e16d8520af44a096(date, $735220c2d4774dd3$export$3e2544e88a25bff8(duration));\n}\nfunction $735220c2d4774dd3$export$adaa4cf7ef1b65be(date, fields) {\n let mutableDate = date.copy();\n if (fields.era != null) mutableDate.era = fields.era;\n if (fields.year != null) mutableDate.year = fields.year;\n if (fields.month != null) mutableDate.month = fields.month;\n if (fields.day != null) mutableDate.day = fields.day;\n $735220c2d4774dd3$export$c4e2ecac49351ef2(mutableDate);\n return mutableDate;\n}\nfunction $735220c2d4774dd3$export$e5d5e1c1822b6e56(value, fields) {\n let mutableValue = value.copy();\n if (fields.hour != null) mutableValue.hour = fields.hour;\n if (fields.minute != null) mutableValue.minute = fields.minute;\n if (fields.second != null) mutableValue.second = fields.second;\n if (fields.millisecond != null) mutableValue.millisecond = fields.millisecond;\n $735220c2d4774dd3$export$7555de1e070510cb(mutableValue);\n return mutableValue;\n}\nfunction $735220c2d4774dd3$var$balanceTime(time) {\n time.second += Math.floor(time.millisecond / 1000);\n time.millisecond = $735220c2d4774dd3$var$nonNegativeMod(time.millisecond, 1000);\n time.minute += Math.floor(time.second / 60);\n time.second = $735220c2d4774dd3$var$nonNegativeMod(time.second, 60);\n time.hour += Math.floor(time.minute / 60);\n time.minute = $735220c2d4774dd3$var$nonNegativeMod(time.minute, 60);\n let days = Math.floor(time.hour / 24);\n time.hour = $735220c2d4774dd3$var$nonNegativeMod(time.hour, 24);\n return days;\n}\nfunction $735220c2d4774dd3$export$7555de1e070510cb(time) {\n time.millisecond = Math.max(0, Math.min(time.millisecond, 1000));\n time.second = Math.max(0, Math.min(time.second, 59));\n time.minute = Math.max(0, Math.min(time.minute, 59));\n time.hour = Math.max(0, Math.min(time.hour, 23));\n}\nfunction $735220c2d4774dd3$var$nonNegativeMod(a, b) {\n let result = a % b;\n if (result < 0) result += b;\n return result;\n}\nfunction $735220c2d4774dd3$var$addTimeFields(time, duration) {\n time.hour += duration.hours || 0;\n time.minute += duration.minutes || 0;\n time.second += duration.seconds || 0;\n time.millisecond += duration.milliseconds || 0;\n return $735220c2d4774dd3$var$balanceTime(time);\n}\nfunction $735220c2d4774dd3$export$7ed87b6bc2506470(time, duration) {\n let res = time.copy();\n $735220c2d4774dd3$var$addTimeFields(res, duration);\n return res;\n}\nfunction $735220c2d4774dd3$export$fe34d3a381cd7501(time, duration) {\n return $735220c2d4774dd3$export$7ed87b6bc2506470(time, $735220c2d4774dd3$export$3e2544e88a25bff8(duration));\n}\nfunction $735220c2d4774dd3$export$d52ced6badfb9a4c(value, field, amount, options) {\n let mutable = value.copy();\n switch(field){\n case \"era\":\n {\n let eras = value.calendar.getEras();\n let eraIndex = eras.indexOf(value.era);\n if (eraIndex < 0) throw new Error(\"Invalid era: \" + value.era);\n eraIndex = $735220c2d4774dd3$var$cycleValue(eraIndex, amount, 0, eras.length - 1, options === null || options === void 0 ? void 0 : options.round);\n mutable.era = eras[eraIndex];\n // Constrain the year and other fields within the era, so the era doesn't change when we balance below.\n $735220c2d4774dd3$export$c4e2ecac49351ef2(mutable);\n break;\n }\n case \"year\":\n var _mutable_calendar, _mutable_calendar_isInverseEra;\n if ((_mutable_calendar_isInverseEra = (_mutable_calendar = mutable.calendar).isInverseEra) === null || _mutable_calendar_isInverseEra === void 0 ? void 0 : _mutable_calendar_isInverseEra.call(_mutable_calendar, mutable)) amount = -amount;\n // The year field should not cycle within the era as that can cause weird behavior affecting other fields.\n // We need to also allow values < 1 so that decrementing goes to the previous era. If we get -Infinity back\n // we know we wrapped around after reaching 9999 (the maximum), so set the year back to 1.\n mutable.year = $735220c2d4774dd3$var$cycleValue(value.year, amount, -Infinity, 9999, options === null || options === void 0 ? void 0 : options.round);\n if (mutable.year === -Infinity) mutable.year = 1;\n if (mutable.calendar.balanceYearMonth) mutable.calendar.balanceYearMonth(mutable, value);\n break;\n case \"month\":\n mutable.month = $735220c2d4774dd3$var$cycleValue(value.month, amount, 1, value.calendar.getMonthsInYear(value), options === null || options === void 0 ? void 0 : options.round);\n break;\n case \"day\":\n mutable.day = $735220c2d4774dd3$var$cycleValue(value.day, amount, 1, value.calendar.getDaysInMonth(value), options === null || options === void 0 ? void 0 : options.round);\n break;\n default:\n throw new Error(\"Unsupported field \" + field);\n }\n if (value.calendar.balanceDate) value.calendar.balanceDate(mutable);\n $735220c2d4774dd3$export$c4e2ecac49351ef2(mutable);\n return mutable;\n}\nfunction $735220c2d4774dd3$export$dd02b3e0007dfe28(value, field, amount, options) {\n let mutable = value.copy();\n switch(field){\n case \"hour\":\n {\n let hours = value.hour;\n let min = 0;\n let max = 23;\n if ((options === null || options === void 0 ? void 0 : options.hourCycle) === 12) {\n let isPM = hours >= 12;\n min = isPM ? 12 : 0;\n max = isPM ? 23 : 11;\n }\n mutable.hour = $735220c2d4774dd3$var$cycleValue(hours, amount, min, max, options === null || options === void 0 ? void 0 : options.round);\n break;\n }\n case \"minute\":\n mutable.minute = $735220c2d4774dd3$var$cycleValue(value.minute, amount, 0, 59, options === null || options === void 0 ? void 0 : options.round);\n break;\n case \"second\":\n mutable.second = $735220c2d4774dd3$var$cycleValue(value.second, amount, 0, 59, options === null || options === void 0 ? void 0 : options.round);\n break;\n case \"millisecond\":\n mutable.millisecond = $735220c2d4774dd3$var$cycleValue(value.millisecond, amount, 0, 999, options === null || options === void 0 ? void 0 : options.round);\n break;\n default:\n throw new Error(\"Unsupported field \" + field);\n }\n return mutable;\n}\nfunction $735220c2d4774dd3$var$cycleValue(value, amount, min, max, round = false) {\n if (round) {\n value += Math.sign(amount);\n if (value < min) value = max;\n let div = Math.abs(amount);\n if (amount > 0) value = Math.ceil(value / div) * div;\n else value = Math.floor(value / div) * div;\n if (value > max) value = min;\n } else {\n value += amount;\n if (value < min) value = max - (min - value - 1);\n else if (value > max) value = min + (value - max - 1);\n }\n return value;\n}\nfunction $735220c2d4774dd3$export$96b1d28349274637(dateTime, duration) {\n let ms;\n if (duration.years != null && duration.years !== 0 || duration.months != null && duration.months !== 0 || duration.days != null && duration.days !== 0) {\n let res = $735220c2d4774dd3$export$e16d8520af44a096((0, $11d87f3f76e88657$export$b21e0b124e224484)(dateTime), {\n years: duration.years,\n months: duration.months,\n days: duration.days\n });\n // Changing the date may change the timezone offset, so we need to recompute\n // using the 'compatible' disambiguation.\n ms = (0, $11d87f3f76e88657$export$5107c82f94518f5c)(res, dateTime.timeZone);\n } else // Otherwise, preserve the offset of the original date.\n ms = (0, $11d87f3f76e88657$export$bd4fb2bc8bb06fb)(dateTime) - dateTime.offset;\n // Perform time manipulation in milliseconds rather than on the original time fields to account for DST.\n // For example, adding one hour during a DST transition may result in the hour field staying the same or\n // skipping an hour. This results in the offset field changing value instead of the specified field.\n ms += duration.milliseconds || 0;\n ms += (duration.seconds || 0) * 1000;\n ms += (duration.minutes || 0) * 60000;\n ms += (duration.hours || 0) * 3600000;\n let res1 = (0, $11d87f3f76e88657$export$1b96692a1ba042ac)(ms, dateTime.timeZone);\n return (0, $11d87f3f76e88657$export$b4a036af3fc0b032)(res1, dateTime.calendar);\n}\nfunction $735220c2d4774dd3$export$6814caac34ca03c7(dateTime, duration) {\n return $735220c2d4774dd3$export$96b1d28349274637(dateTime, $735220c2d4774dd3$export$3e2544e88a25bff8(duration));\n}\nfunction $735220c2d4774dd3$export$9a297d111fc86b79(dateTime, field, amount, options) {\n // For date fields, we want the time to remain consistent and the UTC offset to potentially change to account for DST changes.\n // For time fields, we want the time to change by the amount given. This may result in the hour field staying the same, but the UTC\n // offset changing in the case of a backward DST transition, or skipping an hour in the case of a forward DST transition.\n switch(field){\n case \"hour\":\n {\n let min = 0;\n let max = 23;\n if ((options === null || options === void 0 ? void 0 : options.hourCycle) === 12) {\n let isPM = dateTime.hour >= 12;\n min = isPM ? 12 : 0;\n max = isPM ? 23 : 11;\n }\n // The minimum and maximum hour may be affected by daylight saving time.\n // For example, it might jump forward at midnight, and skip 1am.\n // Or it might end at midnight and repeat the 11pm hour. To handle this, we get\n // the possible absolute times for the min and max, and find the maximum range\n // that is within the current day.\n let plainDateTime = (0, $11d87f3f76e88657$export$b21e0b124e224484)(dateTime);\n let minDate = (0, $11d87f3f76e88657$export$b4a036af3fc0b032)($735220c2d4774dd3$export$e5d5e1c1822b6e56(plainDateTime, {\n hour: min\n }), new (0, $3b62074eb05584b2$export$80ee6245ec4f29ec)());\n let minAbsolute = [\n (0, $11d87f3f76e88657$export$5107c82f94518f5c)(minDate, dateTime.timeZone, \"earlier\"),\n (0, $11d87f3f76e88657$export$5107c82f94518f5c)(minDate, dateTime.timeZone, \"later\")\n ].filter((ms)=>(0, $11d87f3f76e88657$export$1b96692a1ba042ac)(ms, dateTime.timeZone).day === minDate.day)[0];\n let maxDate = (0, $11d87f3f76e88657$export$b4a036af3fc0b032)($735220c2d4774dd3$export$e5d5e1c1822b6e56(plainDateTime, {\n hour: max\n }), new (0, $3b62074eb05584b2$export$80ee6245ec4f29ec)());\n let maxAbsolute = [\n (0, $11d87f3f76e88657$export$5107c82f94518f5c)(maxDate, dateTime.timeZone, \"earlier\"),\n (0, $11d87f3f76e88657$export$5107c82f94518f5c)(maxDate, dateTime.timeZone, \"later\")\n ].filter((ms)=>(0, $11d87f3f76e88657$export$1b96692a1ba042ac)(ms, dateTime.timeZone).day === maxDate.day).pop();\n // Since hours may repeat, we need to operate on the absolute time in milliseconds.\n // This is done in hours from the Unix epoch so that cycleValue works correctly,\n // and then converted back to milliseconds.\n let ms = (0, $11d87f3f76e88657$export$bd4fb2bc8bb06fb)(dateTime) - dateTime.offset;\n let hours = Math.floor(ms / $735220c2d4774dd3$var$ONE_HOUR);\n let remainder = ms % $735220c2d4774dd3$var$ONE_HOUR;\n ms = $735220c2d4774dd3$var$cycleValue(hours, amount, Math.floor(minAbsolute / $735220c2d4774dd3$var$ONE_HOUR), Math.floor(maxAbsolute / $735220c2d4774dd3$var$ONE_HOUR), options === null || options === void 0 ? void 0 : options.round) * $735220c2d4774dd3$var$ONE_HOUR + remainder;\n // Now compute the new timezone offset, and convert the absolute time back to local time.\n return (0, $11d87f3f76e88657$export$b4a036af3fc0b032)((0, $11d87f3f76e88657$export$1b96692a1ba042ac)(ms, dateTime.timeZone), dateTime.calendar);\n }\n case \"minute\":\n case \"second\":\n case \"millisecond\":\n // @ts-ignore\n return $735220c2d4774dd3$export$dd02b3e0007dfe28(dateTime, field, amount, options);\n case \"era\":\n case \"year\":\n case \"month\":\n case \"day\":\n {\n let res = $735220c2d4774dd3$export$d52ced6badfb9a4c((0, $11d87f3f76e88657$export$b21e0b124e224484)(dateTime), field, amount, options);\n let ms1 = (0, $11d87f3f76e88657$export$5107c82f94518f5c)(res, dateTime.timeZone);\n return (0, $11d87f3f76e88657$export$b4a036af3fc0b032)((0, $11d87f3f76e88657$export$1b96692a1ba042ac)(ms1, dateTime.timeZone), dateTime.calendar);\n }\n default:\n throw new Error(\"Unsupported field \" + field);\n }\n}\nfunction $735220c2d4774dd3$export$31b5430eb18be4f8(dateTime, fields, disambiguation) {\n // Set the date/time fields, and recompute the UTC offset to account for DST changes.\n // We also need to validate by converting back to a local time in case hours are skipped during forward DST transitions.\n let plainDateTime = (0, $11d87f3f76e88657$export$b21e0b124e224484)(dateTime);\n let res = $735220c2d4774dd3$export$e5d5e1c1822b6e56($735220c2d4774dd3$export$adaa4cf7ef1b65be(plainDateTime, fields), fields);\n // If the resulting plain date time values are equal, return the original time.\n // We don't want to change the offset when setting the time to the same value.\n if (res.compare(plainDateTime) === 0) return dateTime;\n let ms = (0, $11d87f3f76e88657$export$5107c82f94518f5c)(res, dateTime.timeZone, disambiguation);\n return (0, $11d87f3f76e88657$export$b4a036af3fc0b032)((0, $11d87f3f76e88657$export$1b96692a1ba042ac)(ms, dateTime.timeZone), dateTime.calendar);\n}\n\n\n\n/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ \n\n\n\nconst $fae977aafc393c5c$var$TIME_RE = /^(\\d{2})(?::(\\d{2}))?(?::(\\d{2}))?(\\.\\d+)?$/;\nconst $fae977aafc393c5c$var$DATE_RE = /^(\\d{4})-(\\d{2})-(\\d{2})$/;\nconst $fae977aafc393c5c$var$DATE_TIME_RE = /^(\\d{4})-(\\d{2})-(\\d{2})(?:T(\\d{2}))?(?::(\\d{2}))?(?::(\\d{2}))?(\\.\\d+)?$/;\nconst $fae977aafc393c5c$var$ZONED_DATE_TIME_RE = /^(\\d{4})-(\\d{2})-(\\d{2})(?:T(\\d{2}))?(?::(\\d{2}))?(?::(\\d{2}))?(\\.\\d+)?(?:([+-]\\d{2})(?::(\\d{2}))?)?\\[(.*?)\\]$/;\nconst $fae977aafc393c5c$var$ABSOLUTE_RE = /^(\\d{4})-(\\d{2})-(\\d{2})(?:T(\\d{2}))?(?::(\\d{2}))?(?::(\\d{2}))?(\\.\\d+)?(?:(?:([+-]\\d{2})(?::(\\d{2}))?)|Z)$/;\nconst $fae977aafc393c5c$var$DATE_TIME_DURATION_RE = /^((?<negative>-)|\\+)?P((?<years>\\d*)Y)?((?<months>\\d*)M)?((?<weeks>\\d*)W)?((?<days>\\d*)D)?((?<time>T)((?<hours>\\d*[.,]?\\d{1,9})H)?((?<minutes>\\d*[.,]?\\d{1,9})M)?((?<seconds>\\d*[.,]?\\d{1,9})S)?)?$/;\nconst $fae977aafc393c5c$var$requiredDurationTimeGroups = [\n \"hours\",\n \"minutes\",\n \"seconds\"\n];\nconst $fae977aafc393c5c$var$requiredDurationGroups = [\n \"years\",\n \"months\",\n \"weeks\",\n \"days\",\n ...$fae977aafc393c5c$var$requiredDurationTimeGroups\n];\nfunction $fae977aafc393c5c$export$c9698ec7f05a07e1(value) {\n let m = value.match($fae977aafc393c5c$var$TIME_RE);\n if (!m) throw new Error(\"Invalid ISO 8601 time string: \" + value);\n return new (0, $35ea8db9cb2ccb90$export$680ea196effce5f)($fae977aafc393c5c$var$parseNumber(m[1], 0, 23), m[2] ? $fae977aafc393c5c$var$parseNumber(m[2], 0, 59) : 0, m[3] ? $fae977aafc393c5c$var$parseNumber(m[3], 0, 59) : 0, m[4] ? $fae977aafc393c5c$var$parseNumber(m[4], 0, Infinity) * 1000 : 0);\n}\nfunction $fae977aafc393c5c$export$6b862160d295c8e(value) {\n let m = value.match($fae977aafc393c5c$var$DATE_RE);\n if (!m) throw new Error(\"Invalid ISO 8601 date string: \" + value);\n let date = new (0, $35ea8db9cb2ccb90$export$99faa760c7908e4f)($fae977aafc393c5c$var$parseNumber(m[1], 0, 9999), $fae977aafc393c5c$var$parseNumber(m[2], 1, 12), 1);\n date.day = $fae977aafc393c5c$var$parseNumber(m[3], 0, date.calendar.getDaysInMonth(date));\n return date;\n}\nfunction $fae977aafc393c5c$export$588937bcd60ade55(value) {\n let m = value.match($fae977aafc393c5c$var$DATE_TIME_RE);\n if (!m) throw new Error(\"Invalid ISO 8601 date time string: \" + value);\n let date = new (0, $35ea8db9cb2ccb90$export$ca871e8dbb80966f)($fae977aafc393c5c$var$parseNumber(m[1], 1, 9999), $fae977aafc393c5c$var$parseNumber(m[2], 1, 12), 1, m[4] ? $fae977aafc393c5c$var$parseNumber(m[4], 0, 23) : 0, m[5] ? $fae977aafc393c5c$var$parseNumber(m[5], 0, 59) : 0, m[6] ? $fae977aafc393c5c$var$parseNumber(m[6], 0, 59) : 0, m[7] ? $fae977aafc393c5c$var$parseNumber(m[7], 0, Infinity) * 1000 : 0);\n date.day = $fae977aafc393c5c$var$parseNumber(m[3], 0, date.calendar.getDaysInMonth(date));\n return date;\n}\nfunction $fae977aafc393c5c$export$fd7893f06e92a6a4(value, disambiguation) {\n let m = value.match($fae977aafc393c5c$var$ZONED_DATE_TIME_RE);\n if (!m) throw new Error(\"Invalid ISO 8601 date time string: \" + value);\n let date = new (0, $35ea8db9cb2ccb90$export$d3b7288e7994edea)($fae977aafc393c5c$var$parseNumber(m[1], 1, 9999), $fae977aafc393c5c$var$parseNumber(m[2], 1, 12), 1, m[10], 0, m[4] ? $fae977aafc393c5c$var$parseNumber(m[4], 0, 23) : 0, m[5] ? $fae977aafc393c5c$var$parseNumber(m[5], 0, 59) : 0, m[6] ? $fae977aafc393c5c$var$parseNumber(m[6], 0, 59) : 0, m[7] ? $fae977aafc393c5c$var$parseNumber(m[7], 0, Infinity) * 1000 : 0);\n date.day = $fae977aafc393c5c$var$parseNumber(m[3], 0, date.calendar.getDaysInMonth(date));\n let plainDateTime = (0, $11d87f3f76e88657$export$b21e0b124e224484)(date);\n let ms;\n if (m[8]) {\n var _m_;\n date.offset = $fae977aafc393c5c$var$parseNumber(m[8], -23, 23) * 3600000 + $fae977aafc393c5c$var$parseNumber((_m_ = m[9]) !== null && _m_ !== void 0 ? _m_ : \"0\", 0, 59) * 60000;\n ms = (0, $11d87f3f76e88657$export$bd4fb2bc8bb06fb)(date) - date.offset;\n // Validate offset against parsed date.\n let absolutes = (0, $11d87f3f76e88657$export$136f38efe7caf549)(plainDateTime, date.timeZone);\n if (!absolutes.includes(ms)) throw new Error(`Offset ${$fae977aafc393c5c$var$offsetToString(date.offset)} is invalid for ${$fae977aafc393c5c$export$4223de14708adc63(date)} in ${date.timeZone}`);\n } else // Convert to absolute and back to fix invalid times due to DST.\n ms = (0, $11d87f3f76e88657$export$5107c82f94518f5c)((0, $11d87f3f76e88657$export$b21e0b124e224484)(plainDateTime), date.timeZone, disambiguation);\n return (0, $11d87f3f76e88657$export$1b96692a1ba042ac)(ms, date.timeZone);\n}\nfunction $fae977aafc393c5c$export$5adfdab05168c219(value, timeZone) {\n let m = value.match($fae977aafc393c5c$var$ABSOLUTE_RE);\n if (!m) throw new Error(\"Invalid ISO 8601 date time string: \" + value);\n let date = new (0, $35ea8db9cb2ccb90$export$d3b7288e7994edea)($fae977aafc393c5c$var$parseNumber(m[1], 1, 9999), $fae977aafc393c5c$var$parseNumber(m[2], 1, 12), 1, timeZone, 0, m[4] ? $fae977aafc393c5c$var$parseNumber(m[4], 0, 23) : 0, m[5] ? $fae977aafc393c5c$var$parseNumber(m[5], 0, 59) : 0, m[6] ? $fae977aafc393c5c$var$parseNumber(m[6], 0, 59) : 0, m[7] ? $fae977aafc393c5c$var$parseNumber(m[7], 0, Infinity) * 1000 : 0);\n date.day = $fae977aafc393c5c$var$parseNumber(m[3], 0, date.calendar.getDaysInMonth(date));\n var _m_;\n if (m[8]) date.offset = $fae977aafc393c5c$var$parseNumber(m[8], -23, 23) * 3600000 + $fae977aafc393c5c$var$parseNumber((_m_ = m[9]) !== null && _m_ !== void 0 ? _m_ : \"0\", 0, 59) * 60000;\n return (0, $11d87f3f76e88657$export$538b00033cc11c75)(date, timeZone);\n}\nfunction $fae977aafc393c5c$export$8e384432362ed0f0(value) {\n return $fae977aafc393c5c$export$5adfdab05168c219(value, (0, $14e0f24ef4ac5c92$export$aa8b41735afcabd2)());\n}\nfunction $fae977aafc393c5c$var$parseNumber(value, min, max) {\n let val = Number(value);\n if (val < min || val > max) throw new RangeError(`Value out of range: ${min} <= ${val} <= ${max}`);\n return val;\n}\nfunction $fae977aafc393c5c$export$f59dee82248f5ad4(time) {\n return `${String(time.hour).padStart(2, \"0\")}:${String(time.minute).padStart(2, \"0\")}:${String(time.second).padStart(2, \"0\")}${time.millisecond ? String(time.millisecond / 1000).slice(1) : \"\"}`;\n}\nfunction $fae977aafc393c5c$export$60dfd74aa96791bd(date) {\n let gregorianDate = (0, $11d87f3f76e88657$export$b4a036af3fc0b032)(date, new (0, $3b62074eb05584b2$export$80ee6245ec4f29ec)());\n return `${String(gregorianDate.year).padStart(4, \"0\")}-${String(gregorianDate.month).padStart(2, \"0\")}-${String(gregorianDate.day).padStart(2, \"0\")}`;\n}\nfunction $fae977aafc393c5c$export$4223de14708adc63(date) {\n // @ts-ignore\n return `${$fae977aafc393c5c$export$60dfd74aa96791bd(date)}T${$fae977aafc393c5c$export$f59dee82248f5ad4(date)}`;\n}\nfunction $fae977aafc393c5c$var$offsetToString(offset) {\n let sign = Math.sign(offset) < 0 ? \"-\" : \"+\";\n offset = Math.abs(offset);\n let offsetHours = Math.floor(offset / 3600000);\n let offsetMinutes = offset % 3600000 / 60000;\n return `${sign}${String(offsetHours).padStart(2, \"0\")}:${String(offsetMinutes).padStart(2, \"0\")}`;\n}\nfunction $fae977aafc393c5c$export$bf79f1ebf4b18792(date) {\n return `${$fae977aafc393c5c$export$4223de14708adc63(date)}${$fae977aafc393c5c$var$offsetToString(date.offset)}[${date.timeZone}]`;\n}\nfunction $fae977aafc393c5c$export$ecae829bb3747ea6(value) {\n var _match_groups, _match_groups1, _match_groups2, _match_groups3, _match_groups4, _match_groups5, _match_groups6, _match_groups7, _match_groups8;\n const match = value.match($fae977aafc393c5c$var$DATE_TIME_DURATION_RE);\n if (!match) throw new Error(`Invalid ISO 8601 Duration string: ${value}`);\n const parseDurationGroup = (group, isNegative, min, max)=>{\n if (!group) return 0;\n try {\n const sign = isNegative ? -1 : 1;\n return sign * $fae977aafc393c5c$var$parseNumber(group.replace(\",\", \".\"), min, max);\n } catch {\n throw new Error(`Invalid ISO 8601 Duration string: ${value}`);\n }\n };\n const isNegative = !!((_match_groups = match.groups) === null || _match_groups === void 0 ? void 0 : _match_groups.negative);\n const hasRequiredGroups = $fae977aafc393c5c$var$requiredDurationGroups.some((group)=>{\n var _match_groups;\n return (_match_groups = match.groups) === null || _match_groups === void 0 ? void 0 : _match_groups[group];\n });\n if (!hasRequiredGroups) throw new Error(`Invalid ISO 8601 Duration string: ${value}`);\n const durationStringIncludesTime = (_match_groups1 = match.groups) === null || _match_groups1 === void 0 ? void 0 : _match_groups1.time;\n if (durationStringIncludesTime) {\n const hasRequiredDurationTimeGroups = $fae977aafc393c5c$var$requiredDurationTimeGroups.some((group)=>{\n var _match_groups;\n return (_match_groups = match.groups) === null || _match_groups === void 0 ? void 0 : _match_groups[group];\n });\n if (!hasRequiredDurationTimeGroups) throw new Error(`Invalid ISO 8601 Duration string: ${value}`);\n }\n const duration = {\n years: parseDurationGroup((_match_groups2 = match.groups) === null || _match_groups2 === void 0 ? void 0 : _match_groups2.years, isNegative, 0, 9999),\n months: parseDurationGroup((_match_groups3 = match.groups) === null || _match_groups3 === void 0 ? void 0 : _match_groups3.months, isNegative, 0, 12),\n weeks: parseDurationGroup((_match_groups4 = match.groups) === null || _match_groups4 === void 0 ? void 0 : _match_groups4.weeks, isNegative, 0, Infinity),\n days: parseDurationGroup((_match_groups5 = match.groups) === null || _match_groups5 === void 0 ? void 0 : _match_groups5.days, isNegative, 0, 31),\n hours: parseDurationGroup((_match_groups6 = match.groups) === null || _match_groups6 === void 0 ? void 0 : _match_groups6.hours, isNegative, 0, 23),\n minutes: parseDurationGroup((_match_groups7 = match.groups) === null || _match_groups7 === void 0 ? void 0 : _match_groups7.minutes, isNegative, 0, 59),\n seconds: parseDurationGroup((_match_groups8 = match.groups) === null || _match_groups8 === void 0 ? void 0 : _match_groups8.seconds, isNegative, 0, 59)\n };\n if (duration.hours % 1 !== 0 && (duration.minutes || duration.seconds)) throw new Error(`Invalid ISO 8601 Duration string: ${value} - only the smallest unit can be fractional`);\n if (duration.minutes % 1 !== 0 && duration.seconds) throw new Error(`Invalid ISO 8601 Duration string: ${value} - only the smallest unit can be fractional`);\n return duration;\n}\n\n\n\n\nfunction $35ea8db9cb2ccb90$var$shiftArgs(args) {\n let calendar = typeof args[0] === \"object\" ? args.shift() : new (0, $3b62074eb05584b2$export$80ee6245ec4f29ec)();\n let era;\n if (typeof args[0] === \"string\") era = args.shift();\n else {\n let eras = calendar.getEras();\n era = eras[eras.length - 1];\n }\n let year = args.shift();\n let month = args.shift();\n let day = args.shift();\n return [\n calendar,\n era,\n year,\n month,\n day\n ];\n}\nvar // This prevents TypeScript from allowing other types with the same fields to match.\n// i.e. a ZonedDateTime should not be be passable to a parameter that expects CalendarDate.\n// If that behavior is desired, use the AnyCalendarDate interface instead.\n// @ts-ignore\n$35ea8db9cb2ccb90$var$_type = /*#__PURE__*/ new WeakMap();\nclass $35ea8db9cb2ccb90$export$99faa760c7908e4f {\n /** Returns a copy of this date. */ copy() {\n if (this.era) return new $35ea8db9cb2ccb90$export$99faa760c7908e4f(this.calendar, this.era, this.year, this.month, this.day);\n else return new $35ea8db9cb2ccb90$export$99faa760c7908e4f(this.calendar, this.year, this.month, this.day);\n }\n /** Returns a new `CalendarDate` with the given duration added to it. */ add(duration) {\n return (0, $735220c2d4774dd3$export$e16d8520af44a096)(this, duration);\n }\n /** Returns a new `CalendarDate` with the given duration subtracted from it. */ subtract(duration) {\n return (0, $735220c2d4774dd3$export$4e2d2ead65e5f7e3)(this, duration);\n }\n /** Returns a new `CalendarDate` with the given fields set to the provided values. Other fields will be constrained accordingly. */ set(fields) {\n return (0, $735220c2d4774dd3$export$adaa4cf7ef1b65be)(this, fields);\n }\n /**\n * Returns a new `CalendarDate` with the given field adjusted by a specified amount.\n * When the resulting value reaches the limits of the field, it wraps around.\n */ cycle(field, amount, options) {\n return (0, $735220c2d4774dd3$export$d52ced6badfb9a4c)(this, field, amount, options);\n }\n /** Converts the date to a native JavaScript Date object, with the time set to midnight in the given time zone. */ toDate(timeZone) {\n return (0, $11d87f3f76e88657$export$e67a095c620b86fe)(this, timeZone);\n }\n /** Converts the date to an ISO 8601 formatted string. */ toString() {\n return (0, $fae977aafc393c5c$export$60dfd74aa96791bd)(this);\n }\n /** Compares this date with another. A negative result indicates that this date is before the given one, and a positive date indicates that it is after. */ compare(b) {\n return (0, $14e0f24ef4ac5c92$export$68781ddf31c0090f)(this, b);\n }\n constructor(...args){\n (0, $cUVuN$swchelperssrc_class_private_field_initmjs)(this, $35ea8db9cb2ccb90$var$_type, {\n writable: true,\n value: void 0\n });\n let [calendar, era, year, month, day] = $35ea8db9cb2ccb90$var$shiftArgs(args);\n this.calendar = calendar;\n this.era = era;\n this.year = year;\n this.month = month;\n this.day = day;\n (0, $735220c2d4774dd3$export$c4e2ecac49351ef2)(this);\n }\n}\nvar // This prevents TypeScript from allowing other types with the same fields to match.\n// @ts-ignore\n$35ea8db9cb2ccb90$var$_type1 = /*#__PURE__*/ new WeakMap();\nclass $35ea8db9cb2ccb90$export$680ea196effce5f {\n /** Returns a copy of this time. */ copy() {\n return new $35ea8db9cb2ccb90$export$680ea196effce5f(this.hour, this.minute, this.second, this.millisecond);\n }\n /** Returns a new `Time` with the given duration added to it. */ add(duration) {\n return (0, $735220c2d4774dd3$export$7ed87b6bc2506470)(this, duration);\n }\n /** Returns a new `Time` with the given duration subtracted from it. */ subtract(duration) {\n return (0, $735220c2d4774dd3$export$fe34d3a381cd7501)(this, duration);\n }\n /** Returns a new `Time` with the given fields set to the provided values. Other fields will be constrained accordingly. */ set(fields) {\n return (0, $735220c2d4774dd3$export$e5d5e1c1822b6e56)(this, fields);\n }\n /**\n * Returns a new `Time` with the given field adjusted by a specified amount.\n * When the resulting value reaches the limits of the field, it wraps around.\n */ cycle(field, amount, options) {\n return (0, $735220c2d4774dd3$export$dd02b3e0007dfe28)(this, field, amount, options);\n }\n /** Converts the time to an ISO 8601 formatted string. */ toString() {\n return (0, $fae977aafc393c5c$export$f59dee82248f5ad4)(this);\n }\n /** Compares this time with another. A negative result indicates that this time is before the given one, and a positive time indicates that it is after. */ compare(b) {\n return (0, $14e0f24ef4ac5c92$export$c19a80a9721b80f6)(this, b);\n }\n constructor(hour = 0, minute = 0, second = 0, millisecond = 0){\n (0, $cUVuN$swchelperssrc_class_private_field_initmjs)(this, $35ea8db9cb2ccb90$var$_type1, {\n writable: true,\n value: void 0\n });\n this.hour = hour;\n this.minute = minute;\n this.second = second;\n this.millisecond = millisecond;\n (0, $735220c2d4774dd3$export$7555de1e070510cb)(this);\n }\n}\nvar // This prevents TypeScript from allowing other types with the same fields to match.\n// @ts-ignore\n$35ea8db9cb2ccb90$var$_type2 = /*#__PURE__*/ new WeakMap();\nclass $35ea8db9cb2ccb90$export$ca871e8dbb80966f {\n /** Returns a copy of this date. */ copy() {\n if (this.era) return new $35ea8db9cb2ccb90$export$ca871e8dbb80966f(this.calendar, this.era, this.year, this.month, this.day, this.hour, this.minute, this.second, this.millisecond);\n else return new $35ea8db9cb2ccb90$export$ca871e8dbb80966f(this.calendar, this.year, this.month, this.day, this.hour, this.minute, this.second, this.millisecond);\n }\n /** Returns a new `CalendarDateTime` with the given duration added to it. */ add(duration) {\n return (0, $735220c2d4774dd3$export$e16d8520af44a096)(this, duration);\n }\n /** Returns a new `CalendarDateTime` with the given duration subtracted from it. */ subtract(duration) {\n return (0, $735220c2d4774dd3$export$4e2d2ead65e5f7e3)(this, duration);\n }\n /** Returns a new `CalendarDateTime` with the given fields set to the provided values. Other fields will be constrained accordingly. */ set(fields) {\n return (0, $735220c2d4774dd3$export$adaa4cf7ef1b65be)((0, $735220c2d4774dd3$export$e5d5e1c1822b6e56)(this, fields), fields);\n }\n /**\n * Returns a new `CalendarDateTime` with the given field adjusted by a specified amount.\n * When the resulting value reaches the limits of the field, it wraps around.\n */ cycle(field, amount, options) {\n switch(field){\n case \"era\":\n case \"year\":\n case \"month\":\n case \"day\":\n return (0, $735220c2d4774dd3$export$d52ced6badfb9a4c)(this, field, amount, options);\n default:\n return (0, $735220c2d4774dd3$export$dd02b3e0007dfe28)(this, field, amount, options);\n }\n }\n /** Converts the date to a native JavaScript Date object in the given time zone. */ toDate(timeZone, disambiguation) {\n return (0, $11d87f3f76e88657$export$e67a095c620b86fe)(this, timeZone, disambiguation);\n }\n /** Converts the date to an ISO 8601 formatted string. */ toString() {\n return (0, $fae977aafc393c5c$export$4223de14708adc63)(this);\n }\n /** Compares this date with another. A negative result indicates that this date is before the given one, and a positive date indicates that it is after. */ compare(b) {\n let res = (0, $14e0f24ef4ac5c92$export$68781ddf31c0090f)(this, b);\n if (res === 0) return (0, $14e0f24ef4ac5c92$export$c19a80a9721b80f6)(this, (0, $11d87f3f76e88657$export$b21e0b124e224484)(b));\n return res;\n }\n constructor(...args){\n (0, $cUVuN$swchelperssrc_class_private_field_initmjs)(this, $35ea8db9cb2ccb90$var$_type2, {\n writable: true,\n value: void 0\n });\n let [calendar, era, year, month, day] = $35ea8db9cb2ccb90$var$shiftArgs(args);\n this.calendar = calendar;\n this.era = era;\n this.year = year;\n this.month = month;\n this.day = day;\n this.hour = args.shift() || 0;\n this.minute = args.shift() || 0;\n this.second = args.shift() || 0;\n this.millisecond = args.shift() || 0;\n (0, $735220c2d4774dd3$export$c4e2ecac49351ef2)(this);\n }\n}\nvar // This prevents TypeScript from allowing other types with the same fields to match.\n// @ts-ignore\n$35ea8db9cb2ccb90$var$_type3 = /*#__PURE__*/ new WeakMap();\nclass $35ea8db9cb2ccb90$export$d3b7288e7994edea {\n /** Returns a copy of this date. */ copy() {\n if (this.era) return new $35ea8db9cb2ccb90$export$d3b7288e7994edea(this.calendar, this.era, this.year, this.month, this.day, this.timeZone, this.offset, this.hour, this.minute, this.second, this.millisecond);\n else return new $35ea8db9cb2ccb90$export$d3b7288e7994edea(this.calendar, this.year, this.month, this.day, this.timeZone, this.offset, this.hour, this.minute, this.second, this.millisecond);\n }\n /** Returns a new `ZonedDateTime` with the given duration added to it. */ add(duration) {\n return (0, $735220c2d4774dd3$export$96b1d28349274637)(this, duration);\n }\n /** Returns a new `ZonedDateTime` with the given duration subtracted from it. */ subtract(duration) {\n return (0, $735220c2d4774dd3$export$6814caac34ca03c7)(this, duration);\n }\n /** Returns a new `ZonedDateTime` with the given fields set to the provided values. Other fields will be constrained accordingly. */ set(fields, disambiguation) {\n return (0, $735220c2d4774dd3$export$31b5430eb18be4f8)(this, fields, disambiguation);\n }\n /**\n * Returns a new `ZonedDateTime` with the given field adjusted by a specified amount.\n * When the resulting value reaches the limits of the field, it wraps around.\n */ cycle(field, amount, options) {\n return (0, $735220c2d4774dd3$export$9a297d111fc86b79)(this, field, amount, options);\n }\n /** Converts the date to a native JavaScript Date object. */ toDate() {\n return (0, $11d87f3f76e88657$export$83aac07b4c37b25)(this);\n }\n /** Converts the date to an ISO 8601 formatted string, including the UTC offset and time zone identifier. */ toString() {\n return (0, $fae977aafc393c5c$export$bf79f1ebf4b18792)(this);\n }\n /** Converts the date to an ISO 8601 formatted string in UTC. */ toAbsoluteString() {\n return this.toDate().toISOString();\n }\n /** Compares this date with another. A negative result indicates that this date is before the given one, and a positive date indicates that it is after. */ compare(b) {\n // TODO: Is this a bad idea??\n return this.toDate().getTime() - (0, $11d87f3f76e88657$export$84c95a83c799e074)(b, this.timeZone).toDate().getTime();\n }\n constructor(...args){\n (0, $cUVuN$swchelperssrc_class_private_field_initmjs)(this, $35ea8db9cb2ccb90$var$_type3, {\n writable: true,\n value: void 0\n });\n let [calendar, era, year, month, day] = $35ea8db9cb2ccb90$var$shiftArgs(args);\n let timeZone = args.shift();\n let offset = args.shift();\n this.calendar = calendar;\n this.era = era;\n this.year = year;\n this.month = month;\n this.day = day;\n this.timeZone = timeZone;\n this.offset = offset;\n this.hour = args.shift() || 0;\n this.minute = args.shift() || 0;\n this.second = args.shift() || 0;\n this.millisecond = args.shift() || 0;\n (0, $735220c2d4774dd3$export$c4e2ecac49351ef2)(this);\n }\n}\n\n\n\n/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ // Portions of the code in this file are based on code from the TC39 Temporal proposal.\n// Original licensing can be found in the NOTICE file in the root directory of this source tree.\n\n\n\nconst $62225008020f0a13$var$ERA_START_DATES = [\n [\n 1868,\n 9,\n 8\n ],\n [\n 1912,\n 7,\n 30\n ],\n [\n 1926,\n 12,\n 25\n ],\n [\n 1989,\n 1,\n 8\n ],\n [\n 2019,\n 5,\n 1\n ]\n];\nconst $62225008020f0a13$var$ERA_END_DATES = [\n [\n 1912,\n 7,\n 29\n ],\n [\n 1926,\n 12,\n 24\n ],\n [\n 1989,\n 1,\n 7\n ],\n [\n 2019,\n 4,\n 30\n ]\n];\nconst $62225008020f0a13$var$ERA_ADDENDS = [\n 1867,\n 1911,\n 1925,\n 1988,\n 2018\n];\nconst $62225008020f0a13$var$ERA_NAMES = [\n \"meiji\",\n \"taisho\",\n \"showa\",\n \"heisei\",\n \"reiwa\"\n];\nfunction $62225008020f0a13$var$findEraFromGregorianDate(date) {\n const idx = $62225008020f0a13$var$ERA_START_DATES.findIndex(([year, month, day])=>{\n if (date.year < year) return true;\n if (date.year === year && date.month < month) return true;\n if (date.year === year && date.month === month && date.day < day) return true;\n return false;\n });\n if (idx === -1) return $62225008020f0a13$var$ERA_START_DATES.length - 1;\n if (idx === 0) return 0;\n return idx - 1;\n}\nfunction $62225008020f0a13$var$toGregorian(date) {\n let eraAddend = $62225008020f0a13$var$ERA_ADDENDS[$62225008020f0a13$var$ERA_NAMES.indexOf(date.era)];\n if (!eraAddend) throw new Error(\"Unknown era: \" + date.era);\n return new (0, $35ea8db9cb2ccb90$export$99faa760c7908e4f)(date.year + eraAddend, date.month, date.day);\n}\nclass $62225008020f0a13$export$b746ab2b60cdffbf extends (0, $3b62074eb05584b2$export$80ee6245ec4f29ec) {\n fromJulianDay(jd) {\n let date = super.fromJulianDay(jd);\n let era = $62225008020f0a13$var$findEraFromGregorianDate(date);\n return new (0, $35ea8db9cb2ccb90$export$99faa760c7908e4f)(this, $62225008020f0a13$var$ERA_NAMES[era], date.year - $62225008020f0a13$var$ERA_ADDENDS[era], date.month, date.day);\n }\n toJulianDay(date) {\n return super.toJulianDay($62225008020f0a13$var$toGregorian(date));\n }\n balanceDate(date) {\n let gregorianDate = $62225008020f0a13$var$toGregorian(date);\n let era = $62225008020f0a13$var$findEraFromGregorianDate(gregorianDate);\n if ($62225008020f0a13$var$ERA_NAMES[era] !== date.era) {\n date.era = $62225008020f0a13$var$ERA_NAMES[era];\n date.year = gregorianDate.year - $62225008020f0a13$var$ERA_ADDENDS[era];\n }\n // Constrain in case we went before the first supported era.\n this.constrainDate(date);\n }\n constrainDate(date) {\n let idx = $62225008020f0a13$var$ERA_NAMES.indexOf(date.era);\n let end = $62225008020f0a13$var$ERA_END_DATES[idx];\n if (end != null) {\n let [endYear, endMonth, endDay] = end;\n // Constrain the year to the maximum possible value in the era.\n // Then constrain the month and day fields within that.\n let maxYear = endYear - $62225008020f0a13$var$ERA_ADDENDS[idx];\n date.year = Math.max(1, Math.min(maxYear, date.year));\n if (date.year === maxYear) {\n date.month = Math.min(endMonth, date.month);\n if (date.month === endMonth) date.day = Math.min(endDay, date.day);\n }\n }\n if (date.year === 1 && idx >= 0) {\n let [, startMonth, startDay] = $62225008020f0a13$var$ERA_START_DATES[idx];\n date.month = Math.max(startMonth, date.month);\n if (date.month === startMonth) date.day = Math.max(startDay, date.day);\n }\n }\n getEras() {\n return $62225008020f0a13$var$ERA_NAMES;\n }\n getYearsInEra(date) {\n // Get the number of years in the era, taking into account the date's month and day fields.\n let era = $62225008020f0a13$var$ERA_NAMES.indexOf(date.era);\n let cur = $62225008020f0a13$var$ERA_START_DATES[era];\n let next = $62225008020f0a13$var$ERA_START_DATES[era + 1];\n if (next == null) // 9999 gregorian is the maximum year allowed.\n return 9999 - cur[0] + 1;\n let years = next[0] - cur[0];\n if (date.month < next[1] || date.month === next[1] && date.day < next[2]) years++;\n return years;\n }\n getDaysInMonth(date) {\n return super.getDaysInMonth($62225008020f0a13$var$toGregorian(date));\n }\n getMinimumMonthInYear(date) {\n let start = $62225008020f0a13$var$getMinimums(date);\n return start ? start[1] : 1;\n }\n getMinimumDayInMonth(date) {\n let start = $62225008020f0a13$var$getMinimums(date);\n return start && date.month === start[1] ? start[2] : 1;\n }\n constructor(...args){\n super(...args);\n (0, $cUVuN$swchelperssrc_define_propertymjs)(this, \"identifier\", \"japanese\");\n }\n}\nfunction $62225008020f0a13$var$getMinimums(date) {\n if (date.year === 1) {\n let idx = $62225008020f0a13$var$ERA_NAMES.indexOf(date.era);\n return $62225008020f0a13$var$ERA_START_DATES[idx];\n }\n}\n\n\n/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ // Portions of the code in this file are based on code from ICU.\n// Original licensing can be found in the NOTICE file in the root directory of this source tree.\n\n\n\nconst $8d73d47422ca7302$var$BUDDHIST_ERA_START = -543;\nclass $8d73d47422ca7302$export$42d20a78301dee44 extends (0, $3b62074eb05584b2$export$80ee6245ec4f29ec) {\n fromJulianDay(jd) {\n let gregorianDate = super.fromJulianDay(jd);\n let year = (0, $3b62074eb05584b2$export$c36e0ecb2d4fa69d)(gregorianDate.era, gregorianDate.year);\n return new (0, $35ea8db9cb2ccb90$export$99faa760c7908e4f)(this, year - $8d73d47422ca7302$var$BUDDHIST_ERA_START, gregorianDate.month, gregorianDate.day);\n }\n toJulianDay(date) {\n return super.toJulianDay($8d73d47422ca7302$var$toGregorian(date));\n }\n getEras() {\n return [\n \"BE\"\n ];\n }\n getDaysInMonth(date) {\n return super.getDaysInMonth($8d73d47422ca7302$var$toGregorian(date));\n }\n balanceDate() {}\n constructor(...args){\n super(...args);\n (0, $cUVuN$swchelperssrc_define_propertymjs)(this, \"identifier\", \"buddhist\");\n }\n}\nfunction $8d73d47422ca7302$var$toGregorian(date) {\n let [era, year] = (0, $3b62074eb05584b2$export$4475b7e617eb123c)(date.year + $8d73d47422ca7302$var$BUDDHIST_ERA_START);\n return new (0, $35ea8db9cb2ccb90$export$99faa760c7908e4f)(era, year, date.month, date.day);\n}\n\n\n/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ // Portions of the code in this file are based on code from ICU.\n// Original licensing can be found in the NOTICE file in the root directory of this source tree.\n\n\n\nconst $5f31bd6f0c8940b2$var$TAIWAN_ERA_START = 1911;\nfunction $5f31bd6f0c8940b2$var$gregorianYear(date) {\n return date.era === \"minguo\" ? date.year + $5f31bd6f0c8940b2$var$TAIWAN_ERA_START : 1 - date.year + $5f31bd6f0c8940b2$var$TAIWAN_ERA_START;\n}\nfunction $5f31bd6f0c8940b2$var$gregorianToTaiwan(year) {\n let y = year - $5f31bd6f0c8940b2$var$TAIWAN_ERA_START;\n if (y > 0) return [\n \"minguo\",\n y\n ];\n else return [\n \"before_minguo\",\n 1 - y\n ];\n}\nclass $5f31bd6f0c8940b2$export$65e01080afcb0799 extends (0, $3b62074eb05584b2$export$80ee6245ec4f29ec) {\n fromJulianDay(jd) {\n let date = super.fromJulianDay(jd);\n let extendedYear = (0, $3b62074eb05584b2$export$c36e0ecb2d4fa69d)(date.era, date.year);\n let [era, year] = $5f31bd6f0c8940b2$var$gregorianToTaiwan(extendedYear);\n return new (0, $35ea8db9cb2ccb90$export$99faa760c7908e4f)(this, era, year, date.month, date.day);\n }\n toJulianDay(date) {\n return super.toJulianDay($5f31bd6f0c8940b2$var$toGregorian(date));\n }\n getEras() {\n return [\n \"before_minguo\",\n \"minguo\"\n ];\n }\n balanceDate(date) {\n let [era, year] = $5f31bd6f0c8940b2$var$gregorianToTaiwan($5f31bd6f0c8940b2$var$gregorianYear(date));\n date.era = era;\n date.year = year;\n }\n isInverseEra(date) {\n return date.era === \"before_minguo\";\n }\n getDaysInMonth(date) {\n return super.getDaysInMonth($5f31bd6f0c8940b2$var$toGregorian(date));\n }\n getYearsInEra(date) {\n return date.era === \"before_minguo\" ? 9999 : 9999 - $5f31bd6f0c8940b2$var$TAIWAN_ERA_START;\n }\n constructor(...args){\n super(...args);\n (0, $cUVuN$swchelperssrc_define_propertymjs)(this, \"identifier\", \"roc\") // Republic of China\n ;\n }\n}\nfunction $5f31bd6f0c8940b2$var$toGregorian(date) {\n let [era, year] = (0, $3b62074eb05584b2$export$4475b7e617eb123c)($5f31bd6f0c8940b2$var$gregorianYear(date));\n return new (0, $35ea8db9cb2ccb90$export$99faa760c7908e4f)(era, year, date.month, date.day);\n}\n\n\n/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ // Portions of the code in this file are based on code from ICU.\n// Original licensing can be found in the NOTICE file in the root directory of this source tree.\n\n\n\nconst $f3ed2e4472ae7e25$var$PERSIAN_EPOCH = 1948321; // 622/03/19 Julian C.E.\nfunction $f3ed2e4472ae7e25$var$isLeapYear(year) {\n let y0 = year > 0 ? year - 474 : year - 473;\n let y1 = (0, $2b4dce13dd5a17fa$export$842a2cf37af977e1)(y0, 2820) + 474;\n return (0, $2b4dce13dd5a17fa$export$842a2cf37af977e1)((y1 + 38) * 31, 128) < 31;\n}\nfunction $f3ed2e4472ae7e25$var$persianToJulianDay(year, month, day) {\n let y0 = year > 0 ? year - 474 : year - 473;\n let y1 = (0, $2b4dce13dd5a17fa$export$842a2cf37af977e1)(y0, 2820) + 474;\n let offset = month <= 7 ? 31 * (month - 1) : 30 * (month - 1) + 6;\n return $f3ed2e4472ae7e25$var$PERSIAN_EPOCH - 1 + 1029983 * Math.floor(y0 / 2820) + 365 * (y1 - 1) + Math.floor((31 * y1 - 5) / 128) + offset + day;\n}\nclass $f3ed2e4472ae7e25$export$37fccdbfd14c5939 {\n fromJulianDay(jd) {\n let d0 = jd - $f3ed2e4472ae7e25$var$persianToJulianDay(475, 1, 1);\n let n2820 = Math.floor(d0 / 1029983);\n let d1 = (0, $2b4dce13dd5a17fa$export$842a2cf37af977e1)(d0, 1029983);\n let y2820 = d1 === 1029982 ? 2820 : Math.floor((128 * d1 + 46878) / 46751);\n let year = 474 + 2820 * n2820 + y2820;\n if (year <= 0) year--;\n let yDay = jd - $f3ed2e4472ae7e25$var$persianToJulianDay(year, 1, 1) + 1;\n let month = yDay <= 186 ? Math.ceil(yDay / 31) : Math.ceil((yDay - 6) / 31);\n let day = jd - $f3ed2e4472ae7e25$var$persianToJulianDay(year, month, 1) + 1;\n return new (0, $35ea8db9cb2ccb90$export$99faa760c7908e4f)(this, year, month, day);\n }\n toJulianDay(date) {\n return $f3ed2e4472ae7e25$var$persianToJulianDay(date.year, date.month, date.day);\n }\n getMonthsInYear() {\n return 12;\n }\n getDaysInMonth(date) {\n if (date.month <= 6) return 31;\n if (date.month <= 11) return 30;\n return $f3ed2e4472ae7e25$var$isLeapYear(date.year) ? 30 : 29;\n }\n getEras() {\n return [\n \"AP\"\n ];\n }\n getYearsInEra() {\n // 9378-10-10 persian is 9999-12-31 gregorian.\n // Round down to 9377 to set the maximum full year.\n return 9377;\n }\n constructor(){\n (0, $cUVuN$swchelperssrc_define_propertymjs)(this, \"identifier\", \"persian\");\n }\n}\n\n\n/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ // Portions of the code in this file are based on code from ICU.\n// Original licensing can be found in the NOTICE file in the root directory of this source tree.\n\n\n\n// Starts in 78 AD,\nconst $82c358003bdda0a8$var$INDIAN_ERA_START = 78;\n// The Indian year starts 80 days later than the Gregorian year.\nconst $82c358003bdda0a8$var$INDIAN_YEAR_START = 80;\nclass $82c358003bdda0a8$export$39f31c639fa15726 extends (0, $3b62074eb05584b2$export$80ee6245ec4f29ec) {\n fromJulianDay(jd) {\n // Gregorian date for Julian day\n let date = super.fromJulianDay(jd);\n // Year in Saka era\n let indianYear = date.year - $82c358003bdda0a8$var$INDIAN_ERA_START;\n // Day number in Gregorian year (starting from 0)\n let yDay = jd - (0, $3b62074eb05584b2$export$f297eb839006d339)(date.era, date.year, 1, 1);\n let leapMonth;\n if (yDay < $82c358003bdda0a8$var$INDIAN_YEAR_START) {\n // Day is at the end of the preceding Saka year\n indianYear--;\n // Days in leapMonth this year, previous Gregorian year\n leapMonth = (0, $3b62074eb05584b2$export$553d7fa8e3805fc0)(date.year - 1) ? 31 : 30;\n yDay += leapMonth + 155 + 90 + 10;\n } else {\n // Days in leapMonth this year\n leapMonth = (0, $3b62074eb05584b2$export$553d7fa8e3805fc0)(date.year) ? 31 : 30;\n yDay -= $82c358003bdda0a8$var$INDIAN_YEAR_START;\n }\n let indianMonth;\n let indianDay;\n if (yDay < leapMonth) {\n indianMonth = 1;\n indianDay = yDay + 1;\n } else {\n let mDay = yDay - leapMonth;\n if (mDay < 155) {\n indianMonth = Math.floor(mDay / 31) + 2;\n indianDay = mDay % 31 + 1;\n } else {\n mDay -= 155;\n indianMonth = Math.floor(mDay / 30) + 7;\n indianDay = mDay % 30 + 1;\n }\n }\n return new (0, $35ea8db9cb2ccb90$export$99faa760c7908e4f)(this, indianYear, indianMonth, indianDay);\n }\n toJulianDay(date) {\n let extendedYear = date.year + $82c358003bdda0a8$var$INDIAN_ERA_START;\n let [era, year] = (0, $3b62074eb05584b2$export$4475b7e617eb123c)(extendedYear);\n let leapMonth;\n let jd;\n if ((0, $3b62074eb05584b2$export$553d7fa8e3805fc0)(year)) {\n leapMonth = 31;\n jd = (0, $3b62074eb05584b2$export$f297eb839006d339)(era, year, 3, 21);\n } else {\n leapMonth = 30;\n jd = (0, $3b62074eb05584b2$export$f297eb839006d339)(era, year, 3, 22);\n }\n if (date.month === 1) return jd + date.day - 1;\n jd += leapMonth + Math.min(date.month - 2, 5) * 31;\n if (date.month >= 8) jd += (date.month - 7) * 30;\n jd += date.day - 1;\n return jd;\n }\n getDaysInMonth(date) {\n if (date.month === 1 && (0, $3b62074eb05584b2$export$553d7fa8e3805fc0)(date.year + $82c358003bdda0a8$var$INDIAN_ERA_START)) return 31;\n if (date.month >= 2 && date.month <= 6) return 31;\n return 30;\n }\n getYearsInEra() {\n // 9999-12-31 gregorian is 9920-10-10 indian.\n // Round down to 9919 for the last full year.\n return 9919;\n }\n getEras() {\n return [\n \"saka\"\n ];\n }\n balanceDate() {}\n constructor(...args){\n super(...args);\n (0, $cUVuN$swchelperssrc_define_propertymjs)(this, \"identifier\", \"indian\");\n }\n}\n\n\n/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ // Portions of the code in this file are based on code from ICU.\n// Original licensing can be found in the NOTICE file in the root directory of this source tree.\n\n\nconst $f2f3e0e3a817edbd$var$CIVIL_EPOC = 1948440; // CE 622 July 16 Friday (Julian calendar) / CE 622 July 19 (Gregorian calendar)\nconst $f2f3e0e3a817edbd$var$ASTRONOMICAL_EPOC = 1948439; // CE 622 July 15 Thursday (Julian calendar)\nconst $f2f3e0e3a817edbd$var$UMALQURA_YEAR_START = 1300;\nconst $f2f3e0e3a817edbd$var$UMALQURA_YEAR_END = 1600;\nconst $f2f3e0e3a817edbd$var$UMALQURA_START_DAYS = 460322;\nfunction $f2f3e0e3a817edbd$var$islamicToJulianDay(epoch, year, month, day) {\n return day + Math.ceil(29.5 * (month - 1)) + (year - 1) * 354 + Math.floor((3 + 11 * year) / 30) + epoch - 1;\n}\nfunction $f2f3e0e3a817edbd$var$julianDayToIslamic(calendar, epoch, jd) {\n let year = Math.floor((30 * (jd - epoch) + 10646) / 10631);\n let month = Math.min(12, Math.ceil((jd - (29 + $f2f3e0e3a817edbd$var$islamicToJulianDay(epoch, year, 1, 1))) / 29.5) + 1);\n let day = jd - $f2f3e0e3a817edbd$var$islamicToJulianDay(epoch, year, month, 1) + 1;\n return new (0, $35ea8db9cb2ccb90$export$99faa760c7908e4f)(calendar, year, month, day);\n}\nfunction $f2f3e0e3a817edbd$var$isLeapYear(year) {\n return (14 + 11 * year) % 30 < 11;\n}\nclass $f2f3e0e3a817edbd$export$2066795aadd37bfc {\n fromJulianDay(jd) {\n return $f2f3e0e3a817edbd$var$julianDayToIslamic(this, $f2f3e0e3a817edbd$var$CIVIL_EPOC, jd);\n }\n toJulianDay(date) {\n return $f2f3e0e3a817edbd$var$islamicToJulianDay($f2f3e0e3a817edbd$var$CIVIL_EPOC, date.year, date.month, date.day);\n }\n getDaysInMonth(date) {\n let length = 29 + date.month % 2;\n if (date.month === 12 && $f2f3e0e3a817edbd$var$isLeapYear(date.year)) length++;\n return length;\n }\n getMonthsInYear() {\n return 12;\n }\n getDaysInYear(date) {\n return $f2f3e0e3a817edbd$var$isLeapYear(date.year) ? 355 : 354;\n }\n getYearsInEra() {\n // 9999 gregorian\n return 9665;\n }\n getEras() {\n return [\n \"AH\"\n ];\n }\n constructor(){\n (0, $cUVuN$swchelperssrc_define_propertymjs)(this, \"identifier\", \"islamic-civil\");\n }\n}\nclass $f2f3e0e3a817edbd$export$37f0887f2f9d22f7 extends $f2f3e0e3a817edbd$export$2066795aadd37bfc {\n fromJulianDay(jd) {\n return $f2f3e0e3a817edbd$var$julianDayToIslamic(this, $f2f3e0e3a817edbd$var$ASTRONOMICAL_EPOC, jd);\n }\n toJulianDay(date) {\n return $f2f3e0e3a817edbd$var$islamicToJulianDay($f2f3e0e3a817edbd$var$ASTRONOMICAL_EPOC, date.year, date.month, date.day);\n }\n constructor(...args){\n super(...args);\n (0, $cUVuN$swchelperssrc_define_propertymjs)(this, \"identifier\", \"islamic-tbla\");\n }\n}\n// Generated by scripts/generate-umalqura.js\nconst $f2f3e0e3a817edbd$var$UMALQURA_DATA = \"qgpUDckO1AbqBmwDrQpVBakGkgepC9QF2gpcBS0NlQZKB1QLagutBa4ETwoXBYsGpQbVCtYCWwmdBE0KJg2VDawFtgm6AlsKKwWVCsoG6Qr0AnYJtgJWCcoKpAvSC9kF3AJtCU0FpQpSC6ULtAW2CVcFlwJLBaMGUgdlC2oFqworBZUMSg2lDcoF1gpXCasESwmlClILagt1BXYCtwhbBFUFqQW0BdoJ3QRuAjYJqgpUDbIN1QXaAlsJqwRVCkkLZAtxC7QFtQpVCiUNkg7JDtQG6QprCasEkwpJDaQNsg25CroEWworBZUKKgtVC1wFvQQ9Ah0JlQpKC1oLbQW2AjsJmwRVBqkGVAdqC2wFrQpVBSkLkgupC9QF2gpaBasKlQVJB2QHqgu1BbYCVgpNDiULUgtqC60FrgIvCZcESwalBqwG1gpdBZ0ETQoWDZUNqgW1BdoCWwmtBJUFygbkBuoK9QS2AlYJqgpUC9IL2QXqAm0JrQSVCkoLpQuyBbUJ1gSXCkcFkwZJB1ULagVrCisFiwpGDaMNygXWCtsEawJLCaUKUgtpC3UFdgG3CFsCKwVlBbQF2gntBG0BtgimClINqQ3UBdoKWwmrBFMGKQdiB6kLsgW1ClUFJQuSDckO0gbpCmsFqwRVCikNVA2qDbUJugQ7CpsETQqqCtUK2gJdCV4ELgqaDFUNsga5BroEXQotBZUKUguoC7QLuQXaAloJSgukDdEO6AZqC20FNQWVBkoNqA3UDdoGWwWdAisGFQtKC5ULqgWuCi4JjwwnBZUGqgbWCl0FnQI=\";\nlet $f2f3e0e3a817edbd$var$UMALQURA_MONTHLENGTH;\nlet $f2f3e0e3a817edbd$var$UMALQURA_YEAR_START_TABLE;\nfunction $f2f3e0e3a817edbd$var$umalquraYearStart(year) {\n return $f2f3e0e3a817edbd$var$UMALQURA_START_DAYS + $f2f3e0e3a817edbd$var$UMALQURA_YEAR_START_TABLE[year - $f2f3e0e3a817edbd$var$UMALQURA_YEAR_START];\n}\nfunction $f2f3e0e3a817edbd$var$umalquraMonthLength(year, month) {\n let idx = year - $f2f3e0e3a817edbd$var$UMALQURA_YEAR_START;\n let mask = 0x01 << 11 - (month - 1);\n if (($f2f3e0e3a817edbd$var$UMALQURA_MONTHLENGTH[idx] & mask) === 0) return 29;\n else return 30;\n}\nfunction $f2f3e0e3a817edbd$var$umalquraMonthStart(year, month) {\n let day = $f2f3e0e3a817edbd$var$umalquraYearStart(year);\n for(let i = 1; i < month; i++)day += $f2f3e0e3a817edbd$var$umalquraMonthLength(year, i);\n return day;\n}\nfunction $f2f3e0e3a817edbd$var$umalquraYearLength(year) {\n return $f2f3e0e3a817edbd$var$UMALQURA_YEAR_START_TABLE[year + 1 - $f2f3e0e3a817edbd$var$UMALQURA_YEAR_START] - $f2f3e0e3a817edbd$var$UMALQURA_YEAR_START_TABLE[year - $f2f3e0e3a817edbd$var$UMALQURA_YEAR_START];\n}\nclass $f2f3e0e3a817edbd$export$5baab4758c231076 extends $f2f3e0e3a817edbd$export$2066795aadd37bfc {\n fromJulianDay(jd) {\n let days = jd - $f2f3e0e3a817edbd$var$CIVIL_EPOC;\n let startDays = $f2f3e0e3a817edbd$var$umalquraYearStart($f2f3e0e3a817edbd$var$UMALQURA_YEAR_START);\n let endDays = $f2f3e0e3a817edbd$var$umalquraYearStart($f2f3e0e3a817edbd$var$UMALQURA_YEAR_END);\n if (days < startDays || days > endDays) return super.fromJulianDay(jd);\n else {\n let y = $f2f3e0e3a817edbd$var$UMALQURA_YEAR_START - 1;\n let m = 1;\n let d = 1;\n while(d > 0){\n y++;\n d = days - $f2f3e0e3a817edbd$var$umalquraYearStart(y) + 1;\n let yearLength = $f2f3e0e3a817edbd$var$umalquraYearLength(y);\n if (d === yearLength) {\n m = 12;\n break;\n } else if (d < yearLength) {\n let monthLength = $f2f3e0e3a817edbd$var$umalquraMonthLength(y, m);\n m = 1;\n while(d > monthLength){\n d -= monthLength;\n m++;\n monthLength = $f2f3e0e3a817edbd$var$umalquraMonthLength(y, m);\n }\n break;\n }\n }\n return new (0, $35ea8db9cb2ccb90$export$99faa760c7908e4f)(this, y, m, days - $f2f3e0e3a817edbd$var$umalquraMonthStart(y, m) + 1);\n }\n }\n toJulianDay(date) {\n if (date.year < $f2f3e0e3a817edbd$var$UMALQURA_YEAR_START || date.year > $f2f3e0e3a817edbd$var$UMALQURA_YEAR_END) return super.toJulianDay(date);\n return $f2f3e0e3a817edbd$var$CIVIL_EPOC + $f2f3e0e3a817edbd$var$umalquraMonthStart(date.year, date.month) + (date.day - 1);\n }\n getDaysInMonth(date) {\n if (date.year < $f2f3e0e3a817edbd$var$UMALQURA_YEAR_START || date.year > $f2f3e0e3a817edbd$var$UMALQURA_YEAR_END) return super.getDaysInMonth(date);\n return $f2f3e0e3a817edbd$var$umalquraMonthLength(date.year, date.month);\n }\n getDaysInYear(date) {\n if (date.year < $f2f3e0e3a817edbd$var$UMALQURA_YEAR_START || date.year > $f2f3e0e3a817edbd$var$UMALQURA_YEAR_END) return super.getDaysInYear(date);\n return $f2f3e0e3a817edbd$var$umalquraYearLength(date.year);\n }\n constructor(){\n super();\n (0, $cUVuN$swchelperssrc_define_propertymjs)(this, \"identifier\", \"islamic-umalqura\");\n if (!$f2f3e0e3a817edbd$var$UMALQURA_MONTHLENGTH) $f2f3e0e3a817edbd$var$UMALQURA_MONTHLENGTH = new Uint16Array(Uint8Array.from(atob($f2f3e0e3a817edbd$var$UMALQURA_DATA), (c)=>c.charCodeAt(0)).buffer);\n if (!$f2f3e0e3a817edbd$var$UMALQURA_YEAR_START_TABLE) {\n $f2f3e0e3a817edbd$var$UMALQURA_YEAR_START_TABLE = new Uint32Array($f2f3e0e3a817edbd$var$UMALQURA_YEAR_END - $f2f3e0e3a817edbd$var$UMALQURA_YEAR_START + 1);\n let yearStart = 0;\n for(let year = $f2f3e0e3a817edbd$var$UMALQURA_YEAR_START; year <= $f2f3e0e3a817edbd$var$UMALQURA_YEAR_END; year++){\n $f2f3e0e3a817edbd$var$UMALQURA_YEAR_START_TABLE[year - $f2f3e0e3a817edbd$var$UMALQURA_YEAR_START] = yearStart;\n for(let i = 1; i <= 12; i++)yearStart += $f2f3e0e3a817edbd$var$umalquraMonthLength(year, i);\n }\n }\n }\n}\n\n\n/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ // Portions of the code in this file are based on code from ICU.\n// Original licensing can be found in the NOTICE file in the root directory of this source tree.\n\n\n\nconst $7c5f6fbf42389787$var$HEBREW_EPOCH = 347997;\n// Hebrew date calculations are performed in terms of days, hours, and\n// \"parts\" (or halakim), which are 1/1080 of an hour, or 3 1/3 seconds.\nconst $7c5f6fbf42389787$var$HOUR_PARTS = 1080;\nconst $7c5f6fbf42389787$var$DAY_PARTS = 24 * $7c5f6fbf42389787$var$HOUR_PARTS;\n// An approximate value for the length of a lunar month.\n// It is used to calculate the approximate year and month of a given\n// absolute date.\nconst $7c5f6fbf42389787$var$MONTH_DAYS = 29;\nconst $7c5f6fbf42389787$var$MONTH_FRACT = 12 * $7c5f6fbf42389787$var$HOUR_PARTS + 793;\nconst $7c5f6fbf42389787$var$MONTH_PARTS = $7c5f6fbf42389787$var$MONTH_DAYS * $7c5f6fbf42389787$var$DAY_PARTS + $7c5f6fbf42389787$var$MONTH_FRACT;\nfunction $7c5f6fbf42389787$var$isLeapYear(year) {\n return (0, $2b4dce13dd5a17fa$export$842a2cf37af977e1)(year * 7 + 1, 19) < 7;\n}\n// Test for delay of start of new year and to avoid\n// Sunday, Wednesday, and Friday as start of the new year.\nfunction $7c5f6fbf42389787$var$hebrewDelay1(year) {\n let months = Math.floor((235 * year - 234) / 19);\n let parts = 12084 + 13753 * months;\n let day = months * 29 + Math.floor(parts / 25920);\n if ((0, $2b4dce13dd5a17fa$export$842a2cf37af977e1)(3 * (day + 1), 7) < 3) day += 1;\n return day;\n}\n// Check for delay in start of new year due to length of adjacent years\nfunction $7c5f6fbf42389787$var$hebrewDelay2(year) {\n let last = $7c5f6fbf42389787$var$hebrewDelay1(year - 1);\n let present = $7c5f6fbf42389787$var$hebrewDelay1(year);\n let next = $7c5f6fbf42389787$var$hebrewDelay1(year + 1);\n if (next - present === 356) return 2;\n if (present - last === 382) return 1;\n return 0;\n}\nfunction $7c5f6fbf42389787$var$startOfYear(year) {\n return $7c5f6fbf42389787$var$hebrewDelay1(year) + $7c5f6fbf42389787$var$hebrewDelay2(year);\n}\nfunction $7c5f6fbf42389787$var$getDaysInYear(year) {\n return $7c5f6fbf42389787$var$startOfYear(year + 1) - $7c5f6fbf42389787$var$startOfYear(year);\n}\nfunction $7c5f6fbf42389787$var$getYearType(year) {\n let yearLength = $7c5f6fbf42389787$var$getDaysInYear(year);\n if (yearLength > 380) yearLength -= 30; // Subtract length of leap month.\n switch(yearLength){\n case 353:\n return 0; // deficient\n case 354:\n return 1; // normal\n case 355:\n return 2; // complete\n }\n}\nfunction $7c5f6fbf42389787$var$getDaysInMonth(year, month) {\n // Normalize month numbers from 1 - 13, even on non-leap years\n if (month >= 6 && !$7c5f6fbf42389787$var$isLeapYear(year)) month++;\n // First of all, dispose of fixed-length 29 day months\n if (month === 4 || month === 7 || month === 9 || month === 11 || month === 13) return 29;\n let yearType = $7c5f6fbf42389787$var$getYearType(year);\n // If it's Heshvan, days depend on length of year\n if (month === 2) return yearType === 2 ? 30 : 29;\n // Similarly, Kislev varies with the length of year\n if (month === 3) return yearType === 0 ? 29 : 30;\n // Adar I only exists in leap years\n if (month === 6) return $7c5f6fbf42389787$var$isLeapYear(year) ? 30 : 0;\n return 30;\n}\nclass $7c5f6fbf42389787$export$ca405048b8fb5af {\n fromJulianDay(jd) {\n let d = jd - $7c5f6fbf42389787$var$HEBREW_EPOCH;\n let m = d * $7c5f6fbf42389787$var$DAY_PARTS / $7c5f6fbf42389787$var$MONTH_PARTS; // Months (approx)\n let year = Math.floor((19 * m + 234) / 235) + 1; // Years (approx)\n let ys = $7c5f6fbf42389787$var$startOfYear(year); // 1st day of year\n let dayOfYear = Math.floor(d - ys);\n // Because of the postponement rules, it's possible to guess wrong. Fix it.\n while(dayOfYear < 1){\n year--;\n ys = $7c5f6fbf42389787$var$startOfYear(year);\n dayOfYear = Math.floor(d - ys);\n }\n // Now figure out which month we're in, and the date within that month\n let month = 1;\n let monthStart = 0;\n while(monthStart < dayOfYear){\n monthStart += $7c5f6fbf42389787$var$getDaysInMonth(year, month);\n month++;\n }\n month--;\n monthStart -= $7c5f6fbf42389787$var$getDaysInMonth(year, month);\n let day = dayOfYear - monthStart;\n return new (0, $35ea8db9cb2ccb90$export$99faa760c7908e4f)(this, year, month, day);\n }\n toJulianDay(date) {\n let jd = $7c5f6fbf42389787$var$startOfYear(date.year);\n for(let month = 1; month < date.month; month++)jd += $7c5f6fbf42389787$var$getDaysInMonth(date.year, month);\n return jd + date.day + $7c5f6fbf42389787$var$HEBREW_EPOCH;\n }\n getDaysInMonth(date) {\n return $7c5f6fbf42389787$var$getDaysInMonth(date.year, date.month);\n }\n getMonthsInYear(date) {\n return $7c5f6fbf42389787$var$isLeapYear(date.year) ? 13 : 12;\n }\n getDaysInYear(date) {\n return $7c5f6fbf42389787$var$getDaysInYear(date.year);\n }\n getYearsInEra() {\n // 6239 gregorian\n return 9999;\n }\n getEras() {\n return [\n \"AM\"\n ];\n }\n balanceYearMonth(date, previousDate) {\n // Keep date in the same month when switching between leap years and non leap years\n if (previousDate.year !== date.year) {\n if ($7c5f6fbf42389787$var$isLeapYear(previousDate.year) && !$7c5f6fbf42389787$var$isLeapYear(date.year) && previousDate.month > 6) date.month--;\n else if (!$7c5f6fbf42389787$var$isLeapYear(previousDate.year) && $7c5f6fbf42389787$var$isLeapYear(date.year) && previousDate.month > 6) date.month++;\n }\n }\n constructor(){\n (0, $cUVuN$swchelperssrc_define_propertymjs)(this, \"identifier\", \"hebrew\");\n }\n}\n\n\n/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ // Portions of the code in this file are based on code from ICU.\n// Original licensing can be found in the NOTICE file in the root directory of this source tree.\n\n\nconst $b956b2d7a6cf451f$var$ETHIOPIC_EPOCH = 1723856;\nconst $b956b2d7a6cf451f$var$COPTIC_EPOCH = 1824665;\n// The delta between Amete Alem 1 and Amete Mihret 1\n// AA 5501 = AM 1\nconst $b956b2d7a6cf451f$var$AMETE_MIHRET_DELTA = 5500;\nfunction $b956b2d7a6cf451f$var$ceToJulianDay(epoch, year, month, day) {\n return epoch // difference from Julian epoch to 1,1,1\n + 365 * year // number of days from years\n + Math.floor(year / 4) // extra day of leap year\n + 30 * (month - 1 // number of days from months (1 based)\n ) + day - 1 // number of days for present month (1 based)\n ;\n}\nfunction $b956b2d7a6cf451f$var$julianDayToCE(epoch, jd) {\n let year = Math.floor(4 * (jd - epoch) / 1461);\n let month = 1 + Math.floor((jd - $b956b2d7a6cf451f$var$ceToJulianDay(epoch, year, 1, 1)) / 30);\n let day = jd + 1 - $b956b2d7a6cf451f$var$ceToJulianDay(epoch, year, month, 1);\n return [\n year,\n month,\n day\n ];\n}\nfunction $b956b2d7a6cf451f$var$getLeapDay(year) {\n return Math.floor(year % 4 / 3);\n}\nfunction $b956b2d7a6cf451f$var$getDaysInMonth(year, month) {\n // The Ethiopian and Coptic calendars have 13 months, 12 of 30 days each and\n // an intercalary month at the end of the year of 5 or 6 days, depending whether\n // the year is a leap year or not. The Leap Year follows the same rules as the\n // Julian Calendar so that the extra month always has six days in the year before\n // a Julian Leap Year.\n if (month % 13 !== 0) // not intercalary month\n return 30;\n else // intercalary month 5 days + possible leap day\n return $b956b2d7a6cf451f$var$getLeapDay(year) + 5;\n}\nclass $b956b2d7a6cf451f$export$26ba6eab5e20cd7d {\n fromJulianDay(jd) {\n let [year, month, day] = $b956b2d7a6cf451f$var$julianDayToCE($b956b2d7a6cf451f$var$ETHIOPIC_EPOCH, jd);\n let era = \"AM\";\n if (year <= 0) {\n era = \"AA\";\n year += $b956b2d7a6cf451f$var$AMETE_MIHRET_DELTA;\n }\n return new (0, $35ea8db9cb2ccb90$export$99faa760c7908e4f)(this, era, year, month, day);\n }\n toJulianDay(date) {\n let year = date.year;\n if (date.era === \"AA\") year -= $b956b2d7a6cf451f$var$AMETE_MIHRET_DELTA;\n return $b956b2d7a6cf451f$var$ceToJulianDay($b956b2d7a6cf451f$var$ETHIOPIC_EPOCH, year, date.month, date.day);\n }\n getDaysInMonth(date) {\n return $b956b2d7a6cf451f$var$getDaysInMonth(date.year, date.month);\n }\n getMonthsInYear() {\n return 13;\n }\n getDaysInYear(date) {\n return 365 + $b956b2d7a6cf451f$var$getLeapDay(date.year);\n }\n getYearsInEra(date) {\n // 9999-12-31 gregorian is 9992-20-02 ethiopic.\n // Round down to 9991 for the last full year.\n // AA 9999-01-01 ethiopic is 4506-09-30 gregorian.\n return date.era === \"AA\" ? 9999 : 9991;\n }\n getEras() {\n return [\n \"AA\",\n \"AM\"\n ];\n }\n constructor(){\n (0, $cUVuN$swchelperssrc_define_propertymjs)(this, \"identifier\", \"ethiopic\");\n }\n}\nclass $b956b2d7a6cf451f$export$d72e0c37005a4914 extends $b956b2d7a6cf451f$export$26ba6eab5e20cd7d {\n fromJulianDay(jd) {\n let [year, month, day] = $b956b2d7a6cf451f$var$julianDayToCE($b956b2d7a6cf451f$var$ETHIOPIC_EPOCH, jd);\n year += $b956b2d7a6cf451f$var$AMETE_MIHRET_DELTA;\n return new (0, $35ea8db9cb2ccb90$export$99faa760c7908e4f)(this, \"AA\", year, month, day);\n }\n getEras() {\n return [\n \"AA\"\n ];\n }\n getYearsInEra() {\n // 9999-13-04 ethioaa is the maximum date, which is equivalent to 4506-09-29 gregorian.\n return 9999;\n }\n constructor(...args){\n super(...args);\n (0, $cUVuN$swchelperssrc_define_propertymjs)(this, \"identifier\", \"ethioaa\") // also known as 'ethiopic-amete-alem' in ICU\n ;\n }\n}\nclass $b956b2d7a6cf451f$export$fe6243cbe1a4b7c1 extends $b956b2d7a6cf451f$export$26ba6eab5e20cd7d {\n fromJulianDay(jd) {\n let [year, month, day] = $b956b2d7a6cf451f$var$julianDayToCE($b956b2d7a6cf451f$var$COPTIC_EPOCH, jd);\n let era = \"CE\";\n if (year <= 0) {\n era = \"BCE\";\n year = 1 - year;\n }\n return new (0, $35ea8db9cb2ccb90$export$99faa760c7908e4f)(this, era, year, month, day);\n }\n toJulianDay(date) {\n let year = date.year;\n if (date.era === \"BCE\") year = 1 - year;\n return $b956b2d7a6cf451f$var$ceToJulianDay($b956b2d7a6cf451f$var$COPTIC_EPOCH, year, date.month, date.day);\n }\n getDaysInMonth(date) {\n let year = date.year;\n if (date.era === \"BCE\") year = 1 - year;\n return $b956b2d7a6cf451f$var$getDaysInMonth(year, date.month);\n }\n isInverseEra(date) {\n return date.era === \"BCE\";\n }\n balanceDate(date) {\n if (date.year <= 0) {\n date.era = date.era === \"BCE\" ? \"CE\" : \"BCE\";\n date.year = 1 - date.year;\n }\n }\n getEras() {\n return [\n \"BCE\",\n \"CE\"\n ];\n }\n getYearsInEra(date) {\n // 9999-12-30 gregorian is 9716-02-20 coptic.\n // Round down to 9715 for the last full year.\n // BCE 9999-01-01 coptic is BC 9716-06-15 gregorian.\n return date.era === \"BCE\" ? 9999 : 9715;\n }\n constructor(...args){\n super(...args);\n (0, $cUVuN$swchelperssrc_define_propertymjs)(this, \"identifier\", \"coptic\");\n }\n}\n\n\n/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ \n\n\n\n\n\n\n\n\nfunction $64244302c3013299$export$dd0bbc9b26defe37(name) {\n switch(name){\n case \"buddhist\":\n return new (0, $8d73d47422ca7302$export$42d20a78301dee44)();\n case \"ethiopic\":\n return new (0, $b956b2d7a6cf451f$export$26ba6eab5e20cd7d)();\n case \"ethioaa\":\n return new (0, $b956b2d7a6cf451f$export$d72e0c37005a4914)();\n case \"coptic\":\n return new (0, $b956b2d7a6cf451f$export$fe6243cbe1a4b7c1)();\n case \"hebrew\":\n return new (0, $7c5f6fbf42389787$export$ca405048b8fb5af)();\n case \"indian\":\n return new (0, $82c358003bdda0a8$export$39f31c639fa15726)();\n case \"islamic-civil\":\n return new (0, $f2f3e0e3a817edbd$export$2066795aadd37bfc)();\n case \"islamic-tbla\":\n return new (0, $f2f3e0e3a817edbd$export$37f0887f2f9d22f7)();\n case \"islamic-umalqura\":\n return new (0, $f2f3e0e3a817edbd$export$5baab4758c231076)();\n case \"japanese\":\n return new (0, $62225008020f0a13$export$b746ab2b60cdffbf)();\n case \"persian\":\n return new (0, $f3ed2e4472ae7e25$export$37fccdbfd14c5939)();\n case \"roc\":\n return new (0, $5f31bd6f0c8940b2$export$65e01080afcb0799)();\n case \"gregory\":\n default:\n return new (0, $3b62074eb05584b2$export$80ee6245ec4f29ec)();\n }\n}\n\n\n\n\n\n/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ let $fb18d541ea1ad717$var$formatterCache = new Map();\nclass $fb18d541ea1ad717$export$ad991b66133851cf {\n /** Formats a date as a string according to the locale and format options passed to the constructor. */ format(value) {\n return this.formatter.format(value);\n }\n /** Formats a date to an array of parts such as separators, numbers, punctuation, and more. */ formatToParts(value) {\n return this.formatter.formatToParts(value);\n }\n /** Formats a date range as a string. */ formatRange(start, end) {\n // @ts-ignore\n if (typeof this.formatter.formatRange === \"function\") // @ts-ignore\n return this.formatter.formatRange(start, end);\n if (end < start) throw new RangeError(\"End date must be >= start date\");\n // Very basic fallback for old browsers.\n return `${this.formatter.format(start)} – ${this.formatter.format(end)}`;\n }\n /** Formats a date range as an array of parts. */ formatRangeToParts(start, end) {\n // @ts-ignore\n if (typeof this.formatter.formatRangeToParts === \"function\") // @ts-ignore\n return this.formatter.formatRangeToParts(start, end);\n if (end < start) throw new RangeError(\"End date must be >= start date\");\n let startParts = this.formatter.formatToParts(start);\n let endParts = this.formatter.formatToParts(end);\n return [\n ...startParts.map((p)=>({\n ...p,\n source: \"startRange\"\n })),\n {\n type: \"literal\",\n value: \" – \",\n source: \"shared\"\n },\n ...endParts.map((p)=>({\n ...p,\n source: \"endRange\"\n }))\n ];\n }\n /** Returns the resolved formatting options based on the values passed to the constructor. */ resolvedOptions() {\n let resolvedOptions = this.formatter.resolvedOptions();\n if ($fb18d541ea1ad717$var$hasBuggyResolvedHourCycle()) {\n if (!this.resolvedHourCycle) this.resolvedHourCycle = $fb18d541ea1ad717$var$getResolvedHourCycle(resolvedOptions.locale, this.options);\n resolvedOptions.hourCycle = this.resolvedHourCycle;\n resolvedOptions.hour12 = this.resolvedHourCycle === \"h11\" || this.resolvedHourCycle === \"h12\";\n }\n // Safari uses a different name for the Ethiopic (Amete Alem) calendar.\n // https://bugs.webkit.org/show_bug.cgi?id=241564\n if (resolvedOptions.calendar === \"ethiopic-amete-alem\") resolvedOptions.calendar = \"ethioaa\";\n return resolvedOptions;\n }\n constructor(locale, options = {}){\n this.formatter = $fb18d541ea1ad717$var$getCachedDateFormatter(locale, options);\n this.options = options;\n }\n}\n// There are multiple bugs involving the hour12 and hourCycle options in various browser engines.\n// - Chrome [1] (and the ECMA 402 spec [2]) resolve hour12: false in English and other locales to h24 (24:00 - 23:59)\n// rather than h23 (00:00 - 23:59). Same can happen with hour12: true in French, which Chrome resolves to h11 (00:00 - 11:59)\n// rather than h12 (12:00 - 11:59).\n// - WebKit returns an incorrect hourCycle resolved option in the French locale due to incorrect parsing of 'h' literal\n// in the resolved pattern. It also formats incorrectly when specifying the hourCycle option for the same reason. [3]\n// [1] https://bugs.chromium.org/p/chromium/issues/detail?id=1045791\n// [2] https://github.com/tc39/ecma402/issues/402\n// [3] https://bugs.webkit.org/show_bug.cgi?id=229313\n// https://github.com/unicode-org/cldr/blob/018b55eff7ceb389c7e3fc44e2f657eae3b10b38/common/supplemental/supplementalData.xml#L4774-L4802\nconst $fb18d541ea1ad717$var$hour12Preferences = {\n true: {\n // Only Japanese uses the h11 style for 12 hour time. All others use h12.\n ja: \"h11\"\n },\n false: {\n }\n};\nfunction $fb18d541ea1ad717$var$getCachedDateFormatter(locale, options = {}) {\n // Work around buggy hour12 behavior in Chrome / ECMA 402 spec by using hourCycle instead.\n // Only apply the workaround if the issue is detected, because the hourCycle option is buggy in Safari.\n if (typeof options.hour12 === \"boolean\" && $fb18d541ea1ad717$var$hasBuggyHour12Behavior()) {\n options = {\n ...options\n };\n let pref = $fb18d541ea1ad717$var$hour12Preferences[String(options.hour12)][locale.split(\"-\")[0]];\n let defaultHourCycle = options.hour12 ? \"h12\" : \"h23\";\n options.hourCycle = pref !== null && pref !== void 0 ? pref : defaultHourCycle;\n delete options.hour12;\n }\n let cacheKey = locale + (options ? Object.entries(options).sort((a, b)=>a[0] < b[0] ? -1 : 1).join() : \"\");\n if ($fb18d541ea1ad717$var$formatterCache.has(cacheKey)) return $fb18d541ea1ad717$var$formatterCache.get(cacheKey);\n let numberFormatter = new Intl.DateTimeFormat(locale, options);\n $fb18d541ea1ad717$var$formatterCache.set(cacheKey, numberFormatter);\n return numberFormatter;\n}\nlet $fb18d541ea1ad717$var$_hasBuggyHour12Behavior = null;\nfunction $fb18d541ea1ad717$var$hasBuggyHour12Behavior() {\n if ($fb18d541ea1ad717$var$_hasBuggyHour12Behavior == null) $fb18d541ea1ad717$var$_hasBuggyHour12Behavior = new Intl.DateTimeFormat(\"en-US\", {\n hour: \"numeric\",\n hour12: false\n }).format(new Date(2020, 2, 3, 0)) === \"24\";\n return $fb18d541ea1ad717$var$_hasBuggyHour12Behavior;\n}\nlet $fb18d541ea1ad717$var$_hasBuggyResolvedHourCycle = null;\nfunction $fb18d541ea1ad717$var$hasBuggyResolvedHourCycle() {\n if ($fb18d541ea1ad717$var$_hasBuggyResolvedHourCycle == null) $fb18d541ea1ad717$var$_hasBuggyResolvedHourCycle = new Intl.DateTimeFormat(\"fr\", {\n hour: \"numeric\",\n hour12: false\n }).resolvedOptions().hourCycle === \"h12\";\n return $fb18d541ea1ad717$var$_hasBuggyResolvedHourCycle;\n}\nfunction $fb18d541ea1ad717$var$getResolvedHourCycle(locale, options) {\n if (!options.timeStyle && !options.hour) return undefined;\n // Work around buggy results in resolved hourCycle and hour12 options in WebKit.\n // Format the minimum possible hour and maximum possible hour in a day and parse the results.\n locale = locale.replace(/(-u-)?-nu-[a-zA-Z0-9]+/, \"\");\n locale += (locale.includes(\"-u-\") ? \"\" : \"-u\") + \"-nu-latn\";\n let formatter = $fb18d541ea1ad717$var$getCachedDateFormatter(locale, {\n ...options,\n timeZone: undefined // use local timezone\n });\n let min = parseInt(formatter.formatToParts(new Date(2020, 2, 3, 0)).find((p)=>p.type === \"hour\").value, 10);\n let max = parseInt(formatter.formatToParts(new Date(2020, 2, 3, 23)).find((p)=>p.type === \"hour\").value, 10);\n if (min === 0 && max === 23) return \"h23\";\n if (min === 24 && max === 23) return \"h24\";\n if (min === 0 && max === 11) return \"h11\";\n if (min === 12 && max === 11) return \"h12\";\n throw new Error(\"Unexpected hour cycle result\");\n}\n\n\n\n\nexport {$35ea8db9cb2ccb90$export$99faa760c7908e4f as CalendarDate, $35ea8db9cb2ccb90$export$ca871e8dbb80966f as CalendarDateTime, $35ea8db9cb2ccb90$export$680ea196effce5f as Time, $35ea8db9cb2ccb90$export$d3b7288e7994edea as ZonedDateTime, $3b62074eb05584b2$export$80ee6245ec4f29ec as GregorianCalendar, $62225008020f0a13$export$b746ab2b60cdffbf as JapaneseCalendar, $8d73d47422ca7302$export$42d20a78301dee44 as BuddhistCalendar, $5f31bd6f0c8940b2$export$65e01080afcb0799 as TaiwanCalendar, $f3ed2e4472ae7e25$export$37fccdbfd14c5939 as PersianCalendar, $82c358003bdda0a8$export$39f31c639fa15726 as IndianCalendar, $f2f3e0e3a817edbd$export$2066795aadd37bfc as IslamicCivilCalendar, $f2f3e0e3a817edbd$export$37f0887f2f9d22f7 as IslamicTabularCalendar, $f2f3e0e3a817edbd$export$5baab4758c231076 as IslamicUmalquraCalendar, $7c5f6fbf42389787$export$ca405048b8fb5af as HebrewCalendar, $b956b2d7a6cf451f$export$26ba6eab5e20cd7d as EthiopicCalendar, $b956b2d7a6cf451f$export$d72e0c37005a4914 as EthiopicAmeteAlemCalendar, $b956b2d7a6cf451f$export$fe6243cbe1a4b7c1 as CopticCalendar, $64244302c3013299$export$dd0bbc9b26defe37 as createCalendar, $11d87f3f76e88657$export$93522d1a439f3617 as toCalendarDate, $11d87f3f76e88657$export$b21e0b124e224484 as toCalendarDateTime, $11d87f3f76e88657$export$d33f79e3ffc3dc83 as toTime, $11d87f3f76e88657$export$b4a036af3fc0b032 as toCalendar, $11d87f3f76e88657$export$84c95a83c799e074 as toZoned, $11d87f3f76e88657$export$538b00033cc11c75 as toTimeZone, $11d87f3f76e88657$export$d9b67bc93c097491 as toLocalTimeZone, $14e0f24ef4ac5c92$export$ea39ec197993aef0 as isSameDay, $14e0f24ef4ac5c92$export$a18c89cbd24170ff as isSameMonth, $14e0f24ef4ac5c92$export$5841f9eb9773f25f as isSameYear, $14e0f24ef4ac5c92$export$91b62ebf2ba703ee as isEqualDay, $14e0f24ef4ac5c92$export$5a8da0c44a3afdf2 as isEqualMonth, $14e0f24ef4ac5c92$export$ea840f5a6dda8147 as isEqualYear, $14e0f24ef4ac5c92$export$629b0a497aa65267 as isToday, $14e0f24ef4ac5c92$export$2061056d06d7cdf7 as getDayOfWeek, $14e0f24ef4ac5c92$export$461939dd4422153 as now, $14e0f24ef4ac5c92$export$d0bdf45af03a6ea3 as today, $14e0f24ef4ac5c92$export$126c91c941de7e as getHoursInDay, $14e0f24ef4ac5c92$export$aa8b41735afcabd2 as getLocalTimeZone, $14e0f24ef4ac5c92$export$a5a3b454ada2268e as startOfMonth, $14e0f24ef4ac5c92$export$42c81a444fbfb5d4 as startOfWeek, $14e0f24ef4ac5c92$export$f91e89d3d0406102 as startOfYear, $14e0f24ef4ac5c92$export$a2258d9c4118825c as endOfMonth, $14e0f24ef4ac5c92$export$ef8b6d9133084f4e as endOfWeek, $14e0f24ef4ac5c92$export$8b7aa55c66d5569e as endOfYear, $14e0f24ef4ac5c92$export$5412ac11713b72ad as getMinimumMonthInYear, $14e0f24ef4ac5c92$export$b2f4953d301981d5 as getMinimumDayInMonth, $14e0f24ef4ac5c92$export$ccc1b2479e7dd654 as getWeeksInMonth, $14e0f24ef4ac5c92$export$5c333a116e949cdd as minDate, $14e0f24ef4ac5c92$export$a75f2bff57811055 as maxDate, $14e0f24ef4ac5c92$export$618d60ea299da42 as isWeekend, $14e0f24ef4ac5c92$export$ee9d87258e1d19ed as isWeekday, $fae977aafc393c5c$export$6b862160d295c8e as parseDate, $fae977aafc393c5c$export$588937bcd60ade55 as parseDateTime, $fae977aafc393c5c$export$c9698ec7f05a07e1 as parseTime, $fae977aafc393c5c$export$5adfdab05168c219 as parseAbsolute, $fae977aafc393c5c$export$8e384432362ed0f0 as parseAbsoluteToLocal, $fae977aafc393c5c$export$fd7893f06e92a6a4 as parseZonedDateTime, $fae977aafc393c5c$export$ecae829bb3747ea6 as parseDuration, $fb18d541ea1ad717$export$ad991b66133851cf as DateFormatter};\n//# sourceMappingURL=module.js.map\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ /*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ let $488c6ddbf4ef74c2$var$formatterCache = new Map();\nlet $488c6ddbf4ef74c2$var$supportsSignDisplay = false;\ntry {\n // @ts-ignore\n $488c6ddbf4ef74c2$var$supportsSignDisplay = new Intl.NumberFormat(\"de-DE\", {\n signDisplay: \"exceptZero\"\n }).resolvedOptions().signDisplay === \"exceptZero\";\n// eslint-disable-next-line no-empty\n} catch (e) {}\nlet $488c6ddbf4ef74c2$var$supportsUnit = false;\ntry {\n // @ts-ignore\n $488c6ddbf4ef74c2$var$supportsUnit = new Intl.NumberFormat(\"de-DE\", {\n style: \"unit\",\n unit: \"degree\"\n }).resolvedOptions().style === \"unit\";\n// eslint-disable-next-line no-empty\n} catch (e1) {}\n// Polyfill for units since Safari doesn't support them yet. See https://bugs.webkit.org/show_bug.cgi?id=215438.\n// Currently only polyfilling the unit degree in narrow format for ColorSlider in our supported locales.\n// Values were determined by switching to each locale manually in Chrome.\nconst $488c6ddbf4ef74c2$var$UNITS = {\n degree: {\n narrow: {\n default: \"\\xb0\",\n \"ja-JP\": \" 度\",\n \"zh-TW\": \"度\",\n \"sl-SI\": \" \\xb0\"\n }\n }\n};\nclass $488c6ddbf4ef74c2$export$cc77c4ff7e8673c5 {\n /** Formats a number value as a string, according to the locale and options provided to the constructor. */ format(value) {\n let res = \"\";\n if (!$488c6ddbf4ef74c2$var$supportsSignDisplay && this.options.signDisplay != null) res = $488c6ddbf4ef74c2$export$711b50b3c525e0f2(this.numberFormatter, this.options.signDisplay, value);\n else res = this.numberFormatter.format(value);\n if (this.options.style === \"unit\" && !$488c6ddbf4ef74c2$var$supportsUnit) {\n var _UNITS_unit;\n let { unit: unit , unitDisplay: unitDisplay = \"short\" , locale: locale } = this.resolvedOptions();\n let values = (_UNITS_unit = $488c6ddbf4ef74c2$var$UNITS[unit]) === null || _UNITS_unit === void 0 ? void 0 : _UNITS_unit[unitDisplay];\n res += values[locale] || values.default;\n }\n return res;\n }\n /** Formats a number to an array of parts such as separators, digits, punctuation, and more. */ formatToParts(value) {\n // TODO: implement signDisplay for formatToParts\n // @ts-ignore\n return this.numberFormatter.formatToParts(value);\n }\n /** Formats a number range as a string. */ formatRange(start, end) {\n // @ts-ignore\n if (typeof this.numberFormatter.formatRange === \"function\") // @ts-ignore\n return this.numberFormatter.formatRange(start, end);\n if (end < start) throw new RangeError(\"End date must be >= start date\");\n // Very basic fallback for old browsers.\n return `${this.format(start)} – ${this.format(end)}`;\n }\n /** Formats a number range as an array of parts. */ formatRangeToParts(start, end) {\n // @ts-ignore\n if (typeof this.numberFormatter.formatRangeToParts === \"function\") // @ts-ignore\n return this.numberFormatter.formatRangeToParts(start, end);\n if (end < start) throw new RangeError(\"End date must be >= start date\");\n let startParts = this.numberFormatter.formatToParts(start);\n let endParts = this.numberFormatter.formatToParts(end);\n return [\n ...startParts.map((p)=>({\n ...p,\n source: \"startRange\"\n })),\n {\n type: \"literal\",\n value: \" – \",\n source: \"shared\"\n },\n ...endParts.map((p)=>({\n ...p,\n source: \"endRange\"\n }))\n ];\n }\n /** Returns the resolved formatting options based on the values passed to the constructor. */ resolvedOptions() {\n let options = this.numberFormatter.resolvedOptions();\n if (!$488c6ddbf4ef74c2$var$supportsSignDisplay && this.options.signDisplay != null) options = {\n ...options,\n signDisplay: this.options.signDisplay\n };\n if (!$488c6ddbf4ef74c2$var$supportsUnit && this.options.style === \"unit\") options = {\n ...options,\n style: \"unit\",\n unit: this.options.unit,\n unitDisplay: this.options.unitDisplay\n };\n return options;\n }\n constructor(locale, options = {}){\n this.numberFormatter = $488c6ddbf4ef74c2$var$getCachedNumberFormatter(locale, options);\n this.options = options;\n }\n}\nfunction $488c6ddbf4ef74c2$var$getCachedNumberFormatter(locale, options = {}) {\n let { numberingSystem: numberingSystem } = options;\n if (numberingSystem && locale.indexOf(\"-u-nu-\") === -1) locale = `${locale}-u-nu-${numberingSystem}`;\n if (options.style === \"unit\" && !$488c6ddbf4ef74c2$var$supportsUnit) {\n var _UNITS_unit;\n let { unit: unit , unitDisplay: unitDisplay = \"short\" } = options;\n if (!unit) throw new Error('unit option must be provided with style: \"unit\"');\n if (!((_UNITS_unit = $488c6ddbf4ef74c2$var$UNITS[unit]) === null || _UNITS_unit === void 0 ? void 0 : _UNITS_unit[unitDisplay])) throw new Error(`Unsupported unit ${unit} with unitDisplay = ${unitDisplay}`);\n options = {\n ...options,\n style: \"decimal\"\n };\n }\n let cacheKey = locale + (options ? Object.entries(options).sort((a, b)=>a[0] < b[0] ? -1 : 1).join() : \"\");\n if ($488c6ddbf4ef74c2$var$formatterCache.has(cacheKey)) return $488c6ddbf4ef74c2$var$formatterCache.get(cacheKey);\n let numberFormatter = new Intl.NumberFormat(locale, options);\n $488c6ddbf4ef74c2$var$formatterCache.set(cacheKey, numberFormatter);\n return numberFormatter;\n}\nfunction $488c6ddbf4ef74c2$export$711b50b3c525e0f2(numberFormat, signDisplay, num) {\n if (signDisplay === \"auto\") return numberFormat.format(num);\n else if (signDisplay === \"never\") return numberFormat.format(Math.abs(num));\n else {\n let needsPositiveSign = false;\n if (signDisplay === \"always\") needsPositiveSign = num > 0 || Object.is(num, 0);\n else if (signDisplay === \"exceptZero\") {\n if (Object.is(num, -0) || Object.is(num, 0)) num = Math.abs(num);\n else needsPositiveSign = num > 0;\n }\n if (needsPositiveSign) {\n let negative = numberFormat.format(-num);\n let noSign = numberFormat.format(num);\n // ignore RTL/LTR marker character\n let minus = negative.replace(noSign, \"\").replace(/\\u200e|\\u061C/, \"\");\n if ([\n ...minus\n ].length !== 1) console.warn(\"@react-aria/i18n polyfill for NumberFormat signDisplay: Unsupported case\");\n let positive = negative.replace(noSign, \"!!!\").replace(minus, \"+\").replace(\"!!!\", noSign);\n return positive;\n } else return numberFormat.format(num);\n }\n}\n\n\n/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ const $6c7bd7858deea686$var$CURRENCY_SIGN_REGEX = new RegExp(\"^.*\\\\(.*\\\\).*$\");\nconst $6c7bd7858deea686$var$NUMBERING_SYSTEMS = [\n \"latn\",\n \"arab\",\n \"hanidec\"\n];\nclass $6c7bd7858deea686$export$cd11ab140839f11d {\n /**\n * Parses the given string to a number. Returns NaN if a valid number could not be parsed.\n */ parse(value) {\n return $6c7bd7858deea686$var$getNumberParserImpl(this.locale, this.options, value).parse(value);\n }\n /**\n * Returns whether the given string could potentially be a valid number. This should be used to\n * validate user input as the user types. If a `minValue` or `maxValue` is provided, the validity\n * of the minus/plus sign characters can be checked.\n */ isValidPartialNumber(value, minValue, maxValue) {\n return $6c7bd7858deea686$var$getNumberParserImpl(this.locale, this.options, value).isValidPartialNumber(value, minValue, maxValue);\n }\n /**\n * Returns a numbering system for which the given string is valid in the current locale.\n * If no numbering system could be detected, the default numbering system for the current\n * locale is returned.\n */ getNumberingSystem(value) {\n return $6c7bd7858deea686$var$getNumberParserImpl(this.locale, this.options, value).options.numberingSystem;\n }\n constructor(locale, options = {}){\n this.locale = locale;\n this.options = options;\n }\n}\nconst $6c7bd7858deea686$var$numberParserCache = new Map();\nfunction $6c7bd7858deea686$var$getNumberParserImpl(locale, options, value) {\n // First try the default numbering system for the provided locale\n let defaultParser = $6c7bd7858deea686$var$getCachedNumberParser(locale, options);\n // If that doesn't match, and the locale doesn't include a hard coded numbering system,\n // try each of the other supported numbering systems until we find one that matches.\n if (!locale.includes(\"-nu-\") && !defaultParser.isValidPartialNumber(value)) {\n for (let numberingSystem of $6c7bd7858deea686$var$NUMBERING_SYSTEMS)if (numberingSystem !== defaultParser.options.numberingSystem) {\n let parser = $6c7bd7858deea686$var$getCachedNumberParser(locale + (locale.includes(\"-u-\") ? \"-nu-\" : \"-u-nu-\") + numberingSystem, options);\n if (parser.isValidPartialNumber(value)) return parser;\n }\n }\n return defaultParser;\n}\nfunction $6c7bd7858deea686$var$getCachedNumberParser(locale, options) {\n let cacheKey = locale + (options ? Object.entries(options).sort((a, b)=>a[0] < b[0] ? -1 : 1).join() : \"\");\n let parser = $6c7bd7858deea686$var$numberParserCache.get(cacheKey);\n if (!parser) {\n parser = new $6c7bd7858deea686$var$NumberParserImpl(locale, options);\n $6c7bd7858deea686$var$numberParserCache.set(cacheKey, parser);\n }\n return parser;\n}\n// The actual number parser implementation. Instances of this class are cached\n// based on the locale, options, and detected numbering system.\nclass $6c7bd7858deea686$var$NumberParserImpl {\n parse(value) {\n // to parse the number, we need to remove anything that isn't actually part of the number, for example we want '-10.40' not '-10.40 USD'\n let fullySanitizedValue = this.sanitize(value);\n // Remove group characters, and replace decimal points and numerals with ASCII values.\n fullySanitizedValue = $6c7bd7858deea686$var$replaceAll(fullySanitizedValue, this.symbols.group, \"\").replace(this.symbols.decimal, \".\").replace(this.symbols.minusSign, \"-\").replace(this.symbols.numeral, this.symbols.index);\n let newValue = fullySanitizedValue ? +fullySanitizedValue : NaN;\n if (isNaN(newValue)) return NaN;\n // accounting will always be stripped to a positive number, so if it's accounting and has a () around everything, then we need to make it negative again\n if (this.options.currencySign === \"accounting\" && $6c7bd7858deea686$var$CURRENCY_SIGN_REGEX.test(value)) newValue = -1 * newValue;\n // when reading the number, if it's a percent, then it should be interpreted as being divided by 100\n if (this.options.style === \"percent\") {\n newValue /= 100;\n var _this_options_maximumFractionDigits;\n // after dividing to get the percent value, javascript may get .0210999999 instead of .0211, so fix the number of fraction digits\n newValue = +newValue.toFixed(((_this_options_maximumFractionDigits = this.options.maximumFractionDigits) !== null && _this_options_maximumFractionDigits !== void 0 ? _this_options_maximumFractionDigits : 0) + 2);\n }\n return newValue;\n }\n sanitize(value) {\n // Remove literals and whitespace, which are allowed anywhere in the string\n value = value.replace(this.symbols.literals, \"\");\n // Replace the ASCII minus sign with the minus sign used in the current locale\n // so that both are allowed in case the user's keyboard doesn't have the locale's minus sign.\n value = value.replace(\"-\", this.symbols.minusSign);\n // In arab numeral system, their decimal character is 1643, but most keyboards don't type that\n // instead they use the , (44) character or apparently the (1548) character.\n if (this.options.numberingSystem === \"arab\") {\n value = value.replace(\",\", this.symbols.decimal);\n value = value.replace(String.fromCharCode(1548), this.symbols.decimal);\n value = $6c7bd7858deea686$var$replaceAll(value, \".\", this.symbols.group);\n }\n // fr-FR group character is char code 8239, but that's not a key on the french keyboard,\n // so allow 'period' as a group char and replace it with a space\n if (this.options.locale === \"fr-FR\") value = $6c7bd7858deea686$var$replaceAll(value, \".\", String.fromCharCode(8239));\n return value;\n }\n isValidPartialNumber(value, minValue = -Infinity, maxValue = Infinity) {\n value = this.sanitize(value);\n // Remove minus or plus sign, which must be at the start of the string.\n if (value.startsWith(this.symbols.minusSign) && minValue < 0) value = value.slice(this.symbols.minusSign.length);\n else if (this.symbols.plusSign && value.startsWith(this.symbols.plusSign) && maxValue > 0) value = value.slice(this.symbols.plusSign.length);\n // Numbers cannot start with a group separator\n if (value.startsWith(this.symbols.group)) return false;\n // Remove numerals, groups, and decimals\n value = $6c7bd7858deea686$var$replaceAll(value, this.symbols.group, \"\").replace(this.symbols.numeral, \"\").replace(this.symbols.decimal, \"\");\n // The number is valid if there are no remaining characters\n return value.length === 0;\n }\n constructor(locale, options = {}){\n this.formatter = new Intl.NumberFormat(locale, options);\n this.options = this.formatter.resolvedOptions();\n this.symbols = $6c7bd7858deea686$var$getSymbols(this.formatter, this.options, options);\n }\n}\nconst $6c7bd7858deea686$var$nonLiteralParts = new Set([\n \"decimal\",\n \"fraction\",\n \"integer\",\n \"minusSign\",\n \"plusSign\",\n \"group\"\n]);\nfunction $6c7bd7858deea686$var$getSymbols(formatter, intlOptions, originalOptions) {\n var _allParts_find, _posAllParts_find, _allParts_find1, _allParts_find2;\n // Note: some locale's don't add a group symbol until there is a ten thousands place\n let allParts = formatter.formatToParts(-10000.111);\n let posAllParts = formatter.formatToParts(10000.111);\n let singularParts = formatter.formatToParts(1);\n var _allParts_find_value;\n let minusSign = (_allParts_find_value = (_allParts_find = allParts.find((p)=>p.type === \"minusSign\")) === null || _allParts_find === void 0 ? void 0 : _allParts_find.value) !== null && _allParts_find_value !== void 0 ? _allParts_find_value : \"-\";\n let plusSign = (_posAllParts_find = posAllParts.find((p)=>p.type === \"plusSign\")) === null || _posAllParts_find === void 0 ? void 0 : _posAllParts_find.value;\n // Safari does not support the signDisplay option, but our number parser polyfills it.\n // If no plus sign was returned, but the original options contained signDisplay, default to the '+' character.\n // @ts-ignore\n if (!plusSign && ((originalOptions === null || originalOptions === void 0 ? void 0 : originalOptions.signDisplay) === \"exceptZero\" || (originalOptions === null || originalOptions === void 0 ? void 0 : originalOptions.signDisplay) === \"always\")) plusSign = \"+\";\n let decimal = (_allParts_find1 = allParts.find((p)=>p.type === \"decimal\")) === null || _allParts_find1 === void 0 ? void 0 : _allParts_find1.value;\n let group = (_allParts_find2 = allParts.find((p)=>p.type === \"group\")) === null || _allParts_find2 === void 0 ? void 0 : _allParts_find2.value;\n // this set is also for a regex, it's all literals that might be in the string we want to eventually parse that\n // don't contribute to the numerical value\n let pluralLiterals = allParts.filter((p)=>!$6c7bd7858deea686$var$nonLiteralParts.has(p.type)).map((p)=>$6c7bd7858deea686$var$escapeRegex(p.value));\n let singularLiterals = singularParts.filter((p)=>!$6c7bd7858deea686$var$nonLiteralParts.has(p.type)).map((p)=>$6c7bd7858deea686$var$escapeRegex(p.value));\n let sortedLiterals = [\n ...new Set([\n ...singularLiterals,\n ...pluralLiterals\n ])\n ].sort((a, b)=>b.length - a.length);\n let literals = sortedLiterals.length === 0 ? new RegExp(\"[\\\\p{White_Space}]\", \"gu\") : new RegExp(`${sortedLiterals.join(\"|\")}|[\\\\p{White_Space}]`, \"gu\");\n // These are for replacing non-latn characters with the latn equivalent\n let numerals = [\n ...new Intl.NumberFormat(intlOptions.locale, {\n useGrouping: false\n }).format(9876543210)\n ].reverse();\n let indexes = new Map(numerals.map((d, i)=>[\n d,\n i\n ]));\n let numeral = new RegExp(`[${numerals.join(\"\")}]`, \"g\");\n let index = (d)=>String(indexes.get(d));\n return {\n minusSign: minusSign,\n plusSign: plusSign,\n decimal: decimal,\n group: group,\n literals: literals,\n numeral: numeral,\n index: index\n };\n}\nfunction $6c7bd7858deea686$var$replaceAll(str, find, replace) {\n // @ts-ignore\n if (str.replaceAll) // @ts-ignore\n return str.replaceAll(find, replace);\n return str.split(find).join(replace);\n}\nfunction $6c7bd7858deea686$var$escapeRegex(string) {\n return string.replace(/[-/\\\\^$*+?.()|[\\]{}]/g, \"\\\\$&\");\n}\n\n\n\n\nexport {$488c6ddbf4ef74c2$export$cc77c4ff7e8673c5 as NumberFormatter, $6c7bd7858deea686$export$cd11ab140839f11d as NumberParser};\n//# sourceMappingURL=module.js.map\n","import $iFADg$react, {useContext as $iFADg$useContext, useState as $iFADg$useState, useEffect as $iFADg$useEffect, useMemo as $iFADg$useMemo, useRef as $iFADg$useRef, useCallback as $iFADg$useCallback} from \"react\";\nimport {useIsSSR as $iFADg$useIsSSR} from \"@react-aria/ssr\";\nimport {LocalizedStringDictionary as $iFADg$LocalizedStringDictionary, LocalizedStringFormatter as $iFADg$LocalizedStringFormatter} from \"@internationalized/string\";\nimport {DateFormatter as $iFADg$DateFormatter} from \"@internationalized/date\";\nimport {NumberFormatter as $iFADg$NumberFormatter} from \"@internationalized/number\";\n\n/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ /*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ /*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ // https://en.wikipedia.org/wiki/Right-to-left\nconst $148a7a147e38ea7f$var$RTL_SCRIPTS = new Set([\n \"Arab\",\n \"Syrc\",\n \"Samr\",\n \"Mand\",\n \"Thaa\",\n \"Mend\",\n \"Nkoo\",\n \"Adlm\",\n \"Rohg\",\n \"Hebr\"\n]);\nconst $148a7a147e38ea7f$var$RTL_LANGS = new Set([\n \"ae\",\n \"ar\",\n \"arc\",\n \"bcc\",\n \"bqi\",\n \"ckb\",\n \"dv\",\n \"fa\",\n \"glk\",\n \"he\",\n \"ku\",\n \"mzn\",\n \"nqo\",\n \"pnb\",\n \"ps\",\n \"sd\",\n \"ug\",\n \"ur\",\n \"yi\"\n]);\nfunction $148a7a147e38ea7f$export$702d680b21cbd764(locale) {\n // If the Intl.Locale API is available, use it to get the script for the locale.\n // This is more accurate than guessing by language, since languages can be written in multiple scripts.\n // @ts-ignore\n if (Intl.Locale) {\n // @ts-ignore\n let script = new Intl.Locale(locale).maximize().script;\n return $148a7a147e38ea7f$var$RTL_SCRIPTS.has(script);\n }\n // If not, just guess by the language (first part of the locale)\n let lang = locale.split(\"-\")[0];\n return $148a7a147e38ea7f$var$RTL_LANGS.has(lang);\n}\n\n\n/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ \n\n\nfunction $1e5a04cdaf7d1af8$export$f09106e7c6677ec5() {\n // @ts-ignore\n let locale = typeof navigator !== \"undefined\" && (navigator.language || navigator.userLanguage) || \"en-US\";\n try {\n // @ts-ignore\n Intl.DateTimeFormat.supportedLocalesOf([\n locale\n ]);\n } catch (_err) {\n locale = \"en-US\";\n }\n return {\n locale: locale,\n direction: (0, $148a7a147e38ea7f$export$702d680b21cbd764)(locale) ? \"rtl\" : \"ltr\"\n };\n}\nlet $1e5a04cdaf7d1af8$var$currentLocale = $1e5a04cdaf7d1af8$export$f09106e7c6677ec5();\nlet $1e5a04cdaf7d1af8$var$listeners = new Set();\nfunction $1e5a04cdaf7d1af8$var$updateLocale() {\n $1e5a04cdaf7d1af8$var$currentLocale = $1e5a04cdaf7d1af8$export$f09106e7c6677ec5();\n for (let listener of $1e5a04cdaf7d1af8$var$listeners)listener($1e5a04cdaf7d1af8$var$currentLocale);\n}\nfunction $1e5a04cdaf7d1af8$export$188ec29ebc2bdc3a() {\n let isSSR = (0, $iFADg$useIsSSR)();\n let [defaultLocale, setDefaultLocale] = (0, $iFADg$useState)($1e5a04cdaf7d1af8$var$currentLocale);\n (0, $iFADg$useEffect)(()=>{\n if ($1e5a04cdaf7d1af8$var$listeners.size === 0) window.addEventListener(\"languagechange\", $1e5a04cdaf7d1af8$var$updateLocale);\n $1e5a04cdaf7d1af8$var$listeners.add(setDefaultLocale);\n return ()=>{\n $1e5a04cdaf7d1af8$var$listeners.delete(setDefaultLocale);\n if ($1e5a04cdaf7d1af8$var$listeners.size === 0) window.removeEventListener(\"languagechange\", $1e5a04cdaf7d1af8$var$updateLocale);\n };\n }, []);\n // We cannot determine the browser's language on the server, so default to\n // en-US. This will be updated after hydration on the client to the correct value.\n if (isSSR) return {\n locale: \"en-US\",\n direction: \"ltr\"\n };\n return defaultLocale;\n}\n\n\n\nconst $18f2051aff69b9bf$var$I18nContext = /*#__PURE__*/ (0, $iFADg$react).createContext(null);\nfunction $18f2051aff69b9bf$export$a54013f0d02a8f82(props) {\n let { locale: locale , children: children } = props;\n let defaultLocale = (0, $1e5a04cdaf7d1af8$export$188ec29ebc2bdc3a)();\n let value = locale ? {\n locale: locale,\n direction: (0, $148a7a147e38ea7f$export$702d680b21cbd764)(locale) ? \"rtl\" : \"ltr\"\n } : defaultLocale;\n return /*#__PURE__*/ (0, $iFADg$react).createElement($18f2051aff69b9bf$var$I18nContext.Provider, {\n value: value\n }, children);\n}\nfunction $18f2051aff69b9bf$export$43bb16f9c6d9e3f7() {\n let defaultLocale = (0, $1e5a04cdaf7d1af8$export$188ec29ebc2bdc3a)();\n let context = (0, $iFADg$useContext)($18f2051aff69b9bf$var$I18nContext);\n return context || defaultLocale;\n}\n\n\nvar $2aa2084a6c2b6b4f$exports = {};\n\"use strict\";\n\n\n/*\n * Copyright 2022 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ \n\n\nconst $fca6afa0e843324b$var$cache = new WeakMap();\nfunction $fca6afa0e843324b$var$getCachedDictionary(strings) {\n let dictionary = $fca6afa0e843324b$var$cache.get(strings);\n if (!dictionary) {\n dictionary = new (0, $iFADg$LocalizedStringDictionary)(strings);\n $fca6afa0e843324b$var$cache.set(strings, dictionary);\n }\n return dictionary;\n}\nfunction $fca6afa0e843324b$export$f12b703ca79dfbb1(strings) {\n let { locale: locale } = (0, $18f2051aff69b9bf$export$43bb16f9c6d9e3f7)();\n let dictionary = (0, $iFADg$useMemo)(()=>$fca6afa0e843324b$var$getCachedDictionary(strings), [\n strings\n ]);\n return (0, $iFADg$useMemo)(()=>new (0, $iFADg$LocalizedStringFormatter)(locale, dictionary), [\n locale,\n dictionary\n ]);\n}\n\n\n/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ \n\nfunction $33bf17300c498528$export$a2f47a3d2973640(options = {}) {\n let { locale: locale } = (0, $18f2051aff69b9bf$export$43bb16f9c6d9e3f7)();\n // @ts-ignore\n return (0, $iFADg$useMemo)(()=>new Intl.ListFormat(locale, options), [\n locale,\n options\n ]);\n}\n\n\n/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ \n\n\nfunction $896ba0a80a8f4d36$export$85fd5fdf27bacc79(options) {\n // Reuse last options object if it is shallowly equal, which allows the useMemo result to also be reused.\n let lastOptions = (0, $iFADg$useRef)(null);\n if (options && lastOptions.current && $896ba0a80a8f4d36$var$isEqual(options, lastOptions.current)) options = lastOptions.current;\n lastOptions.current = options;\n let { locale: locale } = (0, $18f2051aff69b9bf$export$43bb16f9c6d9e3f7)();\n return (0, $iFADg$useMemo)(()=>new (0, $iFADg$DateFormatter)(locale, options), [\n locale,\n options\n ]);\n}\nfunction $896ba0a80a8f4d36$var$isEqual(a, b) {\n if (a === b) return true;\n let aKeys = Object.keys(a);\n let bKeys = Object.keys(b);\n if (aKeys.length !== bKeys.length) return false;\n for (let key of aKeys){\n if (b[key] !== a[key]) return false;\n }\n return true;\n}\n\n\n/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ \n\n\nfunction $a916eb452884faea$export$b7a616150fdb9f44(options = {}) {\n let { locale: locale } = (0, $18f2051aff69b9bf$export$43bb16f9c6d9e3f7)();\n return (0, $iFADg$useMemo)(()=>new (0, $iFADg$NumberFormatter)(locale, options), [\n locale,\n options\n ]);\n}\n\n\n/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ \nlet $325a3faab7a68acd$var$cache = new Map();\nfunction $325a3faab7a68acd$export$a16aca283550c30d(options) {\n let { locale: locale } = (0, $18f2051aff69b9bf$export$43bb16f9c6d9e3f7)();\n let cacheKey = locale + (options ? Object.entries(options).sort((a, b)=>a[0] < b[0] ? -1 : 1).join() : \"\");\n if ($325a3faab7a68acd$var$cache.has(cacheKey)) return $325a3faab7a68acd$var$cache.get(cacheKey);\n let formatter = new Intl.Collator(locale, options);\n $325a3faab7a68acd$var$cache.set(cacheKey, formatter);\n return formatter;\n}\n\n\n/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ \n\nfunction $bb77f239b46e8c72$export$3274cf84b703fff(options) {\n let collator = (0, $325a3faab7a68acd$export$a16aca283550c30d)({\n usage: \"search\",\n ...options\n });\n // TODO(later): these methods don't currently support the ignorePunctuation option.\n let startsWith = (0, $iFADg$useCallback)((string, substring)=>{\n if (substring.length === 0) return true;\n // Normalize both strings so we can slice safely\n // TODO: take into account the ignorePunctuation option as well...\n string = string.normalize(\"NFC\");\n substring = substring.normalize(\"NFC\");\n return collator.compare(string.slice(0, substring.length), substring) === 0;\n }, [\n collator\n ]);\n let endsWith = (0, $iFADg$useCallback)((string, substring)=>{\n if (substring.length === 0) return true;\n string = string.normalize(\"NFC\");\n substring = substring.normalize(\"NFC\");\n return collator.compare(string.slice(-substring.length), substring) === 0;\n }, [\n collator\n ]);\n let contains = (0, $iFADg$useCallback)((string, substring)=>{\n if (substring.length === 0) return true;\n string = string.normalize(\"NFC\");\n substring = substring.normalize(\"NFC\");\n let scan = 0;\n let sliceLen = substring.length;\n for(; scan + sliceLen <= string.length; scan++){\n let slice = string.slice(scan, scan + sliceLen);\n if (collator.compare(substring, slice) === 0) return true;\n }\n return false;\n }, [\n collator\n ]);\n return (0, $iFADg$useMemo)(()=>({\n startsWith: startsWith,\n endsWith: endsWith,\n contains: contains\n }), [\n startsWith,\n endsWith,\n contains\n ]);\n}\n\n\n\n\nexport {$18f2051aff69b9bf$export$a54013f0d02a8f82 as I18nProvider, $18f2051aff69b9bf$export$43bb16f9c6d9e3f7 as useLocale, $fca6afa0e843324b$export$f12b703ca79dfbb1 as useLocalizedStringFormatter, $33bf17300c498528$export$a2f47a3d2973640 as useListFormatter, $896ba0a80a8f4d36$export$85fd5fdf27bacc79 as useDateFormatter, $a916eb452884faea$export$b7a616150fdb9f44 as useNumberFormatter, $325a3faab7a68acd$export$a16aca283550c30d as useCollator, $bb77f239b46e8c72$export$3274cf84b703fff as useFilter};\n//# sourceMappingURL=real-module.js.map\n","import { ComponentProps } from 'react';\nimport { ValueOf, StylingProps } from '../..';\n\n/**\n * Component variant.\n */\nexport const AlertVariant = {\n success: 'success',\n error: 'error',\n warning: 'warning',\n info: 'info',\n} as const;\nexport type AlertVariant = ValueOf<typeof AlertVariant>;\n\n/**\n * Component props.\n */\nexport interface AlertProps extends ComponentProps<'div'>, StylingProps {\n /** Whether the component can be closed or not. */\n isClosable?: boolean;\n /** Whether the component is closed or not. Used for controlled version. */\n isClosed?: boolean;\n /** Method to handle component change. */\n onClose?(isClosed: boolean): void;\n /** Title. */\n title?: string;\n /** Variant */\n variant?: AlertVariant;\n}\n\nexport type StyledAlertProps = Omit<AlertProps, 'variant'> & {\n $hasTitle: boolean;\n $isClosable: AlertProps['isClosable'];\n $isClosed: AlertProps['isClosed'];\n $variant: AlertProps['variant'];\n};\n","import enUS from './en-US.json';\nimport frFR from './fr-FR.json';\n\nexport default {\n 'en-US': enUS,\n 'fr-FR': frFR,\n};\n","import { ComponentProps } from 'react';\nimport { PressEvent } from '@react-types/shared';\nimport {\n ColorPalette,\n ProductColorPalette,\n StylingProps,\n ValueOf,\n} from '../../types';\n\n/**\n * Component variant.\n */\nexport const IconButtonVariant = {\n primary: 'primary',\n secondary: 'secondary',\n unstyled: 'unstyled',\n} as const;\nexport type IconButtonVariant = ValueOf<typeof IconButtonVariant>;\n\n/**\n * Component color.\n */\nexport type IconButtonColor = ColorPalette | ProductColorPalette;\n\n/**\n * Component props.\n */\nexport interface IconButtonProps\n extends ComponentProps<'button'>,\n StylingProps {\n /** Color variant. */\n color?: IconButtonColor;\n /**\n * Icon path data (`d` property of the `path` SVG element).<br />\n * See <a href=\"https://developer.mozilla.org/en-US/docs/Web/SVG/Tutorial/Paths\">https://developer.mozilla.org/en-US/docs/Web/SVG/Tutorial/Paths</a>.<br />\n * Recommended path data come from mdi/js.<br />\n * See <a href=\"https://www.npmjs.com/package/@mdi/js\">https://www.npmjs.com/package/@mdi/js</a>.\n */\n icon: string;\n /** Whether the component is active or not. */\n isActive?: boolean;\n /** Whether the component is disabled or not. */\n isDisabled?: boolean;\n /** Preferred method to handle click, press and touch. */\n onPress?: (e: PressEvent) => void;\n /** Button variant. */\n variant?: IconButtonVariant;\n}\n\nexport type StyledIconButtonProps = Omit<\n IconButtonProps,\n 'isActive' | 'isDisabled' | 'variant' | 'color' | 'icon'\n> & {\n $color: IconButtonProps['color'];\n $isActive: IconButtonProps['isActive'];\n $isDisabled: IconButtonProps['isDisabled'];\n $variant: IconButtonProps['variant'];\n};\n","import { ComponentProps, ReactElement } from 'react';\nimport {\n ColorPalette,\n LayoutProps,\n PositioningProps,\n ProductColorPalette,\n SpacingProps,\n ValueOf,\n} from '../../types';\n\n/**\n * Component size.\n */\nexport const IconSize = {\n xsmall: 'xsmall',\n small: 'small',\n medium: 'medium',\n large: 'large',\n xlarge: 'xlarge',\n} as const;\nexport type IconSize = ValueOf<typeof IconSize>;\n\n/**\n * Component props.\n */\nexport interface IconProps\n extends ComponentProps<'span'>,\n LayoutProps,\n SpacingProps,\n PositioningProps {\n /** Indicates whether the element is exposed to an accessibility API. */\n 'aria-hidden'?: boolean | 'false' | 'true';\n /** A screen reader only label for the Icon. */\n 'aria-label'?: string;\n /** Color variant. Either from color palette or hex or rgb strings. */\n color?: ColorPalette | ProductColorPalette | string;\n /** Whether the icon has a badge attached to it. */\n badge?: ReactElement;\n /**\n * Icon path data (`d` property of the `path` SVG element).<br />\n * See <a href=\"https://developer.mozilla.org/en-US/docs/Web/SVG/Tutorial/Paths\">https://developer.mozilla.org/en-US/docs/Web/SVG/Tutorial/Paths</a>.<br />\n * Recommended path data come from mdi/js.<br />\n * See <a href=\"https://www.npmjs.com/package/@mdi/js\">https://www.npmjs.com/package/@mdi/js</a>.\n */\n icon: string;\n /** Icon size. */\n size?: IconSize;\n /** Additional properties to forward to the SVG tag. */\n svgProps?: ComponentProps<'svg'>;\n}\n\nexport type StyledIconProps = Omit<\n IconProps,\n 'color' | 'size' | 'icon' | 'svgProps'\n> & {\n $color: IconProps['color'];\n $size: IconProps['size'];\n};\n","import { css } from 'styled-components';\nimport {\n LayoutProps,\n SpacingProps,\n SizingProps,\n PositioningProps,\n FlexLayoutProps,\n GridLayoutProps,\n StylingProps,\n ContainerProps,\n InternalSpacingProps,\n} from '../../types';\n\nexport const baseLayout = css<LayoutProps>`\n ${({\n flex,\n flexGrow,\n flexShrink,\n flexBasis,\n alignSelf,\n justifySelf,\n order,\n gridArea,\n gridColumn,\n gridRow,\n gridColumnStart,\n gridColumnEnd,\n gridRowStart,\n gridRowEnd,\n }) =>\n css`\n ${flex ? `flex: ${flex};` : ''}\n ${flexGrow !== undefined ? `flex-grow: ${flexGrow};` : ''}\n ${flexShrink !== undefined ? `flex-shrink: ${flexShrink};` : ''}\n ${flexBasis ? `flex-basis: ${flexBasis};` : ''}\n ${alignSelf ? `align-self: ${alignSelf};` : ''}\n ${justifySelf ? `justify-self: ${justifySelf};` : ''}\n ${order !== undefined ? `order: ${order};` : ''}\n ${gridArea ? `grid-area: ${gridArea};` : ''}\n ${gridColumn ? `grid-column: ${gridColumn};` : ''}\n ${gridRow ? `grid-row: ${gridRow};` : ''}\n ${gridColumnStart ? `grid-column-start: ${gridColumnStart};` : ''}\n ${gridColumnEnd ? `grid-column-end: ${gridColumnEnd};` : ''}\n ${gridRowStart ? `grid-row-start: ${gridRowStart};` : ''}\n ${gridRowEnd ? `grid-row-end: ${gridRowEnd};` : ''}\n `}\n`;\n\nexport const baseSpacing = css<SpacingProps>`\n ${({ margin, marginBottom, marginLeft, marginRight, marginTop }) =>\n css`\n ${margin ? `margin: ${margin};` : ''}\n ${marginBottom ? `margin-bottom: ${marginBottom};` : ''}\n ${marginLeft ? `margin-left: ${marginLeft};` : ''}\n ${marginRight ? `margin-right: ${marginRight};` : ''}\n ${marginTop ? `margin-top: ${marginTop};` : ''}\n `}\n`;\n\nexport const baseInternalSpacing = css<InternalSpacingProps>`\n ${({ padding, paddingBottom, paddingLeft, paddingRight, paddingTop }) =>\n css`\n ${padding ? `padding: ${padding};` : ''}\n ${paddingBottom ? `padding-bottom: ${paddingBottom};` : ''}\n ${paddingLeft ? `padding-left: ${paddingLeft};` : ''}\n ${paddingRight ? `padding-right: ${paddingRight};` : ''}\n ${paddingTop ? `padding-top: ${paddingTop};` : ''}\n `}\n`;\n\nexport const baseSizing = css<SizingProps>`\n ${({ height, maxHeight, maxWidth, minHeight, minWidth, width }) =>\n css`\n ${height !== undefined\n ? `height: ${typeof height === 'number' ? `${height}px` : height};`\n : ''}\n ${maxHeight ? `max-height: ${maxHeight};` : ''}\n ${maxWidth ? `max-width: ${maxWidth};` : ''}\n ${minHeight ? `min-height: ${minHeight};` : ''}\n ${minWidth ? `min-width: ${minWidth};` : ''}\n ${width !== undefined\n ? `width: ${typeof width === 'number' ? `${width}px` : width};`\n : ''}\n `}\n`;\n\nexport const basePositioning = css<PositioningProps>`\n ${({ position, top, bottom, left, right, zIndex }) =>\n css`\n ${position ? `position: ${position};` : ''}\n ${top ? `top: ${top};` : ''}\n ${bottom ? `bottom: ${bottom};` : ''}\n ${left ? `left: ${left};` : ''}\n ${right ? `right: ${right};` : ''}\n ${zIndex ? `z-index: ${zIndex};` : ''}\n `}\n`;\n\nexport const baseFlexbox = css<FlexLayoutProps>`\n ${({\n alignContent,\n alignItems,\n flexDirection,\n flexWrap,\n gap,\n justifyContent,\n }) =>\n css`\n ${alignContent ? `align-content: ${alignContent};` : ''}\n ${alignItems ? `align-items: ${alignItems};` : ''}\n ${flexDirection ? `flex-direction: ${flexDirection};` : ''}\n ${flexWrap ? `flex-wrap: ${flexWrap};` : ''}\n gap: ${gap};\n ${justifyContent ? `justify-content: ${justifyContent};` : ''}\n `}\n`;\n\nexport const baseGrid = css<GridLayoutProps>`\n ${({\n alignContent,\n alignItems,\n gap,\n gridAutoColumns,\n gridAutoRows,\n gridTemplateAreas,\n gridTemplateColumns,\n gridTemplateRows,\n justifyContent,\n justifyItems,\n }) =>\n css`\n ${alignContent ? `align-content: ${alignContent};` : ''}\n ${alignItems ? `align-items: ${alignItems};` : ''}\n ${gap ? `gap: ${gap};` : ''}\n ${gridAutoColumns ? `grid-auto-columns: ${gridAutoColumns};` : ''}\n ${gridAutoRows ? `grid-auto-rows: ${gridAutoRows};` : ''}\n ${gridTemplateAreas ? `grid-template-areas: ${gridTemplateAreas};` : ''}\n ${gridTemplateColumns\n ? `grid-template-columns: ${gridTemplateColumns};`\n : ''}\n ${gridTemplateRows ? `grid-template-rows: ${gridTemplateRows};` : ''}\n ${justifyContent ? `justify-content: ${justifyContent};` : ''}\n ${justifyItems ? `justify-items: ${justifyItems};` : ''}\n `}\n`;\n\nexport const baseStyling = css<StylingProps>`\n font-family: var(--redsift-typography-body-font-family);\n font-size: var(--redsift-typography-body-font-size);\n font-weight: var(--redsift-typography-body-font-weight);\n line-height: var(--redsift-typography-body-line-height);\n color: var(--redsift-color-neutral-black);\n\n ${baseLayout}\n ${baseSpacing}\n ${baseSizing}\n ${basePositioning}\n`;\n\nexport const baseContainer = css<ContainerProps>`\n ${({ display }) => (display ? `display: ${display};` : '')}\n font-family: var(--redsift-typography-body-font-family);\n font-size: var(--redsift-typography-body-font-size);\n font-weight: var(--redsift-typography-body-font-weight);\n line-height: var(--redsift-typography-body-line-height);\n color: var(--redsift-color-neutral-black);\n\n ${baseInternalSpacing}\n ${baseFlexbox}\n ${baseGrid}\n`;\n","import styled, { css } from 'styled-components';\nimport { ColorPalette, ProductColorPalette } from '../../types';\nimport { baseStyling } from '../shared';\nimport { StyledIconProps, IconSize } from './types';\n\n/**\n * Component style.\n */\nexport const StyledIcon = styled.span<StyledIconProps>`\n position: relative;\n ${baseStyling}\n\n font-style: normal;\n\n svg {\n vertical-align: -0.125em;\n }\n\n ${({ $color }) =>\n $color &&\n [...Object.keys(ColorPalette), ...Object.keys(ProductColorPalette)].indexOf(\n $color\n ) !== -1\n ? css`\n color: var(--redsift-color-${$color}-primary);\n `\n : css`\n color: ${$color || css`var(--redsift-color-neutral-darkgrey)`};\n `}\n\n ${({ $size }) => {\n switch ($size) {\n case IconSize.xlarge:\n return css`\n font-size: 40px;\n height: 40px;\n line-height: 40px;\n width: 40px;\n\n & .redsift-badge-standard {\n position: absolute;\n right: -24px;\n top: -2px;\n }\n\n & .redsift-badge-dot {\n position: absolute;\n right: -14px;\n top: 6px;\n }\n `;\n case IconSize.large:\n return css`\n font-size: 28px;\n height: 28px;\n line-height: 28px;\n width: 28px;\n\n & .redsift-badge-standard {\n position: absolute;\n right: -24px;\n top: -4px;\n }\n\n & .redsift-badge-dot {\n position: absolute;\n right: -14px;\n top: 2px;\n }\n `;\n case IconSize.small:\n return css`\n font-size: 20px;\n height: 20px;\n line-height: 20px;\n width: 20px;\n\n & .redsift-badge-standard {\n position: absolute;\n right: -24px;\n top: -8px;\n }\n\n & .redsift-badge-dot {\n position: absolute;\n right: -14px;\n top: 1px;\n }\n `;\n case IconSize.xsmall:\n return css`\n font-size: 16px;\n height: 16px;\n line-height: 16px;\n width: 16px;\n\n & .redsift-badge-standard {\n position: absolute;\n right: -24px;\n top: -12px;\n }\n\n & .redsift-badge-dot {\n position: absolute;\n right: -14px;\n top: -1px;\n }\n `;\n case IconSize.medium:\n default:\n return css`\n font-size: 24px;\n height: 24px;\n line-height: 24px;\n width: 24px;\n\n & .redsift-badge-standard {\n position: absolute;\n right: -24px;\n top: -5px;\n }\n\n & .redsift-badge-dot {\n position: absolute;\n right: -14px;\n top: 1px;\n }\n `;\n }\n }}\n`;\n","import React, { forwardRef, RefObject } from 'react';\nimport classNames from 'classnames';\nimport { Comp } from '../../types';\nimport { StyledIcon } from './styles';\nimport { IconProps, IconSize } from './types';\n\nconst COMPONENT_NAME = 'Icon';\nconst CLASSNAME = 'redsift-icon';\nconst DEFAULT_PROPS: Partial<IconProps> = {\n size: IconSize.medium,\n};\n\n/**\n * The Icon component.\n */\nexport const Icon: Comp<IconProps, HTMLSpanElement> = forwardRef(\n (props, ref) => {\n const {\n 'aria-hidden': ariaHidden,\n 'aria-label': ariaLabel,\n badge,\n className,\n color,\n icon,\n size,\n svgProps,\n ...forwardedProps\n } = props;\n\n return (\n <StyledIcon\n {...forwardedProps}\n $color={color}\n $size={size}\n aria-hidden={ariaLabel ? (ariaHidden ? ariaHidden : undefined) : true}\n aria-label={ariaLabel}\n className={classNames(Icon.className, className)}\n ref={ref as RefObject<HTMLSpanElement>}\n >\n <svg\n {...svgProps}\n aria-hidden={ariaLabel ? (ariaHidden ? ariaHidden : undefined) : true}\n aria-label={ariaLabel}\n focusable=\"false\"\n height=\"1em\"\n preserveAspectRatio=\"xMidYMid meet\"\n role=\"img\"\n viewBox=\"0 0 24 24\"\n width=\"1em\"\n >\n <path d={icon} fill=\"currentColor\" />\n </svg>\n {badge ? badge : null}\n </StyledIcon>\n );\n }\n);\nIcon.className = CLASSNAME;\nIcon.defaultProps = DEFAULT_PROPS;\nIcon.displayName = COMPONENT_NAME;\n","import { ComponentProps } from 'react';\nimport { PressEvent } from '@react-types/shared';\nimport {\n ColorPalette,\n ProductColorPalette,\n StylingProps,\n ValueOf,\n} from '../../types';\n\n/**\n * Component variant.\n */\nexport const ButtonVariant = {\n primary: 'primary',\n secondary: 'secondary',\n unstyled: 'unstyled',\n} as const;\nexport type ButtonVariant = ValueOf<typeof ButtonVariant>;\n\n/**\n * Component color.\n */\nexport type ButtonColor = ColorPalette | ProductColorPalette;\n\n/**\n * Component props.\n */\nexport interface ButtonProps extends ComponentProps<'button'>, StylingProps {\n /** Color variant. The product colors are available but should only be used to display the Button in the color of another product. To display a Button with a color of the current product, use `default`. */\n color?: ButtonColor;\n /** Whether the component take the full width or not. */\n fullWidth?: boolean;\n /** Whether the component is active or not. */\n isActive?: boolean;\n /** Whether the component is disabled or not. */\n isDisabled?: boolean;\n /** Whether the component is in a loading state or not. */\n isLoading?: boolean;\n /**\n * Icon path data (`d` property of the `path` SVG element).<br />\n * See <a href=\"https://developer.mozilla.org/en-US/docs/Web/SVG/Tutorial/Paths\">https://developer.mozilla.org/en-US/docs/Web/SVG/Tutorial/Paths</a>.<br />\n * Recommended path data come from mdi/js.<br />\n * See <a href=\"https://www.npmjs.com/package/@mdi/js\">https://www.npmjs.com/package/@mdi/js</a>.\n */\n leftIcon?: string;\n /** Preferred method to handle click, press and touch. */\n onPress?: (e: PressEvent) => void;\n /**\n * Icon path data (`d` property of the `path` SVG element).<br />\n * See <a href=\"https://developer.mozilla.org/en-US/docs/Web/SVG/Tutorial/Paths\">https://developer.mozilla.org/en-US/docs/Web/SVG/Tutorial/Paths</a>.<br />\n * Recommended path data come from mdi/js.<br />\n * See <a href=\"https://www.npmjs.com/package/@mdi/js\">https://www.npmjs.com/package/@mdi/js</a>.\n */\n rightIcon?: string;\n /** Button variant. */\n variant?: ButtonVariant;\n}\n\nexport type StyledButtonProps = Omit<\n ButtonProps,\n 'isActive' | 'isDisabled' | 'variant' | 'color' | 'size' | 'fullWidth'\n> & {\n $color: ButtonProps['color'];\n $fullWidth?: ButtonProps['fullWidth'];\n $isActive: ButtonProps['isActive'];\n $isDisabled: ButtonProps['isDisabled'];\n $variant: ButtonProps['variant'];\n};\n","import styled, { css } from 'styled-components';\nimport { baseStyling } from '../shared';\nimport { StyledButtonProps, ButtonVariant } from './types';\n\n/**\n * Component style.\n */\nexport const StyledButton = styled.button<StyledButtonProps>`\n ${baseStyling}\n\n align-items: center;\n background: none;\n border: none;\n display: flex;\n font-family: var(--redsift-typography-button-font-family);\n font-size: var(--redsift-typography-button-font-size);\n font-weight: var(--redsift-typography-button-font-weight);\n gap: 8px;\n justify-content: center;\n line-height: var(--redsift-typography-button-line-height);\n text-decoration: none;\n text-transform: var(--redsift-typography-button-text-transform);\n\n ${({ $variant, $color, $isActive, $isDisabled }) => css`\n padding: ${$variant === ButtonVariant.secondary ? '7px 15px' : '8px 16px'};\n\n ${$variant === ButtonVariant.secondary\n ? css`\n background-color: ${$isActive\n ? `var(--redsift-color-${$color}-active)`\n : $isDisabled\n ? 'var(--redsift-color-neutral-white)'\n : 'var(--redsift-color-neutral-white)'};\n &,\n .redsift-icon {\n color: ${$isDisabled\n ? 'var(--redsift-color-neutral-midgrey)'\n : `var(--redsift-color-${$color}-primary)`};\n }\n `\n : $variant === ButtonVariant.unstyled\n ? css`\n background-color: ${$isActive\n ? `var(--redsift-color-${$color}-active)`\n : $isDisabled\n ? 'none'\n : 'none'};\n &,\n .redsift-icon {\n color: ${$isDisabled\n ? 'var(--redsift-color-neutral-midgrey)'\n : `var(--redsift-color-${$color}-primary)`};\n }\n `\n : css`\n background-color: ${$isActive\n ? `var(--redsift-color-${$color}-primary-active)`\n : $isDisabled\n ? 'var(--redsift-color-neutral-lightgrey)'\n : `var(--redsift-color-${$color}-primary)`};\n &,\n .redsift-icon {\n color: ${$isDisabled\n ? 'var(--redsift-color-neutral-midgrey)'\n : 'var(--redsift-color-neutral-white)'};\n }\n `}\n\n ${$variant === ButtonVariant.secondary\n ? css`\n border: 1px solid\n ${$isDisabled\n ? 'var(--redsift-color-neutral-midgrey)'\n : `var(--redsift-color-${$color}-primary)`};\n `\n : ''}\n `};\n\n &:hover,\n &:focus-visible {\n outline: none;\n\n ${({ $variant, $color, $isActive, $isDisabled }) => css`\n cursor: ${$isDisabled ? 'default' : 'pointer'};\n\n ${$variant === ButtonVariant.secondary\n ? css`\n background-color: ${$isActive\n ? `var(--redsift-color-${$color}-active-hover)`\n : $isDisabled\n ? 'var(--redsift-color-neutral-white)'\n : `var(--redsift-color-${$color}-hover)`};\n &,\n .redsift-icon {\n color: ${$isDisabled\n ? 'var(--redsift-color-neutral-midgrey)'\n : `var(--redsift-color-${$color}-secondary)`};\n }\n `\n : $variant === ButtonVariant.unstyled\n ? css`\n background-color: ${$isActive\n ? `var(--redsift-color-${$color}-active-hover)`\n : $isDisabled\n ? 'none'\n : `var(--redsift-color-${$color}-hover)`};\n &,\n .redsift-icon {\n color: ${$isDisabled\n ? 'var(--redsift-color-neutral-midgrey)'\n : `var(--redsift-color-${$color}-secondary)`};\n }\n `\n : css`\n background-color: ${$isActive\n ? `var(--redsift-color-${$color}-primary-active-hover)`\n : $isDisabled\n ? 'var(--redsift-color-neutral-lightgrey)'\n : `var(--redsift-color-${$color}-secondary)`};\n &,\n .redsift-icon {\n color: ${$isDisabled\n ? 'var(--redsift-color-neutral-midgrey)'\n : 'var(--redsift-color-neutral-white)'};\n }\n `}\n\n ${$variant === ButtonVariant.secondary\n ? css`\n border: 1px solid\n ${$isDisabled\n ? 'var(--redsift-color-neutral-midgrey)'\n : `var(--redsift-color-${$color}-primary)`};\n `\n : `\n border: none;\n `}\n `};\n }\n\n ${({ $fullWidth }) =>\n $fullWidth\n ? `\n width: 100%;\n flex-grow: 1;\n\n .redsift-icon.left {\n margin-right: unset;\n }\n\n .redsift-icon.right {\n margin-left: unset;\n }\n `\n : ''}\n`;\n","import enUS from './en-US.json';\nimport frFR from './fr-FR.json';\n\nexport default {\n 'en-US': enUS,\n 'fr-FR': frFR,\n};\n","import { ComponentProps } from 'react';\nimport {\n ColorPalette,\n LayoutProps,\n PositioningProps,\n ProductColorPalette,\n SpacingProps,\n ValueOf,\n} from '../../types';\n\n/**\n * Component size.\n */\nexport const SpinnerSize = {\n xsmall: 'xsmall',\n small: 'small',\n medium: 'medium',\n large: 'large',\n} as const;\nexport type SpinnerSize = ValueOf<typeof SpinnerSize>;\n\n/**\n * Component color.\n */\nexport type SpinnerColor =\n | typeof ColorPalette.default\n | typeof ColorPalette.question\n | typeof ColorPalette['no-data']\n | ProductColorPalette;\n\n/**\n * Component props.\n */\nexport interface SpinnerProps\n extends ComponentProps<'img'>,\n LayoutProps,\n SpacingProps,\n PositioningProps {\n /** Indicates whether the element is exposed to an accessibility API. */\n 'aria-hidden'?: boolean | 'false' | 'true';\n /** A screen reader only label for the Spinner. */\n 'aria-label'?: string;\n /** Color variant. The product colors are available but should only be used to display the Spinner in the color of another product. To display a Spinner with a color of the current product, use `default`. */\n color?: SpinnerColor;\n /** Spinner size. */\n size?: SpinnerSize;\n}\n\nexport type StyledSpinnerProps = Omit<SpinnerProps, 'color'> & {\n $color?: SpinnerProps['color'];\n $size?: SpinnerProps['size'];\n};\n","import styled from 'styled-components';\nimport { baseStyling } from '../shared';\nimport { StyledSpinnerProps } from './types';\n\nexport const StyledSpinner = styled.img<StyledSpinnerProps>`\n ${baseStyling}\n\n display: inline;\n line-height: 0px;\n vertical-align: -0.125em;\n`;\n","import React from 'react';\nimport { AppContainerState } from './types';\n\nexport const AppContainerContext =\n React.createContext<AppContainerState | null>(null);\n","import styled, { css } from 'styled-components';\nimport { ProductColorPalette } from '../../types';\nimport { StyledAppContainerProps } from './types';\n\n/**\n * Component style.\n */\nexport const StyledAppContainer = styled.div<StyledAppContainerProps>`\n overflow: hidden;\n\n ${({ $productTheme }) =>\n $productTheme &&\n Object.keys(ProductColorPalette).indexOf($productTheme) !== -1\n ? css`\n --redsift-color-default-primary: var(\n --redsift-color-${$productTheme}-primary\n );\n --redsift-color-default-secondary: var(\n --redsift-color-${$productTheme}-secondary\n );\n --redsift-color-default-hover: var(\n --redsift-color-${$productTheme}-hover\n );\n --redsift-color-default-active: var(\n --redsift-color-${$productTheme}-active\n );\n --redsift-color-default-active-hover: var(\n --redsift-color-${$productTheme}-active-hover\n );\n --redsift-color-default-primary-active: var(\n --redsift-color-${$productTheme}-primary-active\n );\n `\n : ''}\n`;\n","import React, { forwardRef, RefObject, useMemo, useState } from 'react';\nimport { I18nProvider } from 'react-aria';\nimport classNames from 'classnames';\nimport { Comp } from '../../types';\nimport { AppContainerProps } from './types';\nimport { AppContainerContext } from './context';\nimport { StyledAppContainer } from './styles';\nimport { partitionComponents } from '../../utils/partitionComponents';\nimport { isComponent } from '../../utils/isComponent';\n\nconst COMPONENT_NAME = 'AppContainer';\nconst CLASSNAME = 'redsift-app-container';\nconst DEFAULT_PROPS: Partial<AppContainerProps> = {};\n\n/**\n * The AppContainer component.\n */\nexport const AppContainer: Comp<AppContainerProps, HTMLDivElement> = forwardRef(\n (props, ref) => {\n const { children, className, locale, productTheme, ...forwardedProps } =\n props;\n\n const { hasAppBar, hasAppSidePanel, hasAppContent } = useMemo(() => {\n const [[appBar], [appSidePanel], [appContent]] = partitionComponents(\n React.Children.toArray(children),\n [\n isComponent('AppBar'),\n isComponent('AppSidePanel'),\n isComponent('AppContent'),\n ]\n );\n\n return {\n hasAppBar: Boolean(appBar),\n hasAppSidePanel: Boolean(appSidePanel),\n hasAppContent: Boolean(appContent),\n };\n }, [children]);\n\n if (\n (hasAppBar || hasAppSidePanel || hasAppContent) &&\n !(hasAppBar && hasAppSidePanel && hasAppContent)\n ) {\n console.warn(\n 'Missing AppSidePanel, AppBar or AppContent inside AppContainer. These components are meant to work together.'\n );\n }\n\n const [isSidePanelCollapsed, setIsSidePanelCollapsed] =\n useState<boolean>(false);\n const [title, setTitle] = useState<string | undefined>();\n\n const state = {\n collapseSidePanel() {\n setIsSidePanelCollapsed(true);\n },\n expandSidePanel() {\n setIsSidePanelCollapsed(false);\n },\n hasAppBar,\n hasAppSidePanel,\n hasAppContent,\n setTitle(title: string) {\n setTitle(title);\n },\n isSidePanelCollapsed,\n productTheme,\n title,\n };\n\n return (\n <StyledAppContainer\n {...forwardedProps}\n id=\"redsift-app-container\"\n $productTheme={productTheme}\n className={classNames(AppContainer.className, className)}\n ref={ref as RefObject<HTMLDivElement>}\n >\n <AppContainerContext.Provider value={state}>\n <I18nProvider locale={locale}>{children}</I18nProvider>\n </AppContainerContext.Provider>\n </StyledAppContainer>\n );\n }\n);\nAppContainer.className = CLASSNAME;\nAppContainer.defaultProps = DEFAULT_PROPS;\nAppContainer.displayName = COMPONENT_NAME;\n","import React, { forwardRef, RefObject, useContext } from 'react';\nimport classNames from 'classnames';\nimport { ColorPalette, Comp } from '../../types';\n\nimport { useLocalizedStringFormatter } from 'react-aria';\nimport intlMessages from './intl';\n\nimport { SpinnerProps, SpinnerSize } from './types';\nimport { StyledSpinner } from './styles';\nimport { AppContainerContext } from '../app-container';\n\nimport spinnerDefault from './images/spinner-default.svg';\nimport spinnerHardenize from './images/spinner-hardenize.svg';\nimport spinnerNoData from './images/spinner-no-data.svg';\nimport spinnerOndmarc from './images/spinner-ondmarc.svg';\nimport spinnerOndomain from './images/spinner-ondomain.svg';\nimport spinnerOninbox from './images/spinner-oninbox.svg';\nimport spinnerQuestion from './images/spinner-question.svg';\nimport spinnerTools from './images/spinner-tools.svg';\nimport spinnerWebsite from './images/spinner-website.svg';\n\nconst colorToFile = {\n default: spinnerDefault,\n hardenize: spinnerHardenize,\n 'no-data': spinnerNoData,\n ondmarc: spinnerOndmarc,\n ondomain: spinnerOndomain,\n oninbox: spinnerOninbox,\n question: spinnerQuestion,\n tools: spinnerTools,\n website: spinnerWebsite,\n};\n\nconst COMPONENT_NAME = 'Spinner';\nconst CLASSNAME = 'redsift-shield';\nconst DEFAULT_PROPS: Partial<SpinnerProps> = {\n color: ColorPalette.default,\n size: SpinnerSize.medium,\n};\n\nconst sizeToDimension = (\n size: SpinnerSize\n): { width: number; height: number } => {\n switch (size) {\n case SpinnerSize.xsmall:\n return { width: 15, height: 15 };\n case SpinnerSize.small:\n return { width: 24, height: 24 };\n case SpinnerSize.large:\n return { width: 56, height: 56 };\n case SpinnerSize.medium:\n default:\n return { width: 40, height: 40 };\n }\n};\n\n/**\n * The Spinner component.\n */\nexport const Spinner: Comp<SpinnerProps, HTMLImageElement> = forwardRef(\n (props, ref) => {\n const {\n 'aria-hidden': ariaHidden,\n 'aria-label': ariaLabel,\n className,\n color: propsColor,\n size,\n ...forwardedProps\n } = props;\n\n const { width, height } = sizeToDimension(size!);\n const appContainerState = useContext(AppContainerContext);\n const color =\n propsColor === ColorPalette.default &&\n appContainerState &&\n appContainerState.productTheme\n ? appContainerState.productTheme\n : propsColor;\n\n const stringFormatter = useLocalizedStringFormatter(intlMessages);\n\n return (\n <StyledSpinner\n alt={stringFormatter.format('loading')}\n {...forwardedProps}\n aria-hidden={ariaLabel ? (ariaHidden ? ariaHidden : undefined) : true}\n aria-label={ariaLabel}\n className={classNames(Spinner.className, className)}\n height={height}\n ref={ref as RefObject<HTMLImageElement>}\n src={colorToFile[color!]}\n width={width}\n $color={color}\n $size={size}\n />\n );\n }\n);\nSpinner.className = CLASSNAME;\nSpinner.defaultProps = DEFAULT_PROPS;\nSpinner.displayName = COMPONENT_NAME;\n","import React, { forwardRef, RefObject, useRef } from 'react';\nimport classNames from 'classnames';\nimport { useButton, AriaButtonProps } from 'react-aria';\nimport { ColorPalette, Comp } from '../../types';\nimport { Icon } from '../../components/icon';\nimport { StyledButton } from './styles';\nimport { ButtonProps, ButtonVariant } from './types';\nimport { Spinner } from '../../components/spinner';\n\nconst COMPONENT_NAME = 'Button';\nconst CLASSNAME = 'redsift-button';\nconst DEFAULT_PROPS: Partial<ButtonProps> = {\n color: ColorPalette.default,\n height: 'fit-content',\n variant: ButtonVariant.primary,\n};\n\n/**\n * The Button is a semantic button that looks like a button.\n *\n * For a semantic link that looks like a button, please use the ButtonLink component.\n * For a semantic link that looks like a link, please use the Link component.\n * For a semantic button that looks like a link, please use the LinkButton component.\n */\nexport const Button: Comp<ButtonProps, HTMLButtonElement> = forwardRef(\n (props, ref) => {\n const buttonRef = ref || useRef<HTMLButtonElement>();\n const { buttonProps, isPressed } = useButton(\n {\n ...props,\n isDisabled: props.isLoading || props.isDisabled || props.disabled,\n preventFocusOnPress: true,\n } as AriaButtonProps<'button'>,\n buttonRef as RefObject<HTMLButtonElement>\n );\n\n const {\n children,\n className,\n color,\n disabled,\n fullWidth,\n isActive,\n isDisabled,\n isLoading,\n leftIcon,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n onPress,\n rightIcon,\n variant,\n ...forwardedProps\n } = props;\n\n return (\n <StyledButton\n {...forwardedProps}\n {...buttonProps}\n $color={color}\n $fullWidth={fullWidth}\n $isActive={isActive || isPressed}\n $isDisabled={isLoading || isDisabled || disabled}\n $variant={variant}\n aria-disabled={isLoading || isDisabled || disabled}\n className={classNames(Button.className, className)}\n disabled={isLoading || isDisabled || disabled}\n ref={buttonRef as RefObject<HTMLButtonElement>}\n >\n {leftIcon ? (\n <Icon icon={leftIcon} aria-hidden=\"true\" className=\"left\" />\n ) : null}\n {isLoading ? <Spinner size=\"small\" color=\"no-data\" /> : null}\n {children}\n {rightIcon ? (\n <Icon icon={rightIcon} aria-hidden=\"true\" className=\"right\" />\n ) : null}\n </StyledButton>\n );\n }\n);\nButton.className = CLASSNAME;\nButton.defaultProps = DEFAULT_PROPS;\nButton.displayName = COMPONENT_NAME;\n","import styled, { css } from 'styled-components';\nimport { StyledButton } from '../button';\nimport { IconButtonVariant, StyledIconButtonProps } from './types';\n\n/**\n * Component style.\n */\nexport const StyledIconButton = styled(StyledButton)<StyledIconButtonProps>`\n ${({ $variant }) => css`\n padding: ${$variant === IconButtonVariant.secondary ? '8px' : '9px'};\n `};\n`;\n","import React, { forwardRef, RefObject, useRef } from 'react';\nimport classNames from 'classnames';\nimport { useButton, AriaButtonProps } from 'react-aria';\nimport { ColorPalette, Comp } from '../../types';\nimport { Icon } from '../icon';\nimport { warnIfNoAccessibleLabelFound } from '../../utils/warnIfNoAccessibleLabelFound';\nimport { StyledIconButton } from './styles';\nimport { IconButtonProps, IconButtonVariant } from './types';\n\nconst COMPONENT_NAME = 'IconButton';\nconst CLASSNAME = 'redsift-icon-button';\nconst DEFAULT_PROPS: Partial<IconButtonProps> = {\n color: ColorPalette.default,\n height: 'fit-content',\n variant: IconButtonVariant.unstyled,\n};\n\n/**\n * The Icon Button is a component that contains only one icon as a child, without text.\n *\n * This component should use aria-label, aria-labelledby or aria-describedby to make this\n * component usable with a screen reader.\n */\nexport const IconButton: Comp<IconButtonProps, HTMLButtonElement> = forwardRef(\n (props, ref) => {\n const buttonRef = ref || useRef<HTMLButtonElement>();\n const { buttonProps, isPressed } = useButton(\n {\n ...props,\n isDisabled: props.isDisabled || props.disabled,\n preventFocusOnPress: true,\n } as AriaButtonProps<'button'>,\n buttonRef as RefObject<HTMLButtonElement>\n );\n\n const {\n className,\n color,\n disabled,\n icon,\n isActive,\n isDisabled,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n onPress,\n variant,\n ...forwardedProps\n } = props;\n\n warnIfNoAccessibleLabelFound(props);\n\n return (\n <StyledIconButton\n {...forwardedProps}\n {...buttonProps}\n $color={isDisabled || disabled ? undefined : color}\n $isActive={isActive || isPressed}\n $isDisabled={isDisabled || disabled}\n $variant={variant}\n aria-disabled={isDisabled || disabled}\n className={classNames(IconButton.className, className)}\n disabled={isDisabled || disabled}\n ref={buttonRef as RefObject<HTMLButtonElement>}\n >\n <Icon icon={icon} color={isDisabled || disabled ? undefined : color} />\n </StyledIconButton>\n );\n }\n);\nIconButton.className = CLASSNAME;\nIconButton.defaultProps = DEFAULT_PROPS;\nIconButton.displayName = COMPONENT_NAME;\n","import styled, { css } from 'styled-components';\nimport { baseStyling } from '../shared';\nimport { StyledAlertProps } from './types';\n\n/**\n * Component style.\n */\nexport const StyledAlert = styled.div<StyledAlertProps>`\n ${baseStyling}\n\n padding: 16px;\n ${({ $hasTitle, $isClosable, $isClosed, $variant }) => css`\n display: ${!$isClosed ? 'block' : 'none'};\n background-color: var(--redsift-color-${$variant}-hover);\n\n .redsift-alert__header {\n h5 {\n line-height: 26px;\n }\n }\n\n .redsift-alert-header__icon-button {\n padding: 0px;\n .redsift-icon {\n color: var(--redsift-color-neutral-black);\n }\n\n &:hover,\n &:focus-visible {\n background-color: var(--redsift-color-${$variant}-active);\n }\n }\n\n .redsift-alert__content {\n margin-top: ${$hasTitle ? '8px' : '-24px'};\n margin-left: 38px;\n ${$isClosable\n ? css`\n margin-right: 24px;\n `\n : ''};\n }\n `}\n`;\n","import { ComponentProps } from 'react';\nimport { ValueOf } from '../../types';\nimport { StylingProps } from '../../types';\n\n/**\n * Component variant.\n */\nexport const HeadingVariant = {\n h1: 'h1',\n h2: 'h2',\n h3: 'h3',\n h4: 'h4',\n h5: 'h5',\n body: 'body',\n} as const;\nexport type HeadingVariant = ValueOf<typeof HeadingVariant>;\n\nexport const HeadingComponent = {\n h1: 'h1',\n h2: 'h2',\n h3: 'h3',\n h4: 'h4',\n h5: 'h5',\n span: 'span',\n} as const;\nexport type HeadingComponent = ValueOf<typeof HeadingComponent>;\n\n/**\n * Component props.\n */\nexport interface HeadingProps extends ComponentProps<'span'>, StylingProps {\n /** The actual component rendered in the DOM. */\n as: HeadingComponent;\n /** Whether the text will truncate with a text overflow ellipsis or wrap. */\n noWrap?: boolean;\n /** The component the Heading will look like. */\n variant?: HeadingVariant;\n}\n\nexport type StyledHeadingProps = Omit<HeadingProps, 'color' | 'noWrap'> & {\n $noWrap: HeadingProps['noWrap'];\n $variant: HeadingProps['variant'];\n};\n","import styled, { css } from 'styled-components';\nimport { baseStyling } from '../shared';\nimport { StyledHeadingProps } from './types';\n\n/**\n * Component style.\n */\nexport const StyledHeading = styled.span<StyledHeadingProps>`\n margin: 0;\n padding: 0;\n border: 0;\n font-size: 100%;\n font: inherit;\n vertical-align: baseline;\n\n ${baseStyling}\n\n ${({ $variant }) =>\n $variant === 'h1'\n ? css`\n color: var(--redsift-color-neutral-black);\n font-family: var(--redsift-typography-h1-font-family);\n font-size: var(--redsift-typography-h1-font-size);\n font-weight: var(--redsift-typography-h1-font-weight);\n line-height: var(--redsift-typography-h1-line-height);\n text-transform: var(--redsift-typography-h1-text-transform);\n `\n : $variant === 'h2'\n ? css`\n color: var(--redsift-color-neutral-black);\n font-family: var(--redsift-typography-h2-font-family);\n font-size: var(--redsift-typography-h2-font-size);\n font-weight: var(--redsift-typography-h2-font-weight);\n line-height: var(--redsift-typography-h2-line-height);\n `\n : $variant === 'h3'\n ? css`\n color: var(--redsift-color-neutral-black);\n font-family: var(--redsift-typography-h3-font-family);\n font-size: var(--redsift-typography-h3-font-size);\n font-weight: var(--redsift-typography-h3-font-weight);\n line-height: var(--redsift-typography-h3-line-height);\n `\n : $variant === 'h4'\n ? css`\n color: var(--redsift-color-neutral-black);\n font-family: var(--redsift-typography-h4-font-family);\n font-size: var(--redsift-typography-h4-font-size);\n font-weight: var(--redsift-typography-h4-font-weight);\n line-height: var(--redsift-typography-h4-line-height);\n `\n : $variant === 'h5'\n ? css`\n color: var(--redsift-color-neutral-black);\n font-family: var(--redsift-typography-h5-font-family);\n font-size: var(--redsift-typography-h5-font-size);\n font-weight: var(--redsift-typography-h5-font-weight);\n line-height: var(--redsift-typography-h5-line-height);\n `\n : css`\n color: var(--redsift-color-neutral-black);\n font-family: var(--redsift-typography-body-font-family);\n font-size: var(--redsift-typography-body-font-size);\n font-weight: var(--redsift-typography-body-font-weight);\n line-height: var(--redsift-typography-body-line-height);\n `}\n\n ${({ $noWrap }) =>\n $noWrap\n ? css`\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n `\n : css`\n word-break: break-word;\n `}\n`;\n","import React, { forwardRef, RefObject } from 'react';\nimport classNames from 'classnames';\nimport { Comp } from '../../types';\nimport { StyledHeading } from './styles';\nimport { HeadingProps } from './types';\n\nconst COMPONENT_NAME = 'Heading';\nconst CLASSNAME = 'redsift-heading';\nconst DEFAULT_PROPS: Partial<HeadingProps> = {};\n\n/**\n * The Heading component.\n */\nexport const Heading: Comp<HeadingProps, HTMLDivElement> = forwardRef(\n (props, ref) => {\n const { as, children, className, noWrap, variant, ...forwardedProps } =\n props;\n\n return (\n <StyledHeading\n as={as}\n {...forwardedProps}\n className={classNames(Heading.className, className)}\n ref={ref as RefObject<HTMLDivElement>}\n $noWrap={noWrap}\n $variant={variant ? variant : as === 'span' ? 'body' : as}\n >\n {children}\n </StyledHeading>\n );\n }\n);\nHeading.className = CLASSNAME;\nHeading.defaultProps = DEFAULT_PROPS;\nHeading.displayName = COMPONENT_NAME;\n","import styled from 'styled-components';\nimport { baseFlexbox, baseInternalSpacing, baseStyling } from '../shared';\nimport { StyledFlexboxProps } from './types';\n\n/**\n * Component style.\n */\nexport const StyledFlexbox = styled.div<StyledFlexboxProps>`\n display: ${({ inline }) => (inline ? 'inline-flex' : 'flex')};\n\n ${baseStyling}\n ${baseInternalSpacing}\n ${baseFlexbox}\n`;\n","import React, { forwardRef, RefObject } from 'react';\nimport classNames from 'classnames';\nimport { Comp } from '../../types';\nimport { StyledFlexbox } from './styles';\nimport { FlexboxProps } from './types';\n\nconst COMPONENT_NAME = 'Flexbox';\nconst CLASSNAME = 'redsift-flex-box';\nconst DEFAULT_PROPS: Partial<FlexboxProps> = {\n gap: '16px',\n};\n\n/**\n * The Flexbox component.\n */\nexport const Flexbox: Comp<FlexboxProps, HTMLDivElement> = forwardRef(\n (props, ref) => {\n const { children, className, ...forwardedProps } = props;\n\n return (\n <StyledFlexbox\n {...forwardedProps}\n className={classNames(Flexbox.className, className)}\n ref={ref as RefObject<HTMLDivElement>}\n >\n {children}\n </StyledFlexbox>\n );\n }\n);\nFlexbox.className = CLASSNAME;\nFlexbox.defaultProps = DEFAULT_PROPS;\nFlexbox.displayName = COMPONENT_NAME;\n","import React, {\n forwardRef,\n RefObject,\n useCallback,\n useEffect,\n useState,\n} from 'react';\nimport classNames from 'classnames';\n\nimport { useLocalizedStringFormatter } from 'react-aria';\nimport intlMessages from './intl';\n\nimport {\n mdiAlert,\n mdiAlertCircle,\n mdiCheckCircle,\n mdiClose,\n mdiInformation,\n} from '@redsift/icons';\nimport { IconButton } from '../icon-button';\nimport { ColorPalette, Comp } from '../../types';\nimport { StyledAlert } from './styles';\nimport { AlertProps, AlertVariant } from './types';\nimport { Icon } from '../icon';\nimport { Heading } from '../heading';\nimport { Flexbox } from '../flexbox';\n\nconst COMPONENT_NAME = 'Alert';\nconst CLASSNAME = 'redsift-alert';\nconst DEFAULT_PROPS: Partial<AlertProps> = {\n variant: 'info',\n};\n\nconst getVariant = (variant: AlertVariant) => {\n switch (variant) {\n case AlertVariant.info:\n default:\n return {\n color: ColorPalette.info,\n icon: mdiInformation,\n };\n case AlertVariant.error:\n return {\n color: ColorPalette.error,\n icon: mdiAlertCircle,\n };\n case AlertVariant.success:\n return {\n color: ColorPalette.success,\n icon: mdiCheckCircle,\n };\n case AlertVariant.warning:\n return {\n color: ColorPalette.warning,\n icon: mdiAlert,\n };\n }\n};\n\n/**\n * The Alert component.\n */\nexport const Alert: Comp<AlertProps, HTMLDivElement> = forwardRef(\n (props, ref) => {\n const {\n children,\n className,\n isClosable,\n isClosed: propsIsClosed,\n onClose,\n title,\n variant,\n ...forwardedProps\n } = props;\n\n const stringFormatter = useLocalizedStringFormatter(intlMessages);\n\n const { color, icon } = getVariant(variant!);\n const [isClosed, setIsClosed] = useState(propsIsClosed);\n\n useEffect(() => {\n setIsClosed(propsIsClosed);\n }, [propsIsClosed]);\n\n const handleClose = useCallback(() => {\n if (onClose) {\n onClose(true);\n }\n if (propsIsClosed === undefined || propsIsClosed === null) {\n setIsClosed(true);\n }\n }, [onClose]);\n\n return (\n <StyledAlert\n {...forwardedProps}\n className={classNames(Alert.className, className)}\n ref={ref as RefObject<HTMLDivElement>}\n $hasTitle={Boolean(title)}\n $isClosable={isClosable}\n $isClosed={isClosed}\n $variant={variant}\n >\n <Flexbox\n className={`${Alert.className}__header`}\n justifyContent=\"space-between\"\n >\n <Flexbox\n className={`${Alert.className}-header__title`}\n gap=\"14px\"\n alignItems=\"flex-start\"\n >\n <Icon icon={icon} color={color} />\n {title ? <Heading as=\"h5\">{title}</Heading> : null}\n </Flexbox>\n\n {isClosable ? (\n <IconButton\n aria-label={stringFormatter.format('close')}\n className={`${Alert.className}-header__icon-button`}\n icon={mdiClose}\n onPress={handleClose}\n />\n ) : null}\n </Flexbox>\n\n {children ? (\n <div className={`${Alert.className}__content`}>{children}</div>\n ) : null}\n </StyledAlert>\n );\n }\n);\nAlert.className = CLASSNAME;\nAlert.defaultProps = DEFAULT_PROPS;\nAlert.displayName = COMPONENT_NAME;\n","import enUS from './en-US.json';\nimport frFR from './fr-FR.json';\n\nexport default {\n 'en-US': enUS,\n 'fr-FR': frFR,\n};\n","import { useState, useEffect } from 'react';\n\nexport const useIsLoaded = () => {\n const [isLoaded, setIsLoaded] = useState(false);\n\n useEffect(() => {\n setIsLoaded(true);\n });\n\n return {\n isLoaded,\n };\n};\n","import styled, { css } from 'styled-components';\nimport { StyledAppBarProps } from './types';\n\n/**\n * Component style.\n */\nexport const StyledAppBar = styled.header<StyledAppBarProps>`\n align-content: center;\n align-items: center;\n background-color: var(--redsift-color-default-primary);\n color: var(--redsift-color-neutral-white);\n display: flex;\n flex-direction: row;\n height: 72px;\n justify-content: space-between;\n left: 0;\n position: fixed;\n top: 0;\n z-index: var(--redsift-layout-z-index-header);\n\n ${({ $isSidePanelCollapsed }) =>\n !$isSidePanelCollapsed\n ? css`\n transform: translate(240px);\n width: calc(100% - 240px);\n `\n : `\n transform: translate(0px);\n width: 100%;\n `}\n\n ${({ $isLoaded }) =>\n $isLoaded\n ? css`\n transition: transform 0.25s ease-out, width 0.25s ease-out;\n `\n : ''}\n\n h1 {\n margin: unset;\n padding: unset;\n color: var(--redsift-color-neutral-white);\n }\n\n .redsift-app-bar__left {\n align-content: center;\n align-items: center;\n display: inline-flex;\n flex-direction: row;\n gap: 8px;\n justify-content: center;\n margin-left: 24px;\n }\n\n .redsift-app-bar-left__expand-button,\n .redsift-app-bar-left__collapse-button {\n margin-left: -8px;\n }\n\n .redsift-app-bar__right {\n display: inline-flex;\n margin: 16px;\n }\n`;\n","import React, { forwardRef, RefObject, useContext } from 'react';\nimport classNames from 'classnames';\n\nimport { useLocalizedStringFormatter } from 'react-aria';\nimport intlMessages from './intl';\n\nimport { mdiMenu, mdiMenuOpen } from '@redsift/icons';\nimport { Comp } from '../../types';\nimport { IconButton, IconButtonVariant } from '../icon-button';\nimport { AppContainerContext } from '../app-container/context';\nimport { useIsLoaded } from '../../hooks/useIsLoaded';\nimport { StyledAppBar } from './styles';\nimport { AppBarProps } from './types';\nimport { Heading } from '../heading';\n\nconst COMPONENT_NAME = 'AppBar';\nconst CLASSNAME = 'redsift-app-bar';\nconst DEFAULT_PROPS: Partial<AppBarProps> = {};\n\n/**\n * The AppBar component.\n */\nexport const AppBar: Comp<AppBarProps, HTMLHeadingElement> = forwardRef(\n (props, ref) => {\n const {\n children,\n className,\n collapseIconButtonProps,\n collapseIconButtonRef,\n expandIconButtonProps,\n expandIconButtonRef,\n fallbackTitle,\n title: propsTitle,\n ...forwardedProps\n } = props;\n\n const { isLoaded } = useIsLoaded();\n const appContainerState = useContext(AppContainerContext);\n\n const stringFormatter = useLocalizedStringFormatter(intlMessages);\n\n return (\n <StyledAppBar\n {...forwardedProps}\n $isLoaded={isLoaded}\n $isSidePanelCollapsed={\n appContainerState ? appContainerState.isSidePanelCollapsed : true\n }\n className={classNames(AppBar.className, className)}\n ref={ref as RefObject<HTMLHeadingElement>}\n >\n <div className={`${AppBar.className}__left`}>\n {appContainerState ? (\n <>\n {appContainerState.isSidePanelCollapsed ? (\n <IconButton\n className={`${AppBar.className}-left__expand-button`}\n {...expandIconButtonProps}\n aria-label={stringFormatter.format('expand')}\n icon={mdiMenu}\n onPress={appContainerState.expandSidePanel}\n ref={collapseIconButtonRef as RefObject<HTMLButtonElement>}\n variant={IconButtonVariant.primary}\n />\n ) : (\n <IconButton\n className={`${AppBar.className}-left__collapse-button`}\n {...collapseIconButtonProps}\n aria-label={stringFormatter.format('collapse')}\n icon={mdiMenuOpen}\n onPress={appContainerState.collapseSidePanel}\n ref={expandIconButtonRef as RefObject<HTMLButtonElement>}\n variant={IconButtonVariant.primary}\n />\n )}\n </>\n ) : null}\n {propsTitle && typeof propsTitle !== 'string' ? (\n <>{propsTitle}</>\n ) : typeof propsTitle === 'string' ? (\n <Heading as=\"h1\">{propsTitle}</Heading>\n ) : appContainerState && appContainerState.title ? (\n <Heading as=\"h1\">{appContainerState.title}</Heading>\n ) : fallbackTitle ? (\n <Heading as=\"h1\">{fallbackTitle}</Heading>\n ) : null}\n </div>\n <div className={`${AppBar.className}__right`}>{children}</div>\n </StyledAppBar>\n );\n }\n);\nAppBar.className = CLASSNAME;\nAppBar.defaultProps = DEFAULT_PROPS;\nAppBar.displayName = COMPONENT_NAME;\n","import styled, { css } from 'styled-components';\nimport { ProductColorPalette } from '../../types';\nimport { baseContainer } from '../shared';\nimport { StyledAppContentProps } from './types';\n\n/**\n * Component style.\n */\nexport const StyledAppContent = styled.main<StyledAppContentProps>`\n ${baseContainer}\n\n box-sizing: border-box;\n margin-top: 72px;\n min-height: calc(100vh - 72px);\n padding: 16px 32px;\n\n @media screen and (max-width: 768px) {\n padding: 0px;\n }\n\n ${({ $isSidePanelCollapsed }) =>\n !$isSidePanelCollapsed\n ? css`\n transform: translate(240px);\n width: calc(100% - 240px);\n `\n : `\n transform: translate(0px);\n width: 100%;\n `}\n\n ${({ $isLoaded }) =>\n $isLoaded\n ? css`\n transition: transform 0.25s ease-out, width 0.25s ease-out;\n `\n : ''}\n\n ${({ $productTheme }) =>\n $productTheme &&\n Object.keys(ProductColorPalette).indexOf($productTheme) !== -1\n ? css`\n --redsift-color-default-primary: var(\n --redsift-color-${$productTheme}-primary\n );\n --redsift-color-default-secondary: var(\n --redsift-color-${$productTheme}-secondary\n );\n --redsift-color-default-hover: var(\n --redsift-color-${$productTheme}-hover\n );\n --redsift-color-default-active: var(\n --redsift-color-${$productTheme}-active\n );\n --redsift-color-default-active-hover: var(\n --redsift-color-${$productTheme}-active-hover\n );\n --redsift-color-default-primary-active: var(\n --redsift-color-${$productTheme}-primary-active\n );\n `\n : ''}\n`;\n","import React, { forwardRef, RefObject, useContext } from 'react';\nimport classNames from 'classnames';\nimport { Comp } from '../../types';\nimport { AppContainerContext } from '../app-container/context';\nimport { useIsLoaded } from '../../hooks/useIsLoaded';\nimport { StyledAppContent } from './styles';\nimport { AppContentProps } from './types';\n\nconst COMPONENT_NAME = 'AppContent';\nconst CLASSNAME = 'redsift-app-content';\nconst DEFAULT_PROPS: Partial<AppContentProps> = {};\n\n/**\n * The AppContent component.\n */\nexport const AppContent: Comp<AppContentProps, HTMLElement> = forwardRef(\n (props, ref) => {\n const { children, className, productTheme, ...forwardedProps } = props;\n\n const { isLoaded } = useIsLoaded();\n const appContainerState = useContext(AppContainerContext);\n\n return (\n <StyledAppContent\n {...forwardedProps}\n $isLoaded={isLoaded}\n $isSidePanelCollapsed={\n appContainerState ? appContainerState.isSidePanelCollapsed : true\n }\n $productTheme={productTheme}\n className={classNames(AppContent.className, className)}\n ref={ref as RefObject<HTMLElement>}\n >\n {children}\n </StyledAppContent>\n );\n }\n);\nAppContent.className = CLASSNAME;\nAppContent.defaultProps = DEFAULT_PROPS;\nAppContent.displayName = COMPONENT_NAME;\n","import styled from 'styled-components';\nimport { StyledAppSidePanelProps } from './types';\n\n/**\n * Component style.\n */\nexport const StyledAppSidePanel = styled.div<StyledAppSidePanelProps>`\n align-items: center;\n background-color: var(--redsift-side-navigation-color-background);\n flex-direction: column;\n height: 100%;\n left: 0px;\n overflow: hidden;\n position: fixed;\n top: 0;\n transform: ${({ $isCollapsed }) =>\n !$isCollapsed ? 'translate(0px)' : 'translate(-240px)'};\n transition: transform 0.25s ease-out, visibility 0.25s ease-out;\n visibility: ${({ $isCollapsed }) => (!$isCollapsed ? 'visible' : 'hidden')};\n width: 240px;\n z-index: var(--redsift-layout-z-index-side-panel);\n\n .redsift-app-side-panel__header {\n align-items: center;\n box-sizing: border-box;\n display: flex;\n flex-direction: row;\n gap: 8px;\n justify-content: space-between;\n padding: 16px;\n width: 100%;\n height: 72px;\n }\n\n .redsift-app-side-panel__header > img {\n max-height: 36px;\n max-width: 160px;\n }\n\n .redsift-app-side-panel__featured {\n box-sizing: border-box;\n margin-bottom: 16px;\n padding: 0px 16px;\n width: 100%;\n }\n\n [dir='rtl'] & {\n left: unset;\n right: 0px;\n transform: unset;\n transition: unset;\n }\n\n scrollbar-color: var(--redsift-side-navigation-color-scrollbar-resting)\n transparent;\n scrollbar-width: thin;\n\n &::-webkit-scrollbar {\n block-size: 9px;\n inline-size: 9px;\n }\n\n &::-webkit-scrollbar-thumb {\n background-clip: padding-box;\n background-color: var(--redsift-side-navigation-color-scrollbar-resting);\n border-radius: 0px;\n border-left: 2px solid transparent;\n border-right: 2px solid transparent;\n }\n\n &::-webkit-scrollbar-track {\n background-color: transparent;\n }\n\n &::-webkit-scrollbar-thumb:horizontal,\n &::-webkit-scrollbar-thumb:vertical {\n &:hover {\n background-color: var(--redsift-side-navigation-color-scrollbar-hover);\n }\n }\n\n &::-webkit-scrollbar-corner {\n visibility: hidden;\n }\n`;\n","import React, { forwardRef, RefObject, useContext } from 'react';\nimport classNames from 'classnames';\nimport { Comp } from '../../types';\nimport { AppContainerContext } from '../app-container/context';\nimport { StyledAppSidePanel } from './styles';\nimport { AppSidePanelProps } from './types';\n\nconst COMPONENT_NAME = 'AppSidePanel';\nconst CLASSNAME = 'redsift-app-side-panel';\nconst DEFAULT_PROPS: Partial<AppSidePanelProps> = {};\n\n/**\n * The AppSidePanel component.\n */\nexport const AppSidePanel: Comp<AppSidePanelProps, HTMLDivElement> = forwardRef(\n (props, ref) => {\n const {\n children,\n className,\n featuredElements,\n isCollapsed = false,\n logo,\n ...forwardedProps\n } = props;\n\n const appContainerState = useContext(AppContainerContext);\n\n return (\n <StyledAppSidePanel\n {...forwardedProps}\n $isCollapsed={\n !!(isCollapsed || appContainerState?.isSidePanelCollapsed)\n }\n className={classNames(AppSidePanel.className, className)}\n ref={ref as RefObject<HTMLDivElement>}\n >\n {logo || appContainerState?.hasAppBar ? (\n <div className={`${AppSidePanel.className}__header`}>\n {logo ? (\n React.isValidElement(logo) ? (\n logo\n ) : (\n <img src={logo.src} alt={logo.alt} />\n )\n ) : null}\n </div>\n ) : null}\n {featuredElements ? (\n <div className={`${AppSidePanel.className}__featured`}>\n {featuredElements}\n </div>\n ) : null}\n {children}\n </StyledAppSidePanel>\n );\n }\n);\nAppSidePanel.className = CLASSNAME;\nAppSidePanel.defaultProps = DEFAULT_PROPS;\nAppSidePanel.displayName = COMPONENT_NAME;\n","import { ComponentProps, MutableRefObject } from 'react';\nimport { IconProps } from '../icon';\n\n/**\n * Context props.\n */\nexport type SideNavigationMenuContextProps = {\n menuItems: Set<HTMLAnchorElement | HTMLButtonElement>;\n};\n\n/**\n * Reducer props.\n */\nexport type SideNavigationMenuReducerState = {\n isExpanded: boolean;\n currentIndex: number;\n previousIndex: number;\n};\n\nexport enum SideNavigationMenuReducerActionType {\n Expand = 'expand',\n Collapse = 'collapse',\n Move = 'move',\n}\n\nexport type SideNavigationMenuReducerAction = {\n type: SideNavigationMenuReducerActionType;\n index?: number;\n};\n\n/**\n * Component props.\n */\nexport interface SideNavigationMenuProps extends ComponentProps<'div'> {\n /** Custom props to pass to the button. */\n buttonProps?: ComponentProps<'button'>;\n /** Custom ref to pass to the button. */\n buttonRef?: MutableRefObject<HTMLButtonElement>;\n /** Whether or not the menu contains children that have a badge. */\n hasBadge?: boolean;\n /**\n * Icon path data (`d` property of the `path` SVG element).<br />\n * See <a href=\"https://developer.mozilla.org/en-US/docs/Web/SVG/Tutorial/Paths\">https://developer.mozilla.org/en-US/docs/Web/SVG/Tutorial/Paths</a>.<br />\n * Recommended path data come from mdi/js.<br />\n * See <a href=\"https://www.npmjs.com/package/@mdi/js\">https://www.npmjs.com/package/@mdi/js</a>.\n */\n icon?: string;\n /** Custom props to pass to the Icon component. */\n iconProps?: Omit<IconProps, 'icon'>;\n /** Custom ref to pass to the Icon component. */\n iconRef?: MutableRefObject<HTMLElement>;\n /** Whether the component is disabled or not. */\n isDisabled?: boolean;\n /** Whether the menu is expanded or not. */\n isExpanded?: boolean;\n /** Custom props to pass to the menu. */\n menuProps?: ComponentProps<'ul'>;\n /** Custom ref to pass to the menu. */\n menuRef?: MutableRefObject<HTMLUListElement>;\n /** Whether the component should hide icons or not. */\n withoutIcons?: boolean;\n}\n\nexport type StyledSideNavigationMenuProps = Omit<\n SideNavigationMenuProps,\n 'isDisabled' | 'isExpanded' | 'withoutIcons'\n> & {\n $isDisabled: SideNavigationMenuProps['isDisabled'];\n $isExpanded: SideNavigationMenuProps['isExpanded'];\n $withoutIcons: SideNavigationMenuProps['withoutIcons'];\n};\n","import React from 'react';\nimport { SideNavigationMenuBarContextProps } from './types';\n\nexport const SideNavigationMenuBarContext =\n React.createContext<SideNavigationMenuBarContextProps>(null!);\n","import React from 'react';\nimport { SideNavigationMenuContextProps } from './types';\n\nexport const SideNavigationMenuContext =\n React.createContext<SideNavigationMenuContextProps>(null!);\n","import styled, { css } from 'styled-components';\nimport { StyledSideNavigationMenuItemProps } from './types';\n\n/**\n * Component style.\n */\nexport const StyledSideNavigationMenuItem = styled.a<StyledSideNavigationMenuItemProps>`\n /**\n * Common style\n */\n ${({ $isDisabled }) =>\n !$isDisabled\n ? css`\n &,\n .redsift-icon.first {\n color: var(--redsift-side-navigation-color-menu-item-text-resting);\n }\n `\n : css`\n &,\n .redsift-icon.first {\n color: var(--redsift-side-navigation-color-menu-item-text-disabled);\n }\n `}\n align-items: center;\n display: flex;\n font-family: var(--redsift-typography-body-font-family);\n font-size: var(--redsift-typography-body-font-size);\n font-weight: var(--redsift-typography-body-font-weight);\n line-height: var(--redsift-typography-body-line-height);\n text-decoration: none;\n\n &:hover,\n &:focus-visible {\n outline: none;\n\n ${({ $isDisabled }) =>\n !$isDisabled\n ? css`\n background-color: var(\n --redsift-side-navigation-color-menu-item-background-hover\n );\n &,\n .redsift-icon.first {\n color: var(--redsift-side-navigation-color-menu-item-text-hover);\n }\n `\n : ''}\n }\n\n ${({ $isSecondLevel, $withoutIcons }) =>\n !$isSecondLevel\n ? css`\n /**\n * First-level items\n */\n\n background-color: var(--redsift-side-navigation-color-background);\n padding: 8px 16px;\n\n .redsift-icon.first {\n padding-right: 16px;\n box-sizing: unset;\n }\n\n span {\n padding-right: 12px;\n }\n\n [dir='rtl'] & {\n padding-right: unset;\n\n .redsift-icon.first {\n padding-left: 16px;\n padding-right: unset;\n }\n\n span {\n padding-left: 12px;\n padding-right: unset;\n }\n }\n `\n : `\n /**\n * Second-level items\n */\n\n background-color: var(--redsift-side-navigation-color-menu-item-background-secondary);\n padding-bottom: 8px;\n padding-left: ${!$withoutIcons ? '52px' : '16px'};\n padding-right: 8px;\n padding-top: 8px;\n\n span {\n padding-right: 12px;\n }\n\n [dir=\"rtl\"] & {\n padding-left: unset;\n padding-right: 16px;\n\n span {\n padding-left: 12px;\n padding-right: unset;\n }\n }\n `}\n\n ${({ $isCurrent, $isDisabled }) =>\n $isCurrent && !$isDisabled\n ? css`\n background-color: var(\n --redsift-side-navigation-color-menu-item-background-active\n );\n box-shadow: inset -4px 0px 0px var(--redsift-side-navigation-color-menu-item-active);\n `\n : ''}\n`;\n","import { ComponentProps } from 'react';\nimport {\n ColorPalette,\n DataVizColorPalette,\n LayoutProps,\n PositioningProps,\n ProductColorPalette,\n SpacingProps,\n ValueOf,\n} from '../../types';\n\n/**\n * Component variant.\n */\nexport const BadgeVariant = {\n dot: 'dot',\n standard: 'standard',\n} as const;\nexport type BadgeVariant = ValueOf<typeof BadgeVariant>;\n\n/**\n * Component props.\n */\nexport interface BadgeProps\n extends ComponentProps<'div'>,\n LayoutProps,\n SpacingProps,\n PositioningProps {\n /** Whether the badge should automatically break content. */\n autoBreak?: boolean;\n /** Color variant. The product colors are available but should only be used to display the Badge in the color of another product. To display a Badge with a color of the current product, use `default`. */\n color?: ColorPalette | DataVizColorPalette | ProductColorPalette;\n /** Whether the Badge has its colors reversed or not. */\n isReversed?: boolean;\n /** Badge variant. */\n variant?: BadgeVariant;\n}\n\nexport type StyledBadgeProps = Omit<\n BadgeProps,\n 'color' | 'variant' | 'isReversed' | 'autoBreak'\n> & {\n $autoBreak: BadgeProps['autoBreak'];\n $color: BadgeProps['color'];\n $isReversed: BadgeProps['isReversed'];\n $variant: BadgeProps['variant'];\n};\n","import styled, { css } from 'styled-components';\nimport { baseStyling } from '../shared';\nimport { DataVizColorPalette } from '../../types';\nimport { BadgeVariant, StyledBadgeProps } from './types';\n\n/**\n * Component style.\n */\nexport const StyledBadge = styled.div<StyledBadgeProps>`\n ${baseStyling}\n\n ${({ $color, $isReversed }) => {\n if ($isReversed) {\n return css`\n background-color: var(--redsift-color-neutral-white);\n\n &,\n .redsift-icon {\n color: ${Object.keys(DataVizColorPalette).includes($color!)\n ? `var(--redsift-data-viz-color-${$color}-darker);`\n : `var(--redsift-color-${$color}-primary);`};\n }\n `;\n } else {\n return css`\n background-color: ${Object.keys(DataVizColorPalette).includes($color!)\n ? `var(--redsift-data-viz-color-${$color}-darker);`\n : `var(--redsift-color-${$color}-primary);`}\n &,\n .redsift-icon {\n color: var(--redsift-color-neutral-white);\n }\n `;\n }\n }}\n\n ${({ $variant, $autoBreak }) => {\n switch ($variant) {\n case BadgeVariant.dot:\n return css`\n border-radius: 50%;\n height: 8px;\n margin-bottom: 12px;\n margin-right: 12px;\n width: 8px;\n `;\n case BadgeVariant.standard:\n default:\n return css`\n border-radius: 64px;\n height: fit-content;\n min-width: 8px;\n padding: 0 6px;\n text-align: center;\n width: fit-content;\n word-break: ${$autoBreak ? 'break-word' : 'normal'};\n\n &,\n .redsift-icon {\n font-family: var(--redsift-typography-badge-font-family);\n font-size: var(--redsift-typography-badge-font-size);\n font-weight: var(--redsift-typography-badge-font-weight);\n line-height: var(--redsift-typography-badge-line-height);\n }\n `;\n }\n }}\n`;\n","import React, { forwardRef, RefObject } from 'react';\nimport classNames from 'classnames';\nimport { ColorPalette, Comp } from '../../types';\nimport { StyledBadge } from './styles';\nimport { BadgeProps, BadgeVariant } from './types';\n\nconst COMPONENT_NAME = 'Badge';\nconst CLASSNAME = 'redsift-badge';\nconst DEFAULT_PROPS: Partial<BadgeProps> = {\n color: ColorPalette.question,\n variant: BadgeVariant.dot,\n};\n\n/**\n * The Badge component.\n */\nexport const Badge: Comp<BadgeProps, HTMLDivElement> = forwardRef(\n (props, ref) => {\n const {\n autoBreak,\n children,\n className,\n color,\n isReversed,\n variant,\n ...forwardedProps\n } = props;\n\n return (\n <StyledBadge\n {...forwardedProps}\n $autoBreak={autoBreak}\n $color={color}\n $isReversed={isReversed}\n $variant={variant}\n className={classNames(\n Badge.className,\n `${Badge.className}-${variant}`,\n className\n )}\n ref={ref as RefObject<HTMLDivElement>}\n >\n {variant === BadgeVariant.standard ? children : null}\n </StyledBadge>\n );\n }\n);\nBadge.className = CLASSNAME;\nBadge.defaultProps = DEFAULT_PROPS;\nBadge.displayName = COMPONENT_NAME;\n","import React, {\n forwardRef,\n MutableRefObject,\n useContext,\n useEffect,\n useRef,\n useState,\n} from 'react';\nimport classNames from 'classnames';\nimport { Comp } from '../../types';\nimport { Icon, IconSize } from '../icon';\nimport { warnIfNoAccessibleLabelFound } from '../../utils/warnIfNoAccessibleLabelFound';\nimport { SideNavigationMenuBarContext } from '../side-navigation-menu-bar/context';\nimport { SideNavigationMenuContext } from '../side-navigation-menu/context';\nimport { AppContainerContext } from '../app-container/context';\nimport { StyledSideNavigationMenuItem } from './styles';\nimport { SideNavigationMenuItemProps } from './types';\nimport { Badge, BadgeVariant } from '../badge';\n\nconst COMPONENT_NAME = 'SideNavigationMenuItem';\nconst CLASSNAME = 'redsift-side-navigation-menu-item';\nconst DEFAULT_PROPS: Partial<SideNavigationMenuItemProps> = {};\n\n/**\n * The SideNavigationMenuItem component.\n */\nexport const SideNavigationMenuItem: Comp<\n SideNavigationMenuItemProps,\n HTMLAnchorElement\n> = forwardRef((props, ref) => {\n const menuItemRef = ref || useRef<HTMLAnchorElement>();\n\n const {\n badge,\n badgeProps,\n children,\n className,\n href,\n icon,\n iconProps,\n iconRef = useRef<HTMLElement>(),\n isCurrent,\n isDisabled,\n isSecondLevel,\n onClick,\n onKeyDown,\n tabIndex,\n withoutIcons,\n ...forwardedProps\n } = props;\n\n warnIfNoAccessibleLabelFound(props, [children]);\n\n const appContainerState = useContext(AppContainerContext);\n useEffect(() => {\n if (appContainerState && isCurrent && typeof children === 'string') {\n appContainerState.setTitle(children);\n }\n\n return () => {\n if (appContainerState) {\n appContainerState.setTitle(undefined);\n }\n };\n }, [isCurrent]);\n\n const sideNavigationMenuBarContext = useContext(SideNavigationMenuBarContext);\n const sideNavigationMenuContext = useContext(SideNavigationMenuContext);\n const [isFirstChild, setIsFirstChild] = useState(false);\n const { menuItems } =\n sideNavigationMenuContext || sideNavigationMenuBarContext || {};\n\n useEffect(() => {\n if (!(sideNavigationMenuContext || sideNavigationMenuBarContext)) {\n setIsFirstChild(true);\n return;\n }\n\n const menuItemNode = (menuItemRef as MutableRefObject<HTMLAnchorElement>)\n .current;\n\n if (menuItemNode) {\n if (!menuItems.size) {\n setIsFirstChild(true);\n }\n\n menuItems.add(menuItemNode);\n }\n\n return () => {\n menuItems.delete(menuItemNode);\n };\n }, [menuItems]);\n\n return (\n <StyledSideNavigationMenuItem\n role=\"menuitem\"\n {...forwardedProps}\n $isCurrent={isCurrent}\n $isDisabled={isDisabled}\n $isSecondLevel={isSecondLevel}\n $withoutIcons={withoutIcons}\n aria-current={isCurrent ? 'page' : undefined}\n aria-disabled={isDisabled}\n className={classNames(SideNavigationMenuItem.className, className)}\n href={!isDisabled ? href : undefined}\n onClick={isDisabled ? undefined : onClick}\n onKeyDown={isDisabled ? undefined : onKeyDown}\n ref={menuItemRef as MutableRefObject<HTMLAnchorElement>}\n tabIndex={\n tabIndex !== undefined\n ? tabIndex\n : !sideNavigationMenuContext && isFirstChild\n ? 0\n : -1\n }\n >\n {icon ? (\n <Icon\n color=\"var(--redsift-side-navigation-color-menu-item-text-resting)\"\n {...iconProps}\n icon={icon}\n ref={iconRef as MutableRefObject<HTMLElement>}\n className=\"first\"\n size={IconSize.small}\n />\n ) : null}\n <span>{children}</span>\n {badge ? (\n <Badge variant={BadgeVariant.standard} color=\"error\" {...badgeProps}>\n {badge}\n </Badge>\n ) : null}\n </StyledSideNavigationMenuItem>\n );\n});\nSideNavigationMenuItem.className = CLASSNAME;\nSideNavigationMenuItem.defaultProps = DEFAULT_PROPS;\nSideNavigationMenuItem.displayName = COMPONENT_NAME;\n","import styled, { css } from 'styled-components';\nimport { StyledSideNavigationMenuProps } from './types';\n\n/**\n * Component style.\n */\nexport const StyledSideNavigationMenu = styled.div<StyledSideNavigationMenuProps>`\n > button {\n background-color: var(--redsift-side-navigation-color-background);\n border: none;\n ${({ $isDisabled }) =>\n !$isDisabled\n ? css`\n &,\n .redsift-icon.first {\n color: var(\n --redsift-side-navigation-color-menu-item-text-resting\n );\n }\n `\n : css`\n &,\n .redsift-icon.first {\n color: var(\n --redsift-side-navigation-color-menu-item-text-disabled\n );\n }\n `}\n align-items: center;\n display: flex;\n font-family: var(--redsift-typography-body-font-family);\n font-size: var(--redsift-typography-body-font-size);\n font-weight: var(--redsift-typography-body-font-weight);\n line-height: var(--redsift-typography-body-line-height);\n padding: 8px 16px;\n text-decoration: none;\n width: 100%;\n }\n\n ul {\n list-style: none;\n margin: unset;\n padding: unset;\n }\n\n .redsift-icon.first {\n padding-right: 16px;\n box-sizing: unset;\n }\n\n span {\n padding-right: 12px;\n }\n\n [dir='rtl'] & {\n .redsift-icon.first {\n padding-left: 16px;\n padding-right: unset;\n }\n\n span {\n padding-left: 12px;\n padding-right: unset;\n }\n }\n\n > button:hover,\n > button:focus-visible {\n outline: none;\n\n ${({ $isDisabled }) =>\n !$isDisabled\n ? css`\n background-color: var(\n --redsift-side-navigation-color-menu-item-background-hover\n );\n &,\n .redsift-icon.first,\n .redsift-side-navigation-menu__expand-icon {\n color: var(--redsift-side-navigation-color-menu-item-text-hover);\n }\n cursor: pointer;\n `\n : ''}\n }\n\n .redsift-side-navigation-menu__expand-icon {\n ${({ $isDisabled }) =>\n !$isDisabled\n ? css`\n &,\n .redsift-icon.first {\n color: var(\n --redsift-side-navigation-color-menu-item-text-resting\n );\n }\n `\n : css`\n &,\n .redsift-icon.first {\n color: var(\n --redsift-side-navigation-color-menu-item-text-disabled\n );\n }\n `}\n margin-left: auto;\n }\n\n [dir='rtl'] & {\n .redsift-side-navigation-menu__expand-icon {\n margin-left: unset;\n margin-right: auto;\n }\n }\n\n /**\n * Display children or not\n */\n\n > ul {\n ${({ $isExpanded }) =>\n $isExpanded\n ? css`\n display: block;\n `\n : css`\n display: none;\n `}\n }\n`;\n","import {\n SideNavigationMenuReducerState,\n SideNavigationMenuReducerAction,\n SideNavigationMenuReducerActionType,\n} from './types';\n\nexport const SideNavigationMenuReducer = (\n state: SideNavigationMenuReducerState,\n action: SideNavigationMenuReducerAction\n): SideNavigationMenuReducerState => {\n switch (action.type) {\n case SideNavigationMenuReducerActionType.Expand:\n return { ...state, isExpanded: true };\n case SideNavigationMenuReducerActionType.Collapse:\n return {\n isExpanded: false,\n currentIndex: null!,\n previousIndex: null!,\n };\n case SideNavigationMenuReducerActionType.Move:\n return {\n ...state,\n isExpanded: true,\n currentIndex: action.index!,\n previousIndex: state.currentIndex,\n };\n }\n};\n","import React, {\n forwardRef,\n KeyboardEvent,\n MouseEvent,\n MutableRefObject,\n useCallback,\n useContext,\n useEffect,\n useMemo,\n useReducer,\n useRef,\n useState,\n} from 'react';\nimport classNames from 'classnames';\nimport { mdiChevronDown, mdiChevronRight } from '@redsift/icons';\nimport { Comp } from '../../types';\nimport { SideNavigationMenuItem } from '../side-navigation-menu-item';\nimport { Icon, IconSize } from '../icon';\nimport { Badge } from '../badge';\nimport { StyledSideNavigationMenu } from './styles';\nimport {\n SideNavigationMenuContextProps,\n SideNavigationMenuProps,\n SideNavigationMenuReducerActionType,\n} from './types';\nimport { SideNavigationMenuContext } from './context';\nimport { SideNavigationMenuReducer } from './reducer';\nimport { SideNavigationMenuBarContext } from '../side-navigation-menu-bar/context';\nimport { warnIfNoAccessibleLabelFound } from '../../utils/warnIfNoAccessibleLabelFound';\nimport { filterComponents } from '../../utils/filterComponents';\n\nconst COMPONENT_NAME = 'SideNavigationMenu';\nconst CLASSNAME = 'redsift-side-navigation-menu';\nconst DEFAULT_PROPS: Partial<SideNavigationMenuProps> = {};\n\n/**\n * The SideNavigationMenu component.\n */\nexport const SideNavigationMenu: Comp<SideNavigationMenuProps, HTMLDivElement> =\n forwardRef((props, ref) => {\n const {\n 'aria-label': ariaLabel,\n buttonProps = {},\n buttonRef = useRef<HTMLButtonElement>() as MutableRefObject<HTMLButtonElement>,\n children,\n className,\n hasBadge,\n icon,\n iconProps,\n iconRef = useRef<HTMLElement>(),\n isDisabled,\n isExpanded: propsIsExpanded,\n menuProps = {},\n menuRef = useRef<HTMLUListElement>(),\n tabIndex,\n withoutIcons,\n ...forwardedProps\n } = props;\n\n warnIfNoAccessibleLabelFound(props);\n\n const sideNavigationMenuBarContext = useContext(\n SideNavigationMenuBarContext\n );\n const [isFirstChild, setIsFirstChild] = useState(false);\n const { menuItems: menubarItems } = sideNavigationMenuBarContext || {};\n\n /**\n * Create an array containing only valid children which can only be SideNavigationMenuItem.\n * This prevent the navigation menubar to have more than two levels.\n */\n const childArray = filterComponents(SideNavigationMenuItem)(children);\n const renderedMenuItems = childArray.map((child, index) => {\n return (\n <li key={child.key ?? index} role=\"none\">\n {React.cloneElement(child, {\n icon: undefined, // Second-level item should not have icon\n isDisabled: child.props.isDisabled || isDisabled || undefined,\n isSecondLevel: true,\n key: child.key ?? index,\n withoutIcons,\n })}\n </li>\n );\n });\n\n const menuItems = useRef<Set<HTMLAnchorElement | HTMLButtonElement>>(\n new Set()\n ).current;\n const [state, dispatch] = useReducer(SideNavigationMenuReducer, {\n currentIndex: null!,\n isExpanded: Boolean(propsIsExpanded),\n previousIndex: null!,\n });\n const { isExpanded, currentIndex, previousIndex } = state;\n\n const first = useCallback(\n () =>\n dispatch({ type: SideNavigationMenuReducerActionType.Move, index: 0 }),\n []\n );\n\n const last = useCallback(\n () =>\n dispatch({\n type: SideNavigationMenuReducerActionType.Move,\n index: menuItems.size - 1,\n }),\n [menuItems.size]\n );\n\n const move = useCallback(\n (index: number) =>\n dispatch({ type: SideNavigationMenuReducerActionType.Move, index }),\n []\n );\n\n const open = useCallback(\n () => dispatch({ type: SideNavigationMenuReducerActionType.Expand }),\n []\n );\n\n const close = useCallback(\n (focusButton?: boolean) => {\n if (isExpanded) {\n if (focusButton) {\n buttonRef.current.focus();\n }\n\n dispatch({ type: SideNavigationMenuReducerActionType.Collapse });\n }\n },\n [isExpanded]\n );\n\n const previous = () => {\n const index = currentIndex === 0 ? menuItems.size - 1 : currentIndex - 1;\n move(index);\n };\n\n const next = () => {\n const index = currentIndex === menuItems.size - 1 ? 0 : currentIndex + 1;\n move(index);\n };\n\n const match = (e: React.KeyboardEvent<HTMLUListElement>) => {\n const items = Array.from(menuItems);\n\n // Reorder the array, starting with the currentNode\n const reorderedItems = [\n ...items.slice(currentIndex),\n ...items.slice(0, currentIndex),\n ];\n\n // Find all nodes that begin with the pressed letter\n const matches = reorderedItems.filter((menuItem) => {\n const { textContent } = menuItem;\n // istanbul ignore next\n const firstLetter = textContent?.toLowerCase().charAt(0);\n return e.key === firstLetter;\n });\n\n // Exit early if there are no matches\n if (!matches.length) {\n return;\n }\n\n // If the focused item is a match, focus the next match.\n // Otherwise, focus the first match\n const currentNode = items[currentIndex];\n const nextMatch = matches.includes(currentNode) ? matches[1] : matches[0];\n const index = items.findIndex((item) => {\n return item === nextMatch;\n });\n\n move(index);\n };\n\n const value = useMemo<SideNavigationMenuContextProps>(\n () => ({ menuItems }),\n [menuItems]\n );\n\n useEffect(() => {\n const items = Array.from(menuItems);\n\n if (currentIndex !== previousIndex) {\n const currentNode = items[currentIndex] as HTMLElement;\n currentNode?.focus();\n }\n }, [menuItems, currentIndex, previousIndex]);\n\n useEffect(() => {\n if (!sideNavigationMenuBarContext) {\n setIsFirstChild(true);\n return;\n }\n\n const menuItemNode = (buttonRef as MutableRefObject<HTMLButtonElement>)\n .current;\n\n if (menuItemNode) {\n menubarItems.add(menuItemNode);\n }\n\n return () => {\n menubarItems.delete(menuItemNode);\n };\n }, [menubarItems]);\n\n const keyDownOnButton = (e: KeyboardEvent<HTMLButtonElement>) => {\n if (isDisabled) {\n return;\n }\n const currentNode = e.target as HTMLUListElement;\n\n switch (e.code) {\n case 'Enter':\n case 'Space':\n e.stopPropagation();\n currentNode.click();\n first();\n break;\n case 'ArrowRight':\n e.stopPropagation();\n first();\n break;\n case 'ArrowLeft':\n last();\n break;\n default:\n break;\n }\n };\n\n const buttonEventHandler = {\n onClick: (event: MouseEvent<HTMLButtonElement>) => {\n if (isDisabled) {\n return;\n }\n\n buttonProps.onClick?.(event);\n event.stopPropagation();\n if (isExpanded) {\n close();\n } else {\n open();\n }\n },\n onKeyDown: (event: KeyboardEvent<HTMLButtonElement>) => {\n buttonProps.onKeyDown?.(event);\n keyDownOnButton(event);\n },\n };\n\n const keyDownOnMenuItemList = (e: KeyboardEvent<HTMLUListElement>) => {\n const currentNode = e.target as HTMLUListElement;\n\n switch (e.code) {\n case 'ArrowUp':\n e.stopPropagation();\n e.preventDefault();\n previous();\n break;\n case 'ArrowDown':\n e.stopPropagation();\n e.preventDefault();\n next();\n break;\n case 'ArrowLeft':\n e.preventDefault();\n e.stopPropagation();\n close(true);\n break;\n case 'ArrowRight':\n e.preventDefault();\n close(!sideNavigationMenuBarContext);\n break;\n case 'Home':\n e.stopPropagation();\n e.preventDefault();\n first();\n break;\n case 'End':\n e.stopPropagation();\n e.preventDefault();\n last();\n break;\n case 'Enter':\n case 'Space':\n e.preventDefault();\n currentNode.click();\n break;\n case 'Escape':\n e.stopPropagation();\n e.preventDefault();\n close(true);\n break;\n default:\n e.stopPropagation();\n match(e);\n break;\n }\n };\n\n const menuItemListEventHandler = {\n onKeyDown: (event: KeyboardEvent<HTMLUListElement>) => {\n menuProps.onKeyDown?.(event);\n keyDownOnMenuItemList(event);\n },\n onClick: (event: MouseEvent<HTMLUListElement>) => {\n if (isDisabled) {\n return;\n }\n menuProps.onClick?.(event);\n },\n };\n\n return (\n <StyledSideNavigationMenu\n {...forwardedProps}\n $isDisabled={isDisabled}\n $isExpanded={isExpanded}\n $withoutIcons={withoutIcons}\n className={classNames(SideNavigationMenu.className, className)}\n ref={ref as MutableRefObject<HTMLDivElement>}\n tabIndex={undefined}\n >\n <SideNavigationMenuContext.Provider value={value}>\n <button\n {...buttonProps}\n aria-disabled={isDisabled}\n aria-expanded={isExpanded ? 'true' : 'false'}\n aria-haspopup=\"true\"\n ref={buttonRef as MutableRefObject<HTMLButtonElement>}\n role=\"menuitem\"\n tabIndex={tabIndex !== undefined ? tabIndex : isFirstChild ? 0 : -1}\n type=\"button\"\n {...buttonEventHandler}\n >\n {icon ? (\n <Icon\n color=\"var(--redsift-side-navigation-color-menu-item-text-resting)\"\n {...iconProps}\n icon={icon}\n ref={iconRef as MutableRefObject<HTMLElement>}\n className={classNames(iconProps?.className, 'first')}\n size={IconSize.small}\n />\n ) : null}\n <span>{ariaLabel}</span>\n {hasBadge && !isExpanded ? <Badge color=\"error\" /> : null}\n {isExpanded ? (\n <Icon\n icon={mdiChevronDown}\n className={`${SideNavigationMenu.className}__expand-icon`}\n size={IconSize.small}\n />\n ) : (\n <Icon\n icon={mdiChevronRight}\n className={`${SideNavigationMenu.className}__expand-icon`}\n size={IconSize.small}\n />\n )}\n </button>\n <ul\n {...menuProps}\n aria-label={ariaLabel}\n aria-orientation=\"vertical\"\n hidden={!isExpanded}\n ref={menuRef as MutableRefObject<HTMLUListElement>}\n role=\"menu\"\n {...menuItemListEventHandler}\n >\n {renderedMenuItems}\n </ul>\n </SideNavigationMenuContext.Provider>\n </StyledSideNavigationMenu>\n );\n });\nSideNavigationMenu.className = CLASSNAME;\nSideNavigationMenu.defaultProps = DEFAULT_PROPS;\nSideNavigationMenu.displayName = COMPONENT_NAME;\n","import styled, { css } from 'styled-components';\nimport { StyledSideNavigationMenuBarProps } from './types';\n\n/**\n * Component style.\n */\nexport const StyledSideNavigationMenuBar = styled.nav<StyledSideNavigationMenuBarProps>`\n background-color: var(--redsift-side-navigation-color-background);\n overflow-y: auto;\n width: 240px;\n\n ${({ $marginTop = 0 }) =>\n $marginTop\n ? css`\n height: calc(100% - ${$marginTop}px);\n `\n : ''}\n\n ul {\n list-style: none;\n margin: unset;\n padding: unset;\n }\n\n scrollbar-color: var(--redsift-side-navigation-color-scrollbar-resting)\n transparent;\n scrollbar-width: thin;\n\n &::-webkit-scrollbar {\n block-size: 9px;\n inline-size: 9px;\n }\n\n &::-webkit-scrollbar-thumb {\n background-clip: padding-box;\n background-color: var(--redsift-side-navigation-color-scrollbar-resting);\n border-radius: 0px;\n border-left: 2px solid transparent;\n border-right: 2px solid transparent;\n }\n\n &::-webkit-scrollbar-track {\n background-color: transparent;\n }\n\n &::-webkit-scrollbar-thumb:horizontal,\n &::-webkit-scrollbar-thumb:vertical {\n &:hover {\n background-color: var(--redsift-side-navigation-color-scrollbar-hover);\n }\n }\n\n &::-webkit-scrollbar-corner {\n visibility: hidden;\n }\n`;\n","import React, {\n forwardRef,\n KeyboardEvent,\n MutableRefObject,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport classNames from 'classnames';\nimport { Comp } from '../../types';\nimport { SideNavigationMenu } from '../side-navigation-menu';\nimport { SideNavigationMenuItem } from '../side-navigation-menu-item';\nimport { warnIfNoAccessibleLabelFound } from '../../utils/warnIfNoAccessibleLabelFound';\nimport { StyledSideNavigationMenuBar } from './styles';\nimport {\n SideNavigationMenuBarProps,\n SideNavigationMenuBarContextProps,\n} from './types';\nimport { SideNavigationMenuBarContext } from './context';\nimport { useBoundingClientRect } from '../../hooks/useBoundingRect';\nimport { filterComponents } from '../../utils/filterComponents';\n\nconst COMPONENT_NAME = 'SideNavigationMenuBar';\nconst CLASSNAME = 'redsift-side-navigation-menu-bar';\nconst DEFAULT_PROPS: Partial<SideNavigationMenuBarProps> = {};\n\n/**\n * Hook to store the previous index for further use\n */\nconst usePrevious = (value: number) => {\n const ref = useRef(0);\n\n useEffect(() => {\n ref.current = value;\n }, [value]);\n\n return ref.current;\n};\n\n/**\n * The SideNavigationMenuBar component.\n */\nexport const SideNavigationMenuBar: Comp<\n SideNavigationMenuBarProps,\n HTMLElement\n> = forwardRef((props, ref) => {\n const navRef = (ref ||\n useRef<HTMLElement>()) as MutableRefObject<HTMLElement>;\n\n const {\n 'aria-label': ariaLabel,\n 'aria-labelledby': ariaLabelledby,\n children,\n className,\n isDisabled,\n menubarProps = {},\n menubarRef = useRef<HTMLUListElement>(),\n withoutIcons,\n ...forwardedProps\n } = props;\n\n warnIfNoAccessibleLabelFound(props);\n const { top } = useBoundingClientRect(navRef, [children]);\n\n /**\n * Create an array containing only valid children being either SideNavigationMenu or SideNavigationMenuItem.\n */\n const childArray = filterComponents([\n SideNavigationMenu,\n SideNavigationMenuItem,\n ])(children);\n const navItems = childArray.map((child, index) => {\n return (\n <li key={child.key ?? index} role=\"none\">\n {React.cloneElement(child, {\n isDisabled: child.props.isDisabled || isDisabled || undefined,\n key: child.key ?? index,\n // First-level children should have icon, even empty one (except when withoutIcons is set to true)\n icon: withoutIcons ? undefined : child.props.icon || 'M 0,0',\n withoutIcons,\n tabIndex: index === 0 ? 0 : -1,\n })}\n </li>\n );\n });\n\n const menuItems = useRef<Set<HTMLAnchorElement | HTMLButtonElement>>(\n new Set()\n ).current;\n const [currentIndex, setCurrentIndex] = useState(0);\n const previousIndex = usePrevious(currentIndex);\n\n const first = () => setCurrentIndex(0);\n\n const last = () => setCurrentIndex(menuItems.size - 1);\n\n const next = () => {\n const index = currentIndex === menuItems.size - 1 ? 0 : currentIndex + 1;\n setCurrentIndex(index);\n };\n\n const previous = () => {\n const index = currentIndex === 0 ? menuItems.size - 1 : currentIndex - 1;\n setCurrentIndex(index);\n };\n\n const match = (event: React.KeyboardEvent<HTMLUListElement>) => {\n const items = Array.from(menuItems);\n\n // Reorder the array, starting with the currentNode\n const reorderedItems = [\n ...items.slice(currentIndex),\n ...items.slice(0, currentIndex),\n ];\n\n // Find all nodes that begin with the pressed letter\n const matches = reorderedItems.filter((menuItem) => {\n const { textContent } = menuItem;\n // istanbul ignore next\n const firstLetter = textContent?.toLowerCase().charAt(0);\n return event.key === firstLetter;\n });\n\n // Exit early if there are no matches\n if (!matches.length) {\n return;\n }\n\n // If the focused item is a match, focus the next match.\n // Otherwise, focus the first match\n const currentNode = items[currentIndex];\n const nextMatch = matches.includes(currentNode) ? matches[1] : matches[0];\n const index = items.findIndex((item) => {\n return item === nextMatch;\n });\n\n setCurrentIndex(index);\n };\n\n const keyDown = (e: KeyboardEvent<HTMLUListElement>) => {\n menubarProps.onKeyDown?.(e);\n e.stopPropagation();\n\n const currentNode = e.target as HTMLUListElement;\n // istanbul ignore next\n const parentMenu = currentNode?.parentNode?.parentNode as HTMLElement;\n const isFromSubmenu = parentMenu.getAttribute('role') === 'menu';\n\n switch (e.code) {\n case 'ArrowUp':\n e.preventDefault();\n previous();\n break;\n case 'ArrowDown':\n e.preventDefault();\n next();\n break;\n case 'ArrowRight':\n e.preventDefault();\n if (isFromSubmenu) {\n next();\n }\n break;\n case 'End':\n e.preventDefault();\n last();\n break;\n case 'Home':\n e.preventDefault();\n first();\n break;\n case 'Enter':\n case 'Space':\n e.preventDefault();\n currentNode.click();\n break;\n default:\n match(e);\n break;\n }\n };\n\n const value = useMemo<SideNavigationMenuBarContextProps>(\n () => ({ menuItems }),\n [menuItems]\n );\n\n useEffect(() => {\n if (currentIndex !== previousIndex) {\n const items = Array.from(menuItems);\n const currentNode = items[currentIndex] as HTMLElement;\n const previousNode = items[previousIndex] as HTMLElement;\n\n // istanbul ignore next\n previousNode?.setAttribute('tabindex', '-1');\n currentNode?.setAttribute('tabindex', '0');\n currentNode?.focus();\n }\n }, [currentIndex, previousIndex, menuItems]);\n\n return (\n <StyledSideNavigationMenuBar\n {...forwardedProps}\n $isDisabled={isDisabled}\n $marginTop={top}\n $withoutIcons={withoutIcons}\n aria-label={ariaLabel}\n aria-labelledby={ariaLabelledby}\n className={classNames(SideNavigationMenuBar.className, className)}\n ref={navRef as MutableRefObject<HTMLElement>}\n >\n <SideNavigationMenuBarContext.Provider value={value}>\n <ul\n {...menubarProps}\n aria-label={ariaLabel}\n aria-labelledby={ariaLabelledby}\n aria-orientation=\"vertical\"\n onKeyDown={keyDown}\n ref={menubarRef as MutableRefObject<HTMLUListElement>}\n role=\"menubar\"\n >\n {navItems}\n </ul>\n </SideNavigationMenuBarContext.Provider>\n </StyledSideNavigationMenuBar>\n );\n});\nSideNavigationMenuBar.className = CLASSNAME;\nSideNavigationMenuBar.defaultProps = DEFAULT_PROPS;\nSideNavigationMenuBar.displayName = COMPONENT_NAME;\n","import React, { MutableRefObject } from 'react';\nimport { SideNavigationMenu } from '../side-navigation-menu';\nimport { SideNavigationMenuItem } from '../side-navigation-menu-item';\nimport {\n MenuBarItems,\n MenuItem,\n Menu,\n SideNavigationMenuBarProps,\n} from './types';\n\nconst isMenu = (item: MenuItem | Menu): item is Menu => {\n return (item as Menu).children !== undefined;\n};\n\nexport interface UseSideNavigationMenuBarProps {\n items: MenuBarItems;\n isActive?: (href: string) => boolean;\n}\n\nexport const useSideNavigationMenuBar = ({\n items,\n isActive,\n}: UseSideNavigationMenuBarProps): Omit<SideNavigationMenuBarProps, 'ref'> => {\n const menuBarChildren: SideNavigationMenuBarProps['children'][] = [];\n\n items.map((item) => {\n if (!isMenu(item)) {\n const { title, href, ref, ...rest } = item;\n menuBarChildren.push(\n <SideNavigationMenuItem\n key={title}\n isCurrent={isActive ? isActive(href!) : undefined}\n {...rest}\n href={href}\n ref={ref as MutableRefObject<HTMLAnchorElement>}\n >\n {title}\n </SideNavigationMenuItem>\n );\n } else {\n const { title, children, ref, ...rest } = item;\n menuBarChildren.push(\n <SideNavigationMenu\n key={title}\n aria-label={title}\n isExpanded={\n isActive\n ? children.filter((child) => isActive(child.href!)).length > 0\n : undefined\n }\n hasBadge={children.filter((child) => child.badge).length > 0}\n {...rest}\n ref={ref as MutableRefObject<HTMLDivElement>}\n >\n {children.map((child) => {\n const { title, href, ref, ...rest } = child;\n return (\n <SideNavigationMenuItem\n key={title}\n href={href}\n isCurrent={isActive ? isActive(href!) : undefined}\n {...rest}\n ref={ref as MutableRefObject<HTMLAnchorElement>}\n >\n {title}\n </SideNavigationMenuItem>\n );\n })}\n </SideNavigationMenu>\n );\n }\n });\n\n return {\n children: menuBarChildren,\n };\n};\n","import React from 'react';\nimport {\n SideNavigationMenuBar,\n useSideNavigationMenuBar,\n UseSideNavigationMenuBarProps,\n} from '../side-navigation-menu-bar';\nimport { AppSidePanelProps } from './types';\n\nexport const useAppSidePanel = ({\n items,\n isActive,\n}: UseSideNavigationMenuBarProps): Omit<AppSidePanelProps, 'ref'> => {\n const sideNavigationMenuBarProps = useSideNavigationMenuBar({\n items,\n isActive,\n });\n\n return {\n children: (\n <SideNavigationMenuBar\n {...sideNavigationMenuBarProps}\n aria-label=\"Navigation\"\n />\n ),\n };\n};\n","import styled, { css } from 'styled-components';\nimport { StyledBreadcrumbItemProps } from './types';\n\n/**\n * Component style.\n */\nexport const StyledBreadcrumbItem = styled.a<StyledBreadcrumbItemProps>`\n background: none;\n border: none;\n font-family: var(--redsift-typography-body-font-family);\n font-size: var(--redsift-typography-body-font-size);\n font-weight: var(--redsift-typography-body-font-weight);\n line-height: var(--redsift-typography-body-line-height);\n padding: 4px;\n text-decoration: none;\n\n ${({ $isDisabled, $isCurrent }) => css`\n ${$isDisabled\n ? `\n color: var(--redsift-color-neutral-midgrey);\n `\n : $isCurrent\n ? `\n color: var(--redsift-color-default-primary);\n `\n : `\n color: var(--redsift-color-neutral-darkgrey);\n `}\n\n ${!$isDisabled &&\n !$isCurrent &&\n css`\n &:hover,\n &:focus-visible {\n cursor: pointer;\n text-decoration: underline;\n text-underline-offset: 2px;\n }\n `}\n `}\n\n &:focus-visible {\n outline: 2px solid var(--redsift-color-neutral-darkgrey);\n }\n`;\n","import React, { forwardRef, RefObject } from 'react';\nimport classNames from 'classnames';\nimport { Comp } from '../../types';\nimport { warnIfNoAccessibleLabelFound } from '../../utils/warnIfNoAccessibleLabelFound';\nimport { StyledBreadcrumbItem } from './styles';\nimport { BreadcrumbItemProps } from './types';\n\nconst COMPONENT_NAME = 'BreadcrumbItem';\nconst CLASSNAME = 'redsift-breadcrumb-item';\nconst DEFAULT_PROPS: Partial<BreadcrumbItemProps> = {};\n\n/**\n * The BreadcrumbItem components is a list of links to the parent pages of the current page in hierarchical order.\n */\nexport const BreadcrumbItem: Comp<BreadcrumbItemProps, HTMLAnchorElement> =\n forwardRef((props, ref) => {\n const {\n children,\n className,\n href,\n isCurrent,\n isDisabled,\n ...forwardedProps\n } = props;\n\n warnIfNoAccessibleLabelFound(props, [children]);\n\n return (\n <StyledBreadcrumbItem\n role=\"link\"\n tabIndex={!isDisabled && !isCurrent ? 0 : undefined}\n {...forwardedProps}\n $isCurrent={isCurrent}\n $isDisabled={isDisabled}\n aria-current={isCurrent ? 'page' : undefined}\n aria-disabled={isDisabled || isCurrent}\n className={classNames(BreadcrumbItem.className, className)}\n href={!isDisabled && !isCurrent ? href : undefined}\n ref={ref as RefObject<HTMLAnchorElement>}\n >\n {children}\n </StyledBreadcrumbItem>\n );\n });\nBreadcrumbItem.className = CLASSNAME;\nBreadcrumbItem.defaultProps = DEFAULT_PROPS;\nBreadcrumbItem.displayName = COMPONENT_NAME;\n","import styled, { css } from 'styled-components';\nimport { baseStyling } from '../shared';\nimport { StyledBreadcrumbsProps } from './types';\n\n/**\n * Component style.\n */\nexport const StyledBreadcrumbs = styled.nav<StyledBreadcrumbsProps>`\n ${baseStyling}\n\n ol {\n display: inline-flex;\n list-style: none;\n padding: unset;\n }\n\n .redsift-breadcrumbs__separator {\n font-family: var(--redsift-typography-body-font-family);\n font-size: var(--redsift-typography-body-font-size);\n font-weight: var(--redsift-typography-body-font-weight);\n line-height: var(--redsift-typography-body-line-height);\n margin: 0px 4px;\n\n ${({ $isDisabled }) =>\n $isDisabled\n ? css`\n color: var(--redsift-color-neutral-midgrey);\n `\n : css`\n color: var(--redsift-color-neutral-black);\n `}\n }\n`;\n","import React, { forwardRef, RefObject } from 'react';\nimport classNames from 'classnames';\nimport { Comp } from '../../types';\nimport { BreadcrumbItem } from '../breadcrumb-item';\nimport { warnIfNoAccessibleLabelFound } from '../../utils/warnIfNoAccessibleLabelFound';\nimport { StyledBreadcrumbs } from './styles';\nimport { BreadcrumbsProps } from './types';\nimport { filterComponents } from '../../utils';\n\nconst COMPONENT_NAME = 'Breadcrumbs';\nconst CLASSNAME = 'redsift-breadcrumbs';\nconst DEFAULT_PROPS: Partial<BreadcrumbsProps> = {};\n\n/**\n * The Breadcrumbs components is a list of links to the parent pages of the current page in hierarchical order.\n */\nexport const BaseBreadcrumbs: Comp<BreadcrumbsProps, HTMLElement> = forwardRef(\n (props, ref) => {\n const { children, className, isDisabled, ...forwardedProps } = props;\n\n warnIfNoAccessibleLabelFound(props);\n\n const childArray = filterComponents([Breadcrumbs.Item])(children);\n const breadcrumbItems = childArray.map((child, index) => {\n const isCurrent = index === childArray.length - 1;\n\n return (\n <li key={index}>\n <Breadcrumbs.Item\n isDisabled={child.props.isDisabled || isDisabled || undefined}\n {...child.props}\n key={child.key ?? index}\n isCurrent={isCurrent}\n />\n {isCurrent === false ? (\n <span className={`${BaseBreadcrumbs.className}__separator`}>\n {'/'}\n </span>\n ) : null}\n </li>\n );\n });\n\n return (\n <StyledBreadcrumbs\n {...forwardedProps}\n $isDisabled={isDisabled}\n className={classNames(BaseBreadcrumbs.className, className)}\n ref={ref as RefObject<HTMLElement>}\n >\n <ol>{breadcrumbItems}</ol>\n </StyledBreadcrumbs>\n );\n }\n);\nBaseBreadcrumbs.className = CLASSNAME;\nBaseBreadcrumbs.defaultProps = DEFAULT_PROPS;\nBaseBreadcrumbs.displayName = COMPONENT_NAME;\n\nexport const Breadcrumbs = Object.assign(BaseBreadcrumbs, {\n Item: BreadcrumbItem,\n});\n","import React, { forwardRef, RefObject } from 'react';\nimport classNames from 'classnames';\nimport { ColorPalette, Comp } from '../../types';\nimport { Icon } from '../icon';\nimport { ButtonVariant, StyledButton } from '../button';\nimport { ButtonLinkProps } from './types';\n\nconst COMPONENT_NAME = 'ButtonLink';\nconst CLASSNAME = 'redsift-button-link';\nconst DEFAULT_PROPS: Partial<ButtonLinkProps> = {\n color: ColorPalette.default,\n height: 'fit-content',\n variant: ButtonVariant.primary,\n};\n\n/**\n * The ButtonLink is a semantic link that looks like a button.\n *\n * For a semantic button that looks like a button, please use the Button component.\n * For a semantic link that looks like a link, please use the Link component.\n * For a semantic button that looks like a link, please use the LinkButton component.\n */\nexport const ButtonLink: Comp<ButtonLinkProps, HTMLAnchorElement> = forwardRef(\n (props, ref) => {\n const {\n as,\n children,\n className,\n color,\n href,\n isActive,\n isDisabled,\n leftIcon,\n rightIcon,\n target,\n variant,\n ...forwardedProps\n } = props;\n\n return (\n <StyledButton\n as={as || 'a'}\n role=\"link\"\n tabIndex={!isDisabled ? 0 : undefined}\n {...forwardedProps}\n $color={color}\n $isActive={isActive}\n $isDisabled={isDisabled}\n $variant={variant}\n className={classNames(ButtonLink.className, className)}\n href={!isDisabled ? href : undefined}\n ref={ref as RefObject<HTMLAnchorElement>}\n target={target}\n >\n {leftIcon ? (\n <Icon icon={leftIcon} aria-hidden=\"true\" className=\"left\" />\n ) : null}\n {children}\n {rightIcon ? (\n <Icon icon={rightIcon} aria-hidden=\"true\" className=\"right\" />\n ) : null}\n </StyledButton>\n );\n }\n);\nButtonLink.className = CLASSNAME;\nButtonLink.defaultProps = DEFAULT_PROPS;\nButtonLink.displayName = COMPONENT_NAME;\n","import enUS from './en-US.json';\nimport frFR from './fr-FR.json';\n\nexport default {\n 'en-US': enUS,\n 'fr-FR': frFR,\n};\n","import styled from 'styled-components';\nimport { baseStyling } from '../shared';\nimport { StyledCardProps } from './types';\n\n/**\n * Component style.\n */\nexport const StyledCard = styled.div<StyledCardProps>`\n ${baseStyling}\n\n background-color: var(--redsift-color-neutral-white);\n box-shadow: 0px 1px 2px rgba(0, 0, 0, 0.5);\n display: flex;\n flex-direction: column;\n padding: 16px;\n\n .redsift-card__header {\n align-items: flex-start;\n display: flex;\n justify-content: space-between;\n }\n\n .redsift-card-header__icon-button {\n margin-top: 8px;\n margin-left: auto;\n margin-right: 8px;\n\n [dir='rtl'] & {\n margin-left: 8px;\n margin-right: auto;\n }\n }\n\n .redsift-card__content {\n visibility: ${({ $isCollapsed }) => (!$isCollapsed ? 'visible' : 'hidden')};\n overflow: ${({ $isCollapsed }) => (!$isCollapsed ? 'visible' : 'hidden')};\n height: ${({ $isCollapsed }) => (!$isCollapsed ? 'auto' : '0px')};\n }\n`;\n","import styled from 'styled-components';\nimport { StyledCardHeaderProps } from './types';\n\n/**\n * Component style.\n */\nexport const StyledCardHeader = styled.div<StyledCardHeaderProps>`\n color: var(--redsift-color-neutral-black);\n\n .redsift-card-header__header {\n align-items: center;\n display: flex;\n gap: 8px;\n padding: 10px 0px;\n margin: 0px;\n\n .redsift-icon {\n color: var(--redsift-color-neutral-black);\n padding-right: 8px;\n font-size: 30px;\n line-height: 30px;\n height: 30px;\n }\n }\n\n .redsift-card-header__subheader {\n font-family: var(--redsift-typography-body-font-family);\n font-size: var(--redsift-typography-body-font-size);\n font-weight: var(--redsift-typography-body-font-weight);\n line-height: var(--redsift-typography-body-line-height);\n }\n`;\n","import styled, { keyframes } from 'styled-components';\nimport { baseInternalSpacing, baseStyling } from '../shared';\nimport { StyledSkeletonProps } from './types';\n\n/**\n * Component style.\n */\nconst wave = keyframes`\n 0% {\n -webkit-transform: translateX(-100%);\n -moz-transform: translateX(-100%);\n -ms-transform: translateX(-100%);\n transform: translateX(-100%);\n }\n\n 50% {\n -webkit-transform: translateX(100%);\n -moz-transform: translateX(100%);\n -ms-transform: translateX(100%);\n transform: translateX(100%);\n }\n\n 100% {\n -webkit-transform: translateX(100%);\n -moz-transform: translateX(100%);\n -ms-transform: translateX(100%);\n transform: translateX(100%);\n }\n`;\n\nexport const StyledSkeleton = styled.div<StyledSkeletonProps>`\n height: fit-content;\n width: fit-content;\n\n > * {\n visibility: hidden;\n }\n\n flex: 0 0 auto;\n\n ${baseStyling}\n ${baseInternalSpacing}\n\n display: block;\n background-color: rgba(0, 0, 0, 0.11);\n position: relative;\n overflow: hidden;\n -webkit-mask-image: -webkit-radial-gradient(white, black);\n\n &::after {\n -webkit-animation: ${wave} 1.6s linear 0.5s infinite;\n animation: ${wave} 1.6s linear 0.5s infinite;\n background: linear-gradient(\n 90deg,\n transparent,\n rgba(0, 0, 0, 0.04),\n transparent\n );\n background-clip: content-box;\n content: '';\n position: absolute;\n -webkit-transform: translateX(-100%);\n -moz-transform: translateX(-100%);\n -ms-transform: translateX(-100%);\n transform: translateX(-100%);\n bottom: 0;\n left: 0;\n right: 0;\n top: 0;\n }\n`;\n","import styled, { css } from 'styled-components';\nimport { StyledSkeleton } from '../skeleton/styles';\nimport { StyledSkeletonCircleProps } from './types';\n\n/**\n * Component style.\n */\nexport const StyledSkeletonCircle = styled(\n StyledSkeleton\n)<StyledSkeletonCircleProps>`\n border-radius: 50%;\n\n ${({ height, width }) => css`\n &,\n &::after {\n ${height ? `height: ${height};` : width ? `height: ${width};` : ''}\n ${width ? `width: ${width};` : height ? `width: ${height};` : ''}\n }\n `}\n`;\n","import React, { forwardRef, RefObject } from 'react';\nimport classNames from 'classnames';\n\nimport { Comp } from '../../types';\nimport { StyledSkeletonCircle } from './styles';\nimport { SkeletonCircleProps } from './types';\n\nconst COMPONENT_NAME = 'SkeletonCircle';\nconst CLASSNAME = 'redsift-skeleton-circle';\nconst DEFAULT_PROPS: Partial<SkeletonCircleProps> = {};\n\n/**\n * The SkeletonCircle component.\n */\nexport const SkeletonCircle: Comp<SkeletonCircleProps, HTMLDivElement> =\n forwardRef((props, ref) => {\n const { children, className, isLoaded, ...forwardedProps } = props;\n\n if (isLoaded) {\n return <>{children}</>;\n }\n\n return (\n <StyledSkeletonCircle\n {...forwardedProps}\n className={classNames(SkeletonCircle.className, className)}\n ref={ref as RefObject<HTMLDivElement>}\n >\n {typeof children === 'string' ? <span>{children}</span> : children}\n </StyledSkeletonCircle>\n );\n });\nSkeletonCircle.className = CLASSNAME;\nSkeletonCircle.defaultProps = DEFAULT_PROPS;\nSkeletonCircle.displayName = COMPONENT_NAME;\n","import { ValueOf } from '../../types';\nimport { SkeletonProps } from '../skeleton/types';\n\n/**\n * Component variant.\n */\nexport const SkeletonTextVariant = {\n h1: 'h1',\n h2: 'h2',\n h3: 'h3',\n h4: 'h4',\n h5: 'h5',\n subtitle: 'subtitle',\n body: 'body',\n body2: 'body2',\n button: 'button',\n caption: 'caption',\n} as const;\nexport type SkeletonTextVariant = ValueOf<typeof SkeletonTextVariant>;\n\n/**\n * Component props.\n */\nexport interface SkeletonTextProps extends SkeletonProps {\n /** Font size. */\n fontSize?: string;\n /** Line height. */\n lineHeight?: string;\n /** Variant. */\n variant?: SkeletonTextVariant;\n}\n\nexport type StyledSkeletonTextProps = Omit<\n SkeletonTextProps,\n 'fontSize' | 'lineHeight' | 'variant'\n> & {\n $fontSize: SkeletonTextProps['fontSize'];\n $lineHeight: SkeletonTextProps['lineHeight'];\n $variant: SkeletonTextProps['variant'];\n};\n","import styled, { css } from 'styled-components';\nimport { StyledSkeleton } from '../skeleton/styles';\nimport { StyledSkeletonTextProps } from './types';\n\n/**\n * Component style.\n */\nexport const StyledSkeletonText = styled(\n StyledSkeleton\n)<StyledSkeletonTextProps>`\n background-clip: content-box;\n\n ${({ height, $fontSize, $lineHeight, $variant }) =>\n height\n ? css`\n &,\n &::after {\n height: ${height};\n }\n `\n : css`\n &,\n &::after {\n height: ${$fontSize\n ? $fontSize\n : `var(--redsift-typography-${$variant}-font-size)`};\n padding: calc(\n (\n ${$lineHeight\n ? $lineHeight\n : `var(--redsift-typography-${$variant}-line-height)`} -\n ${$fontSize\n ? $fontSize\n : `var(--redsift-typography-${$variant}-font-size)`}\n ) / 2\n )\n 0px;\n }\n `}}\n`;\n","import React, { forwardRef, RefObject } from 'react';\nimport classNames from 'classnames';\n\nimport { Comp } from '../../types';\nimport { StyledSkeletonText } from './styles';\nimport { SkeletonTextProps } from './types';\n\nconst COMPONENT_NAME = 'SkeletonText';\nconst CLASSNAME = 'redsift-skeleton-text';\nconst DEFAULT_PROPS: Partial<SkeletonTextProps> = {\n variant: 'body',\n};\n\n/**\n * The SkeletonText component.\n */\nexport const SkeletonText: Comp<SkeletonTextProps, HTMLDivElement> = forwardRef(\n (props, ref) => {\n const {\n children,\n className,\n fontSize,\n isLoaded,\n lineHeight,\n variant,\n ...forwardedProps\n } = props;\n\n if (isLoaded) {\n return <>{children}</>;\n }\n\n return (\n <StyledSkeletonText\n {...forwardedProps}\n className={classNames(SkeletonText.className, className)}\n ref={ref as RefObject<HTMLDivElement>}\n $fontSize={fontSize}\n $lineHeight={lineHeight}\n $variant={variant}\n >\n {typeof children === 'string' ? <span>{children}</span> : children}\n </StyledSkeletonText>\n );\n }\n);\nSkeletonText.className = CLASSNAME;\nSkeletonText.defaultProps = DEFAULT_PROPS;\nSkeletonText.displayName = COMPONENT_NAME;\n","import React, { forwardRef, RefObject } from 'react';\nimport classNames from 'classnames';\n\nimport { Comp } from '../../types';\nimport { StyledSkeleton } from './styles';\nimport { SkeletonProps } from './types';\nimport { SkeletonCircle } from '../skeleton-circle';\nimport { SkeletonText } from '../skeleton-text';\n\nconst COMPONENT_NAME = 'Skeleton';\nconst CLASSNAME = 'redsift-skeleton';\nconst DEFAULT_PROPS: Partial<SkeletonProps> = {};\n\n/**\n * The Skeleton component.\n */\nexport const BaseSkeleton: Comp<SkeletonProps, HTMLDivElement> = forwardRef(\n (props, ref) => {\n const { children, className, isLoaded, ...forwardedProps } = props;\n\n if (isLoaded) {\n return <>{children}</>;\n }\n\n return (\n <StyledSkeleton\n {...forwardedProps}\n className={classNames(BaseSkeleton.className, className)}\n ref={ref as RefObject<HTMLDivElement>}\n >\n {typeof children === 'string' ? <span>{children}</span> : children}\n </StyledSkeleton>\n );\n }\n);\nBaseSkeleton.className = CLASSNAME;\nBaseSkeleton.defaultProps = DEFAULT_PROPS;\nBaseSkeleton.displayName = COMPONENT_NAME;\n\nexport const Skeleton = Object.assign(BaseSkeleton, {\n Circle: SkeletonCircle,\n Text: SkeletonText,\n});\n","import React, { forwardRef, RefObject } from 'react';\nimport classNames from 'classnames';\n\nimport { Icon } from '../icon';\nimport { Heading } from '../heading';\nimport { Comp } from '../../types';\nimport { StyledCardHeader } from './styles';\nimport { CardHeaderProps } from './types';\nimport { Skeleton } from '../skeleton';\n\nconst COMPONENT_NAME = 'CardHeader';\nconst CLASSNAME = 'redsift-card-header';\nconst DEFAULT_PROPS: Partial<CardHeaderProps> = {};\n\n/**\n * The CardHeader component.\n */\nexport const CardHeader: Comp<CardHeaderProps, HTMLDivElement> = forwardRef(\n (props, ref) => {\n const {\n children,\n className,\n header,\n headingProps,\n icon,\n isLoading,\n subheader,\n ...forwardedProps\n } = props;\n\n return (\n <StyledCardHeader\n {...forwardedProps}\n className={classNames(CardHeader.className, className)}\n ref={ref as RefObject<HTMLDivElement>}\n >\n {subheader ? (\n <Skeleton.Text variant=\"body\" isLoaded={!isLoading}>\n <div className={`${CardHeader.className}__subheader`}>\n {subheader}\n </div>\n </Skeleton.Text>\n ) : null}\n {header ? (\n <Skeleton.Text\n variant=\"h2\"\n isLoaded={!isLoading}\n marginTop=\"10px\"\n marginBottom=\"10px\"\n >\n <Heading\n as=\"h2\"\n color=\"black\"\n className={`${CardHeader.className}__header`}\n variant=\"h2\"\n {...headingProps}\n >\n {icon ? <Icon icon={icon} aria-hidden=\"true\" /> : null}\n {header}\n </Heading>\n </Skeleton.Text>\n ) : null}\n {children}\n </StyledCardHeader>\n );\n }\n);\nCardHeader.className = CLASSNAME;\nCardHeader.defaultProps = DEFAULT_PROPS;\nCardHeader.displayName = COMPONENT_NAME;\n","import styled from 'styled-components';\nimport { baseContainer } from '../shared';\nimport { StyledCardBodyProps } from './types';\n\n/**\n * Component style.\n */\nexport const StyledCardBody = styled.div<StyledCardBodyProps>`\n ${baseContainer}\n\n color: var(--redsift-color-neutral-darkgrey);\n font-family: var(--redsift-typography-body2-font-family);\n font-size: var(--redsift-typography-body2-font-size);\n font-weight: var(--redsift-typography-body2-font-weight);\n line-height: var(--redsift-typography-body2-line-height);\n padding: 16px 0px;\n`;\n","import React, { forwardRef, RefObject } from 'react';\nimport classNames from 'classnames';\n\nimport { Comp } from '../../types';\nimport { StyledCardBody } from './styles';\nimport { CardBodyProps } from './types';\n\nconst COMPONENT_NAME = 'CardBody';\nconst CLASSNAME = 'redsift-card-body';\nconst DEFAULT_PROPS: Partial<CardBodyProps> = {};\n\n/**\n * The CardBody component.\n */\nexport const CardBody: Comp<CardBodyProps, HTMLDivElement> = forwardRef(\n (props, ref) => {\n const { children, className, ...forwardedProps } = props;\n\n return (\n <StyledCardBody\n {...forwardedProps}\n className={classNames(CardBody.className, className)}\n ref={ref as RefObject<HTMLDivElement>}\n >\n {children}\n </StyledCardBody>\n );\n }\n);\nCardBody.className = CLASSNAME;\nCardBody.defaultProps = DEFAULT_PROPS;\nCardBody.displayName = COMPONENT_NAME;\n","import styled from 'styled-components';\nimport { baseContainer } from '../shared';\nimport { StyledCardActionsProps } from './types';\n\n/**\n * Component style.\n */\nexport const StyledCardActions = styled.div<StyledCardActionsProps>`\n ${baseContainer}\n\n margin-top: 8px;\n margin-bottom: 8px;\n`;\n","import React, { forwardRef, RefObject } from 'react';\nimport classNames from 'classnames';\n\nimport { Comp } from '../../types';\nimport { StyledCardActions } from './styles';\nimport { CardActionsProps } from './types';\n\nconst COMPONENT_NAME = 'CardActions';\nconst CLASSNAME = 'redsift-card-actions';\nconst DEFAULT_PROPS: Partial<CardActionsProps> = {\n display: 'flex',\n flexDirection: 'row',\n};\n\n/**\n * The CardActions component.\n */\nexport const CardActions: Comp<CardActionsProps, HTMLDivElement> = forwardRef(\n (props, ref) => {\n const { children, className, ...forwardedProps } = props;\n\n return (\n <StyledCardActions\n {...forwardedProps}\n className={classNames(CardActions.className, className)}\n ref={ref as RefObject<HTMLDivElement>}\n >\n {children}\n </StyledCardActions>\n );\n }\n);\nCardActions.className = CLASSNAME;\nCardActions.defaultProps = DEFAULT_PROPS;\nCardActions.displayName = COMPONENT_NAME;\n","import React, {\n forwardRef,\n RefObject,\n useCallback,\n useEffect,\n useState,\n} from 'react';\nimport classNames from 'classnames';\n\nimport { useLocalizedStringFormatter } from 'react-aria';\nimport intlMessages from './intl';\n\nimport { mdiChevronDown, mdiChevronUp } from '@redsift/icons';\nimport { IconButton } from '../icon-button';\nimport { Comp } from '../../types';\nimport { StyledCard } from './styles';\nimport { CardProps } from './types';\nimport { partitionComponents } from '../../utils/partitionComponents';\nimport { isComponent } from '../../utils/isComponent';\nimport { CardHeader } from '../card-header';\nimport { CardBody } from '../card-body';\nimport { CardActions } from '../card-actions';\n\nconst COMPONENT_NAME = 'Card';\nconst CLASSNAME = 'redsift-card';\nconst DEFAULT_PROPS: Partial<CardProps> = {};\n\n/**\n * The Card component.\n */\nconst BaseCard: Comp<CardProps, HTMLDivElement> = forwardRef((props, ref) => {\n const {\n children,\n className,\n defaultCollapsed,\n isCollapsed: propsIsCollapsed,\n isCollapsible,\n onCollapse,\n ...forwardedProps\n } = props;\n\n const stringFormatter = useLocalizedStringFormatter(intlMessages);\n\n const [isCollapsed, setIsCollapsed] = useState(\n propsIsCollapsed ?? defaultCollapsed\n );\n\n useEffect(() => {\n setIsCollapsed(propsIsCollapsed ?? defaultCollapsed);\n }, [propsIsCollapsed, defaultCollapsed]);\n\n const handleCollapse = useCallback(\n (collapsed: boolean) => {\n if (onCollapse) {\n onCollapse(collapsed);\n }\n if (propsIsCollapsed === undefined || propsIsCollapsed === null) {\n setIsCollapsed(collapsed);\n }\n },\n [onCollapse]\n );\n\n const [[header], [body], [actions]] = partitionComponents(\n React.Children.toArray(children),\n [\n isComponent('CardHeader'),\n isComponent('CardBody'),\n isComponent('CardActions'),\n ]\n );\n\n return (\n <StyledCard\n {...forwardedProps}\n className={classNames(BaseCard.className, className)}\n ref={ref as RefObject<HTMLDivElement>}\n $isCollapsed={isCollapsed}\n >\n {header || isCollapsible ? (\n <div className={`${BaseCard.className}__header`}>\n {header ? header : null}\n\n {isCollapsible ? (\n <IconButton\n aria-label={stringFormatter.format(\n isCollapsed ? 'expand' : 'collapse'\n )}\n className={`${BaseCard.className}-header__icon-button`}\n color=\"question\"\n icon={isCollapsed ? mdiChevronDown : mdiChevronUp}\n onPress={() => handleCollapse(!isCollapsed)}\n />\n ) : null}\n </div>\n ) : null}\n\n {body || actions ? (\n <div className={`${BaseCard.className}__content`}>\n {body}\n {actions}\n </div>\n ) : null}\n </StyledCard>\n );\n});\nBaseCard.className = CLASSNAME;\nBaseCard.defaultProps = DEFAULT_PROPS;\nBaseCard.displayName = COMPONENT_NAME;\n\nexport const Card = Object.assign(BaseCard, {\n Header: CardHeader,\n Body: CardBody,\n Actions: CardActions,\n});\n","import { ComponentProps } from 'react';\nimport { ValueOf, StylingProps } from '../../types';\n\n/**\n * Context props.\n */\nexport type CheckboxGroupState = {\n /** Adds a value to the set of selected values. */\n addValue(value: string): void;\n /** Whether the checkbox group is disabled or not. */\n readonly isDisabled: boolean;\n /** Whether the checkbox group is read only or not. */\n readonly isReadOnly: boolean;\n /** Removes a value from the set of selected values. */\n removeValue(value: string): void;\n /** Sets the selected values. */\n setValue(value: string[]): void;\n /** Current selected values. */\n readonly value: readonly string[];\n};\n\n/**\n * Component orientation.\n */\nexport const CheckboxGroupOrientation = {\n horizontal: 'horizontal',\n vertical: 'vertical',\n} as const;\nexport type CheckboxGroupOrientation = ValueOf<typeof CheckboxGroupOrientation>;\n\n/**\n * Component props.\n */\nexport interface CheckboxGroupProps\n extends Omit<ComponentProps<'div'>, 'onChange'>,\n StylingProps {\n /**\n * Default selected values.\n * Used for uncontrolled version.\n */\n defaultValues?: string[];\n /** Description of the checkbox group. */\n description?: string;\n /** Whether the component is disabled or not. */\n isDisabled?: boolean;\n /** Whether the component is invalid or not. */\n isInvalid?: boolean;\n /** Whether the component is read only or not. */\n isReadOnly?: boolean;\n /** Whether the component is required or not. */\n isRequired?: boolean;\n /** Label of the checkbox group. */\n label?: string;\n /** Method to handle component change. */\n onChange?(values: string[]): void;\n /** Method to handle component change. */\n orientation?: CheckboxGroupOrientation;\n /** List of possible values. Useful to select all. */\n possibleValues?: string[];\n /**\n * Currently selected values.\n * Used for controlled version.\n */\n value?: string[];\n}\n\nexport type StyledCheckboxGroupProps = Omit<\n CheckboxGroupProps,\n 'isDisabled' | 'isInvalid' | 'isReadOnly' | 'orientation' | 'isRequired'\n> & {\n $isDisabled: CheckboxGroupProps['isDisabled'];\n $isInvalid: CheckboxGroupProps['isInvalid'];\n $isReadOnly: CheckboxGroupProps['isReadOnly'];\n $orientation: CheckboxGroupProps['orientation'];\n};\n","import React from 'react';\nimport { CheckboxGroupState } from './types';\n\nexport const CheckboxGroupContext =\n React.createContext<CheckboxGroupState | null>(null);\n","import styled from 'styled-components';\nimport { baseStyling } from '../shared';\nimport { CheckboxGroupOrientation, StyledCheckboxGroupProps } from './types';\n\n/**\n * Component style.\n */\nexport const StyledCheckboxGroup = styled.div<StyledCheckboxGroupProps>`\n ${baseStyling}\n\n display: flex;\n flex-direction: column;\n\n ${({ $orientation }) =>\n $orientation === CheckboxGroupOrientation.vertical\n ? `\n div.redsift-checkbox-group-boxes {\n display: flex;\n flex-direction: column;\n }\n `\n : `\n div.redsift-checkbox-group-boxes {\n display: flex;\n flex-direction: row;\n flex-wrap: wrap;\n }\n `}\n\n span.redsift-checkbox-group-label {\n font-family: var(--redsift-typography-body-font-family);\n font-weight: var(--redsift-typography-body-font-weight);\n font-size: var(--redsift-typography-body-font-size);\n line-height: var(--redsift-typography-body-line-height);\n\n color: var(--redsift-color-neutral-black);\n ${({ $isDisabled }) =>\n $isDisabled\n ? `\n color: var(--redsift-color-neutral-midgrey);\n `\n : ''}\n ${({ $isInvalid }) =>\n $isInvalid\n ? `\n color: var(--redsift-color-error-primary);\n `\n : ''}\n }\n\n span.redsift-checkbox-group-description {\n font-family: var(--redsift-typography-helper-font-family);\n font-weight: var(--redsift-typography-helper-font-weight);\n font-size: var(--redsift-typography-helper-font-size);\n line-height: var(--redsift-typography-helper-line-height);\n\n color: var(--redsift-color-neutral-darkgrey);\n ${({ $isDisabled }) =>\n $isDisabled\n ? `\n color: var(--redsift-color-neutral-midgrey);\n `\n : ''}\n ${({ $isInvalid }) =>\n $isInvalid\n ? `\n color: var(--redsift-color-error-primary);\n `\n : ''}\n }\n`;\n","import React, { forwardRef, RefObject, useEffect, useState } from 'react';\nimport classNames from 'classnames';\nimport { ColorPalette, Comp } from '../../types';\nimport { CheckboxGroupOrientation, CheckboxGroupProps } from './types';\nimport { CheckboxGroupContext } from './context';\nimport { StyledCheckboxGroup } from './styles';\n\nconst COMPONENT_NAME = 'CheckboxGroup';\nconst CLASSNAME = 'redsift-checkbox-group';\nconst DEFAULT_PROPS: Partial<CheckboxGroupProps> = {\n color: ColorPalette.default,\n orientation: CheckboxGroupOrientation.vertical,\n};\n\n/**\n * The CheckboxGroup component.\n * Can be used as controlled or uncontrolled.\n */\nexport const CheckboxGroup: Comp<CheckboxGroupProps, HTMLDivElement> =\n forwardRef((props, ref) => {\n const {\n children,\n className,\n defaultValues,\n description,\n isDisabled,\n isInvalid,\n isReadOnly,\n isRequired,\n label,\n onChange,\n orientation,\n possibleValues,\n value,\n ...forwardedProps\n } = props;\n\n const [selectedValues, setValue] = useState<string[]>(\n value || defaultValues || []\n );\n useEffect(() => {\n if (value) {\n state.setValue(value);\n }\n }, [value]);\n\n const state = {\n value: selectedValues,\n isDisabled: isDisabled || false,\n isReadOnly: isReadOnly || false,\n possibleValues: possibleValues,\n setValue(values: string[]) {\n if (isReadOnly || isDisabled) {\n return;\n }\n\n setValue(values);\n },\n addValue(value: string) {\n if (!selectedValues.includes(value)) {\n setValue(selectedValues.concat(value));\n if (onChange) {\n onChange(selectedValues.concat(value));\n }\n }\n },\n removeValue(value: string) {\n if (selectedValues.includes(value)) {\n setValue(\n selectedValues.filter((existingValue) => existingValue !== value)\n );\n if (onChange) {\n onChange(\n selectedValues.filter((existingValue) => existingValue !== value)\n );\n }\n }\n },\n };\n\n return (\n <StyledCheckboxGroup\n {...forwardedProps}\n $isDisabled={isDisabled}\n $isInvalid={isInvalid || (isRequired && selectedValues.length === 0)}\n $isReadOnly={isReadOnly}\n $orientation={orientation}\n aria-disabled={isDisabled}\n className={classNames(CheckboxGroup.className, className)}\n ref={ref as RefObject<HTMLDivElement>}\n role=\"group\"\n >\n <span className={`${CheckboxGroup.className}-label`}>\n {label}\n {isRequired ? ' *' : null}\n </span>\n <div className={`${CheckboxGroup.className}-boxes`}>\n <CheckboxGroupContext.Provider value={state}>\n {children}\n </CheckboxGroupContext.Provider>\n </div>\n <span className={`${CheckboxGroup.className}-description`}>\n {description}\n </span>\n </StyledCheckboxGroup>\n );\n });\nCheckboxGroup.className = CLASSNAME;\nCheckboxGroup.defaultProps = DEFAULT_PROPS;\nCheckboxGroup.displayName = COMPONENT_NAME;\n","import styled, { css } from 'styled-components';\nimport { baseStyling } from '../shared';\nimport { StyledCheckboxProps } from './types';\n\n/**\n * Component style.\n */\nexport const StyledCheckbox = styled.label<StyledCheckboxProps>`\n height: fit-content;\n position: relative;\n width: fit-content;\n ${baseStyling}\n\n align-items: baseline;\n background: none;\n border: none;\n display: inline-flex;\n\n input {\n height: 100%;\n margin: 0;\n opacity: 0;\n overflow: visible;\n padding: 0;\n position: absolute;\n width: 100%;\n }\n\n span.label {\n ${({ $isDisabled, $isInvalid }) =>\n $isDisabled\n ? css`\n color: var(--redsift-color-neutral-midgrey);\n `\n : $isInvalid\n ? css`\n color: var(--redsift-color-error-primary);\n `\n : css`\n color: var(--redsift-color-neutral-black);\n `}\n\n font-family: var(--redsift-typography-body-font-family);\n font-size: var(--redsift-typography-body-font-size);\n font-weight: var(--redsift-typography-body-font-weight);\n line-height: var(--redsift-typography-body-line-height);\n padding-left: 4px;\n padding-right: 16px;\n position: relative;\n top: -4px;\n\n [dir='rtl'] & {\n padding-left: 16px;\n padding-right: 4px;\n }\n }\n\n .redsift-icon {\n padding: 2px;\n width: 24px;\n\n ${({ $isColored, $isDisabled, $isInvalid, $isFocusVisible }) => css`\n ${$isDisabled\n ? css`\n color: var(--redsift-color-neutral-midgrey);\n `\n : $isInvalid\n ? css`\n color: var(--redsift-color-error-primary);\n `\n : css`\n color: var(\n --redsift-color-${$isColored ? 'default' : 'question'}-primary\n );\n `}\n\n ${$isFocusVisible && !$isDisabled\n ? css`\n background-color: var(\n --redsift-color-${$isColored ? 'default' : 'question'}-hover\n );\n `\n : ''}\n `}\n }\n\n &:hover,\n &:focus-visible {\n outline: none;\n\n ${({ $isColored, $isDisabled }) =>\n !$isDisabled\n ? css`\n .redsift-icon {\n background-color: var(\n --redsift-color-${$isColored ? 'default' : 'question'}-hover\n );\n }\n `\n : ''}\n }\n`;\n","import React, {\n ComponentProps,\n forwardRef,\n MutableRefObject,\n useCallback,\n useContext,\n useEffect,\n useState,\n} from 'react';\nimport classNames from 'classnames';\nimport { useFocusRing } from 'react-aria';\nimport {\n mdiCheckboxBlankOutline,\n mdiMinusBox,\n mdiCheckboxMarked,\n} from '@redsift/icons';\nimport { Comp } from '../../types';\nimport { Icon } from '../icon';\nimport { CheckboxGroupContext } from '../checkbox-group/context';\nimport { warnIfNoAccessibleLabelFound } from '../../utils/warnIfNoAccessibleLabelFound';\nimport { CheckboxProps } from './types';\nimport { StyledCheckbox } from './styles';\n\nconst COMPONENT_NAME = 'Checkbox';\nconst CLASSNAME = 'redsift-checkbox';\nconst DEFAULT_PROPS: Partial<CheckboxProps> = {\n isColored: true,\n};\n\n/**\n * The Checkbox component.\n * Works both inside a CheckboxGroup or as standalone.\n * Can be used as controlled or uncontrolled.\n */\nexport const Checkbox: Comp<CheckboxProps, HTMLLabelElement> = forwardRef(\n (props, ref) => {\n const groupState = useContext(CheckboxGroupContext);\n\n let {\n 'aria-label': ariaLabel,\n 'aria-labelledby': ariaLabelledby,\n autoFocus,\n children,\n className,\n defaultSelected,\n inputProps,\n inputRef,\n isColored,\n isControlled,\n isDisabled,\n isIndeterminate,\n isInvalid,\n isReadOnly,\n isRequired,\n isSelected: propsIsSelected,\n name,\n onChange,\n value,\n ...forwardedProps\n } = props;\n\n const { isFocusVisible, focusProps } = useFocusRing({ autoFocus });\n isDisabled = isDisabled ?? groupState?.isDisabled;\n isReadOnly = isReadOnly ?? groupState?.isReadOnly;\n\n const [isSelected, setSelected] = useState(\n propsIsSelected ??\n defaultSelected ??\n groupState?.value.includes(value as string)\n );\n\n useEffect(() => {\n setSelected(propsIsSelected ?? defaultSelected);\n }, [propsIsSelected, defaultSelected]);\n\n useEffect(() => {\n if (groupState) {\n setSelected(groupState.value.includes(value as string));\n }\n }, [groupState?.value]);\n\n warnIfNoAccessibleLabelFound(props as ComponentProps<'label'>, [children]);\n\n if (groupState && !isControlled) {\n if (propsIsSelected != null) {\n console.warn(\n 'isSelected is unsupported on individual <Checkbox> elements within a <CheckboxGroup> unless the <Checkbox> is controlled. Please apply this prop to the group instead or pass isControlled to the component.'\n );\n }\n if (defaultSelected != null) {\n console.warn(\n 'defaultSelected is unsupported on individual <Checkbox> elements within a <CheckboxGroup> unless the <Checkbox> is controlled. Please apply this prop to the group instead or pass isControlled to the component.'\n );\n }\n if (props.value == null) {\n console.warn(\n 'A <Checkbox> element within a <CheckboxGroup> requires a `value` property unless the <Checkbox> is controlled.'\n );\n }\n }\n\n const handleChange = useCallback(\n (event: React.ChangeEvent<HTMLInputElement>) => {\n if (isDisabled || isReadOnly) {\n return;\n }\n\n if (groupState) {\n if (!groupState.value.includes(value as string)) {\n groupState.addValue(value as string);\n } else {\n groupState.removeValue(value as string);\n }\n }\n\n if (onChange) {\n onChange(!isSelected, value, name, event, groupState!);\n }\n setSelected(event.target.checked);\n },\n [onChange, groupState]\n );\n\n return (\n <StyledCheckbox\n {...forwardedProps}\n $isColored={isColored}\n $isDisabled={isDisabled}\n $isFocusVisible={isFocusVisible}\n $isInvalid={isInvalid || (isRequired && !isSelected)}\n $isRequired={isRequired}\n $isSelected={isSelected}\n className={classNames(Checkbox.className, className)}\n ref={ref as MutableRefObject<HTMLLabelElement>}\n >\n <input\n {...inputProps}\n {...focusProps}\n aria-checked={\n isSelected || (isControlled && propsIsSelected)\n ? 'true'\n : isIndeterminate\n ? 'mixed'\n : 'false'\n }\n aria-disabled={isDisabled}\n aria-invalid={isInvalid || (isRequired && !isSelected)}\n aria-label={ariaLabel}\n aria-labelledby={ariaLabelledby}\n aria-readonly={isReadOnly}\n aria-required={isRequired}\n autoFocus={autoFocus}\n checked={isSelected ? true : false}\n disabled={isDisabled}\n name={name}\n onChange={handleChange}\n ref={inputRef as MutableRefObject<HTMLInputElement>}\n type=\"checkbox\"\n value={value}\n />\n {isSelected || (isControlled && propsIsSelected) ? (\n <Icon icon={mdiCheckboxMarked} />\n ) : isIndeterminate ? (\n <Icon icon={mdiMinusBox} />\n ) : (\n <Icon icon={mdiCheckboxBlankOutline} />\n )}\n {children ? <span className=\"label\">{children}</span> : null}\n </StyledCheckbox>\n );\n }\n);\nCheckbox.className = CLASSNAME;\nCheckbox.defaultProps = DEFAULT_PROPS;\nCheckbox.displayName = COMPONENT_NAME;\n","import React from 'react';\nimport { ConditionalWrapperProps } from './types';\n\nexport const ConditionalWrapper: React.FC<ConditionalWrapperProps> = ({\n children,\n condition,\n wrapper,\n}) => (condition ? wrapper(children) : <>{children}</>);\n","import enUS from './en-US.json';\nimport frFR from './fr-FR.json';\n\nexport default {\n 'en-US': enUS,\n 'fr-FR': frFR,\n};\n","import { ComponentProps } from 'react';\nimport {\n ColorPalette,\n ProductColorPalette,\n StylingProps,\n ValueOf,\n} from '../../types';\n\n/**\n * Component variant.\n */\nexport const ShieldVariant = {\n success: 'success',\n successLocked: 'successLocked',\n successUnlocked: 'successUnlocked',\n fail: 'fail',\n failLocked: 'failLocked',\n failUnlocked: 'failUnlocked',\n warning: 'warning',\n warningLocked: 'warningLocked',\n warningUnlocked: 'warningUnlocked',\n ignored: 'ignored',\n noData: 'noData',\n question: 'question',\n email: 'email',\n} as const;\nexport type ShieldVariant = ValueOf<typeof ShieldVariant>;\n\n/**\n * Component props.\n */\nexport interface ShieldProps extends ComponentProps<'div'>, StylingProps {\n /** Indicates whether the element is exposed to an accessibility API. */\n 'aria-hidden'?: boolean | 'false' | 'true';\n /** A screen reader only label for the Icon. */\n 'aria-label'?: string;\n /** Additional properties to forward to the SVG tag. */\n svgProps?: ComponentProps<'svg'>;\n /** Whether the shield has an outline or not. */\n isOutlined?: boolean;\n /** Whether the shield has its colors reversed or not. */\n isReversed?: boolean;\n /** Shield variant. */\n variant?: ShieldVariant;\n}\n\nexport type StyledShieldProps = Omit<ShieldProps, 'color'> & {\n $color?: ColorPalette | ProductColorPalette | string;\n $isOutlined: ShieldProps['isOutlined'];\n $isReversed: ShieldProps['isReversed'];\n $variant: ShieldProps['variant'];\n};\n","import styled, { css } from 'styled-components';\nimport { baseStyling } from '../shared';\nimport { StyledShieldProps } from './types';\n\nexport const StyledShield = styled.div<StyledShieldProps>`\n height: 24px;\n width: 20px;\n ${baseStyling}\n\n box-sizing: content-box;\n\n ${({ $color, $isOutlined, $isReversed }) => {\n if ($isReversed && $isOutlined) {\n return css`\n & .shield {\n fill: var(--redsift-color-${$color}-primary);\n stroke: #ffffff;\n stroke-width: 2;\n }\n & .icon {\n fill-rule: evenodd;\n clip-rule: evenodd;\n fill: #ffffff;\n }\n `;\n } else if ($isOutlined) {\n return css`\n & .shield {\n fill: #ffffff;\n stroke: var(--redsift-color-${$color}-primary);\n stroke-width: 2;\n }\n & .icon {\n fill-rule: evenodd;\n clip-rule: evenodd;\n fill: var(--redsift-color-${$color}-primary);\n }\n `;\n } else if ($isReversed) {\n return css`\n & .shield {\n fill: #ffffff;\n }\n & .icon {\n fill-rule: evenodd;\n clip-rule: evenodd;\n fill: var(--redsift-color-${$color}-primary);\n }\n `;\n } else {\n return css`\n & .shield {\n fill: var(--redsift-color-${$color}-primary);\n }\n & .icon {\n fill-rule: evenodd;\n clip-rule: evenodd;\n fill: #ffffff;\n }\n `;\n }\n }}\n`;\n","import React, { forwardRef, RefObject } from 'react';\nimport classNames from 'classnames';\nimport { ColorPalette, Comp } from '../../types';\n\nimport { ShieldProps, ShieldVariant } from './types';\nimport { StyledShield } from './styles';\n\nconst COMPONENT_NAME = 'Shield';\nconst CLASSNAME = 'redsift-shield';\nconst DEFAULT_PROPS: Partial<ShieldProps> = {\n variant: ShieldVariant.success,\n};\n\nconst getVariant = (variant: ShieldVariant) => {\n switch (variant) {\n case ShieldVariant.email:\n return {\n color: ColorPalette.info,\n icon: 'M14.7,6.3H5.3c-0.6,0-1.2,0.5-1.2,1.2l0,7c0,0.6,0.5,1.2,1.2,1.2h9.3c0.6,0,1.2-0.5,1.2-1.2v-7 C15.8,6.9,15.3,6.3,14.7,6.3z M14.7,14.5H5.3V8.7l4.7,2.9l4.7-2.9V14.5z M10,10.4L5.3,7.5h9.3L10,10.4z',\n };\n case ShieldVariant.fail:\n return {\n color: ColorPalette.error,\n icon: 'M9,15V5h2v10H9z M9,19v-2h2v2H9z',\n };\n case ShieldVariant.failLocked:\n return {\n color: ColorPalette.error,\n icon: 'M13.5,9.7h-0.6V8.5c0-1.6-1.3-2.9-2.9-2.9S7.1,6.9,7.1,8.5v1.2H6.5c-0.6,0-1.2,0.5-1.2,1.2v5.8 c0,0.6,0.5,1.2,1.2,1.2h7c0.6,0,1.2-0.5,1.2-1.2v-5.8C14.7,10.2,14.1,9.7,13.5,9.7z M10,14.9c-0.6,0-1.2-0.5-1.2-1.2 s0.5-1.2,1.2-1.2c0.6,0,1.2,0.5,1.2,1.2S10.6,14.9,10,14.9z M11.8,9.7H8.2V8.5c0-1,0.8-1.8,1.8-1.8s1.8,0.8,1.8,1.8V9.7z',\n };\n case ShieldVariant.failUnlocked:\n return {\n color: ColorPalette.error,\n icon: 'M10,14.9c0.6,0,1.2-0.5,1.2-1.2s-0.5-1.2-1.2-1.2c-0.6,0-1.2,0.5-1.2,1.2S9.4,14.9,10,14.9z M13.5,9.7h-0.6V8.5 c0-1.6-1.3-2.9-2.9-2.9S7.1,6.9,7.1,8.5h1.1c0-1,0.8-1.8,1.8-1.8s1.8,0.8,1.8,1.8v1.2H6.5c-0.6,0-1.2,0.5-1.2,1.2v5.8 c0,0.6,0.5,1.2,1.2,1.2h7c0.6,0,1.2-0.5,1.2-1.2v-5.8C14.7,10.2,14.1,9.7,13.5,9.7z M13.5,16.7h-7v-5.8h7V16.7z',\n };\n case ShieldVariant.ignored:\n return {\n color: ColorPalette['no-data'],\n icon: 'M10,6.2c-3.2,0-5.8,2.6-5.8,5.8c0,3.2,2.6,5.8,5.8,5.8s5.8-2.6,5.8-5.8C15.8,8.8,13.2,6.2,10,6.2z M5.3,12 c0-2.6,2.1-4.7,4.7-4.7c1.1,0,2.1,0.4,2.9,1l-6.5,6.5C5.7,14.1,5.3,13.1,5.3,12z M10,16.7c-1.1,0-2.1-0.4-2.9-1l6.5-6.5 c0.6,0.8,1,1.8,1,2.9C14.7,14.6,12.6,16.7,10,16.7z',\n };\n case ShieldVariant.noData:\n return {\n color: ColorPalette['no-data'],\n icon: 'M16,13H4v-2h12V13z',\n };\n case ShieldVariant.question:\n return {\n color: ColorPalette.question,\n icon: 'M9,17h2v-2H9V17z M10,5C7.8,5,6,6.8,6,9h2c0-1.1,0.9-2,2-2s2,0.9,2,2c0,2-3,1.8-3,5h2c0-2.2,3-2.5,3-5 C14,6.8,12.2,5,10,5z',\n };\n case ShieldVariant.success:\n return {\n color: ColorPalette.success,\n icon: 'M8,16.6l8.5-8.5l-1.4-1.4L8,13.7l-2.8-2.8l-1.4,1.4L8,16.6z',\n };\n case ShieldVariant.successLocked:\n return {\n color: ColorPalette.success,\n icon: 'M13.5,9.7h-0.6V8.5c0-1.6-1.3-2.9-2.9-2.9S7.1,6.9,7.1,8.5v1.2H6.5c-0.6,0-1.2,0.5-1.2,1.2v5.8 c0,0.6,0.5,1.2,1.2,1.2h7c0.6,0,1.2-0.5,1.2-1.2v-5.8C14.7,10.2,14.1,9.7,13.5,9.7z M10,14.9c-0.6,0-1.2-0.5-1.2-1.2 s0.5-1.2,1.2-1.2c0.6,0,1.2,0.5,1.2,1.2S10.6,14.9,10,14.9z M11.8,9.7H8.2V8.5c0-1,0.8-1.8,1.8-1.8s1.8,0.8,1.8,1.8V9.7z',\n };\n case ShieldVariant.successUnlocked:\n return {\n color: ColorPalette.success,\n icon: 'M10,14.9c0.6,0,1.2-0.5,1.2-1.2s-0.5-1.2-1.2-1.2c-0.6,0-1.2,0.5-1.2,1.2S9.4,14.9,10,14.9z M13.5,9.7h-0.6V8.5 c0-1.6-1.3-2.9-2.9-2.9S7.1,6.9,7.1,8.5h1.1c0-1,0.8-1.8,1.8-1.8s1.8,0.8,1.8,1.8v1.2H6.5c-0.6,0-1.2,0.5-1.2,1.2v5.8 c0,0.6,0.5,1.2,1.2,1.2h7c0.6,0,1.2-0.5,1.2-1.2v-5.8C14.7,10.2,14.1,9.7,13.5,9.7z M13.5,16.7h-7v-5.8h7V16.7z',\n };\n case ShieldVariant.warning:\n return {\n color: ColorPalette.warning,\n icon: 'M10,5c0.7,0,1.4,0.4,1.7,1l4,7c0.4,0.6,0.4,1.4,0,2c-0.4,0.6-1,1-1.7,1H6c-0.7,0-1.4-0.4-1.7-1 c-0.4-0.6-0.4-1.4,0-2l4-7C8.6,5.4,9.3,5,10,5z M10,7l-4,7h8L10,7z',\n };\n case ShieldVariant.warningLocked:\n return {\n color: ColorPalette.warning,\n icon: 'M13.5,9.7h-0.6V8.5c0-1.6-1.3-2.9-2.9-2.9S7.1,6.9,7.1,8.5v1.2H6.5c-0.6,0-1.2,0.5-1.2,1.2v5.8 c0,0.6,0.5,1.2,1.2,1.2h7c0.6,0,1.2-0.5,1.2-1.2v-5.8C14.7,10.2,14.1,9.7,13.5,9.7z M10,14.9c-0.6,0-1.2-0.5-1.2-1.2 s0.5-1.2,1.2-1.2c0.6,0,1.2,0.5,1.2,1.2S10.6,14.9,10,14.9z M11.8,9.7H8.2V8.5c0-1,0.8-1.8,1.8-1.8s1.8,0.8,1.8,1.8V9.7z',\n };\n case ShieldVariant.warningUnlocked:\n return {\n color: ColorPalette.warning,\n icon: 'M10,14.9c0.6,0,1.2-0.5,1.2-1.2s-0.5-1.2-1.2-1.2c-0.6,0-1.2,0.5-1.2,1.2S9.4,14.9,10,14.9z M13.5,9.7h-0.6V8.5 c0-1.6-1.3-2.9-2.9-2.9S7.1,6.9,7.1,8.5h1.1c0-1,0.8-1.8,1.8-1.8s1.8,0.8,1.8,1.8v1.2H6.5c-0.6,0-1.2,0.5-1.2,1.2v5.8 c0,0.6,0.5,1.2,1.2,1.2h7c0.6,0,1.2-0.5,1.2-1.2v-5.8C14.7,10.2,14.1,9.7,13.5,9.7z M13.5,16.7h-7v-5.8h7V16.7z',\n };\n }\n};\n\n/**\n * The Shield component.\n */\nexport const Shield: Comp<ShieldProps, HTMLDivElement> = forwardRef(\n (props, ref) => {\n const {\n 'aria-hidden': ariaHidden,\n 'aria-label': ariaLabel,\n className,\n svgProps,\n isOutlined,\n isReversed,\n variant,\n ...forwardedProps\n } = props;\n\n const { color, icon } = getVariant(variant!);\n\n return (\n <StyledShield\n {...forwardedProps}\n aria-hidden={ariaLabel ? (ariaHidden ? ariaHidden : undefined) : true}\n aria-label={ariaLabel}\n className={classNames(Shield.className, className)}\n ref={ref as RefObject<HTMLDivElement>}\n $color={color}\n $isOutlined={isOutlined}\n $isReversed={isReversed}\n $variant={variant}\n >\n <svg\n aria-hidden={ariaLabel ? (ariaHidden ? ariaHidden : undefined) : true}\n aria-label={ariaLabel}\n focusable=\"false\"\n preserveAspectRatio=\"xMidYMid meet\"\n role=\"img\"\n style={{ verticalAlign: '-0.125em' }}\n viewBox=\"0 0 20 24\"\n width=\"20\"\n height=\"24\"\n {...svgProps}\n >\n <path\n d={\n isOutlined\n ? 'M1,10.9V5l9-3.9L19,5v5.9c0,5.5-3.9,10.7-9,12.1C4.9,21.6,1,16.4,1,10.9z'\n : 'M10,0L0,4.4v6.5C0,17,4.3,22.6,10,24c5.7-1.4,10-7,10-13.1V4.4L10,0z'\n }\n className=\"shield\"\n />\n <path d={icon} className=\"icon\" />\n </svg>\n </StyledShield>\n );\n }\n);\nShield.className = CLASSNAME;\nShield.defaultProps = DEFAULT_PROPS;\nShield.displayName = COMPONENT_NAME;\n","import enUS from './en-US.json';\nimport frFR from './fr-FR.json';\n\nexport default {\n 'en-US': enUS,\n 'fr-FR': frFR,\n};\n","import styled, { css } from 'styled-components';\nimport { StyledDetailedCardCollapsibleSectionItemsProps } from './types';\n\n/**\n * Component style.\n */\nexport const StyledDetailedCardCollapsibleSectionItems = styled.div<StyledDetailedCardCollapsibleSectionItemsProps>`\n ${({ $hideBackground }) =>\n $hideBackground\n ? css`\n background: none;\n `\n : css`\n background-color: var(--redsift-color-neutral-xlightgrey);\n margin: 8px -16px;\n padding: 8px 16px;\n `}\n\n .redsift-detailed-card-collapsible-section-items__caption {\n color: var(--redsift-color-neutral-black);\n display: flex;\n font-family: var(--redsift-typography-font-family-raleway);\n font-size: 12px;\n font-weight: 300;\n justify-content: flex-end;\n line-height: 14px;\n margin: 8px 0px;\n }\n`;\n","import React, { forwardRef, RefObject } from 'react';\nimport classNames from 'classnames';\n\nimport { Comp } from '../../types';\nimport { DetailedCardCollapsibleSectionItemsProps } from './types';\nimport { StyledDetailedCardCollapsibleSectionItems } from './styles';\n\nconst COMPONENT_NAME = 'DetailedCardCollapsibleSectionItems';\nconst CLASSNAME = 'redsift-detailed-card-collapsible-section-items';\nconst DEFAULT_PROPS: Partial<DetailedCardCollapsibleSectionItemsProps> = {};\n\n/**\n * The DetailedCardCollapsibleSectionItems Section component.\n */\nexport const DetailedCardCollapsibleSectionItems: Comp<\n DetailedCardCollapsibleSectionItemsProps,\n HTMLDivElement\n> = forwardRef((props, ref) => {\n const { caption, children, className, hideBackground, ...forwardedProps } =\n props;\n\n return (\n <StyledDetailedCardCollapsibleSectionItems\n {...forwardedProps}\n className={classNames(\n DetailedCardCollapsibleSectionItems.className,\n className\n )}\n ref={ref as RefObject<HTMLDivElement>}\n $hideBackground={hideBackground}\n >\n {children}\n {caption ? (\n <div\n className={`${DetailedCardCollapsibleSectionItems.className}__caption`}\n >\n {caption}\n </div>\n ) : null}\n </StyledDetailedCardCollapsibleSectionItems>\n );\n});\nDetailedCardCollapsibleSectionItems.className = CLASSNAME;\nDetailedCardCollapsibleSectionItems.defaultProps = DEFAULT_PROPS;\nDetailedCardCollapsibleSectionItems.displayName = COMPONENT_NAME;\n","import styled, { css } from 'styled-components';\nimport { StyledDetailedCardSectionProps } from './types';\n\n/**\n * Component style.\n */\nexport const StyledDetailedCardSection = styled.div<StyledDetailedCardSectionProps>`\n margin: 8px 0;\n\n .redsift-detailed-card-section__header {\n border-bottom: 1px solid\n ${({ $color }) =>\n $color\n ? css`var(--redsift-color-${$color}-primary)`\n : 'var(--redsift-color-neutral-midgrey)'};\n margin-bottom: 8px;\n }\n\n .redsift-detailed-card-section-header__title {\n font-size: 18px;\n font-weight: 700;\n lineheight: 22px;\n padding: 6px 0px;\n }\n\n .redsift-detailed-card-section-header__collapse-button {\n color: var(--redsift-color-neutral-black);\n }\n\n .redsift-detailed-card-collapsible-section-items {\n visibility: ${({ $isCollapsed }) => (!$isCollapsed ? 'visible' : 'hidden')};\n overflow: ${({ $isCollapsed }) => (!$isCollapsed ? 'visible' : 'hidden')};\n height: ${({ $isCollapsed }) => (!$isCollapsed ? 'auto' : '0px')};\n ${({ $isCollapsed }) =>\n $isCollapsed\n ? css`\n margin: unset;\n padding: unset;\n `\n : ''};\n }\n`;\n","import { ComponentProps } from 'react';\nimport {\n ColorPalette,\n FontFamily,\n NeutralColorPalette,\n ProductColorPalette,\n StylingProps,\n ValueOf,\n} from '../../types';\n\n/**\n * Component variant.\n */\nexport const TextVariant = {\n subtitle: 'subtitle',\n body: 'body',\n body2: 'body2',\n button: 'button',\n caption: 'caption',\n inherit: 'inherit',\n} as const;\nexport type TextVariant = ValueOf<typeof TextVariant>;\n\nexport const TextComponent = {\n p: 'p',\n b: 'b',\n i: 'i',\n u: 'u',\n abbr: 'abbr',\n cite: 'cite',\n del: 'del',\n em: 'em',\n ins: 'ins',\n kbd: 'kbd',\n mark: 'mark',\n s: 's',\n samp: 'samp',\n sub: 'sub',\n sup: 'sup',\n} as const;\nexport type TextComponent = ValueOf<typeof TextComponent>;\n\n/**\n * Component props.\n */\nexport interface TextProps extends ComponentProps<'span'>, StylingProps {\n /** Override component. */\n as?: TextComponent;\n /** Color variant. Either from color palette or hex or rgb strings. */\n color?: ColorPalette | ProductColorPalette | NeutralColorPalette | string;\n /** Font family. */\n fontFamily?: FontFamily;\n /** Font size. */\n fontSize?: string;\n /** Line height. */\n lineHeight?: string;\n /** Whether the text will truncate with a text overflow ellipsis or wrap. */\n noWrap?: boolean;\n /** Variant. */\n variant?: TextVariant;\n}\n\nexport type StyledTextProps = Omit<\n TextProps,\n | 'as'\n | 'color'\n | 'fontFamily'\n | 'fontSize'\n | 'lineHeight'\n | 'noWrap'\n | 'variant'\n> & {\n $as: TextProps['as'];\n $color: TextProps['color'];\n $fontFamily?: TextProps['fontFamily'];\n $fontSize: TextProps['fontSize'];\n $lineHeight: TextProps['lineHeight'];\n $noWrap: TextProps['noWrap'];\n $variant: TextProps['variant'];\n};\n","import styled, { css } from 'styled-components';\nimport {\n ColorPalette,\n NeutralColorPalette,\n ProductColorPalette,\n} from '../../types';\nimport { baseStyling } from '../shared';\nimport { StyledTextProps, TextComponent, TextVariant } from './types';\n\n/**\n * Component style.\n */\nexport const StyledText = styled.span<StyledTextProps>`\n ${baseStyling}\n\n ${({ $color }) =>\n $color &&\n [...Object.keys(ColorPalette), ...Object.keys(ProductColorPalette)].indexOf(\n $color\n ) !== -1\n ? css`\n color: var(--redsift-color-${$color}-primary);\n `\n : Object.keys(NeutralColorPalette).indexOf($color!) !== -1\n ? css`\n color: var(--redsift-color-neutral-${$color});\n `\n : css`\n color: ${$color || css`inherit`};\n `}\n\n ${({ $as }) => css`\n ${$as === TextComponent.i ||\n $as === TextComponent.cite ||\n $as === TextComponent.em\n ? css`\n font-style: italic;\n `\n : $as === TextComponent.sub\n ? css`\n vertical-align: sub;\n `\n : $as === TextComponent.sup\n ? css`\n vertical-align: super;\n `\n : ''}\n `}\n\n ${({ $as, $fontFamily, $fontSize, $lineHeight, $variant }) =>\n !$variant\n ? css`\n ${$fontFamily\n ? css`\n font-family: var(\n --redsift-typography-font-family-${$fontFamily}\n );\n `\n : ''}\n ${$fontSize\n ? css`\n font-size: ${$fontSize};\n `\n : ''}\n ${$lineHeight\n ? css`\n line-height: ${$lineHeight};\n `\n : ''}\n ${$as === TextComponent.b\n ? css`\n font-weight: var(--redsift-typography-font-weight-bold);\n `\n : $as === TextComponent.sup || $as === TextComponent.sub\n ? css`\n font-size: ${$fontSize ? $fontSize : '12px'};\n `\n : ''}\n `\n : $variant === TextVariant.inherit\n ? css`\n font-family: ${$fontFamily\n ? css`var(--redsift-typography-font-family-${$fontFamily})`\n : css`inherit`};\n font-size: ${$fontSize\n ? $fontSize\n : $as === TextComponent.sup || $as === TextComponent.sub\n ? '12px'\n : css`inherit`};\n font-weight: ${$as === TextComponent.b\n ? 'var(--redsift-typography-font-weight-bold)'\n : 'inherit'};\n line-height: ${$lineHeight ? $lineHeight : css`inherit`};\n text-transform: inherit;\n `\n : css`\n font-family: ${$fontFamily\n ? css`var(--redsift-typography-font-family-${$fontFamily})`\n : css`var(--redsift-typography-${$variant}-font-family)`};\n font-size: ${$fontSize\n ? $fontSize\n : css`var(--redsift-typography-${$variant}-font-size)`};\n font-weight: var(--redsift-typography-${$variant}-font-weight);\n line-height: ${$lineHeight\n ? $lineHeight\n : css`var(--redsift-typography-${$variant}-line-height)`};\n text-transform: var(--redsift-typography-${$variant}-text-transform);\n `}\n \n ${({ $noWrap }) =>\n $noWrap\n ? css`\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n `\n : css`\n word-break: break-word;\n `}\n`;\n","import React, { forwardRef, RefObject } from 'react';\nimport classNames from 'classnames';\nimport { Comp, FontFamily } from '../../types';\nimport { StyledText } from './styles';\nimport { TextProps } from './types';\n\nconst COMPONENT_NAME = 'Text';\nconst CLASSNAME = 'redsift-text';\nconst DEFAULT_PROPS: Partial<TextProps> = {\n fontFamily: FontFamily.raleway,\n};\n\n/**\n * The Text component.\n */\nexport const Text: Comp<TextProps, HTMLDivElement> = forwardRef(\n (props, ref) => {\n const {\n as,\n children,\n className,\n color,\n fontFamily,\n fontSize,\n lineHeight,\n noWrap,\n variant,\n ...forwardedProps\n } = props;\n\n return (\n <StyledText\n as={as}\n {...forwardedProps}\n className={classNames(Text.className, className)}\n ref={ref as RefObject<HTMLDivElement>}\n $as={as}\n $color={color}\n $fontFamily={fontFamily}\n $fontSize={fontSize}\n $lineHeight={lineHeight}\n $noWrap={noWrap}\n $variant={variant}\n >\n {children}\n </StyledText>\n );\n }\n);\nText.className = CLASSNAME;\nText.defaultProps = DEFAULT_PROPS;\nText.displayName = COMPONENT_NAME;\n","import React, { forwardRef, ReactNode, RefObject, useState } from 'react';\nimport classNames from 'classnames';\n\nimport { useLocalizedStringFormatter } from 'react-aria';\nimport intlMessages from './intl';\n\nimport { mdiChevronDown, mdiChevronUp } from '@redsift/icons';\nimport { Comp } from '../../types';\nimport { Flexbox } from '../flexbox';\nimport { IconButton } from '../icon-button';\nimport { DetailedCardSectionProps } from './types';\nimport { isComponent } from '../../utils/isComponent';\nimport { DetailedCardCollapsibleSectionItems } from '../detailed-card-collapsible-section-items';\nimport { StyledDetailedCardSection } from './styles';\nimport { Skeleton } from '../skeleton';\nimport { Text } from '../text';\nimport { Badge, BadgeVariant } from '../badge';\n\nconst COMPONENT_NAME = 'DetailedCardSection';\nconst CLASSNAME = 'redsift-detailed-card-section';\nconst DEFAULT_PROPS: Partial<DetailedCardSectionProps> = {\n isCollapsible: true,\n};\n\nconst hasCollapsibleChildren = (children: ReactNode): boolean => {\n let hasCollapsible = false;\n\n React.Children.map(children, (child) => {\n if (isComponent(DetailedCardCollapsibleSectionItems)(child)) {\n hasCollapsible = true;\n }\n });\n\n return hasCollapsible;\n};\n\n/**\n * The DetailedCardSection component.\n */\nexport const DetailedCardSection: Comp<\n DetailedCardSectionProps,\n HTMLDivElement\n> = forwardRef((props, ref) => {\n const {\n badge,\n color,\n children,\n className,\n header,\n isCollapsed: propsIsCollapsed,\n isCollapsible: propsIsCollapsible,\n isLoading,\n ...forwardedProps\n } = props;\n\n const stringFormatter = useLocalizedStringFormatter(intlMessages);\n\n const isCollapsible = propsIsCollapsible && hasCollapsibleChildren(children);\n\n const [isCollapsed, setIsCollapsed] = useState<boolean>(\n Boolean(propsIsCollapsed)\n );\n\n return (\n <StyledDetailedCardSection\n {...forwardedProps}\n className={classNames(DetailedCardSection.className, className)}\n ref={ref as RefObject<HTMLDivElement>}\n $color={color}\n $isCollapsed={isCollapsed}\n >\n <Flexbox\n justifyContent=\"space-between\"\n className={`${DetailedCardSection.className}__header`}\n >\n {header ? (\n <Skeleton.Text\n variant=\"body\"\n isLoaded={!isLoading}\n fontSize=\"18px\"\n lineHeight=\"22px\"\n marginTop=\"6px\"\n marginBottom=\"12px\"\n >\n <Flexbox alignItems=\"center\" gap=\"8px\">\n {typeof header === 'string' ? (\n <Text\n className={`${DetailedCardSection.className}-header__title`}\n color=\"black\"\n fontFamily=\"raleway\"\n fontSize=\"18px\"\n lineHeight=\"22px\"\n >\n {header}\n </Text>\n ) : (\n <div\n className={`${DetailedCardSection.className}-header__title`}\n >\n {header}\n </div>\n )}\n {badge ? (\n <Badge variant={BadgeVariant.standard} {...badge} />\n ) : null}\n </Flexbox>\n </Skeleton.Text>\n ) : null}\n {isCollapsible && !isLoading ? (\n <IconButton\n aria-label={stringFormatter.format(\n isCollapsed ? 'expand' : 'collapse'\n )}\n className={`${DetailedCardSection.className}-header__collapse-button`}\n color=\"question\"\n icon={isCollapsed ? mdiChevronDown : mdiChevronUp}\n onPress={() => {\n setIsCollapsed((isCollapsed) => !isCollapsed);\n }}\n />\n ) : null}\n </Flexbox>\n\n {children}\n </StyledDetailedCardSection>\n );\n});\nDetailedCardSection.className = CLASSNAME;\nDetailedCardSection.defaultProps = DEFAULT_PROPS;\nDetailedCardSection.displayName = COMPONENT_NAME;\n","import styled, { css } from 'styled-components';\nimport { baseStyling } from '../shared';\nimport { StyledDetailedCardProps } from './types';\n\n/**\n * Component style.\n */\nexport const StyledDetailedCard = styled.div<StyledDetailedCardProps>`\n ${baseStyling}\n\n background-color: var(--redsift-color-neutral-white);\n box-shadow: 0px 1px 2px rgba(0, 0, 0, 0.5);\n padding: 16px;\n\n .redsift-detailed-card__banner {\n background-color: ${({ $color }) =>\n css`var(--redsift-color-${$color}-primary)`};\n }\n\n .redsift-detailed-card__collapse-buttons {\n width: 100%;\n }\n`;\n","import styled from 'styled-components';\nimport { StyledDetailedCardHeaderProps } from './types';\n\n/**\n * Component style.\n */\nexport const StyledDetailedCardHeader = styled.div<StyledDetailedCardHeaderProps>`\n margin: 8px 0;\n\n .redsift-detailed-card-header__header {\n font-family: var(--redsift-typography-font-family-raleway);\n font-size: 32px;\n font-weight: 500;\n line-height: 32px;\n margin-bottom: 16px;\n }\n`;\n","import React, { forwardRef, RefObject } from 'react';\nimport classNames from 'classnames';\n\nimport { Comp } from '../../types';\nimport { Heading } from '../heading';\nimport { Skeleton } from '../skeleton';\nimport { StyledDetailedCardHeader } from './styles';\nimport { DetailedCardHeaderProps } from './types';\n\nconst COMPONENT_NAME = 'DetailedCardHeader';\nconst CLASSNAME = 'redsift-detailed-card-header';\nconst DEFAULT_PROPS: Partial<DetailedCardHeaderProps> = {};\n\n/**\n * The DetailedCardHeader component.\n */\nexport const DetailedCardHeader: Comp<DetailedCardHeaderProps, HTMLDivElement> =\n forwardRef((props, ref) => {\n const {\n children,\n className,\n header,\n headingProps,\n isLoading,\n ...forwardedProps\n } = props;\n\n return (\n <StyledDetailedCardHeader\n {...forwardedProps}\n className={classNames(DetailedCardHeader.className, className)}\n ref={ref as RefObject<HTMLDivElement>}\n >\n {header ? (\n <Skeleton.Text\n variant=\"h2\"\n isLoaded={!isLoading}\n height=\"32px\"\n marginBottom=\"16px\"\n >\n <Heading\n as=\"h2\"\n className={`${DetailedCardHeader.className}__header`}\n variant=\"h2\"\n {...headingProps}\n >\n {header}\n </Heading>\n </Skeleton.Text>\n ) : null}\n\n {children}\n </StyledDetailedCardHeader>\n );\n });\nDetailedCardHeader.className = CLASSNAME;\nDetailedCardHeader.defaultProps = DEFAULT_PROPS;\nDetailedCardHeader.displayName = COMPONENT_NAME;\n","import styled, { css } from 'styled-components';\nimport { baseStyling } from '../shared';\nimport { StyledPillProps } from './types';\n\n/**\n * Component style.\n */\nexport const StyledPill = styled.div<StyledPillProps>`\n width: fit-content;\n ${baseStyling}\n\n padding: 0 6.5px;\n text-align: center;\n word-break: ${({ $autoBreak }) => ($autoBreak ? 'break-word' : 'normal')};\n\n ${({ $color }) => css`\n ${$color === 'black'\n ? 'background-color: var(--redsift-color-neutral-black);'\n : $color === 'white'\n ? css`\n background-color: var(--redsift-color-neutral-white);\n border: 1px solid #d6d6d6;\n `\n : $color === 'error'\n ? 'background-color: var(--redsift-data-viz-color-red-default);'\n : $color === 'warning'\n ? 'background-color: var(--redsift-data-viz-color-orange-default);'\n : $color === 'success'\n ? 'background-color: var(--redsift-data-viz-color-green-default);'\n : `background-color: var(--redsift-data-viz-color-${$color}-default);`}\n\n &,\n .redsift-icon {\n color: var(\n --redsift-color-neutral-${$color === 'black' ? 'white' : 'black'}\n );\n }\n `}}\n\n &,\n .redsift-icon {\n font-family: var(--redsift-typography-pill-font-family);\n font-size: var(--redsift-typography-pill-font-size);\n font-weight: var(--redsift-typography-pill-font-weight);\n line-height: var(--redsift-typography-pill-line-height);\n }\n`;\n","import React, { forwardRef, RefObject } from 'react';\nimport classNames from 'classnames';\nimport { Comp, DataVizColorPalette } from '../../types';\nimport { StyledPill } from './styles';\nimport { PillProps } from './types';\n\nconst COMPONENT_NAME = 'Pill';\nconst CLASSNAME = 'redsift-pill';\nconst DEFAULT_PROPS: Partial<PillProps> = {\n color: DataVizColorPalette.blue,\n height: 'fit-content',\n};\n\n/**\n * The Pill component.\n */\nexport const Pill: Comp<PillProps, HTMLDivElement> = forwardRef(\n (props, ref) => {\n const { autoBreak, children, className, color, ...forwardedProps } = props;\n\n return (\n <StyledPill\n {...forwardedProps}\n $autoBreak={autoBreak}\n $color={color}\n className={classNames(Pill.className, className)}\n ref={ref as RefObject<HTMLDivElement>}\n >\n {children}\n </StyledPill>\n );\n }\n);\nPill.className = CLASSNAME;\nPill.defaultProps = DEFAULT_PROPS;\nPill.displayName = COMPONENT_NAME;\n","import styled from 'styled-components';\nimport { StyledDetailedCardSectionItemProps } from './types';\n\n/**\n * Component style.\n */\nexport const StyledDetailedCardSectionItem = styled.div<StyledDetailedCardSectionItemProps>`\n padding: 8px 0;\n\n .redsift-detailed-card-section-item-header__shield {\n align-items: center;\n display: flex;\n height: 28px;\n justify-content: center;\n padding: 0 4px;\n }\n\n .redsift-detailed-card-section-item-header__icon {\n height: 28px;\n }\n\n .redsift-detailed-card-section-item-header__pill {\n display: inline-block;\n margin-right: 8px;\n }\n\n .redsift-detailed-card-section-item-header__description {\n line-height: 28px;\n }\n`;\n","import React, { forwardRef, RefObject } from 'react';\nimport classNames from 'classnames';\n\nimport { Comp } from '../../types';\nimport { Flexbox } from '../flexbox';\nimport { Shield } from '../shield';\nimport { Icon } from '../icon';\nimport { Pill } from '../pill';\nimport { Text } from '../text';\nimport { DetailedCardSectionItemProps } from './types';\nimport { StyledDetailedCardSectionItem } from './styles';\nimport { Skeleton } from '../skeleton';\n\nconst COMPONENT_NAME = 'DetailedCardSectionItem';\nconst CLASSNAME = 'redsift-detailed-card-section-item';\nconst DEFAULT_PROPS: Partial<DetailedCardSectionItemProps> = {};\n\n/**\n * The DetailedCardSectionItems component.\n */\nexport const DetailedCardSectionItem: Comp<\n DetailedCardSectionItemProps,\n HTMLDivElement\n> = forwardRef((props, ref) => {\n const {\n children,\n className,\n description,\n icon,\n iconProps,\n isLoading,\n pill,\n pillProps,\n shield,\n ...forwardedProps\n } = props;\n\n return (\n <StyledDetailedCardSectionItem\n {...forwardedProps}\n className={classNames(DetailedCardSectionItem.className, className)}\n ref={ref as RefObject<HTMLDivElement>}\n >\n <Flexbox\n alignItems=\"flex-start\"\n className={`${DetailedCardSectionItem.className}__header`}\n >\n {shield ? (\n <Skeleton isLoaded={!isLoading}>\n <Shield\n variant={shield}\n className={`${DetailedCardSectionItem.className}-header__shield`}\n />\n </Skeleton>\n ) : icon ? (\n <Skeleton isLoaded={!isLoading}>\n <div\n className={`${DetailedCardSectionItem.className}-header__icon`}\n >\n <Icon icon={icon} {...iconProps} size=\"large\" />\n </div>\n </Skeleton>\n ) : null}\n {description || pill ? (\n <div\n className={`${DetailedCardSectionItem.className}-header__description`}\n >\n <Skeleton isLoaded={!isLoading}>\n {pill && (\n <Pill\n className={`${DetailedCardSectionItem.className}-header__pill`}\n {...pillProps}\n >\n {pill}\n </Pill>\n )}\n {typeof description === 'string' ? (\n <Text>{description}</Text>\n ) : (\n description\n )}\n </Skeleton>\n </div>\n ) : null}\n </Flexbox>\n {children}\n </StyledDetailedCardSectionItem>\n );\n});\nDetailedCardSectionItem.className = CLASSNAME;\nDetailedCardSectionItem.defaultProps = DEFAULT_PROPS;\nDetailedCardSectionItem.displayName = COMPONENT_NAME;\n","/*!\n* tabbable 6.1.1\n* @license MIT, https://github.com/focus-trap/tabbable/blob/master/LICENSE\n*/\n// NOTE: separate `:not()` selectors has broader browser support than the newer\n// `:not([inert], [inert] *)` (Feb 2023)\n// CAREFUL: JSDom does not support `:not([inert] *)` as a selector; using it causes\n// the entire query to fail, resulting in no nodes found, which will break a lot\n// of things... so we have to rely on JS to identify nodes inside an inert container\nvar candidateSelectors = ['input:not([inert])', 'select:not([inert])', 'textarea:not([inert])', 'a[href]:not([inert])', 'button:not([inert])', '[tabindex]:not(slot):not([inert])', 'audio[controls]:not([inert])', 'video[controls]:not([inert])', '[contenteditable]:not([contenteditable=\"false\"]):not([inert])', 'details>summary:first-of-type:not([inert])', 'details:not([inert])'];\nvar candidateSelector = /* #__PURE__ */candidateSelectors.join(',');\nvar NoElement = typeof Element === 'undefined';\nvar matches = NoElement ? function () {} : Element.prototype.matches || Element.prototype.msMatchesSelector || Element.prototype.webkitMatchesSelector;\nvar getRootNode = !NoElement && Element.prototype.getRootNode ? function (element) {\n var _element$getRootNode;\n return element === null || element === void 0 ? void 0 : (_element$getRootNode = element.getRootNode) === null || _element$getRootNode === void 0 ? void 0 : _element$getRootNode.call(element);\n} : function (element) {\n return element === null || element === void 0 ? void 0 : element.ownerDocument;\n};\n\n/**\n * Determines if a node is inert or in an inert ancestor.\n * @param {Element} [node]\n * @param {boolean} [lookUp] If true and `node` is not inert, looks up at ancestors to\n * see if any of them are inert. If false, only `node` itself is considered.\n * @returns {boolean} True if inert itself or by way of being in an inert ancestor.\n * False if `node` is falsy.\n */\nvar isInert = function isInert(node, lookUp) {\n var _node$getAttribute;\n if (lookUp === void 0) {\n lookUp = true;\n }\n // CAREFUL: JSDom does not support inert at all, so we can't use the `HTMLElement.inert`\n // JS API property; we have to check the attribute, which can either be empty or 'true';\n // if it's `null` (not specified) or 'false', it's an active element\n var inertAtt = node === null || node === void 0 ? void 0 : (_node$getAttribute = node.getAttribute) === null || _node$getAttribute === void 0 ? void 0 : _node$getAttribute.call(node, 'inert');\n var inert = inertAtt === '' || inertAtt === 'true';\n\n // NOTE: this could also be handled with `node.matches('[inert], :is([inert] *)')`\n // if it weren't for `matches()` not being a function on shadow roots; the following\n // code works for any kind of node\n // CAREFUL: JSDom does not appear to support certain selectors like `:not([inert] *)`\n // so it likely would not support `:is([inert] *)` either...\n var result = inert || lookUp && node && isInert(node.parentNode); // recursive\n\n return result;\n};\n\n/**\n * Determines if a node's content is editable.\n * @param {Element} [node]\n * @returns True if it's content-editable; false if it's not or `node` is falsy.\n */\nvar isContentEditable = function isContentEditable(node) {\n var _node$getAttribute2;\n // CAREFUL: JSDom does not support the `HTMLElement.isContentEditable` API so we have\n // to use the attribute directly to check for this, which can either be empty or 'true';\n // if it's `null` (not specified) or 'false', it's a non-editable element\n var attValue = node === null || node === void 0 ? void 0 : (_node$getAttribute2 = node.getAttribute) === null || _node$getAttribute2 === void 0 ? void 0 : _node$getAttribute2.call(node, 'contenteditable');\n return attValue === '' || attValue === 'true';\n};\n\n/**\n * @param {Element} el container to check in\n * @param {boolean} includeContainer add container to check\n * @param {(node: Element) => boolean} filter filter candidates\n * @returns {Element[]}\n */\nvar getCandidates = function getCandidates(el, includeContainer, filter) {\n // even if `includeContainer=false`, we still have to check it for inertness because\n // if it's inert, all its children are inert\n if (isInert(el)) {\n return [];\n }\n var candidates = Array.prototype.slice.apply(el.querySelectorAll(candidateSelector));\n if (includeContainer && matches.call(el, candidateSelector)) {\n candidates.unshift(el);\n }\n candidates = candidates.filter(filter);\n return candidates;\n};\n\n/**\n * @callback GetShadowRoot\n * @param {Element} element to check for shadow root\n * @returns {ShadowRoot|boolean} ShadowRoot if available or boolean indicating if a shadowRoot is attached but not available.\n */\n\n/**\n * @callback ShadowRootFilter\n * @param {Element} shadowHostNode the element which contains shadow content\n * @returns {boolean} true if a shadow root could potentially contain valid candidates.\n */\n\n/**\n * @typedef {Object} CandidateScope\n * @property {Element} scopeParent contains inner candidates\n * @property {Element[]} candidates list of candidates found in the scope parent\n */\n\n/**\n * @typedef {Object} IterativeOptions\n * @property {GetShadowRoot|boolean} getShadowRoot true if shadow support is enabled; falsy if not;\n * if a function, implies shadow support is enabled and either returns the shadow root of an element\n * or a boolean stating if it has an undisclosed shadow root\n * @property {(node: Element) => boolean} filter filter candidates\n * @property {boolean} flatten if true then result will flatten any CandidateScope into the returned list\n * @property {ShadowRootFilter} shadowRootFilter filter shadow roots;\n */\n\n/**\n * @param {Element[]} elements list of element containers to match candidates from\n * @param {boolean} includeContainer add container list to check\n * @param {IterativeOptions} options\n * @returns {Array.<Element|CandidateScope>}\n */\nvar getCandidatesIteratively = function getCandidatesIteratively(elements, includeContainer, options) {\n var candidates = [];\n var elementsToCheck = Array.from(elements);\n while (elementsToCheck.length) {\n var element = elementsToCheck.shift();\n if (isInert(element, false)) {\n // no need to look up since we're drilling down\n // anything inside this container will also be inert\n continue;\n }\n if (element.tagName === 'SLOT') {\n // add shadow dom slot scope (slot itself cannot be focusable)\n var assigned = element.assignedElements();\n var content = assigned.length ? assigned : element.children;\n var nestedCandidates = getCandidatesIteratively(content, true, options);\n if (options.flatten) {\n candidates.push.apply(candidates, nestedCandidates);\n } else {\n candidates.push({\n scopeParent: element,\n candidates: nestedCandidates\n });\n }\n } else {\n // check candidate element\n var validCandidate = matches.call(element, candidateSelector);\n if (validCandidate && options.filter(element) && (includeContainer || !elements.includes(element))) {\n candidates.push(element);\n }\n\n // iterate over shadow content if possible\n var shadowRoot = element.shadowRoot ||\n // check for an undisclosed shadow\n typeof options.getShadowRoot === 'function' && options.getShadowRoot(element);\n\n // no inert look up because we're already drilling down and checking for inertness\n // on the way down, so all containers to this root node should have already been\n // vetted as non-inert\n var validShadowRoot = !isInert(shadowRoot, false) && (!options.shadowRootFilter || options.shadowRootFilter(element));\n if (shadowRoot && validShadowRoot) {\n // add shadow dom scope IIF a shadow root node was given; otherwise, an undisclosed\n // shadow exists, so look at light dom children as fallback BUT create a scope for any\n // child candidates found because they're likely slotted elements (elements that are\n // children of the web component element (which has the shadow), in the light dom, but\n // slotted somewhere _inside_ the undisclosed shadow) -- the scope is created below,\n // _after_ we return from this recursive call\n var _nestedCandidates = getCandidatesIteratively(shadowRoot === true ? element.children : shadowRoot.children, true, options);\n if (options.flatten) {\n candidates.push.apply(candidates, _nestedCandidates);\n } else {\n candidates.push({\n scopeParent: element,\n candidates: _nestedCandidates\n });\n }\n } else {\n // there's not shadow so just dig into the element's (light dom) children\n // __without__ giving the element special scope treatment\n elementsToCheck.unshift.apply(elementsToCheck, element.children);\n }\n }\n }\n return candidates;\n};\nvar getTabindex = function getTabindex(node, isScope) {\n if (node.tabIndex < 0) {\n // in Chrome, <details/>, <audio controls/> and <video controls/> elements get a default\n // `tabIndex` of -1 when the 'tabindex' attribute isn't specified in the DOM,\n // yet they are still part of the regular tab order; in FF, they get a default\n // `tabIndex` of 0; since Chrome still puts those elements in the regular tab\n // order, consider their tab index to be 0.\n // Also browsers do not return `tabIndex` correctly for contentEditable nodes;\n // so if they don't have a tabindex attribute specifically set, assume it's 0.\n //\n // isScope is positive for custom element with shadow root or slot that by default\n // have tabIndex -1, but need to be sorted by document order in order for their\n // content to be inserted in the correct position\n if ((isScope || /^(AUDIO|VIDEO|DETAILS)$/.test(node.tagName) || isContentEditable(node)) && isNaN(parseInt(node.getAttribute('tabindex'), 10))) {\n return 0;\n }\n }\n return node.tabIndex;\n};\nvar sortOrderedTabbables = function sortOrderedTabbables(a, b) {\n return a.tabIndex === b.tabIndex ? a.documentOrder - b.documentOrder : a.tabIndex - b.tabIndex;\n};\nvar isInput = function isInput(node) {\n return node.tagName === 'INPUT';\n};\nvar isHiddenInput = function isHiddenInput(node) {\n return isInput(node) && node.type === 'hidden';\n};\nvar isDetailsWithSummary = function isDetailsWithSummary(node) {\n var r = node.tagName === 'DETAILS' && Array.prototype.slice.apply(node.children).some(function (child) {\n return child.tagName === 'SUMMARY';\n });\n return r;\n};\nvar getCheckedRadio = function getCheckedRadio(nodes, form) {\n for (var i = 0; i < nodes.length; i++) {\n if (nodes[i].checked && nodes[i].form === form) {\n return nodes[i];\n }\n }\n};\nvar isTabbableRadio = function isTabbableRadio(node) {\n if (!node.name) {\n return true;\n }\n var radioScope = node.form || getRootNode(node);\n var queryRadios = function queryRadios(name) {\n return radioScope.querySelectorAll('input[type=\"radio\"][name=\"' + name + '\"]');\n };\n var radioSet;\n if (typeof window !== 'undefined' && typeof window.CSS !== 'undefined' && typeof window.CSS.escape === 'function') {\n radioSet = queryRadios(window.CSS.escape(node.name));\n } else {\n try {\n radioSet = queryRadios(node.name);\n } catch (err) {\n // eslint-disable-next-line no-console\n console.error('Looks like you have a radio button with a name attribute containing invalid CSS selector characters and need the CSS.escape polyfill: %s', err.message);\n return false;\n }\n }\n var checked = getCheckedRadio(radioSet, node.form);\n return !checked || checked === node;\n};\nvar isRadio = function isRadio(node) {\n return isInput(node) && node.type === 'radio';\n};\nvar isNonTabbableRadio = function isNonTabbableRadio(node) {\n return isRadio(node) && !isTabbableRadio(node);\n};\n\n// determines if a node is ultimately attached to the window's document\nvar isNodeAttached = function isNodeAttached(node) {\n var _nodeRoot;\n // The root node is the shadow root if the node is in a shadow DOM; some document otherwise\n // (but NOT _the_ document; see second 'If' comment below for more).\n // If rootNode is shadow root, it'll have a host, which is the element to which the shadow\n // is attached, and the one we need to check if it's in the document or not (because the\n // shadow, and all nodes it contains, is never considered in the document since shadows\n // behave like self-contained DOMs; but if the shadow's HOST, which is part of the document,\n // is hidden, or is not in the document itself but is detached, it will affect the shadow's\n // visibility, including all the nodes it contains). The host could be any normal node,\n // or a custom element (i.e. web component). Either way, that's the one that is considered\n // part of the document, not the shadow root, nor any of its children (i.e. the node being\n // tested).\n // To further complicate things, we have to look all the way up until we find a shadow HOST\n // that is attached (or find none) because the node might be in nested shadows...\n // If rootNode is not a shadow root, it won't have a host, and so rootNode should be the\n // document (per the docs) and while it's a Document-type object, that document does not\n // appear to be the same as the node's `ownerDocument` for some reason, so it's safer\n // to ignore the rootNode at this point, and use `node.ownerDocument`. Otherwise,\n // using `rootNode.contains(node)` will _always_ be true we'll get false-positives when\n // node is actually detached.\n // NOTE: If `nodeRootHost` or `node` happens to be the `document` itself (which is possible\n // if a tabbable/focusable node was quickly added to the DOM, focused, and then removed\n // from the DOM as in https://github.com/focus-trap/focus-trap-react/issues/905), then\n // `ownerDocument` will be `null`, hence the optional chaining on it.\n var nodeRoot = node && getRootNode(node);\n var nodeRootHost = (_nodeRoot = nodeRoot) === null || _nodeRoot === void 0 ? void 0 : _nodeRoot.host;\n\n // in some cases, a detached node will return itself as the root instead of a document or\n // shadow root object, in which case, we shouldn't try to look further up the host chain\n var attached = false;\n if (nodeRoot && nodeRoot !== node) {\n var _nodeRootHost, _nodeRootHost$ownerDo, _node$ownerDocument;\n attached = !!((_nodeRootHost = nodeRootHost) !== null && _nodeRootHost !== void 0 && (_nodeRootHost$ownerDo = _nodeRootHost.ownerDocument) !== null && _nodeRootHost$ownerDo !== void 0 && _nodeRootHost$ownerDo.contains(nodeRootHost) || node !== null && node !== void 0 && (_node$ownerDocument = node.ownerDocument) !== null && _node$ownerDocument !== void 0 && _node$ownerDocument.contains(node));\n while (!attached && nodeRootHost) {\n var _nodeRoot2, _nodeRootHost2, _nodeRootHost2$ownerD;\n // since it's not attached and we have a root host, the node MUST be in a nested shadow DOM,\n // which means we need to get the host's host and check if that parent host is contained\n // in (i.e. attached to) the document\n nodeRoot = getRootNode(nodeRootHost);\n nodeRootHost = (_nodeRoot2 = nodeRoot) === null || _nodeRoot2 === void 0 ? void 0 : _nodeRoot2.host;\n attached = !!((_nodeRootHost2 = nodeRootHost) !== null && _nodeRootHost2 !== void 0 && (_nodeRootHost2$ownerD = _nodeRootHost2.ownerDocument) !== null && _nodeRootHost2$ownerD !== void 0 && _nodeRootHost2$ownerD.contains(nodeRootHost));\n }\n }\n return attached;\n};\nvar isZeroArea = function isZeroArea(node) {\n var _node$getBoundingClie = node.getBoundingClientRect(),\n width = _node$getBoundingClie.width,\n height = _node$getBoundingClie.height;\n return width === 0 && height === 0;\n};\nvar isHidden = function isHidden(node, _ref) {\n var displayCheck = _ref.displayCheck,\n getShadowRoot = _ref.getShadowRoot;\n // NOTE: visibility will be `undefined` if node is detached from the document\n // (see notes about this further down), which means we will consider it visible\n // (this is legacy behavior from a very long way back)\n // NOTE: we check this regardless of `displayCheck=\"none\"` because this is a\n // _visibility_ check, not a _display_ check\n if (getComputedStyle(node).visibility === 'hidden') {\n return true;\n }\n var isDirectSummary = matches.call(node, 'details>summary:first-of-type');\n var nodeUnderDetails = isDirectSummary ? node.parentElement : node;\n if (matches.call(nodeUnderDetails, 'details:not([open]) *')) {\n return true;\n }\n if (!displayCheck || displayCheck === 'full' || displayCheck === 'legacy-full') {\n if (typeof getShadowRoot === 'function') {\n // figure out if we should consider the node to be in an undisclosed shadow and use the\n // 'non-zero-area' fallback\n var originalNode = node;\n while (node) {\n var parentElement = node.parentElement;\n var rootNode = getRootNode(node);\n if (parentElement && !parentElement.shadowRoot && getShadowRoot(parentElement) === true // check if there's an undisclosed shadow\n ) {\n // node has an undisclosed shadow which means we can only treat it as a black box, so we\n // fall back to a non-zero-area test\n return isZeroArea(node);\n } else if (node.assignedSlot) {\n // iterate up slot\n node = node.assignedSlot;\n } else if (!parentElement && rootNode !== node.ownerDocument) {\n // cross shadow boundary\n node = rootNode.host;\n } else {\n // iterate up normal dom\n node = parentElement;\n }\n }\n node = originalNode;\n }\n // else, `getShadowRoot` might be true, but all that does is enable shadow DOM support\n // (i.e. it does not also presume that all nodes might have undisclosed shadows); or\n // it might be a falsy value, which means shadow DOM support is disabled\n\n // Since we didn't find it sitting in an undisclosed shadow (or shadows are disabled)\n // now we can just test to see if it would normally be visible or not, provided it's\n // attached to the main document.\n // NOTE: We must consider case where node is inside a shadow DOM and given directly to\n // `isTabbable()` or `isFocusable()` -- regardless of `getShadowRoot` option setting.\n\n if (isNodeAttached(node)) {\n // this works wherever the node is: if there's at least one client rect, it's\n // somehow displayed; it also covers the CSS 'display: contents' case where the\n // node itself is hidden in place of its contents; and there's no need to search\n // up the hierarchy either\n return !node.getClientRects().length;\n }\n\n // Else, the node isn't attached to the document, which means the `getClientRects()`\n // API will __always__ return zero rects (this can happen, for example, if React\n // is used to render nodes onto a detached tree, as confirmed in this thread:\n // https://github.com/facebook/react/issues/9117#issuecomment-284228870)\n //\n // It also means that even window.getComputedStyle(node).display will return `undefined`\n // because styles are only computed for nodes that are in the document.\n //\n // NOTE: THIS HAS BEEN THE CASE FOR YEARS. It is not new, nor is it caused by tabbable\n // somehow. Though it was never stated officially, anyone who has ever used tabbable\n // APIs on nodes in detached containers has actually implicitly used tabbable in what\n // was later (as of v5.2.0 on Apr 9, 2021) called `displayCheck=\"none\"` mode -- essentially\n // considering __everything__ to be visible because of the innability to determine styles.\n //\n // v6.0.0: As of this major release, the default 'full' option __no longer treats detached\n // nodes as visible with the 'none' fallback.__\n if (displayCheck !== 'legacy-full') {\n return true; // hidden\n }\n // else, fallback to 'none' mode and consider the node visible\n } else if (displayCheck === 'non-zero-area') {\n // NOTE: Even though this tests that the node's client rect is non-zero to determine\n // whether it's displayed, and that a detached node will __always__ have a zero-area\n // client rect, we don't special-case for whether the node is attached or not. In\n // this mode, we do want to consider nodes that have a zero area to be hidden at all\n // times, and that includes attached or not.\n return isZeroArea(node);\n }\n\n // visible, as far as we can tell, or per current `displayCheck=none` mode, we assume\n // it's visible\n return false;\n};\n\n// form fields (nested) inside a disabled fieldset are not focusable/tabbable\n// unless they are in the _first_ <legend> element of the top-most disabled\n// fieldset\nvar isDisabledFromFieldset = function isDisabledFromFieldset(node) {\n if (/^(INPUT|BUTTON|SELECT|TEXTAREA)$/.test(node.tagName)) {\n var parentNode = node.parentElement;\n // check if `node` is contained in a disabled <fieldset>\n while (parentNode) {\n if (parentNode.tagName === 'FIELDSET' && parentNode.disabled) {\n // look for the first <legend> among the children of the disabled <fieldset>\n for (var i = 0; i < parentNode.children.length; i++) {\n var child = parentNode.children.item(i);\n // when the first <legend> (in document order) is found\n if (child.tagName === 'LEGEND') {\n // if its parent <fieldset> is not nested in another disabled <fieldset>,\n // return whether `node` is a descendant of its first <legend>\n return matches.call(parentNode, 'fieldset[disabled] *') ? true : !child.contains(node);\n }\n }\n // the disabled <fieldset> containing `node` has no <legend>\n return true;\n }\n parentNode = parentNode.parentElement;\n }\n }\n\n // else, node's tabbable/focusable state should not be affected by a fieldset's\n // enabled/disabled state\n return false;\n};\nvar isNodeMatchingSelectorFocusable = function isNodeMatchingSelectorFocusable(options, node) {\n if (node.disabled ||\n // we must do an inert look up to filter out any elements inside an inert ancestor\n // because we're limited in the type of selectors we can use in JSDom (see related\n // note related to `candidateSelectors`)\n isInert(node) || isHiddenInput(node) || isHidden(node, options) ||\n // For a details element with a summary, the summary element gets the focus\n isDetailsWithSummary(node) || isDisabledFromFieldset(node)) {\n return false;\n }\n return true;\n};\nvar isNodeMatchingSelectorTabbable = function isNodeMatchingSelectorTabbable(options, node) {\n if (isNonTabbableRadio(node) || getTabindex(node) < 0 || !isNodeMatchingSelectorFocusable(options, node)) {\n return false;\n }\n return true;\n};\nvar isValidShadowRootTabbable = function isValidShadowRootTabbable(shadowHostNode) {\n var tabIndex = parseInt(shadowHostNode.getAttribute('tabindex'), 10);\n if (isNaN(tabIndex) || tabIndex >= 0) {\n return true;\n }\n // If a custom element has an explicit negative tabindex,\n // browsers will not allow tab targeting said element's children.\n return false;\n};\n\n/**\n * @param {Array.<Element|CandidateScope>} candidates\n * @returns Element[]\n */\nvar sortByOrder = function sortByOrder(candidates) {\n var regularTabbables = [];\n var orderedTabbables = [];\n candidates.forEach(function (item, i) {\n var isScope = !!item.scopeParent;\n var element = isScope ? item.scopeParent : item;\n var candidateTabindex = getTabindex(element, isScope);\n var elements = isScope ? sortByOrder(item.candidates) : element;\n if (candidateTabindex === 0) {\n isScope ? regularTabbables.push.apply(regularTabbables, elements) : regularTabbables.push(element);\n } else {\n orderedTabbables.push({\n documentOrder: i,\n tabIndex: candidateTabindex,\n item: item,\n isScope: isScope,\n content: elements\n });\n }\n });\n return orderedTabbables.sort(sortOrderedTabbables).reduce(function (acc, sortable) {\n sortable.isScope ? acc.push.apply(acc, sortable.content) : acc.push(sortable.content);\n return acc;\n }, []).concat(regularTabbables);\n};\nvar tabbable = function tabbable(el, options) {\n options = options || {};\n var candidates;\n if (options.getShadowRoot) {\n candidates = getCandidatesIteratively([el], options.includeContainer, {\n filter: isNodeMatchingSelectorTabbable.bind(null, options),\n flatten: false,\n getShadowRoot: options.getShadowRoot,\n shadowRootFilter: isValidShadowRootTabbable\n });\n } else {\n candidates = getCandidates(el, options.includeContainer, isNodeMatchingSelectorTabbable.bind(null, options));\n }\n return sortByOrder(candidates);\n};\nvar focusable = function focusable(el, options) {\n options = options || {};\n var candidates;\n if (options.getShadowRoot) {\n candidates = getCandidatesIteratively([el], options.includeContainer, {\n filter: isNodeMatchingSelectorFocusable.bind(null, options),\n flatten: true,\n getShadowRoot: options.getShadowRoot\n });\n } else {\n candidates = getCandidates(el, options.includeContainer, isNodeMatchingSelectorFocusable.bind(null, options));\n }\n return candidates;\n};\nvar isTabbable = function isTabbable(node, options) {\n options = options || {};\n if (!node) {\n throw new Error('No node provided');\n }\n if (matches.call(node, candidateSelector) === false) {\n return false;\n }\n return isNodeMatchingSelectorTabbable(options, node);\n};\nvar focusableCandidateSelector = /* #__PURE__ */candidateSelectors.concat('iframe').join(',');\nvar isFocusable = function isFocusable(node, options) {\n options = options || {};\n if (!node) {\n throw new Error('No node provided');\n }\n if (matches.call(node, focusableCandidateSelector) === false) {\n return false;\n }\n return isNodeMatchingSelectorFocusable(options, node);\n};\n\nexport { focusable, isFocusable, isTabbable, tabbable };\n//# sourceMappingURL=index.esm.js.map\n","function getAlignment(placement) {\n return placement.split('-')[1];\n}\n\nfunction getLengthFromAxis(axis) {\n return axis === 'y' ? 'height' : 'width';\n}\n\nfunction getSide(placement) {\n return placement.split('-')[0];\n}\n\nfunction getMainAxisFromPlacement(placement) {\n return ['top', 'bottom'].includes(getSide(placement)) ? 'x' : 'y';\n}\n\nfunction computeCoordsFromPlacement(_ref, placement, rtl) {\n let {\n reference,\n floating\n } = _ref;\n const commonX = reference.x + reference.width / 2 - floating.width / 2;\n const commonY = reference.y + reference.height / 2 - floating.height / 2;\n const mainAxis = getMainAxisFromPlacement(placement);\n const length = getLengthFromAxis(mainAxis);\n const commonAlign = reference[length] / 2 - floating[length] / 2;\n const side = getSide(placement);\n const isVertical = mainAxis === 'x';\n let coords;\n switch (side) {\n case 'top':\n coords = {\n x: commonX,\n y: reference.y - floating.height\n };\n break;\n case 'bottom':\n coords = {\n x: commonX,\n y: reference.y + reference.height\n };\n break;\n case 'right':\n coords = {\n x: reference.x + reference.width,\n y: commonY\n };\n break;\n case 'left':\n coords = {\n x: reference.x - floating.width,\n y: commonY\n };\n break;\n default:\n coords = {\n x: reference.x,\n y: reference.y\n };\n }\n switch (getAlignment(placement)) {\n case 'start':\n coords[mainAxis] -= commonAlign * (rtl && isVertical ? -1 : 1);\n break;\n case 'end':\n coords[mainAxis] += commonAlign * (rtl && isVertical ? -1 : 1);\n break;\n }\n return coords;\n}\n\n/**\n * Computes the `x` and `y` coordinates that will place the floating element\n * next to a reference element when it is given a certain positioning strategy.\n *\n * This export does not have any `platform` interface logic. You will need to\n * write one for the platform you are using Floating UI with.\n */\nconst computePosition = async (reference, floating, config) => {\n const {\n placement = 'bottom',\n strategy = 'absolute',\n middleware = [],\n platform\n } = config;\n const validMiddleware = middleware.filter(Boolean);\n const rtl = await (platform.isRTL == null ? void 0 : platform.isRTL(floating));\n if (process.env.NODE_ENV !== \"production\") {\n if (platform == null) {\n console.error(['Floating UI: `platform` property was not passed to config. If you', 'want to use Floating UI on the web, install @floating-ui/dom', 'instead of the /core package. Otherwise, you can create your own', '`platform`: https://floating-ui.com/docs/platform'].join(' '));\n }\n if (validMiddleware.filter(_ref => {\n let {\n name\n } = _ref;\n return name === 'autoPlacement' || name === 'flip';\n }).length > 1) {\n throw new Error(['Floating UI: duplicate `flip` and/or `autoPlacement` middleware', 'detected. This will lead to an infinite loop. Ensure only one of', 'either has been passed to the `middleware` array.'].join(' '));\n }\n if (!reference || !floating) {\n console.error(['Floating UI: The reference and/or floating element was not defined', 'when `computePosition()` was called. Ensure that both elements have', 'been created and can be measured.'].join(' '));\n }\n }\n let rects = await platform.getElementRects({\n reference,\n floating,\n strategy\n });\n let {\n x,\n y\n } = computeCoordsFromPlacement(rects, placement, rtl);\n let statefulPlacement = placement;\n let middlewareData = {};\n let resetCount = 0;\n for (let i = 0; i < validMiddleware.length; i++) {\n const {\n name,\n fn\n } = validMiddleware[i];\n const {\n x: nextX,\n y: nextY,\n data,\n reset\n } = await fn({\n x,\n y,\n initialPlacement: placement,\n placement: statefulPlacement,\n strategy,\n middlewareData,\n rects,\n platform,\n elements: {\n reference,\n floating\n }\n });\n x = nextX != null ? nextX : x;\n y = nextY != null ? nextY : y;\n middlewareData = {\n ...middlewareData,\n [name]: {\n ...middlewareData[name],\n ...data\n }\n };\n if (process.env.NODE_ENV !== \"production\") {\n if (resetCount > 50) {\n console.warn(['Floating UI: The middleware lifecycle appears to be running in an', 'infinite loop. This is usually caused by a `reset` continually', 'being returned without a break condition.'].join(' '));\n }\n }\n if (reset && resetCount <= 50) {\n resetCount++;\n if (typeof reset === 'object') {\n if (reset.placement) {\n statefulPlacement = reset.placement;\n }\n if (reset.rects) {\n rects = reset.rects === true ? await platform.getElementRects({\n reference,\n floating,\n strategy\n }) : reset.rects;\n }\n ({\n x,\n y\n } = computeCoordsFromPlacement(rects, statefulPlacement, rtl));\n }\n i = -1;\n continue;\n }\n }\n return {\n x,\n y,\n placement: statefulPlacement,\n strategy,\n middlewareData\n };\n};\n\nfunction expandPaddingObject(padding) {\n return {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0,\n ...padding\n };\n}\n\nfunction getSideObjectFromPadding(padding) {\n return typeof padding !== 'number' ? expandPaddingObject(padding) : {\n top: padding,\n right: padding,\n bottom: padding,\n left: padding\n };\n}\n\nfunction rectToClientRect(rect) {\n return {\n ...rect,\n top: rect.y,\n left: rect.x,\n right: rect.x + rect.width,\n bottom: rect.y + rect.height\n };\n}\n\n/**\n * Resolves with an object of overflow side offsets that determine how much the\n * element is overflowing a given clipping boundary on each side.\n * - positive = overflowing the boundary by that number of pixels\n * - negative = how many pixels left before it will overflow\n * - 0 = lies flush with the boundary\n * @see https://floating-ui.com/docs/detectOverflow\n */\nasync function detectOverflow(state, options) {\n var _await$platform$isEle;\n if (options === void 0) {\n options = {};\n }\n const {\n x,\n y,\n platform,\n rects,\n elements,\n strategy\n } = state;\n const {\n boundary = 'clippingAncestors',\n rootBoundary = 'viewport',\n elementContext = 'floating',\n altBoundary = false,\n padding = 0\n } = options;\n const paddingObject = getSideObjectFromPadding(padding);\n const altContext = elementContext === 'floating' ? 'reference' : 'floating';\n const element = elements[altBoundary ? altContext : elementContext];\n const clippingClientRect = rectToClientRect(await platform.getClippingRect({\n element: ((_await$platform$isEle = await (platform.isElement == null ? void 0 : platform.isElement(element))) != null ? _await$platform$isEle : true) ? element : element.contextElement || (await (platform.getDocumentElement == null ? void 0 : platform.getDocumentElement(elements.floating))),\n boundary,\n rootBoundary,\n strategy\n }));\n const rect = elementContext === 'floating' ? {\n ...rects.floating,\n x,\n y\n } : rects.reference;\n const offsetParent = await (platform.getOffsetParent == null ? void 0 : platform.getOffsetParent(elements.floating));\n const offsetScale = (await (platform.isElement == null ? void 0 : platform.isElement(offsetParent))) ? (await (platform.getScale == null ? void 0 : platform.getScale(offsetParent))) || {\n x: 1,\n y: 1\n } : {\n x: 1,\n y: 1\n };\n const elementClientRect = rectToClientRect(platform.convertOffsetParentRelativeRectToViewportRelativeRect ? await platform.convertOffsetParentRelativeRectToViewportRelativeRect({\n rect,\n offsetParent,\n strategy\n }) : rect);\n if (process.env.NODE_ENV !== \"production\") ;\n return {\n top: (clippingClientRect.top - elementClientRect.top + paddingObject.top) / offsetScale.y,\n bottom: (elementClientRect.bottom - clippingClientRect.bottom + paddingObject.bottom) / offsetScale.y,\n left: (clippingClientRect.left - elementClientRect.left + paddingObject.left) / offsetScale.x,\n right: (elementClientRect.right - clippingClientRect.right + paddingObject.right) / offsetScale.x\n };\n}\n\nconst min = Math.min;\nconst max = Math.max;\n\nfunction within(min$1, value, max$1) {\n return max(min$1, min(value, max$1));\n}\n\n/**\n * Provides data to position an inner element of the floating element so that it\n * appears centered to the reference element.\n * @see https://floating-ui.com/docs/arrow\n */\nconst arrow = options => ({\n name: 'arrow',\n options,\n async fn(state) {\n // Since `element` is required, we don't Partial<> the type.\n const {\n element,\n padding = 0\n } = options || {};\n const {\n x,\n y,\n placement,\n rects,\n platform\n } = state;\n if (element == null) {\n if (process.env.NODE_ENV !== \"production\") {\n console.warn('Floating UI: No `element` was passed to the `arrow` middleware.');\n }\n return {};\n }\n const paddingObject = getSideObjectFromPadding(padding);\n const coords = {\n x,\n y\n };\n const axis = getMainAxisFromPlacement(placement);\n const length = getLengthFromAxis(axis);\n const arrowDimensions = await platform.getDimensions(element);\n const minProp = axis === 'y' ? 'top' : 'left';\n const maxProp = axis === 'y' ? 'bottom' : 'right';\n const endDiff = rects.reference[length] + rects.reference[axis] - coords[axis] - rects.floating[length];\n const startDiff = coords[axis] - rects.reference[axis];\n const arrowOffsetParent = await (platform.getOffsetParent == null ? void 0 : platform.getOffsetParent(element));\n let clientSize = arrowOffsetParent ? axis === 'y' ? arrowOffsetParent.clientHeight || 0 : arrowOffsetParent.clientWidth || 0 : 0;\n if (clientSize === 0) {\n clientSize = rects.floating[length];\n }\n const centerToReference = endDiff / 2 - startDiff / 2;\n\n // Make sure the arrow doesn't overflow the floating element if the center\n // point is outside the floating element's bounds.\n const min = paddingObject[minProp];\n const max = clientSize - arrowDimensions[length] - paddingObject[maxProp];\n const center = clientSize / 2 - arrowDimensions[length] / 2 + centerToReference;\n const offset = within(min, center, max);\n\n // If the reference is small enough that the arrow's padding causes it to\n // to point to nothing for an aligned placement, adjust the offset of the\n // floating element itself. This stops `shift()` from taking action, but can\n // be worked around by calling it again after the `arrow()` if desired.\n const shouldAddOffset = getAlignment(placement) != null && center != offset && rects.reference[length] / 2 - (center < min ? paddingObject[minProp] : paddingObject[maxProp]) - arrowDimensions[length] / 2 < 0;\n const alignmentOffset = shouldAddOffset ? center < min ? min - center : max - center : 0;\n return {\n [axis]: coords[axis] - alignmentOffset,\n data: {\n [axis]: offset,\n centerOffset: center - offset\n }\n };\n }\n});\n\nconst sides = ['top', 'right', 'bottom', 'left'];\nconst allPlacements = /*#__PURE__*/sides.reduce((acc, side) => acc.concat(side, side + \"-start\", side + \"-end\"), []);\n\nconst oppositeSideMap = {\n left: 'right',\n right: 'left',\n bottom: 'top',\n top: 'bottom'\n};\nfunction getOppositePlacement(placement) {\n return placement.replace(/left|right|bottom|top/g, side => oppositeSideMap[side]);\n}\n\nfunction getAlignmentSides(placement, rects, rtl) {\n if (rtl === void 0) {\n rtl = false;\n }\n const alignment = getAlignment(placement);\n const mainAxis = getMainAxisFromPlacement(placement);\n const length = getLengthFromAxis(mainAxis);\n let mainAlignmentSide = mainAxis === 'x' ? alignment === (rtl ? 'end' : 'start') ? 'right' : 'left' : alignment === 'start' ? 'bottom' : 'top';\n if (rects.reference[length] > rects.floating[length]) {\n mainAlignmentSide = getOppositePlacement(mainAlignmentSide);\n }\n return {\n main: mainAlignmentSide,\n cross: getOppositePlacement(mainAlignmentSide)\n };\n}\n\nconst oppositeAlignmentMap = {\n start: 'end',\n end: 'start'\n};\nfunction getOppositeAlignmentPlacement(placement) {\n return placement.replace(/start|end/g, alignment => oppositeAlignmentMap[alignment]);\n}\n\nfunction getPlacementList(alignment, autoAlignment, allowedPlacements) {\n const allowedPlacementsSortedByAlignment = alignment ? [...allowedPlacements.filter(placement => getAlignment(placement) === alignment), ...allowedPlacements.filter(placement => getAlignment(placement) !== alignment)] : allowedPlacements.filter(placement => getSide(placement) === placement);\n return allowedPlacementsSortedByAlignment.filter(placement => {\n if (alignment) {\n return getAlignment(placement) === alignment || (autoAlignment ? getOppositeAlignmentPlacement(placement) !== placement : false);\n }\n return true;\n });\n}\n/**\n * Optimizes the visibility of the floating element by choosing the placement\n * that has the most space available automatically, without needing to specify a\n * preferred placement. Alternative to `flip`.\n * @see https://floating-ui.com/docs/autoPlacement\n */\nconst autoPlacement = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'autoPlacement',\n options,\n async fn(state) {\n var _middlewareData$autoP, _middlewareData$autoP2, _placementsThatFitOnE;\n const {\n rects,\n middlewareData,\n placement,\n platform,\n elements\n } = state;\n const {\n crossAxis = false,\n alignment,\n allowedPlacements = allPlacements,\n autoAlignment = true,\n ...detectOverflowOptions\n } = options;\n const placements = alignment !== undefined || allowedPlacements === allPlacements ? getPlacementList(alignment || null, autoAlignment, allowedPlacements) : allowedPlacements;\n const overflow = await detectOverflow(state, detectOverflowOptions);\n const currentIndex = ((_middlewareData$autoP = middlewareData.autoPlacement) == null ? void 0 : _middlewareData$autoP.index) || 0;\n const currentPlacement = placements[currentIndex];\n if (currentPlacement == null) {\n return {};\n }\n const {\n main,\n cross\n } = getAlignmentSides(currentPlacement, rects, await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating)));\n\n // Make `computeCoords` start from the right place.\n if (placement !== currentPlacement) {\n return {\n reset: {\n placement: placements[0]\n }\n };\n }\n const currentOverflows = [overflow[getSide(currentPlacement)], overflow[main], overflow[cross]];\n const allOverflows = [...(((_middlewareData$autoP2 = middlewareData.autoPlacement) == null ? void 0 : _middlewareData$autoP2.overflows) || []), {\n placement: currentPlacement,\n overflows: currentOverflows\n }];\n const nextPlacement = placements[currentIndex + 1];\n\n // There are more placements to check.\n if (nextPlacement) {\n return {\n data: {\n index: currentIndex + 1,\n overflows: allOverflows\n },\n reset: {\n placement: nextPlacement\n }\n };\n }\n const placementsSortedByMostSpace = allOverflows.map(d => {\n const alignment = getAlignment(d.placement);\n return [d.placement, alignment && crossAxis ?\n // Check along the mainAxis and main crossAxis side.\n d.overflows.slice(0, 2).reduce((acc, v) => acc + v, 0) :\n // Check only the mainAxis.\n d.overflows[0], d.overflows];\n }).sort((a, b) => a[1] - b[1]);\n const placementsThatFitOnEachSide = placementsSortedByMostSpace.filter(d => d[2].slice(0,\n // Aligned placements should not check their opposite crossAxis\n // side.\n getAlignment(d[0]) ? 2 : 3).every(v => v <= 0));\n const resetPlacement = ((_placementsThatFitOnE = placementsThatFitOnEachSide[0]) == null ? void 0 : _placementsThatFitOnE[0]) || placementsSortedByMostSpace[0][0];\n if (resetPlacement !== placement) {\n return {\n data: {\n index: currentIndex + 1,\n overflows: allOverflows\n },\n reset: {\n placement: resetPlacement\n }\n };\n }\n return {};\n }\n };\n};\n\nfunction getExpandedPlacements(placement) {\n const oppositePlacement = getOppositePlacement(placement);\n return [getOppositeAlignmentPlacement(placement), oppositePlacement, getOppositeAlignmentPlacement(oppositePlacement)];\n}\n\nfunction getSideList(side, isStart, rtl) {\n const lr = ['left', 'right'];\n const rl = ['right', 'left'];\n const tb = ['top', 'bottom'];\n const bt = ['bottom', 'top'];\n switch (side) {\n case 'top':\n case 'bottom':\n if (rtl) return isStart ? rl : lr;\n return isStart ? lr : rl;\n case 'left':\n case 'right':\n return isStart ? tb : bt;\n default:\n return [];\n }\n}\nfunction getOppositeAxisPlacements(placement, flipAlignment, direction, rtl) {\n const alignment = getAlignment(placement);\n let list = getSideList(getSide(placement), direction === 'start', rtl);\n if (alignment) {\n list = list.map(side => side + \"-\" + alignment);\n if (flipAlignment) {\n list = list.concat(list.map(getOppositeAlignmentPlacement));\n }\n }\n return list;\n}\n\n/**\n * Optimizes the visibility of the floating element by flipping the `placement`\n * in order to keep it in view when the preferred placement(s) will overflow the\n * clipping boundary. Alternative to `autoPlacement`.\n * @see https://floating-ui.com/docs/flip\n */\nconst flip = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'flip',\n options,\n async fn(state) {\n var _middlewareData$flip;\n const {\n placement,\n middlewareData,\n rects,\n initialPlacement,\n platform,\n elements\n } = state;\n const {\n mainAxis: checkMainAxis = true,\n crossAxis: checkCrossAxis = true,\n fallbackPlacements: specifiedFallbackPlacements,\n fallbackStrategy = 'bestFit',\n fallbackAxisSideDirection = 'none',\n flipAlignment = true,\n ...detectOverflowOptions\n } = options;\n const side = getSide(placement);\n const isBasePlacement = getSide(initialPlacement) === initialPlacement;\n const rtl = await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating));\n const fallbackPlacements = specifiedFallbackPlacements || (isBasePlacement || !flipAlignment ? [getOppositePlacement(initialPlacement)] : getExpandedPlacements(initialPlacement));\n if (!specifiedFallbackPlacements && fallbackAxisSideDirection !== 'none') {\n fallbackPlacements.push(...getOppositeAxisPlacements(initialPlacement, flipAlignment, fallbackAxisSideDirection, rtl));\n }\n const placements = [initialPlacement, ...fallbackPlacements];\n const overflow = await detectOverflow(state, detectOverflowOptions);\n const overflows = [];\n let overflowsData = ((_middlewareData$flip = middlewareData.flip) == null ? void 0 : _middlewareData$flip.overflows) || [];\n if (checkMainAxis) {\n overflows.push(overflow[side]);\n }\n if (checkCrossAxis) {\n const {\n main,\n cross\n } = getAlignmentSides(placement, rects, rtl);\n overflows.push(overflow[main], overflow[cross]);\n }\n overflowsData = [...overflowsData, {\n placement,\n overflows\n }];\n\n // One or more sides is overflowing.\n if (!overflows.every(side => side <= 0)) {\n var _middlewareData$flip2, _overflowsData$filter;\n const nextIndex = (((_middlewareData$flip2 = middlewareData.flip) == null ? void 0 : _middlewareData$flip2.index) || 0) + 1;\n const nextPlacement = placements[nextIndex];\n if (nextPlacement) {\n // Try next placement and re-run the lifecycle.\n return {\n data: {\n index: nextIndex,\n overflows: overflowsData\n },\n reset: {\n placement: nextPlacement\n }\n };\n }\n\n // First, find the candidates that fit on the mainAxis side of overflow,\n // then find the placement that fits the best on the main crossAxis side.\n let resetPlacement = (_overflowsData$filter = overflowsData.filter(d => d.overflows[0] <= 0).sort((a, b) => a.overflows[1] - b.overflows[1])[0]) == null ? void 0 : _overflowsData$filter.placement;\n\n // Otherwise fallback.\n if (!resetPlacement) {\n switch (fallbackStrategy) {\n case 'bestFit':\n {\n var _overflowsData$map$so;\n const placement = (_overflowsData$map$so = overflowsData.map(d => [d.placement, d.overflows.filter(overflow => overflow > 0).reduce((acc, overflow) => acc + overflow, 0)]).sort((a, b) => a[1] - b[1])[0]) == null ? void 0 : _overflowsData$map$so[0];\n if (placement) {\n resetPlacement = placement;\n }\n break;\n }\n case 'initialPlacement':\n resetPlacement = initialPlacement;\n break;\n }\n }\n if (placement !== resetPlacement) {\n return {\n reset: {\n placement: resetPlacement\n }\n };\n }\n }\n return {};\n }\n };\n};\n\nfunction getSideOffsets(overflow, rect) {\n return {\n top: overflow.top - rect.height,\n right: overflow.right - rect.width,\n bottom: overflow.bottom - rect.height,\n left: overflow.left - rect.width\n };\n}\nfunction isAnySideFullyClipped(overflow) {\n return sides.some(side => overflow[side] >= 0);\n}\n/**\n * Provides data to hide the floating element in applicable situations, such as\n * when it is not in the same clipping context as the reference element.\n * @see https://floating-ui.com/docs/hide\n */\nconst hide = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'hide',\n options,\n async fn(state) {\n const {\n strategy = 'referenceHidden',\n ...detectOverflowOptions\n } = options;\n const {\n rects\n } = state;\n switch (strategy) {\n case 'referenceHidden':\n {\n const overflow = await detectOverflow(state, {\n ...detectOverflowOptions,\n elementContext: 'reference'\n });\n const offsets = getSideOffsets(overflow, rects.reference);\n return {\n data: {\n referenceHiddenOffsets: offsets,\n referenceHidden: isAnySideFullyClipped(offsets)\n }\n };\n }\n case 'escaped':\n {\n const overflow = await detectOverflow(state, {\n ...detectOverflowOptions,\n altBoundary: true\n });\n const offsets = getSideOffsets(overflow, rects.floating);\n return {\n data: {\n escapedOffsets: offsets,\n escaped: isAnySideFullyClipped(offsets)\n }\n };\n }\n default:\n {\n return {};\n }\n }\n }\n };\n};\n\n/**\n * Provides improved positioning for inline reference elements that can span\n * over multiple lines, such as hyperlinks or range selections.\n * @see https://floating-ui.com/docs/inline\n */\nconst inline = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'inline',\n options,\n async fn(state) {\n const {\n placement,\n elements,\n rects,\n platform,\n strategy\n } = state;\n // A MouseEvent's client{X,Y} coords can be up to 2 pixels off a\n // ClientRect's bounds, despite the event listener being triggered. A\n // padding of 2 seems to handle this issue.\n const {\n padding = 2,\n x,\n y\n } = options;\n const fallback = rectToClientRect(platform.convertOffsetParentRelativeRectToViewportRelativeRect ? await platform.convertOffsetParentRelativeRectToViewportRelativeRect({\n rect: rects.reference,\n offsetParent: await (platform.getOffsetParent == null ? void 0 : platform.getOffsetParent(elements.floating)),\n strategy\n }) : rects.reference);\n const clientRects = (await (platform.getClientRects == null ? void 0 : platform.getClientRects(elements.reference))) || [];\n const paddingObject = getSideObjectFromPadding(padding);\n function getBoundingClientRect() {\n // There are two rects and they are disjoined.\n if (clientRects.length === 2 && clientRects[0].left > clientRects[1].right && x != null && y != null) {\n // Find the first rect in which the point is fully inside.\n return clientRects.find(rect => x > rect.left - paddingObject.left && x < rect.right + paddingObject.right && y > rect.top - paddingObject.top && y < rect.bottom + paddingObject.bottom) || fallback;\n }\n\n // There are 2 or more connected rects.\n if (clientRects.length >= 2) {\n if (getMainAxisFromPlacement(placement) === 'x') {\n const firstRect = clientRects[0];\n const lastRect = clientRects[clientRects.length - 1];\n const isTop = getSide(placement) === 'top';\n const top = firstRect.top;\n const bottom = lastRect.bottom;\n const left = isTop ? firstRect.left : lastRect.left;\n const right = isTop ? firstRect.right : lastRect.right;\n const width = right - left;\n const height = bottom - top;\n return {\n top,\n bottom,\n left,\n right,\n width,\n height,\n x: left,\n y: top\n };\n }\n const isLeftSide = getSide(placement) === 'left';\n const maxRight = max(...clientRects.map(rect => rect.right));\n const minLeft = min(...clientRects.map(rect => rect.left));\n const measureRects = clientRects.filter(rect => isLeftSide ? rect.left === minLeft : rect.right === maxRight);\n const top = measureRects[0].top;\n const bottom = measureRects[measureRects.length - 1].bottom;\n const left = minLeft;\n const right = maxRight;\n const width = right - left;\n const height = bottom - top;\n return {\n top,\n bottom,\n left,\n right,\n width,\n height,\n x: left,\n y: top\n };\n }\n return fallback;\n }\n const resetRects = await platform.getElementRects({\n reference: {\n getBoundingClientRect\n },\n floating: elements.floating,\n strategy\n });\n if (rects.reference.x !== resetRects.reference.x || rects.reference.y !== resetRects.reference.y || rects.reference.width !== resetRects.reference.width || rects.reference.height !== resetRects.reference.height) {\n return {\n reset: {\n rects: resetRects\n }\n };\n }\n return {};\n }\n };\n};\n\nasync function convertValueToCoords(state, value) {\n const {\n placement,\n platform,\n elements\n } = state;\n const rtl = await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating));\n const side = getSide(placement);\n const alignment = getAlignment(placement);\n const isVertical = getMainAxisFromPlacement(placement) === 'x';\n const mainAxisMulti = ['left', 'top'].includes(side) ? -1 : 1;\n const crossAxisMulti = rtl && isVertical ? -1 : 1;\n const rawValue = typeof value === 'function' ? value(state) : value;\n\n // eslint-disable-next-line prefer-const\n let {\n mainAxis,\n crossAxis,\n alignmentAxis\n } = typeof rawValue === 'number' ? {\n mainAxis: rawValue,\n crossAxis: 0,\n alignmentAxis: null\n } : {\n mainAxis: 0,\n crossAxis: 0,\n alignmentAxis: null,\n ...rawValue\n };\n if (alignment && typeof alignmentAxis === 'number') {\n crossAxis = alignment === 'end' ? alignmentAxis * -1 : alignmentAxis;\n }\n return isVertical ? {\n x: crossAxis * crossAxisMulti,\n y: mainAxis * mainAxisMulti\n } : {\n x: mainAxis * mainAxisMulti,\n y: crossAxis * crossAxisMulti\n };\n}\n\n/**\n * Modifies the placement by translating the floating element along the\n * specified axes.\n * A number (shorthand for `mainAxis` or distance), or an axes configuration\n * object may be passed.\n * @see https://floating-ui.com/docs/offset\n */\nconst offset = function (value) {\n if (value === void 0) {\n value = 0;\n }\n return {\n name: 'offset',\n options: value,\n async fn(state) {\n const {\n x,\n y\n } = state;\n const diffCoords = await convertValueToCoords(state, value);\n return {\n x: x + diffCoords.x,\n y: y + diffCoords.y,\n data: diffCoords\n };\n }\n };\n};\n\nfunction getCrossAxis(axis) {\n return axis === 'x' ? 'y' : 'x';\n}\n\n/**\n * Optimizes the visibility of the floating element by shifting it in order to\n * keep it in view when it will overflow the clipping boundary.\n * @see https://floating-ui.com/docs/shift\n */\nconst shift = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'shift',\n options,\n async fn(state) {\n const {\n x,\n y,\n placement\n } = state;\n const {\n mainAxis: checkMainAxis = true,\n crossAxis: checkCrossAxis = false,\n limiter = {\n fn: _ref => {\n let {\n x,\n y\n } = _ref;\n return {\n x,\n y\n };\n }\n },\n ...detectOverflowOptions\n } = options;\n const coords = {\n x,\n y\n };\n const overflow = await detectOverflow(state, detectOverflowOptions);\n const mainAxis = getMainAxisFromPlacement(getSide(placement));\n const crossAxis = getCrossAxis(mainAxis);\n let mainAxisCoord = coords[mainAxis];\n let crossAxisCoord = coords[crossAxis];\n if (checkMainAxis) {\n const minSide = mainAxis === 'y' ? 'top' : 'left';\n const maxSide = mainAxis === 'y' ? 'bottom' : 'right';\n const min = mainAxisCoord + overflow[minSide];\n const max = mainAxisCoord - overflow[maxSide];\n mainAxisCoord = within(min, mainAxisCoord, max);\n }\n if (checkCrossAxis) {\n const minSide = crossAxis === 'y' ? 'top' : 'left';\n const maxSide = crossAxis === 'y' ? 'bottom' : 'right';\n const min = crossAxisCoord + overflow[minSide];\n const max = crossAxisCoord - overflow[maxSide];\n crossAxisCoord = within(min, crossAxisCoord, max);\n }\n const limitedCoords = limiter.fn({\n ...state,\n [mainAxis]: mainAxisCoord,\n [crossAxis]: crossAxisCoord\n });\n return {\n ...limitedCoords,\n data: {\n x: limitedCoords.x - x,\n y: limitedCoords.y - y\n }\n };\n }\n };\n};\n/**\n * Built-in `limiter` that will stop `shift()` at a certain point.\n */\nconst limitShift = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n options,\n fn(state) {\n const {\n x,\n y,\n placement,\n rects,\n middlewareData\n } = state;\n const {\n offset = 0,\n mainAxis: checkMainAxis = true,\n crossAxis: checkCrossAxis = true\n } = options;\n const coords = {\n x,\n y\n };\n const mainAxis = getMainAxisFromPlacement(placement);\n const crossAxis = getCrossAxis(mainAxis);\n let mainAxisCoord = coords[mainAxis];\n let crossAxisCoord = coords[crossAxis];\n const rawOffset = typeof offset === 'function' ? offset(state) : offset;\n const computedOffset = typeof rawOffset === 'number' ? {\n mainAxis: rawOffset,\n crossAxis: 0\n } : {\n mainAxis: 0,\n crossAxis: 0,\n ...rawOffset\n };\n if (checkMainAxis) {\n const len = mainAxis === 'y' ? 'height' : 'width';\n const limitMin = rects.reference[mainAxis] - rects.floating[len] + computedOffset.mainAxis;\n const limitMax = rects.reference[mainAxis] + rects.reference[len] - computedOffset.mainAxis;\n if (mainAxisCoord < limitMin) {\n mainAxisCoord = limitMin;\n } else if (mainAxisCoord > limitMax) {\n mainAxisCoord = limitMax;\n }\n }\n if (checkCrossAxis) {\n var _middlewareData$offse, _middlewareData$offse2;\n const len = mainAxis === 'y' ? 'width' : 'height';\n const isOriginSide = ['top', 'left'].includes(getSide(placement));\n const limitMin = rects.reference[crossAxis] - rects.floating[len] + (isOriginSide ? ((_middlewareData$offse = middlewareData.offset) == null ? void 0 : _middlewareData$offse[crossAxis]) || 0 : 0) + (isOriginSide ? 0 : computedOffset.crossAxis);\n const limitMax = rects.reference[crossAxis] + rects.reference[len] + (isOriginSide ? 0 : ((_middlewareData$offse2 = middlewareData.offset) == null ? void 0 : _middlewareData$offse2[crossAxis]) || 0) - (isOriginSide ? computedOffset.crossAxis : 0);\n if (crossAxisCoord < limitMin) {\n crossAxisCoord = limitMin;\n } else if (crossAxisCoord > limitMax) {\n crossAxisCoord = limitMax;\n }\n }\n return {\n [mainAxis]: mainAxisCoord,\n [crossAxis]: crossAxisCoord\n };\n }\n };\n};\n\n/**\n * Provides data that allows you to change the size of the floating element —\n * for instance, prevent it from overflowing the clipping boundary or match the\n * width of the reference element.\n * @see https://floating-ui.com/docs/size\n */\nconst size = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'size',\n options,\n async fn(state) {\n const {\n placement,\n rects,\n platform,\n elements\n } = state;\n const {\n apply = () => {},\n ...detectOverflowOptions\n } = options;\n const overflow = await detectOverflow(state, detectOverflowOptions);\n const side = getSide(placement);\n const alignment = getAlignment(placement);\n const axis = getMainAxisFromPlacement(placement);\n const isXAxis = axis === 'x';\n const {\n width,\n height\n } = rects.floating;\n let heightSide;\n let widthSide;\n if (side === 'top' || side === 'bottom') {\n heightSide = side;\n widthSide = alignment === ((await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating))) ? 'start' : 'end') ? 'left' : 'right';\n } else {\n widthSide = side;\n heightSide = alignment === 'end' ? 'top' : 'bottom';\n }\n const overflowAvailableHeight = height - overflow[heightSide];\n const overflowAvailableWidth = width - overflow[widthSide];\n let availableHeight = overflowAvailableHeight;\n let availableWidth = overflowAvailableWidth;\n if (isXAxis) {\n availableWidth = min(\n // Maximum clipping viewport width\n width - overflow.right - overflow.left, overflowAvailableWidth);\n } else {\n availableHeight = min(\n // Maximum clipping viewport height\n height - overflow.bottom - overflow.top, overflowAvailableHeight);\n }\n if (!state.middlewareData.shift && !alignment) {\n const xMin = max(overflow.left, 0);\n const xMax = max(overflow.right, 0);\n const yMin = max(overflow.top, 0);\n const yMax = max(overflow.bottom, 0);\n if (isXAxis) {\n availableWidth = width - 2 * (xMin !== 0 || xMax !== 0 ? xMin + xMax : max(overflow.left, overflow.right));\n } else {\n availableHeight = height - 2 * (yMin !== 0 || yMax !== 0 ? yMin + yMax : max(overflow.top, overflow.bottom));\n }\n }\n await apply({\n ...state,\n availableWidth,\n availableHeight\n });\n const nextDimensions = await platform.getDimensions(elements.floating);\n if (width !== nextDimensions.width || height !== nextDimensions.height) {\n return {\n reset: {\n rects: true\n }\n };\n }\n return {};\n }\n };\n};\n\nexport { arrow, autoPlacement, computePosition, detectOverflow, flip, hide, inline, limitShift, offset, rectToClientRect, shift, size };\n","import { rectToClientRect, computePosition as computePosition$1 } from '@floating-ui/core';\nexport { arrow, autoPlacement, detectOverflow, flip, hide, inline, limitShift, offset, shift, size } from '@floating-ui/core';\n\nfunction getWindow(node) {\n var _node$ownerDocument;\n return ((_node$ownerDocument = node.ownerDocument) == null ? void 0 : _node$ownerDocument.defaultView) || window;\n}\n\nfunction getComputedStyle$1(element) {\n return getWindow(element).getComputedStyle(element);\n}\n\nconst min = Math.min;\nconst max = Math.max;\nconst round = Math.round;\n\nfunction getCssDimensions(element) {\n const css = getComputedStyle$1(element);\n let width = parseFloat(css.width);\n let height = parseFloat(css.height);\n const offsetWidth = element.offsetWidth;\n const offsetHeight = element.offsetHeight;\n const shouldFallback = round(width) !== offsetWidth || round(height) !== offsetHeight;\n if (shouldFallback) {\n width = offsetWidth;\n height = offsetHeight;\n }\n return {\n width,\n height,\n fallback: shouldFallback\n };\n}\n\nfunction getNodeName(node) {\n return isNode(node) ? (node.nodeName || '').toLowerCase() : '';\n}\n\nlet uaString;\nfunction getUAString() {\n if (uaString) {\n return uaString;\n }\n const uaData = navigator.userAgentData;\n if (uaData && Array.isArray(uaData.brands)) {\n uaString = uaData.brands.map(item => item.brand + \"/\" + item.version).join(' ');\n return uaString;\n }\n return navigator.userAgent;\n}\n\nfunction isHTMLElement(value) {\n return value instanceof getWindow(value).HTMLElement;\n}\nfunction isElement(value) {\n return value instanceof getWindow(value).Element;\n}\nfunction isNode(value) {\n return value instanceof getWindow(value).Node;\n}\nfunction isShadowRoot(node) {\n // Browsers without `ShadowRoot` support.\n if (typeof ShadowRoot === 'undefined') {\n return false;\n }\n const OwnElement = getWindow(node).ShadowRoot;\n return node instanceof OwnElement || node instanceof ShadowRoot;\n}\nfunction isOverflowElement(element) {\n const {\n overflow,\n overflowX,\n overflowY,\n display\n } = getComputedStyle$1(element);\n return /auto|scroll|overlay|hidden|clip/.test(overflow + overflowY + overflowX) && !['inline', 'contents'].includes(display);\n}\nfunction isTableElement(element) {\n return ['table', 'td', 'th'].includes(getNodeName(element));\n}\nfunction isContainingBlock(element) {\n // TODO: Try to use feature detection here instead.\n const isFirefox = /firefox/i.test(getUAString());\n const css = getComputedStyle$1(element);\n const backdropFilter = css.backdropFilter || css.WebkitBackdropFilter;\n\n // This is non-exhaustive but covers the most common CSS properties that\n // create a containing block.\n // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block\n return css.transform !== 'none' || css.perspective !== 'none' || (backdropFilter ? backdropFilter !== 'none' : false) || isFirefox && css.willChange === 'filter' || isFirefox && (css.filter ? css.filter !== 'none' : false) || ['transform', 'perspective'].some(value => css.willChange.includes(value)) || ['paint', 'layout', 'strict', 'content'].some(value => {\n // Add type check for old browsers.\n const contain = css.contain;\n return contain != null ? contain.includes(value) : false;\n });\n}\n\n/**\n * Determines whether or not `.getBoundingClientRect()` is affected by visual\n * viewport offsets. In Safari, the `x`/`y` offsets are values relative to the\n * visual viewport, while in other engines, they are values relative to the\n * layout viewport.\n */\nfunction isClientRectVisualViewportBased() {\n // TODO: Try to use feature detection here instead. Feature detection for\n // this can fail in various ways, making the userAgent check the most\n // reliable:\n // • Always-visible scrollbar or not\n // • Width of <html>\n\n // Is Safari.\n return /^((?!chrome|android).)*safari/i.test(getUAString());\n}\nfunction isLastTraversableNode(node) {\n return ['html', 'body', '#document'].includes(getNodeName(node));\n}\n\nfunction unwrapElement(element) {\n return !isElement(element) ? element.contextElement : element;\n}\n\nconst FALLBACK_SCALE = {\n x: 1,\n y: 1\n};\nfunction getScale(element) {\n const domElement = unwrapElement(element);\n if (!isHTMLElement(domElement)) {\n return FALLBACK_SCALE;\n }\n const rect = domElement.getBoundingClientRect();\n const {\n width,\n height,\n fallback\n } = getCssDimensions(domElement);\n let x = (fallback ? round(rect.width) : rect.width) / width;\n let y = (fallback ? round(rect.height) : rect.height) / height;\n\n // 0, NaN, or Infinity should always fallback to 1.\n\n if (!x || !Number.isFinite(x)) {\n x = 1;\n }\n if (!y || !Number.isFinite(y)) {\n y = 1;\n }\n return {\n x,\n y\n };\n}\n\nfunction getBoundingClientRect(element, includeScale, isFixedStrategy, offsetParent) {\n var _win$visualViewport, _win$visualViewport2;\n if (includeScale === void 0) {\n includeScale = false;\n }\n if (isFixedStrategy === void 0) {\n isFixedStrategy = false;\n }\n const clientRect = element.getBoundingClientRect();\n const domElement = unwrapElement(element);\n let scale = FALLBACK_SCALE;\n if (includeScale) {\n if (offsetParent) {\n if (isElement(offsetParent)) {\n scale = getScale(offsetParent);\n }\n } else {\n scale = getScale(element);\n }\n }\n const win = domElement ? getWindow(domElement) : window;\n const addVisualOffsets = isClientRectVisualViewportBased() && isFixedStrategy;\n let x = (clientRect.left + (addVisualOffsets ? ((_win$visualViewport = win.visualViewport) == null ? void 0 : _win$visualViewport.offsetLeft) || 0 : 0)) / scale.x;\n let y = (clientRect.top + (addVisualOffsets ? ((_win$visualViewport2 = win.visualViewport) == null ? void 0 : _win$visualViewport2.offsetTop) || 0 : 0)) / scale.y;\n let width = clientRect.width / scale.x;\n let height = clientRect.height / scale.y;\n if (domElement) {\n const win = getWindow(domElement);\n const offsetWin = offsetParent && isElement(offsetParent) ? getWindow(offsetParent) : offsetParent;\n let currentIFrame = win.frameElement;\n while (currentIFrame && offsetParent && offsetWin !== win) {\n const iframeScale = getScale(currentIFrame);\n const iframeRect = currentIFrame.getBoundingClientRect();\n const css = getComputedStyle(currentIFrame);\n iframeRect.x += (currentIFrame.clientLeft + parseFloat(css.paddingLeft)) * iframeScale.x;\n iframeRect.y += (currentIFrame.clientTop + parseFloat(css.paddingTop)) * iframeScale.y;\n x *= iframeScale.x;\n y *= iframeScale.y;\n width *= iframeScale.x;\n height *= iframeScale.y;\n x += iframeRect.x;\n y += iframeRect.y;\n currentIFrame = getWindow(currentIFrame).frameElement;\n }\n }\n return {\n width,\n height,\n top: y,\n right: x + width,\n bottom: y + height,\n left: x,\n x,\n y\n };\n}\n\nfunction getDocumentElement(node) {\n return ((isNode(node) ? node.ownerDocument : node.document) || window.document).documentElement;\n}\n\nfunction getNodeScroll(element) {\n if (isElement(element)) {\n return {\n scrollLeft: element.scrollLeft,\n scrollTop: element.scrollTop\n };\n }\n return {\n scrollLeft: element.pageXOffset,\n scrollTop: element.pageYOffset\n };\n}\n\nfunction convertOffsetParentRelativeRectToViewportRelativeRect(_ref) {\n let {\n rect,\n offsetParent,\n strategy\n } = _ref;\n const isOffsetParentAnElement = isHTMLElement(offsetParent);\n const documentElement = getDocumentElement(offsetParent);\n if (offsetParent === documentElement) {\n return rect;\n }\n let scroll = {\n scrollLeft: 0,\n scrollTop: 0\n };\n let scale = {\n x: 1,\n y: 1\n };\n const offsets = {\n x: 0,\n y: 0\n };\n if (isOffsetParentAnElement || !isOffsetParentAnElement && strategy !== 'fixed') {\n if (getNodeName(offsetParent) !== 'body' || isOverflowElement(documentElement)) {\n scroll = getNodeScroll(offsetParent);\n }\n if (isHTMLElement(offsetParent)) {\n const offsetRect = getBoundingClientRect(offsetParent);\n scale = getScale(offsetParent);\n offsets.x = offsetRect.x + offsetParent.clientLeft;\n offsets.y = offsetRect.y + offsetParent.clientTop;\n }\n }\n return {\n width: rect.width * scale.x,\n height: rect.height * scale.y,\n x: rect.x * scale.x - scroll.scrollLeft * scale.x + offsets.x,\n y: rect.y * scale.y - scroll.scrollTop * scale.y + offsets.y\n };\n}\n\nfunction getWindowScrollBarX(element) {\n // If <html> has a CSS width greater than the viewport, then this will be\n // incorrect for RTL.\n return getBoundingClientRect(getDocumentElement(element)).left + getNodeScroll(element).scrollLeft;\n}\n\n// Gets the entire size of the scrollable document area, even extending outside\n// of the `<html>` and `<body>` rect bounds if horizontally scrollable.\nfunction getDocumentRect(element) {\n const html = getDocumentElement(element);\n const scroll = getNodeScroll(element);\n const body = element.ownerDocument.body;\n const width = max(html.scrollWidth, html.clientWidth, body.scrollWidth, body.clientWidth);\n const height = max(html.scrollHeight, html.clientHeight, body.scrollHeight, body.clientHeight);\n let x = -scroll.scrollLeft + getWindowScrollBarX(element);\n const y = -scroll.scrollTop;\n if (getComputedStyle$1(body).direction === 'rtl') {\n x += max(html.clientWidth, body.clientWidth) - width;\n }\n return {\n width,\n height,\n x,\n y\n };\n}\n\nfunction getParentNode(node) {\n if (getNodeName(node) === 'html') {\n return node;\n }\n const result =\n // Step into the shadow DOM of the parent of a slotted node.\n node.assignedSlot ||\n // DOM Element detected.\n node.parentNode ||\n // ShadowRoot detected.\n isShadowRoot(node) && node.host ||\n // Fallback.\n getDocumentElement(node);\n return isShadowRoot(result) ? result.host : result;\n}\n\nfunction getNearestOverflowAncestor(node) {\n const parentNode = getParentNode(node);\n if (isLastTraversableNode(parentNode)) {\n // `getParentNode` will never return a `Document` due to the fallback\n // check, so it's either the <html> or <body> element.\n return parentNode.ownerDocument.body;\n }\n if (isHTMLElement(parentNode) && isOverflowElement(parentNode)) {\n return parentNode;\n }\n return getNearestOverflowAncestor(parentNode);\n}\n\nfunction getOverflowAncestors(node, list) {\n var _node$ownerDocument;\n if (list === void 0) {\n list = [];\n }\n const scrollableAncestor = getNearestOverflowAncestor(node);\n const isBody = scrollableAncestor === ((_node$ownerDocument = node.ownerDocument) == null ? void 0 : _node$ownerDocument.body);\n const win = getWindow(scrollableAncestor);\n if (isBody) {\n return list.concat(win, win.visualViewport || [], isOverflowElement(scrollableAncestor) ? scrollableAncestor : []);\n }\n return list.concat(scrollableAncestor, getOverflowAncestors(scrollableAncestor));\n}\n\nfunction getViewportRect(element, strategy) {\n const win = getWindow(element);\n const html = getDocumentElement(element);\n const visualViewport = win.visualViewport;\n let width = html.clientWidth;\n let height = html.clientHeight;\n let x = 0;\n let y = 0;\n if (visualViewport) {\n width = visualViewport.width;\n height = visualViewport.height;\n const visualViewportBased = isClientRectVisualViewportBased();\n if (!visualViewportBased || visualViewportBased && strategy === 'fixed') {\n x = visualViewport.offsetLeft;\n y = visualViewport.offsetTop;\n }\n }\n return {\n width,\n height,\n x,\n y\n };\n}\n\n// Returns the inner client rect, subtracting scrollbars if present.\nfunction getInnerBoundingClientRect(element, strategy) {\n const clientRect = getBoundingClientRect(element, true, strategy === 'fixed');\n const top = clientRect.top + element.clientTop;\n const left = clientRect.left + element.clientLeft;\n const scale = isHTMLElement(element) ? getScale(element) : {\n x: 1,\n y: 1\n };\n const width = element.clientWidth * scale.x;\n const height = element.clientHeight * scale.y;\n const x = left * scale.x;\n const y = top * scale.y;\n return {\n width,\n height,\n x,\n y\n };\n}\nfunction getClientRectFromClippingAncestor(element, clippingAncestor, strategy) {\n let rect;\n if (clippingAncestor === 'viewport') {\n rect = getViewportRect(element, strategy);\n } else if (clippingAncestor === 'document') {\n rect = getDocumentRect(getDocumentElement(element));\n } else if (isElement(clippingAncestor)) {\n rect = getInnerBoundingClientRect(clippingAncestor, strategy);\n } else {\n const mutableRect = {\n ...clippingAncestor\n };\n if (isClientRectVisualViewportBased()) {\n var _win$visualViewport, _win$visualViewport2;\n const win = getWindow(element);\n mutableRect.x -= ((_win$visualViewport = win.visualViewport) == null ? void 0 : _win$visualViewport.offsetLeft) || 0;\n mutableRect.y -= ((_win$visualViewport2 = win.visualViewport) == null ? void 0 : _win$visualViewport2.offsetTop) || 0;\n }\n rect = mutableRect;\n }\n return rectToClientRect(rect);\n}\n\n// A \"clipping ancestor\" is an `overflow` element with the characteristic of\n// clipping (or hiding) child elements. This returns all clipping ancestors\n// of the given element up the tree.\nfunction getClippingElementAncestors(element, cache) {\n const cachedResult = cache.get(element);\n if (cachedResult) {\n return cachedResult;\n }\n let result = getOverflowAncestors(element).filter(el => isElement(el) && getNodeName(el) !== 'body');\n let currentContainingBlockComputedStyle = null;\n const elementIsFixed = getComputedStyle$1(element).position === 'fixed';\n let currentNode = elementIsFixed ? getParentNode(element) : element;\n\n // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block\n while (isElement(currentNode) && !isLastTraversableNode(currentNode)) {\n const computedStyle = getComputedStyle$1(currentNode);\n const containingBlock = isContainingBlock(currentNode);\n const shouldIgnoreCurrentNode = computedStyle.position === 'fixed';\n if (shouldIgnoreCurrentNode) {\n currentContainingBlockComputedStyle = null;\n } else {\n const shouldDropCurrentNode = elementIsFixed ? !containingBlock && !currentContainingBlockComputedStyle : !containingBlock && computedStyle.position === 'static' && !!currentContainingBlockComputedStyle && ['absolute', 'fixed'].includes(currentContainingBlockComputedStyle.position);\n if (shouldDropCurrentNode) {\n // Drop non-containing blocks.\n result = result.filter(ancestor => ancestor !== currentNode);\n } else {\n // Record last containing block for next iteration.\n currentContainingBlockComputedStyle = computedStyle;\n }\n }\n currentNode = getParentNode(currentNode);\n }\n cache.set(element, result);\n return result;\n}\n\n// Gets the maximum area that the element is visible in due to any number of\n// clipping ancestors.\nfunction getClippingRect(_ref) {\n let {\n element,\n boundary,\n rootBoundary,\n strategy\n } = _ref;\n const elementClippingAncestors = boundary === 'clippingAncestors' ? getClippingElementAncestors(element, this._c) : [].concat(boundary);\n const clippingAncestors = [...elementClippingAncestors, rootBoundary];\n const firstClippingAncestor = clippingAncestors[0];\n const clippingRect = clippingAncestors.reduce((accRect, clippingAncestor) => {\n const rect = getClientRectFromClippingAncestor(element, clippingAncestor, strategy);\n accRect.top = max(rect.top, accRect.top);\n accRect.right = min(rect.right, accRect.right);\n accRect.bottom = min(rect.bottom, accRect.bottom);\n accRect.left = max(rect.left, accRect.left);\n return accRect;\n }, getClientRectFromClippingAncestor(element, firstClippingAncestor, strategy));\n return {\n width: clippingRect.right - clippingRect.left,\n height: clippingRect.bottom - clippingRect.top,\n x: clippingRect.left,\n y: clippingRect.top\n };\n}\n\nfunction getDimensions(element) {\n if (isHTMLElement(element)) {\n return getCssDimensions(element);\n }\n return element.getBoundingClientRect();\n}\n\nfunction getTrueOffsetParent(element, polyfill) {\n if (!isHTMLElement(element) || getComputedStyle$1(element).position === 'fixed') {\n return null;\n }\n if (polyfill) {\n return polyfill(element);\n }\n return element.offsetParent;\n}\nfunction getContainingBlock(element) {\n let currentNode = getParentNode(element);\n while (isHTMLElement(currentNode) && !isLastTraversableNode(currentNode)) {\n if (isContainingBlock(currentNode)) {\n return currentNode;\n } else {\n currentNode = getParentNode(currentNode);\n }\n }\n return null;\n}\n\n// Gets the closest ancestor positioned element. Handles some edge cases,\n// such as table ancestors and cross browser bugs.\nfunction getOffsetParent(element, polyfill) {\n const window = getWindow(element);\n let offsetParent = getTrueOffsetParent(element, polyfill);\n while (offsetParent && isTableElement(offsetParent) && getComputedStyle$1(offsetParent).position === 'static') {\n offsetParent = getTrueOffsetParent(offsetParent, polyfill);\n }\n if (offsetParent && (getNodeName(offsetParent) === 'html' || getNodeName(offsetParent) === 'body' && getComputedStyle$1(offsetParent).position === 'static' && !isContainingBlock(offsetParent))) {\n return window;\n }\n return offsetParent || getContainingBlock(element) || window;\n}\n\nfunction getRectRelativeToOffsetParent(element, offsetParent, strategy) {\n const isOffsetParentAnElement = isHTMLElement(offsetParent);\n const documentElement = getDocumentElement(offsetParent);\n const rect = getBoundingClientRect(element, true, strategy === 'fixed', offsetParent);\n let scroll = {\n scrollLeft: 0,\n scrollTop: 0\n };\n const offsets = {\n x: 0,\n y: 0\n };\n if (isOffsetParentAnElement || !isOffsetParentAnElement && strategy !== 'fixed') {\n if (getNodeName(offsetParent) !== 'body' || isOverflowElement(documentElement)) {\n scroll = getNodeScroll(offsetParent);\n }\n if (isHTMLElement(offsetParent)) {\n const offsetRect = getBoundingClientRect(offsetParent, true);\n offsets.x = offsetRect.x + offsetParent.clientLeft;\n offsets.y = offsetRect.y + offsetParent.clientTop;\n } else if (documentElement) {\n offsets.x = getWindowScrollBarX(documentElement);\n }\n }\n return {\n x: rect.left + scroll.scrollLeft - offsets.x,\n y: rect.top + scroll.scrollTop - offsets.y,\n width: rect.width,\n height: rect.height\n };\n}\n\nconst platform = {\n getClippingRect,\n convertOffsetParentRelativeRectToViewportRelativeRect,\n isElement,\n getDimensions,\n getOffsetParent,\n getDocumentElement,\n getScale,\n async getElementRects(_ref) {\n let {\n reference,\n floating,\n strategy\n } = _ref;\n const getOffsetParentFn = this.getOffsetParent || getOffsetParent;\n const getDimensionsFn = this.getDimensions;\n return {\n reference: getRectRelativeToOffsetParent(reference, await getOffsetParentFn(floating), strategy),\n floating: {\n x: 0,\n y: 0,\n ...(await getDimensionsFn(floating))\n }\n };\n },\n getClientRects: element => Array.from(element.getClientRects()),\n isRTL: element => getComputedStyle$1(element).direction === 'rtl'\n};\n\n/**\n * Automatically updates the position of the floating element when necessary.\n * Should only be called when the floating element is mounted on the DOM or\n * visible on the screen.\n * @returns cleanup function that should be invoked when the floating element is\n * removed from the DOM or hidden from the screen.\n * @see https://floating-ui.com/docs/autoUpdate\n */\nfunction autoUpdate(reference, floating, update, options) {\n if (options === void 0) {\n options = {};\n }\n const {\n ancestorScroll: _ancestorScroll = true,\n ancestorResize = true,\n elementResize = true,\n animationFrame = false\n } = options;\n const ancestorScroll = _ancestorScroll && !animationFrame;\n const ancestors = ancestorScroll || ancestorResize ? [...(isElement(reference) ? getOverflowAncestors(reference) : reference.contextElement ? getOverflowAncestors(reference.contextElement) : []), ...getOverflowAncestors(floating)] : [];\n ancestors.forEach(ancestor => {\n ancestorScroll && ancestor.addEventListener('scroll', update, {\n passive: true\n });\n ancestorResize && ancestor.addEventListener('resize', update);\n });\n let observer = null;\n if (elementResize) {\n let initialUpdate = true;\n observer = new ResizeObserver(() => {\n if (!initialUpdate) {\n update();\n }\n initialUpdate = false;\n });\n isElement(reference) && !animationFrame && observer.observe(reference);\n if (!isElement(reference) && reference.contextElement && !animationFrame) {\n observer.observe(reference.contextElement);\n }\n observer.observe(floating);\n }\n let frameId;\n let prevRefRect = animationFrame ? getBoundingClientRect(reference) : null;\n if (animationFrame) {\n frameLoop();\n }\n function frameLoop() {\n const nextRefRect = getBoundingClientRect(reference);\n if (prevRefRect && (nextRefRect.x !== prevRefRect.x || nextRefRect.y !== prevRefRect.y || nextRefRect.width !== prevRefRect.width || nextRefRect.height !== prevRefRect.height)) {\n update();\n }\n prevRefRect = nextRefRect;\n frameId = requestAnimationFrame(frameLoop);\n }\n update();\n return () => {\n var _observer;\n ancestors.forEach(ancestor => {\n ancestorScroll && ancestor.removeEventListener('scroll', update);\n ancestorResize && ancestor.removeEventListener('resize', update);\n });\n (_observer = observer) == null ? void 0 : _observer.disconnect();\n observer = null;\n if (animationFrame) {\n cancelAnimationFrame(frameId);\n }\n };\n}\n\n/**\n * Computes the `x` and `y` coordinates that will place the floating element\n * next to a reference element when it is given a certain CSS positioning\n * strategy.\n */\nconst computePosition = (reference, floating, options) => {\n // This caches the expensive `getClippingElementAncestors` function so that\n // multiple lifecycle resets re-use the same result. It only lives for a\n // single call. If other functions become expensive, we can add them as well.\n const cache = new Map();\n const mergedOptions = {\n platform,\n ...options\n };\n const platformWithCache = {\n ...mergedOptions.platform,\n _c: cache\n };\n return computePosition$1(reference, floating, {\n ...mergedOptions,\n platform: platformWithCache\n });\n};\n\nexport { autoUpdate, computePosition, getOverflowAncestors, platform };\n","import { arrow as arrow$1, computePosition } from '@floating-ui/dom';\nexport { autoPlacement, autoUpdate, computePosition, detectOverflow, flip, getOverflowAncestors, hide, inline, limitShift, offset, platform, shift, size } from '@floating-ui/dom';\nimport * as React from 'react';\nimport { useLayoutEffect, useEffect } from 'react';\nimport * as ReactDOM from 'react-dom';\n\n/**\n * A data provider that provides data to position an inner element of the\n * floating element (usually a triangle or caret) so that it is centered to the\n * reference element.\n * This wraps the core `arrow` middleware to allow React refs as the element.\n * @see https://floating-ui.com/docs/arrow\n */\nconst arrow = options => {\n const {\n element,\n padding\n } = options;\n function isRef(value) {\n return Object.prototype.hasOwnProperty.call(value, 'current');\n }\n return {\n name: 'arrow',\n options,\n fn(args) {\n if (isRef(element)) {\n if (element.current != null) {\n return arrow$1({\n element: element.current,\n padding\n }).fn(args);\n }\n return {};\n } else if (element) {\n return arrow$1({\n element,\n padding\n }).fn(args);\n }\n return {};\n }\n };\n};\n\nvar index = typeof document !== 'undefined' ? useLayoutEffect : useEffect;\n\n// Fork of `fast-deep-equal` that only does the comparisons we need and compares\n// functions\nfunction deepEqual(a, b) {\n if (a === b) {\n return true;\n }\n if (typeof a !== typeof b) {\n return false;\n }\n if (typeof a === 'function' && a.toString() === b.toString()) {\n return true;\n }\n let length, i, keys;\n if (a && b && typeof a == 'object') {\n if (Array.isArray(a)) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;) {\n if (!deepEqual(a[i], b[i])) {\n return false;\n }\n }\n return true;\n }\n keys = Object.keys(a);\n length = keys.length;\n if (length !== Object.keys(b).length) {\n return false;\n }\n for (i = length; i-- !== 0;) {\n if (!Object.prototype.hasOwnProperty.call(b, keys[i])) {\n return false;\n }\n }\n for (i = length; i-- !== 0;) {\n const key = keys[i];\n if (key === '_owner' && a.$$typeof) {\n continue;\n }\n if (!deepEqual(a[key], b[key])) {\n return false;\n }\n }\n return true;\n }\n return a !== a && b !== b;\n}\n\nfunction useLatestRef(value) {\n const ref = React.useRef(value);\n index(() => {\n ref.current = value;\n });\n return ref;\n}\n\n/**\n * Provides data to position a floating element.\n * @see https://floating-ui.com/docs/react\n */\nfunction useFloating(options) {\n if (options === void 0) {\n options = {};\n }\n const {\n placement = 'bottom',\n strategy = 'absolute',\n middleware = [],\n platform,\n whileElementsMounted,\n open\n } = options;\n const [data, setData] = React.useState({\n x: null,\n y: null,\n strategy,\n placement,\n middlewareData: {},\n isPositioned: false\n });\n const [latestMiddleware, setLatestMiddleware] = React.useState(middleware);\n if (!deepEqual(latestMiddleware, middleware)) {\n setLatestMiddleware(middleware);\n }\n const referenceRef = React.useRef(null);\n const floatingRef = React.useRef(null);\n const dataRef = React.useRef(data);\n const whileElementsMountedRef = useLatestRef(whileElementsMounted);\n const platformRef = useLatestRef(platform);\n const [reference, _setReference] = React.useState(null);\n const [floating, _setFloating] = React.useState(null);\n const setReference = React.useCallback(node => {\n if (referenceRef.current !== node) {\n referenceRef.current = node;\n _setReference(node);\n }\n }, []);\n const setFloating = React.useCallback(node => {\n if (floatingRef.current !== node) {\n floatingRef.current = node;\n _setFloating(node);\n }\n }, []);\n const update = React.useCallback(() => {\n if (!referenceRef.current || !floatingRef.current) {\n return;\n }\n const config = {\n placement,\n strategy,\n middleware: latestMiddleware\n };\n if (platformRef.current) {\n config.platform = platformRef.current;\n }\n computePosition(referenceRef.current, floatingRef.current, config).then(data => {\n const fullData = {\n ...data,\n isPositioned: true\n };\n if (isMountedRef.current && !deepEqual(dataRef.current, fullData)) {\n dataRef.current = fullData;\n ReactDOM.flushSync(() => {\n setData(fullData);\n });\n }\n });\n }, [latestMiddleware, placement, strategy, platformRef]);\n index(() => {\n if (open === false && dataRef.current.isPositioned) {\n dataRef.current.isPositioned = false;\n setData(data => ({\n ...data,\n isPositioned: false\n }));\n }\n }, [open]);\n const isMountedRef = React.useRef(false);\n index(() => {\n isMountedRef.current = true;\n return () => {\n isMountedRef.current = false;\n };\n }, []);\n index(() => {\n if (reference && floating) {\n if (whileElementsMountedRef.current) {\n return whileElementsMountedRef.current(reference, floating, update);\n } else {\n update();\n }\n }\n }, [reference, floating, update, whileElementsMountedRef]);\n const refs = React.useMemo(() => ({\n reference: referenceRef,\n floating: floatingRef,\n setReference,\n setFloating\n }), [setReference, setFloating]);\n const elements = React.useMemo(() => ({\n reference,\n floating\n }), [reference, floating]);\n return React.useMemo(() => ({\n ...data,\n update,\n refs,\n elements,\n reference: setReference,\n floating: setFloating\n }), [data, update, refs, elements, setReference, setFloating]);\n}\n\nexport { arrow, useFloating };\n","import * as React from 'react';\nimport { useLayoutEffect, useEffect, useRef } from 'react';\nimport { hideOthers } from 'aria-hidden';\nimport { tabbable } from 'tabbable';\nimport { createPortal, flushSync } from 'react-dom';\nimport { getOverflowAncestors, offset, detectOverflow, useFloating as useFloating$1 } from '@floating-ui/react-dom';\nexport { arrow, autoPlacement, autoUpdate, computePosition, detectOverflow, flip, getOverflowAncestors, hide, inline, limitShift, offset, platform, shift, size } from '@floating-ui/react-dom';\n\nvar index = typeof document !== 'undefined' ? useLayoutEffect : useEffect;\n\nlet serverHandoffComplete = false;\nlet count = 0;\nconst genId = () => \"floating-ui-\" + count++;\nfunction useFloatingId() {\n const [id, setId] = React.useState(() => serverHandoffComplete ? genId() : undefined);\n index(() => {\n if (id == null) {\n setId(genId());\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n React.useEffect(() => {\n if (!serverHandoffComplete) {\n serverHandoffComplete = true;\n }\n }, []);\n return id;\n}\n\n// `toString()` prevents bundlers from trying to `import { useId } from 'react'`\nconst useReactId = React[/*#__PURE__*/'useId'.toString()];\n\n/**\n * Uses React 18's built-in `useId()` when available, or falls back to a\n * slightly less performant (requiring a double render) implementation for\n * earlier React versions.\n * @see https://floating-ui.com/docs/useId\n */\nconst useId = useReactId || useFloatingId;\n\nfunction createPubSub() {\n const map = new Map();\n return {\n emit(event, data) {\n var _map$get;\n (_map$get = map.get(event)) == null ? void 0 : _map$get.forEach(handler => handler(data));\n },\n on(event, listener) {\n map.set(event, [...(map.get(event) || []), listener]);\n },\n off(event, listener) {\n map.set(event, (map.get(event) || []).filter(l => l !== listener));\n }\n };\n}\n\nconst FloatingNodeContext = /*#__PURE__*/React.createContext(null);\nconst FloatingTreeContext = /*#__PURE__*/React.createContext(null);\nconst useFloatingParentNodeId = () => {\n var _React$useContext;\n return ((_React$useContext = React.useContext(FloatingNodeContext)) == null ? void 0 : _React$useContext.id) || null;\n};\nconst useFloatingTree = () => React.useContext(FloatingTreeContext);\n\n/**\n * Registers a node into the floating tree, returning its id.\n */\nconst useFloatingNodeId = customParentId => {\n const id = useId();\n const tree = useFloatingTree();\n const reactParentId = useFloatingParentNodeId();\n const parentId = customParentId || reactParentId;\n index(() => {\n const node = {\n id,\n parentId\n };\n tree == null ? void 0 : tree.addNode(node);\n return () => {\n tree == null ? void 0 : tree.removeNode(node);\n };\n }, [tree, id, parentId]);\n return id;\n};\n\n/**\n * Provides parent node context for nested floating elements.\n * @see https://floating-ui.com/docs/FloatingTree\n */\nconst FloatingNode = _ref => {\n let {\n children,\n id\n } = _ref;\n const parentId = useFloatingParentNodeId();\n return /*#__PURE__*/React.createElement(FloatingNodeContext.Provider, {\n value: React.useMemo(() => ({\n id,\n parentId\n }), [id, parentId])\n }, children);\n};\n\n/**\n * Provides context for nested floating elements when they are not children of\n * each other on the DOM (i.e. portalled to a common node, rather than their\n * respective parent).\n * @see https://floating-ui.com/docs/FloatingTree\n */\nconst FloatingTree = _ref2 => {\n let {\n children\n } = _ref2;\n const nodesRef = React.useRef([]);\n const addNode = React.useCallback(node => {\n nodesRef.current = [...nodesRef.current, node];\n }, []);\n const removeNode = React.useCallback(node => {\n nodesRef.current = nodesRef.current.filter(n => n !== node);\n }, []);\n const events = React.useState(() => createPubSub())[0];\n return /*#__PURE__*/React.createElement(FloatingTreeContext.Provider, {\n value: React.useMemo(() => ({\n nodesRef,\n addNode,\n removeNode,\n events\n }), [nodesRef, addNode, removeNode, events])\n }, children);\n};\n\nfunction getDocument(node) {\n return (node == null ? void 0 : node.ownerDocument) || document;\n}\n\n// Avoid Chrome DevTools blue warning.\nfunction getPlatform() {\n const uaData = navigator.userAgentData;\n if (uaData != null && uaData.platform) {\n return uaData.platform;\n }\n return navigator.platform;\n}\nfunction getUserAgent() {\n const uaData = navigator.userAgentData;\n if (uaData && Array.isArray(uaData.brands)) {\n return uaData.brands.map(_ref => {\n let {\n brand,\n version\n } = _ref;\n return brand + \"/\" + version;\n }).join(' ');\n }\n return navigator.userAgent;\n}\n\nfunction getWindow(value) {\n return getDocument(value).defaultView || window;\n}\nfunction isElement(value) {\n return value ? value instanceof getWindow(value).Element : false;\n}\nfunction isHTMLElement(value) {\n return value ? value instanceof getWindow(value).HTMLElement : false;\n}\nfunction isShadowRoot(node) {\n // Browsers without `ShadowRoot` support\n if (typeof ShadowRoot === 'undefined') {\n return false;\n }\n const OwnElement = getWindow(node).ShadowRoot;\n return node instanceof OwnElement || node instanceof ShadowRoot;\n}\n\n// License: https://github.com/adobe/react-spectrum/blob/b35d5c02fe900badccd0cf1a8f23bb593419f238/packages/@react-aria/utils/src/isVirtualEvent.ts\nfunction isVirtualClick(event) {\n if (event.mozInputSource === 0 && event.isTrusted) {\n return true;\n }\n const androidRe = /Android/i;\n if ((androidRe.test(getPlatform()) || androidRe.test(getUserAgent())) && event.pointerType) {\n return event.type === 'click' && event.buttons === 1;\n }\n return event.detail === 0 && !event.pointerType;\n}\nfunction isVirtualPointerEvent(event) {\n return event.width === 0 && event.height === 0 || event.width === 1 && event.height === 1 && event.pressure === 0 && event.detail === 0 && event.pointerType !== 'mouse' ||\n // iOS VoiceOver returns 0.333• for width/height.\n event.width < 1 && event.height < 1 && event.pressure === 0 && event.detail === 0;\n}\nfunction isSafari() {\n // Chrome DevTools does not complain about navigator.vendor\n return /apple/i.test(navigator.vendor);\n}\nfunction isMac() {\n return getPlatform().toLowerCase().startsWith('mac') && !navigator.maxTouchPoints;\n}\nfunction isMouseLikePointerType(pointerType, strict) {\n // On some Linux machines with Chromium, mouse inputs return a `pointerType`\n // of \"pen\": https://github.com/floating-ui/floating-ui/issues/2015\n const values = ['mouse', 'pen'];\n if (!strict) {\n values.push('', undefined);\n }\n return values.includes(pointerType);\n}\n\nfunction useLatestRef(value) {\n const ref = useRef(value);\n index(() => {\n ref.current = value;\n });\n return ref;\n}\n\nconst safePolygonIdentifier = 'data-floating-ui-safe-polygon';\nfunction getDelay(value, prop, pointerType) {\n if (pointerType && !isMouseLikePointerType(pointerType)) {\n return 0;\n }\n if (typeof value === 'number') {\n return value;\n }\n return value == null ? void 0 : value[prop];\n}\n/**\n * Opens the floating element while hovering over the reference element, like\n * CSS `:hover`.\n * @see https://floating-ui.com/docs/useHover\n */\nconst useHover = function (context, _temp) {\n let {\n enabled = true,\n delay = 0,\n handleClose = null,\n mouseOnly = false,\n restMs = 0,\n move = true\n } = _temp === void 0 ? {} : _temp;\n const {\n open,\n onOpenChange,\n dataRef,\n events,\n elements: {\n domReference,\n floating\n },\n refs\n } = context;\n const tree = useFloatingTree();\n const parentId = useFloatingParentNodeId();\n const handleCloseRef = useLatestRef(handleClose);\n const delayRef = useLatestRef(delay);\n const pointerTypeRef = React.useRef();\n const timeoutRef = React.useRef();\n const handlerRef = React.useRef();\n const restTimeoutRef = React.useRef();\n const blockMouseMoveRef = React.useRef(true);\n const performedPointerEventsMutationRef = React.useRef(false);\n const unbindMouseMoveRef = React.useRef(() => {});\n const isHoverOpen = React.useCallback(() => {\n var _dataRef$current$open;\n const type = (_dataRef$current$open = dataRef.current.openEvent) == null ? void 0 : _dataRef$current$open.type;\n return (type == null ? void 0 : type.includes('mouse')) && type !== 'mousedown';\n }, [dataRef]);\n\n // When dismissing before opening, clear the delay timeouts to cancel it\n // from showing.\n React.useEffect(() => {\n if (!enabled) {\n return;\n }\n function onDismiss() {\n clearTimeout(timeoutRef.current);\n clearTimeout(restTimeoutRef.current);\n blockMouseMoveRef.current = true;\n }\n events.on('dismiss', onDismiss);\n return () => {\n events.off('dismiss', onDismiss);\n };\n }, [enabled, events]);\n React.useEffect(() => {\n if (!enabled || !handleCloseRef.current || !open) {\n return;\n }\n function onLeave() {\n if (isHoverOpen()) {\n onOpenChange(false);\n }\n }\n const html = getDocument(floating).documentElement;\n html.addEventListener('mouseleave', onLeave);\n return () => {\n html.removeEventListener('mouseleave', onLeave);\n };\n }, [floating, open, onOpenChange, enabled, handleCloseRef, dataRef, isHoverOpen]);\n const closeWithDelay = React.useCallback(function (runElseBranch) {\n if (runElseBranch === void 0) {\n runElseBranch = true;\n }\n const closeDelay = getDelay(delayRef.current, 'close', pointerTypeRef.current);\n if (closeDelay && !handlerRef.current) {\n clearTimeout(timeoutRef.current);\n timeoutRef.current = setTimeout(() => onOpenChange(false), closeDelay);\n } else if (runElseBranch) {\n clearTimeout(timeoutRef.current);\n onOpenChange(false);\n }\n }, [delayRef, onOpenChange]);\n const cleanupMouseMoveHandler = React.useCallback(() => {\n unbindMouseMoveRef.current();\n handlerRef.current = undefined;\n }, []);\n const clearPointerEvents = React.useCallback(() => {\n if (performedPointerEventsMutationRef.current) {\n const body = getDocument(refs.floating.current).body;\n body.style.pointerEvents = '';\n body.removeAttribute(safePolygonIdentifier);\n performedPointerEventsMutationRef.current = false;\n }\n }, [refs]);\n\n // Registering the mouse events on the reference directly to bypass React's\n // delegation system. If the cursor was on a disabled element and then entered\n // the reference (no gap), `mouseenter` doesn't fire in the delegation system.\n React.useEffect(() => {\n if (!enabled) {\n return;\n }\n function isClickLikeOpenEvent() {\n return dataRef.current.openEvent ? ['click', 'mousedown'].includes(dataRef.current.openEvent.type) : false;\n }\n function onMouseEnter(event) {\n clearTimeout(timeoutRef.current);\n blockMouseMoveRef.current = false;\n if (mouseOnly && !isMouseLikePointerType(pointerTypeRef.current) || restMs > 0 && getDelay(delayRef.current, 'open') === 0) {\n return;\n }\n dataRef.current.openEvent = event;\n const openDelay = getDelay(delayRef.current, 'open', pointerTypeRef.current);\n if (openDelay) {\n timeoutRef.current = setTimeout(() => {\n onOpenChange(true);\n }, openDelay);\n } else {\n onOpenChange(true);\n }\n }\n function onMouseLeave(event) {\n if (isClickLikeOpenEvent()) {\n return;\n }\n unbindMouseMoveRef.current();\n const doc = getDocument(floating);\n clearTimeout(restTimeoutRef.current);\n if (handleCloseRef.current) {\n // Prevent clearing `onScrollMouseLeave` timeout.\n if (!open) {\n clearTimeout(timeoutRef.current);\n }\n handlerRef.current = handleCloseRef.current({\n ...context,\n tree,\n x: event.clientX,\n y: event.clientY,\n onClose() {\n clearPointerEvents();\n cleanupMouseMoveHandler();\n closeWithDelay();\n }\n });\n const handler = handlerRef.current;\n doc.addEventListener('mousemove', handler);\n unbindMouseMoveRef.current = () => {\n doc.removeEventListener('mousemove', handler);\n };\n return;\n }\n closeWithDelay();\n }\n\n // Ensure the floating element closes after scrolling even if the pointer\n // did not move.\n // https://github.com/floating-ui/floating-ui/discussions/1692\n function onScrollMouseLeave(event) {\n if (isClickLikeOpenEvent()) {\n return;\n }\n handleCloseRef.current == null ? void 0 : handleCloseRef.current({\n ...context,\n tree,\n x: event.clientX,\n y: event.clientY,\n onClose() {\n clearPointerEvents();\n cleanupMouseMoveHandler();\n closeWithDelay();\n }\n })(event);\n }\n if (isElement(domReference)) {\n const ref = domReference;\n open && ref.addEventListener('mouseleave', onScrollMouseLeave);\n floating == null ? void 0 : floating.addEventListener('mouseleave', onScrollMouseLeave);\n move && ref.addEventListener('mousemove', onMouseEnter, {\n once: true\n });\n ref.addEventListener('mouseenter', onMouseEnter);\n ref.addEventListener('mouseleave', onMouseLeave);\n return () => {\n open && ref.removeEventListener('mouseleave', onScrollMouseLeave);\n floating == null ? void 0 : floating.removeEventListener('mouseleave', onScrollMouseLeave);\n move && ref.removeEventListener('mousemove', onMouseEnter);\n ref.removeEventListener('mouseenter', onMouseEnter);\n ref.removeEventListener('mouseleave', onMouseLeave);\n };\n }\n }, [domReference, floating, enabled, context, mouseOnly, restMs, move, closeWithDelay, cleanupMouseMoveHandler, clearPointerEvents, onOpenChange, open, tree, delayRef, handleCloseRef, dataRef]);\n\n // Block pointer-events of every element other than the reference and floating\n // while the floating element is open and has a `handleClose` handler. Also\n // handles nested floating elements.\n // https://github.com/floating-ui/floating-ui/issues/1722\n index(() => {\n var _handleCloseRef$curre;\n if (!enabled) {\n return;\n }\n if (open && (_handleCloseRef$curre = handleCloseRef.current) != null && _handleCloseRef$curre.__options.blockPointerEvents && isHoverOpen()) {\n const body = getDocument(floating).body;\n body.setAttribute(safePolygonIdentifier, '');\n body.style.pointerEvents = 'none';\n performedPointerEventsMutationRef.current = true;\n if (isElement(domReference) && floating) {\n var _tree$nodesRef$curren, _tree$nodesRef$curren2;\n const ref = domReference;\n const parentFloating = tree == null ? void 0 : (_tree$nodesRef$curren = tree.nodesRef.current.find(node => node.id === parentId)) == null ? void 0 : (_tree$nodesRef$curren2 = _tree$nodesRef$curren.context) == null ? void 0 : _tree$nodesRef$curren2.elements.floating;\n if (parentFloating) {\n parentFloating.style.pointerEvents = '';\n }\n ref.style.pointerEvents = 'auto';\n floating.style.pointerEvents = 'auto';\n return () => {\n ref.style.pointerEvents = '';\n floating.style.pointerEvents = '';\n };\n }\n }\n }, [enabled, open, parentId, floating, domReference, tree, handleCloseRef, dataRef, isHoverOpen]);\n index(() => {\n if (!open) {\n pointerTypeRef.current = undefined;\n cleanupMouseMoveHandler();\n clearPointerEvents();\n }\n }, [open, cleanupMouseMoveHandler, clearPointerEvents]);\n React.useEffect(() => {\n return () => {\n cleanupMouseMoveHandler();\n clearTimeout(timeoutRef.current);\n clearTimeout(restTimeoutRef.current);\n clearPointerEvents();\n };\n }, [enabled, cleanupMouseMoveHandler, clearPointerEvents]);\n return React.useMemo(() => {\n if (!enabled) {\n return {};\n }\n function setPointerRef(event) {\n pointerTypeRef.current = event.pointerType;\n }\n return {\n reference: {\n onPointerDown: setPointerRef,\n onPointerEnter: setPointerRef,\n onMouseMove() {\n if (open || restMs === 0) {\n return;\n }\n clearTimeout(restTimeoutRef.current);\n restTimeoutRef.current = setTimeout(() => {\n if (!blockMouseMoveRef.current) {\n onOpenChange(true);\n }\n }, restMs);\n }\n },\n floating: {\n onMouseEnter() {\n clearTimeout(timeoutRef.current);\n },\n onMouseLeave() {\n events.emit('dismiss', {\n type: 'mouseLeave',\n data: {\n returnFocus: false\n }\n });\n closeWithDelay(false);\n }\n }\n };\n }, [events, enabled, restMs, open, onOpenChange, closeWithDelay]);\n};\n\nconst FloatingDelayGroupContext = /*#__PURE__*/React.createContext({\n delay: 0,\n initialDelay: 0,\n timeoutMs: 0,\n currentId: null,\n setCurrentId: () => {},\n setState: () => {},\n isInstantPhase: false\n});\nconst useDelayGroupContext = () => React.useContext(FloatingDelayGroupContext);\n\n/**\n * Provides context for a group of floating elements that should share a\n * `delay`.\n * @see https://floating-ui.com/docs/FloatingDelayGroup\n */\nconst FloatingDelayGroup = _ref => {\n let {\n children,\n delay,\n timeoutMs = 0\n } = _ref;\n const [state, setState] = React.useReducer((prev, next) => ({\n ...prev,\n ...next\n }), {\n delay,\n timeoutMs,\n initialDelay: delay,\n currentId: null,\n isInstantPhase: false\n });\n const initialCurrentIdRef = React.useRef(null);\n const setCurrentId = React.useCallback(currentId => {\n setState({\n currentId\n });\n }, []);\n index(() => {\n if (state.currentId) {\n if (initialCurrentIdRef.current === null) {\n initialCurrentIdRef.current = state.currentId;\n } else {\n setState({\n isInstantPhase: true\n });\n }\n } else {\n setState({\n isInstantPhase: false\n });\n initialCurrentIdRef.current = null;\n }\n }, [state.currentId]);\n return /*#__PURE__*/React.createElement(FloatingDelayGroupContext.Provider, {\n value: React.useMemo(() => ({\n ...state,\n setState,\n setCurrentId\n }), [state, setState, setCurrentId])\n }, children);\n};\nconst useDelayGroup = (_ref2, _ref3) => {\n let {\n open,\n onOpenChange\n } = _ref2;\n let {\n id\n } = _ref3;\n const {\n currentId,\n setCurrentId,\n initialDelay,\n setState,\n timeoutMs\n } = useDelayGroupContext();\n React.useEffect(() => {\n if (currentId) {\n setState({\n delay: {\n open: 1,\n close: getDelay(initialDelay, 'close')\n }\n });\n if (currentId !== id) {\n onOpenChange(false);\n }\n }\n }, [id, onOpenChange, setState, currentId, initialDelay]);\n React.useEffect(() => {\n function unset() {\n onOpenChange(false);\n setState({\n delay: initialDelay,\n currentId: null\n });\n }\n if (!open && currentId === id) {\n if (timeoutMs) {\n const timeout = window.setTimeout(unset, timeoutMs);\n return () => {\n clearTimeout(timeout);\n };\n } else {\n unset();\n }\n }\n }, [open, setState, currentId, id, onOpenChange, initialDelay, timeoutMs]);\n React.useEffect(() => {\n if (open) {\n setCurrentId(id);\n }\n }, [open, setCurrentId, id]);\n};\n\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends.apply(this, arguments);\n}\n\n/**\n * Find the real active element. Traverses into shadowRoots.\n */\nfunction activeElement$1(doc) {\n let activeElement = doc.activeElement;\n while (((_activeElement = activeElement) == null ? void 0 : (_activeElement$shadow = _activeElement.shadowRoot) == null ? void 0 : _activeElement$shadow.activeElement) != null) {\n var _activeElement, _activeElement$shadow;\n activeElement = activeElement.shadowRoot.activeElement;\n }\n return activeElement;\n}\n\nfunction contains(parent, child) {\n if (!parent || !child) {\n return false;\n }\n const rootNode = child.getRootNode && child.getRootNode();\n\n // First, attempt with faster native method\n if (parent.contains(child)) {\n return true;\n }\n // then fallback to custom implementation with Shadow DOM support\n else if (rootNode && isShadowRoot(rootNode)) {\n let next = child;\n do {\n if (next && parent === next) {\n return true;\n }\n // @ts-ignore\n next = next.parentNode || next.host;\n } while (next);\n }\n\n // Give up, the result is false\n return false;\n}\n\nlet rafId = 0;\nfunction enqueueFocus(el, options) {\n if (options === void 0) {\n options = {};\n }\n const {\n preventScroll = false,\n cancelPrevious = true,\n sync = false\n } = options;\n cancelPrevious && cancelAnimationFrame(rafId);\n const exec = () => el == null ? void 0 : el.focus({\n preventScroll\n });\n if (sync) {\n exec();\n } else {\n rafId = requestAnimationFrame(exec);\n }\n}\n\nfunction getAncestors(nodes, id) {\n var _nodes$find;\n let allAncestors = [];\n let currentParentId = (_nodes$find = nodes.find(node => node.id === id)) == null ? void 0 : _nodes$find.parentId;\n while (currentParentId) {\n const currentNode = nodes.find(node => node.id === currentParentId);\n currentParentId = currentNode == null ? void 0 : currentNode.parentId;\n if (currentNode) {\n allAncestors = allAncestors.concat(currentNode);\n }\n }\n return allAncestors;\n}\n\nfunction getChildren(nodes, id) {\n let allChildren = nodes.filter(node => {\n var _node$context;\n return node.parentId === id && ((_node$context = node.context) == null ? void 0 : _node$context.open);\n }) || [];\n let currentChildren = allChildren;\n while (currentChildren.length) {\n currentChildren = nodes.filter(node => {\n var _currentChildren;\n return (_currentChildren = currentChildren) == null ? void 0 : _currentChildren.some(n => {\n var _node$context2;\n return node.parentId === n.id && ((_node$context2 = node.context) == null ? void 0 : _node$context2.open);\n });\n }) || [];\n allChildren = allChildren.concat(currentChildren);\n }\n return allChildren;\n}\n\nfunction getTarget(event) {\n if ('composedPath' in event) {\n return event.composedPath()[0];\n }\n\n // TS thinks `event` is of type never as it assumes all browsers support\n // `composedPath()`, but browsers without shadow DOM don't.\n return event.target;\n}\n\nconst TYPEABLE_SELECTOR = \"input:not([type='hidden']):not([disabled]),\" + \"[contenteditable]:not([contenteditable='false']),textarea:not([disabled])\";\nfunction isTypeableElement(element) {\n return isHTMLElement(element) && element.matches(TYPEABLE_SELECTOR);\n}\n\nfunction stopEvent(event) {\n event.preventDefault();\n event.stopPropagation();\n}\n\nconst getTabbableOptions = () => ({\n getShadowRoot: true,\n displayCheck:\n // JSDOM does not support the `tabbable` library. To solve this we can\n // check if `ResizeObserver` is a real function (not polyfilled), which\n // determines if the current environment is JSDOM-like.\n typeof ResizeObserver === 'function' && ResizeObserver.toString().includes('[native code]') ? 'full' : 'none'\n});\nfunction getTabbableIn(container, direction) {\n const allTabbable = tabbable(container, getTabbableOptions());\n if (direction === 'prev') {\n allTabbable.reverse();\n }\n const activeIndex = allTabbable.indexOf(activeElement$1(getDocument(container)));\n const nextTabbableElements = allTabbable.slice(activeIndex + 1);\n return nextTabbableElements[0];\n}\nfunction getNextTabbable() {\n return getTabbableIn(document.body, 'next');\n}\nfunction getPreviousTabbable() {\n return getTabbableIn(document.body, 'prev');\n}\nfunction isOutsideEvent(event, container) {\n const containerElement = container || event.currentTarget;\n const relatedTarget = event.relatedTarget;\n return !relatedTarget || !contains(containerElement, relatedTarget);\n}\nfunction disableFocusInside(container) {\n const tabbableElements = tabbable(container, getTabbableOptions());\n tabbableElements.forEach(element => {\n element.dataset.tabindex = element.getAttribute('tabindex') || '';\n element.setAttribute('tabindex', '-1');\n });\n}\nfunction enableFocusInside(container) {\n const elements = container.querySelectorAll('[data-tabindex]');\n elements.forEach(element => {\n const tabindex = element.dataset.tabindex;\n delete element.dataset.tabindex;\n if (tabindex) {\n element.setAttribute('tabindex', tabindex);\n } else {\n element.removeAttribute('tabindex');\n }\n });\n}\n\n// `toString()` prevents bundlers from trying to `import { useInsertionEffect } from 'react'`\nconst useInsertionEffect = React[/*#__PURE__*/'useInsertionEffect'.toString()];\nconst useSafeInsertionEffect = useInsertionEffect || (fn => fn());\nfunction useEvent(callback) {\n const ref = React.useRef(() => {\n if (process.env.NODE_ENV !== \"production\") {\n throw new Error('Cannot call an event handler while rendering.');\n }\n });\n useSafeInsertionEffect(() => {\n ref.current = callback;\n });\n return React.useCallback(function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n return ref.current == null ? void 0 : ref.current(...args);\n }, []);\n}\n\n// See Diego Haz's Sandbox for making this logic work well on Safari/iOS:\n// https://codesandbox.io/s/tabbable-portal-f4tng?file=/src/FocusTrap.tsx\n\nconst HIDDEN_STYLES = {\n border: 0,\n clip: 'rect(0 0 0 0)',\n height: '1px',\n margin: '-1px',\n overflow: 'hidden',\n padding: 0,\n position: 'fixed',\n whiteSpace: 'nowrap',\n width: '1px',\n top: 0,\n left: 0\n};\nlet activeElement;\nlet timeoutId;\nfunction setActiveElementOnTab(event) {\n if (event.key === 'Tab') {\n activeElement = event.target;\n clearTimeout(timeoutId);\n }\n}\nfunction isTabFocus(event) {\n const result = activeElement === event.relatedTarget;\n activeElement = event.relatedTarget;\n clearTimeout(timeoutId);\n return result;\n}\nconst FocusGuard = /*#__PURE__*/React.forwardRef(function FocusGuard(props, ref) {\n const onFocus = useEvent(props.onFocus);\n const [role, setRole] = React.useState();\n index(() => {\n if (isSafari()) {\n // Unlike other screen readers such as NVDA and JAWS, the virtual cursor\n // on VoiceOver does trigger the onFocus event, so we can use the focus\n // trap element. On Safari, only buttons trigger the onFocus event.\n // NB: \"group\" role in the Sandbox no longer appears to work, must be a\n // button role.\n setRole('button');\n }\n document.addEventListener('keydown', setActiveElementOnTab);\n return () => {\n document.removeEventListener('keydown', setActiveElementOnTab);\n };\n }, []);\n return /*#__PURE__*/React.createElement(\"span\", _extends({}, props, {\n ref: ref,\n tabIndex: 0\n // Role is only for VoiceOver\n ,\n role: role,\n \"aria-hidden\": role ? undefined : true,\n \"data-floating-ui-focus-guard\": \"\",\n style: HIDDEN_STYLES,\n onFocus: event => {\n if (isSafari() && isMac() && !isTabFocus(event)) {\n // On macOS we need to wait a little bit before moving\n // focus again.\n event.persist();\n timeoutId = window.setTimeout(() => {\n onFocus(event);\n }, 50);\n } else {\n onFocus(event);\n }\n }\n }));\n});\n\nconst PortalContext = /*#__PURE__*/React.createContext(null);\nconst useFloatingPortalNode = function (_temp) {\n let {\n id,\n enabled = true\n } = _temp === void 0 ? {} : _temp;\n const [portalEl, setPortalEl] = React.useState(null);\n const uniqueId = useId();\n const portalContext = usePortalContext();\n index(() => {\n if (!enabled) {\n return;\n }\n const rootNode = id ? document.getElementById(id) : null;\n if (rootNode) {\n rootNode.setAttribute('data-floating-ui-portal', '');\n setPortalEl(rootNode);\n } else {\n const newPortalEl = document.createElement('div');\n if (id !== '') {\n newPortalEl.id = id || uniqueId;\n }\n newPortalEl.setAttribute('data-floating-ui-portal', '');\n setPortalEl(newPortalEl);\n const container = (portalContext == null ? void 0 : portalContext.portalNode) || document.body;\n container.appendChild(newPortalEl);\n return () => {\n container.removeChild(newPortalEl);\n };\n }\n }, [id, portalContext, uniqueId, enabled]);\n return portalEl;\n};\n\n/**\n * Portals the floating element into a given container element — by default,\n * outside of the app root and into the body.\n * @see https://floating-ui.com/docs/FloatingPortal\n */\nconst FloatingPortal = _ref => {\n let {\n children,\n id,\n root = null,\n preserveTabOrder = true\n } = _ref;\n const portalNode = useFloatingPortalNode({\n id,\n enabled: !root\n });\n const [focusManagerState, setFocusManagerState] = React.useState(null);\n const beforeOutsideRef = React.useRef(null);\n const afterOutsideRef = React.useRef(null);\n const beforeInsideRef = React.useRef(null);\n const afterInsideRef = React.useRef(null);\n const shouldRenderGuards =\n // The FocusManager and therefore floating element are currently open/\n // rendered.\n !!focusManagerState &&\n // Guards are only for non-modal focus management.\n !focusManagerState.modal && !!(root || portalNode) && preserveTabOrder;\n\n // https://codesandbox.io/s/tabbable-portal-f4tng?file=/src/TabbablePortal.tsx\n React.useEffect(() => {\n if (!portalNode || !preserveTabOrder || focusManagerState != null && focusManagerState.modal) {\n return;\n }\n\n // Make sure elements inside the portal element are tabbable only when the\n // portal has already been focused, either by tabbing into a focus trap\n // element outside or using the mouse.\n function onFocus(event) {\n if (portalNode && isOutsideEvent(event)) {\n const focusing = event.type === 'focusin';\n const manageFocus = focusing ? enableFocusInside : disableFocusInside;\n manageFocus(portalNode);\n }\n }\n // Listen to the event on the capture phase so they run before the focus\n // trap elements onFocus prop is called.\n portalNode.addEventListener('focusin', onFocus, true);\n portalNode.addEventListener('focusout', onFocus, true);\n return () => {\n portalNode.removeEventListener('focusin', onFocus, true);\n portalNode.removeEventListener('focusout', onFocus, true);\n };\n }, [portalNode, preserveTabOrder, focusManagerState == null ? void 0 : focusManagerState.modal]);\n return /*#__PURE__*/React.createElement(PortalContext.Provider, {\n value: React.useMemo(() => ({\n preserveTabOrder,\n beforeOutsideRef,\n afterOutsideRef,\n beforeInsideRef,\n afterInsideRef,\n portalNode,\n setFocusManagerState\n }), [preserveTabOrder, portalNode])\n }, shouldRenderGuards && portalNode && /*#__PURE__*/React.createElement(FocusGuard, {\n \"data-type\": \"outside\",\n ref: beforeOutsideRef,\n onFocus: event => {\n if (isOutsideEvent(event, portalNode)) {\n var _beforeInsideRef$curr;\n (_beforeInsideRef$curr = beforeInsideRef.current) == null ? void 0 : _beforeInsideRef$curr.focus();\n } else {\n const prevTabbable = getPreviousTabbable() || (focusManagerState == null ? void 0 : focusManagerState.refs.domReference.current);\n prevTabbable == null ? void 0 : prevTabbable.focus();\n }\n }\n }), shouldRenderGuards && portalNode && /*#__PURE__*/React.createElement(\"span\", {\n \"aria-owns\": portalNode.id,\n style: HIDDEN_STYLES\n }), root ? /*#__PURE__*/createPortal(children, root) : portalNode ? /*#__PURE__*/createPortal(children, portalNode) : null, shouldRenderGuards && portalNode && /*#__PURE__*/React.createElement(FocusGuard, {\n \"data-type\": \"outside\",\n ref: afterOutsideRef,\n onFocus: event => {\n if (isOutsideEvent(event, portalNode)) {\n var _afterInsideRef$curre;\n (_afterInsideRef$curre = afterInsideRef.current) == null ? void 0 : _afterInsideRef$curre.focus();\n } else {\n const nextTabbable = getNextTabbable() || (focusManagerState == null ? void 0 : focusManagerState.refs.domReference.current);\n nextTabbable == null ? void 0 : nextTabbable.focus();\n (focusManagerState == null ? void 0 : focusManagerState.closeOnFocusOut) && (focusManagerState == null ? void 0 : focusManagerState.onOpenChange(false));\n }\n }\n }));\n};\nconst usePortalContext = () => React.useContext(PortalContext);\n\nconst VisuallyHiddenDismiss = /*#__PURE__*/React.forwardRef(function VisuallyHiddenDismiss(props, ref) {\n return /*#__PURE__*/React.createElement(\"button\", _extends({}, props, {\n type: \"button\",\n ref: ref,\n tabIndex: -1,\n style: HIDDEN_STYLES\n }));\n});\n/**\n * Provides focus management for the floating element.\n * @see https://floating-ui.com/docs/FloatingFocusManager\n */\nfunction FloatingFocusManager(_ref) {\n let {\n context,\n children,\n order = ['content'],\n guards = true,\n initialFocus = 0,\n returnFocus = true,\n modal = true,\n visuallyHiddenDismiss = false,\n closeOnFocusOut = true\n } = _ref;\n const {\n refs,\n nodeId,\n onOpenChange,\n events,\n dataRef,\n elements: {\n domReference,\n floating\n }\n } = context;\n const orderRef = useLatestRef(order);\n const tree = useFloatingTree();\n const portalContext = usePortalContext();\n const [tabbableContentLength, setTabbableContentLength] = React.useState(null);\n\n // Controlled by `useListNavigation`.\n const ignoreInitialFocus = typeof initialFocus === 'number' && initialFocus < 0;\n const startDismissButtonRef = React.useRef(null);\n const endDismissButtonRef = React.useRef(null);\n const preventReturnFocusRef = React.useRef(false);\n const previouslyFocusedElementRef = React.useRef(null);\n const isPointerDownRef = React.useRef(false);\n const isInsidePortal = portalContext != null;\n\n // If the reference is a combobox and is typeable (e.g. input/textarea),\n // there are different focus semantics. The guards should not be rendered, but\n // aria-hidden should be applied to all nodes still. Further, the visually\n // hidden dismiss button should only appear at the end of the list, not the\n // start.\n const isTypeableCombobox = domReference && domReference.getAttribute('role') === 'combobox' && isTypeableElement(domReference);\n const getTabbableContent = React.useCallback(function (container) {\n if (container === void 0) {\n container = floating;\n }\n return container ? tabbable(container, getTabbableOptions()) : [];\n }, [floating]);\n const getTabbableElements = React.useCallback(container => {\n const content = getTabbableContent(container);\n return orderRef.current.map(type => {\n if (domReference && type === 'reference') {\n return domReference;\n }\n if (floating && type === 'floating') {\n return floating;\n }\n return content;\n }).filter(Boolean).flat();\n }, [domReference, floating, orderRef, getTabbableContent]);\n React.useEffect(() => {\n if (!modal) {\n return;\n }\n function onKeyDown(event) {\n if (event.key === 'Tab') {\n // The focus guards have nothing to focus, so we need to stop the event.\n if (getTabbableContent().length === 0 && !isTypeableCombobox) {\n stopEvent(event);\n }\n const els = getTabbableElements();\n const target = getTarget(event);\n if (orderRef.current[0] === 'reference' && target === domReference) {\n stopEvent(event);\n if (event.shiftKey) {\n enqueueFocus(els[els.length - 1]);\n } else {\n enqueueFocus(els[1]);\n }\n }\n if (orderRef.current[1] === 'floating' && target === floating && event.shiftKey) {\n stopEvent(event);\n enqueueFocus(els[0]);\n }\n }\n }\n const doc = getDocument(floating);\n doc.addEventListener('keydown', onKeyDown);\n return () => {\n doc.removeEventListener('keydown', onKeyDown);\n };\n }, [domReference, floating, modal, orderRef, refs, isTypeableCombobox, getTabbableContent, getTabbableElements]);\n React.useEffect(() => {\n if (!closeOnFocusOut) {\n return;\n }\n\n // In Safari, buttons lose focus when pressing them.\n function handlePointerDown() {\n isPointerDownRef.current = true;\n setTimeout(() => {\n isPointerDownRef.current = false;\n });\n }\n function handleFocusOutside(event) {\n const relatedTarget = event.relatedTarget;\n const movedToUnrelatedNode = !(contains(domReference, relatedTarget) || contains(floating, relatedTarget) || contains(relatedTarget, floating) || contains(portalContext == null ? void 0 : portalContext.portalNode, relatedTarget) || relatedTarget != null && relatedTarget.hasAttribute('data-floating-ui-focus-guard') || tree && (getChildren(tree.nodesRef.current, nodeId).find(node => {\n var _node$context, _node$context2;\n return contains((_node$context = node.context) == null ? void 0 : _node$context.elements.floating, relatedTarget) || contains((_node$context2 = node.context) == null ? void 0 : _node$context2.elements.domReference, relatedTarget);\n }) || getAncestors(tree.nodesRef.current, nodeId).find(node => {\n var _node$context3, _node$context4;\n return ((_node$context3 = node.context) == null ? void 0 : _node$context3.elements.floating) === relatedTarget || ((_node$context4 = node.context) == null ? void 0 : _node$context4.elements.domReference) === relatedTarget;\n })));\n\n // Focus did not move inside the floating tree, and there are no tabbable\n // portal guards to handle closing.\n if (relatedTarget && movedToUnrelatedNode && !isPointerDownRef.current &&\n // Fix React 18 Strict Mode returnFocus due to double rendering.\n relatedTarget !== previouslyFocusedElementRef.current) {\n preventReturnFocusRef.current = true;\n // On iOS VoiceOver, dismissing the nested submenu will cause the\n // first item of the list to receive focus. Delaying it appears to fix\n // the issue.\n setTimeout(() => onOpenChange(false));\n }\n }\n if (floating && isHTMLElement(domReference)) {\n domReference.addEventListener('focusout', handleFocusOutside);\n domReference.addEventListener('pointerdown', handlePointerDown);\n !modal && floating.addEventListener('focusout', handleFocusOutside);\n return () => {\n domReference.removeEventListener('focusout', handleFocusOutside);\n domReference.removeEventListener('pointerdown', handlePointerDown);\n !modal && floating.removeEventListener('focusout', handleFocusOutside);\n };\n }\n }, [domReference, floating, modal, nodeId, tree, portalContext, onOpenChange, closeOnFocusOut]);\n React.useEffect(() => {\n var _portalContext$portal;\n // Don't hide portals nested within the parent portal.\n const portalNodes = Array.from((portalContext == null ? void 0 : (_portalContext$portal = portalContext.portalNode) == null ? void 0 : _portalContext$portal.querySelectorAll('[data-floating-ui-portal]')) || []);\n function getDismissButtons() {\n return [startDismissButtonRef.current, endDismissButtonRef.current].filter(Boolean);\n }\n if (floating && modal) {\n const insideNodes = [floating, ...portalNodes, ...getDismissButtons()];\n const cleanup = hideOthers(orderRef.current.includes('reference') || isTypeableCombobox ? insideNodes.concat(domReference || []) : insideNodes);\n return () => {\n cleanup();\n };\n }\n }, [domReference, floating, modal, orderRef, portalContext, isTypeableCombobox]);\n React.useEffect(() => {\n if (modal && !guards && floating) {\n const tabIndexValues = [];\n const options = getTabbableOptions();\n const allTabbable = tabbable(getDocument(floating).body, options);\n const floatingTabbable = getTabbableElements();\n\n // Exclude all tabbable elements that are part of the order\n const elements = allTabbable.filter(el => !floatingTabbable.includes(el));\n elements.forEach((el, i) => {\n tabIndexValues[i] = el.getAttribute('tabindex');\n el.setAttribute('tabindex', '-1');\n });\n return () => {\n elements.forEach((el, i) => {\n const value = tabIndexValues[i];\n if (value == null) {\n el.removeAttribute('tabindex');\n } else {\n el.setAttribute('tabindex', value);\n }\n });\n };\n }\n }, [floating, modal, guards, getTabbableElements]);\n index(() => {\n if (!floating) return;\n const doc = getDocument(floating);\n let returnFocusValue = returnFocus;\n let preventReturnFocusScroll = false;\n const previouslyFocusedElement = activeElement$1(doc);\n const contextData = dataRef.current;\n previouslyFocusedElementRef.current = previouslyFocusedElement;\n const focusableElements = getTabbableElements(floating);\n const elToFocus = (typeof initialFocus === 'number' ? focusableElements[initialFocus] : initialFocus.current) || floating;\n\n // If the `useListNavigation` hook is active, always ignore `initialFocus`\n // because it has its own handling of the initial focus.\n !ignoreInitialFocus && enqueueFocus(elToFocus, {\n preventScroll: elToFocus === floating\n });\n\n // Dismissing via outside press should always ignore `returnFocus` to\n // prevent unwanted scrolling.\n function onDismiss(payload) {\n if (payload.type === 'escapeKey' && refs.domReference.current) {\n previouslyFocusedElementRef.current = refs.domReference.current;\n }\n if (['referencePress', 'escapeKey'].includes(payload.type)) {\n return;\n }\n const returnFocus = payload.data.returnFocus;\n if (typeof returnFocus === 'object') {\n returnFocusValue = true;\n preventReturnFocusScroll = returnFocus.preventScroll;\n } else {\n returnFocusValue = returnFocus;\n }\n }\n events.on('dismiss', onDismiss);\n return () => {\n events.off('dismiss', onDismiss);\n if (contains(floating, activeElement$1(doc)) && refs.domReference.current) {\n previouslyFocusedElementRef.current = refs.domReference.current;\n }\n if (returnFocusValue && isHTMLElement(previouslyFocusedElementRef.current) && !preventReturnFocusRef.current) {\n // `isPointerDownRef.current` to avoid the focus ring from appearing on\n // the reference element when click-toggling it.\n if (!refs.domReference.current || isPointerDownRef.current) {\n enqueueFocus(previouslyFocusedElementRef.current, {\n // When dismissing nested floating elements, by the time the rAF has\n // executed, the menus will all have been unmounted. When they try\n // to get focused, the calls get ignored — leaving the root\n // reference focused as desired.\n cancelPrevious: false,\n preventScroll: preventReturnFocusScroll\n });\n } else {\n var _previouslyFocusedEle;\n // If the user has specified a `keydown` listener that calls\n // setOpen(false) (e.g. selecting an item and closing the floating\n // element), then sync return focus causes `useClick` to immediately\n // re-open it, unless they call `event.preventDefault()` in the\n // `keydown` listener. This helps keep backwards compatibility with\n // older examples.\n contextData.__syncReturnFocus = true;\n\n // In Safari, `useListNavigation` moves focus sync, so making this\n // sync ensures the initial item remains focused despite this being\n // invoked in Strict Mode due to double-invoked useEffects. This also\n // has the positive side effect of closing a modally focus-managed\n // <Menu> on `Tab` keydown to move naturally to the next focusable\n // element.\n (_previouslyFocusedEle = previouslyFocusedElementRef.current) == null ? void 0 : _previouslyFocusedEle.focus({\n preventScroll: preventReturnFocusScroll\n });\n setTimeout(() => {\n // This isn't an actual property the user should access, make sure\n // it doesn't persist.\n delete contextData.__syncReturnFocus;\n });\n }\n }\n };\n }, [floating, getTabbableElements, initialFocus, returnFocus, dataRef, refs, events, ignoreInitialFocus]);\n\n // Synchronize the `context` & `modal` value to the FloatingPortal context.\n // It will decide whether or not it needs to render its own guards.\n index(() => {\n if (!portalContext) return;\n portalContext.setFocusManagerState({\n ...context,\n modal,\n closeOnFocusOut\n // Not concerned about the <RT> generic type.\n });\n\n return () => {\n portalContext.setFocusManagerState(null);\n };\n }, [portalContext, modal, closeOnFocusOut, context]);\n index(() => {\n if (ignoreInitialFocus || !floating) return;\n function setState() {\n setTabbableContentLength(getTabbableContent().length);\n }\n setState();\n if (typeof MutationObserver === 'function') {\n const observer = new MutationObserver(setState);\n observer.observe(floating, {\n childList: true,\n subtree: true\n });\n return () => {\n observer.disconnect();\n };\n }\n }, [floating, getTabbableContent, ignoreInitialFocus, refs]);\n const shouldRenderGuards = guards && (isInsidePortal || modal) && !isTypeableCombobox;\n function renderDismissButton(location) {\n return visuallyHiddenDismiss && modal ? /*#__PURE__*/React.createElement(VisuallyHiddenDismiss, {\n ref: location === 'start' ? startDismissButtonRef : endDismissButtonRef,\n onClick: () => onOpenChange(false)\n }, typeof visuallyHiddenDismiss === 'string' ? visuallyHiddenDismiss : 'Dismiss') : null;\n }\n return /*#__PURE__*/React.createElement(React.Fragment, null, shouldRenderGuards && /*#__PURE__*/React.createElement(FocusGuard, {\n \"data-type\": \"inside\",\n ref: portalContext == null ? void 0 : portalContext.beforeInsideRef,\n onFocus: event => {\n if (modal) {\n const els = getTabbableElements();\n enqueueFocus(order[0] === 'reference' ? els[0] : els[els.length - 1]);\n } else if (portalContext != null && portalContext.preserveTabOrder && portalContext.portalNode) {\n preventReturnFocusRef.current = false;\n if (isOutsideEvent(event, portalContext.portalNode)) {\n const nextTabbable = getNextTabbable() || domReference;\n nextTabbable == null ? void 0 : nextTabbable.focus();\n } else {\n var _portalContext$before;\n (_portalContext$before = portalContext.beforeOutsideRef.current) == null ? void 0 : _portalContext$before.focus();\n }\n }\n }\n }), isTypeableCombobox ? null : renderDismissButton('start'), /*#__PURE__*/React.cloneElement(children, tabbableContentLength === 0 || order.includes('floating') ? {\n tabIndex: 0\n } : {}), renderDismissButton('end'), shouldRenderGuards && /*#__PURE__*/React.createElement(FocusGuard, {\n \"data-type\": \"inside\",\n ref: portalContext == null ? void 0 : portalContext.afterInsideRef,\n onFocus: event => {\n if (modal) {\n enqueueFocus(getTabbableElements()[0]);\n } else if (portalContext != null && portalContext.preserveTabOrder && portalContext.portalNode) {\n preventReturnFocusRef.current = true;\n if (isOutsideEvent(event, portalContext.portalNode)) {\n const prevTabbable = getPreviousTabbable() || domReference;\n prevTabbable == null ? void 0 : prevTabbable.focus();\n } else {\n var _portalContext$afterO;\n (_portalContext$afterO = portalContext.afterOutsideRef.current) == null ? void 0 : _portalContext$afterO.focus();\n }\n }\n }\n }));\n}\n\nconst identifier = 'data-floating-ui-scroll-lock';\n\n/**\n * Provides base styling for a fixed overlay element to dim content or block\n * pointer events behind a floating element.\n * It's a regular `<div>`, so it can be styled via any CSS solution you prefer.\n * @see https://floating-ui.com/docs/FloatingOverlay\n */\nconst FloatingOverlay = /*#__PURE__*/React.forwardRef(function FloatingOverlay(_ref, ref) {\n let {\n lockScroll = false,\n ...rest\n } = _ref;\n index(() => {\n var _window$visualViewpor, _window$visualViewpor2;\n if (!lockScroll) {\n return;\n }\n const alreadyLocked = document.body.hasAttribute(identifier);\n if (alreadyLocked) {\n return;\n }\n document.body.setAttribute(identifier, '');\n\n // RTL <body> scrollbar\n const scrollbarX = Math.round(document.documentElement.getBoundingClientRect().left) + document.documentElement.scrollLeft;\n const paddingProp = scrollbarX ? 'paddingLeft' : 'paddingRight';\n const scrollbarWidth = window.innerWidth - document.documentElement.clientWidth;\n\n // Only iOS doesn't respect `overflow: hidden` on document.body, and this\n // technique has fewer side effects.\n if (!/iP(hone|ad|od)|iOS/.test(getPlatform())) {\n Object.assign(document.body.style, {\n overflow: 'hidden',\n [paddingProp]: scrollbarWidth + \"px\"\n });\n return () => {\n document.body.removeAttribute(identifier);\n Object.assign(document.body.style, {\n overflow: '',\n [paddingProp]: ''\n });\n };\n }\n\n // iOS 12 does not support `visualViewport`.\n const offsetLeft = ((_window$visualViewpor = window.visualViewport) == null ? void 0 : _window$visualViewpor.offsetLeft) || 0;\n const offsetTop = ((_window$visualViewpor2 = window.visualViewport) == null ? void 0 : _window$visualViewpor2.offsetTop) || 0;\n const scrollX = window.pageXOffset;\n const scrollY = window.pageYOffset;\n Object.assign(document.body.style, {\n position: 'fixed',\n overflow: 'hidden',\n top: -(scrollY - Math.floor(offsetTop)) + \"px\",\n left: -(scrollX - Math.floor(offsetLeft)) + \"px\",\n right: '0',\n [paddingProp]: scrollbarWidth + \"px\"\n });\n return () => {\n Object.assign(document.body.style, {\n position: '',\n overflow: '',\n top: '',\n left: '',\n right: '',\n [paddingProp]: ''\n });\n document.body.removeAttribute(identifier);\n window.scrollTo(scrollX, scrollY);\n };\n }, [lockScroll]);\n return /*#__PURE__*/React.createElement(\"div\", _extends({\n ref: ref\n }, rest, {\n style: {\n position: 'fixed',\n overflow: 'auto',\n top: 0,\n right: 0,\n bottom: 0,\n left: 0,\n ...rest.style\n }\n }));\n});\n\nfunction isButtonTarget(event) {\n return isHTMLElement(event.target) && event.target.tagName === 'BUTTON';\n}\nfunction isSpaceIgnored(element) {\n return isTypeableElement(element);\n}\n/**\n * Opens or closes the floating element when clicking the reference element.\n * @see https://floating-ui.com/docs/useClick\n */\nconst useClick = function (_ref, _temp) {\n let {\n open,\n onOpenChange,\n dataRef,\n elements: {\n domReference\n }\n } = _ref;\n let {\n enabled = true,\n event: eventOption = 'click',\n toggle = true,\n ignoreMouse = false,\n keyboardHandlers = true\n } = _temp === void 0 ? {} : _temp;\n const pointerTypeRef = React.useRef();\n return React.useMemo(() => {\n if (!enabled) {\n return {};\n }\n return {\n reference: {\n onPointerDown(event) {\n pointerTypeRef.current = event.pointerType;\n },\n onMouseDown(event) {\n // Ignore all buttons except for the \"main\" button.\n // https://developer.mozilla.org/en-US/docs/Web/API/MouseEvent/button\n if (event.button !== 0) {\n return;\n }\n if (isMouseLikePointerType(pointerTypeRef.current, true) && ignoreMouse) {\n return;\n }\n if (eventOption === 'click') {\n return;\n }\n if (open) {\n if (toggle && (dataRef.current.openEvent ? dataRef.current.openEvent.type === 'mousedown' : true)) {\n onOpenChange(false);\n }\n } else {\n // Prevent stealing focus from the floating element\n event.preventDefault();\n onOpenChange(true);\n }\n dataRef.current.openEvent = event.nativeEvent;\n },\n onClick(event) {\n if (dataRef.current.__syncReturnFocus) {\n return;\n }\n if (eventOption === 'mousedown' && pointerTypeRef.current) {\n pointerTypeRef.current = undefined;\n return;\n }\n if (isMouseLikePointerType(pointerTypeRef.current, true) && ignoreMouse) {\n return;\n }\n if (open) {\n if (toggle && (dataRef.current.openEvent ? dataRef.current.openEvent.type === 'click' : true)) {\n onOpenChange(false);\n }\n } else {\n onOpenChange(true);\n }\n dataRef.current.openEvent = event.nativeEvent;\n },\n onKeyDown(event) {\n pointerTypeRef.current = undefined;\n if (!keyboardHandlers) {\n return;\n }\n if (isButtonTarget(event)) {\n return;\n }\n if (event.key === ' ' && !isSpaceIgnored(domReference)) {\n // Prevent scrolling\n event.preventDefault();\n }\n if (event.key === 'Enter') {\n if (open) {\n if (toggle) {\n onOpenChange(false);\n }\n } else {\n onOpenChange(true);\n }\n }\n },\n onKeyUp(event) {\n if (!keyboardHandlers) {\n return;\n }\n if (isButtonTarget(event) || isSpaceIgnored(domReference)) {\n return;\n }\n if (event.key === ' ') {\n if (open) {\n if (toggle) {\n onOpenChange(false);\n }\n } else {\n onOpenChange(true);\n }\n }\n }\n }\n };\n }, [enabled, dataRef, eventOption, ignoreMouse, keyboardHandlers, domReference, toggle, open, onOpenChange]);\n};\n\n/**\n * Check whether the event.target is within the provided node. Uses event.composedPath if available for custom element support.\n *\n * @param event The event whose target/composedPath to check\n * @param node The node to check against\n * @returns Whether the event.target/composedPath is within the node.\n */\nfunction isEventTargetWithin(event, node) {\n if (node == null) {\n return false;\n }\n if ('composedPath' in event) {\n return event.composedPath().includes(node);\n }\n\n // TS thinks `event` is of type never as it assumes all browsers support composedPath, but browsers without shadow dom don't\n const e = event;\n return e.target != null && node.contains(e.target);\n}\n\nconst bubbleHandlerKeys = {\n pointerdown: 'onPointerDown',\n mousedown: 'onMouseDown',\n click: 'onClick'\n};\nconst captureHandlerKeys = {\n pointerdown: 'onPointerDownCapture',\n mousedown: 'onMouseDownCapture',\n click: 'onClickCapture'\n};\nconst normalizeBubblesProp = function (bubbles) {\n var _bubbles$escapeKey, _bubbles$outsidePress;\n if (bubbles === void 0) {\n bubbles = true;\n }\n return {\n escapeKeyBubbles: typeof bubbles === 'boolean' ? bubbles : (_bubbles$escapeKey = bubbles.escapeKey) != null ? _bubbles$escapeKey : true,\n outsidePressBubbles: typeof bubbles === 'boolean' ? bubbles : (_bubbles$outsidePress = bubbles.outsidePress) != null ? _bubbles$outsidePress : true\n };\n};\n/**\n * Closes the floating element when a dismissal is requested — by default, when\n * the user presses the `escape` key or outside of the floating element.\n * @see https://floating-ui.com/docs/useDismiss\n */\nconst useDismiss = function (_ref, _temp) {\n let {\n open,\n onOpenChange,\n events,\n nodeId,\n elements: {\n reference,\n domReference,\n floating\n },\n dataRef\n } = _ref;\n let {\n enabled = true,\n escapeKey = true,\n outsidePress: unstable_outsidePress = true,\n outsidePressEvent = 'pointerdown',\n referencePress = false,\n referencePressEvent = 'pointerdown',\n ancestorScroll = false,\n bubbles = true\n } = _temp === void 0 ? {} : _temp;\n const tree = useFloatingTree();\n const nested = useFloatingParentNodeId() != null;\n const outsidePressFn = useEvent(typeof unstable_outsidePress === 'function' ? unstable_outsidePress : () => false);\n const outsidePress = typeof unstable_outsidePress === 'function' ? outsidePressFn : unstable_outsidePress;\n const insideReactTreeRef = React.useRef(false);\n const {\n escapeKeyBubbles,\n outsidePressBubbles\n } = normalizeBubblesProp(bubbles);\n React.useEffect(() => {\n if (!open || !enabled) {\n return;\n }\n dataRef.current.__escapeKeyBubbles = escapeKeyBubbles;\n dataRef.current.__outsidePressBubbles = outsidePressBubbles;\n function onKeyDown(event) {\n if (event.key === 'Escape') {\n const children = tree ? getChildren(tree.nodesRef.current, nodeId) : [];\n if (children.length > 0) {\n let shouldDismiss = true;\n children.forEach(child => {\n var _child$context;\n if ((_child$context = child.context) != null && _child$context.open && !child.context.dataRef.current.__escapeKeyBubbles) {\n shouldDismiss = false;\n return;\n }\n });\n if (!shouldDismiss) {\n return;\n }\n }\n events.emit('dismiss', {\n type: 'escapeKey',\n data: {\n returnFocus: {\n preventScroll: false\n }\n }\n });\n onOpenChange(false);\n }\n }\n function onOutsidePress(event) {\n // Given developers can stop the propagation of the synthetic event,\n // we can only be confident with a positive value.\n const insideReactTree = insideReactTreeRef.current;\n insideReactTreeRef.current = false;\n if (insideReactTree) {\n return;\n }\n if (typeof outsidePress === 'function' && !outsidePress(event)) {\n return;\n }\n const target = getTarget(event);\n\n // Check if the click occurred on the scrollbar\n if (isHTMLElement(target) && floating) {\n const win = floating.ownerDocument.defaultView || window;\n const canScrollX = target.scrollWidth > target.clientWidth;\n const canScrollY = target.scrollHeight > target.clientHeight;\n let xCond = canScrollY && event.offsetX > target.clientWidth;\n\n // In some browsers it is possible to change the <body> (or window)\n // scrollbar to the left side, but is very rare and is difficult to\n // check for. Plus, for modal dialogs with backdrops, it is more\n // important that the backdrop is checked but not so much the window.\n if (canScrollY) {\n const isRTL = win.getComputedStyle(target).direction === 'rtl';\n if (isRTL) {\n xCond = event.offsetX <= target.offsetWidth - target.clientWidth;\n }\n }\n if (xCond || canScrollX && event.offsetY > target.clientHeight) {\n return;\n }\n }\n const targetIsInsideChildren = tree && getChildren(tree.nodesRef.current, nodeId).some(node => {\n var _node$context;\n return isEventTargetWithin(event, (_node$context = node.context) == null ? void 0 : _node$context.elements.floating);\n });\n if (isEventTargetWithin(event, floating) || isEventTargetWithin(event, domReference) || targetIsInsideChildren) {\n return;\n }\n const children = tree ? getChildren(tree.nodesRef.current, nodeId) : [];\n if (children.length > 0) {\n let shouldDismiss = true;\n children.forEach(child => {\n var _child$context2;\n if ((_child$context2 = child.context) != null && _child$context2.open && !child.context.dataRef.current.__outsidePressBubbles) {\n shouldDismiss = false;\n return;\n }\n });\n if (!shouldDismiss) {\n return;\n }\n }\n events.emit('dismiss', {\n type: 'outsidePress',\n data: {\n returnFocus: nested ? {\n preventScroll: true\n } : isVirtualClick(event) || isVirtualPointerEvent(event)\n }\n });\n onOpenChange(false);\n }\n function onScroll() {\n onOpenChange(false);\n }\n const doc = getDocument(floating);\n escapeKey && doc.addEventListener('keydown', onKeyDown);\n outsidePress && doc.addEventListener(outsidePressEvent, onOutsidePress);\n let ancestors = [];\n if (ancestorScroll) {\n if (isElement(domReference)) {\n ancestors = getOverflowAncestors(domReference);\n }\n if (isElement(floating)) {\n ancestors = ancestors.concat(getOverflowAncestors(floating));\n }\n if (!isElement(reference) && reference && reference.contextElement) {\n ancestors = ancestors.concat(getOverflowAncestors(reference.contextElement));\n }\n }\n\n // Ignore the visual viewport for scrolling dismissal (allow pinch-zoom)\n ancestors = ancestors.filter(ancestor => {\n var _doc$defaultView;\n return ancestor !== ((_doc$defaultView = doc.defaultView) == null ? void 0 : _doc$defaultView.visualViewport);\n });\n ancestors.forEach(ancestor => {\n ancestor.addEventListener('scroll', onScroll, {\n passive: true\n });\n });\n return () => {\n escapeKey && doc.removeEventListener('keydown', onKeyDown);\n outsidePress && doc.removeEventListener(outsidePressEvent, onOutsidePress);\n ancestors.forEach(ancestor => {\n ancestor.removeEventListener('scroll', onScroll);\n });\n };\n }, [dataRef, floating, domReference, reference, escapeKey, outsidePress, outsidePressEvent, events, tree, nodeId, open, onOpenChange, ancestorScroll, enabled, escapeKeyBubbles, outsidePressBubbles, nested]);\n React.useEffect(() => {\n insideReactTreeRef.current = false;\n }, [outsidePress, outsidePressEvent]);\n return React.useMemo(() => {\n if (!enabled) {\n return {};\n }\n return {\n reference: {\n [bubbleHandlerKeys[referencePressEvent]]: () => {\n if (referencePress) {\n events.emit('dismiss', {\n type: 'referencePress',\n data: {\n returnFocus: false\n }\n });\n onOpenChange(false);\n }\n }\n },\n floating: {\n [captureHandlerKeys[outsidePressEvent]]: () => {\n insideReactTreeRef.current = true;\n }\n }\n };\n }, [enabled, events, referencePress, outsidePressEvent, referencePressEvent, onOpenChange]);\n};\n\n/**\n * Opens the floating element while the reference element has focus, like CSS\n * `:focus`.\n * @see https://floating-ui.com/docs/useFocus\n */\nconst useFocus = function (_ref, _temp) {\n let {\n open,\n onOpenChange,\n dataRef,\n events,\n refs,\n elements: {\n floating,\n domReference\n }\n } = _ref;\n let {\n enabled = true,\n keyboardOnly = true\n } = _temp === void 0 ? {} : _temp;\n const pointerTypeRef = React.useRef('');\n const blockFocusRef = React.useRef(false);\n const timeoutRef = React.useRef();\n React.useEffect(() => {\n if (!enabled) {\n return;\n }\n const doc = getDocument(floating);\n const win = doc.defaultView || window;\n\n // If the reference was focused and the user left the tab/window, and the\n // floating element was not open, the focus should be blocked when they\n // return to the tab/window.\n function onBlur() {\n if (!open && isHTMLElement(domReference) && domReference === activeElement$1(getDocument(domReference))) {\n blockFocusRef.current = true;\n }\n }\n win.addEventListener('blur', onBlur);\n return () => {\n win.removeEventListener('blur', onBlur);\n };\n }, [floating, domReference, open, enabled]);\n React.useEffect(() => {\n if (!enabled) {\n return;\n }\n function onDismiss(payload) {\n if (payload.type === 'referencePress' || payload.type === 'escapeKey') {\n blockFocusRef.current = true;\n }\n }\n events.on('dismiss', onDismiss);\n return () => {\n events.off('dismiss', onDismiss);\n };\n }, [events, enabled]);\n React.useEffect(() => {\n return () => {\n clearTimeout(timeoutRef.current);\n };\n }, []);\n return React.useMemo(() => {\n if (!enabled) {\n return {};\n }\n return {\n reference: {\n onPointerDown(_ref2) {\n let {\n pointerType\n } = _ref2;\n pointerTypeRef.current = pointerType;\n blockFocusRef.current = !!(pointerType && keyboardOnly);\n },\n onMouseLeave() {\n blockFocusRef.current = false;\n },\n onFocus(event) {\n var _dataRef$current$open;\n if (blockFocusRef.current) {\n return;\n }\n\n // Dismiss with click should ignore the subsequent `focus` trigger,\n // but only if the click originated inside the reference element.\n if (event.type === 'focus' && ((_dataRef$current$open = dataRef.current.openEvent) == null ? void 0 : _dataRef$current$open.type) === 'mousedown' && dataRef.current.openEvent && isEventTargetWithin(dataRef.current.openEvent, domReference)) {\n return;\n }\n dataRef.current.openEvent = event.nativeEvent;\n onOpenChange(true);\n },\n onBlur(event) {\n blockFocusRef.current = false;\n const relatedTarget = event.relatedTarget;\n\n // Hit the non-modal focus management portal guard. Focus will be\n // moved into the floating element immediately after.\n const movedToFocusGuard = isElement(relatedTarget) && relatedTarget.hasAttribute('data-floating-ui-focus-guard') && relatedTarget.getAttribute('data-type') === 'outside';\n\n // Wait for the window blur listener to fire.\n timeoutRef.current = setTimeout(() => {\n // When focusing the reference element (e.g. regular click), then\n // clicking into the floating element, prevent it from hiding.\n // Note: it must be focusable, e.g. `tabindex=\"-1\"`.\n if (contains(refs.floating.current, relatedTarget) || contains(domReference, relatedTarget) || movedToFocusGuard) {\n return;\n }\n onOpenChange(false);\n });\n }\n }\n };\n }, [enabled, keyboardOnly, domReference, refs, dataRef, onOpenChange]);\n};\n\nlet isPreventScrollSupported = false;\nconst ARROW_UP = 'ArrowUp';\nconst ARROW_DOWN = 'ArrowDown';\nconst ARROW_LEFT = 'ArrowLeft';\nconst ARROW_RIGHT = 'ArrowRight';\nfunction isDifferentRow(index, cols, prevRow) {\n return Math.floor(index / cols) !== prevRow;\n}\nfunction isIndexOutOfBounds(listRef, index) {\n return index < 0 || index >= listRef.current.length;\n}\nfunction findNonDisabledIndex(listRef, _temp) {\n let {\n startingIndex = -1,\n decrement = false,\n disabledIndices,\n amount = 1\n } = _temp === void 0 ? {} : _temp;\n const list = listRef.current;\n let index = startingIndex;\n do {\n var _list$index, _list$index2;\n index = index + (decrement ? -amount : amount);\n } while (index >= 0 && index <= list.length - 1 && (disabledIndices ? disabledIndices.includes(index) : list[index] == null || ((_list$index = list[index]) == null ? void 0 : _list$index.hasAttribute('disabled')) || ((_list$index2 = list[index]) == null ? void 0 : _list$index2.getAttribute('aria-disabled')) === 'true'));\n return index;\n}\nfunction doSwitch(orientation, vertical, horizontal) {\n switch (orientation) {\n case 'vertical':\n return vertical;\n case 'horizontal':\n return horizontal;\n default:\n return vertical || horizontal;\n }\n}\nfunction isMainOrientationKey(key, orientation) {\n const vertical = key === ARROW_UP || key === ARROW_DOWN;\n const horizontal = key === ARROW_LEFT || key === ARROW_RIGHT;\n return doSwitch(orientation, vertical, horizontal);\n}\nfunction isMainOrientationToEndKey(key, orientation, rtl) {\n const vertical = key === ARROW_DOWN;\n const horizontal = rtl ? key === ARROW_LEFT : key === ARROW_RIGHT;\n return doSwitch(orientation, vertical, horizontal) || key === 'Enter' || key == ' ' || key === '';\n}\nfunction isCrossOrientationOpenKey(key, orientation, rtl) {\n const vertical = rtl ? key === ARROW_LEFT : key === ARROW_RIGHT;\n const horizontal = key === ARROW_DOWN;\n return doSwitch(orientation, vertical, horizontal);\n}\nfunction isCrossOrientationCloseKey(key, orientation, rtl) {\n const vertical = rtl ? key === ARROW_RIGHT : key === ARROW_LEFT;\n const horizontal = key === ARROW_UP;\n return doSwitch(orientation, vertical, horizontal);\n}\nfunction getMinIndex(listRef, disabledIndices) {\n return findNonDisabledIndex(listRef, {\n disabledIndices\n });\n}\nfunction getMaxIndex(listRef, disabledIndices) {\n return findNonDisabledIndex(listRef, {\n decrement: true,\n startingIndex: listRef.current.length,\n disabledIndices\n });\n}\n/**\n * Adds arrow key-based navigation of a list of items, either using real DOM\n * focus or virtual focus.\n * @see https://floating-ui.com/docs/useListNavigation\n */\nconst useListNavigation = function (_ref, _temp2) {\n let {\n open,\n onOpenChange,\n refs,\n elements: {\n domReference\n }\n } = _ref;\n let {\n listRef,\n activeIndex,\n onNavigate: unstable_onNavigate = () => {},\n enabled = true,\n selectedIndex = null,\n allowEscape = false,\n loop = false,\n nested = false,\n rtl = false,\n virtual = false,\n focusItemOnOpen = 'auto',\n focusItemOnHover = true,\n openOnArrowKeyDown = true,\n disabledIndices = undefined,\n orientation = 'vertical',\n cols = 1,\n scrollItemIntoView = true\n } = _temp2 === void 0 ? {\n listRef: {\n current: []\n },\n activeIndex: null,\n onNavigate: () => {}\n } : _temp2;\n if (process.env.NODE_ENV !== \"production\") {\n if (allowEscape) {\n if (!loop) {\n console.warn(['Floating UI: `useListNavigation` looping must be enabled to allow', 'escaping.'].join(' '));\n }\n if (!virtual) {\n console.warn(['Floating UI: `useListNavigation` must be virtual to allow', 'escaping.'].join(' '));\n }\n }\n if (orientation === 'vertical' && cols > 1) {\n console.warn(['Floating UI: In grid list navigation mode (`cols` > 1), the', '`orientation` should be either \"horizontal\" or \"both\".'].join(' '));\n }\n }\n const parentId = useFloatingParentNodeId();\n const tree = useFloatingTree();\n const onNavigate = useEvent(unstable_onNavigate);\n const focusItemOnOpenRef = React.useRef(focusItemOnOpen);\n const indexRef = React.useRef(selectedIndex != null ? selectedIndex : -1);\n const keyRef = React.useRef(null);\n const isPointerModalityRef = React.useRef(true);\n const previousOnNavigateRef = React.useRef(onNavigate);\n const previousOpenRef = React.useRef(open);\n const forceSyncFocus = React.useRef(false);\n const forceScrollIntoViewRef = React.useRef(false);\n const disabledIndicesRef = useLatestRef(disabledIndices);\n const latestOpenRef = useLatestRef(open);\n const scrollItemIntoViewRef = useLatestRef(scrollItemIntoView);\n const [activeId, setActiveId] = React.useState();\n const focusItem = React.useCallback(function (listRef, indexRef, forceScrollIntoView) {\n if (forceScrollIntoView === void 0) {\n forceScrollIntoView = false;\n }\n const item = listRef.current[indexRef.current];\n if (virtual) {\n setActiveId(item == null ? void 0 : item.id);\n } else {\n enqueueFocus(item, {\n preventScroll: true,\n // Mac Safari does not move the virtual cursor unless the focus call\n // is sync. However, for the very first focus call, we need to wait\n // for the position to be ready in order to prevent unwanted\n // scrolling. This means the virtual cursor will not move to the first\n // item when first opening the floating element, but will on\n // subsequent calls. `preventScroll` is supported in modern Safari,\n // so we can use that instead.\n // iOS Safari must be async or the first item will not be focused.\n sync: isMac() && isSafari() ? isPreventScrollSupported || forceSyncFocus.current : false\n });\n }\n requestAnimationFrame(() => {\n const scrollIntoViewOptions = scrollItemIntoViewRef.current;\n const shouldScrollIntoView = scrollIntoViewOptions && item && (forceScrollIntoView || !isPointerModalityRef.current);\n if (shouldScrollIntoView) {\n // JSDOM doesn't support `.scrollIntoView()` but it's widely supported\n // by all browsers.\n item.scrollIntoView == null ? void 0 : item.scrollIntoView(typeof scrollIntoViewOptions === 'boolean' ? {\n block: 'nearest',\n inline: 'nearest'\n } : scrollIntoViewOptions);\n }\n });\n }, [virtual, scrollItemIntoViewRef]);\n index(() => {\n document.createElement('div').focus({\n get preventScroll() {\n isPreventScrollSupported = true;\n return false;\n }\n });\n }, []);\n\n // Sync `selectedIndex` to be the `activeIndex` upon opening the floating\n // element. Also, reset `activeIndex` upon closing the floating element.\n index(() => {\n if (!enabled) {\n return;\n }\n if (open) {\n if (focusItemOnOpenRef.current && selectedIndex != null) {\n // Regardless of the pointer modality, we want to ensure the selected\n // item comes into view when the floating element is opened.\n forceScrollIntoViewRef.current = true;\n onNavigate(selectedIndex);\n }\n } else if (previousOpenRef.current) {\n // Since the user can specify `onNavigate` conditionally\n // (onNavigate: open ? setActiveIndex : setSelectedIndex),\n // we store and call the previous function.\n indexRef.current = -1;\n previousOnNavigateRef.current(null);\n }\n }, [enabled, open, selectedIndex, onNavigate]);\n\n // Sync `activeIndex` to be the focused item while the floating element is\n // open.\n index(() => {\n if (!enabled) {\n return;\n }\n if (open) {\n if (activeIndex == null) {\n forceSyncFocus.current = false;\n if (selectedIndex != null) {\n return;\n }\n\n // Reset while the floating element was open (e.g. the list changed).\n if (previousOpenRef.current) {\n indexRef.current = -1;\n focusItem(listRef, indexRef);\n }\n\n // Initial sync.\n if (!previousOpenRef.current && focusItemOnOpenRef.current && (keyRef.current != null || focusItemOnOpenRef.current === true && keyRef.current == null)) {\n indexRef.current = keyRef.current == null || isMainOrientationToEndKey(keyRef.current, orientation, rtl) || nested ? getMinIndex(listRef, disabledIndicesRef.current) : getMaxIndex(listRef, disabledIndicesRef.current);\n onNavigate(indexRef.current);\n }\n } else if (!isIndexOutOfBounds(listRef, activeIndex)) {\n indexRef.current = activeIndex;\n focusItem(listRef, indexRef, forceScrollIntoViewRef.current);\n forceScrollIntoViewRef.current = false;\n }\n }\n }, [enabled, open, activeIndex, selectedIndex, nested, listRef, orientation, rtl, onNavigate, focusItem, disabledIndicesRef]);\n\n // Ensure the parent floating element has focus when a nested child closes\n // to allow arrow key navigation to work after the pointer leaves the child.\n index(() => {\n if (!enabled) {\n return;\n }\n if (previousOpenRef.current && !open) {\n var _tree$nodesRef$curren, _tree$nodesRef$curren2;\n const parentFloating = tree == null ? void 0 : (_tree$nodesRef$curren = tree.nodesRef.current.find(node => node.id === parentId)) == null ? void 0 : (_tree$nodesRef$curren2 = _tree$nodesRef$curren.context) == null ? void 0 : _tree$nodesRef$curren2.elements.floating;\n if (parentFloating && !contains(parentFloating, activeElement$1(getDocument(parentFloating)))) {\n parentFloating.focus({\n preventScroll: true\n });\n }\n }\n }, [enabled, open, tree, parentId]);\n index(() => {\n keyRef.current = null;\n previousOnNavigateRef.current = onNavigate;\n previousOpenRef.current = open;\n });\n const hasActiveIndex = activeIndex != null;\n const item = React.useMemo(() => {\n function syncCurrentTarget(currentTarget) {\n if (!open) return;\n const index = listRef.current.indexOf(currentTarget);\n if (index !== -1) {\n onNavigate(index);\n }\n }\n const props = {\n onFocus(_ref2) {\n let {\n currentTarget\n } = _ref2;\n syncCurrentTarget(currentTarget);\n },\n onClick: _ref3 => {\n let {\n currentTarget\n } = _ref3;\n return currentTarget.focus({\n preventScroll: true\n });\n },\n // Safari\n ...(focusItemOnHover && {\n onMouseMove(_ref4) {\n let {\n currentTarget\n } = _ref4;\n syncCurrentTarget(currentTarget);\n },\n onPointerLeave() {\n if (!isPointerModalityRef.current) {\n return;\n }\n indexRef.current = -1;\n focusItem(listRef, indexRef);\n\n // Virtual cursor with VoiceOver on iOS needs this to be flushed\n // synchronously or there is a glitch that prevents nested\n // submenus from being accessible.\n flushSync(() => onNavigate(null));\n if (!virtual) {\n var _refs$floating$curren;\n // This also needs to be sync to prevent fast mouse movements\n // from leaving behind a stale active item when landing on a\n // disabled button item.\n (_refs$floating$curren = refs.floating.current) == null ? void 0 : _refs$floating$curren.focus({\n preventScroll: true\n });\n }\n }\n })\n };\n return props;\n }, [open, refs, focusItem, focusItemOnHover, listRef, onNavigate, virtual]);\n return React.useMemo(() => {\n if (!enabled) {\n return {};\n }\n const disabledIndices = disabledIndicesRef.current;\n function onKeyDown(event) {\n isPointerModalityRef.current = false;\n forceSyncFocus.current = true;\n\n // If the floating element is animating out, ignore navigation. Otherwise,\n // the `activeIndex` gets set to 0 despite not being open so the next time\n // the user ArrowDowns, the first item won't be focused.\n if (!latestOpenRef.current && event.currentTarget === refs.floating.current) {\n return;\n }\n if (nested && isCrossOrientationCloseKey(event.key, orientation, rtl)) {\n stopEvent(event);\n onOpenChange(false);\n if (isHTMLElement(domReference)) {\n domReference.focus();\n }\n return;\n }\n const currentIndex = indexRef.current;\n const minIndex = getMinIndex(listRef, disabledIndices);\n const maxIndex = getMaxIndex(listRef, disabledIndices);\n if (event.key === 'Home') {\n indexRef.current = minIndex;\n onNavigate(indexRef.current);\n }\n if (event.key === 'End') {\n indexRef.current = maxIndex;\n onNavigate(indexRef.current);\n }\n\n // Grid navigation.\n if (cols > 1) {\n const prevIndex = indexRef.current;\n if (event.key === ARROW_UP) {\n stopEvent(event);\n if (prevIndex === -1) {\n indexRef.current = maxIndex;\n } else {\n indexRef.current = findNonDisabledIndex(listRef, {\n startingIndex: prevIndex,\n amount: cols,\n decrement: true,\n disabledIndices\n });\n if (loop && (prevIndex - cols < minIndex || indexRef.current < 0)) {\n const col = prevIndex % cols;\n const maxCol = maxIndex % cols;\n const offset = maxIndex - (maxCol - col);\n if (maxCol === col) {\n indexRef.current = maxIndex;\n } else {\n indexRef.current = maxCol > col ? offset : offset - cols;\n }\n }\n }\n if (isIndexOutOfBounds(listRef, indexRef.current)) {\n indexRef.current = prevIndex;\n }\n onNavigate(indexRef.current);\n }\n if (event.key === ARROW_DOWN) {\n stopEvent(event);\n if (prevIndex === -1) {\n indexRef.current = minIndex;\n } else {\n indexRef.current = findNonDisabledIndex(listRef, {\n startingIndex: prevIndex,\n amount: cols,\n disabledIndices\n });\n if (loop && prevIndex + cols > maxIndex) {\n indexRef.current = findNonDisabledIndex(listRef, {\n startingIndex: prevIndex % cols - cols,\n amount: cols,\n disabledIndices\n });\n }\n }\n if (isIndexOutOfBounds(listRef, indexRef.current)) {\n indexRef.current = prevIndex;\n }\n onNavigate(indexRef.current);\n }\n\n // Remains on the same row/column.\n if (orientation === 'both') {\n const prevRow = Math.floor(prevIndex / cols);\n if (event.key === ARROW_RIGHT) {\n stopEvent(event);\n if (prevIndex % cols !== cols - 1) {\n indexRef.current = findNonDisabledIndex(listRef, {\n startingIndex: prevIndex,\n disabledIndices\n });\n if (loop && isDifferentRow(indexRef.current, cols, prevRow)) {\n indexRef.current = findNonDisabledIndex(listRef, {\n startingIndex: prevIndex - prevIndex % cols - 1,\n disabledIndices\n });\n }\n } else if (loop) {\n indexRef.current = findNonDisabledIndex(listRef, {\n startingIndex: prevIndex - prevIndex % cols - 1,\n disabledIndices\n });\n }\n if (isDifferentRow(indexRef.current, cols, prevRow)) {\n indexRef.current = prevIndex;\n }\n }\n if (event.key === ARROW_LEFT) {\n stopEvent(event);\n if (prevIndex % cols !== 0) {\n indexRef.current = findNonDisabledIndex(listRef, {\n startingIndex: prevIndex,\n disabledIndices,\n decrement: true\n });\n if (loop && isDifferentRow(indexRef.current, cols, prevRow)) {\n indexRef.current = findNonDisabledIndex(listRef, {\n startingIndex: prevIndex + (cols - prevIndex % cols),\n decrement: true,\n disabledIndices\n });\n }\n } else if (loop) {\n indexRef.current = findNonDisabledIndex(listRef, {\n startingIndex: prevIndex + (cols - prevIndex % cols),\n decrement: true,\n disabledIndices\n });\n }\n if (isDifferentRow(indexRef.current, cols, prevRow)) {\n indexRef.current = prevIndex;\n }\n }\n const lastRow = Math.floor(maxIndex / cols) === prevRow;\n if (isIndexOutOfBounds(listRef, indexRef.current)) {\n if (loop && lastRow) {\n indexRef.current = event.key === ARROW_LEFT ? maxIndex : findNonDisabledIndex(listRef, {\n startingIndex: prevIndex - prevIndex % cols - 1,\n disabledIndices\n });\n } else {\n indexRef.current = prevIndex;\n }\n }\n onNavigate(indexRef.current);\n return;\n }\n }\n if (isMainOrientationKey(event.key, orientation)) {\n stopEvent(event);\n\n // Reset the index if no item is focused.\n if (open && !virtual && activeElement$1(event.currentTarget.ownerDocument) === event.currentTarget) {\n indexRef.current = isMainOrientationToEndKey(event.key, orientation, rtl) ? minIndex : maxIndex;\n onNavigate(indexRef.current);\n return;\n }\n if (isMainOrientationToEndKey(event.key, orientation, rtl)) {\n if (loop) {\n indexRef.current = currentIndex >= maxIndex ? allowEscape && currentIndex !== listRef.current.length ? -1 : minIndex : findNonDisabledIndex(listRef, {\n startingIndex: currentIndex,\n disabledIndices\n });\n } else {\n indexRef.current = Math.min(maxIndex, findNonDisabledIndex(listRef, {\n startingIndex: currentIndex,\n disabledIndices\n }));\n }\n } else {\n if (loop) {\n indexRef.current = currentIndex <= minIndex ? allowEscape && currentIndex !== -1 ? listRef.current.length : maxIndex : findNonDisabledIndex(listRef, {\n startingIndex: currentIndex,\n decrement: true,\n disabledIndices\n });\n } else {\n indexRef.current = Math.max(minIndex, findNonDisabledIndex(listRef, {\n startingIndex: currentIndex,\n decrement: true,\n disabledIndices\n }));\n }\n }\n if (isIndexOutOfBounds(listRef, indexRef.current)) {\n onNavigate(null);\n } else {\n onNavigate(indexRef.current);\n }\n }\n }\n function checkVirtualMouse(event) {\n if (focusItemOnOpen === 'auto' && isVirtualClick(event.nativeEvent)) {\n focusItemOnOpenRef.current = true;\n }\n }\n function checkVirtualPointer(event) {\n // `pointerdown` fires first, reset the state then perform the checks.\n focusItemOnOpenRef.current = focusItemOnOpen;\n if (focusItemOnOpen === 'auto' && isVirtualPointerEvent(event.nativeEvent)) {\n focusItemOnOpenRef.current = true;\n }\n }\n const ariaActiveDescendantProp = virtual && open && hasActiveIndex && {\n 'aria-activedescendant': activeId\n };\n return {\n reference: {\n ...ariaActiveDescendantProp,\n onKeyDown(event) {\n isPointerModalityRef.current = false;\n const isArrowKey = event.key.indexOf('Arrow') === 0;\n if (virtual && open) {\n return onKeyDown(event);\n }\n\n // If a floating element should not open on arrow key down, avoid\n // setting `activeIndex` while it's closed.\n if (!open && !openOnArrowKeyDown && isArrowKey) {\n return;\n }\n const isNavigationKey = isArrowKey || event.key === 'Enter' || event.key === ' ' || event.key === '';\n if (isNavigationKey) {\n keyRef.current = event.key;\n }\n if (nested) {\n if (isCrossOrientationOpenKey(event.key, orientation, rtl)) {\n stopEvent(event);\n if (open) {\n indexRef.current = getMinIndex(listRef, disabledIndices);\n onNavigate(indexRef.current);\n } else {\n onOpenChange(true);\n }\n }\n return;\n }\n if (isMainOrientationKey(event.key, orientation)) {\n if (selectedIndex != null) {\n indexRef.current = selectedIndex;\n }\n stopEvent(event);\n if (!open && openOnArrowKeyDown) {\n onOpenChange(true);\n } else {\n onKeyDown(event);\n }\n if (open) {\n onNavigate(indexRef.current);\n }\n }\n },\n onFocus() {\n if (open) {\n onNavigate(null);\n }\n },\n onPointerDown: checkVirtualPointer,\n onMouseDown: checkVirtualMouse,\n onClick: checkVirtualMouse\n },\n floating: {\n 'aria-orientation': orientation === 'both' ? undefined : orientation,\n ...ariaActiveDescendantProp,\n onKeyDown,\n onPointerMove() {\n isPointerModalityRef.current = true;\n }\n },\n item\n };\n }, [domReference, refs, activeId, disabledIndicesRef, latestOpenRef, listRef, enabled, orientation, rtl, virtual, open, hasActiveIndex, nested, selectedIndex, openOnArrowKeyDown, allowEscape, cols, loop, focusItemOnOpen, onNavigate, onOpenChange, item]);\n};\n\n/**\n * Merges an array of refs into a single memoized callback ref or `null`.\n * @see https://floating-ui.com/docs/useMergeRefs\n */\nfunction useMergeRefs(refs) {\n return React.useMemo(() => {\n if (refs.every(ref => ref == null)) {\n return null;\n }\n return value => {\n refs.forEach(ref => {\n if (typeof ref === 'function') {\n ref(value);\n } else if (ref != null) {\n ref.current = value;\n }\n });\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, refs);\n}\n\n/**\n * Adds base screen reader props to the reference and floating elements for a\n * given floating element `role`.\n * @see https://floating-ui.com/docs/useRole\n */\nconst useRole = function (_ref, _temp) {\n let {\n open\n } = _ref;\n let {\n enabled = true,\n role = 'dialog'\n } = _temp === void 0 ? {} : _temp;\n const rootId = useId();\n const referenceId = useId();\n return React.useMemo(() => {\n const floatingProps = {\n id: rootId,\n role\n };\n if (!enabled) {\n return {};\n }\n if (role === 'tooltip') {\n return {\n reference: {\n 'aria-describedby': open ? rootId : undefined\n },\n floating: floatingProps\n };\n }\n return {\n reference: {\n 'aria-expanded': open ? 'true' : 'false',\n 'aria-haspopup': role === 'alertdialog' ? 'dialog' : role,\n 'aria-controls': open ? rootId : undefined,\n ...(role === 'listbox' && {\n role: 'combobox'\n }),\n ...(role === 'menu' && {\n id: referenceId\n })\n },\n floating: {\n ...floatingProps,\n ...(role === 'menu' && {\n 'aria-labelledby': referenceId\n })\n }\n };\n }, [enabled, role, open, rootId, referenceId]);\n};\n\n// Converts a JS style key like `backgroundColor` to a CSS transition-property\n// like `background-color`.\nconst camelCaseToKebabCase = str => str.replace(/[A-Z]+(?![a-z])|[A-Z]/g, ($, ofs) => (ofs ? '-' : '') + $.toLowerCase());\nfunction useDelayUnmount(open, durationMs) {\n const [isMounted, setIsMounted] = React.useState(open);\n if (open && !isMounted) {\n setIsMounted(true);\n }\n React.useEffect(() => {\n if (!open) {\n const timeout = setTimeout(() => setIsMounted(false), durationMs);\n return () => clearTimeout(timeout);\n }\n }, [open, durationMs]);\n return isMounted;\n}\n/**\n * Provides a status string to apply CSS transitions to a floating element,\n * correctly handling placement-aware transitions.\n * @see https://floating-ui.com/docs/useTransition#usetransitionstatus\n */\nfunction useTransitionStatus(_ref, _temp) {\n let {\n open,\n elements: {\n floating\n }\n } = _ref;\n let {\n duration = 250\n } = _temp === void 0 ? {} : _temp;\n const isNumberDuration = typeof duration === 'number';\n const closeDuration = (isNumberDuration ? duration : duration.close) || 0;\n const [initiated, setInitiated] = React.useState(false);\n const [status, setStatus] = React.useState('unmounted');\n const isMounted = useDelayUnmount(open, closeDuration);\n\n // `initiated` check prevents this `setState` call from breaking\n // <FloatingPortal />. This call is necessary to ensure subsequent opens\n // after the initial one allows the correct side animation to play when the\n // placement has changed.\n index(() => {\n if (initiated && !isMounted) {\n setStatus('unmounted');\n }\n }, [initiated, isMounted]);\n index(() => {\n if (!floating) return;\n if (open) {\n setStatus('initial');\n const frame = requestAnimationFrame(() => {\n setStatus('open');\n });\n return () => {\n cancelAnimationFrame(frame);\n };\n } else {\n setInitiated(true);\n setStatus('close');\n }\n }, [open, floating]);\n return {\n isMounted,\n status\n };\n}\n/**\n * Provides styles to apply CSS transitions to a floating element, correctly\n * handling placement-aware transitions. Wrapper around `useTransitionStatus`.\n * @see https://floating-ui.com/docs/useTransition#usetransitionstyles\n */\nfunction useTransitionStyles(context, _temp2) {\n let {\n initial: unstable_initial = {\n opacity: 0\n },\n open: unstable_open,\n close: unstable_close,\n common: unstable_common,\n duration = 250\n } = _temp2 === void 0 ? {} : _temp2;\n const placement = context.placement;\n const side = placement.split('-')[0];\n const [styles, setStyles] = React.useState({});\n const {\n isMounted,\n status\n } = useTransitionStatus(context, {\n duration\n });\n const initialRef = useLatestRef(unstable_initial);\n const openRef = useLatestRef(unstable_open);\n const closeRef = useLatestRef(unstable_close);\n const commonRef = useLatestRef(unstable_common);\n const isNumberDuration = typeof duration === 'number';\n const openDuration = (isNumberDuration ? duration : duration.open) || 0;\n const closeDuration = (isNumberDuration ? duration : duration.close) || 0;\n index(() => {\n const fnArgs = {\n side,\n placement\n };\n const initial = initialRef.current;\n const close = closeRef.current;\n const open = openRef.current;\n const common = commonRef.current;\n const initialStyles = typeof initial === 'function' ? initial(fnArgs) : initial;\n const closeStyles = typeof close === 'function' ? close(fnArgs) : close;\n const commonStyles = typeof common === 'function' ? common(fnArgs) : common;\n const openStyles = (typeof open === 'function' ? open(fnArgs) : open) || Object.keys(initialStyles).reduce((acc, key) => {\n acc[key] = '';\n return acc;\n }, {});\n if (status === 'initial' || status === 'unmounted') {\n setStyles(styles => ({\n transitionProperty: styles.transitionProperty,\n ...commonStyles,\n ...initialStyles\n }));\n }\n if (status === 'open') {\n setStyles({\n transitionProperty: Object.keys(openStyles).map(camelCaseToKebabCase).join(','),\n transitionDuration: openDuration + \"ms\",\n ...commonStyles,\n ...openStyles\n });\n }\n if (status === 'close') {\n const styles = closeStyles || initialStyles;\n setStyles({\n transitionProperty: Object.keys(styles).map(camelCaseToKebabCase).join(','),\n transitionDuration: closeDuration + \"ms\",\n ...commonStyles,\n ...styles\n });\n }\n }, [side, placement, closeDuration, closeRef, initialRef, openRef, commonRef, openDuration, status]);\n return {\n isMounted,\n styles\n };\n}\n\n/**\n * Provides a matching callback that can be used to focus an item as the user\n * types, often used in tandem with `useListNavigation()`.\n * @see https://floating-ui.com/docs/useTypeahead\n */\nconst useTypeahead = function (_ref, _temp) {\n var _ref2;\n let {\n open,\n dataRef,\n refs\n } = _ref;\n let {\n listRef,\n activeIndex,\n onMatch: unstable_onMatch = () => {},\n enabled = true,\n findMatch = null,\n resetMs = 1000,\n ignoreKeys = [],\n selectedIndex = null\n } = _temp === void 0 ? {\n listRef: {\n current: []\n },\n activeIndex: null\n } : _temp;\n const timeoutIdRef = React.useRef();\n const stringRef = React.useRef('');\n const prevIndexRef = React.useRef((_ref2 = selectedIndex != null ? selectedIndex : activeIndex) != null ? _ref2 : -1);\n const matchIndexRef = React.useRef(null);\n const onMatch = useEvent(unstable_onMatch);\n const findMatchRef = useLatestRef(findMatch);\n const ignoreKeysRef = useLatestRef(ignoreKeys);\n index(() => {\n if (open) {\n clearTimeout(timeoutIdRef.current);\n matchIndexRef.current = null;\n stringRef.current = '';\n }\n }, [open]);\n index(() => {\n // Sync arrow key navigation but not typeahead navigation.\n if (open && stringRef.current === '') {\n var _ref3;\n prevIndexRef.current = (_ref3 = selectedIndex != null ? selectedIndex : activeIndex) != null ? _ref3 : -1;\n }\n }, [open, selectedIndex, activeIndex]);\n return React.useMemo(() => {\n if (!enabled) {\n return {};\n }\n function onKeyDown(event) {\n var _refs$floating$curren;\n // Correctly scope nested non-portalled floating elements. Since the nested\n // floating element is inside of the another, we find the closest role\n // that indicates the floating element scope.\n const target = getTarget(event.nativeEvent);\n if (isElement(target) && (activeElement$1(getDocument(target)) !== event.currentTarget ? (_refs$floating$curren = refs.floating.current) != null && _refs$floating$curren.contains(target) ? target.closest('[role=\"dialog\"],[role=\"menu\"],[role=\"listbox\"],[role=\"tree\"],[role=\"grid\"]') !== event.currentTarget : false : !event.currentTarget.contains(target))) {\n return;\n }\n if (stringRef.current.length > 0 && stringRef.current[0] !== ' ') {\n dataRef.current.typing = true;\n if (event.key === ' ') {\n stopEvent(event);\n }\n }\n const listContent = listRef.current;\n if (listContent == null || ignoreKeysRef.current.includes(event.key) ||\n // Character key.\n event.key.length !== 1 ||\n // Modifier key.\n event.ctrlKey || event.metaKey || event.altKey) {\n return;\n }\n\n // Bail out if the list contains a word like \"llama\" or \"aaron\". TODO:\n // allow it in this case, too.\n const allowRapidSuccessionOfFirstLetter = listContent.every(text => {\n var _text$, _text$2;\n return text ? ((_text$ = text[0]) == null ? void 0 : _text$.toLocaleLowerCase()) !== ((_text$2 = text[1]) == null ? void 0 : _text$2.toLocaleLowerCase()) : true;\n });\n\n // Allows the user to cycle through items that start with the same letter\n // in rapid succession.\n if (allowRapidSuccessionOfFirstLetter && stringRef.current === event.key) {\n stringRef.current = '';\n prevIndexRef.current = matchIndexRef.current;\n }\n stringRef.current += event.key;\n clearTimeout(timeoutIdRef.current);\n timeoutIdRef.current = setTimeout(() => {\n stringRef.current = '';\n prevIndexRef.current = matchIndexRef.current;\n dataRef.current.typing = false;\n }, resetMs);\n const prevIndex = prevIndexRef.current;\n const orderedList = [...listContent.slice((prevIndex || 0) + 1), ...listContent.slice(0, (prevIndex || 0) + 1)];\n const str = findMatchRef.current ? findMatchRef.current(orderedList, stringRef.current) : orderedList.find(text => (text == null ? void 0 : text.toLocaleLowerCase().indexOf(stringRef.current.toLocaleLowerCase())) === 0);\n const index = str ? listContent.indexOf(str) : -1;\n if (index !== -1) {\n onMatch(index);\n matchIndexRef.current = index;\n }\n }\n return {\n reference: {\n onKeyDown\n },\n floating: {\n onKeyDown\n }\n };\n }, [enabled, dataRef, listRef, resetMs, ignoreKeysRef, findMatchRef, onMatch, refs]);\n};\n\nfunction getArgsWithCustomFloatingHeight(state, height) {\n return {\n ...state,\n rects: {\n ...state.rects,\n floating: {\n ...state.rects.floating,\n height\n }\n }\n };\n}\n/**\n * Positions the floating element such that an inner element inside\n * of it is anchored to the reference element.\n * @see https://floating-ui.com/docs/inner\n */\nconst inner = props => ({\n name: 'inner',\n options: props,\n async fn(state) {\n const {\n listRef,\n overflowRef,\n onFallbackChange,\n offset: innerOffset = 0,\n index = 0,\n minItemsVisible = 4,\n referenceOverflowThreshold = 0,\n scrollRef,\n ...detectOverflowOptions\n } = props;\n const {\n rects,\n elements: {\n floating\n }\n } = state;\n const item = listRef.current[index];\n if (process.env.NODE_ENV !== \"production\") {\n if (!state.placement.startsWith('bottom')) {\n console.warn(['Floating UI: `placement` side must be \"bottom\" when using the', '`inner` middleware.'].join(' '));\n }\n }\n if (!item) {\n return {};\n }\n const nextArgs = {\n ...state,\n ...(await offset(-item.offsetTop - rects.reference.height / 2 - item.offsetHeight / 2 - innerOffset).fn(state))\n };\n const el = (scrollRef == null ? void 0 : scrollRef.current) || floating;\n const overflow = await detectOverflow(getArgsWithCustomFloatingHeight(nextArgs, el.scrollHeight), detectOverflowOptions);\n const refOverflow = await detectOverflow(nextArgs, {\n ...detectOverflowOptions,\n elementContext: 'reference'\n });\n const diffY = Math.max(0, overflow.top);\n const nextY = nextArgs.y + diffY;\n const maxHeight = Math.max(0, el.scrollHeight - diffY - Math.max(0, overflow.bottom));\n el.style.maxHeight = maxHeight + \"px\";\n el.scrollTop = diffY;\n\n // There is not enough space, fallback to standard anchored positioning\n if (onFallbackChange) {\n if (el.offsetHeight < item.offsetHeight * Math.min(minItemsVisible, listRef.current.length - 1) - 1 || refOverflow.top >= -referenceOverflowThreshold || refOverflow.bottom >= -referenceOverflowThreshold) {\n flushSync(() => onFallbackChange(true));\n } else {\n flushSync(() => onFallbackChange(false));\n }\n }\n if (overflowRef) {\n overflowRef.current = await detectOverflow(getArgsWithCustomFloatingHeight({\n ...nextArgs,\n y: nextY\n }, el.offsetHeight), detectOverflowOptions);\n }\n return {\n y: nextY\n };\n }\n});\n/**\n * Changes the `inner` middleware's `offset` upon a `wheel` event to\n * expand the floating element's height, revealing more list items.\n * @see https://floating-ui.com/docs/inner\n */\nconst useInnerOffset = (_ref, _ref2) => {\n let {\n open,\n elements\n } = _ref;\n let {\n enabled = true,\n overflowRef,\n scrollRef,\n onChange: unstable_onChange\n } = _ref2;\n const onChange = useEvent(unstable_onChange);\n const controlledScrollingRef = React.useRef(false);\n const prevScrollTopRef = React.useRef(null);\n const initialOverflowRef = React.useRef(null);\n React.useEffect(() => {\n if (!enabled) {\n return;\n }\n function onWheel(e) {\n if (e.ctrlKey || !el || overflowRef.current == null) {\n return;\n }\n const dY = e.deltaY;\n const isAtTop = overflowRef.current.top >= -0.5;\n const isAtBottom = overflowRef.current.bottom >= -0.5;\n const remainingScroll = el.scrollHeight - el.clientHeight;\n const sign = dY < 0 ? -1 : 1;\n const method = dY < 0 ? 'max' : 'min';\n if (el.scrollHeight <= el.clientHeight) {\n return;\n }\n if (!isAtTop && dY > 0 || !isAtBottom && dY < 0) {\n e.preventDefault();\n flushSync(() => {\n onChange(d => d + Math[method](dY, remainingScroll * sign));\n });\n } else if (/firefox/i.test(getUserAgent())) {\n // Needed to propagate scrolling during momentum scrolling phase once\n // it gets limited by the boundary. UX improvement, not critical.\n el.scrollTop += dY;\n }\n }\n const el = (scrollRef == null ? void 0 : scrollRef.current) || elements.floating;\n if (open && el) {\n el.addEventListener('wheel', onWheel);\n\n // Wait for the position to be ready.\n requestAnimationFrame(() => {\n prevScrollTopRef.current = el.scrollTop;\n if (overflowRef.current != null) {\n initialOverflowRef.current = {\n ...overflowRef.current\n };\n }\n });\n return () => {\n prevScrollTopRef.current = null;\n initialOverflowRef.current = null;\n el.removeEventListener('wheel', onWheel);\n };\n }\n }, [enabled, open, elements.floating, overflowRef, scrollRef, onChange]);\n return React.useMemo(() => {\n if (!enabled) {\n return {};\n }\n return {\n floating: {\n onKeyDown() {\n controlledScrollingRef.current = true;\n },\n onWheel() {\n controlledScrollingRef.current = false;\n },\n onPointerMove() {\n controlledScrollingRef.current = false;\n },\n onScroll() {\n const el = (scrollRef == null ? void 0 : scrollRef.current) || elements.floating;\n if (!overflowRef.current || !el || !controlledScrollingRef.current) {\n return;\n }\n if (prevScrollTopRef.current !== null) {\n const scrollDiff = el.scrollTop - prevScrollTopRef.current;\n if (overflowRef.current.bottom < -0.5 && scrollDiff < -1 || overflowRef.current.top < -0.5 && scrollDiff > 1) {\n flushSync(() => onChange(d => d + scrollDiff));\n }\n }\n\n // [Firefox] Wait for the height change to have been applied.\n requestAnimationFrame(() => {\n prevScrollTopRef.current = el.scrollTop;\n });\n }\n }\n };\n }, [enabled, overflowRef, elements.floating, scrollRef, onChange]);\n};\n\nfunction isPointInPolygon(point, polygon) {\n const [x, y] = point;\n let isInside = false;\n const length = polygon.length;\n for (let i = 0, j = length - 1; i < length; j = i++) {\n const [xi, yi] = polygon[i] || [0, 0];\n const [xj, yj] = polygon[j] || [0, 0];\n const intersect = yi >= y !== yj >= y && x <= (xj - xi) * (y - yi) / (yj - yi) + xi;\n if (intersect) {\n isInside = !isInside;\n }\n }\n return isInside;\n}\nfunction isInside(point, rect) {\n return point[0] >= rect.x && point[0] <= rect.x + rect.width && point[1] >= rect.y && point[1] <= rect.y + rect.height;\n}\nfunction safePolygon(_temp) {\n let {\n restMs = 0,\n buffer = 0.5,\n blockPointerEvents = false\n } = _temp === void 0 ? {} : _temp;\n let timeoutId;\n let isInsideRect = false;\n let hasLanded = false;\n const fn = _ref => {\n let {\n x,\n y,\n placement,\n elements,\n onClose,\n nodeId,\n tree\n } = _ref;\n return function onMouseMove(event) {\n function close() {\n clearTimeout(timeoutId);\n onClose();\n }\n clearTimeout(timeoutId);\n if (!elements.domReference || !elements.floating || placement == null || x == null || y == null) {\n return;\n }\n const {\n clientX,\n clientY\n } = event;\n const clientPoint = [clientX, clientY];\n const target = getTarget(event);\n const isLeave = event.type === 'mouseleave';\n const isOverFloatingEl = contains(elements.floating, target);\n const isOverReferenceEl = contains(elements.domReference, target);\n const refRect = elements.domReference.getBoundingClientRect();\n const rect = elements.floating.getBoundingClientRect();\n const side = placement.split('-')[0];\n const cursorLeaveFromRight = x > rect.right - rect.width / 2;\n const cursorLeaveFromBottom = y > rect.bottom - rect.height / 2;\n const isOverReferenceRect = isInside(clientPoint, refRect);\n if (isOverFloatingEl) {\n hasLanded = true;\n if (!isLeave) {\n return;\n }\n }\n if (isOverReferenceEl) {\n hasLanded = false;\n }\n if (isOverReferenceEl && !isLeave) {\n hasLanded = true;\n return;\n }\n\n // Prevent overlapping floating element from being stuck in an open-close\n // loop: https://github.com/floating-ui/floating-ui/issues/1910\n if (isLeave && isElement(event.relatedTarget) && contains(elements.floating, event.relatedTarget)) {\n return;\n }\n\n // If any nested child is open, abort.\n if (tree && getChildren(tree.nodesRef.current, nodeId).some(_ref2 => {\n let {\n context\n } = _ref2;\n return context == null ? void 0 : context.open;\n })) {\n return;\n }\n\n // If the pointer is leaving from the opposite side, the \"buffer\" logic\n // creates a point where the floating element remains open, but should be\n // ignored.\n // A constant of 1 handles floating point rounding errors.\n if (side === 'top' && y >= refRect.bottom - 1 || side === 'bottom' && y <= refRect.top + 1 || side === 'left' && x >= refRect.right - 1 || side === 'right' && x <= refRect.left + 1) {\n return close();\n }\n\n // Ignore when the cursor is within the rectangular trough between the\n // two elements. Since the triangle is created from the cursor point,\n // which can start beyond the ref element's edge, traversing back and\n // forth from the ref to the floating element can cause it to close. This\n // ensures it always remains open in that case.\n let rectPoly = [];\n switch (side) {\n case 'top':\n rectPoly = [[rect.left, refRect.top + 1], [rect.left, rect.bottom - 1], [rect.right, rect.bottom - 1], [rect.right, refRect.top + 1]];\n isInsideRect = clientX >= rect.left && clientX <= rect.right && clientY >= rect.top && clientY <= refRect.top + 1;\n break;\n case 'bottom':\n rectPoly = [[rect.left, rect.top + 1], [rect.left, refRect.bottom - 1], [rect.right, refRect.bottom - 1], [rect.right, rect.top + 1]];\n isInsideRect = clientX >= rect.left && clientX <= rect.right && clientY >= refRect.bottom - 1 && clientY <= rect.bottom;\n break;\n case 'left':\n rectPoly = [[rect.right - 1, rect.bottom], [rect.right - 1, rect.top], [refRect.left + 1, rect.top], [refRect.left + 1, rect.bottom]];\n isInsideRect = clientX >= rect.left && clientX <= refRect.left + 1 && clientY >= rect.top && clientY <= rect.bottom;\n break;\n case 'right':\n rectPoly = [[refRect.right - 1, rect.bottom], [refRect.right - 1, rect.top], [rect.left + 1, rect.top], [rect.left + 1, rect.bottom]];\n isInsideRect = clientX >= refRect.right - 1 && clientX <= rect.right && clientY >= rect.top && clientY <= rect.bottom;\n break;\n }\n function getPolygon(_ref3) {\n let [x, y] = _ref3;\n const isFloatingWider = rect.width > refRect.width;\n const isFloatingTaller = rect.height > refRect.height;\n switch (side) {\n case 'top':\n {\n const cursorPointOne = [isFloatingWider ? x + buffer / 2 : cursorLeaveFromRight ? x + buffer * 4 : x - buffer * 4, y + buffer + 1];\n const cursorPointTwo = [isFloatingWider ? x - buffer / 2 : cursorLeaveFromRight ? x + buffer * 4 : x - buffer * 4, y + buffer + 1];\n const commonPoints = [[rect.left, cursorLeaveFromRight ? rect.bottom - buffer : isFloatingWider ? rect.bottom - buffer : rect.top], [rect.right, cursorLeaveFromRight ? isFloatingWider ? rect.bottom - buffer : rect.top : rect.bottom - buffer]];\n return [cursorPointOne, cursorPointTwo, ...commonPoints];\n }\n case 'bottom':\n {\n const cursorPointOne = [isFloatingWider ? x + buffer / 2 : cursorLeaveFromRight ? x + buffer * 4 : x - buffer * 4, y - buffer];\n const cursorPointTwo = [isFloatingWider ? x - buffer / 2 : cursorLeaveFromRight ? x + buffer * 4 : x - buffer * 4, y - buffer];\n const commonPoints = [[rect.left, cursorLeaveFromRight ? rect.top + buffer : isFloatingWider ? rect.top + buffer : rect.bottom], [rect.right, cursorLeaveFromRight ? isFloatingWider ? rect.top + buffer : rect.bottom : rect.top + buffer]];\n return [cursorPointOne, cursorPointTwo, ...commonPoints];\n }\n case 'left':\n {\n const cursorPointOne = [x + buffer + 1, isFloatingTaller ? y + buffer / 2 : cursorLeaveFromBottom ? y + buffer * 4 : y - buffer * 4];\n const cursorPointTwo = [x + buffer + 1, isFloatingTaller ? y - buffer / 2 : cursorLeaveFromBottom ? y + buffer * 4 : y - buffer * 4];\n const commonPoints = [[cursorLeaveFromBottom ? rect.right - buffer : isFloatingTaller ? rect.right - buffer : rect.left, rect.top], [cursorLeaveFromBottom ? isFloatingTaller ? rect.right - buffer : rect.left : rect.right - buffer, rect.bottom]];\n return [...commonPoints, cursorPointOne, cursorPointTwo];\n }\n case 'right':\n {\n const cursorPointOne = [x - buffer, isFloatingTaller ? y + buffer / 2 : cursorLeaveFromBottom ? y + buffer * 4 : y - buffer * 4];\n const cursorPointTwo = [x - buffer, isFloatingTaller ? y - buffer / 2 : cursorLeaveFromBottom ? y + buffer * 4 : y - buffer * 4];\n const commonPoints = [[cursorLeaveFromBottom ? rect.left + buffer : isFloatingTaller ? rect.left + buffer : rect.right, rect.top], [cursorLeaveFromBottom ? isFloatingTaller ? rect.left + buffer : rect.right : rect.left + buffer, rect.bottom]];\n return [cursorPointOne, cursorPointTwo, ...commonPoints];\n }\n }\n }\n const poly = isInsideRect ? rectPoly : getPolygon([x, y]);\n if (isInsideRect) {\n return;\n } else if (hasLanded && !isOverReferenceRect) {\n return close();\n }\n if (!isPointInPolygon([clientX, clientY], poly)) {\n close();\n } else if (restMs && !hasLanded) {\n timeoutId = setTimeout(close, restMs);\n }\n };\n };\n fn.__options = {\n blockPointerEvents\n };\n return fn;\n}\n\n/**\n * Provides data to position a floating element and context to add interactions.\n * @see https://floating-ui.com/docs/react\n */\nfunction useFloating(options) {\n if (options === void 0) {\n options = {};\n }\n const {\n open = false,\n onOpenChange: unstable_onOpenChange,\n nodeId\n } = options;\n const position = useFloating$1(options);\n const tree = useFloatingTree();\n const domReferenceRef = React.useRef(null);\n const dataRef = React.useRef({});\n const events = React.useState(() => createPubSub())[0];\n const [domReference, setDomReference] = React.useState(null);\n const setPositionReference = React.useCallback(node => {\n const positionReference = isElement(node) ? {\n getBoundingClientRect: () => node.getBoundingClientRect(),\n contextElement: node\n } : node;\n position.refs.setReference(positionReference);\n }, [position.refs]);\n const setReference = React.useCallback(node => {\n if (isElement(node) || node === null) {\n domReferenceRef.current = node;\n setDomReference(node);\n }\n\n // Backwards-compatibility for passing a virtual element to `reference`\n // after it has set the DOM reference.\n if (isElement(position.refs.reference.current) || position.refs.reference.current === null ||\n // Don't allow setting virtual elements using the old technique back to\n // `null` to support `positionReference` + an unstable `reference`\n // callback ref.\n node !== null && !isElement(node)) {\n position.refs.setReference(node);\n }\n }, [position.refs]);\n const refs = React.useMemo(() => ({\n ...position.refs,\n setReference,\n setPositionReference,\n domReference: domReferenceRef\n }), [position.refs, setReference, setPositionReference]);\n const elements = React.useMemo(() => ({\n ...position.elements,\n domReference: domReference\n }), [position.elements, domReference]);\n const onOpenChange = useEvent(unstable_onOpenChange);\n const context = React.useMemo(() => ({\n ...position,\n refs,\n elements,\n dataRef,\n nodeId,\n events,\n open,\n onOpenChange\n }), [position, nodeId, events, open, onOpenChange, refs, elements]);\n index(() => {\n const node = tree == null ? void 0 : tree.nodesRef.current.find(node => node.id === nodeId);\n if (node) {\n node.context = context;\n }\n });\n return React.useMemo(() => ({\n ...position,\n context,\n refs,\n reference: setReference,\n positionReference: setPositionReference\n }), [position, refs, context, setReference, setPositionReference]);\n}\n\nfunction mergeProps(userProps, propsList, elementKey) {\n const map = new Map();\n return {\n ...(elementKey === 'floating' && {\n tabIndex: -1\n }),\n ...userProps,\n ...propsList.map(value => value ? value[elementKey] : null).concat(userProps).reduce((acc, props) => {\n if (!props) {\n return acc;\n }\n Object.entries(props).forEach(_ref => {\n let [key, value] = _ref;\n if (key.indexOf('on') === 0) {\n if (!map.has(key)) {\n map.set(key, []);\n }\n if (typeof value === 'function') {\n var _map$get;\n (_map$get = map.get(key)) == null ? void 0 : _map$get.push(value);\n acc[key] = function () {\n var _map$get2;\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n (_map$get2 = map.get(key)) == null ? void 0 : _map$get2.forEach(fn => fn(...args));\n };\n }\n } else {\n acc[key] = value;\n }\n });\n return acc;\n }, {})\n };\n}\nconst useInteractions = function (propsList) {\n if (propsList === void 0) {\n propsList = [];\n }\n // The dependencies are a dynamic array, so we can't use the linter's\n // suggestion to add it to the deps array.\n const deps = propsList;\n const getReferenceProps = React.useCallback(userProps => mergeProps(userProps, propsList, 'reference'),\n // eslint-disable-next-line react-hooks/exhaustive-deps\n deps);\n const getFloatingProps = React.useCallback(userProps => mergeProps(userProps, propsList, 'floating'),\n // eslint-disable-next-line react-hooks/exhaustive-deps\n deps);\n const getItemProps = React.useCallback(userProps => mergeProps(userProps, propsList, 'item'),\n // Granularly check for `item` changes, because the `getItemProps` getter\n // should be as referentially stable as possible since it may be passed as\n // a prop to many components. All `item` key values must therefore be\n // memoized.\n // eslint-disable-next-line react-hooks/exhaustive-deps\n propsList.map(key => key == null ? void 0 : key.item));\n return React.useMemo(() => ({\n getReferenceProps,\n getFloatingProps,\n getItemProps\n }), [getReferenceProps, getFloatingProps, getItemProps]);\n};\n\nexport { FloatingDelayGroup, FloatingFocusManager, FloatingNode, FloatingOverlay, FloatingPortal, FloatingTree, inner, safePolygon, useClick, useDelayGroup, useDelayGroupContext, useDismiss, useFloating, useFloatingNodeId, useFloatingParentNodeId, useFloatingPortalNode, useFloatingTree, useFocus, useHover, useId, useInnerOffset, useInteractions, useListNavigation, useMergeRefs, useRole, useTransitionStatus, useTransitionStyles, useTypeahead };\n","import React from 'react';\nimport { TooltipState } from './types';\n\nexport const TooltipContext = React.createContext<TooltipState | null>(null);\n","import { ReactNode } from 'react';\nimport { ValueOf } from '@redsift/design-system';\nimport { useTooltip } from './useTooltip';\n\n/**\n * Context props.\n */\nexport type TooltipState = ReturnType<typeof useTooltip> | null;\n\n/**\n * Component variant.\n */\nexport const TooltipPlacement = {\n top: 'top',\n right: 'right',\n bottom: 'bottom',\n left: 'left',\n 'top-start': 'top-start',\n 'top-end': 'top-end',\n 'right-start': 'right-start',\n 'right-end': 'right-end',\n 'bottom-start': 'bottom-start',\n 'bottom-end': 'bottom-end',\n 'left-start': 'left-start',\n 'left-end': 'left-end',\n} as const;\nexport type TooltipPlacement = ValueOf<typeof TooltipPlacement>;\n\n/**\n * Component props.\n */\nexport interface TooltipProps {\n /** Children. Can only be TooltipTrigger and TooltilContent. */\n children: ReactNode;\n /**\n * Default open status.\n * Used for uncontrolled version.\n */\n defaultOpen?: boolean;\n /** Delay time (in ms) for the tooltip to show up. */\n delay?: number;\n /** Default placement of the tooltip. */\n placement?: TooltipPlacement;\n /**\n * Whether the component is opened or not.\n * Used for controlled version.\n */\n isOpen?: boolean;\n /** Method to handle component change. */\n onOpen?: (open: boolean) => void;\n /** Id to the tooltip content. */\n tooltipId?: string;\n}\n\nexport type StyledTooltipProps = TooltipProps;\n","import styled, { css } from 'styled-components';\nimport { baseContainer } from '@redsift/design-system';\nimport { TooltipPlacement } from '../tooltip';\nimport { StyledTooltipContentProps } from './types';\n\n/**\n * Component style.\n */\nexport const StyledTooltipContent = styled.div<StyledTooltipContentProps>`\n ${baseContainer}\n\n align-items: center;\n background-color: var(--redsift-color-neutral-white);\n box-shadow: 0px 2px 4px -1px rgba(0, 0, 0, 0.2);\n color: var(--redsift-color-neutral-black);\n display: flex;\n filter: drop-shadow(0px 4px 5px rgba(0, 0, 0, 0.14))\n drop-shadow(0px 1px 10px rgba(0, 0, 0, 0.12));\n font-family: var(--redsift-typography-tooltip-font-family);\n font-size: var(--redsift-typography-tooltip-font-size);\n font-weight: var(--redsift-typography-tooltip-font-weight);\n line-height: var(--redsift-typography-tooltip-line-height);\n max-width: calc(100vw - 48px);\n padding: 4px 8px;\n z-index: var(--redsift-layout-z-index-tooltip);\n\n .redsift-tooltip-content__arrow {\n position: absolute;\n width: 0;\n height: 0;\n border-color: var(--redsift-color-neutral-white);\n border-style: solid;\n }\n\n ${({ $placement }) => {\n switch ($placement) {\n case TooltipPlacement.left:\n case TooltipPlacement['left-end']:\n case TooltipPlacement['left-start']:\n return css`\n .redsift-tooltip-content__arrow {\n border-width: 6px 0 6px 6px;\n border-top-color: transparent;\n border-right-color: transparent;\n border-bottom-color: transparent;\n }\n `;\n case TooltipPlacement.top:\n case TooltipPlacement['top-end']:\n case TooltipPlacement['top-start']:\n return css`\n .redsift-tooltip-content__arrow {\n border-width: 6px 6px 0;\n border-right-color: transparent;\n border-bottom-color: transparent;\n border-left-color: transparent;\n }\n `;\n case TooltipPlacement.right:\n case TooltipPlacement['right-end']:\n case TooltipPlacement['right-start']:\n return css`\n .redsift-tooltip-content__arrow {\n border-width: 6px 6px 6px 0;\n border-top-color: transparent;\n border-bottom-color: transparent;\n border-left-color: transparent;\n }\n `;\n case TooltipPlacement.bottom:\n case TooltipPlacement['bottom-end']:\n case TooltipPlacement['bottom-start']:\n default:\n return css`\n .redsift-tooltip-content__arrow {\n border-width: 0 6px 6px;\n border-top-color: transparent;\n border-right-color: transparent;\n border-left-color: transparent;\n }\n `;\n }\n }}\n`;\n","import React, { forwardRef } from 'react';\nimport { useMergeRefs, FloatingPortal } from '@floating-ui/react';\n\nimport { Comp } from '@redsift/design-system';\nimport { TooltipContentProps } from './types';\nimport { TooltipPlacement, useTooltipContext } from '../tooltip';\nimport { StyledTooltipContent } from './styles';\nimport classNames from 'classnames';\n\nconst COMPONENT_NAME = 'TooltipContent';\nconst CLASSNAME = 'redsift-tooltip-content';\nconst DEFAULT_PROPS: Partial<TooltipContentProps> = {};\n\n/**\n * The TooltipContent component.\n */\nexport const TooltipContent: Comp<TooltipContentProps, HTMLDivElement> =\n forwardRef((props, ref) => {\n const { children, className, style } = props;\n const {\n getFloatingProps,\n isOpen,\n placement,\n refs,\n strategy,\n x,\n y,\n middlewareData: { arrow: { x: arrowX, y: arrowY } = {} },\n } = useTooltipContext();\n const popoverRef = useMergeRefs([refs.setFloating, ref]);\n\n const { arrowRef } = useTooltipContext();\n\n const staticSide = {\n top: 'bottom',\n right: 'left',\n bottom: 'top',\n left: 'right',\n }[placement.split('-')[0]];\n\n return (\n <FloatingPortal id=\"redsift-app-container\">\n {isOpen && (\n <StyledTooltipContent\n className={classNames(TooltipContent.className, className)}\n ref={popoverRef}\n style={{\n position: strategy,\n top: y ?? 0,\n left: x ?? 0,\n visibility: x == null ? 'hidden' : 'visible',\n ...style,\n }}\n {...getFloatingProps(props)}\n $placement={placement as TooltipPlacement}\n >\n <div\n ref={arrowRef}\n className={`${TooltipContent.className}__arrow`}\n style={{\n left: arrowX != null ? `${arrowX}px` : '',\n top: arrowY != null ? `${arrowY}px` : '',\n [staticSide!]: '-6px',\n }}\n />\n <div className={`${TooltipContent.className}__inner`}>\n {children}\n </div>\n </StyledTooltipContent>\n )}\n </FloatingPortal>\n );\n });\nTooltipContent.className = CLASSNAME;\nTooltipContent.defaultProps = DEFAULT_PROPS;\nTooltipContent.displayName = COMPONENT_NAME;\n","import React, { forwardRef, ReactElement } from 'react';\nimport { useMergeRefs } from '@floating-ui/react';\n\nimport { Comp } from '@redsift/design-system';\nimport { useTooltipContext } from '../tooltip';\nimport { TooltipTriggerProps } from './types';\n\nconst COMPONENT_NAME = 'TooltipTrigger';\nconst CLASSNAME = 'redsift-tooltip-trigger';\nconst DEFAULT_PROPS: Partial<TooltipTriggerProps> = {};\n\n/**\n * The TooltipTrigger component.\n */\nexport const TooltipTrigger: Comp<TooltipTriggerProps, HTMLSpanElement> =\n forwardRef((props, ref) => {\n const { children } = props;\n\n const { getReferenceProps, refs, tooltipId } = useTooltipContext();\n const childrenRef = (children as any).ref;\n const triggerRef = useMergeRefs([refs.setReference, ref, childrenRef]);\n\n if (React.isValidElement(children)) {\n return React.cloneElement(children as ReactElement, {\n ...getReferenceProps({\n ref: triggerRef,\n ...props,\n 'aria-describedby': tooltipId,\n ...children.props,\n }),\n });\n }\n\n return (\n <span ref={triggerRef} {...getReferenceProps(props)}>\n {children}\n </span>\n );\n });\nTooltipTrigger.className = CLASSNAME;\nTooltipTrigger.defaultProps = DEFAULT_PROPS;\nTooltipTrigger.displayName = COMPONENT_NAME;\n","import React, { useCallback, useEffect, useId, useRef, useState } from 'react';\nimport {\n useFloating,\n arrow,\n autoUpdate,\n offset,\n flip,\n shift,\n useHover,\n useFocus,\n useDismiss,\n useRole,\n useInteractions,\n} from '@floating-ui/react';\nimport { TooltipProps } from './types';\n\nexport function useTooltip({\n defaultOpen,\n delay,\n placement,\n isOpen: propsIsOpen,\n onOpen,\n tooltipId: propsTooltipId,\n}: Omit<TooltipProps, 'children'>) {\n const arrowRef = useRef(null);\n const [isOpen, setIsOpen] = useState(propsIsOpen ?? defaultOpen);\n\n const tooltipId = propsTooltipId ?? useId();\n\n useEffect(() => {\n setIsOpen(propsIsOpen ?? defaultOpen);\n }, [propsIsOpen, defaultOpen]);\n\n const handleOpen = useCallback(\n (collapsed: boolean) => {\n if (onOpen) {\n onOpen(collapsed);\n }\n if (propsIsOpen === undefined || propsIsOpen === null) {\n setIsOpen(collapsed);\n }\n },\n [onOpen]\n );\n\n const data = useFloating({\n placement,\n open: isOpen,\n onOpenChange: handleOpen,\n whileElementsMounted: autoUpdate,\n middleware: [\n offset(8),\n flip({\n fallbackAxisSideDirection: 'start',\n }),\n shift({ padding: 8 }),\n arrow({\n element: arrowRef,\n }),\n ],\n });\n\n const context = data.context;\n\n const hover = useHover(context, {\n move: false,\n delay: {\n open: delay,\n close: 0,\n },\n });\n const focus = useFocus(context);\n const dismiss = useDismiss(context);\n const role = useRole(context, { role: 'tooltip' });\n\n const interactions = useInteractions([hover, focus, dismiss, role]);\n\n return React.useMemo(\n () => ({\n isOpen,\n handleOpen,\n ...interactions,\n ...data,\n arrowRef,\n tooltipId,\n }),\n [isOpen, handleOpen, interactions, data, arrowRef, tooltipId]\n );\n}\n","import React from 'react';\nimport { partitionComponents, isComponent } from '@redsift/design-system';\nimport { TooltipContent } from '../tooltip-content';\nimport { TooltipTrigger } from '../tooltip-trigger';\n\nimport { TooltipContext } from './context';\nimport { TooltipPlacement, TooltipProps } from './types';\nimport { useTooltip } from './useTooltip';\n\nconst COMPONENT_NAME = 'Tooltip';\nconst CLASSNAME = 'redsift-tooltip';\nconst DEFAULT_PROPS: Partial<TooltipProps> = {\n delay: 500,\n placement: TooltipPlacement.top,\n};\n\n/**\n * The Tooltip component.\n */\nexport const BaseTooltip: React.FC<TooltipProps> & {\n displayName?: string;\n className?: string;\n} = (props) => {\n const { children, defaultOpen, delay, isOpen, onOpen, placement, tooltipId } =\n props;\n\n const tooltip = useTooltip({\n defaultOpen,\n delay,\n placement,\n isOpen,\n onOpen,\n tooltipId,\n });\n\n const [[trigger], [content]] = partitionComponents(\n React.Children.toArray(children),\n [isComponent('TooltipTrigger'), isComponent('TooltipContent')]\n );\n\n return (\n <TooltipContext.Provider value={tooltip}>\n {trigger}\n {content}\n </TooltipContext.Provider>\n );\n};\nBaseTooltip.className = CLASSNAME;\nBaseTooltip.defaultProps = DEFAULT_PROPS;\nBaseTooltip.displayName = COMPONENT_NAME;\n\nexport const Tooltip = Object.assign(BaseTooltip, {\n Trigger: TooltipTrigger,\n Content: TooltipContent,\n});\n","import React from 'react';\nimport { TooltipContext } from './context';\n\nexport const useTooltipContext = () => {\n const context = React.useContext(TooltipContext);\n\n if (context == null) {\n throw new Error('Tooltip components must be wrapped in <Tooltip />');\n }\n\n return context;\n};\n","import React, {\n forwardRef,\n ReactElement,\n ReactNode,\n RefObject,\n useCallback,\n useEffect,\n useState,\n} from 'react';\nimport classNames from 'classnames';\n\nimport { useLocalizedStringFormatter } from 'react-aria';\nimport intlMessages from './intl';\n\nimport { mdiKeyboardCaps, mdiPageLast } from '@redsift/icons';\nimport { Comp } from '../../types';\nimport { Icon } from '../icon';\nimport { Flexbox } from '../flexbox';\nimport { IconButton } from '../icon-button';\nimport { Shield } from '../shield';\nimport {\n DetailedCardSection,\n DetailedCardSectionProps,\n} from '../detailed-card-section';\nimport { StyledDetailedCard } from './styles';\nimport { DetailedCardProps } from './types';\nimport { partitionComponents, isComponent } from '../../utils';\nimport { DetailedCardCollapsibleSectionItems } from '../detailed-card-collapsible-section-items';\nimport { DetailedCardHeader } from '../detailed-card-header';\nimport { DetailedCardSectionItem } from '../detailed-card-section-item';\nimport { Tooltip } from '@redsift/popovers';\nimport { Skeleton } from '../skeleton';\n\nconst COMPONENT_NAME = 'DetailedCard';\nconst CLASSNAME = 'redsift-detailed-card';\nconst DEFAULT_PROPS: Partial<DetailedCardProps> = {\n isCollapsible: true,\n width: '400px',\n};\n\nconst hasMultipleCollapsibleChildren = (children: ReactNode): boolean => {\n const collapsibleChildren: ReactNode[] = [];\n\n const childrenArray = React.Children.toArray(children);\n for (const child of childrenArray) {\n if (isComponent(DetailedCardSection)(child)) {\n let hasCollapsibleItems = Boolean(\n (child as DetailedCardSectionProps).isCollapsible\n );\n React.Children.forEach(child.props.children, (sectionChild) => {\n if (isComponent(DetailedCardCollapsibleSectionItems)(sectionChild)) {\n hasCollapsibleItems = true;\n }\n });\n\n if (hasCollapsibleItems) {\n collapsibleChildren.push(child);\n }\n }\n }\n\n return collapsibleChildren.length > 1;\n};\n\n/**\n * The DetailedCard component.\n */\nconst BaseDetailedCard: Comp<DetailedCardProps, HTMLDivElement> = forwardRef(\n (props, ref) => {\n const {\n areAllCollapsed: propsAreAllCollapsed,\n children,\n className,\n color,\n defaultAllCollapsed,\n icon,\n isCollapsible: propsIsCollapsible,\n isLoading,\n onCollapseAll,\n shield,\n ...forwardedProps\n } = props;\n\n const stringFormatter = useLocalizedStringFormatter(intlMessages);\n\n const isCollapsible =\n propsIsCollapsible && hasMultipleCollapsibleChildren(children);\n\n const [allCollapsed, setAllCollapsed] = useState({\n state: propsAreAllCollapsed ?? defaultAllCollapsed,\n });\n\n useEffect(() => {\n setAllCollapsed({\n state: propsAreAllCollapsed ?? defaultAllCollapsed,\n });\n }, [propsAreAllCollapsed, defaultAllCollapsed]);\n\n const handleCollapse = useCallback(\n (allCollapsed: boolean) => {\n if (onCollapseAll) {\n onCollapseAll(allCollapsed);\n }\n if (\n propsAreAllCollapsed === undefined ||\n propsAreAllCollapsed === null\n ) {\n setAllCollapsed({\n state: allCollapsed,\n });\n }\n },\n [onCollapseAll]\n );\n\n const [[header], content] = partitionComponents(\n React.Children.toArray(children),\n [isComponent('DetailedCardHeader')]\n );\n\n return (\n <StyledDetailedCard\n {...forwardedProps}\n className={classNames(BaseDetailedCard.className, className)}\n ref={ref as RefObject<HTMLDivElement>}\n $color={color}\n >\n {color ? (\n isLoading ? (\n <Skeleton\n height=\"80px\"\n width=\"calc(100% + 32px)\"\n margin=\"-16px -16px 16px -16px\"\n />\n ) : (\n <Flexbox\n className={`${BaseDetailedCard.className}__banner`}\n alignItems=\"center\"\n height=\"80px\"\n justifyContent=\"center\"\n margin=\"-16px -16px 16px -16px\"\n width=\"calc(100% + 32px)\"\n >\n {shield ? (\n <Shield\n variant={shield}\n isOutlined\n isReversed\n svgProps={{ width: '40px', height: '40px' }}\n style={{ width: '40px', height: '40px' }}\n />\n ) : icon ? (\n <Icon icon={icon} color=\"white\" size=\"xlarge\" />\n ) : null}\n </Flexbox>\n )\n ) : null}\n {header ? (\n <div className={`${BaseDetailedCard.className}__header`}>\n {header}\n </div>\n ) : null}\n {isCollapsible ? (\n <Flexbox\n justifyContent=\"flex-end\"\n className={`${BaseDetailedCard.className}__collapse-buttons`}\n >\n <Tooltip>\n <Tooltip.Trigger>\n <IconButton\n aria-label={stringFormatter.format('collapse-all')}\n aria-describedby={undefined}\n icon={mdiPageLast}\n onPress={() => handleCollapse(true)}\n style={{ transform: 'rotate(-90deg)' }}\n color=\"question\"\n />\n </Tooltip.Trigger>\n <Tooltip.Content>\n {stringFormatter.format('collapse-all')}\n </Tooltip.Content>\n </Tooltip>\n <Tooltip>\n <Tooltip.Trigger>\n <IconButton\n aria-label={stringFormatter.format('expand-all')}\n aria-describedby={undefined}\n icon={mdiKeyboardCaps}\n onPress={() => handleCollapse(false)}\n style={{ transform: 'rotate(180deg)' }}\n color=\"question\"\n />\n </Tooltip.Trigger>\n <Tooltip.Content>\n {stringFormatter.format('expand-all')}\n </Tooltip.Content>\n </Tooltip>\n </Flexbox>\n ) : null}\n\n {React.Children.map(content, (child) => {\n if (isComponent(DetailedCardSection)(child)) {\n return React.cloneElement(child as ReactElement, {\n isCollapsed: allCollapsed.state,\n key: Math.random(),\n });\n }\n return child;\n })}\n </StyledDetailedCard>\n );\n }\n);\nBaseDetailedCard.className = CLASSNAME;\nBaseDetailedCard.defaultProps = DEFAULT_PROPS;\nBaseDetailedCard.displayName = COMPONENT_NAME;\n\nexport const DetailedCard = Object.assign(BaseDetailedCard, {\n Header: DetailedCardHeader,\n Section: DetailedCardSection,\n CollapsibleSectionItems: DetailedCardCollapsibleSectionItems,\n SectionItem: DetailedCardSectionItem,\n});\n","import styled from 'styled-components';\nimport { baseGrid, baseInternalSpacing, baseStyling } from '../shared';\nimport { StyledGridProps } from './types';\n\n/**\n * Component style.\n */\nexport const StyledGrid = styled.div<StyledGridProps>`\n display: ${({ inline }) => (inline ? 'inline-grid' : 'grid')};\n\n ${baseStyling}\n ${baseInternalSpacing}\n ${baseGrid}\n`;\n","import styled from 'styled-components';\nimport { baseInternalSpacing, baseStyling } from '../shared';\nimport { StyledGridItemProps } from './types';\n\n/**\n * Component style.\n */\nexport const StyledGridItem = styled.div<StyledGridItemProps>`\n display: inherit;\n\n ${baseStyling}\n ${baseInternalSpacing}\n`;\n","import React, { forwardRef, RefObject } from 'react';\nimport classNames from 'classnames';\nimport { Comp } from '../../types';\nimport { StyledGridItem } from './styles';\nimport { GridItemProps } from './types';\n\nconst COMPONENT_NAME = 'GridItem';\nconst CLASSNAME = 'redsift-grid-item';\nconst DEFAULT_PROPS: Partial<GridItemProps> = {};\n\n/**\n * The GridItem component.\n */\nexport const GridItem: Comp<GridItemProps, HTMLDivElement> = forwardRef(\n (props, ref) => {\n const { children, className, ...forwardedProps } = props;\n\n return (\n <StyledGridItem\n {...forwardedProps}\n className={classNames(GridItem.className, className)}\n ref={ref as RefObject<HTMLDivElement>}\n >\n {children}\n </StyledGridItem>\n );\n }\n);\nGridItem.className = CLASSNAME;\nGridItem.defaultProps = DEFAULT_PROPS;\nGridItem.displayName = COMPONENT_NAME;\n","import React, { forwardRef, RefObject } from 'react';\nimport classNames from 'classnames';\nimport { Comp } from '../../types';\nimport { StyledGrid } from './styles';\nimport { GridProps } from './types';\nimport { GridItem } from '../grid-item';\n\nconst COMPONENT_NAME = 'Grid';\nconst CLASSNAME = 'redsift-grid';\nconst DEFAULT_PROPS: Partial<GridProps> = {};\n\n/**\n * The Grid component.\n */\nexport const BaseGrid: Comp<GridProps, HTMLDivElement> = forwardRef(\n (props, ref) => {\n const { children, className, ...forwardedProps } = props;\n\n return (\n <StyledGrid\n {...forwardedProps}\n className={classNames(BaseGrid.className, className)}\n ref={ref as RefObject<HTMLDivElement>}\n >\n {children}\n </StyledGrid>\n );\n }\n);\nBaseGrid.className = CLASSNAME;\nBaseGrid.defaultProps = DEFAULT_PROPS;\nBaseGrid.displayName = COMPONENT_NAME;\n\nexport const Grid = Object.assign(BaseGrid, {\n Item: GridItem,\n});\n","import styled, { css } from 'styled-components';\nimport { baseStyling } from '../shared';\nimport { StyledLinkProps } from './types';\n\n/**\n * Component style.\n */\nexport const StyledLink = styled.a<StyledLinkProps>`\n ${baseStyling}\n\n background: none;\n border: none;\n color: inherit;\n cursor: text !important;\n font-family: var(--redsift-typography-link-font-family);\n font-size: var(--redsift-typography-link-font-size);\n font-weight: var(--redsift-typography-link-font-weight);\n line-height: var(--redsift-typography-link-line-height);\n padding: unset;\n text-decoration: none;\n\n ${({ $isDisabled }) =>\n !$isDisabled\n ? css`\n color: var(--redsift-color-success-primary);\n text-decoration: underline;\n text-decoration-color: var(--redsift-color-success-secondary);\n text-underline-offset: 2px;\n\n &:hover,\n &:focus-visible {\n cursor: pointer !important;\n text-decoration-color: var(--redsift-color-success-primary);\n }\n `\n : ''}\n\n &:focus-visible {\n outline: 2px solid var(--redsift-color-success-primary);\n }\n`;\n","import React, { forwardRef, RefObject } from 'react';\nimport classNames from 'classnames';\nimport { Comp } from '../../types';\nimport { StyledLink } from './styles';\nimport { LinkProps } from './types';\n\nconst COMPONENT_NAME = 'Link';\nconst CLASSNAME = 'redsift-link';\nconst DEFAULT_PROPS: Partial<LinkProps> = {};\n\n/**\n * The Link is a semantic link that looks like a link.\n * Shoud be used for internal and external navigation only.\n *\n * For a semantic link that looks like a button, please use the ButtonLink component.\n * For a semantic button that looks like a button, please use the Button component.\n * For a semantic button that looks like a link, please use the LinkButton component.\n */\nexport const Link: Comp<LinkProps, HTMLAnchorElement> = forwardRef(\n (props, ref) => {\n const { children, className, href, isDisabled, ...forwardedProps } = props;\n\n return (\n <StyledLink\n aria-disabled={isDisabled}\n role=\"link\"\n tabIndex={!isDisabled ? 0 : undefined}\n {...forwardedProps}\n $isDisabled={isDisabled}\n className={classNames(Link.className, className)}\n href={!isDisabled ? href : undefined}\n ref={ref as RefObject<HTMLAnchorElement>}\n >\n {children}\n </StyledLink>\n );\n }\n);\nLink.className = CLASSNAME;\nLink.defaultProps = DEFAULT_PROPS;\nLink.displayName = COMPONENT_NAME;\n","import React, { forwardRef, RefObject, useRef } from 'react';\nimport classNames from 'classnames';\nimport { useButton, AriaButtonProps } from 'react-aria';\nimport { Comp } from '../../types';\nimport { StyledLink } from '../link';\nimport { LinkButtonProps } from './types';\n\nconst COMPONENT_NAME = 'LinkButton';\nconst CLASSNAME = 'redsift-link-button';\nconst DEFAULT_PROPS: Partial<LinkButtonProps> = {};\n\n/**\n * The LinkButton is a semantic button that looks like a link.\n *\n * For a semantic button that looks like a button, please use the Button component.\n * For a semantic link that looks like a link, please use the Link component.\n * For a semantic link that looks like a button, please use the ButtonLink component.\n */\nexport const LinkButton: Comp<LinkButtonProps, HTMLButtonElement> = forwardRef(\n (props, ref) => {\n const buttonRef = ref || useRef<HTMLButtonElement>();\n const { buttonProps } = useButton(\n {\n ...props,\n isDisabled: props.isDisabled || props.disabled,\n preventFocusOnPress: true,\n } as AriaButtonProps<'button'>,\n buttonRef as RefObject<HTMLButtonElement>\n );\n\n const {\n children,\n className,\n disabled,\n isDisabled,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n onPress,\n ...forwardedProps\n } = props;\n\n return (\n <StyledLink\n as=\"button\"\n {...forwardedProps}\n {...buttonProps}\n $isDisabled={isDisabled || disabled}\n aria-disabled={isDisabled || disabled}\n className={classNames(LinkButton.className, className)}\n disabled={isDisabled || disabled}\n // @ts-ignore\n ref={buttonRef as RefObject<HTMLButtonElement>}\n >\n {children}\n </StyledLink>\n );\n }\n);\nLinkButton.className = CLASSNAME;\nLinkButton.defaultProps = DEFAULT_PROPS;\nLinkButton.displayName = COMPONENT_NAME;\n","import styled from 'styled-components';\nimport { StyledText } from '../text/styles';\nimport { StyledNumberProps } from './types';\n\n/**\n * Component style.\n */\nexport const StyledNumber = styled(StyledText)<StyledNumberProps>`\n font-family: var(--redsift-typography-font-family-source-code-pro);\n`;\n","import React, { forwardRef, RefObject } from 'react';\nimport { useNumberFormatter } from 'react-aria';\nimport classNames from 'classnames';\nimport { Comp } from '../../types';\nimport { StyledNumber } from './styles';\nimport { NumberProps } from './types';\n\nconst COMPONENT_NAME = 'Number';\nconst CLASSNAME = 'redsift-number';\nconst DEFAULT_PROPS: Partial<NumberProps> = {\n compactDisplay: 'short',\n currencyDisplay: 'symbol',\n currencySign: 'standard',\n localeMatcher: 'best fit',\n notation: 'standard',\n signDisplay: 'auto',\n type: 'decimal',\n unitDisplay: 'short',\n roundingMode: 'halfExpand',\n roundingPriority: 'auto',\n trailingZeroDisplay: 'auto',\n};\n\n/**\n * The Number component.\n */\nexport const Number: Comp<NumberProps, HTMLDivElement> = forwardRef(\n (props, ref) => {\n const {\n as,\n className,\n color,\n compactDisplay,\n currency,\n currencyDisplay,\n currencySign,\n fontSize,\n lineHeight,\n localeMatcher,\n maximumFractionDigits,\n maximumSignificantDigits,\n minimumFractionDigits,\n minimumIntegerDigits,\n minimumSignificantDigits,\n notation,\n noWrap,\n numberingSystem,\n roundingIncrement,\n roundingMode,\n roundingPriority,\n signDisplay,\n trailingZeroDisplay,\n type,\n unit,\n unitDisplay,\n useGrouping,\n value,\n variant,\n ...forwardedProps\n } = props;\n const formatter = useNumberFormatter({\n compactDisplay,\n currency,\n currencyDisplay,\n currencySign,\n localeMatcher,\n ...(maximumFractionDigits !== undefined && { maximumFractionDigits }),\n ...(maximumSignificantDigits !== undefined && {\n maximumSignificantDigits,\n }),\n ...(minimumFractionDigits !== undefined && { minimumFractionDigits }),\n ...(minimumIntegerDigits !== undefined && { minimumIntegerDigits }),\n ...(minimumSignificantDigits !== undefined && {\n minimumSignificantDigits,\n }),\n notation,\n numberingSystem,\n // @ts-ignore\n roundingIncrement,\n // @ts-ignore\n roundingMode,\n // @ts-ignore\n roundingPriority,\n signDisplay,\n style: type,\n // @ts-ignore\n trailingZeroDisplay,\n unit,\n unitDisplay,\n useGrouping,\n });\n\n return (\n <StyledNumber\n as={as}\n {...forwardedProps}\n $as={as}\n className={classNames(Number.className, className)}\n ref={ref as RefObject<HTMLDivElement>}\n $color={color}\n $lineHeight={lineHeight}\n $fontSize={fontSize}\n $noWrap={noWrap}\n $variant={variant}\n >\n {formatter.format(value)}\n </StyledNumber>\n );\n }\n);\nNumber.className = CLASSNAME;\nNumber.defaultProps = DEFAULT_PROPS;\nNumber.displayName = COMPONENT_NAME;\n","import { ComponentProps } from 'react';\nimport { StylingProps, ValueOf } from '../../types';\n\n/**\n * Context props.\n */\nexport type RadioGroupState = {\n /** Whether the radio group is disabled or not. */\n readonly isDisabled: boolean;\n /** Whether the radio group is read only or not. */\n readonly isReadOnly: boolean;\n /** Sets the selected value. */\n setValue(value: string): void;\n /** Current selected value. */\n readonly value: string;\n};\n\n/**\n * Component orientation.\n */\nexport const RadioGroupOrientation = {\n horizontal: 'horizontal',\n vertical: 'vertical',\n} as const;\nexport type RadioGroupOrientation = ValueOf<typeof RadioGroupOrientation>;\n\n/**\n * Component props.\n */\nexport interface RadioGroupProps\n extends Omit<ComponentProps<'div'>, 'onChange'>,\n StylingProps {\n /**\n * Default selected value.\n * Used for uncontrolled version.\n */\n defaultValue?: string;\n /** Description of the radio group. */\n description?: string;\n /** Whether the component is disabled or not. */\n isDisabled?: boolean;\n /** Whether the component is invalid or not. */\n isInvalid?: boolean;\n /** Whether the component is read only or not. */\n isReadOnly?: boolean;\n /** Whether the component is required or not. */\n isRequired?: boolean;\n /** Label of the radio group. */\n label?: string;\n /** Method to handle component change. */\n onChange?(values: string): void;\n /** Method to handle component change. */\n orientation?: RadioGroupOrientation;\n /** List of possible values. Useful to select all. */\n possibleValues?: string[];\n /**\n * Currently selected value.\n * Used for controlled version.\n */\n value?: string;\n}\n\nexport type StyledRadioGroupProps = Omit<\n RadioGroupProps,\n 'isDisabled' | 'isInvalid' | 'isReadOnly' | 'orientation' | 'isRequired'\n> & {\n $isDisabled: RadioGroupProps['isDisabled'];\n $isInvalid: RadioGroupProps['isInvalid'];\n $isReadOnly: RadioGroupProps['isReadOnly'];\n $orientation: RadioGroupProps['orientation'];\n};\n","import React from 'react';\nimport { RadioGroupState } from './types';\n\nexport const RadioGroupContext =\n React.createContext<RadioGroupState | null>(null);\n","import styled from 'styled-components';\nimport { baseStyling } from '../shared';\nimport { RadioGroupOrientation, StyledRadioGroupProps } from './types';\n\n/**\n * Component style.\n */\nexport const StyledRadioGroup = styled.div<StyledRadioGroupProps>`\n ${baseStyling}\n\n display: flex;\n flex-direction: column;\n\n ${({ $orientation }) =>\n $orientation === RadioGroupOrientation.vertical\n ? `\n div.redsift-radio-group-boxes {\n display: flex;\n flex-direction: column;\n }\n `\n : `\n div.redsift-radio-group-boxes {\n display: flex;\n flex-direction: row;\n flex-wrap: wrap;\n }\n `}\n\n span.redsift-radio-group-label {\n font-family: var(--redsift-typography-body-font-family);\n font-weight: var(--redsift-typography-body-font-weight);\n font-size: var(--redsift-typography-body-font-size);\n line-height: var(--redsift-typography-body-line-height);\n\n color: var(--redsift-color-neutral-black);\n ${({ $isDisabled }) =>\n $isDisabled\n ? `\n color: var(--redsift-color-neutral-midgrey);\n `\n : ''}\n ${({ $isInvalid }) =>\n $isInvalid\n ? `\n color: var(--redsift-color-error-primary);\n `\n : ''}\n }\n\n span.redsift-radio-group-description {\n font-family: var(--redsift-typography-helper-font-family);\n font-weight: var(--redsift-typography-helper-font-weight);\n font-size: var(--redsift-typography-helper-font-size);\n line-height: var(--redsift-typography-helper-line-height);\n\n color: var(--redsift-color-neutral-darkgrey);\n ${({ $isDisabled }) =>\n $isDisabled\n ? `\n color: var(--redsift-color-neutral-midgrey);\n `\n : ''}\n ${({ $isInvalid }) =>\n $isInvalid\n ? `\n color: var(--redsift-color-error-primary);\n `\n : ''}\n }\n`;\n","import React, { forwardRef, RefObject, useEffect, useState } from 'react';\nimport classNames from 'classnames';\nimport { ColorPalette, Comp } from '../../types';\nimport { RadioGroupOrientation, RadioGroupProps } from './types';\nimport { RadioGroupContext } from './context';\nimport { StyledRadioGroup } from './styles';\n\nconst COMPONENT_NAME = 'RadioGroup';\nconst CLASSNAME = 'redsift-radio-group';\nconst DEFAULT_PROPS: Partial<RadioGroupProps> = {\n color: ColorPalette.default,\n orientation: RadioGroupOrientation.vertical,\n};\n\n/**\n * The RadioGroup component.\n * Can be used as controlled or uncontrolled.\n */\nexport const RadioGroup: Comp<RadioGroupProps, HTMLDivElement> = forwardRef(\n (props, ref) => {\n const {\n children,\n className,\n defaultValue,\n description,\n isDisabled,\n isInvalid,\n isReadOnly,\n isRequired,\n label,\n onChange,\n orientation,\n possibleValues,\n value,\n ...forwardedProps\n } = props;\n\n const [selectedValue, setValue] = useState<string>(\n value || defaultValue || ''\n );\n useEffect(() => {\n if (value) {\n state.setValue(value);\n }\n }, [value]);\n\n const state = {\n value: selectedValue,\n isDisabled: isDisabled || false,\n isReadOnly: isReadOnly || false,\n possibleValues: possibleValues,\n setValue(value: string) {\n if (isReadOnly || isDisabled) {\n return;\n }\n\n const previousValue = selectedValue;\n setValue(value);\n if (value !== previousValue && onChange) {\n onChange(value);\n }\n },\n };\n\n return (\n <StyledRadioGroup\n {...forwardedProps}\n $isDisabled={isDisabled}\n $isInvalid={isInvalid || (isRequired && selectedValue.length === 0)}\n $isReadOnly={isReadOnly}\n $orientation={orientation}\n aria-disabled={isDisabled}\n className={classNames(RadioGroup.className, className)}\n ref={ref as RefObject<HTMLDivElement>}\n role=\"radiogroup\"\n >\n <span className={`${RadioGroup.className}-label`}>\n {label}\n {isRequired ? ' *' : null}\n </span>\n <div className={`${RadioGroup.className}-boxes`}>\n <RadioGroupContext.Provider value={state}>\n {children}\n </RadioGroupContext.Provider>\n </div>\n <span className={`${RadioGroup.className}-description`}>\n {description}\n </span>\n </StyledRadioGroup>\n );\n }\n);\nRadioGroup.className = CLASSNAME;\nRadioGroup.defaultProps = DEFAULT_PROPS;\nRadioGroup.displayName = COMPONENT_NAME;\n","import styled, { css } from 'styled-components';\nimport { baseStyling } from '../shared';\nimport { StyledRadioProps } from './types';\n\n/**\n * Component style.\n */\nexport const StyledRadio = styled.label<StyledRadioProps>`\n height: fit-content;\n position: relative;\n width: fit-content;\n ${baseStyling}\n\n align-items: baseline;\n background: none;\n border: none;\n display: inline-flex;\n\n input {\n height: 100%;\n margin: 0;\n opacity: 0;\n overflow: visible;\n padding: 0;\n position: absolute;\n width: 100%;\n }\n\n span.label {\n ${({ $isDisabled, $isInvalid }) =>\n $isDisabled\n ? css`\n color: var(--redsift-color-neutral-midgrey);\n `\n : $isInvalid\n ? css`\n color: var(--redsift-color-error-primary);\n `\n : css`\n color: var(--redsift-color-neutral-black);\n `}\n\n font-family: var(--redsift-typography-body-font-family);\n font-size: var(--redsift-typography-body-font-size);\n font-weight: var(--redsift-typography-body-font-weight);\n line-height: var(--redsift-typography-body-line-height);\n padding-left: 4px;\n padding-right: 16px;\n position: relative;\n top: -4px;\n\n [dir='rtl'] & {\n padding-left: 16px;\n padding-right: 4px;\n }\n }\n\n .redsift-icon {\n padding: 2px;\n width: 24px;\n\n ${({ $isColored, $isDisabled, $isInvalid, $isFocusVisible }) => css`\n ${$isDisabled\n ? css`\n color: var(--redsift-color-neutral-midgrey);\n `\n : $isInvalid\n ? css`\n color: var(--redsift-color-error-primary);\n `\n : css`\n color: var(\n --redsift-color-${$isColored ? 'default' : 'question'}-primary\n );\n `}\n\n ${$isFocusVisible && !$isDisabled\n ? css`\n background-color: var(\n --redsift-color-${$isColored ? 'default' : 'question'}-hover\n );\n border-radius: 16px;\n `\n : ''}\n `}\n }\n\n &:hover,\n &:focus-visible {\n outline: none;\n\n ${({ $isColored, $isDisabled }) =>\n !$isDisabled\n ? css`\n .redsift-icon {\n background-color: var(\n --redsift-color-${$isColored ? 'default' : 'question'}-hover\n );\n border-radius: 16px;\n }\n `\n : ''}\n }\n`;\n","import React, {\n ComponentProps,\n forwardRef,\n MutableRefObject,\n useCallback,\n useContext,\n useEffect,\n useState,\n} from 'react';\nimport classNames from 'classnames';\nimport { useFocusRing } from 'react-aria';\nimport { mdiRadioboxBlank, mdiRadioboxMarked } from '@redsift/icons';\nimport { Comp } from '../../types';\nimport { Icon } from '../icon';\nimport { RadioGroupContext } from '../radio-group/context';\nimport { warnIfNoAccessibleLabelFound } from '../../utils/warnIfNoAccessibleLabelFound';\nimport { RadioProps } from './types';\nimport { StyledRadio } from './styles';\n\nconst COMPONENT_NAME = 'Radio';\nconst CLASSNAME = 'redsift-radio';\nconst DEFAULT_PROPS: Partial<RadioProps> = {\n isColored: true,\n};\n\n/**\n * The Radio component.\n * Works both inside a RadioGroup or as standalone.\n * Can be used as controlled or uncontrolled.\n */\nexport const Radio: Comp<RadioProps, HTMLLabelElement> = forwardRef(\n (props, ref) => {\n const groupState = useContext(RadioGroupContext);\n\n let {\n 'aria-label': ariaLabel,\n 'aria-labelledby': ariaLabelledby,\n autoFocus,\n children,\n className,\n defaultSelected,\n inputProps,\n inputRef,\n isColored,\n isDisabled,\n isInvalid,\n isReadOnly,\n isRequired,\n isSelected: propsIsSelected,\n name,\n onChange,\n value,\n ...forwardedProps\n } = props;\n\n const { isFocusVisible, focusProps } = useFocusRing({ autoFocus });\n isDisabled = isDisabled ?? groupState?.isDisabled;\n isReadOnly = isReadOnly ?? groupState?.isReadOnly;\n\n const [isSelected, setSelected] = useState<boolean | undefined>(\n propsIsSelected ??\n defaultSelected ??\n Boolean(groupState?.value && groupState.value === value)\n );\n\n useEffect(() => {\n setSelected(propsIsSelected ?? defaultSelected);\n }, [propsIsSelected, defaultSelected]);\n\n useEffect(() => {\n if (groupState) {\n setSelected(groupState.value === value);\n }\n }, [groupState?.value]);\n\n warnIfNoAccessibleLabelFound(props as ComponentProps<'label'>, [children]);\n\n if (groupState) {\n if (propsIsSelected != null) {\n console.warn(\n 'isSelected is unsupported on individual <Radio> elements within a <RadioGroup> unless the <Radio> is controlled. Please apply this prop to the group instead or pass isControlled to the component.'\n );\n }\n if (defaultSelected != null) {\n console.warn(\n 'defaultSelected is unsupported on individual <Radio> elements within a <RadioGroup> unless the <Radio> is controlled. Please apply this prop to the group instead or pass isControlled to the component.'\n );\n }\n if (props.value == null) {\n console.warn(\n 'A <Radio> element within a <RadioGroup> requires a `value` property unless the <Radio> is controlled.'\n );\n }\n }\n\n const handleChange = useCallback(\n (event: React.ChangeEvent<HTMLInputElement>) => {\n if (isDisabled || isReadOnly) {\n return;\n }\n\n if (groupState) {\n groupState.setValue(value as string);\n }\n\n if (onChange) {\n onChange(!isSelected, value, name, event, groupState!);\n }\n setSelected(event.target.checked);\n },\n [onChange, groupState]\n );\n\n return (\n <StyledRadio\n {...forwardedProps}\n $isColored={isColored}\n $isDisabled={isDisabled}\n $isFocusVisible={isFocusVisible}\n $isInvalid={isInvalid || (isRequired && !isSelected)}\n $isRequired={isRequired}\n $isSelected={isSelected}\n className={classNames(Radio.className, className)}\n ref={ref as MutableRefObject<HTMLLabelElement>}\n >\n <input\n {...inputProps}\n {...focusProps}\n aria-checked={isSelected ? 'true' : 'false'}\n aria-disabled={isDisabled}\n aria-invalid={isInvalid || (isRequired && !isSelected)}\n aria-label={ariaLabel}\n aria-labelledby={ariaLabelledby}\n aria-readonly={isReadOnly}\n aria-required={isRequired}\n autoFocus={autoFocus}\n checked={isSelected ? true : false}\n disabled={isDisabled}\n name={name}\n onChange={handleChange}\n ref={inputRef as MutableRefObject<HTMLInputElement>}\n type=\"radio\"\n value={value}\n />\n {isSelected ? (\n <Icon icon={mdiRadioboxMarked} />\n ) : (\n <Icon icon={mdiRadioboxBlank} />\n )}\n {children ? <span className=\"label\">{children}</span> : null}\n </StyledRadio>\n );\n }\n);\nRadio.className = CLASSNAME;\nRadio.defaultProps = DEFAULT_PROPS;\nRadio.displayName = COMPONENT_NAME;\n","import React from 'react';\nimport { SwitchGroupState } from './types';\n\nexport const SwitchGroupContext =\n React.createContext<SwitchGroupState | null>(null);\n","import styled, { css } from 'styled-components';\nimport { baseStyling } from '../shared';\nimport { StyledSwitchProps } from './types';\n\n/**\n * Component style.\n */\nexport const StyledSwitch = styled.label<StyledSwitchProps>`\n height: fit-content;\n position: relative;\n width: fit-content;\n ${baseStyling}\n\n align-items: baseline;\n background: none;\n border: none;\n display: inline-flex;\n margin: 4px;\n\n input {\n height: 100%;\n margin: 0;\n opacity: 0;\n overflow: visible;\n padding: 0;\n position: absolute;\n width: 100%;\n }\n\n span.label {\n ${({ $isDisabled, $isInvalid }) =>\n $isDisabled\n ? css`\n color: var(--redsift-color-neutral-midgrey);\n `\n : $isInvalid\n ? css`\n color: var(--redsift-color-error-primary);\n `\n : css`\n color: var(--redsift-color-neutral-black);\n `}\n\n font-family: var(--redsift-typography-body-font-family);\n font-size: var(--redsift-typography-body-font-size);\n font-weight: var(--redsift-typography-body-font-weight);\n line-height: var(--redsift-typography-body-line-height);\n padding-inline-start: 4px;\n padding-inline-end: 16px;\n position: relative;\n top: -5px;\n }\n\n .redsift-switch__slide {\n height: 20px;\n position: relative;\n min-width: 40px;\n }\n\n .redsift-switch-slide__inner {\n background-color: var(--redsift-color-neutral-midgrey);\n border-radius: 10px;\n height: 16px;\n position: absolute;\n top: calc(50% - 16px / 2);\n width: 32px;\n z-index: 2;\n }\n\n .redsift-switch-slide__knob-wrapper {\n border-radius: 50%;\n height: 32px;\n margin-inline-start: ${({ $isSelected }) =>\n !$isSelected ? '-10px' : '10px'};\n position: absolute;\n top: -6px;\n width: 32px;\n z-index: 3;\n }\n\n .redsift-switch-slide-knob-wrapper__elevation {\n background-color: var(--redsift-color-neutral-xlightgrey);\n border-radius: 50%;\n height: 32px;\n opacity: 0;\n position: absolute;\n width: 32px;\n z-index: 3;\n }\n\n .redsift-switch-slide-knob-wrapper__knob {\n background-color: var(--redsift-color-neutral-xlightgrey);\n border-radius: 50%;\n box-shadow: 0px 2px 1px -1px rgba(0, 0, 0, 0.2),\n 0px 1px 1px rgba(0, 0, 0, 0.14), 0px 1px 3px rgba(0, 0, 0, 0.12);\n height: 20px;\n left: 6px;\n position: absolute;\n top: 6px;\n width: 20px;\n }\n\n .redsift-switch-slide__inner {\n ${({ $isColored, $isDisabled, $isInvalid, $isSelected }) => css`\n ${$isSelected && $isDisabled\n ? css`\n background-color: var(\n --redsift-color-${$isInvalid ? 'error' : $isColored ? 'default' : 'no-data'}-active\n );\n `\n : $isSelected\n ? css`\n background-color: var(\n --redsift-color-${$isInvalid ? 'error' : $isColored ? 'default' : 'no-data'}-primary\n );\n `\n : !$isSelected && $isDisabled\n ? css`\n background-color: var(--redsift-color-neutral-lightgrey);\n `\n : css`\n background-color: var(--redsift-color-neutral-midgrey);\n `}\n `}\n }\n\n &:hover,\n &:focus-visible {\n outline: none;\n cursor: pointer;\n\n ${({ $isDisabled }) =>\n !$isDisabled\n ? css`\n .redsift-switch-slide-knob-wrapper__elevation {\n opacity: 0.5;\n }\n `\n : ''}\n }\n\n ${({ $isDisabled, $isFocusVisible }) =>\n $isFocusVisible && !$isDisabled\n ? css`\n .redsift-switch-slide-knob-wrapper__elevation {\n opacity: 0.5;\n }\n `\n : ''}\n`;\n","import React, {\n ComponentProps,\n forwardRef,\n MutableRefObject,\n useCallback,\n useContext,\n useEffect,\n useState,\n} from 'react';\nimport classNames from 'classnames';\nimport { useFocusRing } from 'react-aria';\nimport { Comp } from '../../types';\nimport { SwitchGroupContext } from '../switch-group/context';\nimport { warnIfNoAccessibleLabelFound } from '../../utils/warnIfNoAccessibleLabelFound';\nimport { SwitchProps } from './types';\nimport { StyledSwitch } from './styles';\n\nconst COMPONENT_NAME = 'Switch';\nconst CLASSNAME = 'redsift-switch';\nconst DEFAULT_PROPS: Partial<SwitchProps> = {\n isColored: true,\n};\n\n/**\n * The Switch component.\n * Works both inside a SwitchGroup or as standalone.\n * Can be used as controlled or uncontrolled.\n */\nexport const Switch: Comp<SwitchProps, HTMLLabelElement> = forwardRef(\n (props, ref) => {\n const groupState = useContext(SwitchGroupContext);\n\n let {\n 'aria-label': ariaLabel,\n 'aria-labelledby': ariaLabelledby,\n autoFocus,\n children,\n className,\n defaultSelected,\n inputProps,\n inputRef,\n isColored,\n isDisabled,\n isInvalid,\n isReadOnly,\n isRequired,\n isSelected: propsIsSelected,\n name,\n onChange,\n value,\n ...forwardedProps\n } = props;\n\n const { isFocusVisible, focusProps } = useFocusRing({ autoFocus });\n isDisabled = isDisabled ?? groupState?.isDisabled;\n isReadOnly = isReadOnly ?? groupState?.isReadOnly;\n\n const [isSelected, setSelected] = useState(\n propsIsSelected ??\n defaultSelected ??\n groupState?.value.includes(value as string)\n );\n\n useEffect(() => {\n setSelected(propsIsSelected ?? defaultSelected);\n }, [propsIsSelected, defaultSelected]);\n\n useEffect(() => {\n if (groupState) {\n setSelected(groupState.value.includes(value as string));\n }\n }, [groupState?.value]);\n\n warnIfNoAccessibleLabelFound(props as ComponentProps<'label'>, [children]);\n\n if (groupState) {\n if (propsIsSelected != null) {\n console.warn(\n 'isSelected is unsupported on individual <Switch> elements within a <SwitchGroup> unless the <Switch> is controlled. Please apply this prop to the group instead or pass isControlled to the component.'\n );\n }\n if (defaultSelected != null) {\n console.warn(\n 'defaultSelected is unsupported on individual <Switch> elements within a <SwitchGroup> unless the <Switch> is controlled. Please apply this prop to the group instead or pass isControlled to the component.'\n );\n }\n if (props.value == null) {\n console.warn(\n 'A <Switch> element within a <SwitchGroup> requires a `value` property unless the <Switch> is controlled.'\n );\n }\n }\n\n const handleChange = useCallback(\n (event: React.ChangeEvent<HTMLInputElement>) => {\n if (isDisabled || isReadOnly) {\n return;\n }\n\n if (groupState) {\n if (!groupState.value.includes(value as string)) {\n groupState.addValue(value as string);\n } else {\n groupState.removeValue(value as string);\n }\n }\n\n if (onChange) {\n onChange(!isSelected, value, name, event, groupState!);\n }\n setSelected(event.target.checked);\n },\n [onChange, groupState]\n );\n\n return (\n <StyledSwitch\n {...forwardedProps}\n $isColored={isColored}\n $isDisabled={isDisabled}\n $isFocusVisible={isFocusVisible}\n $isInvalid={isInvalid || (isRequired && !isSelected)}\n $isRequired={isRequired}\n $isSelected={isSelected}\n className={classNames(Switch.className, className)}\n ref={ref as MutableRefObject<HTMLLabelElement>}\n >\n <input\n {...inputProps}\n {...focusProps}\n aria-checked={isSelected ? 'true' : 'false'}\n aria-disabled={isDisabled}\n aria-invalid={isInvalid || (isRequired && !isSelected)}\n aria-label={ariaLabel}\n aria-labelledby={ariaLabelledby}\n aria-readonly={isReadOnly}\n aria-required={isRequired}\n autoFocus={autoFocus}\n checked={isSelected ? true : false}\n disabled={isDisabled}\n name={name}\n onChange={handleChange}\n ref={inputRef as MutableRefObject<HTMLInputElement>}\n role=\"switch\"\n type=\"checkbox\"\n value={value}\n />\n <div className={`${Switch.className}__slide`}>\n <div className={`${Switch.className}-slide__inner`} />\n <div className={`${Switch.className}-slide__knob-wrapper`}>\n <div\n className={`${Switch.className}-slide-knob-wrapper__elevation`}\n />\n <div className={`${Switch.className}-slide-knob-wrapper__knob`} />\n </div>\n </div>\n {children ? <span className=\"label\">{children}</span> : null}\n </StyledSwitch>\n );\n }\n);\nSwitch.className = CLASSNAME;\nSwitch.defaultProps = DEFAULT_PROPS;\nSwitch.displayName = COMPONENT_NAME;\n","import { ComponentProps } from 'react';\nimport { ValueOf, StylingProps } from '../../types';\n\n/**\n * Context props.\n */\nexport type SwitchGroupState = {\n /** Adds a value to the set of selected values. */\n addValue(value: string): void;\n /** Whether the switch group is disabled or not. */\n readonly isDisabled: boolean;\n /** Whether the switch group is read only or not. */\n readonly isReadOnly: boolean;\n /** Removes a value from the set of selected values. */\n removeValue(value: string): void;\n /** Sets the selected values. */\n setValue(value: string[]): void;\n /** Current selected values. */\n readonly value: readonly string[];\n};\n\n/**\n * Component orientation.\n */\nexport const SwitchGroupOrientation = {\n horizontal: 'horizontal',\n vertical: 'vertical',\n} as const;\nexport type SwitchGroupOrientation = ValueOf<typeof SwitchGroupOrientation>;\n\n/**\n * Component props.\n */\nexport interface SwitchGroupProps\n extends Omit<ComponentProps<'div'>, 'onChange'>,\n StylingProps {\n /**\n * Default selected values.\n * Used for uncontrolled version.\n */\n defaultValues?: string[];\n /** Description of the switch group. */\n description?: string;\n /** Whether the component is disabled or not. */\n isDisabled?: boolean;\n /** Whether the component is invalid or not. */\n isInvalid?: boolean;\n /** Whether the component is read only or not. */\n isReadOnly?: boolean;\n /** Whether the component is required or not. */\n isRequired?: boolean;\n /** Label of the switch group. */\n label?: string;\n /** Method to handle component change. */\n onChange?(values: string[]): void;\n /** Method to handle component change. */\n orientation?: SwitchGroupOrientation;\n /** List of possible values. Useful to select all. */\n possibleValues?: string[];\n /**\n * Currently selected values.\n * Used for controlled version.\n */\n value?: string[];\n}\n\nexport type StyledSwitchGroupProps = Omit<\n SwitchGroupProps,\n 'isDisabled' | 'isInvalid' | 'isReadOnly' | 'orientation' | 'isRequired'\n> & {\n $isDisabled: SwitchGroupProps['isDisabled'];\n $isInvalid: SwitchGroupProps['isInvalid'];\n $isReadOnly: SwitchGroupProps['isReadOnly'];\n $orientation: SwitchGroupProps['orientation'];\n};\n","import styled from 'styled-components';\nimport { baseStyling } from '../shared';\nimport { SwitchGroupOrientation, StyledSwitchGroupProps } from './types';\n\n/**\n * Component style.\n */\nexport const StyledSwitchGroup = styled.div<StyledSwitchGroupProps>`\n ${baseStyling}\n\n display: flex;\n flex-direction: column;\n\n ${({ $orientation }) =>\n $orientation === SwitchGroupOrientation.vertical\n ? `\n div.redsift-checkbox-group-boxes {\n display: flex;\n flex-direction: column;\n }\n `\n : `\n div.redsift-checkbox-group-boxes {\n display: flex;\n flex-direction: row;\n flex-wrap: wrap;\n }\n `}\n\n span.redsift-checkbox-group-label {\n font-family: var(--redsift-typography-body-font-family);\n font-weight: var(--redsift-typography-body-font-weight);\n font-size: var(--redsift-typography-body-font-size);\n line-height: var(--redsift-typography-body-line-height);\n\n color: var(--redsift-color-neutral-black);\n ${({ $isDisabled }) =>\n $isDisabled\n ? `\n color: var(--redsift-color-neutral-midgrey);\n `\n : ''}\n ${({ $isInvalid }) =>\n $isInvalid\n ? `\n color: var(--redsift-color-error-primary);\n `\n : ''}\n }\n\n span.redsift-checkbox-group-description {\n font-family: var(--redsift-typography-helper-font-family);\n font-weight: var(--redsift-typography-helper-font-weight);\n font-size: var(--redsift-typography-helper-font-size);\n line-height: var(--redsift-typography-helper-line-height);\n\n color: var(--redsift-color-neutral-darkgrey);\n ${({ $isDisabled }) =>\n $isDisabled\n ? `\n color: var(--redsift-color-neutral-midgrey);\n `\n : ''}\n ${({ $isInvalid }) =>\n $isInvalid\n ? `\n color: var(--redsift-color-error-primary);\n `\n : ''}\n }\n`;\n","import React, { forwardRef, RefObject, useEffect, useState } from 'react';\nimport classNames from 'classnames';\nimport { ColorPalette, Comp } from '../../types';\nimport { SwitchGroupOrientation, SwitchGroupProps } from './types';\nimport { SwitchGroupContext } from './context';\nimport { StyledSwitchGroup } from './styles';\n\nconst COMPONENT_NAME = 'SwitchGroup';\nconst CLASSNAME = 'redsift-checkbox-group';\nconst DEFAULT_PROPS: Partial<SwitchGroupProps> = {\n color: ColorPalette.default,\n orientation: SwitchGroupOrientation.vertical,\n};\n\n/**\n * The SwitchGroup component.\n * Can be used as controlled or uncontrolled.\n */\nexport const SwitchGroup: Comp<SwitchGroupProps, HTMLDivElement> = forwardRef(\n (props, ref) => {\n const {\n children,\n className,\n defaultValues,\n description,\n isDisabled,\n isInvalid,\n isReadOnly,\n isRequired,\n label,\n onChange,\n orientation,\n possibleValues,\n value,\n ...forwardedProps\n } = props;\n\n const [selectedValues, setValue] = useState<string[]>(\n value || defaultValues || []\n );\n useEffect(() => {\n if (value) {\n state.setValue(value);\n }\n }, [value]);\n\n const state = {\n value: selectedValues,\n isDisabled: isDisabled || false,\n isReadOnly: isReadOnly || false,\n possibleValues: possibleValues,\n setValue(values: string[]) {\n if (isReadOnly || isDisabled) {\n return;\n }\n\n setValue(values);\n },\n addValue(value: string) {\n if (!selectedValues.includes(value)) {\n setValue(selectedValues.concat(value));\n if (onChange) {\n onChange(selectedValues.concat(value));\n }\n }\n },\n removeValue(value: string) {\n if (selectedValues.includes(value)) {\n setValue(\n selectedValues.filter((existingValue) => existingValue !== value)\n );\n if (onChange) {\n onChange(\n selectedValues.filter((existingValue) => existingValue !== value)\n );\n }\n }\n },\n };\n\n return (\n <StyledSwitchGroup\n {...forwardedProps}\n $isDisabled={isDisabled}\n $isInvalid={isInvalid || (isRequired && selectedValues.length === 0)}\n $isReadOnly={isReadOnly}\n $orientation={orientation}\n aria-disabled={isDisabled}\n className={classNames(SwitchGroup.className, className)}\n ref={ref as RefObject<HTMLDivElement>}\n role=\"group\"\n >\n <span className={`${SwitchGroup.className}-label`}>\n {label}\n {isRequired ? ' *' : null}\n </span>\n <div className={`${SwitchGroup.className}-boxes`}>\n <SwitchGroupContext.Provider value={state}>\n {children}\n </SwitchGroupContext.Provider>\n </div>\n <span className={`${SwitchGroup.className}-description`}>\n {description}\n </span>\n </StyledSwitchGroup>\n );\n }\n);\nSwitchGroup.className = CLASSNAME;\nSwitchGroup.defaultProps = DEFAULT_PROPS;\nSwitchGroup.displayName = COMPONENT_NAME;\n","import { ChangeEvent, ComponentProps, MutableRefObject } from 'react';\nimport { StylingProps, ValueOf } from '../../types';\n\n/**\n * Component variant.\n */\nexport const TextFieldVariant = {\n default: 'default',\n underline: 'underline',\n} as const;\nexport type TextFieldVariant = ValueOf<typeof TextFieldVariant>;\n\n/**\n * Component props.\n */\nexport interface TextFieldProps\n extends Omit<ComponentProps<'div'>, 'onChange'>,\n StylingProps {\n /** Whether the component can be autofocused. */\n autoFocus?: boolean;\n /**\n * Default value.\n * Used for uncontrolled version.\n */\n defaultValue?: HTMLInputElement['value'];\n /** Custom props to pass to the input element. */\n inputProps?: ComponentProps<'input'>;\n /** Custom ref object to pass to the input element. */\n inputRef?: MutableRefObject<HTMLInputElement>;\n /** Whether the component should use the product colors or shades of grey. */\n isColored?: boolean;\n /** Whether the component is disabled or not. */\n isDisabled?: boolean;\n /** Whether the component is invalid or not. */\n isInvalid?: boolean;\n /** Whether the component is read only or not. */\n isReadOnly?: boolean;\n /** Whether the component is required or not. */\n isRequired?: boolean;\n /** Label */\n label?: string;\n /** Name to pass to the input element. */\n name?: HTMLInputElement['name'];\n /** Method to handle component change. */\n onChange?(\n value?: string,\n name?: string,\n event?: ChangeEvent<HTMLInputElement>\n ): void;\n /** Placeholder. */\n placeholder?: string;\n /**\n * Input value.\n * Used for controlled version.\n */\n value?: HTMLInputElement['value'];\n /** TextField variant. */\n variant?: TextFieldVariant;\n}\n\nexport type StyledTextFieldProps = Omit<\n TextFieldProps,\n 'color' | 'isColored' | 'isDisabled' | 'isInvalid' | 'isRequired' | 'onChange'\n> & {\n $hasContent: boolean;\n $isColored: TextFieldProps['isColored'];\n $isDisabled: TextFieldProps['isDisabled'];\n $isInvalid: TextFieldProps['isInvalid'];\n $isFocused: boolean;\n $isFocusVisible: boolean;\n $isRequired: TextFieldProps['isRequired'];\n $variant: TextFieldProps['variant'];\n};\n","import styled, { css } from 'styled-components';\nimport { baseStyling } from '../shared';\nimport { StyledTextFieldProps, TextFieldVariant } from './types';\n\n/**\n * Component style.\n */\nexport const StyledTextField = styled.div<StyledTextFieldProps>`\n height: fit-content;\n position: relative;\n width: fit-content;\n ${baseStyling}\n\n border: 0;\n display: inline-flex;\n flex-direction: column;\n margin: 0;\n min-width: 0;\n padding: 0;\n vertical-align: top;\n\n ${({\n $hasContent,\n $isFocused,\n $isDisabled,\n $isInvalid,\n $isColored,\n $variant,\n }) => css`\n .redsift-text-field__label {\n font-family: var(--redsift-typography-input-text-font-family);\n font-size: var(--redsift-typography-input-text-font-size);\n font-weight: var(--redsift-typography-input-text-font-weight);\n line-height: var(--redsift-typography-input-text-line-height);\n left: 0;\n overflow: hidden;\n pointer-events: none;\n position: absolute;\n text-overflow: ellipsis;\n top: -8px;\n transform-origin: top left;\n transition: color 200ms cubic-bezier(0, 0, 0.2, 1) 0ms,\n transform 200ms cubic-bezier(0, 0, 0.2, 1) 0ms,\n max-width 200ms cubic-bezier(0, 0, 0.2, 1) 0ms;\n white-space: nowrap;\n z-index: 1;\n\n ${!$hasContent\n ? css`\n max-width: calc(100% - 24px);\n transform: translate(\n ${$variant === TextFieldVariant.underline ? '0px' : '14px'},\n 16px\n )\n scale(1);\n `\n : css`\n font-family: var(--redsift-typography-body2-font-family);\n font-size: var(--redsift-typography-body2-font-size);\n font-weight: var(--redsift-typography-body2-font-weight);\n max-width: calc(133% - 32px);\n transform: translate(\n ${$variant === TextFieldVariant.underline ? '0px' : '14px'},\n -1px\n )\n scale(0.75);\n `}\n\n ${$isDisabled\n ? css`\n color: var(--redsift-color-neutral-midgrey);\n `\n : $isInvalid\n ? css`\n color: var(--redsift-color-error-primary);\n `\n : $isFocused\n ? css`\n color: var(\n --redsift-color-${$isColored ? 'default' : 'question'}-primary\n );\n `\n : css`\n color: var(--redsift-color-neutral-darkgrey);\n `}\n }\n\n .redsift-text-field__input-wrapper {\n align-items: center;\n box-sizing: border-box;\n cursor: text;\n display: inline-flex;\n position: relative;\n position: relative;\n }\n\n .redsift-text-field-input-wrapper__input {\n background: none;\n border: 0;\n box-sizing: content-box;\n display: block;\n font-family: var(--redsift-typography-input-text-font-family);\n font-size: var(--redsift-typography-input-text-font-size);\n font-weight: var(--redsift-typography-input-text-font-weight);\n line-height: var(--redsift-typography-input-text-line-height);\n min-width: 0;\n padding-bottom: 6px;\n\n ${$variant !== TextFieldVariant.underline\n ? css`\n padding-left: 16px;\n `\n : ''}\n padding-top: 10px;\n width: 100%;\n\n ${$isDisabled\n ? css`\n color: var(--redsift-color-neutral-midgrey);\n `\n : css`\n color: var(--redsift-color-neutral-black);\n `}\n }\n\n .redsift-text-field-input-wrapper__input::placeholder {\n color: var(--redsift-color-neutral-midgrey);\n }\n\n .redsift-text-field-input-wrapper__input:focus {\n outline: 0;\n }\n\n .redsift-text-field-input-wrapper__fieldset {\n border-radius: inherit;\n border-style: solid;\n bottom: 0;\n left: 0;\n margin: 0;\n min-width: 0%;\n overflow: hidden;\n padding: 0 8px;\n pointer-events: none;\n position: absolute;\n right: 0;\n text-align: left;\n top: -5px;\n\n ${$variant === TextFieldVariant.underline\n ? css`\n border-bottom-width: 2px;\n `\n : css`\n border-width: 2px;\n `}\n\n ${$isDisabled\n ? css`\n border-color: var(--redsift-color-neutral-midgrey);\n `\n : $isInvalid\n ? css`\n border-color: var(--redsift-color-error-primary);\n `\n : $isFocused\n ? css`\n border-color: var(\n --redsift-color-${$isColored ? 'default' : 'question'}-primary\n );\n `\n : css`\n border-color: var(--redsift-color-neutral-midgrey);\n `}\n }\n\n .redsift-text-field-input-wrapper-fieldset__legend {\n display: block;\n float: unset;\n font-size: 0.7em;\n height: 11px;\n overflow: hidden;\n padding: 0;\n visibility: hidden;\n white-space: nowrap;\n width: auto;\n\n ${!$hasContent\n ? css`\n max-width: 0.01px;\n transition: max-width 50ms cubic-bezier(0, 0, 0.2, 1) 0ms;\n `\n : css`\n max-width: 100%;\n transition: max-width 100ms cubic-bezier(0, 0, 0.2, 1) 50ms;\n `}\n }\n\n .redsift-text-field-input-wrapper-fieldset__legend > span {\n display: inline-block;\n opacity: 0;\n padding-left: 5px;\n padding-right: 5px;\n visibility: visible;\n }\n `}\n`;\n","import React, {\n ComponentProps,\n forwardRef,\n MutableRefObject,\n useCallback,\n useEffect,\n useState,\n} from 'react';\nimport classNames from 'classnames';\nimport { useFocusRing, useFocusWithin } from 'react-aria';\nimport { Comp } from '../../types';\nimport { warnIfNoAccessibleLabelFound } from '../../utils/warnIfNoAccessibleLabelFound';\nimport { TextFieldProps, TextFieldVariant } from './types';\nimport { StyledTextField } from './styles';\n\nconst COMPONENT_NAME = 'TextField';\nconst CLASSNAME = 'redsift-text-field';\nconst DEFAULT_PROPS: Partial<TextFieldProps> = {\n defaultValue: '',\n isColored: true,\n variant: TextFieldVariant.default,\n};\n\n/**\n * The TextField component.\n * Can be used as controlled or uncontrolled.\n */\nexport const TextField: Comp<TextFieldProps, HTMLDivElement> = forwardRef(\n (props, ref) => {\n const {\n 'aria-label': ariaLabel,\n 'aria-labelledby': ariaLabelledby,\n autoFocus,\n className,\n defaultValue,\n inputProps,\n inputRef,\n isColored,\n isDisabled,\n isInvalid,\n isReadOnly,\n isRequired,\n label,\n name,\n onChange,\n placeholder,\n value: propsValue,\n variant,\n ...forwardedProps\n } = props;\n\n const { isFocusVisible, isFocused, focusProps } = useFocusRing({\n autoFocus,\n });\n const [isFocusWithin, setFocusWithin] = useState(Boolean(autoFocus));\n const { focusWithinProps } = useFocusWithin({\n onFocusWithinChange: (isFocusWithin) => setFocusWithin(isFocusWithin),\n });\n\n const [value, setValue] = useState(propsValue ?? defaultValue);\n\n useEffect(() => {\n setValue(propsValue ?? defaultValue);\n }, [propsValue, defaultValue]);\n\n warnIfNoAccessibleLabelFound(props as ComponentProps<'label'>, [label]);\n\n const handleChange = useCallback(\n (event: React.ChangeEvent<HTMLInputElement>) => {\n if (isDisabled || isReadOnly) {\n return;\n }\n\n if (onChange) {\n onChange(event.target.value, name, event);\n }\n setValue(event.target.value);\n },\n [onChange]\n );\n\n return (\n <StyledTextField\n {...focusWithinProps}\n {...forwardedProps}\n $hasContent={isFocusWithin || Boolean(value) || Boolean(placeholder)}\n $isColored={isColored}\n $isDisabled={isDisabled}\n $isFocusVisible={isFocusVisible}\n $isInvalid={isInvalid || (isRequired && !value)}\n $isRequired={isRequired}\n $isFocused={isFocused}\n $variant={variant}\n className={classNames(TextField.className, className)}\n ref={ref as MutableRefObject<HTMLDivElement>}\n >\n {label ? (\n <label className={`${TextField.className}__label`}>\n <span>{label}</span>\n </label>\n ) : null}\n <div className={`${TextField.className}__input-wrapper`}>\n <input\n {...inputProps}\n {...focusProps}\n aria-disabled={isDisabled}\n aria-invalid={isInvalid || (isRequired && !value)}\n aria-label={ariaLabel}\n aria-labelledby={ariaLabelledby}\n aria-readonly={isReadOnly}\n aria-required={isRequired}\n autoFocus={autoFocus}\n className={`${TextField.className}-input-wrapper__input`}\n disabled={isDisabled}\n name={name}\n onChange={handleChange}\n placeholder={placeholder}\n ref={inputRef as MutableRefObject<HTMLInputElement>}\n type=\"text\"\n value={value}\n />\n {label ? (\n <fieldset\n aria-hidden=\"true\"\n className={`${TextField.className}-input-wrapper__fieldset`}\n >\n <legend\n className={`${TextField.className}-input-wrapper-fieldset__legend`}\n >\n <span>{label}</span>\n </legend>\n </fieldset>\n ) : null}\n </div>\n </StyledTextField>\n );\n }\n);\nTextField.className = CLASSNAME;\nTextField.defaultProps = DEFAULT_PROPS;\nTextField.displayName = COMPONENT_NAME;\n"],"names":["FontFamily","raleway","electrolize","ColorPalette","default","success","error","warning","info","question","ProductColorPalette","website","ondmarc","oninbox","ondomain","hardenize","tools","DataVizColorPalette","purple","blue","green","red","pink","cyan","orange","yellow","brown","grey","NeutralColorPalette","black","darkgrey","midgrey","lightgrey","xlightgrey","white","AlignSelf","auto","normal","start","end","center","baseline","stretch","JustifySelf","left","right","AlignContent","AlignItems","FlexDirection","row","column","FlexWrap","nowrap","wrap","JustifyContent","JustifyItems","isComponent","component","instance","componentName","displayName","React","isValidElement","type","filterComponents","children","components","Array","isArray","childArray","Children","forEach","child","comp","push","partitionComponents","predicates","elements","map","found","predicate","index","length","RedsiftColorDefaultPrimary","RedsiftColorDefaultSecondary","RedsiftColorDefaultHover","RedsiftColorDefaultActive","RedsiftColorDefaultActiveHover","RedsiftColorDefaultPrimaryActive","RedsiftColorDefaultPrimaryActiveHover","RedsiftColorWebsitePrimary","RedsiftColorWebsiteSecondary","RedsiftColorWebsiteHover","RedsiftColorWebsiteActive","RedsiftColorWebsiteActiveHover","RedsiftColorWebsitePrimaryActive","RedsiftColorWebsitePrimaryActiveHover","RedsiftColorOndmarcPrimary","RedsiftColorOndmarcSecondary","RedsiftColorOndmarcHover","RedsiftColorOndmarcActive","RedsiftColorOndmarcActiveHover","RedsiftColorOndmarcPrimaryActive","RedsiftColorOndmarcPrimaryActiveHover","RedsiftColorOninboxPrimary","RedsiftColorOninboxSecondary","RedsiftColorOninboxHover","RedsiftColorOninboxActive","RedsiftColorOninboxActiveHover","RedsiftColorOninboxPrimaryActive","RedsiftColorOninboxPrimaryActiveHover","RedsiftColorOndomainPrimary","RedsiftColorOndomainSecondary","RedsiftColorOndomainHover","RedsiftColorOndomainActive","RedsiftColorOndomainActiveHover","RedsiftColorOndomainPrimaryActive","RedsiftColorOndomainPrimaryActiveHover","RedsiftColorHardenizePrimary","RedsiftColorHardenizeSecondary","RedsiftColorHardenizeHover","RedsiftColorHardenizeActive","RedsiftColorHardenizeActiveHover","RedsiftColorHardenizePrimaryActive","RedsiftColorHardenizePrimaryActiveHover","RedsiftColorToolsPrimary","RedsiftColorToolsSecondary","RedsiftColorToolsHover","RedsiftColorToolsActive","RedsiftColorToolsActiveHover","RedsiftColorToolsPrimaryActive","RedsiftColorToolsPrimaryActiveHover","RedsiftColorSuccessPrimary","RedsiftColorSuccessSecondary","RedsiftColorSuccessHover","RedsiftColorSuccessActive","RedsiftColorSuccessActiveHover","RedsiftColorSuccessPrimaryActive","RedsiftColorSuccessPrimaryActiveHover","RedsiftColorErrorPrimary","RedsiftColorErrorSecondary","RedsiftColorErrorHover","RedsiftColorErrorActive","RedsiftColorErrorActiveHover","RedsiftColorErrorPrimaryActive","RedsiftColorErrorPrimaryActiveHover","RedsiftColorWarningPrimary","RedsiftColorWarningSecondary","RedsiftColorWarningHover","RedsiftColorWarningActive","RedsiftColorWarningActiveHover","RedsiftColorWarningPrimaryActive","RedsiftColorWarningPrimaryActiveHover","RedsiftColorInfoPrimary","RedsiftColorInfoSecondary","RedsiftColorInfoHover","RedsiftColorInfoActive","RedsiftColorInfoActiveHover","RedsiftColorInfoPrimaryActive","RedsiftColorInfoPrimaryActiveHover","RedsiftColorQuestionPrimary","RedsiftColorQuestionSecondary","RedsiftColorQuestionHover","RedsiftColorQuestionActive","RedsiftColorQuestionActiveHover","RedsiftColorQuestionPrimaryActive","RedsiftColorQuestionPrimaryActiveHover","RedsiftColorNoDataPrimary","RedsiftColorNoDataSecondary","RedsiftColorNoDataHover","RedsiftColorNoDataActive","RedsiftColorNoDataActiveHover","RedsiftColorNoDataPrimaryActive","RedsiftColorNoDataPrimaryActiveHover","RedsiftColorNeutralBlack","RedsiftColorNeutralDarkgrey","RedsiftColorNeutralMidgrey","RedsiftColorNeutralLightgrey","RedsiftColorNeutralXlightgrey","RedsiftColorNeutralWhite","RedsiftAppBarColorBackground","RedsiftAppBarColorText","RedsiftAppBarColorExpandIconResting","RedsiftAppBarColorExpandIconHover","RedsiftAppBarColorExpandIconBackgroundHover","RedsiftDataVizColorPurpleDefault","RedsiftDataVizColorPurpleDark","RedsiftDataVizColorPurpleDarker","RedsiftDataVizColorPurpleLight","RedsiftDataVizColorPurpleLighter","RedsiftDataVizColorBlueDefault","RedsiftDataVizColorBlueDark","RedsiftDataVizColorBlueDarker","RedsiftDataVizColorBlueLight","RedsiftDataVizColorBlueLighter","RedsiftDataVizColorGreenDefault","RedsiftDataVizColorGreenDark","RedsiftDataVizColorGreenDarker","RedsiftDataVizColorGreenLight","RedsiftDataVizColorGreenLighter","RedsiftDataVizColorRedDefault","RedsiftDataVizColorRedDark","RedsiftDataVizColorRedDarker","RedsiftDataVizColorRedLight","RedsiftDataVizColorRedLighter","RedsiftDataVizColorPinkDefault","RedsiftDataVizColorPinkDark","RedsiftDataVizColorPinkDarker","RedsiftDataVizColorPinkLight","RedsiftDataVizColorPinkLighter","RedsiftDataVizColorCyanDefault","RedsiftDataVizColorCyanDark","RedsiftDataVizColorCyanDarker","RedsiftDataVizColorCyanLight","RedsiftDataVizColorCyanLighter","RedsiftDataVizColorOrangeDefault","RedsiftDataVizColorOrangeDark","RedsiftDataVizColorOrangeDarker","RedsiftDataVizColorOrangeLight","RedsiftDataVizColorOrangeLighter","RedsiftDataVizColorYellowDefault","RedsiftDataVizColorYellowDark","RedsiftDataVizColorYellowDarker","RedsiftDataVizColorYellowLight","RedsiftDataVizColorYellowLighter","RedsiftDataVizColorBrownDefault","RedsiftDataVizColorBrownDark","RedsiftDataVizColorBrownDarker","RedsiftDataVizColorBrownLight","RedsiftDataVizColorBrownLighter","RedsiftDataVizColorGreyDefault","RedsiftDataVizColorGreyDark","RedsiftDataVizColorGreyDarker","RedsiftDataVizColorGreyLight","RedsiftDataVizColorGreyLighter","RedsiftSideNavigationColorBackground","RedsiftSideNavigationColorMenuItemTextResting","RedsiftSideNavigationColorMenuItemTextDisabled","RedsiftSideNavigationColorMenuItemTextHover","RedsiftSideNavigationColorMenuItemBackgroundHover","RedsiftSideNavigationColorMenuItemBackgroundSecondary","RedsiftSideNavigationColorMenuItemBackgroundActive","RedsiftSideNavigationColorMenuItemActive","RedsiftSideNavigationColorScrollbarResting","RedsiftSideNavigationColorScrollbarHover","RedsiftLayoutZIndexFooter","RedsiftLayoutZIndexHeader","RedsiftLayoutZIndexSidePanel","RedsiftLayoutZIndexDropdown","RedsiftLayoutZIndexOverlay","RedsiftLayoutZIndexDialog","RedsiftLayoutZIndexPopover","RedsiftLayoutZIndexTooltip","RedsiftTypographyFontFamilyRaleway","RedsiftTypographyFontFamilyElectrolize","RedsiftTypographyFontFamilySourceCodePro","RedsiftTypographyFontWeightRegular","RedsiftTypographyFontWeightMedium","RedsiftTypographyFontWeightSemiBold","RedsiftTypographyFontWeightBold","RedsiftTypographyH1FontFamily","RedsiftTypographyH1FontSize","RedsiftTypographyH1FontWeight","RedsiftTypographyH1LineHeight","RedsiftTypographyH1TextTransform","RedsiftTypographyH2FontFamily","RedsiftTypographyH2FontSize","RedsiftTypographyH2FontWeight","RedsiftTypographyH2LineHeight","RedsiftTypographyH2TextTransform","RedsiftTypographyH3FontFamily","RedsiftTypographyH3FontSize","RedsiftTypographyH3FontWeight","RedsiftTypographyH3LineHeight","RedsiftTypographyH3TextTransform","RedsiftTypographyH4FontFamily","RedsiftTypographyH4FontSize","RedsiftTypographyH4FontWeight","RedsiftTypographyH4LineHeight","RedsiftTypographyH4TextTransform","RedsiftTypographyH5FontFamily","RedsiftTypographyH5FontSize","RedsiftTypographyH5FontWeight","RedsiftTypographyH5LineHeight","RedsiftTypographyH5TextTransform","RedsiftTypographySubtitleFontFamily","RedsiftTypographySubtitleFontSize","RedsiftTypographySubtitleFontWeight","RedsiftTypographySubtitleLineHeight","RedsiftTypographySubtitleTextTransform","RedsiftTypographyBodyFontFamily","RedsiftTypographyBodyFontSize","RedsiftTypographyBodyFontWeight","RedsiftTypographyBodyLineHeight","RedsiftTypographyBodyTextTransform","RedsiftTypographyBody2FontFamily","RedsiftTypographyBody2FontSize","RedsiftTypographyBody2FontWeight","RedsiftTypographyBody2LineHeight","RedsiftTypographyLinkFontFamily","RedsiftTypographyLinkFontSize","RedsiftTypographyLinkFontWeight","RedsiftTypographyLinkLineHeight","RedsiftTypographyInputTextFontFamily","RedsiftTypographyInputTextFontSize","RedsiftTypographyInputTextFontWeight","RedsiftTypographyInputTextLineHeight","RedsiftTypographyButtonFontFamily","RedsiftTypographyButtonFontSize","RedsiftTypographyButtonFontWeight","RedsiftTypographyButtonLineHeight","RedsiftTypographyButtonTextTransform","RedsiftTypographyCaptionFontFamily","RedsiftTypographyCaptionFontSize","RedsiftTypographyCaptionFontWeight","RedsiftTypographyCaptionLineHeight","RedsiftTypographyCaptionTextTransform","RedsiftTypographyHelperFontFamily","RedsiftTypographyHelperFontSize","RedsiftTypographyHelperFontWeight","RedsiftTypographyHelperLineHeight","RedsiftTypographyBadgeFontFamily","RedsiftTypographyBadgeFontSize","RedsiftTypographyBadgeFontWeight","RedsiftTypographyBadgeLineHeight","RedsiftTypographyPillFontFamily","RedsiftTypographyPillFontSize","RedsiftTypographyPillFontWeight","RedsiftTypographyPillLineHeight","RedsiftTypographyChipFontFamily","RedsiftTypographyChipFontSize","RedsiftTypographyChipFontWeight","RedsiftTypographyChipLineHeight","RedsiftTypographyTooltipFontFamily","RedsiftTypographyTooltipFontSize","RedsiftTypographyTooltipFontWeight","RedsiftTypographyTooltipLineHeight","warnIfNoAccessibleLabelFound","props","additionalKeysToCheck","ariaLabel","ariaLabelledby","hasText","filter","key","hasAriaLabel","Boolean","console","warn","useWindowSize","windowSize","setWindowSize","useState","width","undefined","height","size","useEffect","handleResize","window","innerWidth","innerHeight","addEventListener","removeEventListener","useBoundingClientRect","ref","deps","boundingRect","setBoundingRect","current","getBoundingClientRect","$89yE2$react","$89yE2$useContext","$89yE2$useState","$89yE2$useLayoutEffect","$iFADg$useIsSSR","$iFADg$useState","$iFADg$useEffect","$iFADg$react","$iFADg$useContext","$iFADg$LocalizedStringDictionary","$iFADg$useMemo","$iFADg$LocalizedStringFormatter","$iFADg$useRef","$iFADg$DateFormatter","$iFADg$NumberFormatter","$iFADg$useCallback","AlertVariant","enUS","frFR","IconButtonVariant","primary","secondary","unstyled","IconSize","xsmall","small","medium","large","xlarge","baseLayout","css","flex","flexGrow","flexShrink","flexBasis","alignSelf","justifySelf","order","gridArea","gridColumn","gridRow","gridColumnStart","gridColumnEnd","gridRowStart","gridRowEnd","baseSpacing","margin","marginBottom","marginLeft","marginRight","marginTop","baseInternalSpacing","padding","paddingBottom","paddingLeft","paddingRight","paddingTop","baseSizing","maxHeight","maxWidth","minHeight","minWidth","basePositioning","position","top","bottom","zIndex","baseFlexbox","alignContent","alignItems","flexDirection","flexWrap","gap","justifyContent","baseGrid","gridAutoColumns","gridAutoRows","gridTemplateAreas","gridTemplateColumns","gridTemplateRows","justifyItems","baseStyling","baseContainer","display","StyledIcon","styled","span","$color","Object","keys","indexOf","$size","COMPONENT_NAME","CLASSNAME","DEFAULT_PROPS","Icon","forwardRef","ariaHidden","badge","className","color","icon","svgProps","forwardedProps","_excluded","_extends","classNames","defaultProps","ButtonVariant","StyledButton","button","$variant","$isActive","$isDisabled","$fullWidth","SpinnerSize","StyledSpinner","img","AppContainerContext","createContext","StyledAppContainer","div","$productTheme","AppContainer","locale","productTheme","hasAppBar","hasAppSidePanel","hasAppContent","useMemo","appBar","appSidePanel","appContent","toArray","isSidePanelCollapsed","setIsSidePanelCollapsed","title","setTitle","state","collapseSidePanel","expandSidePanel","colorToFile","spinnerDefault","spinnerHardenize","spinnerNoData","spinnerOndmarc","spinnerOndomain","spinnerOninbox","spinnerQuestion","spinnerTools","spinnerWebsite","sizeToDimension","Spinner","propsColor","appContainerState","useContext","stringFormatter","useLocalizedStringFormatter","intlMessages","format","variant","Button","buttonRef","useRef","buttonProps","isPressed","useButton","_objectSpread","isDisabled","isLoading","disabled","preventFocusOnPress","fullWidth","isActive","leftIcon","onPress","rightIcon","StyledIconButton","IconButton","StyledAlert","$hasTitle","$isClosable","$isClosed","HeadingVariant","h1","h2","h3","h4","h5","body","HeadingComponent","StyledHeading","$noWrap","Heading","as","noWrap","StyledFlexbox","inline","Flexbox","getVariant","mdiInformation","mdiAlertCircle","mdiCheckCircle","mdiAlert","Alert","isClosable","isClosed","propsIsClosed","onClose","setIsClosed","handleClose","useCallback","mdiClose","useIsLoaded","isLoaded","setIsLoaded","StyledAppBar","header","$isSidePanelCollapsed","$isLoaded","AppBar","collapseIconButtonProps","collapseIconButtonRef","expandIconButtonProps","expandIconButtonRef","fallbackTitle","propsTitle","mdiMenu","mdiMenuOpen","StyledAppContent","main","AppContent","StyledAppSidePanel","$isCollapsed","AppSidePanel","featuredElements","isCollapsed","logo","src","alt","SideNavigationMenuReducerActionType","SideNavigationMenuBarContext","SideNavigationMenuContext","StyledSideNavigationMenuItem","a","$isSecondLevel","$withoutIcons","$isCurrent","BadgeVariant","dot","standard","StyledBadge","$isReversed","includes","$autoBreak","Badge","autoBreak","isReversed","SideNavigationMenuItem","menuItemRef","badgeProps","href","iconProps","iconRef","isCurrent","isSecondLevel","onClick","onKeyDown","tabIndex","withoutIcons","sideNavigationMenuBarContext","sideNavigationMenuContext","isFirstChild","setIsFirstChild","menuItems","menuItemNode","add","delete","StyledSideNavigationMenu","$isExpanded","SideNavigationMenuReducer","action","Expand","isExpanded","Collapse","currentIndex","previousIndex","Move","SideNavigationMenu","hasBadge","propsIsExpanded","menuProps","menuRef","menubarItems","renderedMenuItems","cloneElement","Set","dispatch","useReducer","first","last","move","open","close","focusButton","focus","previous","next","match","e","items","from","reorderedItems","slice","matches","menuItem","textContent","firstLetter","toLowerCase","charAt","currentNode","nextMatch","findIndex","item","value","keyDownOnButton","target","code","stopPropagation","click","buttonEventHandler","event","keyDownOnMenuItemList","preventDefault","menuItemListEventHandler","mdiChevronDown","mdiChevronRight","StyledSideNavigationMenuBar","nav","$marginTop","usePrevious","SideNavigationMenuBar","navRef","menubarProps","menubarRef","navItems","setCurrentIndex","keyDown","parentMenu","parentNode","isFromSubmenu","getAttribute","previousNode","setAttribute","isMenu","useSideNavigationMenuBar","menuBarChildren","rest","useAppSidePanel","sideNavigationMenuBarProps","StyledBreadcrumbItem","BreadcrumbItem","StyledBreadcrumbs","BaseBreadcrumbs","Breadcrumbs","Item","breadcrumbItems","assign","ButtonLink","StyledCard","StyledCardHeader","wave","keyframes","StyledSkeleton","StyledSkeletonCircle","SkeletonCircle","SkeletonTextVariant","subtitle","body2","caption","StyledSkeletonText","$fontSize","$lineHeight","SkeletonText","fontSize","lineHeight","BaseSkeleton","Skeleton","Circle","Text","CardHeader","headingProps","subheader","StyledCardBody","CardBody","StyledCardActions","CardActions","BaseCard","defaultCollapsed","propsIsCollapsed","isCollapsible","onCollapse","setIsCollapsed","handleCollapse","collapsed","actions","mdiChevronUp","Card","Header","Body","Actions","CheckboxGroupOrientation","horizontal","vertical","CheckboxGroupContext","StyledCheckboxGroup","$orientation","$isInvalid","orientation","CheckboxGroup","defaultValues","description","isInvalid","isReadOnly","isRequired","label","onChange","possibleValues","selectedValues","setValue","values","addValue","concat","removeValue","existingValue","StyledCheckbox","$isColored","$isFocusVisible","isColored","Checkbox","groupState","autoFocus","defaultSelected","inputProps","inputRef","isControlled","isIndeterminate","isSelected","propsIsSelected","name","isFocusVisible","focusProps","useFocusRing","setSelected","handleChange","checked","mdiCheckboxMarked","mdiMinusBox","mdiCheckboxBlankOutline","ConditionalWrapper","condition","wrapper","ShieldVariant","successLocked","successUnlocked","fail","failLocked","failUnlocked","warningLocked","warningUnlocked","ignored","noData","email","StyledShield","$isOutlined","Shield","isOutlined","verticalAlign","StyledDetailedCardCollapsibleSectionItems","$hideBackground","DetailedCardCollapsibleSectionItems","hideBackground","StyledDetailedCardSection","TextVariant","inherit","TextComponent","p","b","i","u","abbr","cite","del","em","ins","kbd","mark","s","samp","sub","sup","StyledText","$as","$fontFamily","fontFamily","hasCollapsibleChildren","hasCollapsible","DetailedCardSection","propsIsCollapsible","StyledDetailedCard","StyledDetailedCardHeader","DetailedCardHeader","StyledPill","Pill","StyledDetailedCardSectionItem","DetailedCardSectionItem","pill","pillProps","shield","computePosition","min","max","min$1","max$1","arrow","getWindow","isHTMLElement","isElement","isShadowRoot","useLatestRef","useFloating","TooltipContext","TooltipPlacement","StyledTooltipContent","$placement","TooltipContent","style","getFloatingProps","isOpen","placement","refs","strategy","x","y","middlewareData","arrowX","arrowY","useTooltipContext","popoverRef","useMergeRefs","setFloating","arrowRef","staticSide","split","visibility","TooltipTrigger","getReferenceProps","tooltipId","childrenRef","triggerRef","setReference","useTooltip","defaultOpen","delay","propsIsOpen","onOpen","propsTooltipId","setIsOpen","useId","handleOpen","data","onOpenChange","whileElementsMounted","autoUpdate","middleware","offset","flip","fallbackAxisSideDirection","shift","element","context","hover","useHover","useFocus","dismiss","useDismiss","role","useRole","interactions","useInteractions","BaseTooltip","tooltip","trigger","content","Tooltip","Trigger","Content","Error","hasMultipleCollapsibleChildren","collapsibleChildren","childrenArray","hasCollapsibleItems","sectionChild","BaseDetailedCard","areAllCollapsed","propsAreAllCollapsed","defaultAllCollapsed","onCollapseAll","allCollapsed","setAllCollapsed","mdiPageLast","transform","mdiKeyboardCaps","Math","random","DetailedCard","Section","CollapsibleSectionItems","SectionItem","StyledGrid","StyledGridItem","GridItem","BaseGrid","Grid","StyledLink","Link","LinkButton","StyledNumber","compactDisplay","currencyDisplay","currencySign","localeMatcher","notation","signDisplay","unitDisplay","roundingMode","roundingPriority","trailingZeroDisplay","Number","currency","maximumFractionDigits","maximumSignificantDigits","minimumFractionDigits","minimumIntegerDigits","minimumSignificantDigits","numberingSystem","roundingIncrement","unit","useGrouping","formatter","useNumberFormatter","RadioGroupOrientation","RadioGroupContext","StyledRadioGroup","RadioGroup","defaultValue","selectedValue","previousValue","StyledRadio","Radio","mdiRadioboxMarked","mdiRadioboxBlank","SwitchGroupContext","StyledSwitch","$isSelected","Switch","SwitchGroupOrientation","StyledSwitchGroup","SwitchGroup","TextFieldVariant","underline","StyledTextField","$hasContent","$isFocused","TextField","placeholder","propsValue","isFocused","isFocusWithin","setFocusWithin","focusWithinProps","useFocusWithin","onFocusWithinChange"],"mappings":"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A,GACDmY,UAAU,GACVnY,GAAI,CAAA;AACd;AACA,UAAW,CAAA,GACDmoB,UAAU,GACVnoB,GAAI,CAAA;AACd;AACA,8BAAA,EAAgCsZ,UAAU,GAAG,SAAS,GAAG,UAAW,CAAA;AACpE;AACA,UAAA,CAAW,GACDtZ,GAAI,CAAA;AACd;AACA,UAAY,CAAA,CAAA;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAA,EAAQiF,QAAQ,KAAK8iB,gBAAgB,CAACC,SAAS,GACrChoB,GAAI,CAAA;AACd;AACA,UAAA,CAAW,GACD,EAAG,CAAA;AACb;AACA;AACA;AACA,MAAQmF,EAAAA,WAAW,GACTnF,GAAI,CAAA;AACd;AACA,UAAA,CAAW,GACDA,GAAI,CAAA;AACd;AACA,UAAY,CAAA,CAAA;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAA,EAAQiF,QAAQ,KAAK8iB,gBAAgB,CAACC,SAAS,GACrChoB,GAAI,CAAA;AACd;AACA,UAAA,CAAW,GACDA,GAAI,CAAA;AACd;AACA,UAAY,CAAA,CAAA;AACZ;AACA,MAAQmF,EAAAA,WAAW,GACTnF,GAAI,CAAA;AACd;AACA,UAAW,CAAA,GACDmY,UAAU,GACVnY,GAAI,CAAA;AACd;AACA,UAAW,CAAA,GACDmoB,UAAU,GACVnoB,GAAI,CAAA;AACd;AACA,8BAAA,EAAgCsZ,UAAU,GAAG,SAAS,GAAG,UAAW,CAAA;AACpE;AACA,UAAA,CAAW,GACDtZ,GAAI,CAAA;AACd;AACA,UAAY,CAAA,CAAA;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAQ,EAAA,CAACkoB,WAAW,GACVloB,GAAI,CAAA;AACd;AACA;AACA,UAAA,CAAW,GACDA,GAAI,CAAA;A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"}