@clickhouse/click-ui 0.6.1-rc2 → 0.6.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (122) hide show
  1. package/dist/cjs/click-ui.css +623 -11
  2. package/dist/cjs/components/Accordion/Accordion.css +111 -0
  3. package/dist/cjs/components/Accordion/Accordion.module.css.cjs +33 -0
  4. package/dist/cjs/components/Accordion/Accordion.module.css.cjs.map +1 -0
  5. package/dist/cjs/components/Accordion/index.cjs +51 -54
  6. package/dist/cjs/components/Accordion/index.cjs.map +1 -1
  7. package/dist/cjs/components/Alert/Alert.css +169 -0
  8. package/dist/cjs/components/Alert/Alert.module.css.cjs +75 -0
  9. package/dist/cjs/components/Alert/Alert.module.css.cjs.map +1 -0
  10. package/dist/cjs/components/Alert/index.cjs +113 -69
  11. package/dist/cjs/components/Alert/index.cjs.map +1 -1
  12. package/dist/cjs/components/Assets/Icons/Check.cjs +1 -1
  13. package/dist/cjs/components/Assets/Icons/Check.cjs.map +1 -1
  14. package/dist/cjs/components/Assets/Icons/Dollar.cjs +10 -0
  15. package/dist/cjs/components/Assets/Icons/Dollar.cjs.map +1 -0
  16. package/dist/cjs/components/Assets/Icons/Pin.cjs +13 -0
  17. package/dist/cjs/components/Assets/Icons/Pin.cjs.map +1 -0
  18. package/dist/cjs/components/Assets/Icons/Unpin.cjs +17 -0
  19. package/dist/cjs/components/Assets/Icons/Unpin.cjs.map +1 -0
  20. package/dist/cjs/components/Assets/Icons/system/IconsLight.cjs +6 -0
  21. package/dist/cjs/components/Assets/Icons/system/IconsLight.cjs.map +1 -1
  22. package/dist/cjs/components/Button/index.cjs +2 -1
  23. package/dist/cjs/components/Button/index.cjs.map +1 -1
  24. package/dist/cjs/components/Checkbox/index.cjs +1 -11
  25. package/dist/cjs/components/Checkbox/index.cjs.map +1 -1
  26. package/dist/cjs/components/Collapsible/Collapsible.css +79 -0
  27. package/dist/cjs/components/Collapsible/Collapsible.module.css.cjs +31 -0
  28. package/dist/cjs/components/Collapsible/Collapsible.module.css.cjs.map +1 -0
  29. package/dist/cjs/components/Collapsible/IconWrapper.cjs +4 -11
  30. package/dist/cjs/components/Collapsible/IconWrapper.cjs.map +1 -1
  31. package/dist/cjs/components/Collapsible/index.cjs +36 -24
  32. package/dist/cjs/components/Collapsible/index.cjs.map +1 -1
  33. package/dist/cjs/components/Container/Container.css +3 -3
  34. package/dist/cjs/components/HoverCard/HoverCard.css +6 -0
  35. package/dist/cjs/components/HoverCard/HoverCard.module.css.cjs +10 -0
  36. package/dist/cjs/components/HoverCard/HoverCard.module.css.cjs.map +1 -0
  37. package/dist/cjs/components/HoverCard/index.cjs +5 -5
  38. package/dist/cjs/components/HoverCard/index.cjs.map +1 -1
  39. package/dist/cjs/components/Link/Link.css +12 -8
  40. package/dist/cjs/components/Link/Link.module.css.cjs +15 -4
  41. package/dist/cjs/components/Link/Link.module.css.cjs.map +1 -1
  42. package/dist/cjs/components/Link/index.cjs +6 -6
  43. package/dist/cjs/components/Link/index.cjs.map +1 -1
  44. package/dist/cjs/components/Select/common/InternalSelect.cjs +1 -1
  45. package/dist/cjs/components/Select/common/InternalSelect.cjs.map +1 -1
  46. package/dist/cjs/components/SidebarNavigationItem/SidebarNavigationItem.css +167 -0
  47. package/dist/cjs/components/SidebarNavigationItem/SidebarNavigationItem.module.css.cjs +23 -0
  48. package/dist/cjs/components/SidebarNavigationItem/SidebarNavigationItem.module.css.cjs.map +1 -0
  49. package/dist/cjs/components/SidebarNavigationItem/index.cjs +60 -69
  50. package/dist/cjs/components/SidebarNavigationItem/index.cjs.map +1 -1
  51. package/dist/cjs/components/SidebarNavigationTitle/SidebarNavigationTitle.css +76 -0
  52. package/dist/cjs/components/SidebarNavigationTitle/SidebarNavigationTitle.module.css.cjs +19 -0
  53. package/dist/cjs/components/SidebarNavigationTitle/SidebarNavigationTitle.module.css.cjs.map +1 -0
  54. package/dist/cjs/components/SidebarNavigationTitle/index.cjs +35 -23
  55. package/dist/cjs/components/SidebarNavigationTitle/index.cjs.map +1 -1
  56. package/dist/esm/click-ui.css +623 -11
  57. package/dist/esm/components/Accordion/Accordion.css +111 -0
  58. package/dist/esm/components/Accordion/Accordion.module.css.js +22 -0
  59. package/dist/esm/components/Accordion/Accordion.module.css.js.map +1 -0
  60. package/dist/esm/components/Accordion/index.js +51 -54
  61. package/dist/esm/components/Accordion/index.js.map +1 -1
  62. package/dist/esm/components/Alert/Alert.css +169 -0
  63. package/dist/esm/components/Alert/Alert.module.css.js +53 -0
  64. package/dist/esm/components/Alert/Alert.module.css.js.map +1 -0
  65. package/dist/esm/components/Alert/index.js +113 -69
  66. package/dist/esm/components/Alert/index.js.map +1 -1
  67. package/dist/esm/components/Assets/Icons/Check.js +1 -1
  68. package/dist/esm/components/Assets/Icons/Check.js.map +1 -1
  69. package/dist/esm/components/Assets/Icons/Dollar.js +6 -0
  70. package/dist/esm/components/Assets/Icons/Dollar.js.map +1 -0
  71. package/dist/esm/components/Assets/Icons/Pin.js +9 -0
  72. package/dist/esm/components/Assets/Icons/Pin.js.map +1 -0
  73. package/dist/esm/components/Assets/Icons/Unpin.js +13 -0
  74. package/dist/esm/components/Assets/Icons/Unpin.js.map +1 -0
  75. package/dist/esm/components/Assets/Icons/system/IconsLight.js +6 -0
  76. package/dist/esm/components/Assets/Icons/system/IconsLight.js.map +1 -1
  77. package/dist/esm/components/Button/index.js +2 -1
  78. package/dist/esm/components/Button/index.js.map +1 -1
  79. package/dist/esm/components/Checkbox/index.js +1 -11
  80. package/dist/esm/components/Checkbox/index.js.map +1 -1
  81. package/dist/esm/components/Collapsible/Collapsible.css +79 -0
  82. package/dist/esm/components/Collapsible/Collapsible.module.css.js +21 -0
  83. package/dist/esm/components/Collapsible/Collapsible.module.css.js.map +1 -0
  84. package/dist/esm/components/Collapsible/IconWrapper.js +4 -11
  85. package/dist/esm/components/Collapsible/IconWrapper.js.map +1 -1
  86. package/dist/esm/components/Collapsible/index.js +36 -24
  87. package/dist/esm/components/Collapsible/index.js.map +1 -1
  88. package/dist/esm/components/Container/Container.css +3 -3
  89. package/dist/esm/components/HoverCard/HoverCard.css +6 -0
  90. package/dist/esm/components/HoverCard/HoverCard.module.css.js +6 -0
  91. package/dist/esm/components/HoverCard/HoverCard.module.css.js.map +1 -0
  92. package/dist/esm/components/HoverCard/index.js +5 -5
  93. package/dist/esm/components/HoverCard/index.js.map +1 -1
  94. package/dist/esm/components/Link/Link.css +12 -8
  95. package/dist/esm/components/Link/Link.module.css.js +11 -5
  96. package/dist/esm/components/Link/Link.module.css.js.map +1 -1
  97. package/dist/esm/components/Link/index.js +6 -6
  98. package/dist/esm/components/Link/index.js.map +1 -1
  99. package/dist/esm/components/Select/common/InternalSelect.js +1 -1
  100. package/dist/esm/components/Select/common/InternalSelect.js.map +1 -1
  101. package/dist/esm/components/SidebarNavigationItem/SidebarNavigationItem.css +167 -0
  102. package/dist/esm/components/SidebarNavigationItem/SidebarNavigationItem.module.css.js +16 -0
  103. package/dist/esm/components/SidebarNavigationItem/SidebarNavigationItem.module.css.js.map +1 -0
  104. package/dist/esm/components/SidebarNavigationItem/index.js +60 -69
  105. package/dist/esm/components/SidebarNavigationItem/index.js.map +1 -1
  106. package/dist/esm/components/SidebarNavigationTitle/SidebarNavigationTitle.css +76 -0
  107. package/dist/esm/components/SidebarNavigationTitle/SidebarNavigationTitle.module.css.js +12 -0
  108. package/dist/esm/components/SidebarNavigationTitle/SidebarNavigationTitle.module.css.js.map +1 -0
  109. package/dist/esm/components/SidebarNavigationTitle/index.js +35 -23
  110. package/dist/esm/components/SidebarNavigationTitle/index.js.map +1 -1
  111. package/dist/types/components/Accordion/Accordion.d.ts +3 -3
  112. package/dist/types/components/Assets/Icons/Dollar.d.ts +3 -0
  113. package/dist/types/components/Assets/Icons/Pin.d.ts +3 -0
  114. package/dist/types/components/Assets/Icons/Unpin.d.ts +3 -0
  115. package/dist/types/components/Assets/Icons/system/types.d.ts +1 -1
  116. package/dist/types/components/Button/Button.d.ts +1 -24
  117. package/dist/types/components/Button/Button.types.d.ts +3 -0
  118. package/dist/types/components/Collapsible/Collapsible.d.ts +3 -3
  119. package/dist/types/components/HoverCard/HoverCard.d.ts +1 -1
  120. package/dist/types/components/SidebarNavigationItem/SidebarNavigationItem.d.ts +9 -5
  121. package/dist/types/components/SidebarNavigationTitle/SidebarNavigationTitle.d.ts +9 -4
  122. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"InternalSelect.js","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","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","get","Icon","target","IconButton","index","itemList","groupProps","itemProps","itemIndex","SelectGroup","forwardRef","forwardedRef","useSearch","mergeRefs","node","hidden","querySelectorAll","setAttribute","removeAttribute","toString","CheckIcon","styled","svg","withConfig","componentId","$showCheck","SelectItem","description","separator","onSelectProp","icon","iconDir","onMouseOver","onMouseOverProp","useOption","onSelectValue","evt","isChecked","MultiSelectCheckboxItem","variant","handleMenuItemClick","handleMenuItemMouseOver","SelectItemDescription","ref","SelectItemDescriptionText"],"mappings":"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"}
1
+ {"version":3,"file":"InternalSelect.js","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 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","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","get","Icon","target","IconButton","index","itemList","groupProps","itemProps","itemIndex","SelectGroup","forwardRef","forwardedRef","useSearch","mergeRefs","node","hidden","querySelectorAll","setAttribute","removeAttribute","toString","CheckIcon","styled","svg","withConfig","componentId","$showCheck","SelectItem","description","separator","onSelectProp","icon","iconDir","onMouseOver","onMouseOverProp","useOption","onSelectValue","evt","isChecked","MultiSelectCheckboxItem","variant","handleMenuItemClick","handleMenuItemMouseOver","SelectItemDescription","ref","SelectItemDescriptionText"],"mappings":"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"}
@@ -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,16 @@
1
+ const wrapper = "wrapper__klOWe";
2
+ const wrapper_itemtype_item = "wrapper_itemtype_item__4OyPQ";
3
+ const wrapper_collapsible_true = "wrapper_collapsible_true__mZMo2";
4
+ const styles = {
5
+ wrapper: wrapper,
6
+ wrapper_itemtype_item: wrapper_itemtype_item,
7
+ "wrapper_itemtype_sub-item": "wrapper_itemtype_sub-item__qv3-r",
8
+ wrapper_collapsible_true: wrapper_collapsible_true,
9
+ "wrapper_color_main-item": "wrapper_color_main-item__7C9Lq",
10
+ "wrapper_color_main-sub-item": "wrapper_color_main-sub-item__d9MJG",
11
+ "wrapper_color_sql-sidebar-item": "wrapper_color_sql-sidebar-item__UxUec",
12
+ "wrapper_color_sql-sidebar-sub-item": "wrapper_color_sql-sidebar-sub-item__AyRy0"
13
+ };
14
+
15
+ export { styles as default, wrapper, wrapper_collapsible_true, wrapper_itemtype_item };
16
+ //# sourceMappingURL=SidebarNavigationItem.module.css.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SidebarNavigationItem.module.css.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;"}
@@ -1,8 +1,67 @@
1
+ import "./SidebarNavigationItem.css";
1
2
  import { jsx } from 'react/jsx-runtime';
2
3
  import { forwardRef } from 'react';
3
- import { styled } from 'styled-components';
4
+ import { cn } from '../../lib/cva.js';
4
5
  import { IconWrapper } from '../Collapsible/IconWrapper.js';
6
+ import styles from './SidebarNavigationItem.module.css.js';
7
+ import { cva } from 'class-variance-authority';
5
8
 
9
+ const wrapperVariants = cva(styles.wrapper, {
10
+ variants: {
11
+ itemType: {
12
+ item: styles.wrapper_itemtype_item,
13
+ subItem: styles["wrapper_itemtype_sub-item"]
14
+ },
15
+ // The colour set depends on BOTH the sidebar type and the item depth, so
16
+ // it is applied through the compoundVariants below rather than here.
17
+ type: {
18
+ main: "",
19
+ sqlSidebar: ""
20
+ },
21
+ collapsible: {
22
+ true: styles.wrapper_collapsible_true,
23
+ false: ""
24
+ }
25
+ },
26
+ compoundVariants: [{
27
+ type: "main",
28
+ itemType: "item",
29
+ class: styles["wrapper_color_main-item"]
30
+ }, {
31
+ type: "main",
32
+ itemType: "subItem",
33
+ class: styles["wrapper_color_main-sub-item"]
34
+ }, {
35
+ type: "sqlSidebar",
36
+ itemType: "item",
37
+ class: styles["wrapper_color_sql-sidebar-item"]
38
+ }, {
39
+ type: "sqlSidebar",
40
+ itemType: "subItem",
41
+ class: styles["wrapper_color_sql-sidebar-sub-item"]
42
+ }],
43
+ defaultVariants: {
44
+ itemType: "item",
45
+ type: "main",
46
+ collapsible: false
47
+ }
48
+ });
49
+ const _SidebarItemWrapper = ({
50
+ as,
51
+ $collapsible = false,
52
+ $level = 0,
53
+ $type = "main",
54
+ className,
55
+ ...props
56
+ }, ref) => {
57
+ const Component = as ?? "div";
58
+ return /* @__PURE__ */ jsx(Component, { ref, ...props, className: cn(wrapperVariants({
59
+ itemType: $level === 0 ? "item" : "subItem",
60
+ type: $type,
61
+ collapsible: $collapsible
62
+ }), className) });
63
+ };
64
+ const SidebarItemWrapper = forwardRef(_SidebarItemWrapper);
6
65
  const SidebarNavigationItem = forwardRef(({
7
66
  label,
8
67
  level = 0,
@@ -15,74 +74,6 @@ const SidebarNavigationItem = forwardRef(({
15
74
  }, ref) => {
16
75
  return /* @__PURE__ */ jsx(SidebarItemWrapper, { $level: level, "data-selected": selected, $type: type, ref, "aria-disabled": disabled, ...props, children: /* @__PURE__ */ jsx(IconWrapper, { icon, iconDir, children: label }) });
17
76
  });
18
- const SidebarItemWrapper = styled.div.withConfig({
19
- componentId: "sc-1rz759l-0"
20
- })(["display:flex;align-items:center;border:none;width:100%;width:-webkit-fill-available;width:fill-available;width:stretch;white-space:nowrap;overflow:hidden;flex-wrap:nowrap;", ""], ({
21
- theme,
22
- $collapsible = false,
23
- $level,
24
- $type
25
- }) => {
26
- const itemType = $level === 0 ? "item" : "subItem";
27
- return `
28
- padding: ${theme.click.sidebar.navigation[itemType].default.space.y} ${theme.click.sidebar.navigation[itemType].default.space.right} ${theme.click.sidebar.navigation[itemType].default.space.y} ${$collapsible ? theme.click.sidebar.navigation[itemType].default.space.left : theme.click.image.sm.size.width};
29
- border-radius: ${theme.click.sidebar.navigation[itemType].radii.all};
30
- font: ${theme.click.sidebar.navigation[itemType].typography.default};
31
- background-color: ${theme.click.sidebar[$type].navigation[itemType].color.background.default};
32
- color: ${theme.click.sidebar[$type].navigation[itemType].color.text.default};
33
- span a {
34
- color: ${theme.click.sidebar[$type].navigation[itemType].color.text.default};
35
- cursor: pointer;
36
- text-decoration: none;
37
- }
38
- cursor: pointer;
39
- pointer-events: all;
40
-
41
- &:hover, &:focus {
42
- font: ${theme.click.sidebar.navigation[itemType].typography.hover};
43
- background-color: ${theme.click.sidebar[$type].navigation[itemType].color.background.hover};
44
- color: ${theme.click.sidebar[$type].navigation[itemType].color.text.hover};
45
- pointer-events: auto;
46
- }
47
-
48
- &:active, &[data-selected="true"] {
49
- font: ${theme.click.sidebar.navigation[itemType].typography.active};
50
- background-color: ${theme.click.sidebar[$type].navigation[itemType].color.background.active};
51
- color: ${theme.click.sidebar[$type].navigation[itemType].color.text.active};
52
- pointer-events: all;
53
- }
54
-
55
- &[aria-disabled=true],
56
- &[aria-disabled=true]:hover,
57
- &[aria-disabled=true]:focus,
58
- &[aria-disabled=true]:active,
59
- &[aria-disabled=true]:focus-within,
60
- &[aria-disabled=true][data-selected="true"] {
61
-
62
- color: ${theme.click.sidebar[$type].navigation[itemType].color.text.disabled};
63
- pointer-events: none;
64
-
65
- span a {
66
- color: ${theme.click.sidebar[$type].navigation[itemType].color.text.disabled};
67
- cursor: not-allowed;
68
- text-decoration: none;
69
- }
70
- cursor: not-allowed;
71
- }
72
-
73
- @media (max-width: 640px) {
74
- gap: ${theme.click.sidebar.navigation[itemType].mobile.space.gap};
75
- padding: ${theme.click.sidebar.navigation[itemType].mobile.space.y} ${theme.click.sidebar.navigation[itemType].mobile.space.right} ${theme.click.sidebar.navigation[itemType].mobile.space.y} ${$collapsible ? theme.click.sidebar.navigation[itemType].mobile.space.left : theme.click.image.sm.size.width};
76
- font: ${theme.click.sidebar.navigation[itemType].mobile.typography.default};
77
- &:hover, &:focus {
78
- font: ${theme.click.sidebar.navigation[itemType].mobile.typography.hover};
79
- }
80
- &:active, &[data-selected="true"] {
81
- font: ${theme.click.sidebar.navigation[itemType].mobile.typography.active};
82
- }
83
- }
84
- `;
85
- });
86
77
 
87
78
  export { SidebarItemWrapper, SidebarNavigationItem };
88
79
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../src/components/SidebarNavigationItem/SidebarNavigationItem.tsx"],"sourcesContent":["import { forwardRef } from 'react';\nimport { styled } from 'styled-components';\nimport { IconWrapper } from '@/components/Collapsible/IconWrapper';\nimport { SidebarNavigationItemProps } from './SidebarNavigationItem.types';\n\nconst SidebarNavigationItem = forwardRef<HTMLDivElement, SidebarNavigationItemProps>(\n (\n { label, level = 0, icon, selected, iconDir, disabled, type = 'main', ...props },\n ref\n ) => {\n return (\n <SidebarItemWrapper\n $level={level}\n data-selected={selected}\n $type={type}\n ref={ref}\n aria-disabled={disabled}\n {...props}\n >\n <IconWrapper\n icon={icon}\n iconDir={iconDir}\n >\n {label}\n </IconWrapper>\n </SidebarItemWrapper>\n );\n }\n);\n\nexport const SidebarItemWrapper = styled.div<{\n $collapsible?: boolean;\n $level: number;\n $type: 'main' | 'sqlSidebar';\n}>`\n display: flex;\n align-items: center;\n border: none;\n width: 100%;\n width: -webkit-fill-available;\n width: fill-available;\n width: stretch;\n white-space: nowrap;\n overflow: hidden;\n flex-wrap: nowrap;\n\n ${({ theme, $collapsible = false, $level, $type }) => {\n const itemType = $level === 0 ? 'item' : 'subItem';\n return `\n padding: ${theme.click.sidebar.navigation[itemType].default.space.y} ${\n theme.click.sidebar.navigation[itemType].default.space.right\n } ${theme.click.sidebar.navigation[itemType].default.space.y} ${\n $collapsible\n ? theme.click.sidebar.navigation[itemType].default.space.left\n : theme.click.image.sm.size.width\n };\n border-radius: ${theme.click.sidebar.navigation[itemType].radii.all};\n font: ${theme.click.sidebar.navigation[itemType].typography.default};\n background-color: ${\n theme.click.sidebar[$type].navigation[itemType].color.background.default\n };\n color: ${theme.click.sidebar[$type].navigation[itemType].color.text.default};\n span a {\n color: ${theme.click.sidebar[$type].navigation[itemType].color.text.default};\n cursor: pointer;\n text-decoration: none;\n }\n cursor: pointer;\n pointer-events: all;\n\n &:hover, &:focus {\n font: ${theme.click.sidebar.navigation[itemType].typography.hover};\n background-color: ${\n theme.click.sidebar[$type].navigation[itemType].color.background.hover\n };\n color: ${theme.click.sidebar[$type].navigation[itemType].color.text.hover};\n pointer-events: auto;\n }\n\n &:active, &[data-selected=\"true\"] {\n font: ${theme.click.sidebar.navigation[itemType].typography.active};\n background-color: ${\n theme.click.sidebar[$type].navigation[itemType].color.background.active\n };\n color: ${theme.click.sidebar[$type].navigation[itemType].color.text.active};\n pointer-events: all;\n }\n\n &[aria-disabled=true],\n &[aria-disabled=true]:hover,\n &[aria-disabled=true]:focus,\n &[aria-disabled=true]:active,\n &[aria-disabled=true]:focus-within,\n &[aria-disabled=true][data-selected=\"true\"] {\n\n color: ${theme.click.sidebar[$type].navigation[itemType].color.text.disabled};\n pointer-events: none;\n\n span a {\n color: ${theme.click.sidebar[$type].navigation[itemType].color.text.disabled};\n cursor: not-allowed;\n text-decoration: none;\n }\n cursor: not-allowed;\n }\n\n @media (max-width: 640px) {\n gap: ${theme.click.sidebar.navigation[itemType].mobile.space.gap};\n padding: ${theme.click.sidebar.navigation[itemType].mobile.space.y} ${\n theme.click.sidebar.navigation[itemType].mobile.space.right\n } ${theme.click.sidebar.navigation[itemType].mobile.space.y} ${\n $collapsible\n ? theme.click.sidebar.navigation[itemType].mobile.space.left\n : theme.click.image.sm.size.width\n };\n font: ${theme.click.sidebar.navigation[itemType].mobile.typography.default};\n &:hover, &:focus {\n font: ${theme.click.sidebar.navigation[itemType].mobile.typography.hover};\n }\n &:active, &[data-selected=\"true\"] {\n font: ${theme.click.sidebar.navigation[itemType].mobile.typography.active};\n }\n }\n `;\n }}\n`;\n\nexport { SidebarNavigationItem };\n"],"names":["SidebarNavigationItem","forwardRef","label","level","icon","selected","iconDir","disabled","type","props","ref","SidebarItemWrapper","styled","div","withConfig","componentId","theme","$collapsible","$level","$type","itemType","click","sidebar","navigation","default","space","y","right","left","image","sm","size","width","radii","all","typography","color","background","text","hover","active","mobile","gap"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../../../../src/components/SidebarNavigationItem/SidebarNavigationItem.tsx"],"sourcesContent":["import {\n ComponentProps,\n ComponentPropsWithRef,\n ElementType,\n ReactNode,\n forwardRef,\n} from 'react';\nimport { cn, cva } from '@/lib/cva';\nimport { IconWrapper } from '@/components/Collapsible/IconWrapper';\nimport { SidebarNavigationItemProps } from './SidebarNavigationItem.types';\nimport styles from './SidebarNavigationItem.module.css';\n\nconst wrapperVariants = cva(styles.wrapper, {\n variants: {\n itemType: {\n item: styles.wrapper_itemtype_item,\n subItem: styles['wrapper_itemtype_sub-item'],\n },\n // The colour set depends on BOTH the sidebar type and the item depth, so\n // it is applied through the compoundVariants below rather than here.\n type: { main: '', sqlSidebar: '' },\n collapsible: { true: styles.wrapper_collapsible_true, false: '' },\n },\n compoundVariants: [\n { type: 'main', itemType: 'item', class: styles['wrapper_color_main-item'] },\n { type: 'main', itemType: 'subItem', class: styles['wrapper_color_main-sub-item'] },\n {\n type: 'sqlSidebar',\n itemType: 'item',\n class: styles['wrapper_color_sql-sidebar-item'],\n },\n {\n type: 'sqlSidebar',\n itemType: 'subItem',\n class: styles['wrapper_color_sql-sidebar-sub-item'],\n },\n ],\n defaultVariants: { itemType: 'item', type: 'main', collapsible: false },\n});\n\n// Polymorphic wrapper: SidebarCollapsibleItem renders it `as={Collapsible.Header}`.\n// Same shape as the Container polymorphic component (src/components/Container).\nexport interface SidebarItemWrapperProps<T extends ElementType = 'div'> {\n as?: T;\n $collapsible?: boolean;\n $level?: number;\n $type?: 'main' | 'sqlSidebar';\n}\n\ntype SidebarItemWrapperComponent = <T extends ElementType = 'div'>(\n props: Omit<ComponentProps<T>, keyof SidebarItemWrapperProps<T>> &\n SidebarItemWrapperProps<T>\n) => ReactNode;\n\nconst _SidebarItemWrapper = <T extends ElementType = 'div'>(\n {\n as,\n $collapsible = false,\n $level = 0,\n $type = 'main',\n className,\n ...props\n }: Omit<ComponentProps<T>, keyof SidebarItemWrapperProps<T>> &\n SidebarItemWrapperProps<T>,\n ref: ComponentPropsWithRef<T>['ref']\n) => {\n const Component = as ?? 'div';\n return (\n <Component\n ref={ref}\n {...props}\n className={cn(\n wrapperVariants({\n itemType: $level === 0 ? 'item' : 'subItem',\n type: $type,\n collapsible: $collapsible,\n }),\n className\n )}\n />\n );\n};\n\nexport const SidebarItemWrapper: SidebarItemWrapperComponent =\n forwardRef(_SidebarItemWrapper);\n\nconst SidebarNavigationItem = forwardRef<HTMLDivElement, SidebarNavigationItemProps>(\n (\n { label, level = 0, icon, selected, iconDir, disabled, type = 'main', ...props },\n ref\n ) => {\n return (\n <SidebarItemWrapper\n $level={level}\n data-selected={selected}\n $type={type}\n ref={ref}\n aria-disabled={disabled}\n {...props}\n >\n <IconWrapper\n icon={icon}\n iconDir={iconDir}\n >\n {label}\n </IconWrapper>\n </SidebarItemWrapper>\n );\n }\n);\n\nexport { SidebarNavigationItem };\n"],"names":["wrapperVariants","cva","styles","wrapper","variants","itemType","item","wrapper_itemtype_item","subItem","type","main","sqlSidebar","collapsible","true","wrapper_collapsible_true","false","compoundVariants","class","defaultVariants","_SidebarItemWrapper","as","$collapsible","$level","$type","className","props","ref","Component","cn","SidebarItemWrapper","forwardRef","SidebarNavigationItem","label","level","icon","selected","iconDir","disabled"],"mappings":";;;;;;;AAYA,MAAMA,eAAAA,GAAkBC,GAAAA,CAAIC,MAAAA,CAAOC,OAAAA,EAAS;AAAA,EAC1CC,QAAAA,EAAU;AAAA,IACRC,QAAAA,EAAU;AAAA,MACRC,MAAMJ,MAAAA,CAAOK,qBAAAA;AAAAA,MACbC,OAAAA,EAASN,OAAO,2BAA2B;AAAA,KAC7C;AAAA;AAAA;AAAA,IAGAO,IAAAA,EAAM;AAAA,MAAEC,IAAAA,EAAM,EAAA;AAAA,MAAIC,UAAAA,EAAY;AAAA,KAAG;AAAA,IACjCC,WAAAA,EAAa;AAAA,MAAEC,MAAMX,MAAAA,CAAOY,wBAAAA;AAAAA,MAA0BC,KAAAA,EAAO;AAAA;AAAG,GAClE;AAAA,EACAC,kBAAkB,CAChB;AAAA,IAAEP,IAAAA,EAAM,MAAA;AAAA,IAAQJ,QAAAA,EAAU,MAAA;AAAA,IAAQY,KAAAA,EAAOf,OAAO,yBAAyB;AAAA,GAAE,EAC3E;AAAA,IAAEO,IAAAA,EAAM,MAAA;AAAA,IAAQJ,QAAAA,EAAU,SAAA;AAAA,IAAWY,KAAAA,EAAOf,OAAO,6BAA6B;AAAA,GAAE,EAClF;AAAA,IACEO,IAAAA,EAAM,YAAA;AAAA,IACNJ,QAAAA,EAAU,MAAA;AAAA,IACVY,KAAAA,EAAOf,OAAO,gCAAgC;AAAA,GAChD,EACA;AAAA,IACEO,IAAAA,EAAM,YAAA;AAAA,IACNJ,QAAAA,EAAU,SAAA;AAAA,IACVY,KAAAA,EAAOf,OAAO,oCAAoC;AAAA,GACnD,CAAA;AAAA,EAEHgB,eAAAA,EAAiB;AAAA,IAAEb,QAAAA,EAAU,MAAA;AAAA,IAAQI,IAAAA,EAAM,MAAA;AAAA,IAAQG,WAAAA,EAAa;AAAA;AAClE,CAAC,CAAA;AAgBD,MAAMO,sBAAsB,CAC1B;AAAA,EACEC,EAAAA;AAAAA,EACAC,YAAAA,GAAe,KAAA;AAAA,EACfC,MAAAA,GAAS,CAAA;AAAA,EACTC,KAAAA,GAAQ,MAAA;AAAA,EACRC,SAAAA;AAAAA,EACA,GAAGC;AAEsB,CAAA,EAC3BC,GAAAA,KACG;AACH,EAAA,MAAMC,YAAYP,EAAAA,IAAM,KAAA;AACxB,EAAA,2BACG,SAAA,EAAA,EACC,GAAA,KACIK,KAAAA,EACJ,SAAA,EAAWG,GACT5B,eAAAA,CAAgB;AAAA,IACdK,QAAAA,EAAUiB,MAAAA,KAAW,CAAA,GAAI,MAAA,GAAS,SAAA;AAAA,IAClCb,IAAAA,EAAMc,KAAAA;AAAAA,IACNX,WAAAA,EAAaS;AAAAA,GACd,CAAA,EACDG,SACF,CAAA,EAAE,CAAA;AAGR,CAAA;AAEO,MAAMK,kBAAAA,GACXC,WAAWX,mBAAmB;AAEhC,MAAMY,qBAAAA,GAAwBD,WAC5B,CACE;AAAA,EAAEE,KAAAA;AAAAA,EAAOC,KAAAA,GAAQ,CAAA;AAAA,EAAGC,IAAAA;AAAAA,EAAMC,QAAAA;AAAAA,EAAUC,OAAAA;AAAAA,EAASC,QAAAA;AAAAA,EAAU5B,IAAAA,GAAO,MAAA;AAAA,EAAQ,GAAGgB;AAAM,CAAA,EAC/EC,GAAAA,KACG;AACH,EAAA,2BACG,kBAAA,EAAA,EACC,MAAA,EAAQO,OACR,eAAA,EAAeE,QAAAA,EACf,OAAO1B,IAAAA,EACP,GAAA,EACA,eAAA,EAAe4B,QAAAA,EACf,GAAIZ,KAAAA,EAEJ,QAAA,kBAAA,GAAA,CAAC,eACC,IAAA,EACA,OAAA,EAECO,iBACH,CAAA,EACF,CAAA;AAEJ,CACF;;;;"}