@raystack/apsara 0.46.0-rc.3 → 0.46.0-rc.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (84) hide show
  1. package/dist/style.css +1 -1
  2. package/dist/v1/components/avatar/avatar.cjs +18 -2
  3. package/dist/v1/components/avatar/avatar.cjs.map +1 -1
  4. package/dist/v1/components/avatar/avatar.d.ts +2 -1
  5. package/dist/v1/components/avatar/avatar.d.ts.map +1 -1
  6. package/dist/v1/components/avatar/avatar.js +18 -3
  7. package/dist/v1/components/avatar/avatar.js.map +1 -1
  8. package/dist/v1/components/avatar/utils.cjs +14 -34
  9. package/dist/v1/components/avatar/utils.cjs.map +1 -1
  10. package/dist/v1/components/avatar/utils.d.ts +1 -4
  11. package/dist/v1/components/avatar/utils.d.ts.map +1 -1
  12. package/dist/v1/components/avatar/utils.js +15 -34
  13. package/dist/v1/components/avatar/utils.js.map +1 -1
  14. package/dist/v1/components/breadcrumb/breadcrumb.cjs +41 -24
  15. package/dist/v1/components/breadcrumb/breadcrumb.cjs.map +1 -1
  16. package/dist/v1/components/breadcrumb/breadcrumb.d.ts +16 -13
  17. package/dist/v1/components/breadcrumb/breadcrumb.d.ts.map +1 -1
  18. package/dist/v1/components/breadcrumb/breadcrumb.js +43 -26
  19. package/dist/v1/components/breadcrumb/breadcrumb.js.map +1 -1
  20. package/dist/v1/components/data-table/components/filters.cjs +14 -14
  21. package/dist/v1/components/data-table/components/filters.cjs.map +1 -1
  22. package/dist/v1/components/data-table/components/filters.d.ts.map +1 -1
  23. package/dist/v1/components/data-table/components/filters.js +14 -14
  24. package/dist/v1/components/data-table/components/filters.js.map +1 -1
  25. package/dist/v1/components/dropdown-menu/dropdown-menu-content.cjs +5 -5
  26. package/dist/v1/components/dropdown-menu/dropdown-menu-content.cjs.map +1 -1
  27. package/dist/v1/components/dropdown-menu/dropdown-menu-content.d.ts +3 -3
  28. package/dist/v1/components/dropdown-menu/dropdown-menu-content.d.ts.map +1 -1
  29. package/dist/v1/components/dropdown-menu/dropdown-menu-content.js +5 -5
  30. package/dist/v1/components/dropdown-menu/dropdown-menu-content.js.map +1 -1
  31. package/dist/v1/components/select/select-content.cjs +16 -7
  32. package/dist/v1/components/select/select-content.cjs.map +1 -1
  33. package/dist/v1/components/select/select-content.d.ts +1 -1
  34. package/dist/v1/components/select/select-content.d.ts.map +1 -1
  35. package/dist/v1/components/select/select-content.js +16 -7
  36. package/dist/v1/components/select/select-content.js.map +1 -1
  37. package/dist/v1/components/select/select-item.cjs +19 -18
  38. package/dist/v1/components/select/select-item.cjs.map +1 -1
  39. package/dist/v1/components/select/select-item.d.ts +1 -3
  40. package/dist/v1/components/select/select-item.d.ts.map +1 -1
  41. package/dist/v1/components/select/select-item.js +19 -18
  42. package/dist/v1/components/select/select-item.js.map +1 -1
  43. package/dist/v1/components/select/select-multiple-value.cjs +67 -0
  44. package/dist/v1/components/select/select-multiple-value.cjs.map +1 -0
  45. package/dist/v1/components/select/select-multiple-value.d.ts +8 -0
  46. package/dist/v1/components/select/select-multiple-value.d.ts.map +1 -0
  47. package/dist/v1/components/select/select-multiple-value.js +65 -0
  48. package/dist/v1/components/select/select-multiple-value.js.map +1 -0
  49. package/dist/v1/components/select/select-root.cjs +64 -22
  50. package/dist/v1/components/select/select-root.cjs.map +1 -1
  51. package/dist/v1/components/select/select-root.d.ts +25 -26
  52. package/dist/v1/components/select/select-root.d.ts.map +1 -1
  53. package/dist/v1/components/select/select-root.js +64 -22
  54. package/dist/v1/components/select/select-root.js.map +1 -1
  55. package/dist/v1/components/select/select-trigger.cjs +18 -20
  56. package/dist/v1/components/select/select-trigger.cjs.map +1 -1
  57. package/dist/v1/components/select/select-trigger.d.ts +10 -18
  58. package/dist/v1/components/select/select-trigger.d.ts.map +1 -1
  59. package/dist/v1/components/select/select-trigger.js +16 -18
  60. package/dist/v1/components/select/select-trigger.js.map +1 -1
  61. package/dist/v1/components/select/select-value.cjs +23 -7
  62. package/dist/v1/components/select/select-value.cjs.map +1 -1
  63. package/dist/v1/components/select/select-value.d.ts +8 -2
  64. package/dist/v1/components/select/select-value.d.ts.map +1 -1
  65. package/dist/v1/components/select/select-value.js +22 -6
  66. package/dist/v1/components/select/select-value.js.map +1 -1
  67. package/dist/v1/components/select/select.d.ts +11 -9
  68. package/dist/v1/components/select/select.d.ts.map +1 -1
  69. package/dist/v1/components/select/select.module.css.cjs +1 -1
  70. package/dist/v1/components/select/select.module.css.js +1 -1
  71. package/dist/v1/components/select/types.d.ts +7 -0
  72. package/dist/v1/components/select/types.d.ts.map +1 -0
  73. package/dist/v1/components/tooltip/tooltip.cjs +20 -12
  74. package/dist/v1/components/tooltip/tooltip.cjs.map +1 -1
  75. package/dist/v1/components/tooltip/tooltip.d.ts +4 -3
  76. package/dist/v1/components/tooltip/tooltip.d.ts.map +1 -1
  77. package/dist/v1/components/tooltip/tooltip.js +21 -13
  78. package/dist/v1/components/tooltip/tooltip.js.map +1 -1
  79. package/dist/v1/node_modules/.pnpm/@radix-ui_react-select@2.2.4_@types_react-dom@18.0.11_@types_react@18.2.12_react-dom@18.3.1_react@18.2.0__react@18.2.0/node_modules/@radix-ui/react-select/dist/index.cjs +0 -2
  80. package/dist/v1/node_modules/.pnpm/@radix-ui_react-select@2.2.4_@types_react-dom@18.0.11_@types_react@18.2.12_react-dom@18.3.1_react@18.2.0__react@18.2.0/node_modules/@radix-ui/react-select/dist/index.cjs.map +1 -1
  81. package/dist/v1/node_modules/.pnpm/@radix-ui_react-select@2.2.4_@types_react-dom@18.0.11_@types_react@18.2.12_react-dom@18.3.1_react@18.2.0__react@18.2.0/node_modules/@radix-ui/react-select/dist/index.js +1 -2
  82. package/dist/v1/node_modules/.pnpm/@radix-ui_react-select@2.2.4_@types_react-dom@18.0.11_@types_react@18.2.12_react-dom@18.3.1_react@18.2.0__react@18.2.0/node_modules/@radix-ui/react-select/dist/index.js.map +1 -1
  83. package/dist/v1/style.css +1 -1
  84. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"select-root.cjs","sources":["../../../../v1/components/select/select-root.tsx"],"sourcesContent":["import {\n createContext,\n ReactNode,\n useCallback,\n useContext,\n useRef,\n useState,\n} from \"react\";\nimport { ComboboxProvider } from \"@ariakit/react\";\nimport * as SelectPrimitive from \"@radix-ui/react-select\";\n\ntype IconType = Record<string, ReactNode>;\ntype ValueType = {\n value?: string;\n icon?: ReactNode;\n};\n\ninterface CommonProps {\n autocomplete?: boolean;\n autocompleteMode?: \"auto\" | \"manual\";\n searchValue?: string;\n onSearch?: (value: string) => void;\n defaultSearchValue?: string;\n}\n\ninterface SelectContextValue extends CommonProps {\n value: ValueType;\n registerIcon: (value: string, icon: ReactNode) => void;\n unregisterIcon: (value: string) => void;\n}\n\ninterface UseSelectContext extends SelectContextValue {\n shouldFilter?: boolean;\n}\n\n/*\nRoot context to manage the Select control\n@remarks Only for internal usage.\n*/\nconst SelectContext = createContext<SelectContextValue | undefined>(undefined);\n\nexport const useSelectContext = (): UseSelectContext => {\n const context = useContext(SelectContext);\n if (!context) {\n throw new Error(\"useSelectContext must be used within a SelectProvider\");\n }\n const shouldFilter = !!(\n context?.autocomplete &&\n context?.autocompleteMode === \"auto\" &&\n context?.searchValue?.length\n );\n return {\n ...context,\n shouldFilter,\n };\n};\n\nexport interface NormalSelectRootProps extends SelectPrimitive.SelectProps {\n autocomplete?: false;\n autocompleteMode?: never;\n searchValue?: never;\n onSearch?: never;\n defaultSearchValue?: never;\n}\n\nexport interface AutocompleteSelectRootProps\n extends SelectPrimitive.SelectProps,\n CommonProps {\n autocomplete: true;\n}\n\nexport type SelectRootProps = Omit<\n NormalSelectRootProps | AutocompleteSelectRootProps,\n \"autoComplete\"\n> & {\n htmlAutoComplete?: string;\n};\n\nexport interface NormalSelectRootProps extends SelectPrimitive.SelectProps {\n autocomplete?: false;\n autocompleteMode?: never;\n searchValue?: never;\n onSearch?: never;\n defaultSearchValue?: never;\n}\n\nexport interface AutocompleteSelectRootProps\n extends SelectPrimitive.SelectProps,\n CommonProps {\n autocomplete: true;\n}\n\nexport type BaseSelectRootProps =\n | NormalSelectRootProps\n | AutocompleteSelectRootProps;\n\nexport type SelectRootProps = Omit<BaseSelectRootProps, \"autoComplete\"> & {\n htmlAutoComplete?: string;\n};\n\nexport const SelectRoot = ({\n children,\n value,\n onValueChange,\n defaultValue,\n autocomplete,\n autocompleteMode = \"auto\",\n searchValue: providedSearchValue,\n onSearch,\n defaultSearchValue = \"\",\n open: controlledOpen,\n defaultOpen = false,\n onOpenChange,\n htmlAutoComplete,\n ...props\n}: SelectRootProps) => {\n const [internalValue, setInternalValue] = useState<string | undefined>(\n defaultValue,\n );\n const [internalSearchValue, setInternalSearchValue] =\n useState(defaultSearchValue);\n const [internalOpen, setInternalOpen] = useState(defaultOpen);\n const icons = useRef<IconType>({});\n\n const computedValue = value ?? internalValue;\n const icon = computedValue && icons.current?.[computedValue];\n const searchValue = providedSearchValue ?? internalSearchValue;\n const open = controlledOpen ?? internalOpen;\n\n const setValue = useCallback(\n (_value: string) => {\n onValueChange?.(_value);\n setInternalValue(_value);\n },\n [onValueChange],\n );\n\n const setSearchValue = useCallback(\n (value: string) => {\n setInternalSearchValue(value);\n onSearch?.(value);\n },\n [onSearch],\n );\n\n const handleOpenChange = useCallback(\n (value: boolean) => {\n setInternalOpen(value);\n onOpenChange?.(value);\n },\n [onOpenChange],\n );\n\n const registerIcon = useCallback<SelectContextValue[\"registerIcon\"]>(\n (value, icon) => {\n icons.current = { ...icons.current, [value]: icon };\n },\n [],\n );\n const unregisterIcon = useCallback<SelectContextValue[\"unregisterIcon\"]>(\n value => {\n const { [value]: _, ...rest } = icons.current;\n icons.current = rest;\n },\n [],\n );\n\n const element = (\n <ComboboxProvider\n resetValueOnHide\n focusLoop={false}\n includesBaseElement={false}\n value={searchValue}\n setValue={setSearchValue}\n open={open}\n setOpen={handleOpenChange}>\n {children}\n </ComboboxProvider>\n );\n\n return (\n <SelectContext.Provider\n value={{\n registerIcon,\n unregisterIcon,\n value: { value: computedValue, icon },\n autocomplete,\n autocompleteMode,\n searchValue,\n }}>\n <SelectPrimitive.Root\n autoComplete={htmlAutoComplete}\n value={computedValue}\n onValueChange={setValue}\n open={open}\n onOpenChange={handleOpenChange}\n {...props}>\n {autocomplete ? element : children}\n </SelectPrimitive.Root>\n </SelectContext.Provider>\n );\n};\n"],"names":["createContext","useContext","useState","useRef","useCallback","_jsx","ComboboxProvider","SelectPrimitive.Root"],"mappings":"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"}
1
+ {"version":3,"file":"select-root.cjs","sources":["../../../../v1/components/select/select-root.tsx"],"sourcesContent":["import { ComboboxProvider } from '@ariakit/react';\nimport * as SelectPrimitive from '@radix-ui/react-select';\nimport {\n createContext,\n useCallback,\n useContext,\n useId,\n useMemo,\n useRef,\n useState\n} from 'react';\nimport { ItemType } from './types';\n\ninterface CommonProps {\n autocomplete?: boolean;\n autocompleteMode?: 'auto' | 'manual';\n searchValue?: string;\n onSearch?: (value: string) => void;\n defaultSearchValue?: string;\n}\n\ninterface SelectContextValue extends CommonProps {\n value?: string | string[];\n registerItem: (item: ItemType) => void;\n unregisterItem: (value: string) => void;\n multiple: boolean;\n items: Record<string, ItemType>;\n updateSelectionInProgress: (value: boolean) => void;\n setValue: (value: string) => void;\n}\n\ninterface UseSelectContext extends SelectContextValue {\n shouldFilter?: boolean;\n}\n\n/*\nRoot context to manage the Select control\n@remarks Only for internal usage.\n*/\nconst SelectContext = createContext<SelectContextValue | undefined>(undefined);\n\nexport const useSelectContext = (): UseSelectContext => {\n const context = useContext(SelectContext);\n if (!context) {\n throw new Error('useSelectContext must be used within a SelectProvider');\n }\n const shouldFilter = !!(\n context?.autocomplete &&\n context?.autocompleteMode === 'auto' &&\n context?.searchValue?.length\n );\n return {\n ...context,\n shouldFilter\n };\n};\n\ninterface NormalSelectRootProps extends SelectPrimitive.SelectProps {\n autocomplete?: false;\n autocompleteMode?: never;\n searchValue?: never;\n onSearch?: never;\n defaultSearchValue?: never;\n}\n\ninterface AutocompleteSelectRootProps\n extends SelectPrimitive.SelectProps,\n CommonProps {\n autocomplete: true;\n}\n\ntype BaseSelectProps = Omit<\n NormalSelectRootProps | AutocompleteSelectRootProps,\n 'autoComplete' | 'value' | 'onValueChange' | 'defaultValue'\n> & {\n htmlAutoComplete?: string;\n};\n\ninterface SingleSelectProps extends BaseSelectProps {\n multiple?: false;\n value?: string;\n onValueChange?: (value: string) => void;\n defaultValue?: string;\n}\n\ninterface MultipleSelectProps extends BaseSelectProps {\n multiple: true;\n value?: string[];\n onValueChange?: (value: string[]) => void;\n defaultValue?: string[];\n}\n\nexport type SelectRootProps = SingleSelectProps | MultipleSelectProps;\n\nconst SELECT_INTERNAL_VALUE = 'SELECT_INTERNAL_VALUE';\n\nexport const SelectRoot = (props: SelectRootProps) => {\n const {\n children,\n value: providedValue,\n onValueChange,\n defaultValue,\n autocomplete,\n autocompleteMode = 'auto',\n searchValue: providedSearchValue,\n onSearch,\n defaultSearchValue = '',\n open: providedOpen,\n defaultOpen = false,\n onOpenChange,\n htmlAutoComplete,\n multiple = false,\n ...rest\n } = props;\n\n const [internalValue, setInternalValue] = useState<\n string | string[] | undefined\n >(defaultValue);\n const [internalSearchValue, setInternalSearchValue] =\n useState(defaultSearchValue);\n const [internalOpen, setInternalOpen] = useState(defaultOpen);\n const [items, setItems] = useState<SelectContextValue['items']>({});\n const id = useId();\n const isSelectionInProgress = useRef(false);\n\n const computedValue = providedValue ?? internalValue;\n const searchValue = providedSearchValue ?? internalSearchValue;\n const open = providedOpen ?? internalOpen;\n\n const updateSelectionInProgress = useCallback((value: boolean) => {\n isSelectionInProgress.current = value;\n }, []);\n\n const setValue = useCallback(\n (value: string) => {\n if (multiple) {\n updateSelectionInProgress(true);\n const set = new Set<string>(\n Array.isArray(computedValue)\n ? computedValue\n : [computedValue ?? ''].filter(Boolean)\n );\n\n if (set.has(value)) set.delete(value);\n else set.add(value);\n\n const newValue = Array.from(set);\n\n setInternalValue(newValue);\n (onValueChange as MultipleSelectProps['onValueChange'])?.(newValue);\n } else {\n setInternalValue(value);\n (onValueChange as SingleSelectProps['onValueChange'])?.(value);\n }\n },\n [multiple, onValueChange, computedValue, updateSelectionInProgress]\n );\n\n const setSearchValue = useCallback(\n (value: string) => {\n setInternalSearchValue(value);\n onSearch?.(value);\n },\n [onSearch]\n );\n\n const handleOpenChange = useCallback(\n (value: boolean) => {\n if (isSelectionInProgress.current) return;\n setInternalOpen(value);\n onOpenChange?.(value);\n },\n [onOpenChange]\n );\n\n const registerItem = useCallback<SelectContextValue['registerItem']>(item => {\n setItems(prev => ({ ...prev, [item.value]: item }));\n }, []);\n\n const unregisterItem = useCallback<SelectContextValue['unregisterItem']>(\n value => {\n setItems(prev => {\n const { [value]: _, ...rest } = prev;\n return rest;\n });\n },\n []\n );\n\n /*\n * Radix internally shows the placeholder when the value is empty.\n * This value is used to manage the internal value of Radix Select to make it work\n */\n const radixValue = useMemo(() => {\n if (!computedValue) return '';\n if (typeof computedValue === 'string') return computedValue;\n if (computedValue.length) return `${SELECT_INTERNAL_VALUE}-${id}`;\n return '';\n }, [computedValue, id]);\n\n const element = (\n <ComboboxProvider\n resetValueOnHide\n focusLoop={false}\n includesBaseElement={false}\n value={searchValue}\n setValue={setSearchValue}\n open={open}\n setOpen={handleOpenChange}\n >\n {children}\n </ComboboxProvider>\n );\n\n return (\n <SelectContext.Provider\n value={{\n value: computedValue,\n registerItem,\n unregisterItem,\n autocomplete,\n autocompleteMode,\n searchValue,\n multiple,\n items,\n updateSelectionInProgress,\n setValue\n }}\n >\n <SelectPrimitive.Root\n autoComplete={htmlAutoComplete}\n value={radixValue}\n onValueChange={setValue}\n open={open}\n onOpenChange={handleOpenChange}\n {...rest}\n >\n {autocomplete ? element : children}\n </SelectPrimitive.Root>\n </SelectContext.Provider>\n );\n};\n"],"names":["createContext","useContext","useState","useId","useRef","useCallback","useMemo","_jsx","ComboboxProvider","SelectPrimitive.Root"],"mappings":"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"}
@@ -1,52 +1,51 @@
1
- import { ReactNode } from "react";
2
- import * as SelectPrimitive from "@radix-ui/react-select";
3
- type ValueType = {
4
- value?: string;
5
- icon?: ReactNode;
6
- };
1
+ import * as SelectPrimitive from '@radix-ui/react-select';
2
+ import { ItemType } from './types';
7
3
  interface CommonProps {
8
4
  autocomplete?: boolean;
9
- autocompleteMode?: "auto" | "manual";
5
+ autocompleteMode?: 'auto' | 'manual';
10
6
  searchValue?: string;
11
7
  onSearch?: (value: string) => void;
12
8
  defaultSearchValue?: string;
13
9
  }
14
10
  interface SelectContextValue extends CommonProps {
15
- value: ValueType;
16
- registerIcon: (value: string, icon: ReactNode) => void;
17
- unregisterIcon: (value: string) => void;
11
+ value?: string | string[];
12
+ registerItem: (item: ItemType) => void;
13
+ unregisterItem: (value: string) => void;
14
+ multiple: boolean;
15
+ items: Record<string, ItemType>;
16
+ updateSelectionInProgress: (value: boolean) => void;
17
+ setValue: (value: string) => void;
18
18
  }
19
19
  interface UseSelectContext extends SelectContextValue {
20
20
  shouldFilter?: boolean;
21
21
  }
22
22
  export declare const useSelectContext: () => UseSelectContext;
23
- export interface NormalSelectRootProps extends SelectPrimitive.SelectProps {
23
+ interface NormalSelectRootProps extends SelectPrimitive.SelectProps {
24
24
  autocomplete?: false;
25
25
  autocompleteMode?: never;
26
26
  searchValue?: never;
27
27
  onSearch?: never;
28
28
  defaultSearchValue?: never;
29
29
  }
30
- export interface AutocompleteSelectRootProps extends SelectPrimitive.SelectProps, CommonProps {
30
+ interface AutocompleteSelectRootProps extends SelectPrimitive.SelectProps, CommonProps {
31
31
  autocomplete: true;
32
32
  }
33
- export type SelectRootProps = Omit<NormalSelectRootProps | AutocompleteSelectRootProps, "autoComplete"> & {
33
+ type BaseSelectProps = Omit<NormalSelectRootProps | AutocompleteSelectRootProps, 'autoComplete' | 'value' | 'onValueChange' | 'defaultValue'> & {
34
34
  htmlAutoComplete?: string;
35
35
  };
36
- export interface NormalSelectRootProps extends SelectPrimitive.SelectProps {
37
- autocomplete?: false;
38
- autocompleteMode?: never;
39
- searchValue?: never;
40
- onSearch?: never;
41
- defaultSearchValue?: never;
36
+ interface SingleSelectProps extends BaseSelectProps {
37
+ multiple?: false;
38
+ value?: string;
39
+ onValueChange?: (value: string) => void;
40
+ defaultValue?: string;
42
41
  }
43
- export interface AutocompleteSelectRootProps extends SelectPrimitive.SelectProps, CommonProps {
44
- autocomplete: true;
42
+ interface MultipleSelectProps extends BaseSelectProps {
43
+ multiple: true;
44
+ value?: string[];
45
+ onValueChange?: (value: string[]) => void;
46
+ defaultValue?: string[];
45
47
  }
46
- export type BaseSelectRootProps = NormalSelectRootProps | AutocompleteSelectRootProps;
47
- export type SelectRootProps = Omit<BaseSelectRootProps, "autoComplete"> & {
48
- htmlAutoComplete?: string;
49
- };
50
- export declare const SelectRoot: ({ children, value, onValueChange, defaultValue, autocomplete, autocompleteMode, searchValue: providedSearchValue, onSearch, defaultSearchValue, open: controlledOpen, defaultOpen, onOpenChange, htmlAutoComplete, ...props }: SelectRootProps) => import("react/jsx-runtime").JSX.Element;
48
+ export type SelectRootProps = SingleSelectProps | MultipleSelectProps;
49
+ export declare const SelectRoot: (props: SelectRootProps) => import("react/jsx-runtime").JSX.Element;
51
50
  export {};
52
51
  //# sourceMappingURL=select-root.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"select-root.d.ts","sourceRoot":"","sources":["../../../../v1/components/select/select-root.tsx"],"names":[],"mappings":"AAAA,OAAO,EAEL,SAAS,EAKV,MAAM,OAAO,CAAC;AAEf,OAAO,KAAK,eAAe,MAAM,wBAAwB,CAAC;AAG1D,KAAK,SAAS,GAAG;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,SAAS,CAAC;CAClB,CAAC;AAEF,UAAU,WAAW;IACnB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,gBAAgB,CAAC,EAAE,MAAM,GAAG,QAAQ,CAAC;IACrC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED,UAAU,kBAAmB,SAAQ,WAAW;IAC9C,KAAK,EAAE,SAAS,CAAC;IACjB,YAAY,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,KAAK,IAAI,CAAC;IACvD,cAAc,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CACzC;AAED,UAAU,gBAAiB,SAAQ,kBAAkB;IACnD,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAQD,eAAO,MAAM,gBAAgB,QAAO,gBAcnC,CAAC;AAEF,MAAM,WAAW,qBAAsB,SAAQ,eAAe,CAAC,WAAW;IACxE,YAAY,CAAC,EAAE,KAAK,CAAC;IACrB,gBAAgB,CAAC,EAAE,KAAK,CAAC;IACzB,WAAW,CAAC,EAAE,KAAK,CAAC;IACpB,QAAQ,CAAC,EAAE,KAAK,CAAC;IACjB,kBAAkB,CAAC,EAAE,KAAK,CAAC;CAC5B;AAED,MAAM,WAAW,2BACf,SAAQ,eAAe,CAAC,WAAW,EACjC,WAAW;IACb,YAAY,EAAE,IAAI,CAAC;CACpB;AAED,MAAM,MAAM,eAAe,GAAG,IAAI,CAChC,qBAAqB,GAAG,2BAA2B,EACnD,cAAc,CACf,GAAG;IACF,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B,CAAC;AAEF,MAAM,WAAW,qBAAsB,SAAQ,eAAe,CAAC,WAAW;IACxE,YAAY,CAAC,EAAE,KAAK,CAAC;IACrB,gBAAgB,CAAC,EAAE,KAAK,CAAC;IACzB,WAAW,CAAC,EAAE,KAAK,CAAC;IACpB,QAAQ,CAAC,EAAE,KAAK,CAAC;IACjB,kBAAkB,CAAC,EAAE,KAAK,CAAC;CAC5B;AAED,MAAM,WAAW,2BACf,SAAQ,eAAe,CAAC,WAAW,EACjC,WAAW;IACb,YAAY,EAAE,IAAI,CAAC;CACpB;AAED,MAAM,MAAM,mBAAmB,GAC3B,qBAAqB,GACrB,2BAA2B,CAAC;AAEhC,MAAM,MAAM,eAAe,GAAG,IAAI,CAAC,mBAAmB,EAAE,cAAc,CAAC,GAAG;IACxE,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B,CAAC;AAEF,eAAO,MAAM,UAAU,kOAepB,eAAe,4CAsFjB,CAAC"}
1
+ {"version":3,"file":"select-root.d.ts","sourceRoot":"","sources":["../../../../v1/components/select/select-root.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,eAAe,MAAM,wBAAwB,CAAC;AAU1D,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAEnC,UAAU,WAAW;IACnB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,gBAAgB,CAAC,EAAE,MAAM,GAAG,QAAQ,CAAC;IACrC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED,UAAU,kBAAmB,SAAQ,WAAW;IAC9C,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAC1B,YAAY,EAAE,CAAC,IAAI,EAAE,QAAQ,KAAK,IAAI,CAAC;IACvC,cAAc,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACxC,QAAQ,EAAE,OAAO,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAChC,yBAAyB,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IACpD,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CACnC;AAED,UAAU,gBAAiB,SAAQ,kBAAkB;IACnD,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAQD,eAAO,MAAM,gBAAgB,QAAO,gBAcnC,CAAC;AAEF,UAAU,qBAAsB,SAAQ,eAAe,CAAC,WAAW;IACjE,YAAY,CAAC,EAAE,KAAK,CAAC;IACrB,gBAAgB,CAAC,EAAE,KAAK,CAAC;IACzB,WAAW,CAAC,EAAE,KAAK,CAAC;IACpB,QAAQ,CAAC,EAAE,KAAK,CAAC;IACjB,kBAAkB,CAAC,EAAE,KAAK,CAAC;CAC5B;AAED,UAAU,2BACR,SAAQ,eAAe,CAAC,WAAW,EACjC,WAAW;IACb,YAAY,EAAE,IAAI,CAAC;CACpB;AAED,KAAK,eAAe,GAAG,IAAI,CACzB,qBAAqB,GAAG,2BAA2B,EACnD,cAAc,GAAG,OAAO,GAAG,eAAe,GAAG,cAAc,CAC5D,GAAG;IACF,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B,CAAC;AAEF,UAAU,iBAAkB,SAAQ,eAAe;IACjD,QAAQ,CAAC,EAAE,KAAK,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACxC,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,UAAU,mBAAoB,SAAQ,eAAe;IACnD,QAAQ,EAAE,IAAI,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IAC1C,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;CACzB;AAED,MAAM,MAAM,eAAe,GAAG,iBAAiB,GAAG,mBAAmB,CAAC;AAItE,eAAO,MAAM,UAAU,UAAW,eAAe,4CAiJhD,CAAC"}
@@ -1,7 +1,7 @@
1
1
  import { j as jsxRuntimeExports } from '../../node_modules/.pnpm/react@18.2.0/node_modules/react/jsx-runtime.js';
2
- import { createContext, useContext, useState, useRef, useCallback } from 'react';
3
2
  import { ComboboxProvider } from '../../node_modules/.pnpm/@ariakit_react-core@0.4.16_react-dom@18.3.1_react@18.2.0__react@18.2.0/node_modules/@ariakit/react-core/esm/combobox/combobox-provider.js';
4
3
  import { Root as Root2 } from '../../node_modules/.pnpm/@radix-ui_react-select@2.2.4_@types_react-dom@18.0.11_@types_react@18.2.12_react-dom@18.3.1_react@18.2.0__react@18.2.0/node_modules/@radix-ui/react-select/dist/index.js';
4
+ import { createContext, useContext, useState, useId, useRef, useCallback, useMemo } from 'react';
5
5
 
6
6
  /*
7
7
  Root context to manage the Select control
@@ -11,53 +11,95 @@ const SelectContext = createContext(undefined);
11
11
  const useSelectContext = () => {
12
12
  const context = useContext(SelectContext);
13
13
  if (!context) {
14
- throw new Error("useSelectContext must be used within a SelectProvider");
14
+ throw new Error('useSelectContext must be used within a SelectProvider');
15
15
  }
16
16
  const shouldFilter = !!(context?.autocomplete &&
17
- context?.autocompleteMode === "auto" &&
17
+ context?.autocompleteMode === 'auto' &&
18
18
  context?.searchValue?.length);
19
19
  return {
20
20
  ...context,
21
- shouldFilter,
21
+ shouldFilter
22
22
  };
23
23
  };
24
- const SelectRoot = ({ children, value, onValueChange, defaultValue, autocomplete, autocompleteMode = "auto", searchValue: providedSearchValue, onSearch, defaultSearchValue = "", open: controlledOpen, defaultOpen = false, onOpenChange, htmlAutoComplete, ...props }) => {
24
+ const SELECT_INTERNAL_VALUE = 'SELECT_INTERNAL_VALUE';
25
+ const SelectRoot = (props) => {
26
+ const { children, value: providedValue, onValueChange, defaultValue, autocomplete, autocompleteMode = 'auto', searchValue: providedSearchValue, onSearch, defaultSearchValue = '', open: providedOpen, defaultOpen = false, onOpenChange, htmlAutoComplete, multiple = false, ...rest } = props;
25
27
  const [internalValue, setInternalValue] = useState(defaultValue);
26
28
  const [internalSearchValue, setInternalSearchValue] = useState(defaultSearchValue);
27
29
  const [internalOpen, setInternalOpen] = useState(defaultOpen);
28
- const icons = useRef({});
29
- const computedValue = value ?? internalValue;
30
- const icon = computedValue && icons.current?.[computedValue];
30
+ const [items, setItems] = useState({});
31
+ const id = useId();
32
+ const isSelectionInProgress = useRef(false);
33
+ const computedValue = providedValue ?? internalValue;
31
34
  const searchValue = providedSearchValue ?? internalSearchValue;
32
- const open = controlledOpen ?? internalOpen;
33
- const setValue = useCallback((_value) => {
34
- onValueChange?.(_value);
35
- setInternalValue(_value);
36
- }, [onValueChange]);
35
+ const open = providedOpen ?? internalOpen;
36
+ const updateSelectionInProgress = useCallback((value) => {
37
+ isSelectionInProgress.current = value;
38
+ }, []);
39
+ const setValue = useCallback((value) => {
40
+ if (multiple) {
41
+ updateSelectionInProgress(true);
42
+ const set = new Set(Array.isArray(computedValue)
43
+ ? computedValue
44
+ : [computedValue ?? ''].filter(Boolean));
45
+ if (set.has(value))
46
+ set.delete(value);
47
+ else
48
+ set.add(value);
49
+ const newValue = Array.from(set);
50
+ setInternalValue(newValue);
51
+ onValueChange?.(newValue);
52
+ }
53
+ else {
54
+ setInternalValue(value);
55
+ onValueChange?.(value);
56
+ }
57
+ }, [multiple, onValueChange, computedValue, updateSelectionInProgress]);
37
58
  const setSearchValue = useCallback((value) => {
38
59
  setInternalSearchValue(value);
39
60
  onSearch?.(value);
40
61
  }, [onSearch]);
41
62
  const handleOpenChange = useCallback((value) => {
63
+ if (isSelectionInProgress.current)
64
+ return;
42
65
  setInternalOpen(value);
43
66
  onOpenChange?.(value);
44
67
  }, [onOpenChange]);
45
- const registerIcon = useCallback((value, icon) => {
46
- icons.current = { ...icons.current, [value]: icon };
68
+ const registerItem = useCallback(item => {
69
+ setItems(prev => ({ ...prev, [item.value]: item }));
47
70
  }, []);
48
- const unregisterIcon = useCallback(value => {
49
- const { [value]: _, ...rest } = icons.current;
50
- icons.current = rest;
71
+ const unregisterItem = useCallback(value => {
72
+ setItems(prev => {
73
+ const { [value]: _, ...rest } = prev;
74
+ return rest;
75
+ });
51
76
  }, []);
77
+ /*
78
+ * Radix internally shows the placeholder when the value is empty.
79
+ * This value is used to manage the internal value of Radix Select to make it work
80
+ */
81
+ const radixValue = useMemo(() => {
82
+ if (!computedValue)
83
+ return '';
84
+ if (typeof computedValue === 'string')
85
+ return computedValue;
86
+ if (computedValue.length)
87
+ return `${SELECT_INTERNAL_VALUE}-${id}`;
88
+ return '';
89
+ }, [computedValue, id]);
52
90
  const element = (jsxRuntimeExports.jsx(ComboboxProvider, { resetValueOnHide: true, focusLoop: false, includesBaseElement: false, value: searchValue, setValue: setSearchValue, open: open, setOpen: handleOpenChange, children: children }));
53
91
  return (jsxRuntimeExports.jsx(SelectContext.Provider, { value: {
54
- registerIcon,
55
- unregisterIcon,
56
- value: { value: computedValue, icon },
92
+ value: computedValue,
93
+ registerItem,
94
+ unregisterItem,
57
95
  autocomplete,
58
96
  autocompleteMode,
59
97
  searchValue,
60
- }, children: jsxRuntimeExports.jsx(Root2, { autoComplete: htmlAutoComplete, value: computedValue, onValueChange: setValue, open: open, onOpenChange: handleOpenChange, ...props, children: autocomplete ? element : children }) }));
98
+ multiple,
99
+ items,
100
+ updateSelectionInProgress,
101
+ setValue
102
+ }, children: jsxRuntimeExports.jsx(Root2, { autoComplete: htmlAutoComplete, value: radixValue, onValueChange: setValue, open: open, onOpenChange: handleOpenChange, ...rest, children: autocomplete ? element : children }) }));
61
103
  };
62
104
 
63
105
  export { SelectRoot, useSelectContext };
@@ -1 +1 @@
1
- {"version":3,"file":"select-root.js","sources":["../../../../v1/components/select/select-root.tsx"],"sourcesContent":["import {\n createContext,\n ReactNode,\n useCallback,\n useContext,\n useRef,\n useState,\n} from \"react\";\nimport { ComboboxProvider } from \"@ariakit/react\";\nimport * as SelectPrimitive from \"@radix-ui/react-select\";\n\ntype IconType = Record<string, ReactNode>;\ntype ValueType = {\n value?: string;\n icon?: ReactNode;\n};\n\ninterface CommonProps {\n autocomplete?: boolean;\n autocompleteMode?: \"auto\" | \"manual\";\n searchValue?: string;\n onSearch?: (value: string) => void;\n defaultSearchValue?: string;\n}\n\ninterface SelectContextValue extends CommonProps {\n value: ValueType;\n registerIcon: (value: string, icon: ReactNode) => void;\n unregisterIcon: (value: string) => void;\n}\n\ninterface UseSelectContext extends SelectContextValue {\n shouldFilter?: boolean;\n}\n\n/*\nRoot context to manage the Select control\n@remarks Only for internal usage.\n*/\nconst SelectContext = createContext<SelectContextValue | undefined>(undefined);\n\nexport const useSelectContext = (): UseSelectContext => {\n const context = useContext(SelectContext);\n if (!context) {\n throw new Error(\"useSelectContext must be used within a SelectProvider\");\n }\n const shouldFilter = !!(\n context?.autocomplete &&\n context?.autocompleteMode === \"auto\" &&\n context?.searchValue?.length\n );\n return {\n ...context,\n shouldFilter,\n };\n};\n\nexport interface NormalSelectRootProps extends SelectPrimitive.SelectProps {\n autocomplete?: false;\n autocompleteMode?: never;\n searchValue?: never;\n onSearch?: never;\n defaultSearchValue?: never;\n}\n\nexport interface AutocompleteSelectRootProps\n extends SelectPrimitive.SelectProps,\n CommonProps {\n autocomplete: true;\n}\n\nexport type SelectRootProps = Omit<\n NormalSelectRootProps | AutocompleteSelectRootProps,\n \"autoComplete\"\n> & {\n htmlAutoComplete?: string;\n};\n\nexport interface NormalSelectRootProps extends SelectPrimitive.SelectProps {\n autocomplete?: false;\n autocompleteMode?: never;\n searchValue?: never;\n onSearch?: never;\n defaultSearchValue?: never;\n}\n\nexport interface AutocompleteSelectRootProps\n extends SelectPrimitive.SelectProps,\n CommonProps {\n autocomplete: true;\n}\n\nexport type BaseSelectRootProps =\n | NormalSelectRootProps\n | AutocompleteSelectRootProps;\n\nexport type SelectRootProps = Omit<BaseSelectRootProps, \"autoComplete\"> & {\n htmlAutoComplete?: string;\n};\n\nexport const SelectRoot = ({\n children,\n value,\n onValueChange,\n defaultValue,\n autocomplete,\n autocompleteMode = \"auto\",\n searchValue: providedSearchValue,\n onSearch,\n defaultSearchValue = \"\",\n open: controlledOpen,\n defaultOpen = false,\n onOpenChange,\n htmlAutoComplete,\n ...props\n}: SelectRootProps) => {\n const [internalValue, setInternalValue] = useState<string | undefined>(\n defaultValue,\n );\n const [internalSearchValue, setInternalSearchValue] =\n useState(defaultSearchValue);\n const [internalOpen, setInternalOpen] = useState(defaultOpen);\n const icons = useRef<IconType>({});\n\n const computedValue = value ?? internalValue;\n const icon = computedValue && icons.current?.[computedValue];\n const searchValue = providedSearchValue ?? internalSearchValue;\n const open = controlledOpen ?? internalOpen;\n\n const setValue = useCallback(\n (_value: string) => {\n onValueChange?.(_value);\n setInternalValue(_value);\n },\n [onValueChange],\n );\n\n const setSearchValue = useCallback(\n (value: string) => {\n setInternalSearchValue(value);\n onSearch?.(value);\n },\n [onSearch],\n );\n\n const handleOpenChange = useCallback(\n (value: boolean) => {\n setInternalOpen(value);\n onOpenChange?.(value);\n },\n [onOpenChange],\n );\n\n const registerIcon = useCallback<SelectContextValue[\"registerIcon\"]>(\n (value, icon) => {\n icons.current = { ...icons.current, [value]: icon };\n },\n [],\n );\n const unregisterIcon = useCallback<SelectContextValue[\"unregisterIcon\"]>(\n value => {\n const { [value]: _, ...rest } = icons.current;\n icons.current = rest;\n },\n [],\n );\n\n const element = (\n <ComboboxProvider\n resetValueOnHide\n focusLoop={false}\n includesBaseElement={false}\n value={searchValue}\n setValue={setSearchValue}\n open={open}\n setOpen={handleOpenChange}>\n {children}\n </ComboboxProvider>\n );\n\n return (\n <SelectContext.Provider\n value={{\n registerIcon,\n unregisterIcon,\n value: { value: computedValue, icon },\n autocomplete,\n autocompleteMode,\n searchValue,\n }}>\n <SelectPrimitive.Root\n autoComplete={htmlAutoComplete}\n value={computedValue}\n onValueChange={setValue}\n open={open}\n onOpenChange={handleOpenChange}\n {...props}>\n {autocomplete ? element : children}\n </SelectPrimitive.Root>\n </SelectContext.Provider>\n );\n};\n"],"names":["_jsx","SelectPrimitive.Root"],"mappings":"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"}
1
+ {"version":3,"file":"select-root.js","sources":["../../../../v1/components/select/select-root.tsx"],"sourcesContent":["import { ComboboxProvider } from '@ariakit/react';\nimport * as SelectPrimitive from '@radix-ui/react-select';\nimport {\n createContext,\n useCallback,\n useContext,\n useId,\n useMemo,\n useRef,\n useState\n} from 'react';\nimport { ItemType } from './types';\n\ninterface CommonProps {\n autocomplete?: boolean;\n autocompleteMode?: 'auto' | 'manual';\n searchValue?: string;\n onSearch?: (value: string) => void;\n defaultSearchValue?: string;\n}\n\ninterface SelectContextValue extends CommonProps {\n value?: string | string[];\n registerItem: (item: ItemType) => void;\n unregisterItem: (value: string) => void;\n multiple: boolean;\n items: Record<string, ItemType>;\n updateSelectionInProgress: (value: boolean) => void;\n setValue: (value: string) => void;\n}\n\ninterface UseSelectContext extends SelectContextValue {\n shouldFilter?: boolean;\n}\n\n/*\nRoot context to manage the Select control\n@remarks Only for internal usage.\n*/\nconst SelectContext = createContext<SelectContextValue | undefined>(undefined);\n\nexport const useSelectContext = (): UseSelectContext => {\n const context = useContext(SelectContext);\n if (!context) {\n throw new Error('useSelectContext must be used within a SelectProvider');\n }\n const shouldFilter = !!(\n context?.autocomplete &&\n context?.autocompleteMode === 'auto' &&\n context?.searchValue?.length\n );\n return {\n ...context,\n shouldFilter\n };\n};\n\ninterface NormalSelectRootProps extends SelectPrimitive.SelectProps {\n autocomplete?: false;\n autocompleteMode?: never;\n searchValue?: never;\n onSearch?: never;\n defaultSearchValue?: never;\n}\n\ninterface AutocompleteSelectRootProps\n extends SelectPrimitive.SelectProps,\n CommonProps {\n autocomplete: true;\n}\n\ntype BaseSelectProps = Omit<\n NormalSelectRootProps | AutocompleteSelectRootProps,\n 'autoComplete' | 'value' | 'onValueChange' | 'defaultValue'\n> & {\n htmlAutoComplete?: string;\n};\n\ninterface SingleSelectProps extends BaseSelectProps {\n multiple?: false;\n value?: string;\n onValueChange?: (value: string) => void;\n defaultValue?: string;\n}\n\ninterface MultipleSelectProps extends BaseSelectProps {\n multiple: true;\n value?: string[];\n onValueChange?: (value: string[]) => void;\n defaultValue?: string[];\n}\n\nexport type SelectRootProps = SingleSelectProps | MultipleSelectProps;\n\nconst SELECT_INTERNAL_VALUE = 'SELECT_INTERNAL_VALUE';\n\nexport const SelectRoot = (props: SelectRootProps) => {\n const {\n children,\n value: providedValue,\n onValueChange,\n defaultValue,\n autocomplete,\n autocompleteMode = 'auto',\n searchValue: providedSearchValue,\n onSearch,\n defaultSearchValue = '',\n open: providedOpen,\n defaultOpen = false,\n onOpenChange,\n htmlAutoComplete,\n multiple = false,\n ...rest\n } = props;\n\n const [internalValue, setInternalValue] = useState<\n string | string[] | undefined\n >(defaultValue);\n const [internalSearchValue, setInternalSearchValue] =\n useState(defaultSearchValue);\n const [internalOpen, setInternalOpen] = useState(defaultOpen);\n const [items, setItems] = useState<SelectContextValue['items']>({});\n const id = useId();\n const isSelectionInProgress = useRef(false);\n\n const computedValue = providedValue ?? internalValue;\n const searchValue = providedSearchValue ?? internalSearchValue;\n const open = providedOpen ?? internalOpen;\n\n const updateSelectionInProgress = useCallback((value: boolean) => {\n isSelectionInProgress.current = value;\n }, []);\n\n const setValue = useCallback(\n (value: string) => {\n if (multiple) {\n updateSelectionInProgress(true);\n const set = new Set<string>(\n Array.isArray(computedValue)\n ? computedValue\n : [computedValue ?? ''].filter(Boolean)\n );\n\n if (set.has(value)) set.delete(value);\n else set.add(value);\n\n const newValue = Array.from(set);\n\n setInternalValue(newValue);\n (onValueChange as MultipleSelectProps['onValueChange'])?.(newValue);\n } else {\n setInternalValue(value);\n (onValueChange as SingleSelectProps['onValueChange'])?.(value);\n }\n },\n [multiple, onValueChange, computedValue, updateSelectionInProgress]\n );\n\n const setSearchValue = useCallback(\n (value: string) => {\n setInternalSearchValue(value);\n onSearch?.(value);\n },\n [onSearch]\n );\n\n const handleOpenChange = useCallback(\n (value: boolean) => {\n if (isSelectionInProgress.current) return;\n setInternalOpen(value);\n onOpenChange?.(value);\n },\n [onOpenChange]\n );\n\n const registerItem = useCallback<SelectContextValue['registerItem']>(item => {\n setItems(prev => ({ ...prev, [item.value]: item }));\n }, []);\n\n const unregisterItem = useCallback<SelectContextValue['unregisterItem']>(\n value => {\n setItems(prev => {\n const { [value]: _, ...rest } = prev;\n return rest;\n });\n },\n []\n );\n\n /*\n * Radix internally shows the placeholder when the value is empty.\n * This value is used to manage the internal value of Radix Select to make it work\n */\n const radixValue = useMemo(() => {\n if (!computedValue) return '';\n if (typeof computedValue === 'string') return computedValue;\n if (computedValue.length) return `${SELECT_INTERNAL_VALUE}-${id}`;\n return '';\n }, [computedValue, id]);\n\n const element = (\n <ComboboxProvider\n resetValueOnHide\n focusLoop={false}\n includesBaseElement={false}\n value={searchValue}\n setValue={setSearchValue}\n open={open}\n setOpen={handleOpenChange}\n >\n {children}\n </ComboboxProvider>\n );\n\n return (\n <SelectContext.Provider\n value={{\n value: computedValue,\n registerItem,\n unregisterItem,\n autocomplete,\n autocompleteMode,\n searchValue,\n multiple,\n items,\n updateSelectionInProgress,\n setValue\n }}\n >\n <SelectPrimitive.Root\n autoComplete={htmlAutoComplete}\n value={radixValue}\n onValueChange={setValue}\n open={open}\n onOpenChange={handleOpenChange}\n {...rest}\n >\n {autocomplete ? element : children}\n </SelectPrimitive.Root>\n </SelectContext.Provider>\n );\n};\n"],"names":["_jsx","SelectPrimitive.Root"],"mappings":"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"}
@@ -1,37 +1,35 @@
1
1
  'use strict';
2
2
 
3
3
  var jsxRuntime = require('../../node_modules/.pnpm/react@18.2.0/node_modules/react/jsx-runtime.cjs');
4
- var React = require('react');
5
4
  var reactIcons_esm = require('../../node_modules/.pnpm/@radix-ui_react-icons@1.3.0_react@18.2.0/node_modules/@radix-ui/react-icons/dist/react-icons.esm.cjs');
6
5
  var index = require('../../node_modules/.pnpm/@radix-ui_react-select@2.2.4_@types_react-dom@18.0.11_@types_react@18.2.12_react-dom@18.3.1_react@18.2.0__react@18.2.0/node_modules/@radix-ui/react-select/dist/index.cjs');
7
- var index$1 = require('../../node_modules/.pnpm/class-variance-authority@0.7.1/node_modules/class-variance-authority/dist/index.cjs');
6
+ var index$1 = require('../../node_modules/.pnpm/@radix-ui_react-slot@1.0.2_@types_react@18.2.12_react@18.2.0/node_modules/@radix-ui/react-slot/dist/index.cjs');
7
+ var index$2 = require('../../node_modules/.pnpm/class-variance-authority@0.7.1/node_modules/class-variance-authority/dist/index.cjs');
8
+ var React = require('react');
9
+ var flex = require('../flex/flex.cjs');
10
+ var selectRoot = require('./select-root.cjs');
8
11
  var select_module = require('./select.module.css.cjs');
9
12
 
10
- const trigger = index$1.cva(select_module.default.trigger, {
13
+ const trigger = index$2.cva(select_module.default.trigger, {
11
14
  variants: {
12
15
  size: {
13
- small: select_module.default["trigger-small"],
14
- medium: select_module.default["trigger-medium"],
16
+ small: select_module.default['trigger-small'],
17
+ medium: select_module.default['trigger-medium']
15
18
  },
16
19
  variant: {
17
- outline: select_module.default["trigger-outline"],
18
- text: select_module.default["trigger-text"],
19
- },
20
+ outline: select_module.default['trigger-outline'],
21
+ text: select_module.default['trigger-text']
22
+ }
20
23
  },
21
24
  defaultVariants: {
22
- size: "medium",
23
- variant: "outline",
24
- },
25
+ size: 'medium',
26
+ variant: 'outline'
27
+ }
28
+ });
29
+ const SelectTrigger = React.forwardRef(({ size, variant, className, children, iconProps = {}, asChild, 'aria-label': ariaLabel, ...props }, ref) => {
30
+ const { multiple, autocomplete } = selectRoot.useSelectContext();
31
+ return (jsxRuntime.jsxRuntimeExports.jsxs(index.Trigger, { "data-multiselectable": multiple ? true : undefined, ref: ref, className: trigger({ size, variant, className }), "aria-label": ariaLabel || 'Select option', "aria-haspopup": autocomplete ? 'dialog' : 'listbox', ...props, children: [jsxRuntime.jsxRuntimeExports.jsx(flex.Flex, { className: select_module.default.triggerContent, align: 'center', gap: 2, children: asChild ? jsxRuntime.jsxRuntimeExports.jsx(index$1.Slot, { children: children }) : children }), jsxRuntime.jsxRuntimeExports.jsx(index.Icon, { asChild: true, children: jsxRuntime.jsxRuntimeExports.jsx(reactIcons_esm.ChevronDownIcon, { className: select_module.default.triggerIcon, "aria-hidden": 'true', ...iconProps }) })] }));
25
32
  });
26
- const SelectTrigger = React.forwardRef(({ size, variant, className, children, iconProps = {}, "aria-label": ariaLabel, style, stopPropagation = false, ...props }, ref) => (jsxRuntime.jsxRuntimeExports.jsxs(index.Trigger, { ref: ref, className: trigger({ size, variant, className }), "aria-label": ariaLabel || "Select option", style: {
27
- ...style,
28
- display: "flex",
29
- justifyContent: "space-between",
30
- }, onPointerDown: e => {
31
- if (stopPropagation) {
32
- e.stopPropagation();
33
- }
34
- }, ...props, children: [jsxRuntime.jsxRuntimeExports.jsx("div", { className: select_module.default.triggerContent, children: children }), jsxRuntime.jsxRuntimeExports.jsx(index.Icon, { asChild: true, children: jsxRuntime.jsxRuntimeExports.jsx(reactIcons_esm.ChevronDownIcon, { className: select_module.default.triggerIcon, "aria-hidden": "true", ...iconProps }) })] })));
35
33
  SelectTrigger.displayName = index.Trigger.displayName;
36
34
 
37
35
  exports.SelectTrigger = SelectTrigger;
@@ -1 +1 @@
1
- {"version":3,"file":"select-trigger.cjs","sources":["../../../../v1/components/select/select-trigger.tsx"],"sourcesContent":["import { ElementRef, forwardRef, SVGAttributes } from \"react\";\nimport { ChevronDownIcon } from \"@radix-ui/react-icons\";\nimport * as SelectPrimitive from \"@radix-ui/react-select\";\nimport { cva, VariantProps } from \"class-variance-authority\";\nimport styles from \"./select.module.css\";\n\nexport interface AriaProps {\n \"aria-label\"?: string;\n \"aria-describedby\"?: string;\n \"aria-required\"?: boolean;\n \"aria-invalid\"?: boolean;\n}\n\nexport interface TriggerStyleProps {\n style?: React.CSSProperties;\n className?: string;\n stopPropagation?: boolean;\n}\n\nexport interface IconProps extends SVGAttributes<SVGElement> {\n children?: never;\n color?: string;\n}\n\nconst trigger = cva(styles.trigger, {\n variants: {\n size: {\n small: styles[\"trigger-small\"],\n medium: styles[\"trigger-medium\"],\n },\n variant: {\n outline: styles[\"trigger-outline\"],\n text: styles[\"trigger-text\"],\n },\n },\n defaultVariants: {\n size: \"medium\",\n variant: \"outline\",\n },\n});\n\ntype SelectTriggerProps = SelectPrimitive.SelectTriggerProps &\n VariantProps<typeof trigger> & {\n iconProps?: IconProps;\n } & AriaProps &\n TriggerStyleProps;\n\nexport const SelectTrigger = forwardRef<\n ElementRef<typeof SelectPrimitive.Trigger>,\n SelectTriggerProps\n>(\n (\n {\n size,\n variant,\n className,\n children,\n iconProps = {},\n \"aria-label\": ariaLabel,\n style,\n stopPropagation = false,\n ...props\n },\n ref,\n ) => (\n <SelectPrimitive.Trigger\n ref={ref}\n className={trigger({ size, variant, className })}\n aria-label={ariaLabel || \"Select option\"}\n style={{\n ...style,\n display: \"flex\",\n justifyContent: \"space-between\",\n }}\n onPointerDown={e => {\n if (stopPropagation) {\n e.stopPropagation();\n }\n }}\n {...props}>\n <div className={styles.triggerContent}>{children}</div>\n <SelectPrimitive.Icon asChild>\n <ChevronDownIcon\n className={styles.triggerIcon}\n aria-hidden=\"true\"\n {...iconProps}\n />\n </SelectPrimitive.Icon>\n </SelectPrimitive.Trigger>\n ),\n);\nSelectTrigger.displayName = SelectPrimitive.Trigger.displayName;\n"],"names":["cva","styles","forwardRef","_jsxs","SelectPrimitive.Trigger","_jsx","SelectPrimitive.Icon","ChevronDownIcon"],"mappings":";;;;;;;;;AAwBA,MAAM,OAAO,GAAGA,WAAG,CAACC,qBAAM,CAAC,OAAO,EAAE;AAClC,IAAA,QAAQ,EAAE;AACR,QAAA,IAAI,EAAE;AACJ,YAAA,KAAK,EAAEA,qBAAM,CAAC,eAAe,CAAC;AAC9B,YAAA,MAAM,EAAEA,qBAAM,CAAC,gBAAgB,CAAC;AACjC,SAAA;AACD,QAAA,OAAO,EAAE;AACP,YAAA,OAAO,EAAEA,qBAAM,CAAC,iBAAiB,CAAC;AAClC,YAAA,IAAI,EAAEA,qBAAM,CAAC,cAAc,CAAC;AAC7B,SAAA;AACF,KAAA;AACD,IAAA,eAAe,EAAE;AACf,QAAA,IAAI,EAAE,QAAQ;AACd,QAAA,OAAO,EAAE,SAAS;AACnB,KAAA;AACF,CAAA,CAAC,CAAC;AAQI,MAAM,aAAa,GAAGC,gBAAU,CAIrC,CACE,EACE,IAAI,EACJ,OAAO,EACP,SAAS,EACT,QAAQ,EACR,SAAS,GAAG,EAAE,EACd,YAAY,EAAE,SAAS,EACvB,KAAK,EACL,eAAe,GAAG,KAAK,EACvB,GAAG,KAAK,EACT,EACD,GAAG,MAEHC,iCAAC,CAAAC,aAAuB,EACtB,EAAA,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,OAAO,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,EAAA,YAAA,EACpC,SAAS,IAAI,eAAe,EACxC,KAAK,EAAE;AACL,QAAA,GAAG,KAAK;AACR,QAAA,OAAO,EAAE,MAAM;AACf,QAAA,cAAc,EAAE,eAAe;AAChC,KAAA,EACD,aAAa,EAAE,CAAC,IAAG;QACjB,IAAI,eAAe,EAAE;YACnB,CAAC,CAAC,eAAe,EAAE,CAAC;SACrB;AACH,KAAC,KACG,KAAK,EAAA,QAAA,EAAA,CACTC,gCAAK,CAAA,KAAA,EAAA,EAAA,SAAS,EAAEJ,qBAAM,CAAC,cAAc,EAAA,QAAA,EAAG,QAAQ,EAAO,CAAA,EACvDI,gCAAC,CAAAC,UAAoB,EAAA,EAAC,OAAO,EAAA,IAAA,EAAA,QAAA,EAC3BD,iCAACE,8BAAe,EAAA,EACd,SAAS,EAAEN,qBAAM,CAAC,WAAW,EACjB,aAAA,EAAA,MAAM,KACd,SAAS,EAAA,CACb,GACmB,CACC,EAAA,CAAA,CAC3B,EACD;AACF,aAAa,CAAC,WAAW,GAAGG,aAAuB,CAAC,WAAW;;;;"}
1
+ {"version":3,"file":"select-trigger.cjs","sources":["../../../../v1/components/select/select-trigger.tsx"],"sourcesContent":["import { ChevronDownIcon } from '@radix-ui/react-icons';\nimport * as SelectPrimitive from '@radix-ui/react-select';\nimport { Slot } from '@radix-ui/react-slot';\nimport { VariantProps, cva } from 'class-variance-authority';\nimport { ElementRef, SVGAttributes, forwardRef } from 'react';\nimport { Flex } from '../flex';\nimport { useSelectContext } from './select-root';\nimport styles from './select.module.css';\n\nexport interface IconProps extends SVGAttributes<SVGElement> {\n children?: never;\n color?: string;\n}\n\nconst trigger = cva(styles.trigger, {\n variants: {\n size: {\n small: styles['trigger-small'],\n medium: styles['trigger-medium']\n },\n variant: {\n outline: styles['trigger-outline'],\n text: styles['trigger-text']\n }\n },\n defaultVariants: {\n size: 'medium',\n variant: 'outline'\n }\n});\n\nexport interface SelectTriggerProps\n extends SelectPrimitive.SelectTriggerProps,\n VariantProps<typeof trigger> {\n iconProps?: IconProps;\n}\n\nexport const SelectTrigger = forwardRef<\n ElementRef<typeof SelectPrimitive.Trigger>,\n SelectTriggerProps\n>(\n (\n {\n size,\n variant,\n className,\n children,\n iconProps = {},\n asChild,\n 'aria-label': ariaLabel,\n ...props\n },\n ref\n ) => {\n const { multiple, autocomplete } = useSelectContext();\n return (\n <SelectPrimitive.Trigger\n data-multiselectable={multiple ? true : undefined}\n ref={ref}\n className={trigger({ size, variant, className })}\n aria-label={ariaLabel || 'Select option'}\n aria-haspopup={autocomplete ? 'dialog' : 'listbox'}\n {...props}\n >\n <Flex className={styles.triggerContent} align='center' gap={2}>\n {asChild ? <Slot>{children}</Slot> : children}\n </Flex>\n <SelectPrimitive.Icon asChild>\n <ChevronDownIcon\n className={styles.triggerIcon}\n aria-hidden='true'\n {...iconProps}\n />\n </SelectPrimitive.Icon>\n </SelectPrimitive.Trigger>\n );\n }\n);\nSelectTrigger.displayName = SelectPrimitive.Trigger.displayName;\n"],"names":["cva","styles","forwardRef","useSelectContext","_jsxs","SelectPrimitive.Trigger","_jsx","Flex","Slot","SelectPrimitive.Icon","ChevronDownIcon"],"mappings":";;;;;;;;;;;;AAcA,MAAM,OAAO,GAAGA,WAAG,CAACC,qBAAM,CAAC,OAAO,EAAE;AAClC,IAAA,QAAQ,EAAE;AACR,QAAA,IAAI,EAAE;AACJ,YAAA,KAAK,EAAEA,qBAAM,CAAC,eAAe,CAAC;AAC9B,YAAA,MAAM,EAAEA,qBAAM,CAAC,gBAAgB,CAAC;AACjC,SAAA;AACD,QAAA,OAAO,EAAE;AACP,YAAA,OAAO,EAAEA,qBAAM,CAAC,iBAAiB,CAAC;AAClC,YAAA,IAAI,EAAEA,qBAAM,CAAC,cAAc,CAAC;AAC7B,SAAA;AACF,KAAA;AACD,IAAA,eAAe,EAAE;AACf,QAAA,IAAI,EAAE,QAAQ;AACd,QAAA,OAAO,EAAE,SAAS;AACnB,KAAA;AACF,CAAA,CAAC,CAAC;AAQI,MAAM,aAAa,GAAGC,gBAAU,CAIrC,CACE,EACE,IAAI,EACJ,OAAO,EACP,SAAS,EACT,QAAQ,EACR,SAAS,GAAG,EAAE,EACd,OAAO,EACP,YAAY,EAAE,SAAS,EACvB,GAAG,KAAK,EACT,EACD,GAAG,KACD;IACF,MAAM,EAAE,QAAQ,EAAE,YAAY,EAAE,GAAGC,2BAAgB,EAAE,CAAC;IACtD,QACEC,kCAACC,aAAuB,EACA,EAAA,sBAAA,EAAA,QAAQ,GAAG,IAAI,GAAG,SAAS,EACjD,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,OAAO,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,EACpC,YAAA,EAAA,SAAS,IAAI,eAAe,EACzB,eAAA,EAAA,YAAY,GAAG,QAAQ,GAAG,SAAS,EAC9C,GAAA,KAAK,EAET,QAAA,EAAA,CAAAC,gCAAA,CAACC,SAAI,EAAA,EAAC,SAAS,EAAEN,qBAAM,CAAC,cAAc,EAAE,KAAK,EAAC,QAAQ,EAAC,GAAG,EAAE,CAAC,YAC1D,OAAO,GAAGK,gCAAC,CAAAE,YAAI,cAAE,QAAQ,EAAA,CAAQ,GAAG,QAAQ,GACxC,EACPF,gCAAA,CAACG,UAAoB,IAAC,OAAO,EAAA,IAAA,EAAA,QAAA,EAC3BH,gCAAC,CAAAI,8BAAe,EACd,EAAA,SAAS,EAAET,qBAAM,CAAC,WAAW,EAAA,aAAA,EACjB,MAAM,EAAA,GACd,SAAS,EACb,CAAA,EAAA,CACmB,CACC,EAAA,CAAA,EAC1B;AACJ,CAAC,EACD;AACF,aAAa,CAAC,WAAW,GAAGI,aAAuB,CAAC,WAAW;;;;"}
@@ -1,25 +1,17 @@
1
- import { SVGAttributes } from "react";
2
- import * as SelectPrimitive from "@radix-ui/react-select";
3
- import { VariantProps } from "class-variance-authority";
4
- export interface AriaProps {
5
- "aria-label"?: string;
6
- "aria-describedby"?: string;
7
- "aria-required"?: boolean;
8
- "aria-invalid"?: boolean;
9
- }
10
- export interface TriggerStyleProps {
11
- style?: React.CSSProperties;
12
- className?: string;
13
- stopPropagation?: boolean;
14
- }
1
+ import * as SelectPrimitive from '@radix-ui/react-select';
2
+ import { VariantProps } from 'class-variance-authority';
3
+ import { SVGAttributes } from 'react';
15
4
  export interface IconProps extends SVGAttributes<SVGElement> {
16
5
  children?: never;
17
6
  color?: string;
18
7
  }
19
- export declare const SelectTrigger: import("react").ForwardRefExoticComponent<SelectPrimitive.SelectTriggerProps & VariantProps<(props?: ({
8
+ declare const trigger: (props?: ({
20
9
  size?: "small" | "medium" | null | undefined;
21
10
  variant?: "text" | "outline" | null | undefined;
22
- } & import("class-variance-authority/types").ClassProp) | undefined) => string> & {
23
- iconProps?: IconProps | undefined;
24
- } & AriaProps & TriggerStyleProps & import("react").RefAttributes<HTMLButtonElement>>;
11
+ } & import("class-variance-authority/types").ClassProp) | undefined) => string;
12
+ export interface SelectTriggerProps extends SelectPrimitive.SelectTriggerProps, VariantProps<typeof trigger> {
13
+ iconProps?: IconProps;
14
+ }
15
+ export declare const SelectTrigger: import("react").ForwardRefExoticComponent<SelectTriggerProps & import("react").RefAttributes<HTMLButtonElement>>;
16
+ export {};
25
17
  //# sourceMappingURL=select-trigger.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"select-trigger.d.ts","sourceRoot":"","sources":["../../../../v1/components/select/select-trigger.tsx"],"names":[],"mappings":"AAAA,OAAO,EAA0B,aAAa,EAAE,MAAM,OAAO,CAAC;AAE9D,OAAO,KAAK,eAAe,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAO,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAG7D,MAAM,WAAW,SAAS;IACxB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED,MAAM,WAAW,iBAAiB;IAChC,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED,MAAM,WAAW,SAAU,SAAQ,aAAa,CAAC,UAAU,CAAC;IAC1D,QAAQ,CAAC,EAAE,KAAK,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAyBD,eAAO,MAAM,aAAa;;;;;qFA2CzB,CAAC"}
1
+ {"version":3,"file":"select-trigger.d.ts","sourceRoot":"","sources":["../../../../v1/components/select/select-trigger.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,eAAe,MAAM,wBAAwB,CAAC;AAE1D,OAAO,EAAE,YAAY,EAAO,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAc,aAAa,EAAc,MAAM,OAAO,CAAC;AAK9D,MAAM,WAAW,SAAU,SAAQ,aAAa,CAAC,UAAU,CAAC;IAC1D,QAAQ,CAAC,EAAE,KAAK,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,QAAA,MAAM,OAAO;;;8EAeX,CAAC;AAEH,MAAM,WAAW,kBACf,SAAQ,eAAe,CAAC,kBAAkB,EACxC,YAAY,CAAC,OAAO,OAAO,CAAC;IAC9B,SAAS,CAAC,EAAE,SAAS,CAAC;CACvB;AAED,eAAO,MAAM,aAAa,kHAwCzB,CAAC"}
@@ -1,35 +1,33 @@
1
1
  import { j as jsxRuntimeExports } from '../../node_modules/.pnpm/react@18.2.0/node_modules/react/jsx-runtime.js';
2
- import { forwardRef } from 'react';
3
2
  import { ChevronDownIcon } from '../../node_modules/.pnpm/@radix-ui_react-icons@1.3.0_react@18.2.0/node_modules/@radix-ui/react-icons/dist/react-icons.esm.js';
4
3
  import { Trigger, Icon } from '../../node_modules/.pnpm/@radix-ui_react-select@2.2.4_@types_react-dom@18.0.11_@types_react@18.2.12_react-dom@18.3.1_react@18.2.0__react@18.2.0/node_modules/@radix-ui/react-select/dist/index.js';
4
+ import { Slot as $5e63c961fc1ce211$export$8c6ed5c666ac1360 } from '../../node_modules/.pnpm/@radix-ui_react-slot@1.0.2_@types_react@18.2.12_react@18.2.0/node_modules/@radix-ui/react-slot/dist/index.js';
5
5
  import { cva } from '../../node_modules/.pnpm/class-variance-authority@0.7.1/node_modules/class-variance-authority/dist/index.js';
6
+ import { forwardRef } from 'react';
7
+ import { Flex } from '../flex/flex.js';
8
+ import { useSelectContext } from './select-root.js';
6
9
  import styles from './select.module.css.js';
7
10
 
8
11
  const trigger = cva(styles.trigger, {
9
12
  variants: {
10
13
  size: {
11
- small: styles["trigger-small"],
12
- medium: styles["trigger-medium"],
14
+ small: styles['trigger-small'],
15
+ medium: styles['trigger-medium']
13
16
  },
14
17
  variant: {
15
- outline: styles["trigger-outline"],
16
- text: styles["trigger-text"],
17
- },
18
+ outline: styles['trigger-outline'],
19
+ text: styles['trigger-text']
20
+ }
18
21
  },
19
22
  defaultVariants: {
20
- size: "medium",
21
- variant: "outline",
22
- },
23
+ size: 'medium',
24
+ variant: 'outline'
25
+ }
26
+ });
27
+ const SelectTrigger = forwardRef(({ size, variant, className, children, iconProps = {}, asChild, 'aria-label': ariaLabel, ...props }, ref) => {
28
+ const { multiple, autocomplete } = useSelectContext();
29
+ return (jsxRuntimeExports.jsxs(Trigger, { "data-multiselectable": multiple ? true : undefined, ref: ref, className: trigger({ size, variant, className }), "aria-label": ariaLabel || 'Select option', "aria-haspopup": autocomplete ? 'dialog' : 'listbox', ...props, children: [jsxRuntimeExports.jsx(Flex, { className: styles.triggerContent, align: 'center', gap: 2, children: asChild ? jsxRuntimeExports.jsx($5e63c961fc1ce211$export$8c6ed5c666ac1360, { children: children }) : children }), jsxRuntimeExports.jsx(Icon, { asChild: true, children: jsxRuntimeExports.jsx(ChevronDownIcon, { className: styles.triggerIcon, "aria-hidden": 'true', ...iconProps }) })] }));
23
30
  });
24
- const SelectTrigger = forwardRef(({ size, variant, className, children, iconProps = {}, "aria-label": ariaLabel, style, stopPropagation = false, ...props }, ref) => (jsxRuntimeExports.jsxs(Trigger, { ref: ref, className: trigger({ size, variant, className }), "aria-label": ariaLabel || "Select option", style: {
25
- ...style,
26
- display: "flex",
27
- justifyContent: "space-between",
28
- }, onPointerDown: e => {
29
- if (stopPropagation) {
30
- e.stopPropagation();
31
- }
32
- }, ...props, children: [jsxRuntimeExports.jsx("div", { className: styles.triggerContent, children: children }), jsxRuntimeExports.jsx(Icon, { asChild: true, children: jsxRuntimeExports.jsx(ChevronDownIcon, { className: styles.triggerIcon, "aria-hidden": "true", ...iconProps }) })] })));
33
31
  SelectTrigger.displayName = Trigger.displayName;
34
32
 
35
33
  export { SelectTrigger };
@@ -1 +1 @@
1
- {"version":3,"file":"select-trigger.js","sources":["../../../../v1/components/select/select-trigger.tsx"],"sourcesContent":["import { ElementRef, forwardRef, SVGAttributes } from \"react\";\nimport { ChevronDownIcon } from \"@radix-ui/react-icons\";\nimport * as SelectPrimitive from \"@radix-ui/react-select\";\nimport { cva, VariantProps } from \"class-variance-authority\";\nimport styles from \"./select.module.css\";\n\nexport interface AriaProps {\n \"aria-label\"?: string;\n \"aria-describedby\"?: string;\n \"aria-required\"?: boolean;\n \"aria-invalid\"?: boolean;\n}\n\nexport interface TriggerStyleProps {\n style?: React.CSSProperties;\n className?: string;\n stopPropagation?: boolean;\n}\n\nexport interface IconProps extends SVGAttributes<SVGElement> {\n children?: never;\n color?: string;\n}\n\nconst trigger = cva(styles.trigger, {\n variants: {\n size: {\n small: styles[\"trigger-small\"],\n medium: styles[\"trigger-medium\"],\n },\n variant: {\n outline: styles[\"trigger-outline\"],\n text: styles[\"trigger-text\"],\n },\n },\n defaultVariants: {\n size: \"medium\",\n variant: \"outline\",\n },\n});\n\ntype SelectTriggerProps = SelectPrimitive.SelectTriggerProps &\n VariantProps<typeof trigger> & {\n iconProps?: IconProps;\n } & AriaProps &\n TriggerStyleProps;\n\nexport const SelectTrigger = forwardRef<\n ElementRef<typeof SelectPrimitive.Trigger>,\n SelectTriggerProps\n>(\n (\n {\n size,\n variant,\n className,\n children,\n iconProps = {},\n \"aria-label\": ariaLabel,\n style,\n stopPropagation = false,\n ...props\n },\n ref,\n ) => (\n <SelectPrimitive.Trigger\n ref={ref}\n className={trigger({ size, variant, className })}\n aria-label={ariaLabel || \"Select option\"}\n style={{\n ...style,\n display: \"flex\",\n justifyContent: \"space-between\",\n }}\n onPointerDown={e => {\n if (stopPropagation) {\n e.stopPropagation();\n }\n }}\n {...props}>\n <div className={styles.triggerContent}>{children}</div>\n <SelectPrimitive.Icon asChild>\n <ChevronDownIcon\n className={styles.triggerIcon}\n aria-hidden=\"true\"\n {...iconProps}\n />\n </SelectPrimitive.Icon>\n </SelectPrimitive.Trigger>\n ),\n);\nSelectTrigger.displayName = SelectPrimitive.Trigger.displayName;\n"],"names":["_jsxs","SelectPrimitive.Trigger","_jsx","SelectPrimitive.Icon"],"mappings":";;;;;;;AAwBA,MAAM,OAAO,GAAG,GAAG,CAAC,MAAM,CAAC,OAAO,EAAE;AAClC,IAAA,QAAQ,EAAE;AACR,QAAA,IAAI,EAAE;AACJ,YAAA,KAAK,EAAE,MAAM,CAAC,eAAe,CAAC;AAC9B,YAAA,MAAM,EAAE,MAAM,CAAC,gBAAgB,CAAC;AACjC,SAAA;AACD,QAAA,OAAO,EAAE;AACP,YAAA,OAAO,EAAE,MAAM,CAAC,iBAAiB,CAAC;AAClC,YAAA,IAAI,EAAE,MAAM,CAAC,cAAc,CAAC;AAC7B,SAAA;AACF,KAAA;AACD,IAAA,eAAe,EAAE;AACf,QAAA,IAAI,EAAE,QAAQ;AACd,QAAA,OAAO,EAAE,SAAS;AACnB,KAAA;AACF,CAAA,CAAC,CAAC;AAQI,MAAM,aAAa,GAAG,UAAU,CAIrC,CACE,EACE,IAAI,EACJ,OAAO,EACP,SAAS,EACT,QAAQ,EACR,SAAS,GAAG,EAAE,EACd,YAAY,EAAE,SAAS,EACvB,KAAK,EACL,eAAe,GAAG,KAAK,EACvB,GAAG,KAAK,EACT,EACD,GAAG,MAEHA,sBAAC,CAAAC,OAAuB,EACtB,EAAA,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,OAAO,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,EAAA,YAAA,EACpC,SAAS,IAAI,eAAe,EACxC,KAAK,EAAE;AACL,QAAA,GAAG,KAAK;AACR,QAAA,OAAO,EAAE,MAAM;AACf,QAAA,cAAc,EAAE,eAAe;AAChC,KAAA,EACD,aAAa,EAAE,CAAC,IAAG;QACjB,IAAI,eAAe,EAAE;YACnB,CAAC,CAAC,eAAe,EAAE,CAAC;SACrB;AACH,KAAC,KACG,KAAK,EAAA,QAAA,EAAA,CACTC,qBAAK,CAAA,KAAA,EAAA,EAAA,SAAS,EAAE,MAAM,CAAC,cAAc,EAAA,QAAA,EAAG,QAAQ,EAAO,CAAA,EACvDA,qBAAC,CAAAC,IAAoB,EAAA,EAAC,OAAO,EAAA,IAAA,EAAA,QAAA,EAC3BD,sBAAC,eAAe,EAAA,EACd,SAAS,EAAE,MAAM,CAAC,WAAW,EACjB,aAAA,EAAA,MAAM,KACd,SAAS,EAAA,CACb,GACmB,CACC,EAAA,CAAA,CAC3B,EACD;AACF,aAAa,CAAC,WAAW,GAAGD,OAAuB,CAAC,WAAW;;;;"}
1
+ {"version":3,"file":"select-trigger.js","sources":["../../../../v1/components/select/select-trigger.tsx"],"sourcesContent":["import { ChevronDownIcon } from '@radix-ui/react-icons';\nimport * as SelectPrimitive from '@radix-ui/react-select';\nimport { Slot } from '@radix-ui/react-slot';\nimport { VariantProps, cva } from 'class-variance-authority';\nimport { ElementRef, SVGAttributes, forwardRef } from 'react';\nimport { Flex } from '../flex';\nimport { useSelectContext } from './select-root';\nimport styles from './select.module.css';\n\nexport interface IconProps extends SVGAttributes<SVGElement> {\n children?: never;\n color?: string;\n}\n\nconst trigger = cva(styles.trigger, {\n variants: {\n size: {\n small: styles['trigger-small'],\n medium: styles['trigger-medium']\n },\n variant: {\n outline: styles['trigger-outline'],\n text: styles['trigger-text']\n }\n },\n defaultVariants: {\n size: 'medium',\n variant: 'outline'\n }\n});\n\nexport interface SelectTriggerProps\n extends SelectPrimitive.SelectTriggerProps,\n VariantProps<typeof trigger> {\n iconProps?: IconProps;\n}\n\nexport const SelectTrigger = forwardRef<\n ElementRef<typeof SelectPrimitive.Trigger>,\n SelectTriggerProps\n>(\n (\n {\n size,\n variant,\n className,\n children,\n iconProps = {},\n asChild,\n 'aria-label': ariaLabel,\n ...props\n },\n ref\n ) => {\n const { multiple, autocomplete } = useSelectContext();\n return (\n <SelectPrimitive.Trigger\n data-multiselectable={multiple ? true : undefined}\n ref={ref}\n className={trigger({ size, variant, className })}\n aria-label={ariaLabel || 'Select option'}\n aria-haspopup={autocomplete ? 'dialog' : 'listbox'}\n {...props}\n >\n <Flex className={styles.triggerContent} align='center' gap={2}>\n {asChild ? <Slot>{children}</Slot> : children}\n </Flex>\n <SelectPrimitive.Icon asChild>\n <ChevronDownIcon\n className={styles.triggerIcon}\n aria-hidden='true'\n {...iconProps}\n />\n </SelectPrimitive.Icon>\n </SelectPrimitive.Trigger>\n );\n }\n);\nSelectTrigger.displayName = SelectPrimitive.Trigger.displayName;\n"],"names":["_jsxs","SelectPrimitive.Trigger","_jsx","Slot","SelectPrimitive.Icon"],"mappings":";;;;;;;;;;AAcA,MAAM,OAAO,GAAG,GAAG,CAAC,MAAM,CAAC,OAAO,EAAE;AAClC,IAAA,QAAQ,EAAE;AACR,QAAA,IAAI,EAAE;AACJ,YAAA,KAAK,EAAE,MAAM,CAAC,eAAe,CAAC;AAC9B,YAAA,MAAM,EAAE,MAAM,CAAC,gBAAgB,CAAC;AACjC,SAAA;AACD,QAAA,OAAO,EAAE;AACP,YAAA,OAAO,EAAE,MAAM,CAAC,iBAAiB,CAAC;AAClC,YAAA,IAAI,EAAE,MAAM,CAAC,cAAc,CAAC;AAC7B,SAAA;AACF,KAAA;AACD,IAAA,eAAe,EAAE;AACf,QAAA,IAAI,EAAE,QAAQ;AACd,QAAA,OAAO,EAAE,SAAS;AACnB,KAAA;AACF,CAAA,CAAC,CAAC;AAQI,MAAM,aAAa,GAAG,UAAU,CAIrC,CACE,EACE,IAAI,EACJ,OAAO,EACP,SAAS,EACT,QAAQ,EACR,SAAS,GAAG,EAAE,EACd,OAAO,EACP,YAAY,EAAE,SAAS,EACvB,GAAG,KAAK,EACT,EACD,GAAG,KACD;IACF,MAAM,EAAE,QAAQ,EAAE,YAAY,EAAE,GAAG,gBAAgB,EAAE,CAAC;IACtD,QACEA,uBAACC,OAAuB,EACA,EAAA,sBAAA,EAAA,QAAQ,GAAG,IAAI,GAAG,SAAS,EACjD,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,OAAO,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,EACpC,YAAA,EAAA,SAAS,IAAI,eAAe,EACzB,eAAA,EAAA,YAAY,GAAG,QAAQ,GAAG,SAAS,EAC9C,GAAA,KAAK,EAET,QAAA,EAAA,CAAAC,qBAAA,CAAC,IAAI,EAAA,EAAC,SAAS,EAAE,MAAM,CAAC,cAAc,EAAE,KAAK,EAAC,QAAQ,EAAC,GAAG,EAAE,CAAC,YAC1D,OAAO,GAAGA,qBAAC,CAAAC,yCAAI,cAAE,QAAQ,EAAA,CAAQ,GAAG,QAAQ,GACxC,EACPD,qBAAA,CAACE,IAAoB,IAAC,OAAO,EAAA,IAAA,EAAA,QAAA,EAC3BF,qBAAC,CAAA,eAAe,EACd,EAAA,SAAS,EAAE,MAAM,CAAC,WAAW,EAAA,aAAA,EACjB,MAAM,EAAA,GACd,SAAS,EACb,CAAA,EAAA,CACmB,CACC,EAAA,CAAA,EAC1B;AACJ,CAAC,EACD;AACF,aAAa,CAAC,WAAW,GAAGD,OAAuB,CAAC,WAAW;;;;"}
@@ -1,18 +1,34 @@
1
1
  'use strict';
2
2
 
3
3
  var jsxRuntime = require('../../node_modules/.pnpm/react@18.2.0/node_modules/react/jsx-runtime.cjs');
4
+ var index = require('../../node_modules/.pnpm/@radix-ui_react-select@2.2.4_@types_react-dom@18.0.11_@types_react@18.2.12_react-dom@18.3.1_react@18.2.0__react@18.2.0/node_modules/@radix-ui/react-select/dist/index.cjs');
5
+ var index$1 = require('../../node_modules/.pnpm/class-variance-authority@0.7.1/node_modules/class-variance-authority/dist/index.cjs');
4
6
  var React = require('react');
5
- var index$1 = require('../../node_modules/.pnpm/@radix-ui_react-select@2.2.4_@types_react-dom@18.0.11_@types_react@18.2.12_react-dom@18.3.1_react@18.2.0__react@18.2.0/node_modules/@radix-ui/react-select/dist/index.cjs');
6
- var select_module = require('./select.module.css.cjs');
7
+ var selectMultipleValue = require('./select-multiple-value.cjs');
7
8
  var selectRoot = require('./select-root.cjs');
8
- var index = require('../../node_modules/.pnpm/class-variance-authority@0.7.1/node_modules/class-variance-authority/dist/index.cjs');
9
+ var select_module = require('./select.module.css.cjs');
9
10
 
10
11
  const SelectValue = React.forwardRef(({ children, ...props }, ref) => {
11
- const { value } = selectRoot.useSelectContext();
12
- const leadingIcon = value?.icon;
13
- return (jsxRuntime.jsxRuntimeExports.jsxs("div", { className: index.cx(select_module.default.valueContent), children: [leadingIcon && jsxRuntime.jsxRuntimeExports.jsx("div", { className: select_module.default.leadingIcon, children: leadingIcon }), jsxRuntime.jsxRuntimeExports.jsx(index$1.Value, { ref: ref, ...props, children: children })] }));
12
+ const { value, items, multiple } = selectRoot.useSelectContext();
13
+ const item = React.useMemo(() => {
14
+ if (!value)
15
+ return undefined;
16
+ if (multiple && Array.isArray(value)) {
17
+ const itemValues = value.map(v => items[v]);
18
+ if (itemValues.length === 1)
19
+ return itemValues[0];
20
+ return itemValues;
21
+ }
22
+ return items[value];
23
+ }, [value, items, multiple]);
24
+ if (children) {
25
+ return (jsxRuntime.jsxRuntimeExports.jsx(index.Value, { ref: ref, ...props, children: typeof children === 'function' ? children(item) : children }));
26
+ }
27
+ if (Array.isArray(item))
28
+ return jsxRuntime.jsxRuntimeExports.jsx(selectMultipleValue.SelectMultipleValue, { data: item, ref: ref, ...props });
29
+ return (jsxRuntime.jsxRuntimeExports.jsx(index.Value, { ref: ref, ...props, children: jsxRuntime.jsxRuntimeExports.jsxs("div", { className: index$1.cx(select_module.default.valueContent), children: [typeof item?.children === 'string' && item?.leadingIcon && (jsxRuntime.jsxRuntimeExports.jsx("div", { className: select_module.default.itemIcon, children: item.leadingIcon })), item?.children ?? value] }) }));
14
30
  });
15
- SelectValue.displayName = index$1.Value.displayName;
31
+ SelectValue.displayName = index.Value.displayName;
16
32
 
17
33
  exports.SelectValue = SelectValue;
18
34
  //# sourceMappingURL=select-value.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"select-value.cjs","sources":["../../../../v1/components/select/select-value.tsx"],"sourcesContent":["import { ElementRef, forwardRef } from \"react\";\nimport * as SelectPrimitive from \"@radix-ui/react-select\";\nimport styles from \"./select.module.css\";\nimport { useSelectContext } from \"./select-root\";\nimport { cx } from \"class-variance-authority\";\n\nexport const SelectValue = forwardRef<\n ElementRef<typeof SelectPrimitive.Value>,\n SelectPrimitive.SelectValueProps\n>(({ children, ...props }, ref) => {\n const { value } = useSelectContext();\n const leadingIcon = value?.icon;\n\n return (\n <div className={cx(styles.valueContent)}>\n {leadingIcon && <div className={styles.leadingIcon}>{leadingIcon}</div>}\n <SelectPrimitive.Value ref={ref} {...props}>\n {children}\n </SelectPrimitive.Value>\n </div>\n );\n});\nSelectValue.displayName = SelectPrimitive.Value.displayName;\n"],"names":["forwardRef","useSelectContext","_jsxs","cx","styles","_jsx","SelectPrimitive.Value"],"mappings":";;;;;;;;;AAMa,MAAA,WAAW,GAAGA,gBAAU,CAGnC,CAAC,EAAE,QAAQ,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,KAAI;AAChC,IAAA,MAAM,EAAE,KAAK,EAAE,GAAGC,2BAAgB,EAAE,CAAC;AACrC,IAAA,MAAM,WAAW,GAAG,KAAK,EAAE,IAAI,CAAC;AAEhC,IAAA,QACEC,iCAAK,CAAA,KAAA,EAAA,EAAA,SAAS,EAAEC,QAAE,CAACC,qBAAM,CAAC,YAAY,CAAC,aACpC,WAAW,IAAIC,0CAAK,SAAS,EAAED,qBAAM,CAAC,WAAW,EAAG,QAAA,EAAA,WAAW,GAAO,EACvEC,gCAAA,CAACC,aAAqB,EAAC,EAAA,GAAG,EAAE,GAAG,KAAM,KAAK,EAAA,QAAA,EACvC,QAAQ,EACa,CAAA,CAAA,EAAA,CACpB,EACN;AACJ,CAAC,EAAE;AACH,WAAW,CAAC,WAAW,GAAGA,aAAqB,CAAC,WAAW;;;;"}
1
+ {"version":3,"file":"select-value.cjs","sources":["../../../../v1/components/select/select-value.tsx"],"sourcesContent":["import * as SelectPrimitive from '@radix-ui/react-select';\nimport { cx } from 'class-variance-authority';\nimport { ElementRef, ReactNode, forwardRef, useMemo } from 'react';\nimport { SelectMultipleValue } from './select-multiple-value';\nimport { useSelectContext } from './select-root';\nimport styles from './select.module.css';\nimport { ItemType } from './types';\n\ntype ValueType = Omit<ItemType, 'children'>;\n\ntype SelectValueProps = Omit<SelectPrimitive.SelectValueProps, 'children'> & {\n children?: ((value?: ValueType | ValueType[]) => ReactNode) | ReactNode;\n};\n\nexport const SelectValue = forwardRef<\n ElementRef<typeof SelectPrimitive.Value>,\n SelectValueProps\n>(({ children, ...props }, ref) => {\n const { value, items, multiple } = useSelectContext();\n\n const item = useMemo(() => {\n if (!value) return undefined;\n if (multiple && Array.isArray(value)) {\n const itemValues = value.map(v => items[v]);\n if (itemValues.length === 1) return itemValues[0];\n return itemValues;\n }\n return items[value as string];\n }, [value, items, multiple]);\n\n if (children) {\n return (\n <SelectPrimitive.Value ref={ref} {...props}>\n {typeof children === 'function' ? children(item) : children}\n </SelectPrimitive.Value>\n );\n }\n\n if (Array.isArray(item))\n return <SelectMultipleValue data={item} ref={ref} {...props} />;\n\n return (\n <SelectPrimitive.Value ref={ref} {...props}>\n <div className={cx(styles.valueContent)}>\n {typeof item?.children === 'string' && item?.leadingIcon && (\n <div className={styles.itemIcon}>{item.leadingIcon}</div>\n )}\n {item?.children ?? value}\n </div>\n </SelectPrimitive.Value>\n );\n});\nSelectValue.displayName = SelectPrimitive.Value.displayName;\n"],"names":["forwardRef","useSelectContext","useMemo","_jsx","SelectPrimitive.Value","SelectMultipleValue","_jsxs","cx","styles"],"mappings":";;;;;;;;;;AAca,MAAA,WAAW,GAAGA,gBAAU,CAGnC,CAAC,EAAE,QAAQ,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,KAAI;IAChC,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAGC,2BAAgB,EAAE,CAAC;AAEtD,IAAA,MAAM,IAAI,GAAGC,aAAO,CAAC,MAAK;AACxB,QAAA,IAAI,CAAC,KAAK;AAAE,YAAA,OAAO,SAAS,CAAC;QAC7B,IAAI,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;AACpC,YAAA,MAAM,UAAU,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AAC5C,YAAA,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC;AAAE,gBAAA,OAAO,UAAU,CAAC,CAAC,CAAC,CAAC;AAClD,YAAA,OAAO,UAAU,CAAC;SACnB;AACD,QAAA,OAAO,KAAK,CAAC,KAAe,CAAC,CAAC;KAC/B,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC;IAE7B,IAAI,QAAQ,EAAE;AACZ,QAAA,QACEC,gCAAA,CAACC,WAAqB,EAAA,EAAC,GAAG,EAAE,GAAG,EAAA,GAAM,KAAK,EAAA,QAAA,EACvC,OAAO,QAAQ,KAAK,UAAU,GAAG,QAAQ,CAAC,IAAI,CAAC,GAAG,QAAQ,EAAA,CACrC,EACxB;KACH;AAED,IAAA,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;AACrB,QAAA,OAAOD,gCAAC,CAAAE,uCAAmB,EAAC,EAAA,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAM,GAAA,KAAK,GAAI,CAAC;IAElE,QACEF,gCAAC,CAAAC,WAAqB,IAAC,GAAG,EAAE,GAAG,EAAA,GAAM,KAAK,EAAA,QAAA,EACxCE,2CAAK,SAAS,EAAEC,UAAE,CAACC,qBAAM,CAAC,YAAY,CAAC,EACpC,QAAA,EAAA,CAAA,OAAO,IAAI,EAAE,QAAQ,KAAK,QAAQ,IAAI,IAAI,EAAE,WAAW,KACtDL,gCAAK,CAAA,KAAA,EAAA,EAAA,SAAS,EAAEK,qBAAM,CAAC,QAAQ,EAAG,QAAA,EAAA,IAAI,CAAC,WAAW,EAAA,CAAO,CAC1D,EACA,IAAI,EAAE,QAAQ,IAAI,KAAK,CAAA,EAAA,CACpB,EACgB,CAAA,EACxB;AACJ,CAAC,EAAE;AACH,WAAW,CAAC,WAAW,GAAGJ,WAAqB,CAAC,WAAW;;;;"}