@bricks-toolkit/toolkit 0.1.1 → 0.1.2

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 (332) hide show
  1. package/README.md +9 -9
  2. package/dist/avatar/index.cjs +11 -1
  3. package/dist/avatar/index.mjs +2 -1
  4. package/dist/badge/index.cjs +11 -1
  5. package/dist/badge/index.mjs +2 -1
  6. package/dist/breadcrumbs/index.cjs +11 -1
  7. package/dist/breadcrumbs/index.mjs +2 -1
  8. package/dist/button/index.cjs +13 -2
  9. package/dist/button/index.mjs +4 -2
  10. package/dist/card/index.cjs +31 -1
  11. package/dist/card/index.mjs +2 -1
  12. package/dist/checkbox/index.cjs +11 -1
  13. package/dist/checkbox/index.mjs +2 -1
  14. package/dist/chunk-2POU3NX4.mjs +192 -0
  15. package/dist/chunk-32SKYPQW.mjs +156 -0
  16. package/dist/chunk-446OJWC6.mjs +285 -0
  17. package/dist/chunk-4DA7CRNV.mjs +376 -0
  18. package/dist/chunk-4DR57X7U.mjs +182 -0
  19. package/dist/chunk-4QSDPHPI.mjs +285 -0
  20. package/dist/chunk-56ILK7Y4.cjs +315 -0
  21. package/dist/chunk-5J3OMAO4.cjs +222 -0
  22. package/dist/chunk-5RKET2JO.cjs +287 -0
  23. package/dist/chunk-65UZC3FK.mjs +312 -0
  24. package/dist/chunk-6CC5KIA5.cjs +148 -0
  25. package/dist/chunk-6R3OYBQ6.cjs +209 -0
  26. package/dist/chunk-6UO72EJA.cjs +2 -0
  27. package/dist/chunk-6ZCY4O5M.mjs +63 -0
  28. package/dist/chunk-7364SUK6.mjs +359 -0
  29. package/dist/chunk-7DDDQ3RH.cjs +66 -0
  30. package/dist/chunk-7PDGAIC3.cjs +189 -0
  31. package/dist/chunk-7R5JRJ2W.cjs +255 -0
  32. package/dist/chunk-7WNJ7L4Z.mjs +335 -0
  33. package/dist/chunk-AJXVELXK.cjs +218 -0
  34. package/dist/chunk-ARTXRQO6.mjs +1 -0
  35. package/dist/chunk-B4OV5GRT.cjs +510 -0
  36. package/dist/chunk-B5MYGYJY.mjs +122 -0
  37. package/dist/chunk-BBVWG5GH.cjs +75 -0
  38. package/dist/chunk-BVBCAAES.mjs +35 -0
  39. package/dist/chunk-CBA54EY4.mjs +508 -0
  40. package/dist/chunk-CMER5LO3.mjs +330 -0
  41. package/dist/chunk-DHC5LI2P.cjs +338 -0
  42. package/dist/chunk-DMLPA65B.mjs +107 -0
  43. package/dist/chunk-DN2GFJF4.mjs +175 -0
  44. package/dist/chunk-ECLNLPOR.cjs +70 -0
  45. package/dist/chunk-EV463QT5.cjs +53 -0
  46. package/dist/chunk-FOVJHEWH.mjs +51 -0
  47. package/dist/chunk-G4HVY6FM.mjs +203 -0
  48. package/dist/chunk-H77YWN3L.mjs +220 -0
  49. package/dist/chunk-HIWJDLIS.cjs +124 -0
  50. package/dist/chunk-HQGDSOSN.mjs +274 -0
  51. package/dist/chunk-JKPNJ4PZ.mjs +313 -0
  52. package/dist/chunk-JV6AWBN5.mjs +113 -0
  53. package/dist/chunk-KA35BV7V.mjs +207 -0
  54. package/dist/chunk-KLBABQEJ.cjs +378 -0
  55. package/dist/chunk-L5VQZZVR.cjs +3197 -0
  56. package/dist/chunk-LTG6YP5I.cjs +69 -0
  57. package/dist/chunk-MVUNJPGH.cjs +184 -0
  58. package/dist/chunk-NMJ5CVZH.cjs +2 -0
  59. package/dist/chunk-NRCNRHXL.cjs +109 -0
  60. package/dist/chunk-NRZIXK35.cjs +276 -0
  61. package/dist/chunk-OCPFOFJ4.mjs +3195 -0
  62. package/dist/chunk-OEU5VG3D.cjs +362 -0
  63. package/dist/chunk-OPOCCRJG.cjs +193 -0
  64. package/dist/chunk-OQPCL5XX.mjs +187 -0
  65. package/dist/chunk-PCYGJNEQ.cjs +280 -0
  66. package/dist/chunk-PJH2KEWK.mjs +200 -0
  67. package/dist/chunk-PJWELBN2.cjs +115 -0
  68. package/dist/chunk-Q3IFXFFD.cjs +202 -0
  69. package/dist/chunk-R72GDCWE.cjs +314 -0
  70. package/dist/chunk-RAD5VJHR.mjs +146 -0
  71. package/dist/chunk-RYWDZHKG.mjs +274 -0
  72. package/dist/chunk-S7VEND5Z.cjs +162 -0
  73. package/dist/chunk-SBNNV6FE.mjs +1 -0
  74. package/dist/chunk-SFUOCZJY.mjs +187 -0
  75. package/dist/chunk-SHQ2MPBE.mjs +73 -0
  76. package/dist/chunk-TIVSMCXZ.mjs +253 -0
  77. package/dist/chunk-TNGW5YHA.cjs +37 -0
  78. package/dist/chunk-VC7MOPU6.cjs +287 -0
  79. package/dist/chunk-VHVFRWF5.mjs +64 -0
  80. package/dist/chunk-VKQDW7C2.mjs +336 -0
  81. package/dist/chunk-VRZFAKSV.cjs +177 -0
  82. package/dist/chunk-W2ZAPLQH.cjs +337 -0
  83. package/dist/chunk-XFNRKHHF.cjs +332 -0
  84. package/dist/chunk-Y3NTKFUE.mjs +66 -0
  85. package/dist/chunk-Y6AN7AWX.cjs +205 -0
  86. package/dist/chunk-YMMNWJT6.cjs +134 -0
  87. package/dist/chunk-YOTCXSXL.mjs +132 -0
  88. package/dist/combo-box/index.cjs +11 -1
  89. package/dist/combo-box/index.mjs +2 -1
  90. package/dist/date-picker/index.cjs +11 -2
  91. package/dist/date-picker/index.mjs +2 -2
  92. package/dist/dialog/index.cjs +27 -1
  93. package/dist/dialog/index.mjs +2 -1
  94. package/dist/dropdown-menu/index.cjs +27 -1
  95. package/dist/dropdown-menu/index.mjs +2 -1
  96. package/dist/email/index.cjs +11 -2
  97. package/dist/email/index.mjs +2 -2
  98. package/dist/file-upload/index.cjs +11 -1
  99. package/dist/file-upload/index.mjs +2 -1
  100. package/dist/header/index.cjs +14 -2
  101. package/dist/header/index.mjs +5 -2
  102. package/dist/icon-button/index.cjs +13 -2
  103. package/dist/icon-button/index.mjs +4 -2
  104. package/dist/image/index.cjs +12 -1
  105. package/dist/image/index.mjs +3 -1
  106. package/dist/index.cjs +839 -2
  107. package/dist/index.d.ts +141 -75
  108. package/dist/index.mjs +601 -2
  109. package/dist/link/index.cjs +11 -1
  110. package/dist/link/index.mjs +2 -1
  111. package/dist/loader/index.cjs +11 -2
  112. package/dist/loader/index.mjs +2 -2
  113. package/dist/modal/index.cjs +27 -1
  114. package/dist/modal/index.mjs +2 -1
  115. package/dist/multi-select/index.cjs +11 -2
  116. package/dist/multi-select/index.mjs +2 -2
  117. package/dist/otp-input/index.cjs +11 -1
  118. package/dist/otp-input/index.mjs +2 -1
  119. package/dist/password-input/index.cjs +11 -2
  120. package/dist/password-input/index.mjs +2 -2
  121. package/dist/phone/index.cjs +11 -2
  122. package/dist/phone/index.mjs +2 -2
  123. package/dist/radio-button/index.cjs +11 -1
  124. package/dist/radio-button/index.mjs +2 -1
  125. package/dist/search-input/index.cjs +12 -2
  126. package/dist/search-input/index.mjs +3 -2
  127. package/dist/select/index.cjs +11 -2
  128. package/dist/select/index.mjs +2 -2
  129. package/dist/sidebar/index.cjs +11 -1
  130. package/dist/sidebar/index.mjs +2 -1
  131. package/dist/skeleton/index.cjs +27 -1
  132. package/dist/skeleton/index.mjs +2 -1
  133. package/dist/styles.css +5074 -1
  134. package/dist/table/index.cjs +15 -1
  135. package/dist/table/index.mjs +2 -1
  136. package/dist/tabs/index.cjs +14 -2
  137. package/dist/tabs/index.mjs +5 -2
  138. package/dist/text-input/index.cjs +11 -2
  139. package/dist/text-input/index.mjs +2 -2
  140. package/dist/theme-provider/index.cjs +14 -1
  141. package/dist/theme-provider/index.mjs +1 -1
  142. package/dist/time-picker/index.cjs +11 -2
  143. package/dist/time-picker/index.mjs +2 -2
  144. package/dist/toaster/index.cjs +11 -1
  145. package/dist/toaster/index.mjs +2 -1
  146. package/dist/tooltip/index.cjs +12 -1
  147. package/dist/tooltip/index.mjs +3 -1
  148. package/package.json +122 -141
  149. package/dist/components/Accordion/Accordion.d.ts +0 -5
  150. package/dist/components/Accordion/Accordion.types.d.ts +0 -32
  151. package/dist/components/Accordion/index.d.ts +0 -2
  152. package/dist/components/Avatar/Avatar.d.ts +0 -2
  153. package/dist/components/Avatar/Avatar.stories.d.ts +0 -11
  154. package/dist/components/Avatar/Avatar.test.d.ts +0 -1
  155. package/dist/components/Avatar/Avatar.types.d.ts +0 -24
  156. package/dist/components/Avatar/index.d.ts +0 -2
  157. package/dist/components/Badge/Badge.d.ts +0 -11
  158. package/dist/components/Badge/Badge.stories.d.ts +0 -21
  159. package/dist/components/Badge/Badge.test.d.ts +0 -1
  160. package/dist/components/Badge/Badge.types.d.ts +0 -43
  161. package/dist/components/Badge/index.d.ts +0 -2
  162. package/dist/components/Breadcrumbs/Breadcrumbs.d.ts +0 -2
  163. package/dist/components/Breadcrumbs/Breadcrumbs.stories.d.ts +0 -13
  164. package/dist/components/Breadcrumbs/Breadcrumbs.test.d.ts +0 -1
  165. package/dist/components/Breadcrumbs/Breadcrumbs.types.d.ts +0 -27
  166. package/dist/components/Breadcrumbs/index.d.ts +0 -2
  167. package/dist/components/Button/Button.d.ts +0 -2
  168. package/dist/components/Button/Button.stories.d.ts +0 -20
  169. package/dist/components/Button/Button.test.d.ts +0 -1
  170. package/dist/components/Button/Button.types.d.ts +0 -24
  171. package/dist/components/Button/index.d.ts +0 -2
  172. package/dist/components/Card/Card.d.ts +0 -25
  173. package/dist/components/Card/Card.stories.d.ts +0 -8
  174. package/dist/components/Card/Card.test.d.ts +0 -1
  175. package/dist/components/Card/Card.types.d.ts +0 -14
  176. package/dist/components/Card/index.d.ts +0 -2
  177. package/dist/components/Checkbox/Checkbox.d.ts +0 -2
  178. package/dist/components/Checkbox/Checkbox.stories.d.ts +0 -16
  179. package/dist/components/Checkbox/Checkbox.test.d.ts +0 -1
  180. package/dist/components/Checkbox/Checkbox.types.d.ts +0 -31
  181. package/dist/components/Checkbox/index.d.ts +0 -2
  182. package/dist/components/ComboBox/ComboBox.d.ts +0 -2
  183. package/dist/components/ComboBox/ComboBox.stories.d.ts +0 -12
  184. package/dist/components/ComboBox/ComboBox.test.d.ts +0 -1
  185. package/dist/components/ComboBox/ComboBox.types.d.ts +0 -57
  186. package/dist/components/ComboBox/index.d.ts +0 -2
  187. package/dist/components/DatePicker/DatePicker.d.ts +0 -2
  188. package/dist/components/DatePicker/DatePicker.stories.d.ts +0 -25
  189. package/dist/components/DatePicker/DatePicker.test.d.ts +0 -1
  190. package/dist/components/DatePicker/DatePicker.types.d.ts +0 -27
  191. package/dist/components/DatePicker/index.d.ts +0 -2
  192. package/dist/components/Dialog/Dialog.d.ts +0 -6
  193. package/dist/components/Dialog/Dialog.stories.d.ts +0 -9
  194. package/dist/components/Dialog/Dialog.test.d.ts +0 -1
  195. package/dist/components/Dialog/Dialog.types.d.ts +0 -52
  196. package/dist/components/Dialog/index.d.ts +0 -2
  197. package/dist/components/DropdownMenu/DropdownMenu.d.ts +0 -7
  198. package/dist/components/DropdownMenu/DropdownMenu.stories.d.ts +0 -9
  199. package/dist/components/DropdownMenu/DropdownMenu.test.d.ts +0 -1
  200. package/dist/components/DropdownMenu/DropdownMenu.types.d.ts +0 -24
  201. package/dist/components/DropdownMenu/index.d.ts +0 -2
  202. package/dist/components/Email/Email.d.ts +0 -2
  203. package/dist/components/Email/Email.stories.d.ts +0 -11
  204. package/dist/components/Email/Email.test.d.ts +0 -1
  205. package/dist/components/Email/Email.types.d.ts +0 -33
  206. package/dist/components/Email/index.d.ts +0 -2
  207. package/dist/components/FileUpload/FileUpload.d.ts +0 -2
  208. package/dist/components/FileUpload/FileUpload.stories.d.ts +0 -10
  209. package/dist/components/FileUpload/FileUpload.test.d.ts +0 -1
  210. package/dist/components/FileUpload/FileUpload.types.d.ts +0 -22
  211. package/dist/components/FileUpload/index.d.ts +0 -2
  212. package/dist/components/Header/Header.d.ts +0 -7
  213. package/dist/components/Header/Header.stories.d.ts +0 -8
  214. package/dist/components/Header/Header.test.d.ts +0 -1
  215. package/dist/components/Header/Header.types.d.ts +0 -19
  216. package/dist/components/Header/index.d.ts +0 -2
  217. package/dist/components/IconButton/IconButton.d.ts +0 -2
  218. package/dist/components/IconButton/IconButton.stories.d.ts +0 -17
  219. package/dist/components/IconButton/IconButton.types.d.ts +0 -10
  220. package/dist/components/IconButton/index.d.ts +0 -2
  221. package/dist/components/Image/Image.d.ts +0 -6
  222. package/dist/components/Image/Image.stories.d.ts +0 -13
  223. package/dist/components/Image/Image.test.d.ts +0 -1
  224. package/dist/components/Image/Image.types.d.ts +0 -40
  225. package/dist/components/Image/index.d.ts +0 -2
  226. package/dist/components/Link/Link.d.ts +0 -2
  227. package/dist/components/Link/Link.stories.d.ts +0 -15
  228. package/dist/components/Link/Link.test.d.ts +0 -1
  229. package/dist/components/Link/Link.types.d.ts +0 -20
  230. package/dist/components/Link/index.d.ts +0 -2
  231. package/dist/components/Loader/Loader.d.ts +0 -2
  232. package/dist/components/Loader/Loader.stories.d.ts +0 -12
  233. package/dist/components/Loader/Loader.test.d.ts +0 -1
  234. package/dist/components/Loader/Loader.types.d.ts +0 -17
  235. package/dist/components/Loader/index.d.ts +0 -2
  236. package/dist/components/Modal/Modal.d.ts +0 -14
  237. package/dist/components/Modal/Modal.stories.d.ts +0 -14
  238. package/dist/components/Modal/Modal.test.d.ts +0 -1
  239. package/dist/components/Modal/Modal.types.d.ts +0 -100
  240. package/dist/components/Modal/index.d.ts +0 -2
  241. package/dist/components/MultiSelect/MultiSelect.d.ts +0 -2
  242. package/dist/components/MultiSelect/MultiSelect.stories.d.ts +0 -15
  243. package/dist/components/MultiSelect/MultiSelect.test.d.ts +0 -1
  244. package/dist/components/MultiSelect/MultiSelect.types.d.ts +0 -55
  245. package/dist/components/MultiSelect/index.d.ts +0 -2
  246. package/dist/components/OtpInput/OtpInput.d.ts +0 -2
  247. package/dist/components/OtpInput/OtpInput.stories.d.ts +0 -10
  248. package/dist/components/OtpInput/OtpInput.test.d.ts +0 -1
  249. package/dist/components/OtpInput/OtpInput.types.d.ts +0 -53
  250. package/dist/components/OtpInput/index.d.ts +0 -2
  251. package/dist/components/PasswordInput/PasswordInput.d.ts +0 -2
  252. package/dist/components/PasswordInput/PasswordInput.stories.d.ts +0 -23
  253. package/dist/components/PasswordInput/PasswordInput.test.d.ts +0 -1
  254. package/dist/components/PasswordInput/PasswordInput.types.d.ts +0 -27
  255. package/dist/components/PasswordInput/index.d.ts +0 -2
  256. package/dist/components/Phone/Phone.d.ts +0 -2
  257. package/dist/components/Phone/Phone.stories.d.ts +0 -11
  258. package/dist/components/Phone/Phone.test.d.ts +0 -1
  259. package/dist/components/Phone/Phone.types.d.ts +0 -36
  260. package/dist/components/Phone/countries.d.ts +0 -8
  261. package/dist/components/Phone/index.d.ts +0 -2
  262. package/dist/components/RadioButton/RadioButton.d.ts +0 -2
  263. package/dist/components/RadioButton/RadioButton.stories.d.ts +0 -21
  264. package/dist/components/RadioButton/RadioButton.test.d.ts +0 -1
  265. package/dist/components/RadioButton/RadioButton.types.d.ts +0 -51
  266. package/dist/components/RadioButton/index.d.ts +0 -2
  267. package/dist/components/SearchInput/SearchInput.d.ts +0 -6
  268. package/dist/components/SearchInput/SearchInput.stories.d.ts +0 -8
  269. package/dist/components/SearchInput/SearchInput.test.d.ts +0 -1
  270. package/dist/components/SearchInput/SearchInput.types.d.ts +0 -12
  271. package/dist/components/SearchInput/index.d.ts +0 -2
  272. package/dist/components/Select/Select.d.ts +0 -2
  273. package/dist/components/Select/Select.stories.d.ts +0 -12
  274. package/dist/components/Select/Select.test.d.ts +0 -1
  275. package/dist/components/Select/Select.types.d.ts +0 -31
  276. package/dist/components/Select/index.d.ts +0 -2
  277. package/dist/components/Sidebar/Sidebar.d.ts +0 -7
  278. package/dist/components/Sidebar/Sidebar.stories.d.ts +0 -10
  279. package/dist/components/Sidebar/Sidebar.test.d.ts +0 -1
  280. package/dist/components/Sidebar/Sidebar.types.d.ts +0 -87
  281. package/dist/components/Sidebar/index.d.ts +0 -2
  282. package/dist/components/Skeleton/Skeleton.d.ts +0 -26
  283. package/dist/components/Skeleton/Skeleton.stories.d.ts +0 -13
  284. package/dist/components/Skeleton/Skeleton.types.d.ts +0 -47
  285. package/dist/components/Skeleton/index.d.ts +0 -2
  286. package/dist/components/Stepper/Stepper.d.ts +0 -2
  287. package/dist/components/Stepper/Stepper.stories.d.ts +0 -23
  288. package/dist/components/Stepper/Stepper.test.d.ts +0 -1
  289. package/dist/components/Stepper/Stepper.types.d.ts +0 -47
  290. package/dist/components/Stepper/index.d.ts +0 -2
  291. package/dist/components/Table/Pagination.d.ts +0 -3
  292. package/dist/components/Table/Table.d.ts +0 -3
  293. package/dist/components/Table/Table.stories.d.ts +0 -13
  294. package/dist/components/Table/Table.test.d.ts +0 -1
  295. package/dist/components/Table/Table.types.d.ts +0 -85
  296. package/dist/components/Table/index.d.ts +0 -3
  297. package/dist/components/Tabs/Tabs.d.ts +0 -2
  298. package/dist/components/Tabs/Tabs.stories.d.ts +0 -17
  299. package/dist/components/Tabs/Tabs.test.d.ts +0 -1
  300. package/dist/components/Tabs/Tabs.types.d.ts +0 -21
  301. package/dist/components/Tabs/index.d.ts +0 -2
  302. package/dist/components/TextInput/TextInput.d.ts +0 -2
  303. package/dist/components/TextInput/TextInput.stories.d.ts +0 -25
  304. package/dist/components/TextInput/TextInput.test.d.ts +0 -1
  305. package/dist/components/TextInput/TextInput.types.d.ts +0 -29
  306. package/dist/components/TextInput/index.d.ts +0 -2
  307. package/dist/components/ThemeProvider/ThemeProvider.d.ts +0 -8
  308. package/dist/components/ThemeProvider/ThemeProvider.stories.d.ts +0 -16
  309. package/dist/components/ThemeProvider/ThemeProvider.test.d.ts +0 -1
  310. package/dist/components/ThemeProvider/ThemeProvider.types.d.ts +0 -112
  311. package/dist/components/ThemeProvider/index.d.ts +0 -2
  312. package/dist/components/TimePicker/TimePicker.d.ts +0 -2
  313. package/dist/components/TimePicker/TimePicker.stories.d.ts +0 -23
  314. package/dist/components/TimePicker/TimePicker.test.d.ts +0 -1
  315. package/dist/components/TimePicker/TimePicker.types.d.ts +0 -27
  316. package/dist/components/TimePicker/index.d.ts +0 -2
  317. package/dist/components/Toaster/Toaster.d.ts +0 -2
  318. package/dist/components/Toaster/Toaster.stories.d.ts +0 -13
  319. package/dist/components/Toaster/Toaster.test.d.ts +0 -1
  320. package/dist/components/Toaster/Toaster.types.d.ts +0 -23
  321. package/dist/components/Toaster/index.d.ts +0 -2
  322. package/dist/components/Toggle/Toggle.d.ts +0 -2
  323. package/dist/components/Toggle/Toggle.stories.d.ts +0 -11
  324. package/dist/components/Toggle/Toggle.types.d.ts +0 -10
  325. package/dist/components/Toggle/index.d.ts +0 -2
  326. package/dist/components/Tooltip/Tooltip.d.ts +0 -2
  327. package/dist/components/Tooltip/Tooltip.stories.d.ts +0 -13
  328. package/dist/components/Tooltip/Tooltip.test.d.ts +0 -1
  329. package/dist/components/Tooltip/Tooltip.types.d.ts +0 -33
  330. package/dist/components/Tooltip/index.d.ts +0 -2
  331. package/dist/utils/cn.d.ts +0 -2
  332. package/dist/utils/index.d.ts +0 -1
@@ -0,0 +1,378 @@
1
+ 'use strict';
2
+
3
+ var chunkL5VQZZVR_cjs = require('./chunk-L5VQZZVR.cjs');
4
+ var react = require('react');
5
+ var solid = require('@heroicons/react/20/solid');
6
+ var jsxRuntime = require('react/jsx-runtime');
7
+
8
+ var triggerSizeClasses = {
9
+ xs: "h-6 px-2 text-xs",
10
+ sm: "h-8 px-3 text-sm",
11
+ md: "h-10 px-3 text-sm",
12
+ lg: "h-11 px-4 text-base",
13
+ xl: "h-12 px-4 text-lg"
14
+ };
15
+ var labelSizeClasses = {
16
+ xs: "text-xs",
17
+ sm: "text-xs",
18
+ md: "text-sm",
19
+ lg: "text-sm",
20
+ xl: "text-base"
21
+ };
22
+ var optionSizeClasses = {
23
+ xs: "px-2 py-1 text-xs",
24
+ sm: "px-3 py-1.5 text-xs",
25
+ md: "px-3 py-2 text-sm",
26
+ lg: "px-4 py-2.5 text-base",
27
+ xl: "px-4 py-3 text-lg"
28
+ };
29
+ var stateRingClasses = {
30
+ default: "border-border focus-within:border-primary focus-within:ring-2 focus-within:ring-primary/40",
31
+ error: "border-error focus-within:ring-2 focus-within:ring-error/20",
32
+ success: "border-success focus-within:ring-2 focus-within:ring-success/20",
33
+ warning: "border-warning focus-within:ring-2 focus-within:ring-warning/20"
34
+ };
35
+ var stateMessageClasses = {
36
+ default: "text-text-muted",
37
+ error: "text-error font-medium",
38
+ success: "text-success font-medium",
39
+ warning: "text-warning font-medium"
40
+ };
41
+ function getStateMessage(state, errorMessage, successMessage, warningMessage) {
42
+ if (state === "error" && errorMessage) return errorMessage;
43
+ if (state === "success" && successMessage) return successMessage;
44
+ if (state === "warning" && warningMessage) return warningMessage;
45
+ return void 0;
46
+ }
47
+ var ComboBox = react.forwardRef(function ComboBox2({
48
+ options,
49
+ value,
50
+ onChange,
51
+ multiple = false,
52
+ searchable = true,
53
+ clearable = false,
54
+ label,
55
+ required = false,
56
+ helperText,
57
+ errorMessage,
58
+ successMessage,
59
+ warningMessage,
60
+ state = "default",
61
+ size = "md",
62
+ fullWidth = true,
63
+ placeholder = "Select\u2026",
64
+ noOptionsMessage = "No options",
65
+ wrapperClassName,
66
+ inputClassName,
67
+ listClassName,
68
+ labelClassName,
69
+ helperClassName,
70
+ disabled,
71
+ id: idProp,
72
+ className,
73
+ ...rest
74
+ }, ref) {
75
+ const generatedId = react.useId();
76
+ const inputId = idProp ?? generatedId;
77
+ const listboxId = `${inputId}-listbox`;
78
+ const helperId = `${inputId}-helper`;
79
+ const stateMessageId = `${inputId}-state`;
80
+ const [isOpen, setIsOpen] = react.useState(false);
81
+ const [query, setQuery] = react.useState("");
82
+ const [activeIndex, setActiveIndex] = react.useState(-1);
83
+ const containerRef = react.useRef(null);
84
+ const inputRef = react.useRef(null);
85
+ const selectedValues = react.useMemo(
86
+ () => value == null ? [] : Array.isArray(value) ? value : [value],
87
+ [value]
88
+ );
89
+ const displayValue = isOpen && searchable ? query : selectedValues.map((v) => options.find((o) => o.value === v)?.label ?? v).join(", ");
90
+ const filteredOptions = isOpen && searchable && query.length > 0 ? options.filter((o) => o.label.toLowerCase().includes(query.toLowerCase())) : options;
91
+ react.useEffect(() => {
92
+ const handleClickOutside = (e) => {
93
+ if (containerRef.current && !containerRef.current.contains(e.target)) {
94
+ setIsOpen(false);
95
+ setQuery("");
96
+ }
97
+ };
98
+ document.addEventListener("mousedown", handleClickOutside);
99
+ return () => {
100
+ document.removeEventListener("mousedown", handleClickOutside);
101
+ };
102
+ }, []);
103
+ const open = react.useCallback(() => {
104
+ if (!disabled) {
105
+ setIsOpen(true);
106
+ setQuery("");
107
+ setActiveIndex(-1);
108
+ }
109
+ }, [disabled]);
110
+ const close = react.useCallback(() => {
111
+ setIsOpen(false);
112
+ setQuery("");
113
+ setActiveIndex(-1);
114
+ }, []);
115
+ const selectOption = react.useCallback(
116
+ (option) => {
117
+ if (option.disabled) return;
118
+ if (multiple) {
119
+ const next = selectedValues.includes(option.value) ? selectedValues.filter((v) => v !== option.value) : [...selectedValues, option.value];
120
+ onChange?.(next);
121
+ } else {
122
+ onChange?.(option.value);
123
+ close();
124
+ }
125
+ },
126
+ [multiple, selectedValues, onChange, close]
127
+ );
128
+ const handleClear = react.useCallback(() => {
129
+ onChange?.(multiple ? [] : "");
130
+ setQuery("");
131
+ inputRef.current?.focus();
132
+ }, [multiple, onChange]);
133
+ const handleInputChange = (e) => {
134
+ setQuery(e.target.value);
135
+ setActiveIndex(-1);
136
+ if (!isOpen) setIsOpen(true);
137
+ };
138
+ const handleKeyDown = (e) => {
139
+ if (disabled) return;
140
+ switch (e.key) {
141
+ case "ArrowDown":
142
+ e.preventDefault();
143
+ if (!isOpen) {
144
+ open();
145
+ } else {
146
+ setActiveIndex((prev) => prev < filteredOptions.length - 1 ? prev + 1 : prev);
147
+ }
148
+ break;
149
+ case "ArrowUp":
150
+ e.preventDefault();
151
+ setActiveIndex((prev) => prev > 0 ? prev - 1 : 0);
152
+ break;
153
+ case "Enter":
154
+ e.preventDefault();
155
+ if (!isOpen) {
156
+ open();
157
+ } else if (activeIndex >= 0 && activeIndex < filteredOptions.length) {
158
+ const opt = filteredOptions[activeIndex];
159
+ if (opt != null) selectOption(opt);
160
+ }
161
+ break;
162
+ case "Escape":
163
+ e.preventDefault();
164
+ close();
165
+ break;
166
+ case "Tab":
167
+ close();
168
+ break;
169
+ }
170
+ };
171
+ const stateMsg = getStateMessage(state, errorMessage, successMessage, warningMessage);
172
+ const describedBy = [helperText ? helperId : null, stateMsg ? stateMessageId : null].filter(Boolean).join(" ") || void 0;
173
+ const showClear = clearable && selectedValues.length > 0 && !disabled;
174
+ const isSelected = (val) => selectedValues.includes(val);
175
+ return /* @__PURE__ */ jsxRuntime.jsxs(
176
+ "div",
177
+ {
178
+ className: chunkL5VQZZVR_cjs.cn(
179
+ "flex flex-col gap-1",
180
+ fullWidth ? "w-full" : "w-fit",
181
+ isOpen && "z-[60]",
182
+ // Ensure the whole component stays above siblings when open
183
+ wrapperClassName,
184
+ className
185
+ ),
186
+ children: [
187
+ label != null && /* @__PURE__ */ jsxRuntime.jsxs(
188
+ "label",
189
+ {
190
+ htmlFor: inputId,
191
+ className: chunkL5VQZZVR_cjs.cn(
192
+ "font-black leading-none text-text uppercase tracking-widest",
193
+ labelSizeClasses[size],
194
+ labelClassName
195
+ ),
196
+ children: [
197
+ label,
198
+ required && /* @__PURE__ */ jsxRuntime.jsx("span", { "aria-hidden": "true", className: "ml-1 text-error", children: "*" })
199
+ ]
200
+ }
201
+ ),
202
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { ref: containerRef, className: "relative", onKeyDown: handleKeyDown, children: [
203
+ /* @__PURE__ */ jsxRuntime.jsxs(
204
+ "div",
205
+ {
206
+ className: chunkL5VQZZVR_cjs.cn(
207
+ "flex items-center w-full rounded-md border bg-surface shadow-sm transition-all duration-normal",
208
+ triggerSizeClasses[size],
209
+ stateRingClasses[state],
210
+ disabled && "cursor-not-allowed opacity-50 bg-surface-secondary"
211
+ ),
212
+ children: [
213
+ /* @__PURE__ */ jsxRuntime.jsx(
214
+ "input",
215
+ {
216
+ ...rest,
217
+ ref: (node) => {
218
+ inputRef.current = node;
219
+ if (typeof ref === "function") ref(node);
220
+ else if (ref != null) ref.current = node;
221
+ },
222
+ id: inputId,
223
+ role: "combobox",
224
+ type: "text",
225
+ autoComplete: "off",
226
+ "aria-expanded": isOpen,
227
+ "aria-haspopup": "listbox",
228
+ "aria-controls": listboxId,
229
+ "aria-autocomplete": searchable ? "list" : "none",
230
+ "aria-activedescendant": activeIndex >= 0 ? `${listboxId}-opt-${String(activeIndex)}` : void 0,
231
+ "aria-invalid": state === "error" ? true : void 0,
232
+ "aria-required": required,
233
+ "aria-describedby": describedBy,
234
+ disabled,
235
+ readOnly: !searchable,
236
+ placeholder: selectedValues.length === 0 ? placeholder : void 0,
237
+ value: displayValue,
238
+ onChange: searchable ? handleInputChange : void 0,
239
+ onFocus: open,
240
+ onClick: open,
241
+ className: chunkL5VQZZVR_cjs.cn(
242
+ "flex-1 min-w-0 bg-transparent outline-none placeholder:text-text-muted transition-all duration-normal",
243
+ !searchable && "cursor-pointer select-none",
244
+ inputClassName
245
+ )
246
+ }
247
+ ),
248
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-0.5 ml-1 shrink-0", children: [
249
+ showClear && /* @__PURE__ */ jsxRuntime.jsx(
250
+ "button",
251
+ {
252
+ type: "button",
253
+ "aria-label": "Clear selection",
254
+ onMouseDown: (e) => {
255
+ e.preventDefault();
256
+ },
257
+ onClick: handleClear,
258
+ className: "flex items-center justify-center rounded-full text-text-muted hover:text-text hover:bg-hover p-0.5 transition-all duration-fast",
259
+ children: /* @__PURE__ */ jsxRuntime.jsx(solid.XMarkIcon, { className: "w-3.5 h-3.5" })
260
+ }
261
+ ),
262
+ /* @__PURE__ */ jsxRuntime.jsx(
263
+ "span",
264
+ {
265
+ "aria-hidden": "true",
266
+ className: chunkL5VQZZVR_cjs.cn(
267
+ "text-text-muted transition-transform duration-200",
268
+ isOpen && "rotate-180"
269
+ ),
270
+ children: /* @__PURE__ */ jsxRuntime.jsx(solid.ChevronDownIcon, { className: "w-4 h-4" })
271
+ }
272
+ )
273
+ ] })
274
+ ]
275
+ }
276
+ ),
277
+ isOpen && /* @__PURE__ */ jsxRuntime.jsx(
278
+ "ul",
279
+ {
280
+ id: listboxId,
281
+ role: "listbox",
282
+ "aria-multiselectable": multiple,
283
+ "aria-label": label ?? "Options",
284
+ className: chunkL5VQZZVR_cjs.cn(
285
+ "absolute z-dropdown mt-1 w-full bg-surface border border-border rounded-lg shadow-lg overflow-y-auto max-h-60 py-1.5 animate-in fade-in zoom-in-95 duration-normal",
286
+ listClassName
287
+ ),
288
+ children: filteredOptions.length === 0 ? /* @__PURE__ */ jsxRuntime.jsx(
289
+ "li",
290
+ {
291
+ className: chunkL5VQZZVR_cjs.cn(
292
+ "text-text-muted italic select-none font-medium",
293
+ optionSizeClasses[size]
294
+ ),
295
+ children: noOptionsMessage
296
+ }
297
+ ) : filteredOptions.map((option, idx) => {
298
+ const selected = isSelected(option.value);
299
+ const active = idx === activeIndex;
300
+ return /* @__PURE__ */ jsxRuntime.jsxs(
301
+ "li",
302
+ {
303
+ id: `${listboxId}-opt-${String(idx)}`,
304
+ role: "option",
305
+ "aria-selected": selected,
306
+ "aria-disabled": option.disabled,
307
+ onMouseDown: (e) => {
308
+ e.preventDefault();
309
+ },
310
+ onClick: () => {
311
+ selectOption(option);
312
+ },
313
+ onKeyDown: (e) => {
314
+ if (e.key === "Enter" || e.key === " ") {
315
+ e.preventDefault();
316
+ selectOption(option);
317
+ }
318
+ },
319
+ onMouseEnter: () => {
320
+ setActiveIndex(idx);
321
+ },
322
+ className: chunkL5VQZZVR_cjs.cn(
323
+ "flex items-center gap-2 cursor-pointer select-none transition-all duration-fast font-medium",
324
+ optionSizeClasses[size],
325
+ active && !option.disabled && "bg-hover",
326
+ selected && "text-primary font-bold",
327
+ option.disabled && "cursor-not-allowed opacity-40"
328
+ ),
329
+ children: [
330
+ multiple && /* @__PURE__ */ jsxRuntime.jsx(
331
+ "span",
332
+ {
333
+ className: chunkL5VQZZVR_cjs.cn(
334
+ "shrink-0 w-4 h-4 rounded-sm border flex items-center justify-center transition-all duration-normal",
335
+ selected ? "bg-primary border-primary" : "border-border"
336
+ ),
337
+ "aria-hidden": "true",
338
+ children: selected && /* @__PURE__ */ jsxRuntime.jsx(solid.CheckIcon, { className: "w-2.5 h-2.5 text-text-inverse" })
339
+ }
340
+ ),
341
+ !multiple && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "w-4 shrink-0", "aria-hidden": "true", children: selected && /* @__PURE__ */ jsxRuntime.jsx(solid.CheckIcon, { className: "w-4 h-4 text-primary" }) }),
342
+ option.label
343
+ ]
344
+ },
345
+ option.value
346
+ );
347
+ })
348
+ }
349
+ )
350
+ ] }),
351
+ helperText != null && /* @__PURE__ */ jsxRuntime.jsx(
352
+ "p",
353
+ {
354
+ id: helperId,
355
+ className: chunkL5VQZZVR_cjs.cn("text-xs leading-tight text-text-muted font-medium", helperClassName),
356
+ children: helperText
357
+ }
358
+ ),
359
+ stateMsg != null && /* @__PURE__ */ jsxRuntime.jsx(
360
+ "p",
361
+ {
362
+ id: stateMessageId,
363
+ role: state === "error" ? "alert" : void 0,
364
+ className: chunkL5VQZZVR_cjs.cn(
365
+ "text-xs leading-tight font-medium",
366
+ stateMessageClasses[state],
367
+ helperClassName
368
+ ),
369
+ children: stateMsg
370
+ }
371
+ )
372
+ ]
373
+ }
374
+ );
375
+ });
376
+ ComboBox.displayName = "ComboBox";
377
+
378
+ exports.ComboBox = ComboBox;