@spark-ui/components 10.0.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 (296) hide show
  1. package/CHANGELOG.md +15 -0
  2. package/LICENSE.md +21 -0
  3. package/README.md +19 -0
  4. package/dist/DialogTrigger-5SI4dvpK.d.mts +142 -0
  5. package/dist/DialogTrigger-5SI4dvpK.d.ts +142 -0
  6. package/dist/Input-g0LpWuv0.d.mts +17 -0
  7. package/dist/Input-g0LpWuv0.d.ts +17 -0
  8. package/dist/InputGroup-aoaZxCLk.d.mts +28 -0
  9. package/dist/InputGroup-aoaZxCLk.d.ts +28 -0
  10. package/dist/InputTrailingIcon-BBp7sE6D.d.mts +20 -0
  11. package/dist/InputTrailingIcon-ZZx8PoJy.d.ts +20 -0
  12. package/dist/LabelRequiredIndicator-DRnCzHMU.d.mts +19 -0
  13. package/dist/LabelRequiredIndicator-DRnCzHMU.d.ts +19 -0
  14. package/dist/accordion/index.d.mts +85 -0
  15. package/dist/accordion/index.d.ts +85 -0
  16. package/dist/accordion/index.js +461 -0
  17. package/dist/accordion/index.js.map +1 -0
  18. package/dist/accordion/index.mjs +249 -0
  19. package/dist/accordion/index.mjs.map +1 -0
  20. package/dist/alert-dialog/index.d.mts +119 -0
  21. package/dist/alert-dialog/index.d.ts +119 -0
  22. package/dist/alert-dialog/index.js +1451 -0
  23. package/dist/alert-dialog/index.js.map +1 -0
  24. package/dist/alert-dialog/index.mjs +177 -0
  25. package/dist/alert-dialog/index.mjs.map +1 -0
  26. package/dist/badge/index.d.mts +47 -0
  27. package/dist/badge/index.d.ts +47 -0
  28. package/dist/badge/index.js +122 -0
  29. package/dist/badge/index.js.map +1 -0
  30. package/dist/badge/index.mjs +95 -0
  31. package/dist/badge/index.mjs.map +1 -0
  32. package/dist/breadcrumb/index.d.mts +64 -0
  33. package/dist/breadcrumb/index.d.ts +64 -0
  34. package/dist/breadcrumb/index.js +326 -0
  35. package/dist/breadcrumb/index.js.map +1 -0
  36. package/dist/breadcrumb/index.mjs +149 -0
  37. package/dist/breadcrumb/index.mjs.map +1 -0
  38. package/dist/button/index.d.mts +40 -0
  39. package/dist/button/index.d.ts +40 -0
  40. package/dist/button/index.js +877 -0
  41. package/dist/button/index.js.map +1 -0
  42. package/dist/button/index.mjs +10 -0
  43. package/dist/button/index.mjs.map +1 -0
  44. package/dist/carousel/index.d.mts +253 -0
  45. package/dist/carousel/index.d.ts +253 -0
  46. package/dist/carousel/index.js +1678 -0
  47. package/dist/carousel/index.js.map +1 -0
  48. package/dist/carousel/index.mjs +716 -0
  49. package/dist/carousel/index.mjs.map +1 -0
  50. package/dist/checkbox/index.d.mts +120 -0
  51. package/dist/checkbox/index.d.ts +120 -0
  52. package/dist/checkbox/index.js +873 -0
  53. package/dist/checkbox/index.js.map +1 -0
  54. package/dist/checkbox/index.mjs +349 -0
  55. package/dist/checkbox/index.mjs.map +1 -0
  56. package/dist/chip/index.d.mts +97 -0
  57. package/dist/chip/index.d.ts +97 -0
  58. package/dist/chip/index.js +905 -0
  59. package/dist/chip/index.js.map +1 -0
  60. package/dist/chip/index.mjs +793 -0
  61. package/dist/chip/index.mjs.map +1 -0
  62. package/dist/chunk-2KPFQEAA.mjs +52 -0
  63. package/dist/chunk-2KPFQEAA.mjs.map +1 -0
  64. package/dist/chunk-4F5DOL57.mjs +26 -0
  65. package/dist/chunk-4F5DOL57.mjs.map +1 -0
  66. package/dist/chunk-6JOA37TZ.mjs +742 -0
  67. package/dist/chunk-6JOA37TZ.mjs.map +1 -0
  68. package/dist/chunk-7PMPYEHJ.mjs +379 -0
  69. package/dist/chunk-7PMPYEHJ.mjs.map +1 -0
  70. package/dist/chunk-AESXFMCC.mjs +68 -0
  71. package/dist/chunk-AESXFMCC.mjs.map +1 -0
  72. package/dist/chunk-B42LOFIZ.mjs +308 -0
  73. package/dist/chunk-B42LOFIZ.mjs.map +1 -0
  74. package/dist/chunk-FGOZHKBT.mjs +97 -0
  75. package/dist/chunk-FGOZHKBT.mjs.map +1 -0
  76. package/dist/chunk-HLXYG643.mjs +52 -0
  77. package/dist/chunk-HLXYG643.mjs.map +1 -0
  78. package/dist/chunk-JKNBJHD5.mjs +601 -0
  79. package/dist/chunk-JKNBJHD5.mjs.map +1 -0
  80. package/dist/chunk-K7VP7DH3.mjs +66 -0
  81. package/dist/chunk-K7VP7DH3.mjs.map +1 -0
  82. package/dist/chunk-MUNDKRAE.mjs +80 -0
  83. package/dist/chunk-MUNDKRAE.mjs.map +1 -0
  84. package/dist/chunk-NBZKMCHF.mjs +36 -0
  85. package/dist/chunk-NBZKMCHF.mjs.map +1 -0
  86. package/dist/chunk-PZWESKAR.mjs +314 -0
  87. package/dist/chunk-PZWESKAR.mjs.map +1 -0
  88. package/dist/collapsible/index.d.mts +60 -0
  89. package/dist/collapsible/index.d.ts +60 -0
  90. package/dist/collapsible/index.js +140 -0
  91. package/dist/collapsible/index.js.map +1 -0
  92. package/dist/collapsible/index.mjs +8 -0
  93. package/dist/collapsible/index.mjs.map +1 -0
  94. package/dist/combobox/index.d.mts +285 -0
  95. package/dist/combobox/index.d.ts +285 -0
  96. package/dist/combobox/index.js +2920 -0
  97. package/dist/combobox/index.js.map +1 -0
  98. package/dist/combobox/index.mjs +1267 -0
  99. package/dist/combobox/index.mjs.map +1 -0
  100. package/dist/dialog/index.d.mts +33 -0
  101. package/dist/dialog/index.d.ts +33 -0
  102. package/dist/dialog/index.js +1286 -0
  103. package/dist/dialog/index.js.map +1 -0
  104. package/dist/dialog/index.mjs +13 -0
  105. package/dist/dialog/index.mjs.map +1 -0
  106. package/dist/divider/index.d.mts +61 -0
  107. package/dist/divider/index.d.ts +61 -0
  108. package/dist/divider/index.js +223 -0
  109. package/dist/divider/index.js.map +1 -0
  110. package/dist/divider/index.mjs +196 -0
  111. package/dist/divider/index.mjs.map +1 -0
  112. package/dist/drawer/index.d.mts +148 -0
  113. package/dist/drawer/index.d.ts +148 -0
  114. package/dist/drawer/index.js +1266 -0
  115. package/dist/drawer/index.js.map +1 -0
  116. package/dist/drawer/index.mjs +299 -0
  117. package/dist/drawer/index.mjs.map +1 -0
  118. package/dist/dropdown/index.d.mts +233 -0
  119. package/dist/dropdown/index.d.ts +233 -0
  120. package/dist/dropdown/index.js +2402 -0
  121. package/dist/dropdown/index.js.map +1 -0
  122. package/dist/dropdown/index.mjs +741 -0
  123. package/dist/dropdown/index.mjs.map +1 -0
  124. package/dist/form-field/index.d.mts +176 -0
  125. package/dist/form-field/index.d.ts +176 -0
  126. package/dist/form-field/index.js +540 -0
  127. package/dist/form-field/index.js.map +1 -0
  128. package/dist/form-field/index.mjs +13 -0
  129. package/dist/form-field/index.mjs.map +1 -0
  130. package/dist/icon/index.d.mts +28 -0
  131. package/dist/icon/index.d.ts +28 -0
  132. package/dist/icon/index.js +127 -0
  133. package/dist/icon/index.js.map +1 -0
  134. package/dist/icon/index.mjs +9 -0
  135. package/dist/icon/index.mjs.map +1 -0
  136. package/dist/icon-button/index.d.mts +16 -0
  137. package/dist/icon-button/index.d.ts +16 -0
  138. package/dist/icon-button/index.js +921 -0
  139. package/dist/icon-button/index.js.map +1 -0
  140. package/dist/icon-button/index.mjs +11 -0
  141. package/dist/icon-button/index.mjs.map +1 -0
  142. package/dist/input/index.d.mts +78 -0
  143. package/dist/input/index.d.ts +78 -0
  144. package/dist/input/index.js +1119 -0
  145. package/dist/input/index.js.map +1 -0
  146. package/dist/input/index.mjs +16 -0
  147. package/dist/input/index.mjs.map +1 -0
  148. package/dist/kbd/index.d.mts +9 -0
  149. package/dist/kbd/index.d.ts +9 -0
  150. package/dist/kbd/index.js +46 -0
  151. package/dist/kbd/index.js.map +1 -0
  152. package/dist/kbd/index.mjs +19 -0
  153. package/dist/kbd/index.mjs.map +1 -0
  154. package/dist/label/index.d.mts +11 -0
  155. package/dist/label/index.d.ts +11 -0
  156. package/dist/label/index.js +78 -0
  157. package/dist/label/index.js.map +1 -0
  158. package/dist/label/index.mjs +7 -0
  159. package/dist/label/index.mjs.map +1 -0
  160. package/dist/link-box/index.d.mts +34 -0
  161. package/dist/link-box/index.d.ts +34 -0
  162. package/dist/link-box/index.js +92 -0
  163. package/dist/link-box/index.js.map +1 -0
  164. package/dist/link-box/index.mjs +58 -0
  165. package/dist/link-box/index.mjs.map +1 -0
  166. package/dist/pagination/index.d.mts +143 -0
  167. package/dist/pagination/index.d.ts +143 -0
  168. package/dist/pagination/index.js +1303 -0
  169. package/dist/pagination/index.js.map +1 -0
  170. package/dist/pagination/index.mjs +326 -0
  171. package/dist/pagination/index.mjs.map +1 -0
  172. package/dist/popover/index.d.mts +93 -0
  173. package/dist/popover/index.d.ts +93 -0
  174. package/dist/popover/index.js +1280 -0
  175. package/dist/popover/index.js.map +1 -0
  176. package/dist/popover/index.mjs +13 -0
  177. package/dist/popover/index.mjs.map +1 -0
  178. package/dist/portal/index.d.mts +13 -0
  179. package/dist/portal/index.d.ts +13 -0
  180. package/dist/portal/index.js +37 -0
  181. package/dist/portal/index.js.map +1 -0
  182. package/dist/portal/index.mjs +10 -0
  183. package/dist/portal/index.mjs.map +1 -0
  184. package/dist/progress/index.d.mts +48 -0
  185. package/dist/progress/index.d.ts +48 -0
  186. package/dist/progress/index.js +201 -0
  187. package/dist/progress/index.js.map +1 -0
  188. package/dist/progress/index.mjs +174 -0
  189. package/dist/progress/index.mjs.map +1 -0
  190. package/dist/progress-tracker/index.d.mts +81 -0
  191. package/dist/progress-tracker/index.d.ts +81 -0
  192. package/dist/progress-tracker/index.js +834 -0
  193. package/dist/progress-tracker/index.js.map +1 -0
  194. package/dist/progress-tracker/index.mjs +716 -0
  195. package/dist/progress-tracker/index.mjs.map +1 -0
  196. package/dist/radio-group/index.d.mts +100 -0
  197. package/dist/radio-group/index.d.ts +100 -0
  198. package/dist/radio-group/index.js +824 -0
  199. package/dist/radio-group/index.js.map +1 -0
  200. package/dist/radio-group/index.mjs +297 -0
  201. package/dist/radio-group/index.mjs.map +1 -0
  202. package/dist/rating/index.d.mts +78 -0
  203. package/dist/rating/index.d.ts +78 -0
  204. package/dist/rating/index.js +362 -0
  205. package/dist/rating/index.js.map +1 -0
  206. package/dist/rating/index.mjs +247 -0
  207. package/dist/rating/index.mjs.map +1 -0
  208. package/dist/scrolling-list/index.d.mts +105 -0
  209. package/dist/scrolling-list/index.d.ts +105 -0
  210. package/dist/scrolling-list/index.js +1367 -0
  211. package/dist/scrolling-list/index.js.map +1 -0
  212. package/dist/scrolling-list/index.mjs +407 -0
  213. package/dist/scrolling-list/index.mjs.map +1 -0
  214. package/dist/select/index.d.mts +167 -0
  215. package/dist/select/index.d.ts +167 -0
  216. package/dist/select/index.js +991 -0
  217. package/dist/select/index.js.map +1 -0
  218. package/dist/select/index.mjs +470 -0
  219. package/dist/select/index.mjs.map +1 -0
  220. package/dist/skeleton/index.d.mts +67 -0
  221. package/dist/skeleton/index.d.ts +67 -0
  222. package/dist/skeleton/index.js +206 -0
  223. package/dist/skeleton/index.js.map +1 -0
  224. package/dist/skeleton/index.mjs +147 -0
  225. package/dist/skeleton/index.mjs.map +1 -0
  226. package/dist/slider/index.d.mts +97 -0
  227. package/dist/slider/index.d.ts +97 -0
  228. package/dist/slider/index.js +209 -0
  229. package/dist/slider/index.js.map +1 -0
  230. package/dist/slider/index.mjs +182 -0
  231. package/dist/slider/index.mjs.map +1 -0
  232. package/dist/slot/index.d.mts +17 -0
  233. package/dist/slot/index.d.ts +17 -0
  234. package/dist/slot/index.js +51 -0
  235. package/dist/slot/index.js.map +1 -0
  236. package/dist/slot/index.mjs +11 -0
  237. package/dist/slot/index.mjs.map +1 -0
  238. package/dist/snackbar/index.d.mts +158 -0
  239. package/dist/snackbar/index.d.ts +158 -0
  240. package/dist/snackbar/index.js +1693 -0
  241. package/dist/snackbar/index.js.map +1 -0
  242. package/dist/snackbar/index.mjs +733 -0
  243. package/dist/snackbar/index.mjs.map +1 -0
  244. package/dist/spinner/index.d.mts +21 -0
  245. package/dist/spinner/index.d.ts +21 -0
  246. package/dist/spinner/index.js +139 -0
  247. package/dist/spinner/index.js.map +1 -0
  248. package/dist/spinner/index.mjs +9 -0
  249. package/dist/spinner/index.mjs.map +1 -0
  250. package/dist/stepper/index.d.mts +82 -0
  251. package/dist/stepper/index.d.ts +82 -0
  252. package/dist/stepper/index.js +2178 -0
  253. package/dist/stepper/index.js.map +1 -0
  254. package/dist/stepper/index.mjs +229 -0
  255. package/dist/stepper/index.mjs.map +1 -0
  256. package/dist/switch/index.d.mts +64 -0
  257. package/dist/switch/index.d.ts +64 -0
  258. package/dist/switch/index.js +768 -0
  259. package/dist/switch/index.js.map +1 -0
  260. package/dist/switch/index.mjs +245 -0
  261. package/dist/switch/index.mjs.map +1 -0
  262. package/dist/tabs/index.d.mts +103 -0
  263. package/dist/tabs/index.d.ts +103 -0
  264. package/dist/tabs/index.js +1315 -0
  265. package/dist/tabs/index.js.map +1 -0
  266. package/dist/tabs/index.mjs +391 -0
  267. package/dist/tabs/index.mjs.map +1 -0
  268. package/dist/tag/index.d.mts +27 -0
  269. package/dist/tag/index.d.ts +27 -0
  270. package/dist/tag/index.js +269 -0
  271. package/dist/tag/index.js.map +1 -0
  272. package/dist/tag/index.mjs +237 -0
  273. package/dist/tag/index.mjs.map +1 -0
  274. package/dist/text-link/index.d.mts +20 -0
  275. package/dist/text-link/index.d.ts +20 -0
  276. package/dist/text-link/index.js +99 -0
  277. package/dist/text-link/index.js.map +1 -0
  278. package/dist/text-link/index.mjs +8 -0
  279. package/dist/text-link/index.mjs.map +1 -0
  280. package/dist/textarea/index.d.mts +47 -0
  281. package/dist/textarea/index.d.ts +47 -0
  282. package/dist/textarea/index.js +1180 -0
  283. package/dist/textarea/index.js.map +1 -0
  284. package/dist/textarea/index.mjs +77 -0
  285. package/dist/textarea/index.mjs.map +1 -0
  286. package/dist/visually-hidden/index.d.mts +16 -0
  287. package/dist/visually-hidden/index.d.ts +16 -0
  288. package/dist/visually-hidden/index.js +67 -0
  289. package/dist/visually-hidden/index.js.map +1 -0
  290. package/dist/visually-hidden/index.mjs +8 -0
  291. package/dist/visually-hidden/index.mjs.map +1 -0
  292. package/global.d.ts +12 -0
  293. package/package.json +75 -0
  294. package/tsconfig.build.json +9 -0
  295. package/tsconfig.json +9 -0
  296. package/tsup.config.ts +11 -0
@@ -0,0 +1,233 @@
1
+ import * as react_jsx_runtime from 'react/jsx-runtime';
2
+ import { Dispatch, SetStateAction, PropsWithChildren, Ref, ReactNode, HTMLAttributes, ReactElement, ComponentProps } from 'react';
3
+ import { UseSelectReturnValue, UseMultipleSelectionReturnValue } from 'downshift';
4
+ import { Popover as Popover$1 } from '../popover/index.mjs';
5
+ import 'radix-ui';
6
+ import 'class-variance-authority/types';
7
+ import 'class-variance-authority';
8
+
9
+ interface DropdownItem {
10
+ disabled: boolean;
11
+ value: string;
12
+ text: string;
13
+ }
14
+ type ItemsMap = Map<string, DropdownItem>;
15
+ type DownshiftState = UseSelectReturnValue<DropdownItem> & UseMultipleSelectionReturnValue<DropdownItem>;
16
+
17
+ interface DropdownContextState extends DownshiftState {
18
+ itemsMap: ItemsMap;
19
+ highlightedItem: DropdownItem | undefined;
20
+ hasPopover: boolean;
21
+ setHasPopover: Dispatch<SetStateAction<boolean>>;
22
+ multiple: boolean;
23
+ disabled: boolean;
24
+ readOnly: boolean;
25
+ state?: 'error' | 'alert' | 'success';
26
+ lastInteractionType: 'mouse' | 'keyboard';
27
+ setLastInteractionType: (type: 'mouse' | 'keyboard') => void;
28
+ }
29
+ type DropdownContextCommonProps = PropsWithChildren<{
30
+ /**
31
+ * The controlled open state of the select. Must be used in conjunction with `onOpenChange`.
32
+ */
33
+ open?: boolean;
34
+ /**
35
+ * Event handler called when the open state of the select changes.
36
+ */
37
+ onOpenChange?: (isOpen: boolean) => void;
38
+ /**
39
+ * The open state of the select when it is initially rendered. Use when you do not need to control its open state.
40
+ */
41
+ defaultOpen?: boolean;
42
+ /**
43
+ * Use `state` prop to assign a specific state to the dropdown, choosing from: `error`, `alert` and `success`. By doing so, the outline styles will be updated.
44
+ */
45
+ state?: 'error' | 'alert' | 'success';
46
+ /**
47
+ * When true, prevents the user from interacting with the dropdown.
48
+ */
49
+ disabled?: boolean;
50
+ /**
51
+ * Sets the dropdown as interactive or not.
52
+ */
53
+ readOnly?: boolean;
54
+ }>;
55
+ interface DropdownPropsSingle {
56
+ /**
57
+ * Prop 'multiple' indicating whether multiple values are allowed.
58
+ */
59
+ multiple?: false;
60
+ /**
61
+ * The value of the select when initially rendered. Use when you do not need to control the state of the select.
62
+ */
63
+ defaultValue?: string;
64
+ /**
65
+ * The controlled value of the select. Should be used in conjunction with `onValueChange`.
66
+ */
67
+ value?: string;
68
+ /**
69
+ * Event handler called when the value changes.
70
+ */
71
+ onValueChange?: (value: string) => void;
72
+ }
73
+ interface DropdownPropsMultiple {
74
+ /**
75
+ * Prop 'multiple' indicating whether multiple values are allowed.
76
+ */
77
+ multiple: true;
78
+ /**
79
+ * The value of the select when initially rendered. Use when you do not need to control the state of the select.
80
+ */
81
+ defaultValue?: string[];
82
+ /**
83
+ * The controlled value of the select. Should be used in conjunction with `onValueChange`.
84
+ */
85
+ value?: string[];
86
+ /**
87
+ * Event handler called when the value changes.
88
+ */
89
+ onValueChange?: (value: string[]) => void;
90
+ }
91
+ type DropdownContextProps = DropdownContextCommonProps & (DropdownPropsSingle | DropdownPropsMultiple);
92
+ declare const DropdownProvider: ({ children, defaultValue, value, onValueChange, open, onOpenChange, defaultOpen, multiple, disabled: disabledProp, readOnly: readOnlyProp, state: stateProp, }: DropdownContextProps) => react_jsx_runtime.JSX.Element;
93
+ declare const useDropdownContext: () => DropdownContextState;
94
+
95
+ type DropdownProps = DropdownContextProps;
96
+ declare const Dropdown$1: {
97
+ ({ children, ...props }: DropdownProps): react_jsx_runtime.JSX.Element;
98
+ displayName: string;
99
+ };
100
+
101
+ interface DividerProps {
102
+ className?: string;
103
+ ref?: Ref<HTMLDivElement>;
104
+ }
105
+ declare const Divider: {
106
+ ({ className, ref: forwardedRef }: DividerProps): react_jsx_runtime.JSX.Element;
107
+ displayName: string;
108
+ };
109
+
110
+ interface GroupProps {
111
+ children: ReactNode;
112
+ className?: string;
113
+ ref?: Ref<HTMLDivElement>;
114
+ }
115
+ declare const Group: {
116
+ ({ children, ref: forwardedRef, ...props }: GroupProps): react_jsx_runtime.JSX.Element;
117
+ displayName: string;
118
+ };
119
+
120
+ interface ItemProps extends HTMLAttributes<HTMLLIElement> {
121
+ disabled?: boolean;
122
+ value: string;
123
+ children: ReactNode;
124
+ className?: string;
125
+ ref?: Ref<HTMLLIElement>;
126
+ }
127
+ declare const Item: {
128
+ ({ children, ref: forwardedRef, ...props }: ItemProps): react_jsx_runtime.JSX.Element;
129
+ displayName: string;
130
+ };
131
+
132
+ interface ItemIndicatorProps {
133
+ children?: ReactNode;
134
+ className?: string;
135
+ label?: string;
136
+ ref?: Ref<HTMLSpanElement>;
137
+ }
138
+ declare const ItemIndicator: {
139
+ ({ className, children, label, ref: forwardedRef, }: ItemIndicatorProps): react_jsx_runtime.JSX.Element;
140
+ displayName: string;
141
+ };
142
+
143
+ interface ItemsProps {
144
+ children: ReactNode;
145
+ className?: string;
146
+ ref?: Ref<HTMLUListElement>;
147
+ }
148
+ /**
149
+ * BUGFIX
150
+ *
151
+ * 1. The !pointer-events-auto class is needed to prevent a bug
152
+ * which cannot be reproduced when running Storybook locally,
153
+ * in scenarios such as when a Dropdown is nested within a Dialog,
154
+ * the "props" object, containing styles computed by Radix
155
+ * may erroneously contain "pointerEvents = 'none'", while the Dropdown is open,
156
+ * making it impossible to select a value using a pointer device
157
+ */
158
+ declare const Items: {
159
+ ({ children, className, ref: forwardedRef, ...props }: ItemsProps): react_jsx_runtime.JSX.Element;
160
+ displayName: string;
161
+ };
162
+
163
+ interface ItemTextProps {
164
+ children: string;
165
+ ref?: Ref<HTMLSpanElement>;
166
+ }
167
+ declare const ItemText: {
168
+ ({ children, ref: forwardedRef }: ItemTextProps): react_jsx_runtime.JSX.Element;
169
+ displayName: string;
170
+ };
171
+
172
+ interface LabelProps {
173
+ children: string;
174
+ className?: string;
175
+ ref?: Ref<HTMLDivElement>;
176
+ }
177
+ declare const Label: {
178
+ ({ children, className, ref: forwardedRef }: LabelProps): react_jsx_runtime.JSX.Element;
179
+ displayName: string;
180
+ };
181
+
182
+ declare const LeadingIcon: {
183
+ ({ children }: {
184
+ children: ReactElement;
185
+ }): react_jsx_runtime.JSX.Element;
186
+ displayName: string;
187
+ };
188
+
189
+ declare const Popover: {
190
+ ({ children, matchTriggerWidth, sideOffset, className, elevation, ref: forwardedRef, ...props }: ComponentProps<typeof Popover$1.Content>): react_jsx_runtime.JSX.Element;
191
+ displayName: string;
192
+ };
193
+
194
+ declare const Portal: typeof Popover$1.Portal;
195
+
196
+ interface TriggerProps {
197
+ 'aria-label'?: string;
198
+ children: ReactNode;
199
+ className?: string;
200
+ ref?: Ref<HTMLButtonElement>;
201
+ }
202
+ declare const Trigger: {
203
+ ({ "aria-label": ariaLabel, children, className, ref: forwardedRef, }: TriggerProps): react_jsx_runtime.JSX.Element;
204
+ displayName: string;
205
+ };
206
+
207
+ interface ValueProps {
208
+ children?: ReactNode;
209
+ className?: string;
210
+ placeholder: string;
211
+ ref?: Ref<HTMLSpanElement>;
212
+ }
213
+ declare const Value: {
214
+ ({ children, className, placeholder, ref: forwardedRef }: ValueProps): react_jsx_runtime.JSX.Element;
215
+ displayName: string;
216
+ };
217
+
218
+ declare const Dropdown: typeof Dropdown$1 & {
219
+ Group: typeof Group;
220
+ Item: typeof Item;
221
+ Items: typeof Items;
222
+ ItemText: typeof ItemText;
223
+ ItemIndicator: typeof ItemIndicator;
224
+ Label: typeof Label;
225
+ Popover: typeof Popover;
226
+ Divider: typeof Divider;
227
+ Trigger: typeof Trigger;
228
+ Value: typeof Value;
229
+ LeadingIcon: typeof LeadingIcon;
230
+ Portal: typeof Portal;
231
+ };
232
+
233
+ export { Dropdown, DropdownProvider, useDropdownContext };
@@ -0,0 +1,233 @@
1
+ import * as react_jsx_runtime from 'react/jsx-runtime';
2
+ import { Dispatch, SetStateAction, PropsWithChildren, Ref, ReactNode, HTMLAttributes, ReactElement, ComponentProps } from 'react';
3
+ import { UseSelectReturnValue, UseMultipleSelectionReturnValue } from 'downshift';
4
+ import { Popover as Popover$1 } from '../popover/index.js';
5
+ import 'radix-ui';
6
+ import 'class-variance-authority/types';
7
+ import 'class-variance-authority';
8
+
9
+ interface DropdownItem {
10
+ disabled: boolean;
11
+ value: string;
12
+ text: string;
13
+ }
14
+ type ItemsMap = Map<string, DropdownItem>;
15
+ type DownshiftState = UseSelectReturnValue<DropdownItem> & UseMultipleSelectionReturnValue<DropdownItem>;
16
+
17
+ interface DropdownContextState extends DownshiftState {
18
+ itemsMap: ItemsMap;
19
+ highlightedItem: DropdownItem | undefined;
20
+ hasPopover: boolean;
21
+ setHasPopover: Dispatch<SetStateAction<boolean>>;
22
+ multiple: boolean;
23
+ disabled: boolean;
24
+ readOnly: boolean;
25
+ state?: 'error' | 'alert' | 'success';
26
+ lastInteractionType: 'mouse' | 'keyboard';
27
+ setLastInteractionType: (type: 'mouse' | 'keyboard') => void;
28
+ }
29
+ type DropdownContextCommonProps = PropsWithChildren<{
30
+ /**
31
+ * The controlled open state of the select. Must be used in conjunction with `onOpenChange`.
32
+ */
33
+ open?: boolean;
34
+ /**
35
+ * Event handler called when the open state of the select changes.
36
+ */
37
+ onOpenChange?: (isOpen: boolean) => void;
38
+ /**
39
+ * The open state of the select when it is initially rendered. Use when you do not need to control its open state.
40
+ */
41
+ defaultOpen?: boolean;
42
+ /**
43
+ * Use `state` prop to assign a specific state to the dropdown, choosing from: `error`, `alert` and `success`. By doing so, the outline styles will be updated.
44
+ */
45
+ state?: 'error' | 'alert' | 'success';
46
+ /**
47
+ * When true, prevents the user from interacting with the dropdown.
48
+ */
49
+ disabled?: boolean;
50
+ /**
51
+ * Sets the dropdown as interactive or not.
52
+ */
53
+ readOnly?: boolean;
54
+ }>;
55
+ interface DropdownPropsSingle {
56
+ /**
57
+ * Prop 'multiple' indicating whether multiple values are allowed.
58
+ */
59
+ multiple?: false;
60
+ /**
61
+ * The value of the select when initially rendered. Use when you do not need to control the state of the select.
62
+ */
63
+ defaultValue?: string;
64
+ /**
65
+ * The controlled value of the select. Should be used in conjunction with `onValueChange`.
66
+ */
67
+ value?: string;
68
+ /**
69
+ * Event handler called when the value changes.
70
+ */
71
+ onValueChange?: (value: string) => void;
72
+ }
73
+ interface DropdownPropsMultiple {
74
+ /**
75
+ * Prop 'multiple' indicating whether multiple values are allowed.
76
+ */
77
+ multiple: true;
78
+ /**
79
+ * The value of the select when initially rendered. Use when you do not need to control the state of the select.
80
+ */
81
+ defaultValue?: string[];
82
+ /**
83
+ * The controlled value of the select. Should be used in conjunction with `onValueChange`.
84
+ */
85
+ value?: string[];
86
+ /**
87
+ * Event handler called when the value changes.
88
+ */
89
+ onValueChange?: (value: string[]) => void;
90
+ }
91
+ type DropdownContextProps = DropdownContextCommonProps & (DropdownPropsSingle | DropdownPropsMultiple);
92
+ declare const DropdownProvider: ({ children, defaultValue, value, onValueChange, open, onOpenChange, defaultOpen, multiple, disabled: disabledProp, readOnly: readOnlyProp, state: stateProp, }: DropdownContextProps) => react_jsx_runtime.JSX.Element;
93
+ declare const useDropdownContext: () => DropdownContextState;
94
+
95
+ type DropdownProps = DropdownContextProps;
96
+ declare const Dropdown$1: {
97
+ ({ children, ...props }: DropdownProps): react_jsx_runtime.JSX.Element;
98
+ displayName: string;
99
+ };
100
+
101
+ interface DividerProps {
102
+ className?: string;
103
+ ref?: Ref<HTMLDivElement>;
104
+ }
105
+ declare const Divider: {
106
+ ({ className, ref: forwardedRef }: DividerProps): react_jsx_runtime.JSX.Element;
107
+ displayName: string;
108
+ };
109
+
110
+ interface GroupProps {
111
+ children: ReactNode;
112
+ className?: string;
113
+ ref?: Ref<HTMLDivElement>;
114
+ }
115
+ declare const Group: {
116
+ ({ children, ref: forwardedRef, ...props }: GroupProps): react_jsx_runtime.JSX.Element;
117
+ displayName: string;
118
+ };
119
+
120
+ interface ItemProps extends HTMLAttributes<HTMLLIElement> {
121
+ disabled?: boolean;
122
+ value: string;
123
+ children: ReactNode;
124
+ className?: string;
125
+ ref?: Ref<HTMLLIElement>;
126
+ }
127
+ declare const Item: {
128
+ ({ children, ref: forwardedRef, ...props }: ItemProps): react_jsx_runtime.JSX.Element;
129
+ displayName: string;
130
+ };
131
+
132
+ interface ItemIndicatorProps {
133
+ children?: ReactNode;
134
+ className?: string;
135
+ label?: string;
136
+ ref?: Ref<HTMLSpanElement>;
137
+ }
138
+ declare const ItemIndicator: {
139
+ ({ className, children, label, ref: forwardedRef, }: ItemIndicatorProps): react_jsx_runtime.JSX.Element;
140
+ displayName: string;
141
+ };
142
+
143
+ interface ItemsProps {
144
+ children: ReactNode;
145
+ className?: string;
146
+ ref?: Ref<HTMLUListElement>;
147
+ }
148
+ /**
149
+ * BUGFIX
150
+ *
151
+ * 1. The !pointer-events-auto class is needed to prevent a bug
152
+ * which cannot be reproduced when running Storybook locally,
153
+ * in scenarios such as when a Dropdown is nested within a Dialog,
154
+ * the "props" object, containing styles computed by Radix
155
+ * may erroneously contain "pointerEvents = 'none'", while the Dropdown is open,
156
+ * making it impossible to select a value using a pointer device
157
+ */
158
+ declare const Items: {
159
+ ({ children, className, ref: forwardedRef, ...props }: ItemsProps): react_jsx_runtime.JSX.Element;
160
+ displayName: string;
161
+ };
162
+
163
+ interface ItemTextProps {
164
+ children: string;
165
+ ref?: Ref<HTMLSpanElement>;
166
+ }
167
+ declare const ItemText: {
168
+ ({ children, ref: forwardedRef }: ItemTextProps): react_jsx_runtime.JSX.Element;
169
+ displayName: string;
170
+ };
171
+
172
+ interface LabelProps {
173
+ children: string;
174
+ className?: string;
175
+ ref?: Ref<HTMLDivElement>;
176
+ }
177
+ declare const Label: {
178
+ ({ children, className, ref: forwardedRef }: LabelProps): react_jsx_runtime.JSX.Element;
179
+ displayName: string;
180
+ };
181
+
182
+ declare const LeadingIcon: {
183
+ ({ children }: {
184
+ children: ReactElement;
185
+ }): react_jsx_runtime.JSX.Element;
186
+ displayName: string;
187
+ };
188
+
189
+ declare const Popover: {
190
+ ({ children, matchTriggerWidth, sideOffset, className, elevation, ref: forwardedRef, ...props }: ComponentProps<typeof Popover$1.Content>): react_jsx_runtime.JSX.Element;
191
+ displayName: string;
192
+ };
193
+
194
+ declare const Portal: typeof Popover$1.Portal;
195
+
196
+ interface TriggerProps {
197
+ 'aria-label'?: string;
198
+ children: ReactNode;
199
+ className?: string;
200
+ ref?: Ref<HTMLButtonElement>;
201
+ }
202
+ declare const Trigger: {
203
+ ({ "aria-label": ariaLabel, children, className, ref: forwardedRef, }: TriggerProps): react_jsx_runtime.JSX.Element;
204
+ displayName: string;
205
+ };
206
+
207
+ interface ValueProps {
208
+ children?: ReactNode;
209
+ className?: string;
210
+ placeholder: string;
211
+ ref?: Ref<HTMLSpanElement>;
212
+ }
213
+ declare const Value: {
214
+ ({ children, className, placeholder, ref: forwardedRef }: ValueProps): react_jsx_runtime.JSX.Element;
215
+ displayName: string;
216
+ };
217
+
218
+ declare const Dropdown: typeof Dropdown$1 & {
219
+ Group: typeof Group;
220
+ Item: typeof Item;
221
+ Items: typeof Items;
222
+ ItemText: typeof ItemText;
223
+ ItemIndicator: typeof ItemIndicator;
224
+ Label: typeof Label;
225
+ Popover: typeof Popover;
226
+ Divider: typeof Divider;
227
+ Trigger: typeof Trigger;
228
+ Value: typeof Value;
229
+ LeadingIcon: typeof LeadingIcon;
230
+ Portal: typeof Portal;
231
+ };
232
+
233
+ export { Dropdown, DropdownProvider, useDropdownContext };