@raystack/apsara 0.56.6 → 1.0.0-rc.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 (605) hide show
  1. package/README.md +3 -3
  2. package/dist/components/accordion/accordion-content.cjs +3 -3
  3. package/dist/components/accordion/accordion-content.cjs.map +1 -1
  4. package/dist/components/accordion/accordion-content.d.ts +1 -7
  5. package/dist/components/accordion/accordion-content.d.ts.map +1 -1
  6. package/dist/components/accordion/accordion-content.js +3 -3
  7. package/dist/components/accordion/accordion-content.js.map +1 -1
  8. package/dist/components/accordion/accordion-item.cjs +3 -3
  9. package/dist/components/accordion/accordion-item.cjs.map +1 -1
  10. package/dist/components/accordion/accordion-item.d.ts +1 -7
  11. package/dist/components/accordion/accordion-item.d.ts.map +1 -1
  12. package/dist/components/accordion/accordion-item.js +2 -2
  13. package/dist/components/accordion/accordion-item.js.map +1 -1
  14. package/dist/components/accordion/accordion-root.cjs +24 -13
  15. package/dist/components/accordion/accordion-root.cjs.map +1 -1
  16. package/dist/components/accordion/accordion-root.d.ts +12 -6
  17. package/dist/components/accordion/accordion-root.d.ts.map +1 -1
  18. package/dist/components/accordion/accordion-root.js +24 -13
  19. package/dist/components/accordion/accordion-root.js.map +1 -1
  20. package/dist/components/accordion/accordion-trigger.cjs +3 -3
  21. package/dist/components/accordion/accordion-trigger.cjs.map +1 -1
  22. package/dist/components/accordion/accordion-trigger.d.ts +1 -7
  23. package/dist/components/accordion/accordion-trigger.d.ts.map +1 -1
  24. package/dist/components/accordion/accordion-trigger.js +2 -2
  25. package/dist/components/accordion/accordion-trigger.js.map +1 -1
  26. package/dist/components/accordion/accordion.d.ts +14 -4
  27. package/dist/components/accordion/accordion.d.ts.map +1 -1
  28. package/dist/components/accordion/accordion.module.css.cjs +1 -1
  29. package/dist/components/accordion/accordion.module.css.js +1 -1
  30. package/dist/components/avatar/avatar.cjs +4 -5
  31. package/dist/components/avatar/avatar.cjs.map +1 -1
  32. package/dist/components/avatar/avatar.d.ts +4 -5
  33. package/dist/components/avatar/avatar.d.ts.map +1 -1
  34. package/dist/components/avatar/avatar.js +4 -5
  35. package/dist/components/avatar/avatar.js.map +1 -1
  36. package/dist/components/avatar/index.d.ts +2 -2
  37. package/dist/components/breadcrumb/breadcrumb-item.cjs +2 -2
  38. package/dist/components/breadcrumb/breadcrumb-item.cjs.map +1 -1
  39. package/dist/components/breadcrumb/breadcrumb-item.d.ts +3 -3
  40. package/dist/components/breadcrumb/breadcrumb-item.d.ts.map +1 -1
  41. package/dist/components/breadcrumb/breadcrumb-item.js +2 -2
  42. package/dist/components/breadcrumb/breadcrumb-item.js.map +1 -1
  43. package/dist/components/button/button.cjs +3 -4
  44. package/dist/components/button/button.cjs.map +1 -1
  45. package/dist/components/button/button.d.ts +12 -11
  46. package/dist/components/button/button.d.ts.map +1 -1
  47. package/dist/components/button/button.js +3 -4
  48. package/dist/components/button/button.js.map +1 -1
  49. package/dist/components/calendar/calendar.cjs +1 -2
  50. package/dist/components/calendar/calendar.cjs.map +1 -1
  51. package/dist/components/calendar/calendar.d.ts.map +1 -1
  52. package/dist/components/calendar/calendar.js +2 -3
  53. package/dist/components/calendar/calendar.js.map +1 -1
  54. package/dist/components/checkbox/__tests__/checkbox-group.test.d.ts +2 -0
  55. package/dist/components/checkbox/__tests__/checkbox-group.test.d.ts.map +1 -0
  56. package/dist/components/checkbox/checkbox.cjs +10 -21
  57. package/dist/components/checkbox/checkbox.cjs.map +1 -1
  58. package/dist/components/checkbox/checkbox.d.ts +3 -13
  59. package/dist/components/checkbox/checkbox.d.ts.map +1 -1
  60. package/dist/components/checkbox/checkbox.js +11 -22
  61. package/dist/components/checkbox/checkbox.js.map +1 -1
  62. package/dist/components/checkbox/checkbox.module.css.cjs +1 -1
  63. package/dist/components/checkbox/checkbox.module.css.js +1 -1
  64. package/dist/components/checkbox/index.d.ts +1 -1
  65. package/dist/components/chip/chip.d.ts +1 -1
  66. package/dist/components/code-block/code-block-misc.d.ts +15 -15
  67. package/dist/components/code-block/code-block-misc.d.ts.map +1 -1
  68. package/dist/components/code-block/code-block.d.ts +100 -0
  69. package/dist/components/code-block/code-block.d.ts.map +1 -0
  70. package/dist/components/collapsible/__tests__/collapsible.test.d.ts +2 -0
  71. package/dist/components/collapsible/__tests__/collapsible.test.d.ts.map +1 -0
  72. package/dist/components/collapsible/collapsible.cjs +22 -0
  73. package/dist/components/collapsible/collapsible.cjs.map +1 -0
  74. package/dist/components/collapsible/collapsible.d.ts +5 -0
  75. package/dist/components/collapsible/collapsible.d.ts.map +1 -0
  76. package/dist/components/collapsible/collapsible.js +20 -0
  77. package/dist/components/collapsible/collapsible.js.map +1 -0
  78. package/dist/components/collapsible/collapsible.module.css.cjs +8 -0
  79. package/dist/components/collapsible/collapsible.module.css.cjs.map +1 -0
  80. package/dist/components/collapsible/collapsible.module.css.js +4 -0
  81. package/dist/components/collapsible/collapsible.module.css.js.map +1 -0
  82. package/dist/components/collapsible/index.d.ts +2 -0
  83. package/dist/components/collapsible/index.d.ts.map +1 -0
  84. package/dist/components/color-picker/color-picker-alpha.cjs +3 -3
  85. package/dist/components/color-picker/color-picker-alpha.cjs.map +1 -1
  86. package/dist/components/color-picker/color-picker-alpha.d.ts +2 -3
  87. package/dist/components/color-picker/color-picker-alpha.d.ts.map +1 -1
  88. package/dist/components/color-picker/color-picker-alpha.js +4 -4
  89. package/dist/components/color-picker/color-picker-alpha.js.map +1 -1
  90. package/dist/components/color-picker/color-picker-hue.cjs +3 -3
  91. package/dist/components/color-picker/color-picker-hue.cjs.map +1 -1
  92. package/dist/components/color-picker/color-picker-hue.d.ts +2 -3
  93. package/dist/components/color-picker/color-picker-hue.d.ts.map +1 -1
  94. package/dist/components/color-picker/color-picker-hue.js +4 -4
  95. package/dist/components/color-picker/color-picker-hue.js.map +1 -1
  96. package/dist/components/color-picker/color-picker.d.ts +8 -0
  97. package/dist/components/color-picker/color-picker.d.ts.map +1 -0
  98. package/dist/components/color-picker/color-picker.module.css.cjs +1 -1
  99. package/dist/components/color-picker/color-picker.module.css.js +1 -1
  100. package/dist/components/combobox/combobox-content.cjs +5 -26
  101. package/dist/components/combobox/combobox-content.cjs.map +1 -1
  102. package/dist/components/combobox/combobox-content.d.ts +3 -4
  103. package/dist/components/combobox/combobox-content.d.ts.map +1 -1
  104. package/dist/components/combobox/combobox-content.js +6 -27
  105. package/dist/components/combobox/combobox-content.js.map +1 -1
  106. package/dist/components/combobox/combobox-input.cjs +10 -33
  107. package/dist/components/combobox/combobox-input.cjs.map +1 -1
  108. package/dist/components/combobox/combobox-input.d.ts.map +1 -1
  109. package/dist/components/combobox/combobox-input.js +11 -34
  110. package/dist/components/combobox/combobox-input.js.map +1 -1
  111. package/dist/components/combobox/combobox-item.cjs +15 -15
  112. package/dist/components/combobox/combobox-item.cjs.map +1 -1
  113. package/dist/components/combobox/combobox-item.d.ts +5 -5
  114. package/dist/components/combobox/combobox-item.d.ts.map +1 -1
  115. package/dist/components/combobox/combobox-item.js +15 -15
  116. package/dist/components/combobox/combobox-item.js.map +1 -1
  117. package/dist/components/combobox/combobox-misc.cjs +13 -13
  118. package/dist/components/combobox/combobox-misc.cjs.map +1 -1
  119. package/dist/components/combobox/combobox-misc.d.ts +3 -9
  120. package/dist/components/combobox/combobox-misc.d.ts.map +1 -1
  121. package/dist/components/combobox/combobox-misc.js +13 -13
  122. package/dist/components/combobox/combobox-misc.js.map +1 -1
  123. package/dist/components/combobox/combobox-root.cjs +23 -42
  124. package/dist/components/combobox/combobox-root.cjs.map +1 -1
  125. package/dist/components/combobox/combobox-root.d.ts +19 -26
  126. package/dist/components/combobox/combobox-root.d.ts.map +1 -1
  127. package/dist/components/combobox/combobox-root.js +24 -43
  128. package/dist/components/combobox/combobox-root.js.map +1 -1
  129. package/dist/components/combobox/combobox.d.ts +6 -12
  130. package/dist/components/combobox/combobox.d.ts.map +1 -1
  131. package/dist/components/combobox/combobox.module.css.cjs +1 -1
  132. package/dist/components/combobox/combobox.module.css.js +1 -1
  133. package/dist/components/data-table/components/content.cjs +26 -18
  134. package/dist/components/data-table/components/content.cjs.map +1 -1
  135. package/dist/components/data-table/components/content.d.ts.map +1 -1
  136. package/dist/components/data-table/components/content.js +26 -18
  137. package/dist/components/data-table/components/content.js.map +1 -1
  138. package/dist/components/data-table/components/filters.cjs +3 -3
  139. package/dist/components/data-table/components/filters.cjs.map +1 -1
  140. package/dist/components/data-table/components/filters.d.ts.map +1 -1
  141. package/dist/components/data-table/components/filters.js +4 -4
  142. package/dist/components/data-table/components/filters.js.map +1 -1
  143. package/dist/components/data-table/components/virtualized-content.cjs +52 -5
  144. package/dist/components/data-table/components/virtualized-content.cjs.map +1 -1
  145. package/dist/components/data-table/components/virtualized-content.d.ts.map +1 -1
  146. package/dist/components/data-table/components/virtualized-content.js +53 -6
  147. package/dist/components/data-table/components/virtualized-content.js.map +1 -1
  148. package/dist/components/data-table/data-table.cjs +6 -3
  149. package/dist/components/data-table/data-table.cjs.map +1 -1
  150. package/dist/components/data-table/data-table.d.ts +1 -1
  151. package/dist/components/data-table/data-table.d.ts.map +1 -1
  152. package/dist/components/data-table/data-table.js +6 -3
  153. package/dist/components/data-table/data-table.js.map +1 -1
  154. package/dist/components/data-table/data-table.module.css.cjs +1 -1
  155. package/dist/components/data-table/data-table.module.css.js +1 -1
  156. package/dist/components/data-table/data-table.types.cjs.map +1 -1
  157. package/dist/components/data-table/data-table.types.d.ts +5 -0
  158. package/dist/components/data-table/data-table.types.d.ts.map +1 -1
  159. package/dist/components/data-table/data-table.types.js.map +1 -1
  160. package/dist/components/data-table/utils/filter-operations.cjs +6 -6
  161. package/dist/components/data-table/utils/filter-operations.cjs.map +1 -1
  162. package/dist/components/data-table/utils/filter-operations.d.ts +1 -1
  163. package/dist/components/data-table/utils/filter-operations.js +6 -6
  164. package/dist/components/data-table/utils/filter-operations.js.map +1 -1
  165. package/dist/components/dialog/dialog-content.cjs +17 -0
  166. package/dist/components/dialog/dialog-content.cjs.map +1 -0
  167. package/dist/components/dialog/dialog-content.d.ts +15 -0
  168. package/dist/components/dialog/dialog-content.d.ts.map +1 -0
  169. package/dist/components/dialog/dialog-content.js +15 -0
  170. package/dist/components/dialog/dialog-content.js.map +1 -0
  171. package/dist/components/dialog/dialog-misc.cjs +37 -0
  172. package/dist/components/dialog/dialog-misc.cjs.map +1 -0
  173. package/dist/components/dialog/dialog-misc.d.ts +34 -0
  174. package/dist/components/dialog/dialog-misc.d.ts.map +1 -0
  175. package/dist/components/dialog/dialog-misc.js +30 -0
  176. package/dist/components/dialog/dialog-misc.js.map +1 -0
  177. package/dist/components/dialog/dialog.cjs +13 -44
  178. package/dist/components/dialog/dialog.cjs.map +1 -1
  179. package/dist/components/dialog/dialog.d.ts +38 -44
  180. package/dist/components/dialog/dialog.d.ts.map +1 -1
  181. package/dist/components/dialog/dialog.js +6 -34
  182. package/dist/components/dialog/dialog.js.map +1 -1
  183. package/dist/components/dialog/dialog.module.css.cjs +1 -1
  184. package/dist/components/dialog/dialog.module.css.js +1 -1
  185. package/dist/components/drawer/__tests__/drawer.test.d.ts +2 -0
  186. package/dist/components/drawer/__tests__/drawer.test.d.ts.map +1 -0
  187. package/dist/components/drawer/drawer-content.cjs +30 -0
  188. package/dist/components/drawer/drawer-content.cjs.map +1 -0
  189. package/dist/components/drawer/drawer-content.d.ts +13 -0
  190. package/dist/components/drawer/drawer-content.d.ts.map +1 -0
  191. package/dist/components/drawer/drawer-content.js +28 -0
  192. package/dist/components/drawer/drawer-content.js.map +1 -0
  193. package/dist/components/drawer/drawer-misc.cjs +26 -0
  194. package/dist/components/drawer/drawer-misc.cjs.map +1 -0
  195. package/dist/components/drawer/drawer-misc.d.ts +13 -0
  196. package/dist/components/drawer/drawer-misc.d.ts.map +1 -0
  197. package/dist/components/drawer/drawer-misc.js +20 -0
  198. package/dist/components/drawer/drawer-misc.js.map +1 -0
  199. package/dist/components/drawer/drawer-root.cjs +19 -0
  200. package/dist/components/drawer/drawer-root.cjs.map +1 -0
  201. package/dist/components/drawer/drawer-root.d.ts +12 -0
  202. package/dist/components/drawer/drawer-root.d.ts.map +1 -0
  203. package/dist/components/drawer/drawer-root.js +17 -0
  204. package/dist/components/drawer/drawer-root.js.map +1 -0
  205. package/dist/components/drawer/drawer.cjs +20 -0
  206. package/dist/components/drawer/drawer.cjs.map +1 -0
  207. package/dist/components/drawer/drawer.d.ts +21 -0
  208. package/dist/components/drawer/drawer.d.ts.map +1 -0
  209. package/dist/components/drawer/drawer.js +18 -0
  210. package/dist/components/drawer/drawer.js.map +1 -0
  211. package/dist/components/drawer/drawer.module.css.cjs +8 -0
  212. package/dist/components/drawer/drawer.module.css.cjs.map +1 -0
  213. package/dist/components/drawer/drawer.module.css.js +4 -0
  214. package/dist/components/drawer/drawer.module.css.js.map +1 -0
  215. package/dist/components/drawer/index.d.ts +2 -0
  216. package/dist/components/drawer/index.d.ts.map +1 -0
  217. package/dist/components/flex/flex.cjs +13 -4
  218. package/dist/components/flex/flex.cjs.map +1 -1
  219. package/dist/components/flex/flex.d.ts +7 -6
  220. package/dist/components/flex/flex.d.ts.map +1 -1
  221. package/dist/components/flex/flex.js +13 -4
  222. package/dist/components/flex/flex.js.map +1 -1
  223. package/dist/components/grid/grid-item.cjs +21 -16
  224. package/dist/components/grid/grid-item.cjs.map +1 -1
  225. package/dist/components/grid/grid-item.d.ts +14 -13
  226. package/dist/components/grid/grid-item.d.ts.map +1 -1
  227. package/dist/components/grid/grid-item.js +21 -16
  228. package/dist/components/grid/grid-item.js.map +1 -1
  229. package/dist/components/grid/grid.cjs +26 -21
  230. package/dist/components/grid/grid.cjs.map +1 -1
  231. package/dist/components/grid/grid.d.ts +27 -18
  232. package/dist/components/grid/grid.d.ts.map +1 -1
  233. package/dist/components/grid/grid.js +26 -21
  234. package/dist/components/grid/grid.js.map +1 -1
  235. package/dist/components/grid/index.d.ts +8 -6
  236. package/dist/components/grid/index.d.ts.map +1 -1
  237. package/dist/components/headline/headline.d.ts +1 -1
  238. package/dist/components/input-field/input-field.cjs +2 -2
  239. package/dist/components/input-field/input-field.cjs.map +1 -1
  240. package/dist/components/input-field/input-field.d.ts +2 -1
  241. package/dist/components/input-field/input-field.d.ts.map +1 -1
  242. package/dist/components/input-field/input-field.js +2 -2
  243. package/dist/components/input-field/input-field.js.map +1 -1
  244. package/dist/components/menu/__tests__/menu.test.d.ts +2 -0
  245. package/dist/components/menu/__tests__/menu.test.d.ts.map +1 -0
  246. package/dist/components/menu/cell.cjs +12 -0
  247. package/dist/components/menu/cell.cjs.map +1 -0
  248. package/dist/components/{dropdown-menu → menu}/cell.d.ts +2 -2
  249. package/dist/components/menu/cell.d.ts.map +1 -0
  250. package/dist/components/menu/cell.js +10 -0
  251. package/dist/components/menu/cell.js.map +1 -0
  252. package/dist/components/{dropdown-menu → menu}/cell.module.css.cjs +1 -1
  253. package/dist/components/menu/cell.module.css.js +4 -0
  254. package/dist/components/menu/index.d.ts +2 -0
  255. package/dist/components/menu/index.d.ts.map +1 -0
  256. package/dist/components/menu/menu-content.cjs +95 -0
  257. package/dist/components/menu/menu-content.cjs.map +1 -0
  258. package/dist/components/menu/menu-content.d.ts +7 -0
  259. package/dist/components/menu/menu-content.d.ts.map +1 -0
  260. package/dist/components/menu/menu-content.js +92 -0
  261. package/dist/components/menu/menu-content.js.map +1 -0
  262. package/dist/components/menu/menu-item.cjs +30 -0
  263. package/dist/components/menu/menu-item.cjs.map +1 -0
  264. package/dist/components/menu/menu-item.d.ts +7 -0
  265. package/dist/components/menu/menu-item.d.ts.map +1 -0
  266. package/dist/components/menu/menu-item.js +28 -0
  267. package/dist/components/menu/menu-item.js.map +1 -0
  268. package/dist/components/menu/menu-misc.cjs +42 -0
  269. package/dist/components/menu/menu-misc.cjs.map +1 -0
  270. package/dist/components/menu/menu-misc.d.ts +8 -0
  271. package/dist/components/menu/menu-misc.d.ts.map +1 -0
  272. package/dist/components/menu/menu-misc.js +37 -0
  273. package/dist/components/menu/menu-misc.js.map +1 -0
  274. package/dist/components/menu/menu-root.cjs +103 -0
  275. package/dist/components/menu/menu-root.cjs.map +1 -0
  276. package/dist/components/menu/menu-root.d.ts +71 -0
  277. package/dist/components/menu/menu-root.d.ts.map +1 -0
  278. package/dist/components/menu/menu-root.js +98 -0
  279. package/dist/components/menu/menu-root.js.map +1 -0
  280. package/dist/components/menu/menu-trigger.cjs +43 -0
  281. package/dist/components/menu/menu-trigger.cjs.map +1 -0
  282. package/dist/components/menu/menu-trigger.d.ts +11 -0
  283. package/dist/components/menu/menu-trigger.d.ts.map +1 -0
  284. package/dist/components/menu/menu-trigger.js +40 -0
  285. package/dist/components/menu/menu-trigger.js.map +1 -0
  286. package/dist/components/menu/menu.cjs +23 -0
  287. package/dist/components/menu/menu.cjs.map +1 -0
  288. package/dist/components/menu/menu.d.ts +21 -0
  289. package/dist/components/menu/menu.d.ts.map +1 -0
  290. package/dist/components/menu/menu.js +21 -0
  291. package/dist/components/menu/menu.js.map +1 -0
  292. package/dist/components/menu/menu.module.css.cjs +8 -0
  293. package/dist/components/menu/menu.module.css.cjs.map +1 -0
  294. package/dist/components/menu/menu.module.css.js +4 -0
  295. package/dist/components/menu/menu.module.css.js.map +1 -0
  296. package/dist/components/menu/utils.cjs +53 -0
  297. package/dist/components/menu/utils.cjs.map +1 -0
  298. package/dist/components/menu/utils.d.ts +8 -0
  299. package/dist/components/menu/utils.d.ts.map +1 -0
  300. package/dist/components/menu/utils.js +46 -0
  301. package/dist/components/menu/utils.js.map +1 -0
  302. package/dist/components/popover/popover.cjs +8 -7
  303. package/dist/components/popover/popover.cjs.map +1 -1
  304. package/dist/components/popover/popover.d.ts +6 -8
  305. package/dist/components/popover/popover.d.ts.map +1 -1
  306. package/dist/components/popover/popover.js +7 -6
  307. package/dist/components/popover/popover.js.map +1 -1
  308. package/dist/components/popover/popover.module.css.cjs +1 -1
  309. package/dist/components/popover/popover.module.css.js +1 -1
  310. package/dist/components/preview-card/__tests__/preview-card.test.d.ts +2 -0
  311. package/dist/components/preview-card/__tests__/preview-card.test.d.ts.map +1 -0
  312. package/dist/components/preview-card/index.d.ts +2 -0
  313. package/dist/components/preview-card/index.d.ts.map +1 -0
  314. package/dist/components/preview-card/preview-card.cjs +24 -0
  315. package/dist/components/preview-card/preview-card.cjs.map +1 -0
  316. package/dist/components/preview-card/preview-card.d.ts +15 -0
  317. package/dist/components/preview-card/preview-card.d.ts.map +1 -0
  318. package/dist/components/preview-card/preview-card.js +22 -0
  319. package/dist/components/preview-card/preview-card.js.map +1 -0
  320. package/dist/components/preview-card/preview-card.module.css.cjs +8 -0
  321. package/dist/components/preview-card/preview-card.module.css.cjs.map +1 -0
  322. package/dist/components/preview-card/preview-card.module.css.js +4 -0
  323. package/dist/components/preview-card/preview-card.module.css.js.map +1 -0
  324. package/dist/components/radio/index.d.ts +1 -1
  325. package/dist/components/radio/radio.cjs +8 -11
  326. package/dist/components/radio/radio.cjs.map +1 -1
  327. package/dist/components/radio/radio.d.ts +4 -13
  328. package/dist/components/radio/radio.d.ts.map +1 -1
  329. package/dist/components/radio/radio.js +10 -12
  330. package/dist/components/radio/radio.js.map +1 -1
  331. package/dist/components/scroll-area/index.d.ts +2 -1
  332. package/dist/components/scroll-area/index.d.ts.map +1 -1
  333. package/dist/components/scroll-area/scroll-area-scrollbar.cjs +4 -4
  334. package/dist/components/scroll-area/scroll-area-scrollbar.cjs.map +1 -1
  335. package/dist/components/scroll-area/scroll-area-scrollbar.d.ts +5 -6
  336. package/dist/components/scroll-area/scroll-area-scrollbar.d.ts.map +1 -1
  337. package/dist/components/scroll-area/scroll-area-scrollbar.js +4 -4
  338. package/dist/components/scroll-area/scroll-area-scrollbar.js.map +1 -1
  339. package/dist/components/scroll-area/scroll-area.cjs +11 -2
  340. package/dist/components/scroll-area/scroll-area.cjs.map +1 -1
  341. package/dist/components/scroll-area/scroll-area.d.ts +6 -1
  342. package/dist/components/scroll-area/scroll-area.d.ts.map +1 -1
  343. package/dist/components/scroll-area/scroll-area.js +11 -2
  344. package/dist/components/scroll-area/scroll-area.js.map +1 -1
  345. package/dist/components/scroll-area/scroll-area.module.css.cjs +1 -1
  346. package/dist/components/scroll-area/scroll-area.module.css.js +1 -1
  347. package/dist/components/select/select-content.cjs +9 -18
  348. package/dist/components/select/select-content.cjs.map +1 -1
  349. package/dist/components/select/select-content.d.ts +6 -2
  350. package/dist/components/select/select-content.d.ts.map +1 -1
  351. package/dist/components/select/select-content.js +11 -20
  352. package/dist/components/select/select-content.js.map +1 -1
  353. package/dist/components/select/select-item.cjs +10 -11
  354. package/dist/components/select/select-item.cjs.map +1 -1
  355. package/dist/components/select/select-item.d.ts +9 -4
  356. package/dist/components/select/select-item.d.ts.map +1 -1
  357. package/dist/components/select/select-item.js +10 -11
  358. package/dist/components/select/select-item.js.map +1 -1
  359. package/dist/components/select/select-misc.cjs +19 -10
  360. package/dist/components/select/select-misc.cjs.map +1 -1
  361. package/dist/components/select/select-misc.d.ts +15 -4
  362. package/dist/components/select/select-misc.d.ts.map +1 -1
  363. package/dist/components/select/select-misc.js +19 -10
  364. package/dist/components/select/select-misc.js.map +1 -1
  365. package/dist/components/select/select-multiple-value.cjs +3 -7
  366. package/dist/components/select/select-multiple-value.cjs.map +1 -1
  367. package/dist/components/select/select-multiple-value.d.ts +2 -3
  368. package/dist/components/select/select-multiple-value.d.ts.map +1 -1
  369. package/dist/components/select/select-multiple-value.js +5 -9
  370. package/dist/components/select/select-multiple-value.js.map +1 -1
  371. package/dist/components/select/select-root.cjs +51 -66
  372. package/dist/components/select/select-root.cjs.map +1 -1
  373. package/dist/components/select/select-root.d.ts +11 -15
  374. package/dist/components/select/select-root.d.ts.map +1 -1
  375. package/dist/components/select/select-root.js +52 -67
  376. package/dist/components/select/select-root.js.map +1 -1
  377. package/dist/components/select/select-trigger.cjs +7 -4
  378. package/dist/components/select/select-trigger.cjs.map +1 -1
  379. package/dist/components/select/select-trigger.d.ts +2 -3
  380. package/dist/components/select/select-trigger.d.ts.map +1 -1
  381. package/dist/components/select/select-trigger.js +7 -4
  382. package/dist/components/select/select-trigger.js.map +1 -1
  383. package/dist/components/select/select-value.cjs +17 -8
  384. package/dist/components/select/select-value.cjs.map +1 -1
  385. package/dist/components/select/select-value.d.ts +6 -4
  386. package/dist/components/select/select-value.d.ts.map +1 -1
  387. package/dist/components/select/select-value.js +17 -8
  388. package/dist/components/select/select-value.js.map +1 -1
  389. package/dist/components/select/select.cjs +4 -4
  390. package/dist/components/select/select.cjs.map +1 -1
  391. package/dist/components/select/select.d.ts +10 -11
  392. package/dist/components/select/select.d.ts.map +1 -1
  393. package/dist/components/select/select.js +4 -4
  394. package/dist/components/select/select.js.map +1 -1
  395. package/dist/components/select/select.module.css.cjs +1 -1
  396. package/dist/components/select/select.module.css.js +1 -1
  397. package/dist/components/separator/separator.cjs +3 -3
  398. package/dist/components/separator/separator.cjs.map +1 -1
  399. package/dist/components/separator/separator.d.ts +3 -5
  400. package/dist/components/separator/separator.d.ts.map +1 -1
  401. package/dist/components/separator/separator.js +3 -3
  402. package/dist/components/separator/separator.js.map +1 -1
  403. package/dist/components/sidebar/sidebar-item.cjs +7 -4
  404. package/dist/components/sidebar/sidebar-item.cjs.map +1 -1
  405. package/dist/components/sidebar/sidebar-item.d.ts.map +1 -1
  406. package/dist/components/sidebar/sidebar-item.js +7 -4
  407. package/dist/components/sidebar/sidebar-item.js.map +1 -1
  408. package/dist/components/sidebar/sidebar-misc.cjs +1 -1
  409. package/dist/components/sidebar/sidebar-misc.cjs.map +1 -1
  410. package/dist/components/sidebar/sidebar-misc.js +1 -1
  411. package/dist/components/sidebar/sidebar-misc.js.map +1 -1
  412. package/dist/components/sidebar/sidebar-root.cjs +4 -5
  413. package/dist/components/sidebar/sidebar-root.cjs.map +1 -1
  414. package/dist/components/sidebar/sidebar-root.d.ts +5 -3
  415. package/dist/components/sidebar/sidebar-root.d.ts.map +1 -1
  416. package/dist/components/sidebar/sidebar-root.js +4 -5
  417. package/dist/components/sidebar/sidebar-root.js.map +1 -1
  418. package/dist/components/sidebar/sidebar.d.ts +1 -1
  419. package/dist/components/sidebar/sidebar.module.css.cjs +1 -1
  420. package/dist/components/sidebar/sidebar.module.css.js +1 -1
  421. package/dist/components/slider/index.d.ts +1 -1
  422. package/dist/components/slider/slider.cjs +10 -22
  423. package/dist/components/slider/slider.cjs.map +1 -1
  424. package/dist/components/slider/slider.d.ts +6 -13
  425. package/dist/components/slider/slider.d.ts.map +1 -1
  426. package/dist/components/slider/slider.js +12 -24
  427. package/dist/components/slider/slider.js.map +1 -1
  428. package/dist/components/slider/slider.module.css.cjs +1 -1
  429. package/dist/components/slider/slider.module.css.js +1 -1
  430. package/dist/components/switch/switch.cjs +2 -3
  431. package/dist/components/switch/switch.cjs.map +1 -1
  432. package/dist/components/switch/switch.d.ts +4 -5
  433. package/dist/components/switch/switch.d.ts.map +1 -1
  434. package/dist/components/switch/switch.js +4 -5
  435. package/dist/components/switch/switch.js.map +1 -1
  436. package/dist/components/tabs/index.d.ts +1 -1
  437. package/dist/components/tabs/tabs.cjs +10 -14
  438. package/dist/components/tabs/tabs.cjs.map +1 -1
  439. package/dist/components/tabs/tabs.d.ts +7 -14
  440. package/dist/components/tabs/tabs.d.ts.map +1 -1
  441. package/dist/components/tabs/tabs.js +11 -15
  442. package/dist/components/tabs/tabs.js.map +1 -1
  443. package/dist/components/tabs/tabs.module.css.cjs +1 -1
  444. package/dist/components/tabs/tabs.module.css.js +1 -1
  445. package/dist/components/text/text.d.ts +1 -1
  446. package/dist/components/toast/index.d.ts +3 -1
  447. package/dist/components/toast/index.d.ts.map +1 -1
  448. package/dist/components/toast/toast-manager.cjs +9 -0
  449. package/dist/components/toast/toast-manager.cjs.map +1 -0
  450. package/dist/components/toast/toast-manager.d.ts +2 -0
  451. package/dist/components/toast/toast-manager.d.ts.map +1 -0
  452. package/dist/components/toast/toast-manager.js +7 -0
  453. package/dist/components/toast/toast-manager.js.map +1 -0
  454. package/dist/components/toast/toast-provider.cjs +22 -0
  455. package/dist/components/toast/toast-provider.cjs.map +1 -0
  456. package/dist/components/toast/toast-provider.d.ts +11 -0
  457. package/dist/components/toast/toast-provider.d.ts.map +1 -0
  458. package/dist/components/toast/toast-provider.js +20 -0
  459. package/dist/components/toast/toast-provider.js.map +1 -0
  460. package/dist/components/toast/toast-root.cjs +34 -0
  461. package/dist/components/toast/toast-root.cjs.map +1 -0
  462. package/dist/components/toast/toast-root.d.ts +8 -0
  463. package/dist/components/toast/toast-root.d.ts.map +1 -0
  464. package/dist/components/toast/toast-root.js +32 -0
  465. package/dist/components/toast/toast-root.js.map +1 -0
  466. package/dist/components/toast/toast.cjs +11 -25
  467. package/dist/components/toast/toast.cjs.map +1 -1
  468. package/dist/components/toast/toast.d.ts +6 -8
  469. package/dist/components/toast/toast.d.ts.map +1 -1
  470. package/dist/components/toast/toast.js +10 -24
  471. package/dist/components/toast/toast.js.map +1 -1
  472. package/dist/components/toast/toast.module.css.cjs +1 -1
  473. package/dist/components/toast/toast.module.css.js +1 -1
  474. package/dist/components/tooltip/tooltip-content.cjs +17 -0
  475. package/dist/components/tooltip/tooltip-content.cjs.map +1 -0
  476. package/dist/components/tooltip/tooltip-content.d.ts +10 -0
  477. package/dist/components/tooltip/tooltip-content.d.ts.map +1 -0
  478. package/dist/components/tooltip/tooltip-content.js +15 -0
  479. package/dist/components/tooltip/tooltip-content.js.map +1 -0
  480. package/dist/components/tooltip/tooltip-misc.cjs +19 -0
  481. package/dist/components/tooltip/tooltip-misc.cjs.map +1 -0
  482. package/dist/components/tooltip/tooltip-misc.d.ts +9 -0
  483. package/dist/components/tooltip/tooltip-misc.d.ts.map +1 -0
  484. package/dist/components/tooltip/tooltip-misc.js +16 -0
  485. package/dist/components/tooltip/tooltip-misc.js.map +1 -0
  486. package/dist/components/tooltip/tooltip.cjs +7 -4
  487. package/dist/components/tooltip/tooltip.cjs.map +1 -1
  488. package/dist/components/tooltip/tooltip.d.ts +8 -5
  489. package/dist/components/tooltip/tooltip.d.ts.map +1 -1
  490. package/dist/components/tooltip/tooltip.js +7 -4
  491. package/dist/components/tooltip/tooltip.js.map +1 -1
  492. package/dist/components/tooltip/tooltip.module.css.cjs +1 -1
  493. package/dist/components/tooltip/tooltip.module.css.js +1 -1
  494. package/dist/index.cjs +14 -8
  495. package/dist/index.cjs.map +1 -1
  496. package/dist/index.d.ts +6 -4
  497. package/dist/index.d.ts.map +1 -1
  498. package/dist/index.js +8 -4
  499. package/dist/index.js.map +1 -1
  500. package/dist/style.css +1 -1
  501. package/package.json +5 -7
  502. package/dist/components/dropdown-menu/__tests__/dropdown-menu.test.d.ts +0 -2
  503. package/dist/components/dropdown-menu/__tests__/dropdown-menu.test.d.ts.map +0 -1
  504. package/dist/components/dropdown-menu/cell.cjs +0 -12
  505. package/dist/components/dropdown-menu/cell.cjs.map +0 -1
  506. package/dist/components/dropdown-menu/cell.d.ts.map +0 -1
  507. package/dist/components/dropdown-menu/cell.js +0 -10
  508. package/dist/components/dropdown-menu/cell.js.map +0 -1
  509. package/dist/components/dropdown-menu/cell.module.css.js +0 -4
  510. package/dist/components/dropdown-menu/dropdown-menu-content.cjs +0 -36
  511. package/dist/components/dropdown-menu/dropdown-menu-content.cjs.map +0 -1
  512. package/dist/components/dropdown-menu/dropdown-menu-content.d.ts +0 -7
  513. package/dist/components/dropdown-menu/dropdown-menu-content.d.ts.map +0 -1
  514. package/dist/components/dropdown-menu/dropdown-menu-content.js +0 -34
  515. package/dist/components/dropdown-menu/dropdown-menu-content.js.map +0 -1
  516. package/dist/components/dropdown-menu/dropdown-menu-item.cjs +0 -45
  517. package/dist/components/dropdown-menu/dropdown-menu-item.cjs.map +0 -1
  518. package/dist/components/dropdown-menu/dropdown-menu-item.d.ts +0 -9
  519. package/dist/components/dropdown-menu/dropdown-menu-item.d.ts.map +0 -1
  520. package/dist/components/dropdown-menu/dropdown-menu-item.js +0 -43
  521. package/dist/components/dropdown-menu/dropdown-menu-item.js.map +0 -1
  522. package/dist/components/dropdown-menu/dropdown-menu-misc.cjs +0 -36
  523. package/dist/components/dropdown-menu/dropdown-menu-misc.cjs.map +0 -1
  524. package/dist/components/dropdown-menu/dropdown-menu-misc.d.ts +0 -10
  525. package/dist/components/dropdown-menu/dropdown-menu-misc.d.ts.map +0 -1
  526. package/dist/components/dropdown-menu/dropdown-menu-misc.js +0 -31
  527. package/dist/components/dropdown-menu/dropdown-menu-misc.js.map +0 -1
  528. package/dist/components/dropdown-menu/dropdown-menu-root.cjs +0 -52
  529. package/dist/components/dropdown-menu/dropdown-menu-root.cjs.map +0 -1
  530. package/dist/components/dropdown-menu/dropdown-menu-root.d.ts +0 -40
  531. package/dist/components/dropdown-menu/dropdown-menu-root.d.ts.map +0 -1
  532. package/dist/components/dropdown-menu/dropdown-menu-root.js +0 -48
  533. package/dist/components/dropdown-menu/dropdown-menu-root.js.map +0 -1
  534. package/dist/components/dropdown-menu/dropdown-menu-trigger.cjs +0 -34
  535. package/dist/components/dropdown-menu/dropdown-menu-trigger.cjs.map +0 -1
  536. package/dist/components/dropdown-menu/dropdown-menu-trigger.d.ts +0 -14
  537. package/dist/components/dropdown-menu/dropdown-menu-trigger.d.ts.map +0 -1
  538. package/dist/components/dropdown-menu/dropdown-menu-trigger.js +0 -31
  539. package/dist/components/dropdown-menu/dropdown-menu-trigger.js.map +0 -1
  540. package/dist/components/dropdown-menu/dropdown-menu.cjs +0 -24
  541. package/dist/components/dropdown-menu/dropdown-menu.cjs.map +0 -1
  542. package/dist/components/dropdown-menu/dropdown-menu.d.ts +0 -16
  543. package/dist/components/dropdown-menu/dropdown-menu.d.ts.map +0 -1
  544. package/dist/components/dropdown-menu/dropdown-menu.js +0 -22
  545. package/dist/components/dropdown-menu/dropdown-menu.js.map +0 -1
  546. package/dist/components/dropdown-menu/dropdown-menu.module.css.cjs +0 -8
  547. package/dist/components/dropdown-menu/dropdown-menu.module.css.cjs.map +0 -1
  548. package/dist/components/dropdown-menu/dropdown-menu.module.css.js +0 -4
  549. package/dist/components/dropdown-menu/dropdown-menu.module.css.js.map +0 -1
  550. package/dist/components/dropdown-menu/index.d.ts +0 -2
  551. package/dist/components/dropdown-menu/index.d.ts.map +0 -1
  552. package/dist/components/dropdown-menu/types.d.ts +0 -4
  553. package/dist/components/dropdown-menu/types.d.ts.map +0 -1
  554. package/dist/components/dropdown-menu/utils.cjs +0 -21
  555. package/dist/components/dropdown-menu/utils.cjs.map +0 -1
  556. package/dist/components/dropdown-menu/utils.d.ts +0 -4
  557. package/dist/components/dropdown-menu/utils.d.ts.map +0 -1
  558. package/dist/components/dropdown-menu/utils.js +0 -18
  559. package/dist/components/dropdown-menu/utils.js.map +0 -1
  560. package/dist/components/scroll-area/scroll-area-root.cjs +0 -17
  561. package/dist/components/scroll-area/scroll-area-root.cjs.map +0 -1
  562. package/dist/components/scroll-area/scroll-area-root.d.ts +0 -9
  563. package/dist/components/scroll-area/scroll-area-root.d.ts.map +0 -1
  564. package/dist/components/scroll-area/scroll-area-root.js +0 -15
  565. package/dist/components/scroll-area/scroll-area-root.js.map +0 -1
  566. package/dist/components/sheet/__tests__/sheet.test.d.ts +0 -2
  567. package/dist/components/sheet/__tests__/sheet.test.d.ts.map +0 -1
  568. package/dist/components/sheet/index.d.ts +0 -2
  569. package/dist/components/sheet/index.d.ts.map +0 -1
  570. package/dist/components/sheet/sheet.cjs +0 -50
  571. package/dist/components/sheet/sheet.cjs.map +0 -1
  572. package/dist/components/sheet/sheet.d.ts +0 -36
  573. package/dist/components/sheet/sheet.d.ts.map +0 -1
  574. package/dist/components/sheet/sheet.js +0 -45
  575. package/dist/components/sheet/sheet.js.map +0 -1
  576. package/dist/components/sheet/sheet.module.css.cjs +0 -8
  577. package/dist/components/sheet/sheet.module.css.cjs.map +0 -1
  578. package/dist/components/sheet/sheet.module.css.js +0 -4
  579. package/dist/components/sheet/sheet.module.css.js.map +0 -1
  580. package/dist/components/slider/thumb.cjs +0 -8
  581. package/dist/components/slider/thumb.cjs.map +0 -1
  582. package/dist/components/slider/thumb.d.ts +0 -2
  583. package/dist/components/slider/thumb.d.ts.map +0 -1
  584. package/dist/components/slider/thumb.js +0 -6
  585. package/dist/components/slider/thumb.js.map +0 -1
  586. package/dist/components/tooltip/tooltip-provider.cjs +0 -18
  587. package/dist/components/tooltip/tooltip-provider.cjs.map +0 -1
  588. package/dist/components/tooltip/tooltip-provider.d.ts +0 -9
  589. package/dist/components/tooltip/tooltip-provider.d.ts.map +0 -1
  590. package/dist/components/tooltip/tooltip-provider.js +0 -15
  591. package/dist/components/tooltip/tooltip-provider.js.map +0 -1
  592. package/dist/components/tooltip/tooltip-root.cjs +0 -66
  593. package/dist/components/tooltip/tooltip-root.cjs.map +0 -1
  594. package/dist/components/tooltip/tooltip-root.d.ts +0 -29
  595. package/dist/components/tooltip/tooltip-root.d.ts.map +0 -1
  596. package/dist/components/tooltip/tooltip-root.js +0 -63
  597. package/dist/components/tooltip/tooltip-root.js.map +0 -1
  598. package/dist/components/tooltip/utils.cjs +0 -30
  599. package/dist/components/tooltip/utils.cjs.map +0 -1
  600. package/dist/components/tooltip/utils.d.ts +0 -10
  601. package/dist/components/tooltip/utils.d.ts.map +0 -1
  602. package/dist/components/tooltip/utils.js +0 -28
  603. package/dist/components/tooltip/utils.js.map +0 -1
  604. /package/dist/components/{dropdown-menu → menu}/cell.module.css.cjs.map +0 -0
  605. /package/dist/components/{dropdown-menu → menu}/cell.module.css.js.map +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"select-multiple-value.js","sources":["../../../components/select/select-multiple-value.tsx"],"sourcesContent":["'use client';\n\nimport { cx } from 'class-variance-authority';\nimport { Select as SelectPrimitive } from 'radix-ui';\nimport {\n ElementRef,\n forwardRef,\n useLayoutEffect,\n useRef,\n useState\n} from 'react';\nimport { Chip } from '../chip';\nimport { Text } from '../text';\nimport styles from './select.module.css';\nimport { ItemType } from './types';\n\ninterface SelectMultipleValueProps extends SelectPrimitive.SelectValueProps {\n data: ItemType[];\n}\n\n/*\n * Approximate width calculation based on font size\n * Average character width is roughly 0.6 times the font size\n */\nconst calculateTextWidth = (text: string, fontSize: number = 11): number => {\n const avgCharWidth = fontSize * 0.6;\n return text.length * avgCharWidth;\n};\n\nexport const SelectMultipleValue = forwardRef<\n ElementRef<typeof SelectPrimitive.Value>,\n SelectMultipleValueProps\n>(({ data = [], ...props }, ref) => {\n const containerRef = useRef<HTMLDivElement>(null);\n const [visibleCount, setVisibleCount] = useState(data.length);\n const [containerWidth, setContainerWidth] = useState(0);\n\n useLayoutEffect(() => {\n if (!containerRef.current) return;\n\n const resizeObserver = new ResizeObserver(entries => {\n for (const entry of entries) {\n setContainerWidth(entry.contentRect.width - 70);\n }\n });\n\n resizeObserver.observe(containerRef.current);\n return () => resizeObserver.disconnect();\n }, []);\n\n useLayoutEffect(() => {\n if (!containerRef.current || data.length === 0) return;\n\n // Calculate chip widths based on text length and icon width\n const chipWidths: number[] = data.map(item => {\n const text =\n typeof item.children === 'string' ? item.children : item.value;\n const iconWidth = item.leadingIcon ? 16 : 0;\n return calculateTextWidth(text) + 8 + iconWidth;\n });\n\n let totalWidth = 0;\n let count = 0;\n\n // Always show at least one chip\n if (data.length > 0) {\n count = 1;\n totalWidth = chipWidths[0];\n }\n\n // Try to fit more chips\n for (let i = 1; i < data.length; i++) {\n const newWidth = totalWidth + chipWidths[i];\n if (newWidth <= containerWidth) {\n count++;\n totalWidth = newWidth;\n } else {\n break;\n }\n }\n\n setVisibleCount(count);\n }, [data, containerWidth]);\n\n return (\n <div ref={containerRef} className={cx(styles.valueContent)}>\n <SelectPrimitive.Value ref={ref} {...props}>\n <div className={cx(styles.valueContent)}>\n {data.slice(0, visibleCount).map(item => (\n <Chip key={item.value} leadingIcon={item.leadingIcon}>\n {typeof item.children === 'string' ? item.children : item.value}\n </Chip>\n ))}\n {data.length > visibleCount && (\n <Text>+{data.length - visibleCount}</Text>\n )}\n </div>\n </SelectPrimitive.Value>\n </div>\n );\n});\n"],"names":[],"mappings":";;;;;;;;;AAoBA;;;AAGG;AACH;AACE;AACA;AACF;AAEa;AAIX;AACA;;;;;AAME;AACE;;;AAGF;AAEA;AACA;;;;;;;;AAUE;;AAEF;;;;AAMA;;AAEE;;;AAIF;;AAEE;AACE;;;;;;;;AAQN;;AAkBF;;"}
1
+ {"version":3,"file":"select-multiple-value.js","sources":["../../../components/select/select-multiple-value.tsx"],"sourcesContent":["'use client';\n\nimport { cx } from 'class-variance-authority';\nimport { useLayoutEffect, useRef, useState } from 'react';\nimport { Chip } from '../chip';\nimport { Text } from '../text';\nimport styles from './select.module.css';\nimport { ItemType } from './types';\n\ninterface SelectMultipleValueProps {\n data: ItemType[];\n}\n\n/*\n * Approximate width calculation based on font size\n * Average character width is roughly 0.6 times the font size\n */\nconst calculateTextWidth = (text: string, fontSize: number = 11): number => {\n const avgCharWidth = fontSize * 0.6;\n return text.length * avgCharWidth;\n};\n\nexport const SelectMultipleValue = ({\n data = []\n}: SelectMultipleValueProps) => {\n const containerRef = useRef<HTMLDivElement>(null);\n const [visibleCount, setVisibleCount] = useState(data.length);\n const [containerWidth, setContainerWidth] = useState(0);\n\n useLayoutEffect(() => {\n if (!containerRef.current) return;\n\n const resizeObserver = new ResizeObserver(entries => {\n for (const entry of entries) {\n setContainerWidth(entry.contentRect.width - 70);\n }\n });\n\n resizeObserver.observe(containerRef.current);\n return () => resizeObserver.disconnect();\n }, []);\n\n useLayoutEffect(() => {\n if (!containerRef.current || data.length === 0) return;\n\n const chipWidths: number[] = data.map(item => {\n const text =\n typeof item.children === 'string' ? item.children : item.value;\n const iconWidth = item.leadingIcon ? 16 : 0;\n return calculateTextWidth(text) + 8 + iconWidth;\n });\n\n let totalWidth = 0;\n let count = 0;\n\n if (data.length > 0) {\n count = 1;\n totalWidth = chipWidths[0];\n }\n\n for (let i = 1; i < data.length; i++) {\n const newWidth = totalWidth + chipWidths[i];\n if (newWidth <= containerWidth) {\n count++;\n totalWidth = newWidth;\n } else {\n break;\n }\n }\n\n setVisibleCount(count);\n }, [data, containerWidth]);\n\n return (\n <div ref={containerRef} className={cx(styles.valueContent)}>\n {data.slice(0, visibleCount).map(item => (\n <Chip key={item.value} leadingIcon={item.leadingIcon}>\n {typeof item.children === 'string' ? item.children : item.value}\n </Chip>\n ))}\n {data.length > visibleCount && <Text>+{data.length - visibleCount}</Text>}\n </div>\n );\n};\n"],"names":[],"mappings":";;;;;;;;AAaA;;;AAGG;AACH;AACE;AACA;AACF;AAEa;AAGX;AACA;;;;;AAME;AACE;;;AAGF;AAEA;AACA;;;;;;;AASE;;AAEF;;;AAKA;;AAEE;;AAGF;;AAEE;AACE;;;;;;;;AAQN;AAEA;AAUF;;"}
@@ -2,8 +2,7 @@
2
2
  'use strict';
3
3
 
4
4
  var jsxRuntime = require('react/jsx-runtime');
5
- var react = require('@ariakit/react');
6
- var radixUi = require('radix-ui');
5
+ var react = require('@base-ui/react');
7
6
  var React = require('react');
8
7
 
9
8
  /*
@@ -24,91 +23,77 @@ const useSelectContext = () => {
24
23
  shouldFilter
25
24
  };
26
25
  };
27
- const SELECT_INTERNAL_VALUE = 'SELECT_INTERNAL_VALUE';
28
26
  const SelectRoot = (props) => {
29
- const { children, value: providedValue, onValueChange, defaultValue, autocomplete, autocompleteMode = 'auto', searchValue: providedSearchValue, onSearch, defaultSearchValue = '', open: providedOpen, defaultOpen = false, onOpenChange, htmlAutoComplete, multiple = false, ...rest } = props;
27
+ const { children, value: providedValue, onValueChange, defaultValue, autocomplete, autocompleteMode = 'auto', searchValue: providedSearchValue, onSearch, defaultSearchValue = '', open: providedOpen, defaultOpen = false, onOpenChange, multiple = false, disabled, required, name, items: itemsProp, ...rest } = props;
30
28
  const [internalValue, setInternalValue] = React.useState(defaultValue);
31
29
  const [internalSearchValue, setInternalSearchValue] = React.useState(defaultSearchValue);
32
- const [internalOpen, setInternalOpen] = React.useState(defaultOpen);
33
- const [items, setItems] = React.useState({});
34
- const id = React.useId();
35
- const isSelectionInProgress = React.useRef(false);
30
+ const [registeredItems, setRegisteredItems] = React.useState({});
36
31
  const computedValue = providedValue ?? internalValue;
37
32
  const searchValue = providedSearchValue ?? internalSearchValue;
38
- const open = providedOpen ?? internalOpen;
39
- const updateSelectionInProgress = React.useCallback((value) => {
40
- isSelectionInProgress.current = value;
41
- }, []);
42
- const setValue = React.useCallback((value) => {
43
- /*
44
- * If the select is placed inside a form, onChange is called with an empty value
45
- * WORKAROUND FOR ISSUE https://github.com/radix-ui/primitives/issues/3135
46
- */
47
- if (value === '')
48
- return;
33
+ const handleValueChange = React.useCallback((value, _eventDetails) => {
34
+ setInternalValue(value);
49
35
  if (multiple) {
50
- updateSelectionInProgress(true);
51
- const set = new Set(Array.isArray(computedValue)
52
- ? computedValue
53
- : [computedValue ?? ''].filter(Boolean));
54
- if (set.has(value))
55
- set.delete(value);
56
- else
57
- set.add(value);
58
- const newValue = Array.from(set);
59
- setInternalValue(newValue);
60
- onValueChange?.(newValue);
36
+ onValueChange?.(value);
61
37
  }
62
38
  else {
63
- setInternalValue(value);
64
39
  onValueChange?.(value);
65
40
  }
66
- }, [multiple, onValueChange, computedValue, updateSelectionInProgress]);
67
- const setSearchValue = React.useCallback((value) => {
41
+ }, [multiple, onValueChange]);
42
+ const handleSearchValueChange = React.useCallback((value, _eventDetails) => {
68
43
  setInternalSearchValue(value);
69
44
  onSearch?.(value);
70
45
  }, [onSearch]);
71
- const handleOpenChange = React.useCallback((value) => {
72
- if (isSelectionInProgress.current)
73
- return;
74
- setInternalOpen(value);
75
- onOpenChange?.(value);
46
+ const handleOpenChange = React.useCallback((open, _eventDetails) => {
47
+ onOpenChange?.(open);
76
48
  }, [onOpenChange]);
77
49
  const registerItem = React.useCallback(item => {
78
- setItems(prev => ({ ...prev, [item.value]: item }));
50
+ setRegisteredItems(prev => ({ ...prev, [item.value]: item }));
79
51
  }, []);
80
52
  const unregisterItem = React.useCallback(value => {
81
- setItems(prev => {
53
+ setRegisteredItems(prev => {
82
54
  const { [value]: _, ...rest } = prev;
83
55
  return rest;
84
56
  });
85
57
  }, []);
86
- /*
87
- * Radix internally shows the placeholder when the value is empty.
88
- * This value is used to manage the internal value of Radix Select to make it work
89
- */
90
- const radixValue = React.useMemo(() => {
91
- if (!computedValue)
92
- return '';
93
- if (typeof computedValue === 'string')
94
- return computedValue;
95
- if (Array.isArray(computedValue) && computedValue.length)
96
- return `${SELECT_INTERNAL_VALUE}-${id}`;
97
- return String(computedValue) ?? '';
98
- }, [computedValue, id]);
99
- const element = (jsxRuntime.jsx(react.ComboboxProvider, { resetValueOnHide: true, focusLoop: false, includesBaseElement: false, value: searchValue, setValue: setSearchValue, open: open, setOpen: handleOpenChange, children: children }));
100
- return (jsxRuntime.jsx(SelectContext.Provider, { value: {
101
- value: computedValue,
102
- registerItem,
103
- unregisterItem,
104
- autocomplete,
105
- autocompleteMode,
106
- searchValue,
107
- multiple,
108
- items,
109
- updateSelectionInProgress,
110
- setValue
111
- }, children: jsxRuntime.jsx(radixUi.Select.Root, { autoComplete: htmlAutoComplete, value: radixValue, onValueChange: setValue, open: open, onOpenChange: handleOpenChange, ...rest, children: autocomplete ? element : children }) }));
58
+ const contextValue = React.useMemo(() => ({
59
+ value: computedValue,
60
+ registerItem,
61
+ unregisterItem,
62
+ autocomplete,
63
+ autocompleteMode,
64
+ searchValue,
65
+ multiple,
66
+ items: registeredItems,
67
+ hasItems: !!itemsProp
68
+ }), [
69
+ computedValue,
70
+ registerItem,
71
+ unregisterItem,
72
+ autocomplete,
73
+ autocompleteMode,
74
+ searchValue,
75
+ multiple,
76
+ registeredItems,
77
+ itemsProp
78
+ ]);
79
+ const commonProps = {
80
+ value: providedValue,
81
+ defaultValue: defaultValue,
82
+ onValueChange: handleValueChange,
83
+ open: providedOpen,
84
+ defaultOpen,
85
+ onOpenChange: handleOpenChange,
86
+ multiple: multiple,
87
+ disabled,
88
+ modal: true,
89
+ ...rest
90
+ };
91
+ if (autocomplete) {
92
+ return (jsxRuntime.jsx(SelectContext.Provider, { value: contextValue, children: jsxRuntime.jsx(react.Combobox.Root, { ...commonProps, onInputValueChange: handleSearchValueChange, filter: itemsProp ? undefined : null, items: itemsProp, loopFocus: false,
93
+ // @ts-ignore BaseUI types are not up to date
94
+ autoHighlight: 'always', children: children }) }));
95
+ }
96
+ return (jsxRuntime.jsx(SelectContext.Provider, { value: contextValue, children: jsxRuntime.jsx(react.Select.Root, { ...commonProps, required: required, name: name, children: children }) }));
112
97
  };
113
98
 
114
99
  exports.SelectRoot = SelectRoot;
@@ -1 +1 @@
1
- {"version":3,"file":"select-root.cjs","sources":["../../../components/select/select-root.tsx"],"sourcesContent":["'use client';\n\nimport { ComboboxProvider } from '@ariakit/react';\nimport { Select as SelectPrimitive } from 'radix-ui';\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\nexport type BaseSelectProps = Omit<\n NormalSelectRootProps | AutocompleteSelectRootProps,\n 'autoComplete' | 'value' | 'onValueChange' | 'defaultValue'\n> & {\n htmlAutoComplete?: string;\n};\n\nexport interface SingleSelectProps extends BaseSelectProps {\n multiple?: false;\n value?: string;\n onValueChange?: (value: string) => void;\n defaultValue?: string;\n}\n\nexport interface 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 /*\n * If the select is placed inside a form, onChange is called with an empty value\n * WORKAROUND FOR ISSUE https://github.com/radix-ui/primitives/issues/3135\n */\n if (value === '') return;\n\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 (Array.isArray(computedValue) && computedValue.length)\n return `${SELECT_INTERNAL_VALUE}-${id}`;\n return String(computedValue) ?? '';\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":[],"mappings":";;;;;;;;AAqCA;;;AAGE;AACF;AAEO;AACL;;AAEE;;AAEF;;AAGE;;AAGA;;;AAGJ;AAuCA;AAEa;;;;;;AA0BX;AACA;AAEA;AACA;AACA;AAEA;AACE;;AAGF;AAEI;;;AAGG;;;;;;AAOG;AACA;AAGJ;AAAoB;;AACf;;;AAKJ;;;;AAGA;;;AAMP;;AAGI;AACF;AAIF;;;;AAII;AACF;AAIF;;;AAIA;;AAGM;AACA;AACF;;AAKJ;;;AAGG;AACH;AACE;AAAoB;;AACmB;;AAErC;AACF;AACF;AAEA;AAcA;AAGM;;;;;;;;;;AAUD;AAcP;;;"}
1
+ {"version":3,"file":"select-root.cjs","sources":["../../../components/select/select-root.tsx"],"sourcesContent":["'use client';\n\nimport {\n Combobox as ComboboxPrimitive,\n Select as SelectPrimitive\n} from '@base-ui/react';\nimport {\n createContext,\n ReactNode,\n useCallback,\n useContext,\n useMemo,\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 hasItems?: boolean;\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 BaseSelectProps extends CommonProps {\n children?: ReactNode;\n open?: boolean;\n defaultOpen?: boolean;\n onOpenChange?: (open: boolean) => void;\n disabled?: boolean;\n required?: boolean;\n name?: string;\n items?: string[];\n}\n\nexport interface SingleSelectProps extends BaseSelectProps {\n multiple?: false;\n value?: string;\n onValueChange?: (value: string) => void;\n defaultValue?: string;\n}\n\nexport interface 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\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 multiple = false,\n disabled,\n required,\n name,\n items: itemsProp,\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 [registeredItems, setRegisteredItems] = useState<\n SelectContextValue['items']\n >({});\n\n const computedValue = providedValue ?? internalValue;\n const searchValue = providedSearchValue ?? internalSearchValue;\n\n const handleValueChange = useCallback(\n (value: any, _eventDetails?: any) => {\n setInternalValue(value);\n if (multiple) {\n (onValueChange as MultipleSelectProps['onValueChange'])?.(\n value as string[]\n );\n } else {\n (onValueChange as SingleSelectProps['onValueChange'])?.(\n value as string\n );\n }\n },\n [multiple, onValueChange]\n );\n\n const handleSearchValueChange = useCallback(\n (value: string, _eventDetails?: any) => {\n setInternalSearchValue(value);\n onSearch?.(value);\n },\n [onSearch]\n );\n\n const handleOpenChange = useCallback(\n (open: boolean, _eventDetails?: any) => {\n onOpenChange?.(open);\n },\n [onOpenChange]\n );\n\n const registerItem = useCallback<SelectContextValue['registerItem']>(item => {\n setRegisteredItems(prev => ({ ...prev, [item.value]: item }));\n }, []);\n\n const unregisterItem = useCallback<SelectContextValue['unregisterItem']>(\n value => {\n setRegisteredItems(prev => {\n const { [value]: _, ...rest } = prev;\n return rest;\n });\n },\n []\n );\n\n const contextValue = useMemo(\n () => ({\n value: computedValue,\n registerItem,\n unregisterItem,\n autocomplete,\n autocompleteMode,\n searchValue,\n multiple,\n items: registeredItems,\n hasItems: !!itemsProp\n }),\n [\n computedValue,\n registerItem,\n unregisterItem,\n autocomplete,\n autocompleteMode,\n searchValue,\n multiple,\n registeredItems,\n itemsProp\n ]\n );\n\n const commonProps = {\n value: providedValue as any,\n defaultValue: defaultValue as any,\n onValueChange: handleValueChange,\n open: providedOpen,\n defaultOpen,\n onOpenChange: handleOpenChange,\n multiple: multiple as any,\n disabled,\n modal: true as const,\n ...rest\n };\n\n if (autocomplete) {\n return (\n <SelectContext.Provider value={contextValue}>\n <ComboboxPrimitive.Root\n {...commonProps}\n onInputValueChange={handleSearchValueChange}\n filter={itemsProp ? undefined : null}\n items={itemsProp}\n loopFocus={false}\n // @ts-ignore BaseUI types are not up to date\n autoHighlight='always'\n >\n {children}\n </ComboboxPrimitive.Root>\n </SelectContext.Provider>\n );\n }\n\n return (\n <SelectContext.Provider value={contextValue}>\n <SelectPrimitive.Root {...commonProps} required={required} name={name}>\n {children}\n </SelectPrimitive.Root>\n </SelectContext.Provider>\n );\n};\n"],"names":[],"mappings":";;;;;;;AAqCA;;;AAGE;AACF;AAEO;AACL;;AAEE;;AAEF;;AAGE;;AAGA;;;AAGJ;AA6Ba;;;;;AA+BX;AACA;;;;AAMO;;;AAIA;;AAIL;;;AAOE;AACF;;AAME;AACF;AAIF;;;AAIA;;AAGM;AACA;AACF;;AAKJ;AAEI;;;;;;;AAOA;;AAED;;;;;;;;;;AAWA;AAGH;AACE;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;;AAIA;;AASM;;AAQR;AAOF;;;"}
@@ -1,4 +1,4 @@
1
- import { Select as SelectPrimitive } from 'radix-ui';
1
+ import { ReactNode } from 'react';
2
2
  import { ItemType } from './types';
3
3
  interface CommonProps {
4
4
  autocomplete?: boolean;
@@ -13,26 +13,22 @@ interface SelectContextValue extends CommonProps {
13
13
  unregisterItem: (value: string) => void;
14
14
  multiple: boolean;
15
15
  items: Record<string, ItemType>;
16
- updateSelectionInProgress: (value: boolean) => void;
17
- setValue: (value: string) => void;
16
+ hasItems?: boolean;
18
17
  }
19
18
  interface UseSelectContext extends SelectContextValue {
20
19
  shouldFilter?: boolean;
21
20
  }
22
21
  export declare const useSelectContext: () => UseSelectContext;
23
- interface NormalSelectRootProps extends SelectPrimitive.SelectProps {
24
- autocomplete?: false;
25
- autocompleteMode?: never;
26
- searchValue?: never;
27
- onSearch?: never;
28
- defaultSearchValue?: never;
22
+ interface BaseSelectProps extends CommonProps {
23
+ children?: ReactNode;
24
+ open?: boolean;
25
+ defaultOpen?: boolean;
26
+ onOpenChange?: (open: boolean) => void;
27
+ disabled?: boolean;
28
+ required?: boolean;
29
+ name?: string;
30
+ items?: string[];
29
31
  }
30
- interface AutocompleteSelectRootProps extends SelectPrimitive.SelectProps, CommonProps {
31
- autocomplete: true;
32
- }
33
- export type BaseSelectProps = Omit<NormalSelectRootProps | AutocompleteSelectRootProps, 'autoComplete' | 'value' | 'onValueChange' | 'defaultValue'> & {
34
- htmlAutoComplete?: string;
35
- };
36
32
  export interface SingleSelectProps extends BaseSelectProps {
37
33
  multiple?: false;
38
34
  value?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"select-root.d.ts","sourceRoot":"","sources":["../../../components/select/select-root.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAE,MAAM,IAAI,eAAe,EAAE,MAAM,UAAU,CAAC;AAUrD,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,MAAM,MAAM,eAAe,GAAG,IAAI,CAChC,qBAAqB,GAAG,2BAA2B,EACnD,cAAc,GAAG,OAAO,GAAG,eAAe,GAAG,cAAc,CAC5D,GAAG;IACF,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B,CAAC;AAEF,MAAM,WAAW,iBAAkB,SAAQ,eAAe;IACxD,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,MAAM,WAAW,mBAAoB,SAAQ,eAAe;IAC1D,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,4CAwJhD,CAAC"}
1
+ {"version":3,"file":"select-root.d.ts","sourceRoot":"","sources":["../../../components/select/select-root.tsx"],"names":[],"mappings":"AAMA,OAAO,EAEL,SAAS,EAKV,MAAM,OAAO,CAAC;AACf,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,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,UAAU,gBAAiB,SAAQ,kBAAkB;IACnD,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAQD,eAAO,MAAM,gBAAgB,QAAO,gBAcnC,CAAC;AAEF,UAAU,eAAgB,SAAQ,WAAW;IAC3C,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACvC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;CAClB;AAED,MAAM,WAAW,iBAAkB,SAAQ,eAAe;IACxD,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,MAAM,WAAW,mBAAoB,SAAQ,eAAe;IAC1D,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;AAEtE,eAAO,MAAM,UAAU,UAAW,eAAe,4CA8IhD,CAAC"}
@@ -1,8 +1,7 @@
1
1
  "use client";
2
2
  import { jsx } from 'react/jsx-runtime';
3
- import { ComboboxProvider } from '@ariakit/react';
4
- import { Select } from 'radix-ui';
5
- import { createContext, useContext, useState, useId, useRef, useCallback, useMemo } from 'react';
3
+ import { Combobox, Select } from '@base-ui/react';
4
+ import { createContext, useContext, useState, useCallback, useMemo } from 'react';
6
5
 
7
6
  /*
8
7
  Root context to manage the Select control
@@ -22,91 +21,77 @@ const useSelectContext = () => {
22
21
  shouldFilter
23
22
  };
24
23
  };
25
- const SELECT_INTERNAL_VALUE = 'SELECT_INTERNAL_VALUE';
26
24
  const SelectRoot = (props) => {
27
- const { children, value: providedValue, onValueChange, defaultValue, autocomplete, autocompleteMode = 'auto', searchValue: providedSearchValue, onSearch, defaultSearchValue = '', open: providedOpen, defaultOpen = false, onOpenChange, htmlAutoComplete, multiple = false, ...rest } = props;
25
+ const { children, value: providedValue, onValueChange, defaultValue, autocomplete, autocompleteMode = 'auto', searchValue: providedSearchValue, onSearch, defaultSearchValue = '', open: providedOpen, defaultOpen = false, onOpenChange, multiple = false, disabled, required, name, items: itemsProp, ...rest } = props;
28
26
  const [internalValue, setInternalValue] = useState(defaultValue);
29
27
  const [internalSearchValue, setInternalSearchValue] = useState(defaultSearchValue);
30
- const [internalOpen, setInternalOpen] = useState(defaultOpen);
31
- const [items, setItems] = useState({});
32
- const id = useId();
33
- const isSelectionInProgress = useRef(false);
28
+ const [registeredItems, setRegisteredItems] = useState({});
34
29
  const computedValue = providedValue ?? internalValue;
35
30
  const searchValue = providedSearchValue ?? internalSearchValue;
36
- const open = providedOpen ?? internalOpen;
37
- const updateSelectionInProgress = useCallback((value) => {
38
- isSelectionInProgress.current = value;
39
- }, []);
40
- const setValue = useCallback((value) => {
41
- /*
42
- * If the select is placed inside a form, onChange is called with an empty value
43
- * WORKAROUND FOR ISSUE https://github.com/radix-ui/primitives/issues/3135
44
- */
45
- if (value === '')
46
- return;
31
+ const handleValueChange = useCallback((value, _eventDetails) => {
32
+ setInternalValue(value);
47
33
  if (multiple) {
48
- updateSelectionInProgress(true);
49
- const set = new Set(Array.isArray(computedValue)
50
- ? computedValue
51
- : [computedValue ?? ''].filter(Boolean));
52
- if (set.has(value))
53
- set.delete(value);
54
- else
55
- set.add(value);
56
- const newValue = Array.from(set);
57
- setInternalValue(newValue);
58
- onValueChange?.(newValue);
34
+ onValueChange?.(value);
59
35
  }
60
36
  else {
61
- setInternalValue(value);
62
37
  onValueChange?.(value);
63
38
  }
64
- }, [multiple, onValueChange, computedValue, updateSelectionInProgress]);
65
- const setSearchValue = useCallback((value) => {
39
+ }, [multiple, onValueChange]);
40
+ const handleSearchValueChange = useCallback((value, _eventDetails) => {
66
41
  setInternalSearchValue(value);
67
42
  onSearch?.(value);
68
43
  }, [onSearch]);
69
- const handleOpenChange = useCallback((value) => {
70
- if (isSelectionInProgress.current)
71
- return;
72
- setInternalOpen(value);
73
- onOpenChange?.(value);
44
+ const handleOpenChange = useCallback((open, _eventDetails) => {
45
+ onOpenChange?.(open);
74
46
  }, [onOpenChange]);
75
47
  const registerItem = useCallback(item => {
76
- setItems(prev => ({ ...prev, [item.value]: item }));
48
+ setRegisteredItems(prev => ({ ...prev, [item.value]: item }));
77
49
  }, []);
78
50
  const unregisterItem = useCallback(value => {
79
- setItems(prev => {
51
+ setRegisteredItems(prev => {
80
52
  const { [value]: _, ...rest } = prev;
81
53
  return rest;
82
54
  });
83
55
  }, []);
84
- /*
85
- * Radix internally shows the placeholder when the value is empty.
86
- * This value is used to manage the internal value of Radix Select to make it work
87
- */
88
- const radixValue = useMemo(() => {
89
- if (!computedValue)
90
- return '';
91
- if (typeof computedValue === 'string')
92
- return computedValue;
93
- if (Array.isArray(computedValue) && computedValue.length)
94
- return `${SELECT_INTERNAL_VALUE}-${id}`;
95
- return String(computedValue) ?? '';
96
- }, [computedValue, id]);
97
- const element = (jsx(ComboboxProvider, { resetValueOnHide: true, focusLoop: false, includesBaseElement: false, value: searchValue, setValue: setSearchValue, open: open, setOpen: handleOpenChange, children: children }));
98
- return (jsx(SelectContext.Provider, { value: {
99
- value: computedValue,
100
- registerItem,
101
- unregisterItem,
102
- autocomplete,
103
- autocompleteMode,
104
- searchValue,
105
- multiple,
106
- items,
107
- updateSelectionInProgress,
108
- setValue
109
- }, children: jsx(Select.Root, { autoComplete: htmlAutoComplete, value: radixValue, onValueChange: setValue, open: open, onOpenChange: handleOpenChange, ...rest, children: autocomplete ? element : children }) }));
56
+ const contextValue = useMemo(() => ({
57
+ value: computedValue,
58
+ registerItem,
59
+ unregisterItem,
60
+ autocomplete,
61
+ autocompleteMode,
62
+ searchValue,
63
+ multiple,
64
+ items: registeredItems,
65
+ hasItems: !!itemsProp
66
+ }), [
67
+ computedValue,
68
+ registerItem,
69
+ unregisterItem,
70
+ autocomplete,
71
+ autocompleteMode,
72
+ searchValue,
73
+ multiple,
74
+ registeredItems,
75
+ itemsProp
76
+ ]);
77
+ const commonProps = {
78
+ value: providedValue,
79
+ defaultValue: defaultValue,
80
+ onValueChange: handleValueChange,
81
+ open: providedOpen,
82
+ defaultOpen,
83
+ onOpenChange: handleOpenChange,
84
+ multiple: multiple,
85
+ disabled,
86
+ modal: true,
87
+ ...rest
88
+ };
89
+ if (autocomplete) {
90
+ return (jsx(SelectContext.Provider, { value: contextValue, children: jsx(Combobox.Root, { ...commonProps, onInputValueChange: handleSearchValueChange, filter: itemsProp ? undefined : null, items: itemsProp, loopFocus: false,
91
+ // @ts-ignore BaseUI types are not up to date
92
+ autoHighlight: 'always', children: children }) }));
93
+ }
94
+ return (jsx(SelectContext.Provider, { value: contextValue, children: jsx(Select.Root, { ...commonProps, required: required, name: name, children: children }) }));
110
95
  };
111
96
 
112
97
  export { SelectRoot, useSelectContext };
@@ -1 +1 @@
1
- {"version":3,"file":"select-root.js","sources":["../../../components/select/select-root.tsx"],"sourcesContent":["'use client';\n\nimport { ComboboxProvider } from '@ariakit/react';\nimport { Select as SelectPrimitive } from 'radix-ui';\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\nexport type BaseSelectProps = Omit<\n NormalSelectRootProps | AutocompleteSelectRootProps,\n 'autoComplete' | 'value' | 'onValueChange' | 'defaultValue'\n> & {\n htmlAutoComplete?: string;\n};\n\nexport interface SingleSelectProps extends BaseSelectProps {\n multiple?: false;\n value?: string;\n onValueChange?: (value: string) => void;\n defaultValue?: string;\n}\n\nexport interface 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 /*\n * If the select is placed inside a form, onChange is called with an empty value\n * WORKAROUND FOR ISSUE https://github.com/radix-ui/primitives/issues/3135\n */\n if (value === '') return;\n\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 (Array.isArray(computedValue) && computedValue.length)\n return `${SELECT_INTERNAL_VALUE}-${id}`;\n return String(computedValue) ?? '';\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":[],"mappings":";;;;;;AAqCA;;;AAGE;AACF;AAEO;AACL;;AAEE;;AAEF;;AAGE;;AAGA;;;AAGJ;AAuCA;AAEa;;;;;;AA0BX;AACA;AAEA;AACA;AACA;AAEA;AACE;;AAGF;AAEI;;;AAGG;;;;;;AAOG;AACA;AAGJ;AAAoB;;AACf;;;AAKJ;;;;AAGA;;;AAMP;;AAGI;AACF;AAIF;;;;AAII;AACF;AAIF;;;AAIA;;AAGM;AACA;AACF;;AAKJ;;;AAGG;AACH;AACE;AAAoB;;AACmB;;AAErC;AACF;AACF;AAEA;AAcA;AAGM;;;;;;;;;;AAUD;AAcP;;"}
1
+ {"version":3,"file":"select-root.js","sources":["../../../components/select/select-root.tsx"],"sourcesContent":["'use client';\n\nimport {\n Combobox as ComboboxPrimitive,\n Select as SelectPrimitive\n} from '@base-ui/react';\nimport {\n createContext,\n ReactNode,\n useCallback,\n useContext,\n useMemo,\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 hasItems?: boolean;\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 BaseSelectProps extends CommonProps {\n children?: ReactNode;\n open?: boolean;\n defaultOpen?: boolean;\n onOpenChange?: (open: boolean) => void;\n disabled?: boolean;\n required?: boolean;\n name?: string;\n items?: string[];\n}\n\nexport interface SingleSelectProps extends BaseSelectProps {\n multiple?: false;\n value?: string;\n onValueChange?: (value: string) => void;\n defaultValue?: string;\n}\n\nexport interface 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\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 multiple = false,\n disabled,\n required,\n name,\n items: itemsProp,\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 [registeredItems, setRegisteredItems] = useState<\n SelectContextValue['items']\n >({});\n\n const computedValue = providedValue ?? internalValue;\n const searchValue = providedSearchValue ?? internalSearchValue;\n\n const handleValueChange = useCallback(\n (value: any, _eventDetails?: any) => {\n setInternalValue(value);\n if (multiple) {\n (onValueChange as MultipleSelectProps['onValueChange'])?.(\n value as string[]\n );\n } else {\n (onValueChange as SingleSelectProps['onValueChange'])?.(\n value as string\n );\n }\n },\n [multiple, onValueChange]\n );\n\n const handleSearchValueChange = useCallback(\n (value: string, _eventDetails?: any) => {\n setInternalSearchValue(value);\n onSearch?.(value);\n },\n [onSearch]\n );\n\n const handleOpenChange = useCallback(\n (open: boolean, _eventDetails?: any) => {\n onOpenChange?.(open);\n },\n [onOpenChange]\n );\n\n const registerItem = useCallback<SelectContextValue['registerItem']>(item => {\n setRegisteredItems(prev => ({ ...prev, [item.value]: item }));\n }, []);\n\n const unregisterItem = useCallback<SelectContextValue['unregisterItem']>(\n value => {\n setRegisteredItems(prev => {\n const { [value]: _, ...rest } = prev;\n return rest;\n });\n },\n []\n );\n\n const contextValue = useMemo(\n () => ({\n value: computedValue,\n registerItem,\n unregisterItem,\n autocomplete,\n autocompleteMode,\n searchValue,\n multiple,\n items: registeredItems,\n hasItems: !!itemsProp\n }),\n [\n computedValue,\n registerItem,\n unregisterItem,\n autocomplete,\n autocompleteMode,\n searchValue,\n multiple,\n registeredItems,\n itemsProp\n ]\n );\n\n const commonProps = {\n value: providedValue as any,\n defaultValue: defaultValue as any,\n onValueChange: handleValueChange,\n open: providedOpen,\n defaultOpen,\n onOpenChange: handleOpenChange,\n multiple: multiple as any,\n disabled,\n modal: true as const,\n ...rest\n };\n\n if (autocomplete) {\n return (\n <SelectContext.Provider value={contextValue}>\n <ComboboxPrimitive.Root\n {...commonProps}\n onInputValueChange={handleSearchValueChange}\n filter={itemsProp ? undefined : null}\n items={itemsProp}\n loopFocus={false}\n // @ts-ignore BaseUI types are not up to date\n autoHighlight='always'\n >\n {children}\n </ComboboxPrimitive.Root>\n </SelectContext.Provider>\n );\n }\n\n return (\n <SelectContext.Provider value={contextValue}>\n <SelectPrimitive.Root {...commonProps} required={required} name={name}>\n {children}\n </SelectPrimitive.Root>\n </SelectContext.Provider>\n );\n};\n"],"names":[],"mappings":";;;;;AAqCA;;;AAGE;AACF;AAEO;AACL;;AAEE;;AAEF;;AAGE;;AAGA;;;AAGJ;AA6Ba;;;;;AA+BX;AACA;;;;AAMO;;;AAIA;;AAIL;;;AAOE;AACF;;AAME;AACF;AAIF;;;AAIA;;AAGM;AACA;AACF;;AAKJ;AAEI;;;;;;;AAOA;;AAED;;;;;;;;;;AAWA;AAGH;AACE;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;;AAIA;;AASM;;AAQR;AAOF;;"}
@@ -2,9 +2,9 @@
2
2
  'use strict';
3
3
 
4
4
  var jsxRuntime = require('react/jsx-runtime');
5
+ var react = require('@base-ui/react');
5
6
  var reactIcons = require('@radix-ui/react-icons');
6
7
  var classVarianceAuthority = require('class-variance-authority');
7
- var radixUi = require('radix-ui');
8
8
  var React = require('react');
9
9
  var flex = require('../flex/flex.cjs');
10
10
  var select_module = require('./select.module.css.cjs');
@@ -26,11 +26,14 @@ const trigger = classVarianceAuthority.cva(select_module.default.trigger, {
26
26
  variant: 'outline'
27
27
  }
28
28
  });
29
- const SelectTrigger = React.forwardRef(({ size, variant, className, children, iconProps = {}, asChild, 'aria-label': ariaLabel, ...props }, ref) => {
29
+ const SelectTrigger = React.forwardRef(({ size, variant, className, children, iconProps = {}, 'aria-label': ariaLabel, ...props }, ref) => {
30
30
  const { multiple, autocomplete } = selectRoot.useSelectContext();
31
- return (jsxRuntime.jsxs(radixUi.Select.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.jsx(flex.Flex, { className: select_module.default.triggerContent, align: 'center', gap: 2, children: asChild ? jsxRuntime.jsx(radixUi.Slot.Root, { children: children }) : children }), jsxRuntime.jsx(radixUi.Select.Icon, { asChild: true, children: jsxRuntime.jsx(reactIcons.ChevronDownIcon, { className: select_module.default.triggerIcon, "aria-hidden": 'true', ...iconProps }) })] }));
31
+ const TriggerPrimitive = autocomplete
32
+ ? react.Combobox.Trigger
33
+ : react.Select.Trigger;
34
+ return (jsxRuntime.jsxs(TriggerPrimitive, { "data-multiselectable": multiple ? true : undefined, ref: ref, className: trigger({ size, variant, className }), "aria-label": ariaLabel || 'Select option', ...props, children: [jsxRuntime.jsx(flex.Flex, { className: select_module.default.triggerContent, align: 'center', gap: 2, children: children }), jsxRuntime.jsx(reactIcons.ChevronDownIcon, { className: select_module.default.triggerIcon, "aria-hidden": 'true', ...iconProps })] }));
32
35
  });
33
- SelectTrigger.displayName = radixUi.Select.Trigger.displayName;
36
+ SelectTrigger.displayName = 'Select.Trigger';
34
37
 
35
38
  exports.SelectTrigger = SelectTrigger;
36
39
  //# sourceMappingURL=select-trigger.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"select-trigger.cjs","sources":["../../../components/select/select-trigger.tsx"],"sourcesContent":["'use client';\n\nimport { ChevronDownIcon } from '@radix-ui/react-icons';\nimport { cva, VariantProps } from 'class-variance-authority';\nimport { Select as SelectPrimitive, Slot } from 'radix-ui';\nimport { ElementRef, forwardRef, SVGAttributes } from 'react';\nimport { Flex } from '../flex';\nimport styles from './select.module.css';\nimport { useSelectContext } from './select-root';\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.Root>{children}</Slot.Root> : 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":[],"mappings":";;;;;;;;;;;;AAeA;AACE;AACE;AACE;AACA;AACD;AACD;AACE;AACA;AACD;AACF;AACD;AACE;AACA;AACD;AACF;AAQM;;;AAuCL;AAEF;;"}
1
+ {"version":3,"file":"select-trigger.cjs","sources":["../../../components/select/select-trigger.tsx"],"sourcesContent":["'use client';\n\nimport {\n Combobox as ComboboxPrimitive,\n Select as SelectPrimitive\n} from '@base-ui/react';\nimport { ChevronDownIcon } from '@radix-ui/react-icons';\nimport { cva, VariantProps } from 'class-variance-authority';\nimport { ComponentPropsWithoutRef, forwardRef, SVGAttributes } from 'react';\nimport { Flex } from '../flex';\nimport styles from './select.module.css';\nimport { useSelectContext } from './select-root';\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 ComponentPropsWithoutRef<'button'>,\n VariantProps<typeof trigger> {\n iconProps?: IconProps;\n}\n\nexport const SelectTrigger = forwardRef<HTMLButtonElement, SelectTriggerProps>(\n (\n {\n size,\n variant,\n className,\n children,\n iconProps = {},\n 'aria-label': ariaLabel,\n ...props\n },\n ref\n ) => {\n const { multiple, autocomplete } = useSelectContext();\n\n const TriggerPrimitive = autocomplete\n ? ComboboxPrimitive.Trigger\n : SelectPrimitive.Trigger;\n\n return (\n <TriggerPrimitive\n data-multiselectable={multiple ? true : undefined}\n ref={ref}\n className={trigger({ size, variant, className })}\n aria-label={ariaLabel || 'Select option'}\n {...props}\n >\n <Flex className={styles.triggerContent} align='center' gap={2}>\n {children}\n </Flex>\n <ChevronDownIcon\n className={styles.triggerIcon}\n aria-hidden='true'\n {...iconProps}\n />\n </TriggerPrimitive>\n );\n }\n);\nSelectTrigger.displayName = 'Select.Trigger';\n"],"names":[],"mappings":";;;;;;;;;;;;AAkBA;AACE;AACE;AACE;AACA;AACD;AACD;AACE;AACA;AACD;AACF;AACD;AACE;AACA;AACD;AACF;AAQM;;;;AAiBD;AAEF;AAkBF;AAEF;;"}
@@ -1,6 +1,5 @@
1
1
  import { VariantProps } from 'class-variance-authority';
2
- import { Select as SelectPrimitive } from 'radix-ui';
3
- import { SVGAttributes } from 'react';
2
+ import { ComponentPropsWithoutRef, SVGAttributes } from 'react';
4
3
  export interface IconProps extends SVGAttributes<SVGElement> {
5
4
  children?: never;
6
5
  color?: string;
@@ -9,7 +8,7 @@ declare const trigger: (props?: ({
9
8
  size?: "small" | "medium" | null | undefined;
10
9
  variant?: "text" | "outline" | null | undefined;
11
10
  } & import("class-variance-authority/types").ClassProp) | undefined) => string;
12
- export interface SelectTriggerProps extends SelectPrimitive.SelectTriggerProps, VariantProps<typeof trigger> {
11
+ export interface SelectTriggerProps extends ComponentPropsWithoutRef<'button'>, VariantProps<typeof trigger> {
13
12
  iconProps?: IconProps;
14
13
  }
15
14
  export declare const SelectTrigger: import("react").ForwardRefExoticComponent<SelectTriggerProps & import("react").RefAttributes<HTMLButtonElement>>;
@@ -1 +1 @@
1
- {"version":3,"file":"select-trigger.d.ts","sourceRoot":"","sources":["../../../components/select/select-trigger.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAO,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,MAAM,IAAI,eAAe,EAAQ,MAAM,UAAU,CAAC;AAC3D,OAAO,EAA0B,aAAa,EAAE,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
+ {"version":3,"file":"select-trigger.d.ts","sourceRoot":"","sources":["../../../components/select/select-trigger.tsx"],"names":[],"mappings":"AAOA,OAAO,EAAO,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,wBAAwB,EAAc,aAAa,EAAE,MAAM,OAAO,CAAC;AAK5E,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,wBAAwB,CAAC,QAAQ,CAAC,EACxC,YAAY,CAAC,OAAO,OAAO,CAAC;IAC9B,SAAS,CAAC,EAAE,SAAS,CAAC;CACvB;AAED,eAAO,MAAM,aAAa,kHAsCzB,CAAC"}
@@ -1,8 +1,8 @@
1
1
  "use client";
2
2
  import { jsxs, jsx } from 'react/jsx-runtime';
3
+ import { Combobox, Select } from '@base-ui/react';
3
4
  import { ChevronDownIcon } from '@radix-ui/react-icons';
4
5
  import { cva } from 'class-variance-authority';
5
- import { Select, Slot } from 'radix-ui';
6
6
  import { forwardRef } from 'react';
7
7
  import { Flex } from '../flex/flex.js';
8
8
  import styles from './select.module.css.js';
@@ -24,11 +24,14 @@ const trigger = cva(styles.trigger, {
24
24
  variant: 'outline'
25
25
  }
26
26
  });
27
- const SelectTrigger = forwardRef(({ size, variant, className, children, iconProps = {}, asChild, 'aria-label': ariaLabel, ...props }, ref) => {
27
+ const SelectTrigger = forwardRef(({ size, variant, className, children, iconProps = {}, 'aria-label': ariaLabel, ...props }, ref) => {
28
28
  const { multiple, autocomplete } = useSelectContext();
29
- return (jsxs(Select.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: [jsx(Flex, { className: styles.triggerContent, align: 'center', gap: 2, children: asChild ? jsx(Slot.Root, { children: children }) : children }), jsx(Select.Icon, { asChild: true, children: jsx(ChevronDownIcon, { className: styles.triggerIcon, "aria-hidden": 'true', ...iconProps }) })] }));
29
+ const TriggerPrimitive = autocomplete
30
+ ? Combobox.Trigger
31
+ : Select.Trigger;
32
+ return (jsxs(TriggerPrimitive, { "data-multiselectable": multiple ? true : undefined, ref: ref, className: trigger({ size, variant, className }), "aria-label": ariaLabel || 'Select option', ...props, children: [jsx(Flex, { className: styles.triggerContent, align: 'center', gap: 2, children: children }), jsx(ChevronDownIcon, { className: styles.triggerIcon, "aria-hidden": 'true', ...iconProps })] }));
30
33
  });
31
- SelectTrigger.displayName = Select.Trigger.displayName;
34
+ SelectTrigger.displayName = 'Select.Trigger';
32
35
 
33
36
  export { SelectTrigger };
34
37
  //# sourceMappingURL=select-trigger.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"select-trigger.js","sources":["../../../components/select/select-trigger.tsx"],"sourcesContent":["'use client';\n\nimport { ChevronDownIcon } from '@radix-ui/react-icons';\nimport { cva, VariantProps } from 'class-variance-authority';\nimport { Select as SelectPrimitive, Slot } from 'radix-ui';\nimport { ElementRef, forwardRef, SVGAttributes } from 'react';\nimport { Flex } from '../flex';\nimport styles from './select.module.css';\nimport { useSelectContext } from './select-root';\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.Root>{children}</Slot.Root> : 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":[],"mappings":";;;;;;;;;;AAeA;AACE;AACE;AACE;AACA;AACD;AACD;AACE;AACA;AACD;AACF;AACD;AACE;AACA;AACD;AACF;AAQM;;;AAuCL;AAEF;;"}
1
+ {"version":3,"file":"select-trigger.js","sources":["../../../components/select/select-trigger.tsx"],"sourcesContent":["'use client';\n\nimport {\n Combobox as ComboboxPrimitive,\n Select as SelectPrimitive\n} from '@base-ui/react';\nimport { ChevronDownIcon } from '@radix-ui/react-icons';\nimport { cva, VariantProps } from 'class-variance-authority';\nimport { ComponentPropsWithoutRef, forwardRef, SVGAttributes } from 'react';\nimport { Flex } from '../flex';\nimport styles from './select.module.css';\nimport { useSelectContext } from './select-root';\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 ComponentPropsWithoutRef<'button'>,\n VariantProps<typeof trigger> {\n iconProps?: IconProps;\n}\n\nexport const SelectTrigger = forwardRef<HTMLButtonElement, SelectTriggerProps>(\n (\n {\n size,\n variant,\n className,\n children,\n iconProps = {},\n 'aria-label': ariaLabel,\n ...props\n },\n ref\n ) => {\n const { multiple, autocomplete } = useSelectContext();\n\n const TriggerPrimitive = autocomplete\n ? ComboboxPrimitive.Trigger\n : SelectPrimitive.Trigger;\n\n return (\n <TriggerPrimitive\n data-multiselectable={multiple ? true : undefined}\n ref={ref}\n className={trigger({ size, variant, className })}\n aria-label={ariaLabel || 'Select option'}\n {...props}\n >\n <Flex className={styles.triggerContent} align='center' gap={2}>\n {children}\n </Flex>\n <ChevronDownIcon\n className={styles.triggerIcon}\n aria-hidden='true'\n {...iconProps}\n />\n </TriggerPrimitive>\n );\n }\n);\nSelectTrigger.displayName = 'Select.Trigger';\n"],"names":[],"mappings":";;;;;;;;;;AAkBA;AACE;AACE;AACE;AACA;AACD;AACD;AACE;AACA;AACD;AACF;AACD;AACE;AACA;AACD;AACF;AAQM;;;;AAiBD;AAEF;AAkBF;AAEF;;"}