@raystack/apsara 0.56.5 → 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 (611) 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 +30 -22
  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 +30 -22
  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 +56 -9
  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 +57 -10
  147. package/dist/components/data-table/components/virtualized-content.js.map +1 -1
  148. package/dist/components/data-table/data-table.cjs +30 -21
  149. package/dist/components/data-table/data-table.cjs.map +1 -1
  150. package/dist/components/data-table/data-table.d.ts +7 -7
  151. package/dist/components/data-table/data-table.d.ts.map +1 -1
  152. package/dist/components/data-table/data-table.js +31 -22
  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/data-table/utils/index.cjs +12 -0
  166. package/dist/components/data-table/utils/index.cjs.map +1 -1
  167. package/dist/components/data-table/utils/index.d.ts +5 -0
  168. package/dist/components/data-table/utils/index.d.ts.map +1 -1
  169. package/dist/components/data-table/utils/index.js +12 -1
  170. package/dist/components/data-table/utils/index.js.map +1 -1
  171. package/dist/components/dialog/dialog-content.cjs +17 -0
  172. package/dist/components/dialog/dialog-content.cjs.map +1 -0
  173. package/dist/components/dialog/dialog-content.d.ts +15 -0
  174. package/dist/components/dialog/dialog-content.d.ts.map +1 -0
  175. package/dist/components/dialog/dialog-content.js +15 -0
  176. package/dist/components/dialog/dialog-content.js.map +1 -0
  177. package/dist/components/dialog/dialog-misc.cjs +37 -0
  178. package/dist/components/dialog/dialog-misc.cjs.map +1 -0
  179. package/dist/components/dialog/dialog-misc.d.ts +34 -0
  180. package/dist/components/dialog/dialog-misc.d.ts.map +1 -0
  181. package/dist/components/dialog/dialog-misc.js +30 -0
  182. package/dist/components/dialog/dialog-misc.js.map +1 -0
  183. package/dist/components/dialog/dialog.cjs +13 -44
  184. package/dist/components/dialog/dialog.cjs.map +1 -1
  185. package/dist/components/dialog/dialog.d.ts +38 -44
  186. package/dist/components/dialog/dialog.d.ts.map +1 -1
  187. package/dist/components/dialog/dialog.js +6 -34
  188. package/dist/components/dialog/dialog.js.map +1 -1
  189. package/dist/components/dialog/dialog.module.css.cjs +1 -1
  190. package/dist/components/dialog/dialog.module.css.js +1 -1
  191. package/dist/components/drawer/__tests__/drawer.test.d.ts +2 -0
  192. package/dist/components/drawer/__tests__/drawer.test.d.ts.map +1 -0
  193. package/dist/components/drawer/drawer-content.cjs +30 -0
  194. package/dist/components/drawer/drawer-content.cjs.map +1 -0
  195. package/dist/components/drawer/drawer-content.d.ts +13 -0
  196. package/dist/components/drawer/drawer-content.d.ts.map +1 -0
  197. package/dist/components/drawer/drawer-content.js +28 -0
  198. package/dist/components/drawer/drawer-content.js.map +1 -0
  199. package/dist/components/drawer/drawer-misc.cjs +26 -0
  200. package/dist/components/drawer/drawer-misc.cjs.map +1 -0
  201. package/dist/components/drawer/drawer-misc.d.ts +13 -0
  202. package/dist/components/drawer/drawer-misc.d.ts.map +1 -0
  203. package/dist/components/drawer/drawer-misc.js +20 -0
  204. package/dist/components/drawer/drawer-misc.js.map +1 -0
  205. package/dist/components/drawer/drawer-root.cjs +19 -0
  206. package/dist/components/drawer/drawer-root.cjs.map +1 -0
  207. package/dist/components/drawer/drawer-root.d.ts +12 -0
  208. package/dist/components/drawer/drawer-root.d.ts.map +1 -0
  209. package/dist/components/drawer/drawer-root.js +17 -0
  210. package/dist/components/drawer/drawer-root.js.map +1 -0
  211. package/dist/components/drawer/drawer.cjs +20 -0
  212. package/dist/components/drawer/drawer.cjs.map +1 -0
  213. package/dist/components/drawer/drawer.d.ts +21 -0
  214. package/dist/components/drawer/drawer.d.ts.map +1 -0
  215. package/dist/components/drawer/drawer.js +18 -0
  216. package/dist/components/drawer/drawer.js.map +1 -0
  217. package/dist/components/drawer/drawer.module.css.cjs +8 -0
  218. package/dist/components/drawer/drawer.module.css.cjs.map +1 -0
  219. package/dist/components/drawer/drawer.module.css.js +4 -0
  220. package/dist/components/drawer/drawer.module.css.js.map +1 -0
  221. package/dist/components/drawer/index.d.ts +2 -0
  222. package/dist/components/drawer/index.d.ts.map +1 -0
  223. package/dist/components/flex/flex.cjs +13 -4
  224. package/dist/components/flex/flex.cjs.map +1 -1
  225. package/dist/components/flex/flex.d.ts +7 -6
  226. package/dist/components/flex/flex.d.ts.map +1 -1
  227. package/dist/components/flex/flex.js +13 -4
  228. package/dist/components/flex/flex.js.map +1 -1
  229. package/dist/components/grid/grid-item.cjs +21 -16
  230. package/dist/components/grid/grid-item.cjs.map +1 -1
  231. package/dist/components/grid/grid-item.d.ts +14 -13
  232. package/dist/components/grid/grid-item.d.ts.map +1 -1
  233. package/dist/components/grid/grid-item.js +21 -16
  234. package/dist/components/grid/grid-item.js.map +1 -1
  235. package/dist/components/grid/grid.cjs +26 -21
  236. package/dist/components/grid/grid.cjs.map +1 -1
  237. package/dist/components/grid/grid.d.ts +27 -18
  238. package/dist/components/grid/grid.d.ts.map +1 -1
  239. package/dist/components/grid/grid.js +26 -21
  240. package/dist/components/grid/grid.js.map +1 -1
  241. package/dist/components/grid/index.d.ts +8 -6
  242. package/dist/components/grid/index.d.ts.map +1 -1
  243. package/dist/components/headline/headline.d.ts +1 -1
  244. package/dist/components/input-field/input-field.cjs +2 -2
  245. package/dist/components/input-field/input-field.cjs.map +1 -1
  246. package/dist/components/input-field/input-field.d.ts +2 -1
  247. package/dist/components/input-field/input-field.d.ts.map +1 -1
  248. package/dist/components/input-field/input-field.js +2 -2
  249. package/dist/components/input-field/input-field.js.map +1 -1
  250. package/dist/components/menu/__tests__/menu.test.d.ts +2 -0
  251. package/dist/components/menu/__tests__/menu.test.d.ts.map +1 -0
  252. package/dist/components/menu/cell.cjs +12 -0
  253. package/dist/components/menu/cell.cjs.map +1 -0
  254. package/dist/components/{dropdown-menu → menu}/cell.d.ts +2 -2
  255. package/dist/components/menu/cell.d.ts.map +1 -0
  256. package/dist/components/menu/cell.js +10 -0
  257. package/dist/components/menu/cell.js.map +1 -0
  258. package/dist/components/{dropdown-menu → menu}/cell.module.css.cjs +1 -1
  259. package/dist/components/menu/cell.module.css.js +4 -0
  260. package/dist/components/menu/index.d.ts +2 -0
  261. package/dist/components/menu/index.d.ts.map +1 -0
  262. package/dist/components/menu/menu-content.cjs +95 -0
  263. package/dist/components/menu/menu-content.cjs.map +1 -0
  264. package/dist/components/menu/menu-content.d.ts +7 -0
  265. package/dist/components/menu/menu-content.d.ts.map +1 -0
  266. package/dist/components/menu/menu-content.js +92 -0
  267. package/dist/components/menu/menu-content.js.map +1 -0
  268. package/dist/components/menu/menu-item.cjs +30 -0
  269. package/dist/components/menu/menu-item.cjs.map +1 -0
  270. package/dist/components/menu/menu-item.d.ts +7 -0
  271. package/dist/components/menu/menu-item.d.ts.map +1 -0
  272. package/dist/components/menu/menu-item.js +28 -0
  273. package/dist/components/menu/menu-item.js.map +1 -0
  274. package/dist/components/menu/menu-misc.cjs +42 -0
  275. package/dist/components/menu/menu-misc.cjs.map +1 -0
  276. package/dist/components/menu/menu-misc.d.ts +8 -0
  277. package/dist/components/menu/menu-misc.d.ts.map +1 -0
  278. package/dist/components/menu/menu-misc.js +37 -0
  279. package/dist/components/menu/menu-misc.js.map +1 -0
  280. package/dist/components/menu/menu-root.cjs +103 -0
  281. package/dist/components/menu/menu-root.cjs.map +1 -0
  282. package/dist/components/menu/menu-root.d.ts +71 -0
  283. package/dist/components/menu/menu-root.d.ts.map +1 -0
  284. package/dist/components/menu/menu-root.js +98 -0
  285. package/dist/components/menu/menu-root.js.map +1 -0
  286. package/dist/components/menu/menu-trigger.cjs +43 -0
  287. package/dist/components/menu/menu-trigger.cjs.map +1 -0
  288. package/dist/components/menu/menu-trigger.d.ts +11 -0
  289. package/dist/components/menu/menu-trigger.d.ts.map +1 -0
  290. package/dist/components/menu/menu-trigger.js +40 -0
  291. package/dist/components/menu/menu-trigger.js.map +1 -0
  292. package/dist/components/menu/menu.cjs +23 -0
  293. package/dist/components/menu/menu.cjs.map +1 -0
  294. package/dist/components/menu/menu.d.ts +21 -0
  295. package/dist/components/menu/menu.d.ts.map +1 -0
  296. package/dist/components/menu/menu.js +21 -0
  297. package/dist/components/menu/menu.js.map +1 -0
  298. package/dist/components/menu/menu.module.css.cjs +8 -0
  299. package/dist/components/menu/menu.module.css.cjs.map +1 -0
  300. package/dist/components/menu/menu.module.css.js +4 -0
  301. package/dist/components/menu/menu.module.css.js.map +1 -0
  302. package/dist/components/menu/utils.cjs +53 -0
  303. package/dist/components/menu/utils.cjs.map +1 -0
  304. package/dist/components/menu/utils.d.ts +8 -0
  305. package/dist/components/menu/utils.d.ts.map +1 -0
  306. package/dist/components/menu/utils.js +46 -0
  307. package/dist/components/menu/utils.js.map +1 -0
  308. package/dist/components/popover/popover.cjs +8 -7
  309. package/dist/components/popover/popover.cjs.map +1 -1
  310. package/dist/components/popover/popover.d.ts +6 -8
  311. package/dist/components/popover/popover.d.ts.map +1 -1
  312. package/dist/components/popover/popover.js +7 -6
  313. package/dist/components/popover/popover.js.map +1 -1
  314. package/dist/components/popover/popover.module.css.cjs +1 -1
  315. package/dist/components/popover/popover.module.css.js +1 -1
  316. package/dist/components/preview-card/__tests__/preview-card.test.d.ts +2 -0
  317. package/dist/components/preview-card/__tests__/preview-card.test.d.ts.map +1 -0
  318. package/dist/components/preview-card/index.d.ts +2 -0
  319. package/dist/components/preview-card/index.d.ts.map +1 -0
  320. package/dist/components/preview-card/preview-card.cjs +24 -0
  321. package/dist/components/preview-card/preview-card.cjs.map +1 -0
  322. package/dist/components/preview-card/preview-card.d.ts +15 -0
  323. package/dist/components/preview-card/preview-card.d.ts.map +1 -0
  324. package/dist/components/preview-card/preview-card.js +22 -0
  325. package/dist/components/preview-card/preview-card.js.map +1 -0
  326. package/dist/components/preview-card/preview-card.module.css.cjs +8 -0
  327. package/dist/components/preview-card/preview-card.module.css.cjs.map +1 -0
  328. package/dist/components/preview-card/preview-card.module.css.js +4 -0
  329. package/dist/components/preview-card/preview-card.module.css.js.map +1 -0
  330. package/dist/components/radio/index.d.ts +1 -1
  331. package/dist/components/radio/radio.cjs +8 -11
  332. package/dist/components/radio/radio.cjs.map +1 -1
  333. package/dist/components/radio/radio.d.ts +4 -13
  334. package/dist/components/radio/radio.d.ts.map +1 -1
  335. package/dist/components/radio/radio.js +10 -12
  336. package/dist/components/radio/radio.js.map +1 -1
  337. package/dist/components/scroll-area/index.d.ts +2 -1
  338. package/dist/components/scroll-area/index.d.ts.map +1 -1
  339. package/dist/components/scroll-area/scroll-area-scrollbar.cjs +4 -4
  340. package/dist/components/scroll-area/scroll-area-scrollbar.cjs.map +1 -1
  341. package/dist/components/scroll-area/scroll-area-scrollbar.d.ts +5 -6
  342. package/dist/components/scroll-area/scroll-area-scrollbar.d.ts.map +1 -1
  343. package/dist/components/scroll-area/scroll-area-scrollbar.js +4 -4
  344. package/dist/components/scroll-area/scroll-area-scrollbar.js.map +1 -1
  345. package/dist/components/scroll-area/scroll-area.cjs +11 -2
  346. package/dist/components/scroll-area/scroll-area.cjs.map +1 -1
  347. package/dist/components/scroll-area/scroll-area.d.ts +6 -1
  348. package/dist/components/scroll-area/scroll-area.d.ts.map +1 -1
  349. package/dist/components/scroll-area/scroll-area.js +11 -2
  350. package/dist/components/scroll-area/scroll-area.js.map +1 -1
  351. package/dist/components/scroll-area/scroll-area.module.css.cjs +1 -1
  352. package/dist/components/scroll-area/scroll-area.module.css.js +1 -1
  353. package/dist/components/select/select-content.cjs +9 -18
  354. package/dist/components/select/select-content.cjs.map +1 -1
  355. package/dist/components/select/select-content.d.ts +6 -2
  356. package/dist/components/select/select-content.d.ts.map +1 -1
  357. package/dist/components/select/select-content.js +11 -20
  358. package/dist/components/select/select-content.js.map +1 -1
  359. package/dist/components/select/select-item.cjs +10 -11
  360. package/dist/components/select/select-item.cjs.map +1 -1
  361. package/dist/components/select/select-item.d.ts +9 -4
  362. package/dist/components/select/select-item.d.ts.map +1 -1
  363. package/dist/components/select/select-item.js +10 -11
  364. package/dist/components/select/select-item.js.map +1 -1
  365. package/dist/components/select/select-misc.cjs +19 -10
  366. package/dist/components/select/select-misc.cjs.map +1 -1
  367. package/dist/components/select/select-misc.d.ts +15 -4
  368. package/dist/components/select/select-misc.d.ts.map +1 -1
  369. package/dist/components/select/select-misc.js +19 -10
  370. package/dist/components/select/select-misc.js.map +1 -1
  371. package/dist/components/select/select-multiple-value.cjs +3 -7
  372. package/dist/components/select/select-multiple-value.cjs.map +1 -1
  373. package/dist/components/select/select-multiple-value.d.ts +2 -3
  374. package/dist/components/select/select-multiple-value.d.ts.map +1 -1
  375. package/dist/components/select/select-multiple-value.js +5 -9
  376. package/dist/components/select/select-multiple-value.js.map +1 -1
  377. package/dist/components/select/select-root.cjs +51 -66
  378. package/dist/components/select/select-root.cjs.map +1 -1
  379. package/dist/components/select/select-root.d.ts +11 -15
  380. package/dist/components/select/select-root.d.ts.map +1 -1
  381. package/dist/components/select/select-root.js +52 -67
  382. package/dist/components/select/select-root.js.map +1 -1
  383. package/dist/components/select/select-trigger.cjs +7 -4
  384. package/dist/components/select/select-trigger.cjs.map +1 -1
  385. package/dist/components/select/select-trigger.d.ts +2 -3
  386. package/dist/components/select/select-trigger.d.ts.map +1 -1
  387. package/dist/components/select/select-trigger.js +7 -4
  388. package/dist/components/select/select-trigger.js.map +1 -1
  389. package/dist/components/select/select-value.cjs +17 -8
  390. package/dist/components/select/select-value.cjs.map +1 -1
  391. package/dist/components/select/select-value.d.ts +6 -4
  392. package/dist/components/select/select-value.d.ts.map +1 -1
  393. package/dist/components/select/select-value.js +17 -8
  394. package/dist/components/select/select-value.js.map +1 -1
  395. package/dist/components/select/select.cjs +4 -4
  396. package/dist/components/select/select.cjs.map +1 -1
  397. package/dist/components/select/select.d.ts +10 -11
  398. package/dist/components/select/select.d.ts.map +1 -1
  399. package/dist/components/select/select.js +4 -4
  400. package/dist/components/select/select.js.map +1 -1
  401. package/dist/components/select/select.module.css.cjs +1 -1
  402. package/dist/components/select/select.module.css.js +1 -1
  403. package/dist/components/separator/separator.cjs +3 -3
  404. package/dist/components/separator/separator.cjs.map +1 -1
  405. package/dist/components/separator/separator.d.ts +3 -5
  406. package/dist/components/separator/separator.d.ts.map +1 -1
  407. package/dist/components/separator/separator.js +3 -3
  408. package/dist/components/separator/separator.js.map +1 -1
  409. package/dist/components/sidebar/sidebar-item.cjs +7 -4
  410. package/dist/components/sidebar/sidebar-item.cjs.map +1 -1
  411. package/dist/components/sidebar/sidebar-item.d.ts.map +1 -1
  412. package/dist/components/sidebar/sidebar-item.js +7 -4
  413. package/dist/components/sidebar/sidebar-item.js.map +1 -1
  414. package/dist/components/sidebar/sidebar-misc.cjs +1 -1
  415. package/dist/components/sidebar/sidebar-misc.cjs.map +1 -1
  416. package/dist/components/sidebar/sidebar-misc.js +1 -1
  417. package/dist/components/sidebar/sidebar-misc.js.map +1 -1
  418. package/dist/components/sidebar/sidebar-root.cjs +4 -5
  419. package/dist/components/sidebar/sidebar-root.cjs.map +1 -1
  420. package/dist/components/sidebar/sidebar-root.d.ts +5 -3
  421. package/dist/components/sidebar/sidebar-root.d.ts.map +1 -1
  422. package/dist/components/sidebar/sidebar-root.js +4 -5
  423. package/dist/components/sidebar/sidebar-root.js.map +1 -1
  424. package/dist/components/sidebar/sidebar.d.ts +1 -1
  425. package/dist/components/sidebar/sidebar.module.css.cjs +1 -1
  426. package/dist/components/sidebar/sidebar.module.css.js +1 -1
  427. package/dist/components/slider/index.d.ts +1 -1
  428. package/dist/components/slider/slider.cjs +10 -22
  429. package/dist/components/slider/slider.cjs.map +1 -1
  430. package/dist/components/slider/slider.d.ts +6 -13
  431. package/dist/components/slider/slider.d.ts.map +1 -1
  432. package/dist/components/slider/slider.js +12 -24
  433. package/dist/components/slider/slider.js.map +1 -1
  434. package/dist/components/slider/slider.module.css.cjs +1 -1
  435. package/dist/components/slider/slider.module.css.js +1 -1
  436. package/dist/components/switch/switch.cjs +2 -3
  437. package/dist/components/switch/switch.cjs.map +1 -1
  438. package/dist/components/switch/switch.d.ts +4 -5
  439. package/dist/components/switch/switch.d.ts.map +1 -1
  440. package/dist/components/switch/switch.js +4 -5
  441. package/dist/components/switch/switch.js.map +1 -1
  442. package/dist/components/tabs/index.d.ts +1 -1
  443. package/dist/components/tabs/tabs.cjs +10 -14
  444. package/dist/components/tabs/tabs.cjs.map +1 -1
  445. package/dist/components/tabs/tabs.d.ts +7 -14
  446. package/dist/components/tabs/tabs.d.ts.map +1 -1
  447. package/dist/components/tabs/tabs.js +11 -15
  448. package/dist/components/tabs/tabs.js.map +1 -1
  449. package/dist/components/tabs/tabs.module.css.cjs +1 -1
  450. package/dist/components/tabs/tabs.module.css.js +1 -1
  451. package/dist/components/text/text.d.ts +1 -1
  452. package/dist/components/toast/index.d.ts +3 -1
  453. package/dist/components/toast/index.d.ts.map +1 -1
  454. package/dist/components/toast/toast-manager.cjs +9 -0
  455. package/dist/components/toast/toast-manager.cjs.map +1 -0
  456. package/dist/components/toast/toast-manager.d.ts +2 -0
  457. package/dist/components/toast/toast-manager.d.ts.map +1 -0
  458. package/dist/components/toast/toast-manager.js +7 -0
  459. package/dist/components/toast/toast-manager.js.map +1 -0
  460. package/dist/components/toast/toast-provider.cjs +22 -0
  461. package/dist/components/toast/toast-provider.cjs.map +1 -0
  462. package/dist/components/toast/toast-provider.d.ts +11 -0
  463. package/dist/components/toast/toast-provider.d.ts.map +1 -0
  464. package/dist/components/toast/toast-provider.js +20 -0
  465. package/dist/components/toast/toast-provider.js.map +1 -0
  466. package/dist/components/toast/toast-root.cjs +34 -0
  467. package/dist/components/toast/toast-root.cjs.map +1 -0
  468. package/dist/components/toast/toast-root.d.ts +8 -0
  469. package/dist/components/toast/toast-root.d.ts.map +1 -0
  470. package/dist/components/toast/toast-root.js +32 -0
  471. package/dist/components/toast/toast-root.js.map +1 -0
  472. package/dist/components/toast/toast.cjs +11 -25
  473. package/dist/components/toast/toast.cjs.map +1 -1
  474. package/dist/components/toast/toast.d.ts +6 -8
  475. package/dist/components/toast/toast.d.ts.map +1 -1
  476. package/dist/components/toast/toast.js +10 -24
  477. package/dist/components/toast/toast.js.map +1 -1
  478. package/dist/components/toast/toast.module.css.cjs +1 -1
  479. package/dist/components/toast/toast.module.css.js +1 -1
  480. package/dist/components/tooltip/tooltip-content.cjs +17 -0
  481. package/dist/components/tooltip/tooltip-content.cjs.map +1 -0
  482. package/dist/components/tooltip/tooltip-content.d.ts +10 -0
  483. package/dist/components/tooltip/tooltip-content.d.ts.map +1 -0
  484. package/dist/components/tooltip/tooltip-content.js +15 -0
  485. package/dist/components/tooltip/tooltip-content.js.map +1 -0
  486. package/dist/components/tooltip/tooltip-misc.cjs +19 -0
  487. package/dist/components/tooltip/tooltip-misc.cjs.map +1 -0
  488. package/dist/components/tooltip/tooltip-misc.d.ts +9 -0
  489. package/dist/components/tooltip/tooltip-misc.d.ts.map +1 -0
  490. package/dist/components/tooltip/tooltip-misc.js +16 -0
  491. package/dist/components/tooltip/tooltip-misc.js.map +1 -0
  492. package/dist/components/tooltip/tooltip.cjs +7 -4
  493. package/dist/components/tooltip/tooltip.cjs.map +1 -1
  494. package/dist/components/tooltip/tooltip.d.ts +8 -5
  495. package/dist/components/tooltip/tooltip.d.ts.map +1 -1
  496. package/dist/components/tooltip/tooltip.js +7 -4
  497. package/dist/components/tooltip/tooltip.js.map +1 -1
  498. package/dist/components/tooltip/tooltip.module.css.cjs +1 -1
  499. package/dist/components/tooltip/tooltip.module.css.js +1 -1
  500. package/dist/index.cjs +14 -8
  501. package/dist/index.cjs.map +1 -1
  502. package/dist/index.d.ts +6 -4
  503. package/dist/index.d.ts.map +1 -1
  504. package/dist/index.js +8 -4
  505. package/dist/index.js.map +1 -1
  506. package/dist/style.css +1 -1
  507. package/package.json +5 -7
  508. package/dist/components/dropdown-menu/__tests__/dropdown-menu.test.d.ts +0 -2
  509. package/dist/components/dropdown-menu/__tests__/dropdown-menu.test.d.ts.map +0 -1
  510. package/dist/components/dropdown-menu/cell.cjs +0 -12
  511. package/dist/components/dropdown-menu/cell.cjs.map +0 -1
  512. package/dist/components/dropdown-menu/cell.d.ts.map +0 -1
  513. package/dist/components/dropdown-menu/cell.js +0 -10
  514. package/dist/components/dropdown-menu/cell.js.map +0 -1
  515. package/dist/components/dropdown-menu/cell.module.css.js +0 -4
  516. package/dist/components/dropdown-menu/dropdown-menu-content.cjs +0 -36
  517. package/dist/components/dropdown-menu/dropdown-menu-content.cjs.map +0 -1
  518. package/dist/components/dropdown-menu/dropdown-menu-content.d.ts +0 -7
  519. package/dist/components/dropdown-menu/dropdown-menu-content.d.ts.map +0 -1
  520. package/dist/components/dropdown-menu/dropdown-menu-content.js +0 -34
  521. package/dist/components/dropdown-menu/dropdown-menu-content.js.map +0 -1
  522. package/dist/components/dropdown-menu/dropdown-menu-item.cjs +0 -45
  523. package/dist/components/dropdown-menu/dropdown-menu-item.cjs.map +0 -1
  524. package/dist/components/dropdown-menu/dropdown-menu-item.d.ts +0 -9
  525. package/dist/components/dropdown-menu/dropdown-menu-item.d.ts.map +0 -1
  526. package/dist/components/dropdown-menu/dropdown-menu-item.js +0 -43
  527. package/dist/components/dropdown-menu/dropdown-menu-item.js.map +0 -1
  528. package/dist/components/dropdown-menu/dropdown-menu-misc.cjs +0 -36
  529. package/dist/components/dropdown-menu/dropdown-menu-misc.cjs.map +0 -1
  530. package/dist/components/dropdown-menu/dropdown-menu-misc.d.ts +0 -10
  531. package/dist/components/dropdown-menu/dropdown-menu-misc.d.ts.map +0 -1
  532. package/dist/components/dropdown-menu/dropdown-menu-misc.js +0 -31
  533. package/dist/components/dropdown-menu/dropdown-menu-misc.js.map +0 -1
  534. package/dist/components/dropdown-menu/dropdown-menu-root.cjs +0 -52
  535. package/dist/components/dropdown-menu/dropdown-menu-root.cjs.map +0 -1
  536. package/dist/components/dropdown-menu/dropdown-menu-root.d.ts +0 -40
  537. package/dist/components/dropdown-menu/dropdown-menu-root.d.ts.map +0 -1
  538. package/dist/components/dropdown-menu/dropdown-menu-root.js +0 -48
  539. package/dist/components/dropdown-menu/dropdown-menu-root.js.map +0 -1
  540. package/dist/components/dropdown-menu/dropdown-menu-trigger.cjs +0 -34
  541. package/dist/components/dropdown-menu/dropdown-menu-trigger.cjs.map +0 -1
  542. package/dist/components/dropdown-menu/dropdown-menu-trigger.d.ts +0 -14
  543. package/dist/components/dropdown-menu/dropdown-menu-trigger.d.ts.map +0 -1
  544. package/dist/components/dropdown-menu/dropdown-menu-trigger.js +0 -31
  545. package/dist/components/dropdown-menu/dropdown-menu-trigger.js.map +0 -1
  546. package/dist/components/dropdown-menu/dropdown-menu.cjs +0 -24
  547. package/dist/components/dropdown-menu/dropdown-menu.cjs.map +0 -1
  548. package/dist/components/dropdown-menu/dropdown-menu.d.ts +0 -16
  549. package/dist/components/dropdown-menu/dropdown-menu.d.ts.map +0 -1
  550. package/dist/components/dropdown-menu/dropdown-menu.js +0 -22
  551. package/dist/components/dropdown-menu/dropdown-menu.js.map +0 -1
  552. package/dist/components/dropdown-menu/dropdown-menu.module.css.cjs +0 -8
  553. package/dist/components/dropdown-menu/dropdown-menu.module.css.cjs.map +0 -1
  554. package/dist/components/dropdown-menu/dropdown-menu.module.css.js +0 -4
  555. package/dist/components/dropdown-menu/dropdown-menu.module.css.js.map +0 -1
  556. package/dist/components/dropdown-menu/index.d.ts +0 -2
  557. package/dist/components/dropdown-menu/index.d.ts.map +0 -1
  558. package/dist/components/dropdown-menu/types.d.ts +0 -4
  559. package/dist/components/dropdown-menu/types.d.ts.map +0 -1
  560. package/dist/components/dropdown-menu/utils.cjs +0 -21
  561. package/dist/components/dropdown-menu/utils.cjs.map +0 -1
  562. package/dist/components/dropdown-menu/utils.d.ts +0 -4
  563. package/dist/components/dropdown-menu/utils.d.ts.map +0 -1
  564. package/dist/components/dropdown-menu/utils.js +0 -18
  565. package/dist/components/dropdown-menu/utils.js.map +0 -1
  566. package/dist/components/scroll-area/scroll-area-root.cjs +0 -17
  567. package/dist/components/scroll-area/scroll-area-root.cjs.map +0 -1
  568. package/dist/components/scroll-area/scroll-area-root.d.ts +0 -9
  569. package/dist/components/scroll-area/scroll-area-root.d.ts.map +0 -1
  570. package/dist/components/scroll-area/scroll-area-root.js +0 -15
  571. package/dist/components/scroll-area/scroll-area-root.js.map +0 -1
  572. package/dist/components/sheet/__tests__/sheet.test.d.ts +0 -2
  573. package/dist/components/sheet/__tests__/sheet.test.d.ts.map +0 -1
  574. package/dist/components/sheet/index.d.ts +0 -2
  575. package/dist/components/sheet/index.d.ts.map +0 -1
  576. package/dist/components/sheet/sheet.cjs +0 -50
  577. package/dist/components/sheet/sheet.cjs.map +0 -1
  578. package/dist/components/sheet/sheet.d.ts +0 -36
  579. package/dist/components/sheet/sheet.d.ts.map +0 -1
  580. package/dist/components/sheet/sheet.js +0 -45
  581. package/dist/components/sheet/sheet.js.map +0 -1
  582. package/dist/components/sheet/sheet.module.css.cjs +0 -8
  583. package/dist/components/sheet/sheet.module.css.cjs.map +0 -1
  584. package/dist/components/sheet/sheet.module.css.js +0 -4
  585. package/dist/components/sheet/sheet.module.css.js.map +0 -1
  586. package/dist/components/slider/thumb.cjs +0 -8
  587. package/dist/components/slider/thumb.cjs.map +0 -1
  588. package/dist/components/slider/thumb.d.ts +0 -2
  589. package/dist/components/slider/thumb.d.ts.map +0 -1
  590. package/dist/components/slider/thumb.js +0 -6
  591. package/dist/components/slider/thumb.js.map +0 -1
  592. package/dist/components/tooltip/tooltip-provider.cjs +0 -18
  593. package/dist/components/tooltip/tooltip-provider.cjs.map +0 -1
  594. package/dist/components/tooltip/tooltip-provider.d.ts +0 -9
  595. package/dist/components/tooltip/tooltip-provider.d.ts.map +0 -1
  596. package/dist/components/tooltip/tooltip-provider.js +0 -15
  597. package/dist/components/tooltip/tooltip-provider.js.map +0 -1
  598. package/dist/components/tooltip/tooltip-root.cjs +0 -66
  599. package/dist/components/tooltip/tooltip-root.cjs.map +0 -1
  600. package/dist/components/tooltip/tooltip-root.d.ts +0 -29
  601. package/dist/components/tooltip/tooltip-root.d.ts.map +0 -1
  602. package/dist/components/tooltip/tooltip-root.js +0 -63
  603. package/dist/components/tooltip/tooltip-root.js.map +0 -1
  604. package/dist/components/tooltip/utils.cjs +0 -30
  605. package/dist/components/tooltip/utils.cjs.map +0 -1
  606. package/dist/components/tooltip/utils.d.ts +0 -10
  607. package/dist/components/tooltip/utils.d.ts.map +0 -1
  608. package/dist/components/tooltip/utils.js +0 -28
  609. package/dist/components/tooltip/utils.js.map +0 -1
  610. /package/dist/components/{dropdown-menu → menu}/cell.module.css.cjs.map +0 -0
  611. /package/dist/components/{dropdown-menu → menu}/cell.module.css.js.map +0 -0
@@ -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;;"}
@@ -3,14 +3,16 @@
3
3
 
4
4
  var jsxRuntime = require('react/jsx-runtime');
5
5
  var classVarianceAuthority = require('class-variance-authority');
6
- var radixUi = require('radix-ui');
7
6
  var React = require('react');
7
+ var select_module = require('./select.module.css.cjs');
8
8
  var selectMultipleValue = require('./select-multiple-value.cjs');
9
9
  var selectRoot = require('./select-root.cjs');
10
- var select_module = require('./select.module.css.cjs');
11
10
 
12
- const SelectValue = React.forwardRef(({ children, ...props }, ref) => {
11
+ const SelectValue = React.forwardRef(({ children, placeholder, className, ...props }, ref) => {
13
12
  const { value, items, multiple } = selectRoot.useSelectContext();
13
+ const hasValue = multiple
14
+ ? Array.isArray(value) && value.length > 0
15
+ : !!value;
14
16
  const item = React.useMemo(() => {
15
17
  if (!value)
16
18
  return undefined;
@@ -22,14 +24,21 @@ const SelectValue = React.forwardRef(({ children, ...props }, ref) => {
22
24
  }
23
25
  return items[value];
24
26
  }, [value, items, multiple]);
27
+ if (!hasValue) {
28
+ return (jsxRuntime.jsx("span", { ref: ref, "data-placeholder": '', className: classVarianceAuthority.cx(select_module.default.placeholder, className), ...props, children: placeholder }));
29
+ }
30
+ if (typeof children === 'function') {
31
+ return (jsxRuntime.jsx("span", { ref: ref, className: className, ...props, children: children(item) }));
32
+ }
25
33
  if (children) {
26
- return (jsxRuntime.jsx(radixUi.Select.Value, { ref: ref, ...props, children: typeof children === 'function' ? children(item) : children }));
34
+ return (jsxRuntime.jsx("span", { ref: ref, className: className, ...props, children: children }));
35
+ }
36
+ if (Array.isArray(item)) {
37
+ return jsxRuntime.jsx(selectMultipleValue.SelectMultipleValue, { data: item });
27
38
  }
28
- if (Array.isArray(item))
29
- return jsxRuntime.jsx(selectMultipleValue.SelectMultipleValue, { data: item, ref: ref, ...props });
30
- return (jsxRuntime.jsx(radixUi.Select.Value, { ref: ref, ...props, children: jsxRuntime.jsxs("div", { className: classVarianceAuthority.cx(select_module.default.valueContent), children: [typeof item?.children === 'string' && item?.leadingIcon && (jsxRuntime.jsx("div", { className: select_module.default.itemIcon, children: item.leadingIcon })), item?.children ?? value] }) }));
39
+ return (jsxRuntime.jsx("span", { ref: ref, className: className, ...props, children: jsxRuntime.jsxs("div", { className: classVarianceAuthority.cx(select_module.default.valueContent), children: [typeof item?.children === 'string' && item?.leadingIcon && (jsxRuntime.jsx("div", { className: select_module.default.itemIcon, children: item.leadingIcon })), item?.children ?? value] }) }));
31
40
  });
32
- SelectValue.displayName = radixUi.Select.Value.displayName;
41
+ SelectValue.displayName = 'Select.Value';
33
42
 
34
43
  exports.SelectValue = SelectValue;
35
44
  //# sourceMappingURL=select-value.cjs.map