@raystack/apsara 0.46.0-rc.4 → 0.46.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (119) hide show
  1. package/dist/_virtual/index.cjs +2 -2
  2. package/dist/_virtual/index.js +2 -2
  3. package/dist/_virtual/index2.cjs +2 -2
  4. package/dist/_virtual/index2.js +2 -2
  5. package/dist/node_modules/.pnpm/react-is@16.13.1/node_modules/react-is/index.cjs +1 -1
  6. package/dist/node_modules/.pnpm/react-is@16.13.1/node_modules/react-is/index.js +1 -1
  7. package/dist/node_modules/.pnpm/use-sync-external-store@1.5.0_react@18.2.0/node_modules/use-sync-external-store/shim/index.cjs +1 -1
  8. package/dist/node_modules/.pnpm/use-sync-external-store@1.5.0_react@18.2.0/node_modules/use-sync-external-store/shim/index.js +1 -1
  9. package/dist/style.css +1 -1
  10. package/dist/v1/components/avatar/avatar.cjs +18 -2
  11. package/dist/v1/components/avatar/avatar.cjs.map +1 -1
  12. package/dist/v1/components/avatar/avatar.d.ts +2 -1
  13. package/dist/v1/components/avatar/avatar.d.ts.map +1 -1
  14. package/dist/v1/components/avatar/avatar.js +18 -3
  15. package/dist/v1/components/avatar/avatar.js.map +1 -1
  16. package/dist/v1/components/avatar/utils.cjs +14 -34
  17. package/dist/v1/components/avatar/utils.cjs.map +1 -1
  18. package/dist/v1/components/avatar/utils.d.ts +1 -4
  19. package/dist/v1/components/avatar/utils.d.ts.map +1 -1
  20. package/dist/v1/components/avatar/utils.js +15 -34
  21. package/dist/v1/components/avatar/utils.js.map +1 -1
  22. package/dist/v1/components/breadcrumb/breadcrumb.cjs +35 -19
  23. package/dist/v1/components/breadcrumb/breadcrumb.cjs.map +1 -1
  24. package/dist/v1/components/breadcrumb/breadcrumb.d.ts +15 -12
  25. package/dist/v1/components/breadcrumb/breadcrumb.d.ts.map +1 -1
  26. package/dist/v1/components/breadcrumb/breadcrumb.js +37 -21
  27. package/dist/v1/components/breadcrumb/breadcrumb.js.map +1 -1
  28. package/dist/v1/components/dropdown-menu/dropdown-menu-content.cjs +5 -5
  29. package/dist/v1/components/dropdown-menu/dropdown-menu-content.cjs.map +1 -1
  30. package/dist/v1/components/dropdown-menu/dropdown-menu-content.d.ts +3 -3
  31. package/dist/v1/components/dropdown-menu/dropdown-menu-content.d.ts.map +1 -1
  32. package/dist/v1/components/dropdown-menu/dropdown-menu-content.js +5 -5
  33. package/dist/v1/components/dropdown-menu/dropdown-menu-content.js.map +1 -1
  34. package/dist/v1/components/icon-button/icon-button.cjs +8 -7
  35. package/dist/v1/components/icon-button/icon-button.cjs.map +1 -1
  36. package/dist/v1/components/icon-button/icon-button.d.ts +1 -1
  37. package/dist/v1/components/icon-button/icon-button.d.ts.map +1 -1
  38. package/dist/v1/components/icon-button/icon-button.js +8 -7
  39. package/dist/v1/components/icon-button/icon-button.js.map +1 -1
  40. package/dist/v1/components/select/select-content.cjs +16 -7
  41. package/dist/v1/components/select/select-content.cjs.map +1 -1
  42. package/dist/v1/components/select/select-content.d.ts +1 -1
  43. package/dist/v1/components/select/select-content.d.ts.map +1 -1
  44. package/dist/v1/components/select/select-content.js +16 -7
  45. package/dist/v1/components/select/select-content.js.map +1 -1
  46. package/dist/v1/components/select/select-item.cjs +19 -18
  47. package/dist/v1/components/select/select-item.cjs.map +1 -1
  48. package/dist/v1/components/select/select-item.d.ts +1 -3
  49. package/dist/v1/components/select/select-item.d.ts.map +1 -1
  50. package/dist/v1/components/select/select-item.js +19 -18
  51. package/dist/v1/components/select/select-item.js.map +1 -1
  52. package/dist/v1/components/select/select-multiple-value.cjs +67 -0
  53. package/dist/v1/components/select/select-multiple-value.cjs.map +1 -0
  54. package/dist/v1/components/select/select-multiple-value.d.ts +8 -0
  55. package/dist/v1/components/select/select-multiple-value.d.ts.map +1 -0
  56. package/dist/v1/components/select/select-multiple-value.js +65 -0
  57. package/dist/v1/components/select/select-multiple-value.js.map +1 -0
  58. package/dist/v1/components/select/select-root.cjs +64 -22
  59. package/dist/v1/components/select/select-root.cjs.map +1 -1
  60. package/dist/v1/components/select/select-root.d.ts +25 -26
  61. package/dist/v1/components/select/select-root.d.ts.map +1 -1
  62. package/dist/v1/components/select/select-root.js +64 -22
  63. package/dist/v1/components/select/select-root.js.map +1 -1
  64. package/dist/v1/components/select/select-trigger.cjs +18 -20
  65. package/dist/v1/components/select/select-trigger.cjs.map +1 -1
  66. package/dist/v1/components/select/select-trigger.d.ts +10 -18
  67. package/dist/v1/components/select/select-trigger.d.ts.map +1 -1
  68. package/dist/v1/components/select/select-trigger.js +16 -18
  69. package/dist/v1/components/select/select-trigger.js.map +1 -1
  70. package/dist/v1/components/select/select-value.cjs +23 -7
  71. package/dist/v1/components/select/select-value.cjs.map +1 -1
  72. package/dist/v1/components/select/select-value.d.ts +8 -2
  73. package/dist/v1/components/select/select-value.d.ts.map +1 -1
  74. package/dist/v1/components/select/select-value.js +22 -6
  75. package/dist/v1/components/select/select-value.js.map +1 -1
  76. package/dist/v1/components/select/select.d.ts +11 -9
  77. package/dist/v1/components/select/select.d.ts.map +1 -1
  78. package/dist/v1/components/select/select.module.css.cjs +1 -1
  79. package/dist/v1/components/select/select.module.css.js +1 -1
  80. package/dist/v1/components/select/types.d.ts +7 -0
  81. package/dist/v1/components/select/types.d.ts.map +1 -0
  82. package/dist/v1/components/sidebar/sidebar.cjs +26 -26
  83. package/dist/v1/components/sidebar/sidebar.cjs.map +1 -1
  84. package/dist/v1/components/sidebar/sidebar.d.ts +8 -8
  85. package/dist/v1/components/sidebar/sidebar.d.ts.map +1 -1
  86. package/dist/v1/components/sidebar/sidebar.js +26 -26
  87. package/dist/v1/components/sidebar/sidebar.js.map +1 -1
  88. package/dist/v1/components/tooltip/tooltip.cjs +34 -12
  89. package/dist/v1/components/tooltip/tooltip.cjs.map +1 -1
  90. package/dist/v1/components/tooltip/tooltip.d.ts +16 -9
  91. package/dist/v1/components/tooltip/tooltip.d.ts.map +1 -1
  92. package/dist/v1/components/tooltip/tooltip.js +35 -13
  93. package/dist/v1/components/tooltip/tooltip.js.map +1 -1
  94. package/dist/v1/components/tooltip/tooltip.module.css.cjs +1 -1
  95. package/dist/v1/components/tooltip/tooltip.module.css.js +1 -1
  96. package/dist/v1/components/tooltip/utils.cjs +30 -0
  97. package/dist/v1/components/tooltip/utils.cjs.map +1 -0
  98. package/dist/v1/components/tooltip/utils.d.ts +10 -0
  99. package/dist/v1/components/tooltip/utils.d.ts.map +1 -0
  100. package/dist/v1/components/tooltip/utils.js +28 -0
  101. package/dist/v1/components/tooltip/utils.js.map +1 -0
  102. package/dist/v1/hooks/index.cjs +2 -0
  103. package/dist/v1/hooks/index.cjs.map +1 -1
  104. package/dist/v1/hooks/index.d.ts +2 -1
  105. package/dist/v1/hooks/index.d.ts.map +1 -1
  106. package/dist/v1/hooks/index.js +1 -0
  107. package/dist/v1/hooks/index.js.map +1 -1
  108. package/dist/v1/hooks/useMouse.cjs +53 -0
  109. package/dist/v1/hooks/useMouse.cjs.map +1 -0
  110. package/dist/v1/hooks/useMouse.d.ts +20 -0
  111. package/dist/v1/hooks/useMouse.d.ts.map +1 -0
  112. package/dist/v1/hooks/useMouse.js +51 -0
  113. package/dist/v1/hooks/useMouse.js.map +1 -0
  114. 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
  115. 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
  116. 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
  117. 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
  118. package/dist/v1/style.css +1 -1
  119. package/package.json +1 -1
@@ -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;;;;"}
@@ -1,3 +1,9 @@
1
- import * as SelectPrimitive from "@radix-ui/react-select";
2
- export declare const SelectValue: import("react").ForwardRefExoticComponent<SelectPrimitive.SelectValueProps & import("react").RefAttributes<HTMLSpanElement>>;
1
+ import * as SelectPrimitive from '@radix-ui/react-select';
2
+ import { ReactNode } from 'react';
3
+ import { ItemType } from './types';
4
+ type ValueType = Omit<ItemType, 'children'>;
5
+ export declare const SelectValue: import("react").ForwardRefExoticComponent<Omit<SelectPrimitive.SelectValueProps, "children"> & {
6
+ children?: ReactNode | ((value?: ValueType | ValueType[]) => ReactNode);
7
+ } & import("react").RefAttributes<HTMLSpanElement>>;
8
+ export {};
3
9
  //# sourceMappingURL=select-value.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"select-value.d.ts","sourceRoot":"","sources":["../../../../v1/components/select/select-value.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,eAAe,MAAM,wBAAwB,CAAC;AAK1D,eAAO,MAAM,WAAW,8HAetB,CAAC"}
1
+ {"version":3,"file":"select-value.d.ts","sourceRoot":"","sources":["../../../../v1/components/select/select-value.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,eAAe,MAAM,wBAAwB,CAAC;AAE1D,OAAO,EAAc,SAAS,EAAuB,MAAM,OAAO,CAAC;AAInE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAEnC,KAAK,SAAS,GAAG,IAAI,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;AAM5C,eAAO,MAAM,WAAW;qCAHD,SAAS,GAAG,SAAS,EAAE,KAAK,SAAS;mDAwC1D,CAAC"}
@@ -1,14 +1,30 @@
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 { Value } 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 styles from './select.module.css.js';
5
- import { useSelectContext } from './select-root.js';
6
3
  import { cx } from '../../node_modules/.pnpm/class-variance-authority@0.7.1/node_modules/class-variance-authority/dist/index.js';
4
+ import { forwardRef, useMemo } from 'react';
5
+ import { SelectMultipleValue } from './select-multiple-value.js';
6
+ import { useSelectContext } from './select-root.js';
7
+ import styles from './select.module.css.js';
7
8
 
8
9
  const SelectValue = forwardRef(({ children, ...props }, ref) => {
9
- const { value } = useSelectContext();
10
- const leadingIcon = value?.icon;
11
- return (jsxRuntimeExports.jsxs("div", { className: cx(styles.valueContent), children: [leadingIcon && jsxRuntimeExports.jsx("div", { className: styles.leadingIcon, children: leadingIcon }), jsxRuntimeExports.jsx(Value, { ref: ref, ...props, children: children })] }));
10
+ const { value, items, multiple } = useSelectContext();
11
+ const item = useMemo(() => {
12
+ if (!value)
13
+ return undefined;
14
+ if (multiple && Array.isArray(value)) {
15
+ const itemValues = value.map(v => items[v]);
16
+ if (itemValues.length === 1)
17
+ return itemValues[0];
18
+ return itemValues;
19
+ }
20
+ return items[value];
21
+ }, [value, items, multiple]);
22
+ if (children) {
23
+ return (jsxRuntimeExports.jsx(Value, { ref: ref, ...props, children: typeof children === 'function' ? children(item) : children }));
24
+ }
25
+ if (Array.isArray(item))
26
+ return jsxRuntimeExports.jsx(SelectMultipleValue, { data: item, ref: ref, ...props });
27
+ return (jsxRuntimeExports.jsx(Value, { ref: ref, ...props, children: jsxRuntimeExports.jsxs("div", { className: cx(styles.valueContent), children: [typeof item?.children === 'string' && item?.leadingIcon && (jsxRuntimeExports.jsx("div", { className: styles.itemIcon, children: item.leadingIcon })), item?.children ?? value] }) }));
12
28
  });
13
29
  SelectValue.displayName = Value.displayName;
14
30