@clickhouse/click-ui 0.6.1-rc2 → 0.6.2-rc1
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/README.md +5 -0
- package/dist/cjs/click-ui.css +1021 -11
- package/dist/cjs/components/Accordion/Accordion.css +111 -0
- package/dist/cjs/components/Accordion/Accordion.module.css.cjs +33 -0
- package/dist/cjs/components/Accordion/Accordion.module.css.cjs.map +1 -0
- package/dist/cjs/components/Accordion/index.cjs +51 -54
- package/dist/cjs/components/Accordion/index.cjs.map +1 -1
- package/dist/cjs/components/Alert/Alert.css +169 -0
- package/dist/cjs/components/Alert/Alert.module.css.cjs +75 -0
- package/dist/cjs/components/Alert/Alert.module.css.cjs.map +1 -0
- package/dist/cjs/components/Alert/index.cjs +113 -69
- package/dist/cjs/components/Alert/index.cjs.map +1 -1
- package/dist/cjs/components/Assets/Icons/Check.cjs +1 -1
- package/dist/cjs/components/Assets/Icons/Check.cjs.map +1 -1
- package/dist/cjs/components/Assets/Icons/Dollar.cjs +10 -0
- package/dist/cjs/components/Assets/Icons/Dollar.cjs.map +1 -0
- package/dist/cjs/components/Assets/Icons/Pin.cjs +13 -0
- package/dist/cjs/components/Assets/Icons/Pin.cjs.map +1 -0
- package/dist/cjs/components/Assets/Icons/Unpin.cjs +17 -0
- package/dist/cjs/components/Assets/Icons/Unpin.cjs.map +1 -0
- package/dist/cjs/components/Assets/Icons/system/IconsLight.cjs +6 -0
- package/dist/cjs/components/Assets/Icons/system/IconsLight.cjs.map +1 -1
- package/dist/cjs/components/AutoComplete/index.cjs +4 -1
- package/dist/cjs/components/AutoComplete/index.cjs.map +1 -1
- package/dist/cjs/components/Button/index.cjs +2 -1
- package/dist/cjs/components/Button/index.cjs.map +1 -1
- package/dist/cjs/components/ButtonGroup/ButtonGroup.css +37 -0
- package/dist/cjs/components/ButtonGroup/ButtonGroup.module.css.cjs +8 -0
- package/dist/cjs/components/ButtonGroup/ButtonGroup.module.css.cjs.map +1 -1
- package/dist/cjs/components/ButtonGroup/index.cjs +21 -2
- package/dist/cjs/components/ButtonGroup/index.cjs.map +1 -1
- package/dist/cjs/components/CardPrimary/CardPrimaryTopBadge.cjs +1 -0
- package/dist/cjs/components/Checkbox/index.cjs +1 -11
- package/dist/cjs/components/Checkbox/index.cjs.map +1 -1
- package/dist/cjs/components/Collapsible/Collapsible.css +79 -0
- package/dist/cjs/components/Collapsible/Collapsible.module.css.cjs +31 -0
- package/dist/cjs/components/Collapsible/Collapsible.module.css.cjs.map +1 -0
- package/dist/cjs/components/Collapsible/IconWrapper.cjs +5 -11
- package/dist/cjs/components/Collapsible/IconWrapper.cjs.map +1 -1
- package/dist/cjs/components/Collapsible/index.cjs +36 -24
- package/dist/cjs/components/Collapsible/index.cjs.map +1 -1
- package/dist/cjs/components/Container/Container.css +3 -3
- package/dist/cjs/components/ContextMenu/index.cjs +4 -1
- package/dist/cjs/components/ContextMenu/index.cjs.map +1 -1
- package/dist/cjs/components/DatePicker/Common.cjs +1 -1
- package/dist/cjs/components/DatePicker/Common.cjs.map +1 -1
- package/dist/cjs/components/DatePicker/index.cjs +4 -1
- package/dist/cjs/components/DatePicker/index.cjs.map +1 -1
- package/dist/cjs/components/Dialog/Dialog.css +97 -0
- package/dist/cjs/components/Dialog/Dialog.module.css.cjs +27 -0
- package/dist/cjs/components/Dialog/Dialog.module.css.cjs.map +1 -0
- package/dist/cjs/components/Dialog/index.cjs +29 -71
- package/dist/cjs/components/Dialog/index.cjs.map +1 -1
- package/dist/cjs/components/Dropdown/index.cjs +4 -1
- package/dist/cjs/components/Dropdown/index.cjs.map +1 -1
- package/dist/cjs/components/Flyout/index.cjs +23 -19
- package/dist/cjs/components/Flyout/index.cjs.map +1 -1
- package/dist/cjs/components/HoverCard/HoverCard.css +6 -0
- package/dist/cjs/components/HoverCard/HoverCard.module.css.cjs +10 -0
- package/dist/cjs/components/HoverCard/HoverCard.module.css.cjs.map +1 -0
- package/dist/cjs/components/HoverCard/index.cjs +8 -6
- package/dist/cjs/components/HoverCard/index.cjs.map +1 -1
- package/dist/cjs/components/Icon/SvgImageElement.cjs +1 -0
- package/dist/cjs/components/Link/Link.css +12 -8
- package/dist/cjs/components/Link/Link.module.css.cjs +15 -4
- package/dist/cjs/components/Link/Link.module.css.cjs.map +1 -1
- package/dist/cjs/components/Link/index.cjs +6 -6
- package/dist/cjs/components/Link/index.cjs.map +1 -1
- package/dist/cjs/components/MultiAccordion/MultiAccordion.css +200 -0
- package/dist/cjs/components/MultiAccordion/MultiAccordion.module.css.cjs +42 -0
- package/dist/cjs/components/MultiAccordion/MultiAccordion.module.css.cjs.map +1 -0
- package/dist/cjs/components/MultiAccordion/index.cjs +102 -92
- package/dist/cjs/components/MultiAccordion/index.cjs.map +1 -1
- package/dist/cjs/components/Popover/index.cjs +3 -1
- package/dist/cjs/components/Popover/index.cjs.map +1 -1
- package/dist/cjs/components/Select/common/InternalSelect.cjs +4 -2
- package/dist/cjs/components/Select/common/InternalSelect.cjs.map +1 -1
- package/dist/cjs/components/SidebarNavigationItem/SidebarNavigationItem.css +167 -0
- package/dist/cjs/components/SidebarNavigationItem/SidebarNavigationItem.module.css.cjs +23 -0
- package/dist/cjs/components/SidebarNavigationItem/SidebarNavigationItem.module.css.cjs.map +1 -0
- package/dist/cjs/components/SidebarNavigationItem/index.cjs +60 -69
- package/dist/cjs/components/SidebarNavigationItem/index.cjs.map +1 -1
- package/dist/cjs/components/SidebarNavigationTitle/SidebarNavigationTitle.css +76 -0
- package/dist/cjs/components/SidebarNavigationTitle/SidebarNavigationTitle.module.css.cjs +19 -0
- package/dist/cjs/components/SidebarNavigationTitle/SidebarNavigationTitle.module.css.cjs.map +1 -0
- package/dist/cjs/components/SidebarNavigationTitle/index.cjs +35 -23
- package/dist/cjs/components/SidebarNavigationTitle/index.cjs.map +1 -1
- package/dist/cjs/components/Tabs/Tabs.css +54 -0
- package/dist/cjs/components/Tabs/Tabs.module.css.cjs +20 -0
- package/dist/cjs/components/Tabs/Tabs.module.css.cjs.map +1 -0
- package/dist/cjs/components/Tabs/index.cjs +45 -20
- package/dist/cjs/components/Tabs/index.cjs.map +1 -1
- package/dist/cjs/components/Tooltip/index.cjs +4 -1
- package/dist/cjs/components/Tooltip/index.cjs.map +1 -1
- package/dist/cjs/index.cjs +5 -0
- package/dist/cjs/index.cjs.map +1 -1
- package/dist/cjs/providers/PortalContext.cjs +19 -0
- package/dist/cjs/providers/PortalContext.cjs.map +1 -0
- package/dist/cjs/providers/PortalProvider.cjs +16 -0
- package/dist/cjs/providers/PortalProvider.cjs.map +1 -0
- package/dist/cjs/theme/styles/tokens-dark.css +5 -0
- package/dist/cjs/theme/styles/tokens-light.css +5 -0
- package/dist/cjs/theme/tokens/variables.dark.cjs +15 -0
- package/dist/cjs/theme/tokens/variables.dark.cjs.map +1 -1
- package/dist/cjs/theme/tokens/variables.light.cjs +15 -0
- package/dist/cjs/theme/tokens/variables.light.cjs.map +1 -1
- package/dist/esm/click-ui.css +1021 -11
- package/dist/esm/components/Accordion/Accordion.css +111 -0
- package/dist/esm/components/Accordion/Accordion.module.css.js +22 -0
- package/dist/esm/components/Accordion/Accordion.module.css.js.map +1 -0
- package/dist/esm/components/Accordion/index.js +51 -54
- package/dist/esm/components/Accordion/index.js.map +1 -1
- package/dist/esm/components/Alert/Alert.css +169 -0
- package/dist/esm/components/Alert/Alert.module.css.js +53 -0
- package/dist/esm/components/Alert/Alert.module.css.js.map +1 -0
- package/dist/esm/components/Alert/index.js +113 -69
- package/dist/esm/components/Alert/index.js.map +1 -1
- package/dist/esm/components/Assets/Icons/Check.js +1 -1
- package/dist/esm/components/Assets/Icons/Check.js.map +1 -1
- package/dist/esm/components/Assets/Icons/Dollar.js +6 -0
- package/dist/esm/components/Assets/Icons/Dollar.js.map +1 -0
- package/dist/esm/components/Assets/Icons/Pin.js +9 -0
- package/dist/esm/components/Assets/Icons/Pin.js.map +1 -0
- package/dist/esm/components/Assets/Icons/Unpin.js +13 -0
- package/dist/esm/components/Assets/Icons/Unpin.js.map +1 -0
- package/dist/esm/components/Assets/Icons/system/IconsLight.js +6 -0
- package/dist/esm/components/Assets/Icons/system/IconsLight.js.map +1 -1
- package/dist/esm/components/AutoComplete/index.js +4 -1
- package/dist/esm/components/AutoComplete/index.js.map +1 -1
- package/dist/esm/components/Button/index.js +2 -1
- package/dist/esm/components/Button/index.js.map +1 -1
- package/dist/esm/components/ButtonGroup/ButtonGroup.css +37 -0
- package/dist/esm/components/ButtonGroup/ButtonGroup.module.css.js +7 -1
- package/dist/esm/components/ButtonGroup/ButtonGroup.module.css.js.map +1 -1
- package/dist/esm/components/ButtonGroup/index.js +21 -2
- package/dist/esm/components/ButtonGroup/index.js.map +1 -1
- package/dist/esm/components/CardPrimary/CardPrimaryTopBadge.js +1 -0
- package/dist/esm/components/Checkbox/index.js +1 -11
- package/dist/esm/components/Checkbox/index.js.map +1 -1
- package/dist/esm/components/Collapsible/Collapsible.css +79 -0
- package/dist/esm/components/Collapsible/Collapsible.module.css.js +21 -0
- package/dist/esm/components/Collapsible/Collapsible.module.css.js.map +1 -0
- package/dist/esm/components/Collapsible/IconWrapper.js +5 -11
- package/dist/esm/components/Collapsible/IconWrapper.js.map +1 -1
- package/dist/esm/components/Collapsible/index.js +36 -24
- package/dist/esm/components/Collapsible/index.js.map +1 -1
- package/dist/esm/components/Container/Container.css +3 -3
- package/dist/esm/components/ContextMenu/index.js +4 -1
- package/dist/esm/components/ContextMenu/index.js.map +1 -1
- package/dist/esm/components/DatePicker/Common.js +1 -1
- package/dist/esm/components/DatePicker/Common.js.map +1 -1
- package/dist/esm/components/DatePicker/index.js +4 -1
- package/dist/esm/components/DatePicker/index.js.map +1 -1
- package/dist/esm/components/Dialog/Dialog.css +97 -0
- package/dist/esm/components/Dialog/Dialog.module.css.js +18 -0
- package/dist/esm/components/Dialog/Dialog.module.css.js.map +1 -0
- package/dist/esm/components/Dialog/index.js +29 -71
- package/dist/esm/components/Dialog/index.js.map +1 -1
- package/dist/esm/components/Dropdown/index.js +4 -1
- package/dist/esm/components/Dropdown/index.js.map +1 -1
- package/dist/esm/components/Flyout/index.js +23 -19
- package/dist/esm/components/Flyout/index.js.map +1 -1
- package/dist/esm/components/HoverCard/HoverCard.css +6 -0
- package/dist/esm/components/HoverCard/HoverCard.module.css.js +6 -0
- package/dist/esm/components/HoverCard/HoverCard.module.css.js.map +1 -0
- package/dist/esm/components/HoverCard/index.js +8 -6
- package/dist/esm/components/HoverCard/index.js.map +1 -1
- package/dist/esm/components/Icon/SvgImageElement.js +1 -0
- package/dist/esm/components/Link/Link.css +12 -8
- package/dist/esm/components/Link/Link.module.css.js +11 -5
- package/dist/esm/components/Link/Link.module.css.js.map +1 -1
- package/dist/esm/components/Link/index.js +6 -6
- package/dist/esm/components/Link/index.js.map +1 -1
- package/dist/esm/components/MultiAccordion/MultiAccordion.css +200 -0
- package/dist/esm/components/MultiAccordion/MultiAccordion.module.css.js +38 -0
- package/dist/esm/components/MultiAccordion/MultiAccordion.module.css.js.map +1 -0
- package/dist/esm/components/MultiAccordion/index.js +102 -92
- package/dist/esm/components/MultiAccordion/index.js.map +1 -1
- package/dist/esm/components/Popover/index.js +3 -1
- package/dist/esm/components/Popover/index.js.map +1 -1
- package/dist/esm/components/Select/common/InternalSelect.js +4 -2
- package/dist/esm/components/Select/common/InternalSelect.js.map +1 -1
- package/dist/esm/components/SidebarNavigationItem/SidebarNavigationItem.css +167 -0
- package/dist/esm/components/SidebarNavigationItem/SidebarNavigationItem.module.css.js +16 -0
- package/dist/esm/components/SidebarNavigationItem/SidebarNavigationItem.module.css.js.map +1 -0
- package/dist/esm/components/SidebarNavigationItem/index.js +60 -69
- package/dist/esm/components/SidebarNavigationItem/index.js.map +1 -1
- package/dist/esm/components/SidebarNavigationTitle/SidebarNavigationTitle.css +76 -0
- package/dist/esm/components/SidebarNavigationTitle/SidebarNavigationTitle.module.css.js +12 -0
- package/dist/esm/components/SidebarNavigationTitle/SidebarNavigationTitle.module.css.js.map +1 -0
- package/dist/esm/components/SidebarNavigationTitle/index.js +35 -23
- package/dist/esm/components/SidebarNavigationTitle/index.js.map +1 -1
- package/dist/esm/components/Tabs/Tabs.css +54 -0
- package/dist/esm/components/Tabs/Tabs.module.css.js +14 -0
- package/dist/esm/components/Tabs/Tabs.module.css.js.map +1 -0
- package/dist/esm/components/Tabs/index.js +45 -20
- package/dist/esm/components/Tabs/index.js.map +1 -1
- package/dist/esm/components/Tooltip/index.js +4 -1
- package/dist/esm/components/Tooltip/index.js.map +1 -1
- package/dist/esm/index.js +2 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/providers/PortalContext.js +13 -0
- package/dist/esm/providers/PortalContext.js.map +1 -0
- package/dist/esm/providers/PortalProvider.js +12 -0
- package/dist/esm/providers/PortalProvider.js.map +1 -0
- package/dist/esm/theme/styles/tokens-dark.css +5 -0
- package/dist/esm/theme/styles/tokens-light.css +5 -0
- package/dist/esm/theme/tokens/variables.dark.js +15 -0
- package/dist/esm/theme/tokens/variables.dark.js.map +1 -1
- package/dist/esm/theme/tokens/variables.light.js +15 -0
- package/dist/esm/theme/tokens/variables.light.js.map +1 -1
- package/dist/types/components/Accordion/Accordion.d.ts +3 -3
- package/dist/types/components/Assets/Icons/Dollar.d.ts +3 -0
- package/dist/types/components/Assets/Icons/Pin.d.ts +3 -0
- package/dist/types/components/Assets/Icons/Unpin.d.ts +3 -0
- package/dist/types/components/Assets/Icons/system/types.d.ts +1 -1
- package/dist/types/components/AutoComplete/AutoComplete.d.ts +2 -1
- package/dist/types/components/Button/Button.d.ts +1 -24
- package/dist/types/components/Button/Button.types.d.ts +3 -0
- package/dist/types/components/ButtonGroup/ButtonGroup.types.d.ts +5 -0
- package/dist/types/components/ButtonGroup/index.d.ts +1 -1
- package/dist/types/components/Collapsible/Collapsible.d.ts +3 -3
- package/dist/types/components/ContextMenu/ContextMenu.d.ts +3 -1
- package/dist/types/components/DatePicker/DatePicker.d.ts +2 -1
- package/dist/types/components/Dialog/Dialog.d.ts +2 -2
- package/dist/types/components/Dropdown/Dropdown.d.ts +3 -1
- package/dist/types/components/Flyout/Flyout.d.ts +1 -1
- package/dist/types/components/Flyout/Flyout.types.d.ts +2 -0
- package/dist/types/components/HoverCard/HoverCard.d.ts +1 -1
- package/dist/types/components/MultiAccordion/MultiAccordion.d.ts +2 -2
- package/dist/types/components/SidebarNavigationItem/SidebarNavigationItem.d.ts +9 -5
- package/dist/types/components/SidebarNavigationTitle/SidebarNavigationTitle.d.ts +9 -4
- package/dist/types/components/Tabs/Tabs.d.ts +11 -21
- package/dist/types/components/Tooltip/Tooltip.d.ts +2 -10
- package/dist/types/components/Tooltip/Tooltip.types.d.ts +1 -0
- package/dist/types/index.d.ts +2 -1
- package/dist/types/providers/PortalContext.d.ts +4 -0
- package/dist/types/providers/PortalProvider.d.ts +7 -0
- package/dist/types/providers/index.d.ts +4 -0
- package/dist/types/theme/theme.core.d.ts +30 -0
- package/dist/types/theme/tokens/variables.dark.d.ts +15 -0
- package/dist/types/theme/tokens/variables.light.d.ts +15 -0
- package/package.json +2 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.cjs","sources":["../../../../src/components/MultiAccordion/MultiAccordion.tsx"],"sourcesContent":["import * as RadixAccordion from '@radix-ui/react-accordion';\nimport { styled } from 'styled-components';\nimport type { AssetSize } from '@/types';\nimport { Icon, type IconName } from '@/components/Icon';\n\nimport { Container } from '@/components/Container';\nimport { Spacer } from '@/components/Spacer';\nimport { Text } from '@/components/Text';\nimport {\n createContext,\n MouseEventHandler,\n ReactElement,\n ReactNode,\n useContext,\n} from 'react';\nimport { GapOptions, PaddingOptions } from '@/components/Container';\nimport { SizeType as SpacerSizeType } from '@/components/Spacer';\n\ntype Size = 'none' | 'sm' | 'md' | 'lg';\ntype Color = 'default' | 'link';\n\ntype MarkAsCompletedFunctionType = (value: string) => void | Promise<void>;\n\ninterface MultiAccordionCommonProps {\n /** The accordion items to render */\n children: React.ReactNode;\n /** The size variant of the accordion */\n size?: Size;\n /** Whether the accordion should fill the full width of its container */\n fillWidth?: boolean;\n /** The gap between accordion items */\n gap?: GapOptions;\n /** Whether to show a border around each accordion item */\n showBorder?: boolean;\n /** Whether to show a check/completion indicator on items */\n showCheck?: boolean;\n /** Callback function to mark an item as completed */\n markAsCompleted?: MarkAsCompletedFunctionType;\n}\n\nexport type MultiAccordionProps = MultiAccordionCommonProps &\n (\n | Omit<RadixAccordion.AccordionMultipleProps, 'children'>\n | Omit<RadixAccordion.AccordionSingleProps, 'children'>\n );\n\ninterface MultiAccordionContextProps {\n size: Size;\n fillWidth: boolean;\n showBorder: boolean;\n showCheck: boolean;\n markAsCompleted?: MarkAsCompletedFunctionType;\n}\n\nconst MultiAccordionContext = createContext<MultiAccordionContextProps>({\n size: 'md',\n fillWidth: true,\n showBorder: true,\n showCheck: false,\n});\n\nexport const MultiAccordion = ({\n size = 'md',\n children,\n fillWidth = true,\n showCheck = false,\n showBorder = true,\n gap = 'md',\n markAsCompleted,\n ...delegated\n}: MultiAccordionProps) => {\n const contextValue = {\n size,\n fillWidth,\n showBorder,\n showCheck,\n markAsCompleted,\n };\n\n return (\n <AccordionRoot\n $fillWidth={fillWidth}\n $gap={gap}\n {...delegated}\n >\n <MultiAccordionContext.Provider value={contextValue}>\n {children}\n </MultiAccordionContext.Provider>\n </AccordionRoot>\n );\n};\ninterface MultiAccordionItemProps extends Omit<\n RadixAccordion.AccordionItemProps,\n 'title'\n> {\n /** The title text or element displayed in the accordion item header */\n title: ReactNode;\n /** The color variant of the item */\n color?: Color;\n /** Optional icon to display next to the title */\n icon?: IconName;\n /** Size of the optional icon */\n iconSize?: AssetSize;\n /** Gap size between the header and content */\n gap?: SpacerSizeType;\n /** Whether this item is marked as completed */\n isCompleted?: boolean;\n}\n\nconst MultiAccordionItem = ({\n value,\n title,\n color,\n icon,\n iconSize,\n gap,\n children,\n isCompleted = false,\n ...props\n}: MultiAccordionItemProps): ReactElement => {\n const { fillWidth, size, showBorder, showCheck, markAsCompleted } =\n useContext(MultiAccordionContext);\n\n const onClickStatus: MouseEventHandler<HTMLOrSVGElement> = e => {\n e.preventDefault();\n if (typeof markAsCompleted === 'function') {\n markAsCompleted(value);\n }\n };\n\n const customSize = size === 'none' ? 'sm' : size;\n\n return (\n <AccordionItem\n value={value}\n $showBorder={showBorder}\n $fillWidth={fillWidth}\n {...props}\n >\n <AccordionTrigger\n $size={size}\n color={color}\n >\n <AccordionIconsWrapper>\n <AccordionIconWrapper>\n <Icon\n name=\"chevron-right\"\n size={iconSize ?? customSize}\n aria-label=\"accordion icon\"\n />\n </AccordionIconWrapper>\n {icon ? (\n <Icon\n name={icon}\n size={iconSize ?? customSize}\n />\n ) : null}\n </AccordionIconsWrapper>\n <Container\n isResponsive={false}\n gap=\"sm\"\n alignItems=\"center\"\n fillWidth\n justifyContent=\"space-between\"\n component=\"span\"\n overflow=\"hidden\"\n >\n <AccordionItemTitle\n component=\"span\"\n size={customSize}\n fillWidth={fillWidth}\n >\n {title}\n </AccordionItemTitle>\n {showCheck && (\n <CustomIcon\n name={isCompleted ? 'check-in-circle' : 'circle'}\n $isCompleted={isCompleted}\n size={iconSize ?? customSize}\n aria-label=\"accordion icon status\"\n onClick={onClickStatus}\n data-icon=\"accordion-status\"\n data-testid=\"accordion-status-icon\"\n />\n )}\n </Container>\n </AccordionTrigger>\n <AccordionContent $padding={size}>\n <Spacer size={gap} />\n {children}\n </AccordionContent>\n </AccordionItem>\n );\n};\n\nMultiAccordionItem.displayName = 'MultiAccordion.Item';\nMultiAccordion.Item = MultiAccordionItem;\n\ninterface StyledAccordionRootProps {\n $fillWidth: boolean;\n $gap: GapOptions;\n}\n\nconst AccordionRoot = styled(RadixAccordion.Root)<StyledAccordionRootProps>`\n display: flex;\n flex-direction: column;\n justify-content: start;\n align-items: start;\n gap: ${({ theme, $gap }) => theme.click.container.gap[$gap]};\n ${({ $fillWidth }) => $fillWidth && 'width: 100%'};\n`;\n\ninterface StyledAccordionItemProps {\n $fillWidth: boolean;\n $showBorder: boolean;\n}\n\nconst AccordionItem = styled(RadixAccordion.Item)<StyledAccordionItemProps>`\n ${({ theme, $showBorder }) => `\n border: ${\n $showBorder ? `1px solid ${theme.click.global.color.stroke.default}` : 'none'\n };\n border-radius: ${theme.border.radii[1]};\n background-color: ${theme.click.global.color.background.default};\n `};\n ${({ $fillWidth }) => $fillWidth && 'width: 100%'};\n`;\n\ninterface StyledAccordionTriggerProps {\n $size?: Size;\n color?: Color;\n}\n\nconst AccordionTrigger = styled(RadixAccordion.Trigger)<StyledAccordionTriggerProps>`\n width: 100%;\n border: none;\n padding: 0;\n background-color: transparent;\n display: flex;\n align-items: center;\n ${({ theme, $size = 'md', color = 'default' }) => {\n const size: Size = $size === 'none' ? 'sm' : $size;\n\n return `\n padding: ${theme.click.container.space[$size]};\n gap: ${theme.click.accordion[size].space.gap};\n color: ${theme.click.accordion.color[color].label.default};\n font: ${theme.click.accordion[size].typography.label.default};\n\n &:active {\n color: ${theme.click.accordion.color[color].label.active};\n font: ${theme.click.accordion[size].typography.label.active};\n }\n\n &:hover {\n color: ${theme.click.accordion.color[color].label.hover};\n background: ${theme.click.global.color.stroke.default};\n font: ${theme.click.accordion[size].typography.label.hover};\n cursor: pointer;\n }\n\n [data-icon=\"accordion-status\"] {\n color: ${theme.global.color.stroke.intense};\n }\n `;\n }};\n border-radius: inherit;\n &[data-state='open'] {\n border-bottom-left-radius: 0px;\n border-bottom-right-radius: 0px;\n [data-icon='accordion-status'] {\n color: ${({ theme }): string => theme.global.color.accent.default};\n }\n }\n`;\n\nconst AccordionIconWrapper = styled.div`\n display: flex;\n align-items: center;\n justify-content: center;\n transition: transform 200ms cubic-bezier(0.87, 0, 0.13, 1);\n\n ${AccordionTrigger}[data-state='open'] & {\n transform: rotate(90deg);\n }\n`;\n\nconst AccordionIconsWrapper = styled.div`\n display: flex;\n align-items: center;\n justify-content: center;\n`;\n\nconst CustomIcon = styled(Icon)<{ $isCompleted: boolean }>`\n ${({ $isCompleted, theme }) =>\n $isCompleted &&\n `\n svg path {\n stroke: ${theme.global.color.background.default} !important;\n &:first-of-type {\n stroke: ${theme.global.color.accent.default} !important;\n }\n fill: ${theme.global.color.accent.default} !important;;\n }\n `}\n`;\n\nconst AccordionContent = styled(RadixAccordion.Content)<{ $padding: PaddingOptions }>`\n padding: ${({ theme, $padding }): string => theme.click.container.space[$padding]};\n padding-top: 0;\n`;\n\nconst AccordionItemTitle = styled(Text)`\n overflow: hidden;\n`;\n"],"names":["MultiAccordionContext","createContext","size","fillWidth","showBorder","showCheck","MultiAccordion","children","gap","markAsCompleted","delegated","contextValue","jsx","MultiAccordionItem","value","title","color","icon","iconSize","isCompleted","props","useContext","onClickStatus","e","preventDefault","customSize","jsxs","Icon","Container","Spacer","displayName","Item","AccordionRoot","styled","RadixAccordion","Root","withConfig","componentId","theme","$gap","click","container","$fillWidth","AccordionItem","$showBorder","global","stroke","default","border","radii","background","AccordionTrigger","Trigger","$size","space","accordion","label","typography","active","hover","intense","accent","AccordionIconWrapper","div","AccordionIconsWrapper","CustomIcon","$isCompleted","AccordionContent","Content","$padding","AccordionItemTitle","Text"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.cjs","sources":["../../../../src/components/MultiAccordion/MultiAccordion.tsx"],"sourcesContent":["import * as RadixAccordion from '@radix-ui/react-accordion';\nimport type { AssetSize } from '@/types';\nimport { Icon, type IconName } from '@/components/Icon';\n\nimport { Container } from '@/components/Container';\nimport { Spacer } from '@/components/Spacer';\nimport { Text } from '@/components/Text';\nimport {\n createContext,\n MouseEventHandler,\n ReactElement,\n ReactNode,\n useContext,\n} from 'react';\nimport { GapOptions } from '@/components/Container';\nimport { SizeType as SpacerSizeType } from '@/components/Spacer';\nimport { cn, cva } from '@/lib/cva';\nimport styles from './MultiAccordion.module.css';\n\ntype Size = 'none' | 'sm' | 'md' | 'lg';\ntype Color = 'default' | 'link';\n\ntype MarkAsCompletedFunctionType = (value: string) => void | Promise<void>;\n\ninterface MultiAccordionCommonProps {\n /** The accordion items to render */\n children: React.ReactNode;\n /** The size variant of the accordion */\n size?: Size;\n /** Whether the accordion should fill the full width of its container */\n fillWidth?: boolean;\n /** The gap between accordion items */\n gap?: GapOptions;\n /** Whether to show a border around each accordion item */\n showBorder?: boolean;\n /** Whether to show a check/completion indicator on items */\n showCheck?: boolean;\n /** Callback function to mark an item as completed */\n markAsCompleted?: MarkAsCompletedFunctionType;\n}\n\nexport type MultiAccordionProps = MultiAccordionCommonProps &\n (\n | Omit<RadixAccordion.AccordionMultipleProps, 'children'>\n | Omit<RadixAccordion.AccordionSingleProps, 'children'>\n );\n\ninterface MultiAccordionContextProps {\n size: Size;\n fillWidth: boolean;\n showBorder: boolean;\n showCheck: boolean;\n markAsCompleted?: MarkAsCompletedFunctionType;\n}\n\nconst MultiAccordionContext = createContext<MultiAccordionContextProps>({\n size: 'md',\n fillWidth: true,\n showBorder: true,\n showCheck: false,\n});\n\nconst rootVariants = cva(styles['multi-accordion'], {\n variants: {\n fillWidth: {\n true: styles['multi-accordion_fill-width'],\n false: '',\n },\n gap: {\n none: styles['multi-accordion_gap_none'],\n xxs: styles['multi-accordion_gap_xxs'],\n xs: styles['multi-accordion_gap_xs'],\n sm: styles['multi-accordion_gap_sm'],\n md: styles['multi-accordion_gap_md'],\n lg: styles['multi-accordion_gap_lg'],\n xl: styles['multi-accordion_gap_xl'],\n xxl: styles['multi-accordion_gap_xxl'],\n },\n },\n defaultVariants: {\n fillWidth: true,\n gap: 'md',\n },\n});\n\nexport const MultiAccordion = ({\n size = 'md',\n children,\n fillWidth = true,\n showCheck = false,\n showBorder = true,\n gap = 'md',\n markAsCompleted,\n className,\n ...delegated\n}: MultiAccordionProps) => {\n const contextValue = {\n size,\n fillWidth,\n showBorder,\n showCheck,\n markAsCompleted,\n };\n\n return (\n <RadixAccordion.Root\n {...delegated}\n className={cn(rootVariants({ fillWidth, gap }), className)}\n >\n <MultiAccordionContext.Provider value={contextValue}>\n {children}\n </MultiAccordionContext.Provider>\n </RadixAccordion.Root>\n );\n};\ninterface MultiAccordionItemProps extends Omit<\n RadixAccordion.AccordionItemProps,\n 'title'\n> {\n /** The title text or element displayed in the accordion item header */\n title: ReactNode;\n /** The color variant of the item */\n color?: Color;\n /** Optional icon to display next to the title */\n icon?: IconName;\n /** Size of the optional icon */\n iconSize?: AssetSize;\n /** Gap size between the header and content */\n gap?: SpacerSizeType;\n /** Whether this item is marked as completed */\n isCompleted?: boolean;\n}\n\nconst itemVariants = cva(styles['multi-accordion__item'], {\n variants: {\n showBorder: {\n true: '',\n false: styles['multi-accordion__item_no-border'],\n },\n fillWidth: {\n true: styles['multi-accordion__item_fill-width'],\n false: '',\n },\n },\n defaultVariants: {\n showBorder: true,\n fillWidth: true,\n },\n});\n\nconst triggerVariants = cva(styles['multi-accordion__trigger'], {\n variants: {\n size: {\n none: styles['multi-accordion__trigger_size_none'],\n sm: styles['multi-accordion__trigger_size_sm'],\n md: styles['multi-accordion__trigger_size_md'],\n lg: styles['multi-accordion__trigger_size_lg'],\n },\n font: {\n sm: styles['multi-accordion__trigger_font_sm'],\n md: styles['multi-accordion__trigger_font_md'],\n lg: styles['multi-accordion__trigger_font_lg'],\n },\n color: {\n default: styles['multi-accordion__trigger_color_default'],\n link: styles['multi-accordion__trigger_color_link'],\n },\n },\n defaultVariants: {\n size: 'md',\n font: 'md',\n color: 'default',\n },\n});\n\nconst contentVariants = cva(styles['multi-accordion__content'], {\n variants: {\n size: {\n none: styles['multi-accordion__content_padding_none'],\n sm: styles['multi-accordion__content_padding_sm'],\n md: styles['multi-accordion__content_padding_md'],\n lg: styles['multi-accordion__content_padding_lg'],\n },\n },\n defaultVariants: {\n size: 'md',\n },\n});\n\nconst MultiAccordionItem = ({\n value,\n title,\n color,\n icon,\n iconSize,\n gap,\n children,\n isCompleted = false,\n className,\n ...props\n}: MultiAccordionItemProps): ReactElement => {\n const { fillWidth, size, showBorder, showCheck, markAsCompleted } =\n useContext(MultiAccordionContext);\n\n const onClickStatus: MouseEventHandler<HTMLOrSVGElement> = e => {\n e.preventDefault();\n if (typeof markAsCompleted === 'function') {\n markAsCompleted(value);\n }\n };\n\n const customSize = size === 'none' ? 'sm' : size;\n\n return (\n <RadixAccordion.Item\n value={value}\n {...props}\n className={cn(itemVariants({ showBorder, fillWidth }), className)}\n >\n <RadixAccordion.Trigger\n className={triggerVariants({\n size,\n font: customSize,\n color: color ?? 'default',\n })}\n >\n <div className={styles['multi-accordion__icons-wrapper']}>\n <div className={styles['multi-accordion__icon-wrapper']}>\n <Icon\n name=\"chevron-right\"\n size={iconSize ?? customSize}\n aria-label=\"accordion icon\"\n />\n </div>\n {icon ? (\n <Icon\n name={icon}\n size={iconSize ?? customSize}\n />\n ) : null}\n </div>\n <Container\n isResponsive={false}\n gap=\"sm\"\n alignItems=\"center\"\n fillWidth\n justifyContent=\"space-between\"\n component=\"span\"\n overflow=\"hidden\"\n >\n <Text\n className={styles['multi-accordion__title']}\n component=\"span\"\n size={customSize}\n fillWidth={fillWidth}\n >\n {title}\n </Text>\n {showCheck && (\n <Icon\n className={cn(\n styles['multi-accordion__status-icon'],\n isCompleted && styles['multi-accordion__status-icon_completed']\n )}\n name={isCompleted ? 'check-in-circle' : 'circle'}\n size={iconSize ?? customSize}\n aria-label=\"accordion icon status\"\n onClick={onClickStatus}\n data-icon=\"accordion-status\"\n data-testid=\"accordion-status-icon\"\n />\n )}\n </Container>\n </RadixAccordion.Trigger>\n <RadixAccordion.Content className={contentVariants({ size })}>\n <Spacer size={gap} />\n {children}\n </RadixAccordion.Content>\n </RadixAccordion.Item>\n );\n};\n\nMultiAccordionItem.displayName = 'MultiAccordion.Item';\nMultiAccordion.Item = MultiAccordionItem;\n"],"names":["MultiAccordionContext","createContext","size","fillWidth","showBorder","showCheck","rootVariants","cva","styles","variants","true","false","gap","none","xxs","xs","sm","md","lg","xl","xxl","defaultVariants","MultiAccordion","children","markAsCompleted","className","delegated","contextValue","jsx","RadixAccordion","cn","itemVariants","triggerVariants","font","color","default","link","contentVariants","MultiAccordionItem","value","title","icon","iconSize","isCompleted","props","useContext","onClickStatus","e","preventDefault","customSize","jsxs","Icon","Container","Text","Spacer","displayName","Item"],"mappings":"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"}
|
|
@@ -8,6 +8,7 @@ const GenericMenu = require('../GenericMenu/index.cjs');
|
|
|
8
8
|
const styledComponents = require('styled-components');
|
|
9
9
|
const EmptyButton = require('../EmptyButton/index.cjs');
|
|
10
10
|
const PopoverArrow = require('../Assets/Icons/Popover-Arrow.cjs');
|
|
11
|
+
const PortalContext = require('../../providers/PortalContext.cjs');
|
|
11
12
|
const Icon = require('../Icon/index.cjs');
|
|
12
13
|
|
|
13
14
|
function _interopNamespace(e) {
|
|
@@ -87,7 +88,8 @@ const PopoverContent = ({
|
|
|
87
88
|
container,
|
|
88
89
|
...props
|
|
89
90
|
}) => {
|
|
90
|
-
|
|
91
|
+
const portalContainer = PortalContext.useResolvedPortalContainer(container);
|
|
92
|
+
return /* @__PURE__ */ jsxRuntime.jsx(RadixPopover__namespace.Portal, { forceMount, container: portalContainer, children: /* @__PURE__ */ jsxRuntime.jsxs(MenuPanel, { as: RadixPopover__namespace.Content, $type: "popover", $showClose: showClose, $showArrow: showArrow, sideOffset: 4, ...props, children: [
|
|
91
93
|
showClose && /* @__PURE__ */ jsxRuntime.jsx(CloseButton, { as: RadixPopover__namespace.Close, asChild: true, children: /* @__PURE__ */ jsxRuntime.jsx(Icon.Icon, { name: "cross" }) }),
|
|
92
94
|
showArrow && /* @__PURE__ */ jsxRuntime.jsx(GenericMenu.Arrow, { asChild: true, as: RadixPopover__namespace.Arrow, width: 20, height: 10, children: /* @__PURE__ */ jsxRuntime.jsx(PopoverArrow.default, {}) }),
|
|
93
95
|
children
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.cjs","sources":["../../../../src/components/Popover/Popover.tsx"],"sourcesContent":["import * as RadixPopover from '@radix-ui/react-popover';\nimport { Arrow, GenericMenuPanel } from '@/components/GenericMenu';\nimport { styled } from 'styled-components';\nimport { ReactNode } from 'react';\nimport { Icon } from '@/components/Icon';\nimport { EmptyButton } from '@/components/EmptyButton';\nimport Popover_Arrow from '@/components/Assets/Icons/Popover-Arrow';\n\nexport const Popover = ({ children, ...props }: RadixPopover.PopoverProps) => {\n return <RadixPopover.Root {...props}>{children}</RadixPopover.Root>;\n};\n\nconst Trigger = styled(RadixPopover.Trigger)`\n background: inherit;\n border: none;\n color: inherit;\n cursor: pointer;\n font: inherit;\n width: fit-content;\n`;\ninterface TriggerProps extends RadixPopover.PopoverTriggerProps {\n anchor?: ReactNode;\n}\n\nconst PopoverTrigger = ({ anchor, children, ...props }: TriggerProps) => {\n return (\n <>\n <Trigger\n asChild\n {...props}\n >\n <div>{children}</div>\n </Trigger>\n {anchor && <RadixPopover.Anchor asChild>{anchor}</RadixPopover.Anchor>}\n </>\n );\n};\nPopoverTrigger.displayName = 'PopoverTrigger';\nPopover.Trigger = PopoverTrigger;\n\ninterface PopoverContentProps extends RadixPopover.PopoverContentProps {\n /** Whether to show an arrow pointing to the trigger element */\n showArrow?: boolean;\n /** Whether to show a close button in the popover */\n showClose?: boolean;\n /** Forces the popover to mount in the DOM even when closed */\n forceMount?: true;\n /** Custom container element for the popover portal */\n container?: HTMLElement | null;\n}\n\nconst MenuPanel = styled(GenericMenuPanel)<{ $showClose?: boolean }>`\n display: block;\n padding: ${({ theme }) => theme.click.popover.space.y}\n ${({ theme }) => theme.click.popover.space.x};\n background-color: ${({ theme }) => theme.click.popover.color.panel.background.default};\n border: 1px solid ${({ theme }) => theme.click.popover.color.panel.stroke.default};\n border-radius: ${({ theme }) => theme.click.popover.radii.all};\n box-shadow: ${({ theme }) => theme.click.popover.shadow.default};\n\n ${({ $showClose }) => ($showClose ? 'padding-top: 1rem;' : '')};\n`;\n\nconst CloseButton = styled(EmptyButton)`\n position: absolute;\n top: ${({ theme }) => theme.click.popover.space.y};\n right: ${({ theme }) => theme.click.popover.space.x};\n width: ${({ theme }) => theme.click.popover.icon.size.width};\n height: ${({ theme }) => theme.click.popover.icon.size.height};\n`;\n\nconst PopoverContent = ({\n children,\n showArrow,\n showClose,\n forceMount,\n container,\n ...props\n}: PopoverContentProps) => {\n return (\n <RadixPopover.Portal\n forceMount={forceMount}\n container={
|
|
1
|
+
{"version":3,"file":"index.cjs","sources":["../../../../src/components/Popover/Popover.tsx"],"sourcesContent":["import * as RadixPopover from '@radix-ui/react-popover';\nimport { Arrow, GenericMenuPanel } from '@/components/GenericMenu';\nimport { styled } from 'styled-components';\nimport { ReactNode } from 'react';\nimport { Icon } from '@/components/Icon';\nimport { EmptyButton } from '@/components/EmptyButton';\nimport Popover_Arrow from '@/components/Assets/Icons/Popover-Arrow';\nimport { useResolvedPortalContainer } from '@/providers/PortalContext';\n\nexport const Popover = ({ children, ...props }: RadixPopover.PopoverProps) => {\n return <RadixPopover.Root {...props}>{children}</RadixPopover.Root>;\n};\n\nconst Trigger = styled(RadixPopover.Trigger)`\n background: inherit;\n border: none;\n color: inherit;\n cursor: pointer;\n font: inherit;\n width: fit-content;\n`;\ninterface TriggerProps extends RadixPopover.PopoverTriggerProps {\n anchor?: ReactNode;\n}\n\nconst PopoverTrigger = ({ anchor, children, ...props }: TriggerProps) => {\n return (\n <>\n <Trigger\n asChild\n {...props}\n >\n <div>{children}</div>\n </Trigger>\n {anchor && <RadixPopover.Anchor asChild>{anchor}</RadixPopover.Anchor>}\n </>\n );\n};\nPopoverTrigger.displayName = 'PopoverTrigger';\nPopover.Trigger = PopoverTrigger;\n\ninterface PopoverContentProps extends RadixPopover.PopoverContentProps {\n /** Whether to show an arrow pointing to the trigger element */\n showArrow?: boolean;\n /** Whether to show a close button in the popover */\n showClose?: boolean;\n /** Forces the popover to mount in the DOM even when closed */\n forceMount?: true;\n /** Custom container element for the popover portal */\n container?: HTMLElement | null;\n}\n\nconst MenuPanel = styled(GenericMenuPanel)<{ $showClose?: boolean }>`\n display: block;\n padding: ${({ theme }) => theme.click.popover.space.y}\n ${({ theme }) => theme.click.popover.space.x};\n background-color: ${({ theme }) => theme.click.popover.color.panel.background.default};\n border: 1px solid ${({ theme }) => theme.click.popover.color.panel.stroke.default};\n border-radius: ${({ theme }) => theme.click.popover.radii.all};\n box-shadow: ${({ theme }) => theme.click.popover.shadow.default};\n\n ${({ $showClose }) => ($showClose ? 'padding-top: 1rem;' : '')};\n`;\n\nconst CloseButton = styled(EmptyButton)`\n position: absolute;\n top: ${({ theme }) => theme.click.popover.space.y};\n right: ${({ theme }) => theme.click.popover.space.x};\n width: ${({ theme }) => theme.click.popover.icon.size.width};\n height: ${({ theme }) => theme.click.popover.icon.size.height};\n`;\n\nconst PopoverContent = ({\n children,\n showArrow,\n showClose,\n forceMount,\n container,\n ...props\n}: PopoverContentProps) => {\n const portalContainer = useResolvedPortalContainer(container);\n\n return (\n <RadixPopover.Portal\n forceMount={forceMount}\n container={portalContainer}\n >\n <MenuPanel\n as={RadixPopover.Content}\n $type=\"popover\"\n $showClose={showClose}\n $showArrow={showArrow}\n sideOffset={4}\n {...props}\n >\n {showClose && (\n <CloseButton\n as={RadixPopover.Close}\n asChild\n >\n <Icon name=\"cross\" />\n </CloseButton>\n )}\n {showArrow && (\n <Arrow\n asChild\n as={RadixPopover.Arrow}\n width={20}\n height={10}\n >\n <Popover_Arrow />\n </Arrow>\n )}\n {children}\n </MenuPanel>\n </RadixPopover.Portal>\n );\n};\nPopoverContent.displayName = 'PopoverContent';\nPopover.Content = PopoverContent;\n"],"names":["Popover","children","props","RadixPopover","Trigger","styled","withConfig","componentId","PopoverTrigger","anchor","jsxs","Fragment","jsx","displayName","MenuPanel","GenericMenuPanel","theme","click","popover","space","y","x","color","panel","background","default","stroke","radii","all","shadow","$showClose","CloseButton","EmptyButton","icon","size","width","height","PopoverContent","showArrow","showClose","forceMount","container","portalContainer","useResolvedPortalContainer","Content","Close","Icon","Arrow","Popover_Arrow"],"mappings":"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"}
|
|
@@ -16,6 +16,7 @@ const IconWrapper = require('../../IconWrapper/index.cjs');
|
|
|
16
16
|
const useInputModality = require('../../../hooks/internal/useInputModality.cjs');
|
|
17
17
|
const styledComponents = require('styled-components');
|
|
18
18
|
const getTextFromNodes = require('../../../lib/getTextFromNodes.cjs');
|
|
19
|
+
const PortalContext = require('../../../providers/PortalContext.cjs');
|
|
19
20
|
const FormRoot = require('../../FormContainer/FormRoot.cjs');
|
|
20
21
|
const FormElementContainer = require('../../FormContainer/FormElementContainer.cjs');
|
|
21
22
|
const Icon = require('../../Icon/index.cjs');
|
|
@@ -230,6 +231,7 @@ const InternalSelect = ({
|
|
|
230
231
|
}, [children, options, updateList]);
|
|
231
232
|
const inputRef = react.useRef(null);
|
|
232
233
|
const inputModalityProps = useInputModality.useInputModality();
|
|
234
|
+
const portalContainer = PortalContext.useResolvedPortalContainer(container);
|
|
233
235
|
const onFocus = () => {
|
|
234
236
|
inputRef.current?.focus();
|
|
235
237
|
};
|
|
@@ -304,7 +306,7 @@ const InternalSelect = ({
|
|
|
304
306
|
/* @__PURE__ */ jsxRuntime.jsx(Icon.Icon, { name: "sort", size: "sm" })
|
|
305
307
|
] }),
|
|
306
308
|
form && /* @__PURE__ */ jsxRuntime.jsx(SelectStyled.HiddenSelectElement, { multiple, name, form, value: selectedValues, onChange: () => null, children: list.map((item) => /* @__PURE__ */ jsxRuntime.jsx("option", { value: item.value, disabled: item.disabled, children: item.value }, item.value)) }),
|
|
307
|
-
/* @__PURE__ */ jsxRuntime.jsx(RadixPopover.Portal, { container, children: /* @__PURE__ */ jsxRuntime.jsx(SelectStyled.SelectPopoverContent, { ...inputModalityProps, sideOffset: 5, onFocus, onCloseAutoFocus: () => {
|
|
309
|
+
/* @__PURE__ */ jsxRuntime.jsx(RadixPopover.Portal, { container: portalContainer, children: /* @__PURE__ */ jsxRuntime.jsx(SelectStyled.SelectPopoverContent, { ...inputModalityProps, sideOffset: 5, onFocus, onCloseAutoFocus: () => {
|
|
308
310
|
onUpdateSearch("");
|
|
309
311
|
}, onOpenAutoFocus: () => {
|
|
310
312
|
setHighlighted(visibleList.current[0]);
|
|
@@ -459,7 +461,7 @@ const MultiSelectCheckboxItem = react.forwardRef(({
|
|
|
459
461
|
}
|
|
460
462
|
const isChecked = selectedValues.includes(value);
|
|
461
463
|
return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
462
|
-
/* @__PURE__ */ jsxRuntime.jsx(GenericMenu.GenericMenuItem, { ...props, "data-value": value, onClick: handleMenuItemClick, onMouseOver: handleMenuItemMouseOver, ref: forwardedRef, "data-disabled": disabled ? true : void 0, "data-highlighted": highlighted == value ? "true" : void 0, "data-testid": `multi-select-checkbox-${value}`, "cui-select-item": "", children: /* @__PURE__ */ jsxRuntime.jsxs(Container.Container, { orientation: "horizontal", gap: "xs", overflow: "hidden", children: [
|
|
464
|
+
/* @__PURE__ */ jsxRuntime.jsx(GenericMenu.GenericMenuItem, { ...props, "data-value": value, onClick: handleMenuItemClick, onMouseOver: handleMenuItemMouseOver, ref: forwardedRef, "data-disabled": disabled ? true : void 0, "data-highlighted": highlighted == value ? "true" : void 0, "data-testid": `multi-select-checkbox-${value}`, "cui-select-item": "", children: /* @__PURE__ */ jsxRuntime.jsxs(Container.Container, { orientation: "horizontal", gap: "xs", overflow: "hidden", isResponsive: false, children: [
|
|
463
465
|
/* @__PURE__ */ jsxRuntime.jsx(Checkbox.Checkbox, { checked: isChecked, "data-testid": "multi-select-checkbox", disabled, variant: variant ?? "default" }),
|
|
464
466
|
/* @__PURE__ */ jsxRuntime.jsx(IconWrapper.IconWrapper, { icon, iconDir, gap: "xxs", isResponsive: false, children: label ? /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
465
467
|
label,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"InternalSelect.cjs","sources":["../../../../../src/components/Select/common/InternalSelect.tsx"],"sourcesContent":["import {\n Children,\n FunctionComponent,\n HTMLAttributes,\n KeyboardEvent,\n MouseEvent,\n ReactNode,\n forwardRef,\n isValidElement,\n useCallback,\n useEffect,\n useId,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport {\n NoAvailableOptionsFactoryProps,\n SelectContainerProps,\n SelectGroupProps,\n SelectItemObject,\n SelectItemProps,\n SelectOptionListItem,\n} from './types';\nimport { Error, FormElementContainer, FormRoot } from '@/components/FormContainer';\nimport { Portal } from '@radix-ui/react-popover';\nimport { Checkbox } from '@/components/Checkbox';\nimport type { CheckboxVariants } from '@/components/Checkbox';\nimport { Container } from '@/components/Container';\nimport { Icon } from '@/components/Icon';\nimport { IconButton } from '@/components/IconButton';\nimport { Label } from '@/components/Label';\nimport { Separator } from '@/components/Separator';\nimport { Text } from '@/components/Text';\nimport type { TextProps } from '@/components/Text';\n\nimport {\n SelectPopoverContent,\n SearchBar,\n SearchBarContainer,\n SearchClose,\n SelectList,\n SelectListContent,\n SelectPopoverRoot,\n StyledSelectTrigger,\n SelectValue,\n HiddenSelectElement,\n SelectGroupContainer,\n SelectGroupName,\n SelectGroupContent,\n SelectNoDataContainer,\n SelectItemDescriptionText,\n} from './SelectStyled';\nimport { OptionContext } from './OptionContext';\nimport { MultiSelectValue } from '../MultiSelectValue';\nimport SingleSelectValue from '../SingleSelectValue';\nimport { useOption, useSearch } from './useOption';\nimport { mergeRefs } from '@/utils/mergeRefs';\nimport { GenericMenuItem } from '@/components/GenericMenu';\nimport { IconWrapper } from '@/components/IconWrapper';\nimport { useInputModality } from '@/hooks/internal';\nimport { styled } from 'styled-components';\nimport { getTextFromNodes } from '@/lib/getTextFromNodes';\n\ntype CallbackProps = SelectItemObject & {\n nodeProps: SelectItemProps;\n};\n\ninterface NoOptionsDisplayProps {\n allowCreateOption: boolean;\n search: string;\n customText: string;\n noAvailableOptions: boolean | ((props: NoAvailableOptionsFactoryProps) => ReactNode);\n onCreateOption: (e: MouseEvent<HTMLDivElement>) => void;\n onOpenChange: (open: boolean) => void;\n containerProps?: HTMLAttributes<HTMLDivElement>;\n}\n\nconst NoOptionsDisplay: React.FC<NoOptionsDisplayProps> = ({\n allowCreateOption,\n search,\n customText,\n noAvailableOptions,\n onCreateOption,\n onOpenChange,\n containerProps,\n}) => {\n const getCustomTextWithSearch = (text: string) => text.replaceAll('{search}', search);\n\n const getDefaultMessage = () =>\n `No Options found${search.length > 0 ? ` for \"${search}\" ` : ''}`;\n\n const getNoAvailableOptionsNode = (): ReactNode => {\n if (typeof noAvailableOptions === 'boolean') {\n return noAvailableOptions ? getDefaultMessage() : null;\n }\n\n // ReactNode\n return noAvailableOptions({\n search,\n close: (): void => onOpenChange(false),\n });\n };\n\n // Determine node to render when there are no options\n const hasCustomText = customText.length > 0;\n const hasSearchInput = search.length > 0;\n const shouldShowCreateOption = allowCreateOption && hasSearchInput;\n\n let noOptionsNode: ReactNode = null;\n\n if (shouldShowCreateOption) {\n noOptionsNode = hasCustomText ? getCustomTextWithSearch(customText) : `Add ${search}`;\n } else if (hasCustomText) {\n noOptionsNode = getCustomTextWithSearch(customText);\n } else {\n noOptionsNode = getNoAvailableOptionsNode();\n }\n\n if (!noOptionsNode) {\n return null;\n }\n\n const handleNoOptionsClick = (e: MouseEvent<HTMLDivElement>) => {\n if (shouldShowCreateOption) {\n onCreateOption(e);\n onOpenChange(false);\n }\n };\n\n const isCustomReactNode = typeof noAvailableOptions === 'function';\n if (isCustomReactNode) {\n return (\n <Container\n onClick={handleNoOptionsClick}\n {...containerProps}\n >\n {noOptionsNode}\n </Container>\n );\n }\n\n return (\n <SelectNoDataContainer\n onClick={handleNoOptionsClick}\n $clickable={allowCreateOption}\n {...containerProps}\n >\n {noOptionsNode}\n </SelectNoDataContainer>\n );\n};\n\nconst childrenToComboboxItemArray = (\n children: ReactNode,\n callback: (props: CallbackProps) => void,\n heading?: string\n): SelectItemObject[] => {\n return Children.toArray(children).flatMap(child => {\n if (isValidElement(child) && child && typeof child === 'object') {\n const type = child.type as FunctionComponent;\n if (type.displayName === 'Select.Group') {\n const groupChildren = child.props.children;\n return childrenToComboboxItemArray(\n groupChildren,\n callback,\n getTextFromNodes(child.props.heading).toLowerCase()\n );\n } else if (type.displayName === 'Select.Item') {\n const title = getTextFromNodes(child).toLowerCase();\n const value = child.props.value;\n const disabled = child.props.disabled;\n callback({\n disabled,\n value,\n title,\n heading,\n nodeProps: child.props,\n });\n return {\n disabled,\n value,\n title,\n heading,\n };\n } else if ('props' in child && child.props.children) {\n return childrenToComboboxItemArray(child.props.children, callback, heading);\n }\n }\n return [];\n });\n};\n\nexport const InternalSelect = ({\n label,\n children,\n orientation,\n dir,\n disabled,\n id,\n error,\n value: selectedValues,\n onChange,\n onSelect,\n open,\n onOpenChange,\n name,\n form,\n allowCreateOption = false,\n customText = '',\n options,\n sortable = false,\n placeholder = 'Select an option',\n maxHeight,\n multiple,\n checkbox,\n selectLabel,\n showSearch = false,\n container,\n useFullWidthItems = false,\n itemCharacterLimit = '64ch',\n noAvailableOptions = true,\n triggerProps,\n ...props\n}: SelectContainerProps) => {\n const defaultId = useId();\n const [search, setSearch] = useState('');\n const [highlighted, setHighlighted] = useState<string | undefined>();\n const visibleList = useRef<string[]>([]);\n const navigatable = useRef<string[]>([]);\n const valueNode = useRef<Map<string, SelectItemProps>>(new Map());\n const [isInitialized, setInitialized] = useState(false);\n const [list, setList] = useState<SelectItemObject[]>([]);\n const updateElements = useCallback(\n ({ disabled, value, title, heading, nodeProps }: CallbackProps) => {\n if (title.includes(search) || heading?.includes(search)) {\n visibleList.current.push(value);\n if (!disabled) {\n navigatable.current.push(value);\n }\n }\n valueNode.current.set(value, nodeProps);\n },\n [search]\n );\n const onUpdateSearch = useCallback(\n (search: string) => {\n setSearch(search);\n let hasHighlightedValue = false;\n const visibleItemsList: string[] = [];\n const navigatableList: string[] = [];\n const searchLowerCase = search.toLowerCase();\n list.forEach(item => {\n if (\n item.title.includes(searchLowerCase) ||\n item.heading?.includes(searchLowerCase)\n ) {\n if (item.value === highlighted) {\n hasHighlightedValue = true;\n }\n visibleItemsList.push(item.value);\n if (!item.disabled) {\n navigatableList.push(item.value);\n }\n }\n });\n navigatable.current = navigatableList;\n visibleList.current = visibleItemsList;\n if (!hasHighlightedValue) {\n setHighlighted(navigatableList[0] ?? null);\n }\n },\n [highlighted, list]\n );\n\n const updateList = useCallback(\n (children?: ReactNode, options?: SelectOptionListItem[]) => {\n const lowerCasedSearch = search.toLowerCase();\n if (options) {\n setList(\n options.flatMap(option => {\n if ('options' in option) {\n const heading = getTextFromNodes(option.heading).toLowerCase();\n return (option.options ?? []).map(item => {\n valueNode.current.set(item.value, item);\n const title = getTextFromNodes(item.label).toLowerCase();\n if (\n title.includes(lowerCasedSearch) ||\n heading?.includes(lowerCasedSearch)\n ) {\n visibleList.current.push(item.value);\n if (!disabled) {\n navigatable.current.push(item.value);\n }\n }\n return {\n heading,\n disabled: item.disabled,\n value: item.value,\n title,\n };\n });\n } else {\n valueNode.current.set(option.value, option);\n const title = getTextFromNodes(option.label).toLowerCase();\n if (title.includes(lowerCasedSearch)) {\n visibleList.current.push(option.value);\n if (!disabled) {\n navigatable.current.push(option.value);\n }\n }\n return {\n disabled: option.disabled,\n value: option.value,\n title: getTextFromNodes(option.label),\n };\n }\n })\n );\n } else if (children) {\n setList(childrenToComboboxItemArray(children, updateElements));\n }\n },\n [disabled, search, updateElements]\n );\n\n useEffect(() => {\n updateList(children, options);\n setInitialized(true);\n }, [children, options, updateList]);\n\n const inputRef = useRef<HTMLInputElement>(null);\n const inputModalityProps = useInputModality();\n\n const onFocus = () => {\n inputRef.current?.focus();\n };\n\n const clearSearch = () => {\n onUpdateSearch('');\n };\n\n const onKeyDown = (e: KeyboardEvent<HTMLElement>) => {\n if (!e.defaultPrevented) {\n if (e.key === 'Enter') {\n e.preventDefault();\n if (highlighted) {\n onSelect(highlighted, undefined, e);\n } else if (visibleList.current.length === 0 && allowCreateOption) {\n onSelect(search, 'custom', e);\n }\n } else if (['ArrowUp', 'ArrowDown', 'Home', 'End'].includes(e.key)) {\n e.preventDefault();\n let nextHighlightedValue = highlighted;\n const highlightedIndex = navigatable.current.findIndex(\n value => value === highlighted\n );\n if (e.key === 'ArrowUp') {\n if (highlightedIndex === 0) {\n nextHighlightedValue = navigatable.current[navigatable.current.length - 1];\n } else {\n nextHighlightedValue = navigatable.current[highlightedIndex - 1];\n }\n } else if (e.key === 'ArrowDown') {\n e.preventDefault();\n if (highlightedIndex === navigatable.current.length - 1) {\n nextHighlightedValue = navigatable.current[0];\n } else {\n nextHighlightedValue = navigatable.current[highlightedIndex + 1];\n }\n } else if (e.key === 'End') {\n e.preventDefault();\n nextHighlightedValue = navigatable.current[navigatable.current.length - 1];\n } else if (e.key === 'Home') {\n nextHighlightedValue = navigatable.current[0];\n e.preventDefault();\n }\n setHighlighted(nextHighlightedValue);\n }\n }\n };\n const isHidden = useCallback(\n (value?: string) => {\n return !visibleList.current.includes(value ?? '');\n },\n [visibleList]\n );\n\n const optionContextValue = useMemo(() => {\n return {\n search,\n updateHighlighted: setHighlighted,\n highlighted,\n isHidden,\n onSelect,\n selectedValues,\n };\n }, [search, highlighted, isHidden, onSelect, selectedValues]);\n\n const onCreateOption = (e: MouseEvent<HTMLDivElement>) => {\n e.preventDefault();\n e.stopPropagation();\n if (allowCreateOption) {\n onSelect(search, 'custom', e);\n }\n };\n\n return (\n <FormRoot\n $orientation={orientation}\n $dir={dir}\n $addLabelPadding\n {...props}\n >\n <FormElementContainer>\n <SelectPopoverRoot\n open={open}\n onOpenChange={onOpenChange}\n modal={true}\n >\n <StyledSelectTrigger\n id={id ?? defaultId}\n $error={!!error}\n disabled={disabled}\n data-testid=\"select-trigger\"\n {...triggerProps}\n >\n {isInitialized && (\n <SelectValue>\n {selectedValues.length === 0 ? (\n placeholder\n ) : multiple ? (\n <MultiSelectValue\n disabled={disabled ?? false}\n onSelect={onSelect}\n selectedValues={selectedValues}\n sortable={!disabled && sortable}\n valueNode={valueNode.current}\n onChange={onChange}\n />\n ) : (\n <SingleSelectValue\n valueNode={\n checkbox && selectLabel\n ? { label: selectLabel as string, value: selectLabel as string }\n : valueNode.current.get(selectedValues[0])\n }\n value={selectedValues[0]}\n />\n )}\n </SelectValue>\n )}\n <Icon\n name=\"sort\"\n size=\"sm\"\n />\n </StyledSelectTrigger>\n {form && (\n <HiddenSelectElement\n multiple={multiple}\n name={name}\n form={form}\n value={selectedValues}\n onChange={() => null}\n >\n {list.map(item => (\n <option\n key={item.value}\n value={item.value}\n disabled={item.disabled}\n >\n {item.value}\n </option>\n ))}\n </HiddenSelectElement>\n )}\n <Portal container={container}>\n <SelectPopoverContent\n {...inputModalityProps}\n sideOffset={5}\n onFocus={onFocus}\n onCloseAutoFocus={() => {\n onUpdateSearch('');\n }}\n onOpenAutoFocus={() => {\n setHighlighted(visibleList.current[0]);\n }}\n align=\"start\"\n $useFullWidthItems={useFullWidthItems}\n $itemCharacterLimit={itemCharacterLimit}\n >\n <SelectList>\n <SearchBarContainer $showSearch={showSearch}>\n <SearchBar\n ref={inputRef}\n value={search}\n onChange={e => onUpdateSearch(e.target.value)}\n data-testid=\"select-search-input\"\n onKeyDown={onKeyDown}\n $showSearch={showSearch}\n />\n <SearchClose\n as={IconButton}\n icon=\"cross\"\n onClick={clearSearch}\n data-testid=\"select-search-close\"\n $showClose={search.length > 0}\n size=\"xs\"\n />\n </SearchBarContainer>\n <SelectListContent $maxHeight={maxHeight}>\n <OptionContext.Provider value={optionContextValue}>\n {options && options.length > 0\n ? options.map((props, index) => {\n if ('options' in props) {\n const { options: itemList = [], ...groupProps } = props;\n return (\n <SelectGroup\n key={`select-${id}-group-${index}`}\n {...groupProps}\n >\n {itemList.map((itemProps, itemIndex) => {\n if (checkbox) {\n return (\n <MultiSelectCheckboxItem\n key={`select-${id}-group-${index}-item-${itemIndex}`}\n {...itemProps}\n />\n );\n }\n return (\n <SelectItem\n key={`select-${id}-group-${index}-item-${itemIndex}`}\n {...itemProps}\n />\n );\n })}\n </SelectGroup>\n );\n } else {\n if (checkbox) {\n return (\n <MultiSelectCheckboxItem\n key={`select-${id}-item-${index}`}\n {...props}\n />\n );\n }\n return (\n <SelectItem\n key={`select-${id}-item-${index}`}\n {...props}\n />\n );\n }\n })\n : children}\n </OptionContext.Provider>\n </SelectListContent>\n {visibleList.current.length === 0 &&\n (allowCreateOption || !!noAvailableOptions) && (\n <NoOptionsDisplay\n allowCreateOption={allowCreateOption}\n search={search}\n customText={customText}\n noAvailableOptions={noAvailableOptions}\n onCreateOption={onCreateOption}\n onOpenChange={onOpenChange}\n containerProps={props}\n />\n )}\n </SelectList>\n </SelectPopoverContent>\n </Portal>\n </SelectPopoverRoot>\n {!!error && error !== true && <Error>{error}</Error>}\n </FormElementContainer>\n {label && (\n <Label\n htmlFor={id ?? defaultId}\n disabled={disabled}\n error={!!error}\n >\n {label}\n </Label>\n )}\n </FormRoot>\n );\n};\n\nexport const SelectGroup = forwardRef<HTMLDivElement, SelectGroupProps>(\n ({ children, heading, ...props }, forwardedRef) => {\n useSearch();\n return (\n <SelectGroupContainer\n {...props}\n ref={mergeRefs([\n forwardedRef,\n node => {\n const hidden = node?.querySelectorAll('[cui-select-item]').length === 0;\n if (hidden) {\n node?.setAttribute('hidden', '');\n } else {\n node?.removeAttribute('hidden');\n }\n node?.setAttribute('aria-hidden', hidden.toString());\n },\n ])}\n >\n <SelectGroupName>{heading}</SelectGroupName>\n <SelectGroupContent>{children}</SelectGroupContent>\n </SelectGroupContainer>\n );\n }\n);\n\nSelectGroup.displayName = 'Select.Group';\n\nconst CheckIcon = styled.svg<{ $showCheck: boolean }>`\n opacity: ${({ $showCheck }) => ($showCheck ? 1 : 0)};\n`;\n\nexport const SelectItem = forwardRef<HTMLDivElement, SelectItemProps>(\n (\n {\n disabled = false,\n children,\n label,\n description,\n separator,\n onSelect: onSelectProp,\n value = '',\n icon,\n iconDir,\n onMouseOver: onMouseOverProp,\n ...props\n },\n forwardedRef\n ) => {\n const { highlighted, updateHighlighted, isHidden, selectedValues, onSelect } =\n useOption();\n const onSelectValue = (evt: MouseEvent<HTMLElement>) => {\n if (!disabled) {\n onSelect(value, undefined, evt);\n if (typeof onSelectProp == 'function') {\n onSelectProp(value, undefined, evt);\n }\n }\n };\n const onMouseOver = (e: MouseEvent<HTMLDivElement>) => {\n if (onMouseOverProp) {\n onMouseOverProp(e);\n }\n if (!disabled) {\n updateHighlighted(value);\n }\n };\n\n if (isHidden(value)) {\n return null;\n }\n const isChecked = selectedValues.includes(value);\n\n return (\n <>\n <GenericMenuItem\n {...props}\n data-value={value}\n onClick={onSelectValue}\n onMouseOver={onMouseOver}\n ref={forwardedRef}\n data-state={isChecked ? 'checked' : 'unchecked'}\n data-disabled={disabled ? true : undefined}\n data-highlighted={highlighted == value ? 'true' : undefined}\n cui-select-item=\"\"\n >\n <IconWrapper\n icon={icon}\n iconDir={iconDir}\n gap=\"xxs\"\n isResponsive={false}\n >\n {label ? (\n <>\n {label}\n {description && (\n <SelectItemDescription>{description}</SelectItemDescription>\n )}\n </>\n ) : (\n children\n )}\n </IconWrapper>\n <CheckIcon\n as={Icon}\n name=\"check\"\n size=\"sm\"\n $showCheck={isChecked}\n />\n </GenericMenuItem>\n {separator && <Separator size=\"sm\" />}\n </>\n );\n }\n);\n\nexport type MultiSelectCheckboxItemProps = SelectItemProps & {\n variant?: CheckboxVariants;\n};\n\nSelectItem.displayName = 'Select.Item';\n\nexport const MultiSelectCheckboxItem = forwardRef<\n HTMLDivElement,\n MultiSelectCheckboxItemProps\n>(\n (\n {\n disabled = false,\n children,\n icon,\n iconDir = 'end',\n label,\n description,\n onMouseOver: onMouseOverProp,\n onSelect: onSelectProp,\n separator,\n value = '',\n variant,\n ...props\n },\n forwardedRef\n ) => {\n const { highlighted, updateHighlighted, isHidden, selectedValues, onSelect } =\n useOption();\n\n const handleMenuItemClick = (evt: MouseEvent<HTMLElement>) => {\n if (!disabled) {\n onSelect(value, undefined, evt);\n\n if (typeof onSelectProp === 'function') {\n onSelectProp(value, undefined, evt);\n }\n }\n };\n\n const handleMenuItemMouseOver = (e: MouseEvent<HTMLDivElement>) => {\n if (onMouseOverProp) {\n onMouseOverProp(e);\n }\n if (!disabled) {\n updateHighlighted(value);\n }\n };\n\n if (isHidden(value)) {\n return null;\n }\n\n const isChecked = selectedValues.includes(value);\n\n return (\n <>\n <GenericMenuItem\n {...props}\n data-value={value}\n onClick={handleMenuItemClick}\n onMouseOver={handleMenuItemMouseOver}\n ref={forwardedRef}\n data-disabled={disabled ? true : undefined}\n data-highlighted={highlighted == value ? 'true' : undefined}\n data-testid={`multi-select-checkbox-${value}`}\n cui-select-item=\"\"\n >\n <Container\n orientation=\"horizontal\"\n gap=\"xs\"\n overflow=\"hidden\"\n >\n <Checkbox\n checked={isChecked}\n data-testid=\"multi-select-checkbox\"\n disabled={disabled}\n variant={variant ?? 'default'}\n />\n <IconWrapper\n icon={icon}\n iconDir={iconDir}\n gap=\"xxs\"\n isResponsive={false}\n >\n {label ? (\n <>\n {label}\n {description && (\n <SelectItemDescription>{description}</SelectItemDescription>\n )}\n </>\n ) : (\n children\n )}\n </IconWrapper>\n </Container>\n </GenericMenuItem>\n {separator && <Separator size=\"sm\" />}\n </>\n );\n }\n);\n\nMultiSelectCheckboxItem.displayName = 'Select.Item';\n\nexport const SelectItemDescription = forwardRef<HTMLDivElement, TextProps>(\n ({ children, ...props }, ref) => {\n return (\n <Text\n ref={ref}\n component={SelectItemDescriptionText}\n color=\"muted\"\n {...props}\n >\n {children}\n </Text>\n );\n }\n);\n\nSelectItemDescription.displayName = 'Select.ItemDescription';\n"],"names":["NoOptionsDisplay","allowCreateOption","search","customText","noAvailableOptions","onCreateOption","onOpenChange","containerProps","getCustomTextWithSearch","text","replaceAll","getDefaultMessage","length","getNoAvailableOptionsNode","close","hasCustomText","hasSearchInput","shouldShowCreateOption","noOptionsNode","handleNoOptionsClick","e","isCustomReactNode","Container","jsx","SelectNoDataContainer","childrenToComboboxItemArray","children","callback","heading","Children","toArray","flatMap","child","isValidElement","type","displayName","groupChildren","props","getTextFromNodes","toLowerCase","title","value","disabled","nodeProps","InternalSelect","label","orientation","dir","id","error","selectedValues","onChange","onSelect","open","name","form","options","sortable","placeholder","maxHeight","multiple","checkbox","selectLabel","showSearch","container","useFullWidthItems","itemCharacterLimit","triggerProps","defaultId","useId","setSearch","useState","highlighted","setHighlighted","visibleList","useRef","navigatable","valueNode","Map","isInitialized","setInitialized","list","setList","updateElements","useCallback","includes","current","push","set","onUpdateSearch","hasHighlightedValue","visibleItemsList","navigatableList","searchLowerCase","forEach","item","updateList","lowerCasedSearch","option","map","useEffect","inputRef","inputModalityProps","useInputModality","onFocus","focus","clearSearch","onKeyDown","defaultPrevented","key","preventDefault","undefined","nextHighlightedValue","highlightedIndex","findIndex","isHidden","optionContextValue","useMemo","updateHighlighted","stopPropagation","jsxs","FormRoot","FormElementContainer","SelectPopoverRoot","StyledSelectTrigger","SelectValue","MultiSelectValue","SingleSelectValue","get","Icon","HiddenSelectElement","Portal","SelectPopoverContent","SelectList","SearchBarContainer","SearchBar","target","SearchClose","IconButton","SelectListContent","OptionContext","index","itemList","groupProps","itemProps","itemIndex","Error","Label","SelectGroup","forwardRef","forwardedRef","useSearch","SelectGroupContainer","mergeRefs","node","hidden","querySelectorAll","setAttribute","removeAttribute","toString","SelectGroupName","SelectGroupContent","CheckIcon","styled","svg","withConfig","componentId","$showCheck","SelectItem","description","separator","onSelectProp","icon","iconDir","onMouseOver","onMouseOverProp","useOption","onSelectValue","evt","isChecked","Fragment","GenericMenuItem","IconWrapper","Separator","MultiSelectCheckboxItem","variant","handleMenuItemClick","handleMenuItemMouseOver","Checkbox","SelectItemDescription","ref","Text","SelectItemDescriptionText"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"InternalSelect.cjs","sources":["../../../../../src/components/Select/common/InternalSelect.tsx"],"sourcesContent":["import {\n Children,\n FunctionComponent,\n HTMLAttributes,\n KeyboardEvent,\n MouseEvent,\n ReactNode,\n forwardRef,\n isValidElement,\n useCallback,\n useEffect,\n useId,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport {\n NoAvailableOptionsFactoryProps,\n SelectContainerProps,\n SelectGroupProps,\n SelectItemObject,\n SelectItemProps,\n SelectOptionListItem,\n} from './types';\nimport { Error, FormElementContainer, FormRoot } from '@/components/FormContainer';\nimport { Portal } from '@radix-ui/react-popover';\nimport { Checkbox } from '@/components/Checkbox';\nimport type { CheckboxVariants } from '@/components/Checkbox';\nimport { Container } from '@/components/Container';\nimport { Icon } from '@/components/Icon';\nimport { IconButton } from '@/components/IconButton';\nimport { Label } from '@/components/Label';\nimport { Separator } from '@/components/Separator';\nimport { Text } from '@/components/Text';\nimport type { TextProps } from '@/components/Text';\n\nimport {\n SelectPopoverContent,\n SearchBar,\n SearchBarContainer,\n SearchClose,\n SelectList,\n SelectListContent,\n SelectPopoverRoot,\n StyledSelectTrigger,\n SelectValue,\n HiddenSelectElement,\n SelectGroupContainer,\n SelectGroupName,\n SelectGroupContent,\n SelectNoDataContainer,\n SelectItemDescriptionText,\n} from './SelectStyled';\nimport { OptionContext } from './OptionContext';\nimport { MultiSelectValue } from '../MultiSelectValue';\nimport SingleSelectValue from '../SingleSelectValue';\nimport { useOption, useSearch } from './useOption';\nimport { mergeRefs } from '@/utils/mergeRefs';\nimport { GenericMenuItem } from '@/components/GenericMenu';\nimport { IconWrapper } from '@/components/IconWrapper';\nimport { useInputModality } from '@/hooks/internal';\nimport { styled } from 'styled-components';\nimport { getTextFromNodes } from '@/lib/getTextFromNodes';\nimport { useResolvedPortalContainer } from '@/providers/PortalContext';\n\ntype CallbackProps = SelectItemObject & {\n nodeProps: SelectItemProps;\n};\n\ninterface NoOptionsDisplayProps {\n allowCreateOption: boolean;\n search: string;\n customText: string;\n noAvailableOptions: boolean | ((props: NoAvailableOptionsFactoryProps) => ReactNode);\n onCreateOption: (e: MouseEvent<HTMLDivElement>) => void;\n onOpenChange: (open: boolean) => void;\n containerProps?: HTMLAttributes<HTMLDivElement>;\n}\n\nconst NoOptionsDisplay: React.FC<NoOptionsDisplayProps> = ({\n allowCreateOption,\n search,\n customText,\n noAvailableOptions,\n onCreateOption,\n onOpenChange,\n containerProps,\n}) => {\n const getCustomTextWithSearch = (text: string) => text.replaceAll('{search}', search);\n\n const getDefaultMessage = () =>\n `No Options found${search.length > 0 ? ` for \"${search}\" ` : ''}`;\n\n const getNoAvailableOptionsNode = (): ReactNode => {\n if (typeof noAvailableOptions === 'boolean') {\n return noAvailableOptions ? getDefaultMessage() : null;\n }\n\n // ReactNode\n return noAvailableOptions({\n search,\n close: (): void => onOpenChange(false),\n });\n };\n\n // Determine node to render when there are no options\n const hasCustomText = customText.length > 0;\n const hasSearchInput = search.length > 0;\n const shouldShowCreateOption = allowCreateOption && hasSearchInput;\n\n let noOptionsNode: ReactNode = null;\n\n if (shouldShowCreateOption) {\n noOptionsNode = hasCustomText ? getCustomTextWithSearch(customText) : `Add ${search}`;\n } else if (hasCustomText) {\n noOptionsNode = getCustomTextWithSearch(customText);\n } else {\n noOptionsNode = getNoAvailableOptionsNode();\n }\n\n if (!noOptionsNode) {\n return null;\n }\n\n const handleNoOptionsClick = (e: MouseEvent<HTMLDivElement>) => {\n if (shouldShowCreateOption) {\n onCreateOption(e);\n onOpenChange(false);\n }\n };\n\n const isCustomReactNode = typeof noAvailableOptions === 'function';\n if (isCustomReactNode) {\n return (\n <Container\n onClick={handleNoOptionsClick}\n {...containerProps}\n >\n {noOptionsNode}\n </Container>\n );\n }\n\n return (\n <SelectNoDataContainer\n onClick={handleNoOptionsClick}\n $clickable={allowCreateOption}\n {...containerProps}\n >\n {noOptionsNode}\n </SelectNoDataContainer>\n );\n};\n\nconst childrenToComboboxItemArray = (\n children: ReactNode,\n callback: (props: CallbackProps) => void,\n heading?: string\n): SelectItemObject[] => {\n return Children.toArray(children).flatMap(child => {\n if (isValidElement(child) && child && typeof child === 'object') {\n const type = child.type as FunctionComponent;\n if (type.displayName === 'Select.Group') {\n const groupChildren = child.props.children;\n return childrenToComboboxItemArray(\n groupChildren,\n callback,\n getTextFromNodes(child.props.heading).toLowerCase()\n );\n } else if (type.displayName === 'Select.Item') {\n const title = getTextFromNodes(child).toLowerCase();\n const value = child.props.value;\n const disabled = child.props.disabled;\n callback({\n disabled,\n value,\n title,\n heading,\n nodeProps: child.props,\n });\n return {\n disabled,\n value,\n title,\n heading,\n };\n } else if ('props' in child && child.props.children) {\n return childrenToComboboxItemArray(child.props.children, callback, heading);\n }\n }\n return [];\n });\n};\n\nexport const InternalSelect = ({\n label,\n children,\n orientation,\n dir,\n disabled,\n id,\n error,\n value: selectedValues,\n onChange,\n onSelect,\n open,\n onOpenChange,\n name,\n form,\n allowCreateOption = false,\n customText = '',\n options,\n sortable = false,\n placeholder = 'Select an option',\n maxHeight,\n multiple,\n checkbox,\n selectLabel,\n showSearch = false,\n container,\n useFullWidthItems = false,\n itemCharacterLimit = '64ch',\n noAvailableOptions = true,\n triggerProps,\n ...props\n}: SelectContainerProps) => {\n const defaultId = useId();\n const [search, setSearch] = useState('');\n const [highlighted, setHighlighted] = useState<string | undefined>();\n const visibleList = useRef<string[]>([]);\n const navigatable = useRef<string[]>([]);\n const valueNode = useRef<Map<string, SelectItemProps>>(new Map());\n const [isInitialized, setInitialized] = useState(false);\n const [list, setList] = useState<SelectItemObject[]>([]);\n const updateElements = useCallback(\n ({ disabled, value, title, heading, nodeProps }: CallbackProps) => {\n if (title.includes(search) || heading?.includes(search)) {\n visibleList.current.push(value);\n if (!disabled) {\n navigatable.current.push(value);\n }\n }\n valueNode.current.set(value, nodeProps);\n },\n [search]\n );\n const onUpdateSearch = useCallback(\n (search: string) => {\n setSearch(search);\n let hasHighlightedValue = false;\n const visibleItemsList: string[] = [];\n const navigatableList: string[] = [];\n const searchLowerCase = search.toLowerCase();\n list.forEach(item => {\n if (\n item.title.includes(searchLowerCase) ||\n item.heading?.includes(searchLowerCase)\n ) {\n if (item.value === highlighted) {\n hasHighlightedValue = true;\n }\n visibleItemsList.push(item.value);\n if (!item.disabled) {\n navigatableList.push(item.value);\n }\n }\n });\n navigatable.current = navigatableList;\n visibleList.current = visibleItemsList;\n if (!hasHighlightedValue) {\n setHighlighted(navigatableList[0] ?? null);\n }\n },\n [highlighted, list]\n );\n\n const updateList = useCallback(\n (children?: ReactNode, options?: SelectOptionListItem[]) => {\n const lowerCasedSearch = search.toLowerCase();\n if (options) {\n setList(\n options.flatMap(option => {\n if ('options' in option) {\n const heading = getTextFromNodes(option.heading).toLowerCase();\n return (option.options ?? []).map(item => {\n valueNode.current.set(item.value, item);\n const title = getTextFromNodes(item.label).toLowerCase();\n if (\n title.includes(lowerCasedSearch) ||\n heading?.includes(lowerCasedSearch)\n ) {\n visibleList.current.push(item.value);\n if (!disabled) {\n navigatable.current.push(item.value);\n }\n }\n return {\n heading,\n disabled: item.disabled,\n value: item.value,\n title,\n };\n });\n } else {\n valueNode.current.set(option.value, option);\n const title = getTextFromNodes(option.label).toLowerCase();\n if (title.includes(lowerCasedSearch)) {\n visibleList.current.push(option.value);\n if (!disabled) {\n navigatable.current.push(option.value);\n }\n }\n return {\n disabled: option.disabled,\n value: option.value,\n title: getTextFromNodes(option.label),\n };\n }\n })\n );\n } else if (children) {\n setList(childrenToComboboxItemArray(children, updateElements));\n }\n },\n [disabled, search, updateElements]\n );\n\n useEffect(() => {\n updateList(children, options);\n setInitialized(true);\n }, [children, options, updateList]);\n\n const inputRef = useRef<HTMLInputElement>(null);\n const inputModalityProps = useInputModality();\n const portalContainer = useResolvedPortalContainer(container);\n\n const onFocus = () => {\n inputRef.current?.focus();\n };\n\n const clearSearch = () => {\n onUpdateSearch('');\n };\n\n const onKeyDown = (e: KeyboardEvent<HTMLElement>) => {\n if (!e.defaultPrevented) {\n if (e.key === 'Enter') {\n e.preventDefault();\n if (highlighted) {\n onSelect(highlighted, undefined, e);\n } else if (visibleList.current.length === 0 && allowCreateOption) {\n onSelect(search, 'custom', e);\n }\n } else if (['ArrowUp', 'ArrowDown', 'Home', 'End'].includes(e.key)) {\n e.preventDefault();\n let nextHighlightedValue = highlighted;\n const highlightedIndex = navigatable.current.findIndex(\n value => value === highlighted\n );\n if (e.key === 'ArrowUp') {\n if (highlightedIndex === 0) {\n nextHighlightedValue = navigatable.current[navigatable.current.length - 1];\n } else {\n nextHighlightedValue = navigatable.current[highlightedIndex - 1];\n }\n } else if (e.key === 'ArrowDown') {\n e.preventDefault();\n if (highlightedIndex === navigatable.current.length - 1) {\n nextHighlightedValue = navigatable.current[0];\n } else {\n nextHighlightedValue = navigatable.current[highlightedIndex + 1];\n }\n } else if (e.key === 'End') {\n e.preventDefault();\n nextHighlightedValue = navigatable.current[navigatable.current.length - 1];\n } else if (e.key === 'Home') {\n nextHighlightedValue = navigatable.current[0];\n e.preventDefault();\n }\n setHighlighted(nextHighlightedValue);\n }\n }\n };\n const isHidden = useCallback(\n (value?: string) => {\n return !visibleList.current.includes(value ?? '');\n },\n [visibleList]\n );\n\n const optionContextValue = useMemo(() => {\n return {\n search,\n updateHighlighted: setHighlighted,\n highlighted,\n isHidden,\n onSelect,\n selectedValues,\n };\n }, [search, highlighted, isHidden, onSelect, selectedValues]);\n\n const onCreateOption = (e: MouseEvent<HTMLDivElement>) => {\n e.preventDefault();\n e.stopPropagation();\n if (allowCreateOption) {\n onSelect(search, 'custom', e);\n }\n };\n\n return (\n <FormRoot\n $orientation={orientation}\n $dir={dir}\n $addLabelPadding\n {...props}\n >\n <FormElementContainer>\n <SelectPopoverRoot\n open={open}\n onOpenChange={onOpenChange}\n modal={true}\n >\n <StyledSelectTrigger\n id={id ?? defaultId}\n $error={!!error}\n disabled={disabled}\n data-testid=\"select-trigger\"\n {...triggerProps}\n >\n {isInitialized && (\n <SelectValue>\n {selectedValues.length === 0 ? (\n placeholder\n ) : multiple ? (\n <MultiSelectValue\n disabled={disabled ?? false}\n onSelect={onSelect}\n selectedValues={selectedValues}\n sortable={!disabled && sortable}\n valueNode={valueNode.current}\n onChange={onChange}\n />\n ) : (\n <SingleSelectValue\n valueNode={\n checkbox && selectLabel\n ? { label: selectLabel as string, value: selectLabel as string }\n : valueNode.current.get(selectedValues[0])\n }\n value={selectedValues[0]}\n />\n )}\n </SelectValue>\n )}\n <Icon\n name=\"sort\"\n size=\"sm\"\n />\n </StyledSelectTrigger>\n {form && (\n <HiddenSelectElement\n multiple={multiple}\n name={name}\n form={form}\n value={selectedValues}\n onChange={() => null}\n >\n {list.map(item => (\n <option\n key={item.value}\n value={item.value}\n disabled={item.disabled}\n >\n {item.value}\n </option>\n ))}\n </HiddenSelectElement>\n )}\n <Portal container={portalContainer}>\n <SelectPopoverContent\n {...inputModalityProps}\n sideOffset={5}\n onFocus={onFocus}\n onCloseAutoFocus={() => {\n onUpdateSearch('');\n }}\n onOpenAutoFocus={() => {\n setHighlighted(visibleList.current[0]);\n }}\n align=\"start\"\n $useFullWidthItems={useFullWidthItems}\n $itemCharacterLimit={itemCharacterLimit}\n >\n <SelectList>\n <SearchBarContainer $showSearch={showSearch}>\n <SearchBar\n ref={inputRef}\n value={search}\n onChange={e => onUpdateSearch(e.target.value)}\n data-testid=\"select-search-input\"\n onKeyDown={onKeyDown}\n $showSearch={showSearch}\n />\n <SearchClose\n as={IconButton}\n icon=\"cross\"\n onClick={clearSearch}\n data-testid=\"select-search-close\"\n $showClose={search.length > 0}\n size=\"xs\"\n />\n </SearchBarContainer>\n <SelectListContent $maxHeight={maxHeight}>\n <OptionContext.Provider value={optionContextValue}>\n {options && options.length > 0\n ? options.map((props, index) => {\n if ('options' in props) {\n const { options: itemList = [], ...groupProps } = props;\n return (\n <SelectGroup\n key={`select-${id}-group-${index}`}\n {...groupProps}\n >\n {itemList.map((itemProps, itemIndex) => {\n if (checkbox) {\n return (\n <MultiSelectCheckboxItem\n key={`select-${id}-group-${index}-item-${itemIndex}`}\n {...itemProps}\n />\n );\n }\n return (\n <SelectItem\n key={`select-${id}-group-${index}-item-${itemIndex}`}\n {...itemProps}\n />\n );\n })}\n </SelectGroup>\n );\n } else {\n if (checkbox) {\n return (\n <MultiSelectCheckboxItem\n key={`select-${id}-item-${index}`}\n {...props}\n />\n );\n }\n return (\n <SelectItem\n key={`select-${id}-item-${index}`}\n {...props}\n />\n );\n }\n })\n : children}\n </OptionContext.Provider>\n </SelectListContent>\n {visibleList.current.length === 0 &&\n (allowCreateOption || !!noAvailableOptions) && (\n <NoOptionsDisplay\n allowCreateOption={allowCreateOption}\n search={search}\n customText={customText}\n noAvailableOptions={noAvailableOptions}\n onCreateOption={onCreateOption}\n onOpenChange={onOpenChange}\n containerProps={props}\n />\n )}\n </SelectList>\n </SelectPopoverContent>\n </Portal>\n </SelectPopoverRoot>\n {!!error && error !== true && <Error>{error}</Error>}\n </FormElementContainer>\n {label && (\n <Label\n htmlFor={id ?? defaultId}\n disabled={disabled}\n error={!!error}\n >\n {label}\n </Label>\n )}\n </FormRoot>\n );\n};\n\nexport const SelectGroup = forwardRef<HTMLDivElement, SelectGroupProps>(\n ({ children, heading, ...props }, forwardedRef) => {\n useSearch();\n return (\n <SelectGroupContainer\n {...props}\n ref={mergeRefs([\n forwardedRef,\n node => {\n const hidden = node?.querySelectorAll('[cui-select-item]').length === 0;\n if (hidden) {\n node?.setAttribute('hidden', '');\n } else {\n node?.removeAttribute('hidden');\n }\n node?.setAttribute('aria-hidden', hidden.toString());\n },\n ])}\n >\n <SelectGroupName>{heading}</SelectGroupName>\n <SelectGroupContent>{children}</SelectGroupContent>\n </SelectGroupContainer>\n );\n }\n);\n\nSelectGroup.displayName = 'Select.Group';\n\nconst CheckIcon = styled.svg<{ $showCheck: boolean }>`\n opacity: ${({ $showCheck }) => ($showCheck ? 1 : 0)};\n`;\n\nexport const SelectItem = forwardRef<HTMLDivElement, SelectItemProps>(\n (\n {\n disabled = false,\n children,\n label,\n description,\n separator,\n onSelect: onSelectProp,\n value = '',\n icon,\n iconDir,\n onMouseOver: onMouseOverProp,\n ...props\n },\n forwardedRef\n ) => {\n const { highlighted, updateHighlighted, isHidden, selectedValues, onSelect } =\n useOption();\n const onSelectValue = (evt: MouseEvent<HTMLElement>) => {\n if (!disabled) {\n onSelect(value, undefined, evt);\n if (typeof onSelectProp == 'function') {\n onSelectProp(value, undefined, evt);\n }\n }\n };\n const onMouseOver = (e: MouseEvent<HTMLDivElement>) => {\n if (onMouseOverProp) {\n onMouseOverProp(e);\n }\n if (!disabled) {\n updateHighlighted(value);\n }\n };\n\n if (isHidden(value)) {\n return null;\n }\n const isChecked = selectedValues.includes(value);\n\n return (\n <>\n <GenericMenuItem\n {...props}\n data-value={value}\n onClick={onSelectValue}\n onMouseOver={onMouseOver}\n ref={forwardedRef}\n data-state={isChecked ? 'checked' : 'unchecked'}\n data-disabled={disabled ? true : undefined}\n data-highlighted={highlighted == value ? 'true' : undefined}\n cui-select-item=\"\"\n >\n <IconWrapper\n icon={icon}\n iconDir={iconDir}\n gap=\"xxs\"\n isResponsive={false}\n >\n {label ? (\n <>\n {label}\n {description && (\n <SelectItemDescription>{description}</SelectItemDescription>\n )}\n </>\n ) : (\n children\n )}\n </IconWrapper>\n <CheckIcon\n as={Icon}\n name=\"check\"\n size=\"sm\"\n $showCheck={isChecked}\n />\n </GenericMenuItem>\n {separator && <Separator size=\"sm\" />}\n </>\n );\n }\n);\n\nexport type MultiSelectCheckboxItemProps = SelectItemProps & {\n variant?: CheckboxVariants;\n};\n\nSelectItem.displayName = 'Select.Item';\n\nexport const MultiSelectCheckboxItem = forwardRef<\n HTMLDivElement,\n MultiSelectCheckboxItemProps\n>(\n (\n {\n disabled = false,\n children,\n icon,\n iconDir = 'end',\n label,\n description,\n onMouseOver: onMouseOverProp,\n onSelect: onSelectProp,\n separator,\n value = '',\n variant,\n ...props\n },\n forwardedRef\n ) => {\n const { highlighted, updateHighlighted, isHidden, selectedValues, onSelect } =\n useOption();\n\n const handleMenuItemClick = (evt: MouseEvent<HTMLElement>) => {\n if (!disabled) {\n onSelect(value, undefined, evt);\n\n if (typeof onSelectProp === 'function') {\n onSelectProp(value, undefined, evt);\n }\n }\n };\n\n const handleMenuItemMouseOver = (e: MouseEvent<HTMLDivElement>) => {\n if (onMouseOverProp) {\n onMouseOverProp(e);\n }\n if (!disabled) {\n updateHighlighted(value);\n }\n };\n\n if (isHidden(value)) {\n return null;\n }\n\n const isChecked = selectedValues.includes(value);\n\n return (\n <>\n <GenericMenuItem\n {...props}\n data-value={value}\n onClick={handleMenuItemClick}\n onMouseOver={handleMenuItemMouseOver}\n ref={forwardedRef}\n data-disabled={disabled ? true : undefined}\n data-highlighted={highlighted == value ? 'true' : undefined}\n data-testid={`multi-select-checkbox-${value}`}\n cui-select-item=\"\"\n >\n <Container\n orientation=\"horizontal\"\n gap=\"xs\"\n overflow=\"hidden\"\n isResponsive={false}\n >\n <Checkbox\n checked={isChecked}\n data-testid=\"multi-select-checkbox\"\n disabled={disabled}\n variant={variant ?? 'default'}\n />\n <IconWrapper\n icon={icon}\n iconDir={iconDir}\n gap=\"xxs\"\n isResponsive={false}\n >\n {label ? (\n <>\n {label}\n {description && (\n <SelectItemDescription>{description}</SelectItemDescription>\n )}\n </>\n ) : (\n children\n )}\n </IconWrapper>\n </Container>\n </GenericMenuItem>\n {separator && <Separator size=\"sm\" />}\n </>\n );\n }\n);\n\nMultiSelectCheckboxItem.displayName = 'Select.Item';\n\nexport const SelectItemDescription = forwardRef<HTMLDivElement, TextProps>(\n ({ children, ...props }, ref) => {\n return (\n <Text\n ref={ref}\n component={SelectItemDescriptionText}\n color=\"muted\"\n {...props}\n >\n {children}\n </Text>\n );\n }\n);\n\nSelectItemDescription.displayName = 'Select.ItemDescription';\n"],"names":["NoOptionsDisplay","allowCreateOption","search","customText","noAvailableOptions","onCreateOption","onOpenChange","containerProps","getCustomTextWithSearch","text","replaceAll","getDefaultMessage","length","getNoAvailableOptionsNode","close","hasCustomText","hasSearchInput","shouldShowCreateOption","noOptionsNode","handleNoOptionsClick","e","isCustomReactNode","Container","jsx","SelectNoDataContainer","childrenToComboboxItemArray","children","callback","heading","Children","toArray","flatMap","child","isValidElement","type","displayName","groupChildren","props","getTextFromNodes","toLowerCase","title","value","disabled","nodeProps","InternalSelect","label","orientation","dir","id","error","selectedValues","onChange","onSelect","open","name","form","options","sortable","placeholder","maxHeight","multiple","checkbox","selectLabel","showSearch","container","useFullWidthItems","itemCharacterLimit","triggerProps","defaultId","useId","setSearch","useState","highlighted","setHighlighted","visibleList","useRef","navigatable","valueNode","Map","isInitialized","setInitialized","list","setList","updateElements","useCallback","includes","current","push","set","onUpdateSearch","hasHighlightedValue","visibleItemsList","navigatableList","searchLowerCase","forEach","item","updateList","lowerCasedSearch","option","map","useEffect","inputRef","inputModalityProps","useInputModality","portalContainer","useResolvedPortalContainer","onFocus","focus","clearSearch","onKeyDown","defaultPrevented","key","preventDefault","undefined","nextHighlightedValue","highlightedIndex","findIndex","isHidden","optionContextValue","useMemo","updateHighlighted","stopPropagation","jsxs","FormRoot","FormElementContainer","SelectPopoverRoot","StyledSelectTrigger","SelectValue","MultiSelectValue","SingleSelectValue","get","Icon","HiddenSelectElement","Portal","SelectPopoverContent","SelectList","SearchBarContainer","SearchBar","target","SearchClose","IconButton","SelectListContent","OptionContext","index","itemList","groupProps","itemProps","itemIndex","Error","Label","SelectGroup","forwardRef","forwardedRef","useSearch","SelectGroupContainer","mergeRefs","node","hidden","querySelectorAll","setAttribute","removeAttribute","toString","SelectGroupName","SelectGroupContent","CheckIcon","styled","svg","withConfig","componentId","$showCheck","SelectItem","description","separator","onSelectProp","icon","iconDir","onMouseOver","onMouseOverProp","useOption","onSelectValue","evt","isChecked","Fragment","GenericMenuItem","IconWrapper","Separator","MultiSelectCheckboxItem","variant","handleMenuItemClick","handleMenuItemMouseOver","Checkbox","SelectItemDescription","ref","Text","SelectItemDescriptionText"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA+EA,MAAMA,mBAAoDA,CAAC;AAAA,EACzDC,iBAAAA;AAAAA,EACAC,MAAAA;AAAAA,EACAC,UAAAA;AAAAA,EACAC,kBAAAA;AAAAA,EACAC,cAAAA;AAAAA,EACAC,YAAAA;AAAAA,EACAC;AACF,CAAA,KAAM;AACJ,EAAA,MAAMC,0BAA0BA,CAACC,IAAAA,KAAiBA,IAAAA,CAAKC,UAAAA,CAAW,YAAYR,MAAM,CAAA;AAEpF,EAAA,MAAMS,iBAAAA,GAAoBA,MACxB,CAAA,gBAAA,EAAmBT,MAAAA,CAAOU,SAAS,CAAA,GAAI,CAAA,MAAA,EAASV,MAAM,CAAA,EAAA,CAAA,GAAO,EAAE,CAAA,CAAA;AAEjE,EAAA,MAAMW,4BAA4BA,MAAiB;AACjD,IAAA,IAAI,OAAOT,uBAAuB,SAAA,EAAW;AAC3C,MAAA,OAAOA,kBAAAA,GAAqBO,mBAAkB,GAAI,IAAA;AAAA,IACpD;AAGA,IAAA,OAAOP,kBAAAA,CAAmB;AAAA,MACxBF,MAAAA;AAAAA,MACAY,KAAAA,EAAOA,MAAYR,YAAAA,CAAa,KAAK;AAAA,KACtC,CAAA;AAAA,EACH,CAAA;AAGA,EAAA,MAAMS,aAAAA,GAAgBZ,WAAWS,MAAAA,GAAS,CAAA;AAC1C,EAAA,MAAMI,cAAAA,GAAiBd,OAAOU,MAAAA,GAAS,CAAA;AACvC,EAAA,MAAMK,yBAAyBhB,iBAAAA,IAAqBe,cAAAA;AAEpD,EAAA,IAAIE,aAAAA,GAA2B,IAAA;AAE/B,EAAA,IAAID,sBAAAA,EAAwB;AAC1BC,IAAAA,aAAAA,GAAgBH,aAAAA,GAAgBP,uBAAAA,CAAwBL,UAAU,CAAA,GAAI,OAAOD,MAAM,CAAA,CAAA;AAAA,EACrF,WAAWa,aAAAA,EAAe;AACxBG,IAAAA,aAAAA,GAAgBV,wBAAwBL,UAAU,CAAA;AAAA,EACpD,CAAA,MAAO;AACLe,IAAAA,aAAAA,GAAgBL,yBAAAA,EAA0B;AAAA,EAC5C;AAEA,EAAA,IAAI,CAACK,aAAAA,EAAe;AAClB,IAAA,OAAO,IAAA;AAAA,EACT;AAEA,EAAA,MAAMC,oBAAAA,GAAuBA,CAACC,CAAAA,KAAkC;AAC9D,IAAA,IAAIH,sBAAAA,EAAwB;AAC1BZ,MAAAA,cAAAA,CAAee,CAAC,CAAA;AAChBd,MAAAA,YAAAA,CAAa,KAAK,CAAA;AAAA,IACpB;AAAA,EACF,CAAA;AAEA,EAAA,MAAMe,iBAAAA,GAAoB,OAAOjB,kBAAAA,KAAuB,UAAA;AACxD,EAAA,IAAIiB,iBAAAA,EAAmB;AACrB,IAAA,sCACGC,mBAAA,EAAA,EACC,OAAA,EAASH,oBAAAA,EACT,GAAIZ,gBAEHW,QAAAA,EAAAA,aAAAA,EACH,CAAA;AAAA,EAEJ;AAEA,EAAA,uBACEK,cAAA,CAACC,sCACC,OAAA,EAASL,oBAAAA,EACT,YAAYlB,iBAAAA,EACZ,GAAIM,gBAEHW,QAAAA,EAAAA,aAAAA,EACH,CAAA;AAEJ,CAAA;AAEA,MAAMO,2BAAAA,GAA8BA,CAClCC,QAAAA,EACAC,QAAAA,EACAC,OAAAA,KACuB;AACvB,EAAA,OAAOC,cAAAA,CAASC,OAAAA,CAAQJ,QAAQ,CAAA,CAAEK,QAAQC,CAAAA,KAAAA,KAAS;AACjD,IAAA,IAAIC,qBAAeD,KAAK,CAAA,IAAKA,KAAAA,IAAS,OAAOA,UAAU,QAAA,EAAU;AAC/D,MAAA,MAAME,OAAOF,KAAAA,CAAME,IAAAA;AACnB,MAAA,IAAIA,IAAAA,CAAKC,gBAAgB,cAAA,EAAgB;AACvC,QAAA,MAAMC,aAAAA,GAAgBJ,MAAMK,KAAAA,CAAMX,QAAAA;AAClC,QAAA,OAAOD,2BAAAA,CACLW,eACAT,QAAAA,EACAW,iCAAAA,CAAiBN,MAAMK,KAAAA,CAAMT,OAAO,CAAA,CAAEW,WAAAA,EACxC,CAAA;AAAA,MACF,CAAA,MAAA,IAAWL,IAAAA,CAAKC,WAAAA,KAAgB,aAAA,EAAe;AAC7C,QAAA,MAAMK,KAAAA,GAAQF,iCAAAA,CAAiBN,KAAK,CAAA,CAAEO,WAAAA,EAAY;AAClD,QAAA,MAAME,KAAAA,GAAQT,MAAMK,KAAAA,CAAMI,KAAAA;AAC1B,QAAA,MAAMC,QAAAA,GAAWV,MAAMK,KAAAA,CAAMK,QAAAA;AAC7Bf,QAAAA,QAAAA,CAAS;AAAA,UACPe,QAAAA;AAAAA,UACAD,KAAAA;AAAAA,UACAD,KAAAA;AAAAA,UACAZ,OAAAA;AAAAA,UACAe,WAAWX,KAAAA,CAAMK;AAAAA,SAClB,CAAA;AACD,QAAA,OAAO;AAAA,UACLK,QAAAA;AAAAA,UACAD,KAAAA;AAAAA,UACAD,KAAAA;AAAAA,UACAZ;AAAAA,SACF;AAAA,MACF,CAAA,MAAA,IAAW,OAAA,IAAWI,KAAAA,IAASA,KAAAA,CAAMK,MAAMX,QAAAA,EAAU;AACnD,QAAA,OAAOD,2BAAAA,CAA4BO,KAAAA,CAAMK,KAAAA,CAAMX,QAAAA,EAAUC,UAAUC,OAAO,CAAA;AAAA,MAC5E;AAAA,IACF;AACA,IAAA,OAAO,EAAA;AAAA,EACT,CAAC,CAAA;AACH,CAAA;AAEO,MAAMgB,iBAAiBA,CAAC;AAAA,EAC7BC,KAAAA;AAAAA,EACAnB,QAAAA;AAAAA,EACAoB,WAAAA;AAAAA,EACAC,GAAAA;AAAAA,EACAL,QAAAA;AAAAA,EACAM,EAAAA;AAAAA,EACAC,KAAAA;AAAAA,EACAR,KAAAA,EAAOS,cAAAA;AAAAA,EACPC,QAAAA;AAAAA,EACAC,QAAAA;AAAAA,EACAC,IAAAA;AAAAA,EACA/C,YAAAA;AAAAA,EACAgD,IAAAA;AAAAA,EACAC,IAAAA;AAAAA,EACAtD,iBAAAA,GAAoB,KAAA;AAAA,EACpBE,UAAAA,GAAa,EAAA;AAAA,EACbqD,OAAAA;AAAAA,EACAC,QAAAA,GAAW,KAAA;AAAA,EACXC,WAAAA,GAAc,kBAAA;AAAA,EACdC,SAAAA;AAAAA,EACAC,QAAAA;AAAAA,EACAC,QAAAA;AAAAA,EACAC,WAAAA;AAAAA,EACAC,UAAAA,GAAa,KAAA;AAAA,EACbC,SAAAA;AAAAA,EACAC,iBAAAA,GAAoB,KAAA;AAAA,EACpBC,kBAAAA,GAAqB,MAAA;AAAA,EACrB9D,kBAAAA,GAAqB,IAAA;AAAA,EACrB+D,YAAAA;AAAAA,EACA,GAAG9B;AACiB,CAAA,KAAM;AAC1B,EAAA,MAAM+B,YAAYC,WAAAA,EAAM;AACxB,EAAA,MAAM,CAACnE,MAAAA,EAAQoE,SAAS,CAAA,GAAIC,eAAS,EAAE,CAAA;AACvC,EAAA,MAAM,CAACC,WAAAA,EAAaC,cAAc,CAAA,GAAIF,cAAAA,EAA6B;AACnE,EAAA,MAAMG,WAAAA,GAAcC,YAAAA,CAAiB,EAAE,CAAA;AACvC,EAAA,MAAMC,WAAAA,GAAcD,YAAAA,CAAiB,EAAE,CAAA;AACvC,EAAA,MAAME,SAAAA,GAAYF,YAAAA,iBAAqC,IAAIG,GAAAA,EAAK,CAAA;AAChE,EAAA,MAAM,CAACC,aAAAA,EAAeC,cAAc,CAAA,GAAIT,eAAS,KAAK,CAAA;AACtD,EAAA,MAAM,CAACU,IAAAA,EAAMC,OAAO,CAAA,GAAIX,cAAAA,CAA6B,EAAE,CAAA;AACvD,EAAA,MAAMY,cAAAA,GAAiBC,kBACrB,CAAC;AAAA,IAAE1C,QAAAA,EAAAA,SAAAA;AAAAA,IAAUD,KAAAA;AAAAA,IAAOD,KAAAA;AAAAA,IAAOZ,OAAAA;AAAAA,IAASe;AAAAA,GAAyB,KAAM;AACjE,IAAA,IAAIH,MAAM6C,QAAAA,CAASnF,MAAM,KAAK0B,OAAAA,EAASyD,QAAAA,CAASnF,MAAM,CAAA,EAAG;AACvDwE,MAAAA,WAAAA,CAAYY,OAAAA,CAAQC,KAAK9C,KAAK,CAAA;AAC9B,MAAA,IAAI,CAACC,SAAAA,EAAU;AACbkC,QAAAA,WAAAA,CAAYU,OAAAA,CAAQC,KAAK9C,KAAK,CAAA;AAAA,MAChC;AAAA,IACF;AACAoC,IAAAA,SAAAA,CAAUS,OAAAA,CAAQE,GAAAA,CAAI/C,KAAAA,EAAOE,SAAS,CAAA;AAAA,EACxC,CAAA,EACA,CAACzC,MAAM,CACT,CAAA;AACA,EAAA,MAAMuF,cAAAA,GAAiBL,iBAAAA,CACrB,CAAClF,OAAAA,KAAmB;AAClBoE,IAAAA,SAAAA,CAAUpE,OAAM,CAAA;AAChB,IAAA,IAAIwF,mBAAAA,GAAsB,KAAA;AAC1B,IAAA,MAAMC,mBAA6B,EAAA;AACnC,IAAA,MAAMC,kBAA4B,EAAA;AAClC,IAAA,MAAMC,eAAAA,GAAkB3F,QAAOqC,WAAAA,EAAY;AAC3C0C,IAAAA,IAAAA,CAAKa,QAAQC,CAAAA,IAAAA,KAAQ;AACnB,MAAA,IACEA,IAAAA,CAAKvD,MAAM6C,QAAAA,CAASQ,eAAe,KACnCE,IAAAA,CAAKnE,OAAAA,EAASyD,QAAAA,CAASQ,eAAe,CAAA,EACtC;AACA,QAAA,IAAIE,IAAAA,CAAKtD,UAAU+B,WAAAA,EAAa;AAC9BkB,UAAAA,mBAAAA,GAAsB,IAAA;AAAA,QACxB;AACAC,QAAAA,gBAAAA,CAAiBJ,IAAAA,CAAKQ,KAAKtD,KAAK,CAAA;AAChC,QAAA,IAAI,CAACsD,KAAKrD,QAAAA,EAAU;AAClBkD,UAAAA,eAAAA,CAAgBL,IAAAA,CAAKQ,KAAKtD,KAAK,CAAA;AAAA,QACjC;AAAA,MACF;AAAA,IACF,CAAC,CAAA;AACDmC,IAAAA,WAAAA,CAAYU,OAAAA,GAAUM,eAAAA;AACtBlB,IAAAA,WAAAA,CAAYY,OAAAA,GAAUK,gBAAAA;AACtB,IAAA,IAAI,CAACD,mBAAAA,EAAqB;AACxBjB,MAAAA,cAAAA,CAAemB,eAAAA,CAAgB,CAAC,CAAA,IAAK,IAAI,CAAA;AAAA,IAC3C;AAAA,EACF,CAAA,EACA,CAACpB,WAAAA,EAAaS,IAAI,CACpB,CAAA;AAEA,EAAA,MAAMe,UAAAA,GAAaZ,iBAAAA,CACjB,CAAC1D,SAAAA,EAAsB8B,QAAAA,KAAqC;AAC1D,IAAA,MAAMyC,gBAAAA,GAAmB/F,OAAOqC,WAAAA,EAAY;AAC5C,IAAA,IAAIiB,QAAAA,EAAS;AACX0B,MAAAA,OAAAA,CACE1B,QAAAA,CAAQzB,QAAQmE,CAAAA,MAAAA,KAAU;AACxB,QAAA,IAAI,aAAaA,MAAAA,EAAQ;AACvB,UAAA,MAAMtE,OAAAA,GAAUU,iCAAAA,CAAiB4D,MAAAA,CAAOtE,OAAO,EAAEW,WAAAA,EAAY;AAC7D,UAAA,OAAA,CAAQ2D,MAAAA,CAAO1C,OAAAA,IAAW,IAAI2C,IAAIJ,CAAAA,IAAAA,KAAQ;AACxClB,YAAAA,SAAAA,CAAUS,OAAAA,CAAQE,GAAAA,CAAIO,IAAAA,CAAKtD,KAAAA,EAAOsD,IAAI,CAAA;AACtC,YAAA,MAAMvD,KAAAA,GAAQF,iCAAAA,CAAiByD,IAAAA,CAAKlD,KAAK,EAAEN,WAAAA,EAAY;AACvD,YAAA,IACEC,MAAM6C,QAAAA,CAASY,gBAAgB,KAC/BrE,OAAAA,EAASyD,QAAAA,CAASY,gBAAgB,CAAA,EAClC;AACAvB,cAAAA,WAAAA,CAAYY,OAAAA,CAAQC,IAAAA,CAAKQ,IAAAA,CAAKtD,KAAK,CAAA;AACnC,cAAA,IAAI,CAACC,QAAAA,EAAU;AACbkC,gBAAAA,WAAAA,CAAYU,OAAAA,CAAQC,IAAAA,CAAKQ,IAAAA,CAAKtD,KAAK,CAAA;AAAA,cACrC;AAAA,YACF;AACA,YAAA,OAAO;AAAA,cACLb,OAAAA;AAAAA,cACAc,UAAUqD,IAAAA,CAAKrD,QAAAA;AAAAA,cACfD,OAAOsD,IAAAA,CAAKtD,KAAAA;AAAAA,cACZD;AAAAA,aACF;AAAA,UACF,CAAC,CAAA;AAAA,QACH,CAAA,MAAO;AACLqC,UAAAA,SAAAA,CAAUS,OAAAA,CAAQE,GAAAA,CAAIU,MAAAA,CAAOzD,KAAAA,EAAOyD,MAAM,CAAA;AAC1C,UAAA,MAAM1D,KAAAA,GAAQF,iCAAAA,CAAiB4D,MAAAA,CAAOrD,KAAK,EAAEN,WAAAA,EAAY;AACzD,UAAA,IAAIC,KAAAA,CAAM6C,QAAAA,CAASY,gBAAgB,CAAA,EAAG;AACpCvB,YAAAA,WAAAA,CAAYY,OAAAA,CAAQC,IAAAA,CAAKW,MAAAA,CAAOzD,KAAK,CAAA;AACrC,YAAA,IAAI,CAACC,QAAAA,EAAU;AACbkC,cAAAA,WAAAA,CAAYU,OAAAA,CAAQC,IAAAA,CAAKW,MAAAA,CAAOzD,KAAK,CAAA;AAAA,YACvC;AAAA,UACF;AACA,UAAA,OAAO;AAAA,YACLC,UAAUwD,MAAAA,CAAOxD,QAAAA;AAAAA,YACjBD,OAAOyD,MAAAA,CAAOzD,KAAAA;AAAAA,YACdD,KAAAA,EAAOF,iCAAAA,CAAiB4D,MAAAA,CAAOrD,KAAK;AAAA,WACtC;AAAA,QACF;AAAA,MACF,CAAC,CACH,CAAA;AAAA,IACF,WAAWnB,SAAAA,EAAU;AACnBwD,MAAAA,OAAAA,CAAQzD,2BAAAA,CAA4BC,SAAAA,EAAUyD,cAAc,CAAC,CAAA;AAAA,IAC/D;AAAA,EACF,CAAA,EACA,CAACzC,QAAAA,EAAUxC,MAAAA,EAAQiF,cAAc,CACnC,CAAA;AAEAiB,EAAAA,eAAAA,CAAU,MAAM;AACdJ,IAAAA,UAAAA,CAAWtE,UAAU8B,OAAO,CAAA;AAC5BwB,IAAAA,cAAAA,CAAe,IAAI,CAAA;AAAA,EACrB,CAAA,EAAG,CAACtD,QAAAA,EAAU8B,OAAAA,EAASwC,UAAU,CAAC,CAAA;AAElC,EAAA,MAAMK,QAAAA,GAAW1B,aAAyB,IAAI,CAAA;AAC9C,EAAA,MAAM2B,qBAAqBC,iCAAAA,EAAiB;AAC5C,EAAA,MAAMC,eAAAA,GAAkBC,yCAA2BzC,SAAS,CAAA;AAE5D,EAAA,MAAM0C,UAAUA,MAAM;AACpBL,IAAAA,QAAAA,CAASf,SAASqB,KAAAA,EAAM;AAAA,EAC1B,CAAA;AAEA,EAAA,MAAMC,cAAcA,MAAM;AACxBnB,IAAAA,cAAAA,CAAe,EAAE,CAAA;AAAA,EACnB,CAAA;AAEA,EAAA,MAAMoB,SAAAA,GAAYA,CAACzF,CAAAA,KAAkC;AACnD,IAAA,IAAI,CAACA,EAAE0F,gBAAAA,EAAkB;AACvB,MAAA,IAAI1F,CAAAA,CAAE2F,QAAQ,OAAA,EAAS;AACrB3F,QAAAA,CAAAA,CAAE4F,cAAAA,EAAe;AACjB,QAAA,IAAIxC,WAAAA,EAAa;AACfpB,UAAAA,QAAAA,CAASoB,WAAAA,EAAayC,QAAW7F,CAAC,CAAA;AAAA,QACpC,CAAA,MAAA,IAAWsD,WAAAA,CAAYY,OAAAA,CAAQ1E,MAAAA,KAAW,KAAKX,iBAAAA,EAAmB;AAChEmD,UAAAA,QAAAA,CAASlD,MAAAA,EAAQ,UAAUkB,CAAC,CAAA;AAAA,QAC9B;AAAA,MACF,CAAA,MAAA,IAAW,CAAC,SAAA,EAAW,WAAA,EAAa,MAAA,EAAQ,KAAK,CAAA,CAAEiE,QAAAA,CAASjE,CAAAA,CAAE2F,GAAG,CAAA,EAAG;AAClE3F,QAAAA,CAAAA,CAAE4F,cAAAA,EAAe;AACjB,QAAA,IAAIE,oBAAAA,GAAuB1C,WAAAA;AAC3B,QAAA,MAAM2C,mBAAmBvC,WAAAA,CAAYU,OAAAA,CAAQ8B,SAAAA,CAC3C3E,CAAAA,KAAAA,KAASA,UAAU+B,WACrB,CAAA;AACA,QAAA,IAAIpD,CAAAA,CAAE2F,QAAQ,SAAA,EAAW;AACvB,UAAA,IAAII,qBAAqB,CAAA,EAAG;AAC1BD,YAAAA,oBAAAA,GAAuBtC,WAAAA,CAAYU,OAAAA,CAAQV,WAAAA,CAAYU,OAAAA,CAAQ1E,SAAS,CAAC,CAAA;AAAA,UAC3E,CAAA,MAAO;AACLsG,YAAAA,oBAAAA,GAAuBtC,WAAAA,CAAYU,OAAAA,CAAQ6B,gBAAAA,GAAmB,CAAC,CAAA;AAAA,UACjE;AAAA,QACF,CAAA,MAAA,IAAW/F,CAAAA,CAAE2F,GAAAA,KAAQ,WAAA,EAAa;AAChC3F,UAAAA,CAAAA,CAAE4F,cAAAA,EAAe;AACjB,UAAA,IAAIG,gBAAAA,KAAqBvC,WAAAA,CAAYU,OAAAA,CAAQ1E,MAAAA,GAAS,CAAA,EAAG;AACvDsG,YAAAA,oBAAAA,GAAuBtC,WAAAA,CAAYU,QAAQ,CAAC,CAAA;AAAA,UAC9C,CAAA,MAAO;AACL4B,YAAAA,oBAAAA,GAAuBtC,WAAAA,CAAYU,OAAAA,CAAQ6B,gBAAAA,GAAmB,CAAC,CAAA;AAAA,UACjE;AAAA,QACF,CAAA,MAAA,IAAW/F,CAAAA,CAAE2F,GAAAA,KAAQ,KAAA,EAAO;AAC1B3F,UAAAA,CAAAA,CAAE4F,cAAAA,EAAe;AACjBE,UAAAA,oBAAAA,GAAuBtC,WAAAA,CAAYU,OAAAA,CAAQV,WAAAA,CAAYU,OAAAA,CAAQ1E,SAAS,CAAC,CAAA;AAAA,QAC3E,CAAA,MAAA,IAAWQ,CAAAA,CAAE2F,GAAAA,KAAQ,MAAA,EAAQ;AAC3BG,UAAAA,oBAAAA,GAAuBtC,WAAAA,CAAYU,QAAQ,CAAC,CAAA;AAC5ClE,UAAAA,CAAAA,CAAE4F,cAAAA,EAAe;AAAA,QACnB;AACAvC,QAAAA,cAAAA,CAAeyC,oBAAoB,CAAA;AAAA,MACrC;AAAA,IACF;AAAA,EACF,CAAA;AACA,EAAA,MAAMG,QAAAA,GAAWjC,iBAAAA,CACf,CAAC3C,KAAAA,KAAmB;AAClB,IAAA,OAAO,CAACiC,WAAAA,CAAYY,OAAAA,CAAQD,QAAAA,CAAS5C,SAAS,EAAE,CAAA;AAAA,EAClD,CAAA,EACA,CAACiC,WAAW,CACd,CAAA;AAEA,EAAA,MAAM4C,kBAAAA,GAAqBC,cAAQ,MAAM;AACvC,IAAA,OAAO;AAAA,MACLrH,MAAAA;AAAAA,MACAsH,iBAAAA,EAAmB/C,cAAAA;AAAAA,MACnBD,WAAAA;AAAAA,MACA6C,QAAAA;AAAAA,MACAjE,QAAAA;AAAAA,MACAF;AAAAA,KACF;AAAA,EACF,GAAG,CAAChD,MAAAA,EAAQsE,aAAa6C,QAAAA,EAAUjE,QAAAA,EAAUF,cAAc,CAAC,CAAA;AAE5D,EAAA,MAAM7C,cAAAA,GAAiBA,CAACe,CAAAA,KAAkC;AACxDA,IAAAA,CAAAA,CAAE4F,cAAAA,EAAe;AACjB5F,IAAAA,CAAAA,CAAEqG,eAAAA,EAAgB;AAClB,IAAA,IAAIxH,iBAAAA,EAAmB;AACrBmD,MAAAA,QAAAA,CAASlD,MAAAA,EAAQ,UAAUkB,CAAC,CAAA;AAAA,IAC9B;AAAA,EACF,CAAA;AAEA,EAAA,uBACEsG,eAAA,CAACC,qBACC,YAAA,EAAc7E,WAAAA,EACd,MAAMC,GAAAA,EACN,gBAAA,EAAgB,IAAA,EAChB,GAAIV,KAAAA,EAEJ,QAAA,EAAA;AAAA,oBAAAqF,eAAA,CAACE,yCAAA,EAAA,EACC,QAAA,EAAA;AAAA,sBAAAF,eAAA,CAACG,8BAAA,EAAA,EACC,IAAA,EACA,YAAA,EACA,KAAA,EAAO,IAAA,EAEP,QAAA,EAAA;AAAA,wBAAAH,eAAA,CAACI,gCAAA,EAAA,EACC,EAAA,EAAI9E,EAAAA,IAAMoB,SAAAA,EACV,MAAA,EAAQ,CAAC,CAACnB,KAAAA,EACV,QAAA,EACA,aAAA,EAAY,gBAAA,EACZ,GAAIkB,YAAAA,EAEHY,QAAAA,EAAAA;AAAAA,UAAAA,aAAAA,oBACCxD,cAAA,CAACwG,wBAAA,EAAA,EACE7E,QAAAA,EAAAA,cAAAA,CAAetC,MAAAA,KAAW,CAAA,GACzB8C,WAAAA,GACEE,QAAAA,mBACFrC,cAAA,CAACyG,iCAAA,EAAA,EACC,QAAA,EAAUtF,QAAAA,IAAY,KAAA,EACtB,QAAA,EACA,cAAA,EACA,QAAA,EAAU,CAACA,QAAAA,IAAYe,QAAAA,EACvB,SAAA,EAAWoB,SAAAA,CAAUS,OAAAA,EACrB,QAAA,EAAmB,CAAA,mBAGrB/D,cAAA,CAAC0G,yBAAA,EAAA,EACC,SAAA,EACEpE,QAAAA,IAAYC,WAAAA,GACR;AAAA,YAAEjB,KAAAA,EAAOiB,WAAAA;AAAAA,YAAuBrB,KAAAA,EAAOqB;AAAAA,WAAsB,GAC7De,SAAAA,CAAUS,OAAAA,CAAQ4C,GAAAA,CAAIhF,cAAAA,CAAe,CAAC,CAAC,CAAA,EAE7C,KAAA,EAAOA,cAAAA,CAAe,CAAC,CAAA,EAAE,CAAA,EAG/B,CAAA;AAAA,0BAEF3B,cAAA,CAAC4G,SAAA,EAAA,EACC,IAAA,EAAK,MAAA,EACL,MAAK,IAAA,EAAI;AAAA,SAAA,EAEb,CAAA;AAAA,QACC5E,IAAAA,oBACChC,cAAA,CAAC6G,gCAAA,EAAA,EACC,QAAA,EACA,IAAA,EACA,IAAA,EACA,KAAA,EAAOlF,cAAAA,EACP,QAAA,EAAU,MAAM,IAAA,EAEf+B,QAAAA,EAAAA,IAAAA,CAAKkB,GAAAA,CAAIJ,CAAAA,IAAAA,qBACRxE,cAAA,CAAC,QAAA,EAAA,EAEC,KAAA,EAAOwE,IAAAA,CAAKtD,KAAAA,EACZ,QAAA,EAAUsD,IAAAA,CAAKrD,QAAAA,EAEdqD,QAAAA,EAAAA,IAAAA,CAAKtD,KAAAA,EAAAA,EAJDsD,IAAAA,CAAKtD,KAKZ,CACD,CAAA,EACH,CAAA;AAAA,wBAEFlB,cAAA,CAAC8G,mBAAA,EAAA,EAAO,SAAA,EAAW7B,eAAAA,EACjB,QAAA,kBAAAjF,cAAA,CAAC+G,iCAAA,EAAA,EACC,GAAIhC,kBAAAA,EACJ,UAAA,EAAY,CAAA,EACZ,OAAA,EACA,gBAAA,EAAkB,MAAM;AACtBb,UAAAA,cAAAA,CAAe,EAAE,CAAA;AAAA,QACnB,CAAA,EACA,iBAAiB,MAAM;AACrBhB,UAAAA,cAAAA,CAAeC,WAAAA,CAAYY,OAAAA,CAAQ,CAAC,CAAC,CAAA;AAAA,QACvC,CAAA,EACA,OAAM,OAAA,EACN,kBAAA,EAAoBrB,mBACpB,mBAAA,EAAqBC,kBAAAA,EAErB,0CAACqE,uBAAA,EAAA,EACC,QAAA,EAAA;AAAA,0BAAAb,eAAA,CAACc,+BAAA,EAAA,EAAmB,aAAazE,UAAAA,EAC/B,QAAA,EAAA;AAAA,4BAAAxC,cAAA,CAACkH,0BACC,GAAA,EAAKpC,QAAAA,EACL,KAAA,EAAOnG,MAAAA,EACP,UAAUkB,CAAAA,CAAAA,KAAKqE,cAAAA,CAAerE,CAAAA,CAAEsH,MAAAA,CAAOjG,KAAK,CAAA,EAC5C,aAAA,EAAY,qBAAA,EACZ,SAAA,EACA,aAAasB,UAAAA,EAAW,CAAA;AAAA,4BAE1BxC,cAAA,CAACoH,wBAAA,EAAA,EACC,EAAA,EAAIC,qBAAAA,EACJ,MAAK,OAAA,EACL,OAAA,EAAShC,WAAAA,EACT,aAAA,EAAY,uBACZ,UAAA,EAAY1G,MAAAA,CAAOU,MAAAA,GAAS,CAAA,EAC5B,MAAK,IAAA,EAAI;AAAA,WAAA,EAEb,CAAA;AAAA,yCACCiI,8BAAA,EAAA,EAAkB,UAAA,EAAYlF,WAC7B,QAAA,kBAAApC,cAAA,CAACuH,2BAAA,CAAc,UAAd,EAAuB,KAAA,EAAOxB,kBAAAA,EAC5B9D,QAAAA,EAAAA,OAAAA,IAAWA,QAAQ5C,MAAAA,GAAS,CAAA,GACzB4C,QAAQ2C,GAAAA,CAAI,CAAC9D,QAAO0G,KAAAA,KAAU;AAC5B,YAAA,IAAI,aAAa1G,MAAAA,EAAO;AACtB,cAAA,MAAM;AAAA,gBAAEmB,OAAAA,EAASwF,WAAW,EAAA;AAAA,gBAAI,GAAGC;AAAAA,eAAW,GAAI5G,MAAAA;AAClD,cAAA,uBACEd,cAAA,CAAC,eAEC,GAAI0H,UAAAA,EAEHD,mBAAS7C,GAAAA,CAAI,CAAC+C,WAAWC,SAAAA,KAAc;AACtC,gBAAA,IAAItF,QAAAA,EAAU;AACZ,kBAAA,uBACEtC,cAAA,CAAC,uBAAA,EAAA,EAEC,GAAI2H,SAAAA,EAAAA,EADC,CAAA,OAAA,EAAUlG,EAAE,CAAA,OAAA,EAAU+F,KAAK,CAAA,MAAA,EAASI,SAAS,CAAA,CACpC,CAAA;AAAA,gBAGpB;AACA,gBAAA,uBACE5H,cAAA,CAAC,UAAA,EAAA,EAEC,GAAI2H,SAAAA,EAAAA,EADC,CAAA,OAAA,EAAUlG,EAAE,CAAA,OAAA,EAAU+F,KAAK,CAAA,MAAA,EAASI,SAAS,CAAA,CACpC,CAAA;AAAA,cAGpB,CAAC,CAAA,EAAA,EAlBI,CAAA,OAAA,EAAUnG,EAAE,CAAA,OAAA,EAAU+F,KAAK,CAAA,CAmBlC,CAAA;AAAA,YAEJ,CAAA,MAAO;AACL,cAAA,IAAIlF,QAAAA,EAAU;AACZ,gBAAA,uBACEtC,cAAA,CAAC,2BAEC,GAAIc,MAAAA,EAAAA,EADC,UAAUW,EAAE,CAAA,MAAA,EAAS+F,KAAK,CAAA,CACrB,CAAA;AAAA,cAGhB;AACA,cAAA,uBACExH,cAAA,CAAC,cAEC,GAAIc,MAAAA,EAAAA,EADC,UAAUW,EAAE,CAAA,MAAA,EAAS+F,KAAK,CAAA,CACrB,CAAA;AAAA,YAGhB;AAAA,UACF,CAAC,CAAA,GACDrH,QAAAA,EACN,CAAA,EACF,CAAA;AAAA,UACCgD,YAAYY,OAAAA,CAAQ1E,MAAAA,KAAW,CAAA,KAC7BX,iBAAAA,IAAqB,CAAC,CAACG,kBAAAA,CAAAA,oBACtBmB,cAAA,CAAC,gBAAA,EAAA,EACC,mBACA,MAAA,EACA,UAAA,EACA,oBACA,cAAA,EACA,YAAA,EACA,gBAAgBc,KAAAA,EAAM;AAAA,SAAA,EAG9B,GACF,CAAA,EACF;AAAA,OAAA,EACF,CAAA;AAAA,MACC,CAAC,CAACY,KAAAA,IAASA,UAAU,IAAA,oBAAQ1B,cAAA,CAAC6H,eAAOnG,QAAAA,EAAAA,KAAAA,EAAM;AAAA,KAAA,EAC9C,CAAA;AAAA,IACCJ,KAAAA,oBACCtB,cAAA,CAAC8H,WAAA,EAAA,EACC,OAAA,EAASrG,EAAAA,IAAMoB,SAAAA,EACf,QAAA,EACA,KAAA,EAAO,CAAC,CAACnB,KAAAA,EAERJ,QAAAA,EAAAA,KAAAA,EACH;AAAA,GAAA,EAEJ,CAAA;AAEJ;AAEO,MAAMyG,WAAAA,GAAcC,iBACzB,CAAC;AAAA,EAAE7H,QAAAA;AAAAA,EAAUE,OAAAA;AAAAA,EAAS,GAAGS;AAAM,CAAA,EAAGmH,YAAAA,KAAiB;AACjDC,EAAAA,mBAAAA,EAAU;AACV,EAAA,uBACE/B,eAAA,CAACgC,qCACC,GAAIrH,KAAAA,EACJ,KAAKsH,mBAAAA,CAAU,CACbH,cACAI,CAAAA,IAAAA,KAAQ;AACN,IAAA,MAAMC,MAAAA,GAASD,IAAAA,EAAME,gBAAAA,CAAiB,mBAAmB,EAAElJ,MAAAA,KAAW,CAAA;AACtE,IAAA,IAAIiJ,MAAAA,EAAQ;AACVD,MAAAA,IAAAA,EAAMG,YAAAA,CAAa,UAAU,EAAE,CAAA;AAAA,IACjC,CAAA,MAAO;AACLH,MAAAA,IAAAA,EAAMI,gBAAgB,QAAQ,CAAA;AAAA,IAChC;AACAJ,IAAAA,IAAAA,EAAMG,YAAAA,CAAa,aAAA,EAAeF,MAAAA,CAAOI,QAAAA,EAAU,CAAA;AAAA,EACrD,CAAC,CACF,CAAA,EAED,QAAA,EAAA;AAAA,oBAAA1I,cAAA,CAAC2I,gCAAiBtI,QAAAA,EAAAA,OAAAA,EAAQ,CAAA;AAAA,oBAC1BL,cAAA,CAAC4I,mCAAoBzI,QAAAA,EAAS;AAAA,GAAA,EAChC,CAAA;AAEJ,CACF;AAEA4H,WAAAA,CAAYnH,WAAAA,GAAc,cAAA;AAE1B,MAAMiI,SAAAA,GAAYC,uBAAAA,CAAOC,GAAAA,CAAGC,UAAAA,CAAA;AAAA,EAAAC,WAAAA,EAAA;AAAA,CAAA,CAAA,CAAA,CAAA,UAAA,EAAA,GAAA,GACf,CAAC;AAAA,EAAEC;AAAW,CAAA,KAAOA,UAAAA,GAAa,IAAI,CAAE,CAAA;AAG9C,MAAMC,UAAAA,GAAanB,iBACxB,CACE;AAAA,EACE7G,QAAAA,GAAW,KAAA;AAAA,EACXhB,QAAAA;AAAAA,EACAmB,KAAAA;AAAAA,EACA8H,WAAAA;AAAAA,EACAC,SAAAA;AAAAA,EACAxH,QAAAA,EAAUyH,YAAAA;AAAAA,EACVpI,KAAAA,GAAQ,EAAA;AAAA,EACRqI,IAAAA;AAAAA,EACAC,OAAAA;AAAAA,EACAC,WAAAA,EAAaC,eAAAA;AAAAA,EACb,GAAG5I;AACL,CAAA,EACAmH,YAAAA,KACG;AACH,EAAA,MAAM;AAAA,IAAEhF,WAAAA;AAAAA,IAAagD,iBAAAA;AAAAA,IAAmBH,QAAAA;AAAAA,IAAUnE,cAAAA;AAAAA,IAAgBE;AAAAA,MAChE8H,mBAAAA,EAAU;AACZ,EAAA,MAAMC,aAAAA,GAAgBA,CAACC,GAAAA,KAAiC;AACtD,IAAA,IAAI,CAAC1I,QAAAA,EAAU;AACbU,MAAAA,QAAAA,CAASX,KAAAA,EAAOwE,QAAWmE,GAAG,CAAA;AAC9B,MAAA,IAAI,OAAOP,gBAAgB,UAAA,EAAY;AACrCA,QAAAA,YAAAA,CAAapI,KAAAA,EAAOwE,QAAWmE,GAAG,CAAA;AAAA,MACpC;AAAA,IACF;AAAA,EACF,CAAA;AACA,EAAA,MAAMJ,WAAAA,GAAcA,CAAC5J,CAAAA,KAAkC;AACrD,IAAA,IAAI6J,eAAAA,EAAiB;AACnBA,MAAAA,eAAAA,CAAgB7J,CAAC,CAAA;AAAA,IACnB;AACA,IAAA,IAAI,CAACsB,QAAAA,EAAU;AACb8E,MAAAA,iBAAAA,CAAkB/E,KAAK,CAAA;AAAA,IACzB;AAAA,EACF,CAAA;AAEA,EAAA,IAAI4E,QAAAA,CAAS5E,KAAK,CAAA,EAAG;AACnB,IAAA,OAAO,IAAA;AAAA,EACT;AACA,EAAA,MAAM4I,SAAAA,GAAYnI,cAAAA,CAAemC,QAAAA,CAAS5C,KAAK,CAAA;AAE/C,EAAA,uBACEiF,eAAA,CAAA4D,mBAAA,EAAA,EACE,QAAA,EAAA;AAAA,oBAAA5D,eAAA,CAAC6D,2BAAA,EAAA,EACC,GAAIlJ,KAAAA,EACJ,YAAA,EAAYI,KAAAA,EACZ,SAAS0I,aAAAA,EACT,WAAA,EACA,GAAA,EAAK3B,YAAAA,EACL,YAAA,EAAY6B,SAAAA,GAAY,YAAY,WAAA,EACpC,eAAA,EAAe3I,QAAAA,GAAW,IAAA,GAAOuE,MAAAA,EACjC,kBAAA,EAAkBzC,eAAe/B,KAAAA,GAAQ,MAAA,GAASwE,MAAAA,EAClD,iBAAA,EAAgB,EAAA,EAEhB,QAAA,EAAA;AAAA,sBAAA1F,cAAA,CAACiK,uBAAA,EAAA,EACC,MACA,OAAA,EACA,GAAA,EAAI,OACJ,YAAA,EAAc,KAAA,EAEb3I,kCACC6E,eAAA,CAAA4D,mBAAA,EAAA,EACGzI,QAAAA,EAAAA;AAAAA,QAAAA,KAAAA;AAAAA,QACA8H,WAAAA,oBACCpJ,cAAA,CAAC,qBAAA,EAAA,EAAuBoJ,QAAAA,EAAAA,WAAAA,EAAY;AAAA,OAAA,EAExC,IAEAjJ,QAAAA,EAEJ,CAAA;AAAA,sBACAH,cAAA,CAAC,aACC,EAAA,EAAI4G,SAAAA,EACJ,MAAK,OAAA,EACL,IAAA,EAAK,IAAA,EACL,UAAA,EAAYkD,SAAAA,EAAU;AAAA,KAAA,EAE1B,CAAA;AAAA,IACCT,SAAAA,oBAAarJ,cAAA,CAACkK,mBAAA,EAAA,EAAU,IAAA,EAAK,IAAA,EAAI;AAAA,GAAA,EACpC,CAAA;AAEJ,CACF;AAMAf,UAAAA,CAAWvI,WAAAA,GAAc,aAAA;AAElB,MAAMuJ,uBAAAA,GAA0BnC,iBAIrC,CACE;AAAA,EACE7G,QAAAA,GAAW,KAAA;AAAA,EACXhB,QAAAA;AAAAA,EACAoJ,IAAAA;AAAAA,EACAC,OAAAA,GAAU,KAAA;AAAA,EACVlI,KAAAA;AAAAA,EACA8H,WAAAA;AAAAA,EACAK,WAAAA,EAAaC,eAAAA;AAAAA,EACb7H,QAAAA,EAAUyH,YAAAA;AAAAA,EACVD,SAAAA;AAAAA,EACAnI,KAAAA,GAAQ,EAAA;AAAA,EACRkJ,OAAAA;AAAAA,EACA,GAAGtJ;AACL,CAAA,EACAmH,YAAAA,KACG;AACH,EAAA,MAAM;AAAA,IAAEhF,WAAAA;AAAAA,IAAagD,iBAAAA;AAAAA,IAAmBH,QAAAA;AAAAA,IAAUnE,cAAAA;AAAAA,IAAgBE;AAAAA,MAChE8H,mBAAAA,EAAU;AAEZ,EAAA,MAAMU,mBAAAA,GAAsBA,CAACR,GAAAA,KAAiC;AAC5D,IAAA,IAAI,CAAC1I,QAAAA,EAAU;AACbU,MAAAA,QAAAA,CAASX,KAAAA,EAAOwE,QAAWmE,GAAG,CAAA;AAE9B,MAAA,IAAI,OAAOP,iBAAiB,UAAA,EAAY;AACtCA,QAAAA,YAAAA,CAAapI,KAAAA,EAAOwE,QAAWmE,GAAG,CAAA;AAAA,MACpC;AAAA,IACF;AAAA,EACF,CAAA;AAEA,EAAA,MAAMS,uBAAAA,GAA0BA,CAACzK,CAAAA,KAAkC;AACjE,IAAA,IAAI6J,eAAAA,EAAiB;AACnBA,MAAAA,eAAAA,CAAgB7J,CAAC,CAAA;AAAA,IACnB;AACA,IAAA,IAAI,CAACsB,QAAAA,EAAU;AACb8E,MAAAA,iBAAAA,CAAkB/E,KAAK,CAAA;AAAA,IACzB;AAAA,EACF,CAAA;AAEA,EAAA,IAAI4E,QAAAA,CAAS5E,KAAK,CAAA,EAAG;AACnB,IAAA,OAAO,IAAA;AAAA,EACT;AAEA,EAAA,MAAM4I,SAAAA,GAAYnI,cAAAA,CAAemC,QAAAA,CAAS5C,KAAK,CAAA;AAE/C,EAAA,uBACEiF,eAAA,CAAA4D,mBAAA,EAAA,EACE,QAAA,EAAA;AAAA,oBAAA/J,cAAA,CAACgK,2BAAA,EAAA,EACC,GAAIlJ,KAAAA,EACJ,YAAA,EAAYI,OACZ,OAAA,EAASmJ,mBAAAA,EACT,WAAA,EAAaC,uBAAAA,EACb,KAAKrC,YAAAA,EACL,eAAA,EAAe9G,QAAAA,GAAW,IAAA,GAAOuE,QACjC,kBAAA,EAAkBzC,WAAAA,IAAe/B,KAAAA,GAAQ,MAAA,GAASwE,QAClD,aAAA,EAAa,CAAA,sBAAA,EAAyBxE,KAAK,CAAA,CAAA,EAC3C,mBAAgB,EAAA,EAEhB,QAAA,kBAAAiF,eAAA,CAACpG,mBAAA,EAAA,EACC,WAAA,EAAY,cACZ,GAAA,EAAI,IAAA,EACJ,QAAA,EAAS,QAAA,EACT,cAAc,KAAA,EAEd,QAAA,EAAA;AAAA,sBAAAC,cAAA,CAACuK,iBAAA,EAAA,EACC,SAAST,SAAAA,EACT,aAAA,EAAY,yBACZ,QAAA,EACA,OAAA,EAASM,WAAW,SAAA,EAAU,CAAA;AAAA,sBAEhCpK,cAAA,CAACiK,2BACC,IAAA,EACA,OAAA,EACA,KAAI,KAAA,EACJ,YAAA,EAAc,KAAA,EAEb3I,QAAAA,EAAAA,KAAAA,mBACC6E,eAAA,CAAA4D,mBAAA,EAAA,EACGzI,QAAAA,EAAAA;AAAAA,QAAAA,KAAAA;AAAAA,QACA8H,WAAAA,oBACCpJ,cAAA,CAAC,qBAAA,EAAA,EAAuBoJ,QAAAA,EAAAA,WAAAA,EAAY;AAAA,OAAA,EAExC,IAEAjJ,QAAAA,EAEJ;AAAA,KAAA,EACF,CAAA,EACF,CAAA;AAAA,IACCkJ,SAAAA,oBAAarJ,cAAA,CAACkK,mBAAA,EAAA,EAAU,IAAA,EAAK,IAAA,EAAI;AAAA,GAAA,EACpC,CAAA;AAEJ,CACF;AAEAC,uBAAAA,CAAwBvJ,WAAAA,GAAc,aAAA;AAE/B,MAAM4J,qBAAAA,GAAwBxC,iBACnC,CAAC;AAAA,EAAE7H,QAAAA;AAAAA,EAAU,GAAGW;AAAM,CAAA,EAAG2J,GAAAA,KAAQ;AAC/B,EAAA,uBACEzK,cAAA,CAAC0K,aACC,GAAA,EACA,SAAA,EAAWC,wCACX,KAAA,EAAM,OAAA,EACN,GAAI7J,KAAAA,EAEHX,QAAAA,EACH,CAAA;AAEJ,CACF;AAEAqK,qBAAAA,CAAsB5J,WAAAA,GAAc,wBAAA;;;;;;;;"}
|
|
@@ -0,0 +1,167 @@
|
|
|
1
|
+
/* stylelint-disable custom-property-pattern -- design tokens use camelCase (e.g. sqlSidebar) */
|
|
2
|
+
.wrapper__klOWe {
|
|
3
|
+
display: flex;
|
|
4
|
+
/* stylelint-disable plugin/no-unsupported-browser-features, declaration-property-value-no-unknown -- the original styled rule used this
|
|
5
|
+
same width fallback chain (100% → -webkit-fill-available → fill-available →
|
|
6
|
+
stretch) so the item fills the available inline space. */
|
|
7
|
+
width: 100%;
|
|
8
|
+
width: -webkit-fill-available;
|
|
9
|
+
width: fill-available;
|
|
10
|
+
width: stretch;
|
|
11
|
+
padding: var(--item-space-y) var(--item-space-right) var(--item-space-y)
|
|
12
|
+
var(--item-pad-left);
|
|
13
|
+
overflow: hidden;
|
|
14
|
+
/* stylelint-enable plugin/no-unsupported-browser-features, declaration-property-value-no-unknown */
|
|
15
|
+
flex-wrap: nowrap;
|
|
16
|
+
align-items: center;
|
|
17
|
+
border: none;
|
|
18
|
+
border-radius: var(--item-radii);
|
|
19
|
+
background-color: var(--item-bg-default);
|
|
20
|
+
color: var(--item-text-default);
|
|
21
|
+
font: var(--item-font-default);
|
|
22
|
+
white-space: nowrap;
|
|
23
|
+
cursor: pointer;
|
|
24
|
+
pointer-events: all;
|
|
25
|
+
|
|
26
|
+
/* Not collapsible by default: the padding-left reserves the icon-column width. */
|
|
27
|
+
--item-pad-left: var(--click-image-sm-size-width);
|
|
28
|
+
--item-mobile-pad-left: var(--click-image-sm-size-width);
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
.wrapper__klOWe span a {
|
|
32
|
+
color: var(--item-text-default);
|
|
33
|
+
text-decoration: none;
|
|
34
|
+
cursor: pointer;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
.wrapper__klOWe:hover,
|
|
38
|
+
.wrapper__klOWe:focus {
|
|
39
|
+
background-color: var(--item-bg-hover);
|
|
40
|
+
color: var(--item-text-hover);
|
|
41
|
+
font: var(--item-font-hover);
|
|
42
|
+
pointer-events: auto;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
.wrapper__klOWe:active,
|
|
46
|
+
.wrapper__klOWe[data-selected='true'] {
|
|
47
|
+
background-color: var(--item-bg-active);
|
|
48
|
+
color: var(--item-text-active);
|
|
49
|
+
font: var(--item-font-active);
|
|
50
|
+
pointer-events: all;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
.wrapper__klOWe[aria-disabled='true'],
|
|
54
|
+
.wrapper__klOWe[aria-disabled='true']:hover,
|
|
55
|
+
.wrapper__klOWe[aria-disabled='true']:focus,
|
|
56
|
+
.wrapper__klOWe[aria-disabled='true']:active,
|
|
57
|
+
.wrapper__klOWe[aria-disabled='true']:focus-within,
|
|
58
|
+
.wrapper__klOWe[aria-disabled='true'][data-selected='true'] {
|
|
59
|
+
color: var(--item-text-disabled);
|
|
60
|
+
cursor: not-allowed;
|
|
61
|
+
pointer-events: none;
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
.wrapper__klOWe[aria-disabled='true'] span a {
|
|
65
|
+
color: var(--item-text-disabled);
|
|
66
|
+
text-decoration: none;
|
|
67
|
+
cursor: not-allowed;
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
/* stylelint-disable-next-line media-feature-range-notation -- prefix syntax matches the original styled rule and is more broadly supported than range syntax */
|
|
71
|
+
@media (max-width: 640px) {
|
|
72
|
+
.wrapper__klOWe {
|
|
73
|
+
padding: var(--item-mobile-space-y) var(--item-mobile-space-right)
|
|
74
|
+
var(--item-mobile-space-y) var(--item-mobile-pad-left);
|
|
75
|
+
gap: var(--item-mobile-gap);
|
|
76
|
+
font: var(--item-mobile-font-default);
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
.wrapper__klOWe:hover,
|
|
80
|
+
.wrapper__klOWe:focus {
|
|
81
|
+
font: var(--item-mobile-font-hover);
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
.wrapper__klOWe:active,
|
|
85
|
+
.wrapper__klOWe[data-selected='true'] {
|
|
86
|
+
font: var(--item-mobile-font-active);
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
.wrapper_itemtype_item__4OyPQ {
|
|
91
|
+
--item-space-y: var(--click-sidebar-navigation-item-default-space-y);
|
|
92
|
+
--item-space-right: var(--click-sidebar-navigation-item-default-space-right);
|
|
93
|
+
--item-space-left: var(--click-sidebar-navigation-item-default-space-left);
|
|
94
|
+
--item-radii: var(--click-sidebar-navigation-item-radii-all);
|
|
95
|
+
--item-font-default: var(--click-sidebar-navigation-item-typography-default);
|
|
96
|
+
--item-font-hover: var(--click-sidebar-navigation-item-typography-hover);
|
|
97
|
+
--item-font-active: var(--click-sidebar-navigation-item-typography-active);
|
|
98
|
+
--item-mobile-gap: var(--click-sidebar-navigation-item-mobile-space-gap);
|
|
99
|
+
--item-mobile-space-y: var(--click-sidebar-navigation-item-mobile-space-y);
|
|
100
|
+
--item-mobile-space-right: var(--click-sidebar-navigation-item-mobile-space-right);
|
|
101
|
+
--item-mobile-space-left: var(--click-sidebar-navigation-item-mobile-space-left);
|
|
102
|
+
--item-mobile-font-default: var(--click-sidebar-navigation-item-mobile-typography-default);
|
|
103
|
+
--item-mobile-font-hover: var(--click-sidebar-navigation-item-mobile-typography-hover);
|
|
104
|
+
--item-mobile-font-active: var(--click-sidebar-navigation-item-mobile-typography-active);
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
.wrapper_itemtype_sub-item__qv3-r {
|
|
108
|
+
--item-space-y: var(--click-sidebar-navigation-subItem-default-space-y);
|
|
109
|
+
--item-space-right: var(--click-sidebar-navigation-subItem-default-space-right);
|
|
110
|
+
--item-space-left: var(--click-sidebar-navigation-subItem-default-space-left);
|
|
111
|
+
--item-radii: var(--click-sidebar-navigation-subItem-radii-all);
|
|
112
|
+
--item-font-default: var(--click-sidebar-navigation-subItem-typography-default);
|
|
113
|
+
--item-font-hover: var(--click-sidebar-navigation-subItem-typography-hover);
|
|
114
|
+
--item-font-active: var(--click-sidebar-navigation-subItem-typography-active);
|
|
115
|
+
--item-mobile-gap: var(--click-sidebar-navigation-subItem-mobile-space-gap);
|
|
116
|
+
--item-mobile-space-y: var(--click-sidebar-navigation-subItem-mobile-space-y);
|
|
117
|
+
--item-mobile-space-right: var(--click-sidebar-navigation-subItem-mobile-space-right);
|
|
118
|
+
--item-mobile-space-left: var(--click-sidebar-navigation-subItem-mobile-space-left);
|
|
119
|
+
--item-mobile-font-default: var(--click-sidebar-navigation-subItem-mobile-typography-default);
|
|
120
|
+
--item-mobile-font-hover: var(--click-sidebar-navigation-subItem-mobile-typography-hover);
|
|
121
|
+
--item-mobile-font-active: var(--click-sidebar-navigation-subItem-mobile-typography-active);
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
.wrapper_collapsible_true__mZMo2 {
|
|
125
|
+
--item-pad-left: var(--item-space-left);
|
|
126
|
+
--item-mobile-pad-left: var(--item-mobile-space-left);
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
.wrapper_color_main-item__7C9Lq {
|
|
130
|
+
--item-bg-default: var(--click-sidebar-main-navigation-item-color-background-default);
|
|
131
|
+
--item-bg-hover: var(--click-sidebar-main-navigation-item-color-background-hover);
|
|
132
|
+
--item-bg-active: var(--click-sidebar-main-navigation-item-color-background-active);
|
|
133
|
+
--item-text-default: var(--click-sidebar-main-navigation-item-color-text-default);
|
|
134
|
+
--item-text-hover: var(--click-sidebar-main-navigation-item-color-text-hover);
|
|
135
|
+
--item-text-active: var(--click-sidebar-main-navigation-item-color-text-active);
|
|
136
|
+
--item-text-disabled: var(--click-sidebar-main-navigation-item-color-text-disabled);
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
.wrapper_color_main-sub-item__d9MJG {
|
|
140
|
+
--item-bg-default: var(--click-sidebar-main-navigation-subItem-color-background-default);
|
|
141
|
+
--item-bg-hover: var(--click-sidebar-main-navigation-subItem-color-background-hover);
|
|
142
|
+
--item-bg-active: var(--click-sidebar-main-navigation-subItem-color-background-active);
|
|
143
|
+
--item-text-default: var(--click-sidebar-main-navigation-subItem-color-text-default);
|
|
144
|
+
--item-text-hover: var(--click-sidebar-main-navigation-subItem-color-text-hover);
|
|
145
|
+
--item-text-active: var(--click-sidebar-main-navigation-subItem-color-text-active);
|
|
146
|
+
--item-text-disabled: var(--click-sidebar-main-navigation-subItem-color-text-disabled);
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
.wrapper_color_sql-sidebar-item__UxUec {
|
|
150
|
+
--item-bg-default: var(--click-sidebar-sqlSidebar-navigation-item-color-background-default);
|
|
151
|
+
--item-bg-hover: var(--click-sidebar-sqlSidebar-navigation-item-color-background-hover);
|
|
152
|
+
--item-bg-active: var(--click-sidebar-sqlSidebar-navigation-item-color-background-active);
|
|
153
|
+
--item-text-default: var(--click-sidebar-sqlSidebar-navigation-item-color-text-default);
|
|
154
|
+
--item-text-hover: var(--click-sidebar-sqlSidebar-navigation-item-color-text-hover);
|
|
155
|
+
--item-text-active: var(--click-sidebar-sqlSidebar-navigation-item-color-text-active);
|
|
156
|
+
--item-text-disabled: var(--click-sidebar-sqlSidebar-navigation-item-color-text-disabled);
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
.wrapper_color_sql-sidebar-sub-item__AyRy0 {
|
|
160
|
+
--item-bg-default: var(--click-sidebar-sqlSidebar-navigation-subItem-color-background-default);
|
|
161
|
+
--item-bg-hover: var(--click-sidebar-sqlSidebar-navigation-subItem-color-background-hover);
|
|
162
|
+
--item-bg-active: var(--click-sidebar-sqlSidebar-navigation-subItem-color-background-active);
|
|
163
|
+
--item-text-default: var(--click-sidebar-sqlSidebar-navigation-subItem-color-text-default);
|
|
164
|
+
--item-text-hover: var(--click-sidebar-sqlSidebar-navigation-subItem-color-text-hover);
|
|
165
|
+
--item-text-active: var(--click-sidebar-sqlSidebar-navigation-subItem-color-text-active);
|
|
166
|
+
--item-text-disabled: var(--click-sidebar-sqlSidebar-navigation-subItem-color-text-disabled);
|
|
167
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: 'Module' } });
|
|
4
|
+
|
|
5
|
+
const wrapper = "wrapper__klOWe";
|
|
6
|
+
const wrapper_itemtype_item = "wrapper_itemtype_item__4OyPQ";
|
|
7
|
+
const wrapper_collapsible_true = "wrapper_collapsible_true__mZMo2";
|
|
8
|
+
const styles = {
|
|
9
|
+
wrapper: wrapper,
|
|
10
|
+
wrapper_itemtype_item: wrapper_itemtype_item,
|
|
11
|
+
"wrapper_itemtype_sub-item": "wrapper_itemtype_sub-item__qv3-r",
|
|
12
|
+
wrapper_collapsible_true: wrapper_collapsible_true,
|
|
13
|
+
"wrapper_color_main-item": "wrapper_color_main-item__7C9Lq",
|
|
14
|
+
"wrapper_color_main-sub-item": "wrapper_color_main-sub-item__d9MJG",
|
|
15
|
+
"wrapper_color_sql-sidebar-item": "wrapper_color_sql-sidebar-item__UxUec",
|
|
16
|
+
"wrapper_color_sql-sidebar-sub-item": "wrapper_color_sql-sidebar-sub-item__AyRy0"
|
|
17
|
+
};
|
|
18
|
+
|
|
19
|
+
exports.default = styles;
|
|
20
|
+
exports.wrapper = wrapper;
|
|
21
|
+
exports.wrapper_collapsible_true = wrapper_collapsible_true;
|
|
22
|
+
exports.wrapper_itemtype_item = wrapper_itemtype_item;
|
|
23
|
+
//# sourceMappingURL=SidebarNavigationItem.module.css.cjs.map
|