@redsift/design-system 7.7.0-alpha.3 → 7.7.0

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 color: var(--redsift-side-navigation-color-menu-item-text-resting);\n `\n : css`\n color: var(--redsift-side-navigation-color-menu-item-text-disabled);\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 color: var(--redsift-side-navigation-color-menu-item-text-hover);\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 color: var(--redsift-side-navigation-color-menu-item-text-resting);\n `\n : css`\n color: var(--redsift-side-navigation-color-menu-item-text-disabled);\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 color: var(--redsift-side-navigation-color-menu-item-text-hover);\n cursor: pointer;\n\n .redsift-side-navigation-menu__expand-icon {\n color: var(--redsift-side-navigation-color-menu-item-text-hover);\n }\n `\n : ''}\n }\n\n .redsift-side-navigation-menu__expand-icon {\n ${({ $isDisabled }) =>\n !$isDisabled\n ? css`\n color: var(--redsift-side-navigation-color-menu-item-text-resting);\n `\n : css`\n color: var(--redsift-side-navigation-color-menu-item-text-disabled);\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 var(--redsift-color-neutral-midgrey);\n margin-bottom: 8px;\n }\n\n .redsift-detailed-card-section-header__title {\n font-weight: 700;\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 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 $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 <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 {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/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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"}