@jbpark/ui-kit 10.2.0 → 10.3.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 (351) hide show
  1. package/dist/Alert.d.mts +2 -2
  2. package/dist/Alert.d.mts.map +1 -1
  3. package/dist/Alert.mjs +1 -1
  4. package/dist/Anchor.d.mts +29 -0
  5. package/dist/Anchor.d.mts.map +1 -0
  6. package/dist/Anchor.mjs +120 -0
  7. package/dist/Anchor.mjs.map +1 -0
  8. package/dist/AutoComplete.d.mts +34 -0
  9. package/dist/AutoComplete.d.mts.map +1 -0
  10. package/dist/AutoComplete.mjs +82 -0
  11. package/dist/AutoComplete.mjs.map +1 -0
  12. package/dist/Avatar.d.mts +2 -2
  13. package/dist/Avatar.d.mts.map +1 -1
  14. package/dist/Avatar.mjs +2 -2
  15. package/dist/Badge.d.mts +2 -2
  16. package/dist/Badge.d.mts.map +1 -1
  17. package/dist/Breadcrumb.d.mts +3 -3
  18. package/dist/Breadcrumb.d.mts.map +1 -1
  19. package/dist/Breadcrumb.mjs +1 -1
  20. package/dist/Breadcrumb.mjs.map +1 -1
  21. package/dist/Button.d.mts +3 -3
  22. package/dist/Button.d.mts.map +1 -1
  23. package/dist/Button.mjs +1 -1
  24. package/dist/Calendar.d.mts +28 -0
  25. package/dist/Calendar.d.mts.map +1 -0
  26. package/dist/Calendar.mjs +64 -0
  27. package/dist/Calendar.mjs.map +1 -0
  28. package/dist/Card.d.mts +2 -2
  29. package/dist/Card.d.mts.map +1 -1
  30. package/dist/Cascader.d.mts +34 -0
  31. package/dist/Cascader.d.mts.map +1 -0
  32. package/dist/Cascader.mjs +144 -0
  33. package/dist/Cascader.mjs.map +1 -0
  34. package/dist/CodeEditor.d.mts +2 -2
  35. package/dist/CodeEditor.d.mts.map +1 -1
  36. package/dist/ContextMenu.d.mts +33 -0
  37. package/dist/ContextMenu.d.mts.map +1 -0
  38. package/dist/ContextMenu.mjs +92 -0
  39. package/dist/ContextMenu.mjs.map +1 -0
  40. package/dist/Descriptions.d.mts +31 -0
  41. package/dist/Descriptions.d.mts.map +1 -0
  42. package/dist/Descriptions.mjs +67 -0
  43. package/dist/Descriptions.mjs.map +1 -0
  44. package/dist/Divider.d.mts +18 -0
  45. package/dist/Divider.d.mts.map +1 -0
  46. package/dist/Divider.mjs +44 -0
  47. package/dist/Divider.mjs.map +1 -0
  48. package/dist/Form.d.mts +12 -0
  49. package/dist/Form.d.mts.map +1 -0
  50. package/dist/Form.mjs +11 -0
  51. package/dist/Form.mjs.map +1 -0
  52. package/dist/Layout.d.mts.map +1 -1
  53. package/dist/Mentions.d.mts +34 -0
  54. package/dist/Mentions.d.mts.map +1 -0
  55. package/dist/Mentions.mjs +207 -0
  56. package/dist/Mentions.mjs.map +1 -0
  57. package/dist/Menu.mjs +1 -2
  58. package/dist/Pagination.d.mts +2 -2
  59. package/dist/Pagination.d.mts.map +1 -1
  60. package/dist/Pagination.mjs +1 -1
  61. package/dist/Popconfirm.d.mts +33 -0
  62. package/dist/Popconfirm.d.mts.map +1 -0
  63. package/dist/Popconfirm.mjs +119 -0
  64. package/dist/Popconfirm.mjs.map +1 -0
  65. package/dist/Rate.d.mts +27 -0
  66. package/dist/Rate.d.mts.map +1 -0
  67. package/dist/Rate.mjs +81 -0
  68. package/dist/Rate.mjs.map +1 -0
  69. package/dist/Reveals.d.mts.map +1 -1
  70. package/dist/ScrollArea.d.mts +8 -0
  71. package/dist/ScrollArea.d.mts.map +1 -0
  72. package/dist/ScrollArea.mjs +11 -0
  73. package/dist/ScrollArea.mjs.map +1 -0
  74. package/dist/Segmented.d.mts +3 -3
  75. package/dist/Segmented.d.mts.map +1 -1
  76. package/dist/Space.d.mts +2 -2
  77. package/dist/Space.d.mts.map +1 -1
  78. package/dist/Statistic.d.mts +22 -0
  79. package/dist/Statistic.d.mts.map +1 -0
  80. package/dist/Statistic.mjs +53 -0
  81. package/dist/Statistic.mjs.map +1 -0
  82. package/dist/Steps.d.mts +3 -3
  83. package/dist/Steps.d.mts.map +1 -1
  84. package/dist/Steps.mjs +1 -1
  85. package/dist/Table.d.mts +4 -4
  86. package/dist/Table.d.mts.map +1 -1
  87. package/dist/Tag.d.mts +3 -3
  88. package/dist/Tag.d.mts.map +1 -1
  89. package/dist/TimePicker.d.mts +26 -0
  90. package/dist/TimePicker.d.mts.map +1 -0
  91. package/dist/TimePicker.mjs +77 -0
  92. package/dist/TimePicker.mjs.map +1 -0
  93. package/dist/Timeline.d.mts +35 -0
  94. package/dist/Timeline.d.mts.map +1 -0
  95. package/dist/Timeline.mjs +59 -0
  96. package/dist/Timeline.mjs.map +1 -0
  97. package/dist/Tour.d.mts +37 -0
  98. package/dist/Tour.d.mts.map +1 -0
  99. package/dist/Tour.mjs +192 -0
  100. package/dist/Tour.mjs.map +1 -0
  101. package/dist/Transfer.d.mts +36 -0
  102. package/dist/Transfer.d.mts.map +1 -0
  103. package/dist/Transfer.mjs +147 -0
  104. package/dist/Transfer.mjs.map +1 -0
  105. package/dist/Tree.d.mts +62 -0
  106. package/dist/Tree.d.mts.map +1 -0
  107. package/dist/Tree.mjs +462 -0
  108. package/dist/Tree.mjs.map +1 -0
  109. package/dist/TreeSelect.d.mts +34 -0
  110. package/dist/TreeSelect.d.mts.map +1 -0
  111. package/dist/TreeSelect.mjs +135 -0
  112. package/dist/TreeSelect.mjs.map +1 -0
  113. package/dist/Typography.d.mts.map +1 -1
  114. package/dist/components/atoms/checkbox/checkbox.d.mts +5 -3
  115. package/dist/components/atoms/checkbox/checkbox.d.mts.map +1 -1
  116. package/dist/components/atoms/checkbox/checkbox.mjs +8 -4
  117. package/dist/components/atoms/checkbox/checkbox.mjs.map +1 -1
  118. package/dist/components/atoms/checkbox/group.d.mts +2 -2
  119. package/dist/components/atoms/checkbox/group.d.mts.map +1 -1
  120. package/dist/components/atoms/checkbox/index.d.mts.map +1 -1
  121. package/dist/components/atoms/color-picker.d.mts +2 -2
  122. package/dist/components/atoms/color-picker.d.mts.map +1 -1
  123. package/dist/components/atoms/date-picker.d.mts +5 -1
  124. package/dist/components/atoms/date-picker.d.mts.map +1 -1
  125. package/dist/components/atoms/date-picker.mjs +54 -10
  126. package/dist/components/atoms/date-picker.mjs.map +1 -1
  127. package/dist/components/atoms/float-button/back-top.d.mts +2 -2
  128. package/dist/components/atoms/float-button/back-top.d.mts.map +1 -1
  129. package/dist/components/atoms/float-button/back-top.mjs +1 -1
  130. package/dist/components/atoms/float-button/float-button.d.mts +2 -2
  131. package/dist/components/atoms/float-button/float-button.d.mts.map +1 -1
  132. package/dist/components/atoms/float-button/index.d.mts.map +1 -1
  133. package/dist/components/atoms/index.d.mts +13 -6
  134. package/dist/components/atoms/input/index.d.mts +3 -1
  135. package/dist/components/atoms/input/index.d.mts.map +1 -1
  136. package/dist/components/atoms/input/index.mjs +3 -1
  137. package/dist/components/atoms/input/index.mjs.map +1 -1
  138. package/dist/components/atoms/input/number.d.mts +2 -2
  139. package/dist/components/atoms/input/number.d.mts.map +1 -1
  140. package/dist/components/atoms/input/number.mjs +1 -1
  141. package/dist/components/atoms/input/otp.d.mts +26 -0
  142. package/dist/components/atoms/input/otp.d.mts.map +1 -0
  143. package/dist/components/atoms/input/otp.mjs +52 -0
  144. package/dist/components/atoms/input/otp.mjs.map +1 -0
  145. package/dist/components/atoms/input/search.d.mts +2 -2
  146. package/dist/components/atoms/input/search.d.mts.map +1 -1
  147. package/dist/components/atoms/input/search.mjs +2 -2
  148. package/dist/components/atoms/mentions-token.mjs +31 -0
  149. package/dist/components/atoms/mentions-token.mjs.map +1 -0
  150. package/dist/components/atoms/option-group.d.mts +4 -5
  151. package/dist/components/atoms/option-group.d.mts.map +1 -1
  152. package/dist/components/atoms/popover.d.mts +2 -2
  153. package/dist/components/atoms/popover.d.mts.map +1 -1
  154. package/dist/components/atoms/progress.d.mts +2 -2
  155. package/dist/components/atoms/progress.d.mts.map +1 -1
  156. package/dist/components/atoms/radio/group.d.mts +2 -2
  157. package/dist/components/atoms/radio/group.d.mts.map +1 -1
  158. package/dist/components/atoms/radio/group.mjs +1 -1
  159. package/dist/components/atoms/radio/index.d.mts.map +1 -1
  160. package/dist/components/atoms/radio/radio.d.mts +2 -2
  161. package/dist/components/atoms/radio/radio.d.mts.map +1 -1
  162. package/dist/components/atoms/radio/radio.mjs +1 -1
  163. package/dist/components/atoms/rich-text-editor/rich-text-editor.d.mts +2 -2
  164. package/dist/components/atoms/rich-text-editor/rich-text-editor.d.mts.map +1 -1
  165. package/dist/components/atoms/rich-text-editor/toolbar-presets.mjs +2 -2
  166. package/dist/components/atoms/rich-text-editor/types.d.mts +2 -3
  167. package/dist/components/atoms/rich-text-editor/types.d.mts.map +1 -1
  168. package/dist/components/atoms/select-multiple.d.mts +2 -3
  169. package/dist/components/atoms/select-multiple.d.mts.map +1 -1
  170. package/dist/components/atoms/select-multiple.mjs +4 -3
  171. package/dist/components/atoms/select-multiple.mjs.map +1 -1
  172. package/dist/components/atoms/select-searchable-options.d.mts +3 -4
  173. package/dist/components/atoms/select-searchable-options.d.mts.map +1 -1
  174. package/dist/components/atoms/select-searchable.d.mts +2 -3
  175. package/dist/components/atoms/select-searchable.d.mts.map +1 -1
  176. package/dist/components/atoms/select-searchable.mjs +4 -3
  177. package/dist/components/atoms/select-searchable.mjs.map +1 -1
  178. package/dist/components/atoms/select.d.mts +3 -3
  179. package/dist/components/atoms/select.d.mts.map +1 -1
  180. package/dist/components/atoms/skeleton/button.d.mts.map +1 -1
  181. package/dist/components/atoms/skeleton/index.d.mts.map +1 -1
  182. package/dist/components/atoms/skeleton/node.d.mts.map +1 -1
  183. package/dist/components/atoms/skeleton/skeleton.d.mts +2 -2
  184. package/dist/components/atoms/skeleton/skeleton.d.mts.map +1 -1
  185. package/dist/components/atoms/slider/slider.d.mts +3 -3
  186. package/dist/components/atoms/slider/slider.d.mts.map +1 -1
  187. package/dist/components/atoms/spin.d.mts +2 -2
  188. package/dist/components/atoms/spin.d.mts.map +1 -1
  189. package/dist/components/atoms/spin.mjs +1 -1
  190. package/dist/components/atoms/switch.d.mts +2 -2
  191. package/dist/components/atoms/switch.d.mts.map +1 -1
  192. package/dist/components/atoms/tooltip.d.mts +2 -2
  193. package/dist/components/atoms/tooltip.d.mts.map +1 -1
  194. package/dist/components/atoms/typography/link.d.mts +2 -2
  195. package/dist/components/atoms/typography/link.d.mts.map +1 -1
  196. package/dist/components/atoms/typography/paragraph.d.mts +2 -2
  197. package/dist/components/atoms/typography/paragraph.d.mts.map +1 -1
  198. package/dist/components/atoms/typography/text.d.mts +2 -2
  199. package/dist/components/atoms/typography/text.d.mts.map +1 -1
  200. package/dist/components/atoms/typography/title.d.mts +2 -2
  201. package/dist/components/atoms/typography/title.d.mts.map +1 -1
  202. package/dist/components/atoms/typography/typography.d.mts +2 -2
  203. package/dist/components/atoms/typography/typography.d.mts.map +1 -1
  204. package/dist/components/molecules/collapse.d.mts +2 -2
  205. package/dist/components/molecules/collapse.d.mts.map +1 -1
  206. package/dist/components/molecules/dropdown.d.mts +2 -2
  207. package/dist/components/molecules/dropdown.d.mts.map +1 -1
  208. package/dist/components/molecules/index.d.mts +22 -14
  209. package/dist/components/molecules/marquees/index.d.mts.map +1 -1
  210. package/dist/components/molecules/marquees/item.d.mts +4 -4
  211. package/dist/components/molecules/marquees/item.d.mts.map +1 -1
  212. package/dist/components/molecules/marquees/item.mjs +5 -5
  213. package/dist/components/molecules/marquees/item.mjs.map +1 -1
  214. package/dist/components/molecules/marquees/marquees.d.mts +2 -2
  215. package/dist/components/molecules/marquees/marquees.d.mts.map +1 -1
  216. package/dist/components/molecules/marquees/marquees.mjs +4 -5
  217. package/dist/components/molecules/marquees/marquees.mjs.map +1 -1
  218. package/dist/components/molecules/menu/item/item.mjs +1 -1
  219. package/dist/components/molecules/menu/menu.d.mts +9 -9
  220. package/dist/components/molecules/menu/menu.d.mts.map +1 -1
  221. package/dist/components/molecules/reveals/item.d.mts +2 -2
  222. package/dist/components/molecules/reveals/item.d.mts.map +1 -1
  223. package/dist/components/molecules/reveals/reveals.d.mts +5 -5
  224. package/dist/components/molecules/reveals/reveals.d.mts.map +1 -1
  225. package/dist/components/molecules/splitter/index.d.mts.map +1 -1
  226. package/dist/components/molecules/splitter/panel.d.mts +3 -3
  227. package/dist/components/molecules/splitter/panel.d.mts.map +1 -1
  228. package/dist/components/molecules/splitter/splitter.d.mts +3 -3
  229. package/dist/components/molecules/splitter/splitter.d.mts.map +1 -1
  230. package/dist/components/molecules/tabs.d.mts +4 -4
  231. package/dist/components/molecules/tabs.d.mts.map +1 -1
  232. package/dist/components/molecules/upload.d.mts +3 -3
  233. package/dist/components/molecules/upload.d.mts.map +1 -1
  234. package/dist/components/molecules/upload.mjs +1 -1
  235. package/dist/components/organisms/drawer.d.mts +2 -2
  236. package/dist/components/organisms/drawer.d.mts.map +1 -1
  237. package/dist/components/organisms/drawer.mjs +2 -2
  238. package/dist/components/organisms/form/context.d.mts +4 -0
  239. package/dist/components/organisms/form/context.d.mts.map +1 -0
  240. package/dist/components/organisms/form/context.mjs +9 -0
  241. package/dist/components/organisms/form/context.mjs.map +1 -0
  242. package/dist/components/organisms/form/control.d.mts +11 -0
  243. package/dist/components/organisms/form/control.d.mts.map +1 -0
  244. package/dist/components/organisms/form/control.mjs +19 -0
  245. package/dist/components/organisms/form/control.mjs.map +1 -0
  246. package/dist/components/organisms/form/field.d.mts +25 -0
  247. package/dist/components/organisms/form/field.d.mts.map +1 -0
  248. package/dist/components/organisms/form/field.mjs +54 -0
  249. package/dist/components/organisms/form/field.mjs.map +1 -0
  250. package/dist/components/organisms/form/form.d.mts +14 -0
  251. package/dist/components/organisms/form/form.d.mts.map +1 -0
  252. package/dist/components/organisms/form/form.mjs +23 -0
  253. package/dist/components/organisms/form/form.mjs.map +1 -0
  254. package/dist/components/organisms/index.d.mts +14 -6
  255. package/dist/components/organisms/list/index.d.mts.map +1 -1
  256. package/dist/components/organisms/list/list.d.mts +2 -2
  257. package/dist/components/organisms/list/list.d.mts.map +1 -1
  258. package/dist/components/organisms/modal.d.mts +6 -3
  259. package/dist/components/organisms/modal.d.mts.map +1 -1
  260. package/dist/components/organisms/modal.mjs +25 -18
  261. package/dist/components/organisms/modal.mjs.map +1 -1
  262. package/dist/components/organisms/swiper/index.d.mts.map +1 -1
  263. package/dist/components/organisms/swiper/swiper.d.mts +2 -2
  264. package/dist/components/organisms/swiper/swiper.d.mts.map +1 -1
  265. package/dist/components/organisms/toast.d.mts +2 -2
  266. package/dist/components/organisms/toast.d.mts.map +1 -1
  267. package/dist/components/organisms/toast.mjs +1 -1
  268. package/dist/components/templates/container.d.mts +2 -2
  269. package/dist/components/templates/container.d.mts.map +1 -1
  270. package/dist/components/templates/empty.d.mts +2 -2
  271. package/dist/components/templates/empty.d.mts.map +1 -1
  272. package/dist/components/templates/empty.mjs +1 -1
  273. package/dist/components/templates/grid/col.d.mts +2 -2
  274. package/dist/components/templates/grid/col.d.mts.map +1 -1
  275. package/dist/components/templates/grid/row.d.mts +2 -2
  276. package/dist/components/templates/grid/row.d.mts.map +1 -1
  277. package/dist/components/templates/layout/content.d.mts +2 -2
  278. package/dist/components/templates/layout/content.d.mts.map +1 -1
  279. package/dist/components/templates/layout/footer.d.mts +2 -2
  280. package/dist/components/templates/layout/footer.d.mts.map +1 -1
  281. package/dist/components/templates/layout/header.d.mts +2 -2
  282. package/dist/components/templates/layout/header.d.mts.map +1 -1
  283. package/dist/components/templates/layout/layout.d.mts +2 -2
  284. package/dist/components/templates/layout/layout.d.mts.map +1 -1
  285. package/dist/components/templates/layout/sider.d.mts +2 -2
  286. package/dist/components/templates/layout/sider.d.mts.map +1 -1
  287. package/dist/components/templates/layout/sider.mjs +1 -1
  288. package/dist/components/templates/page-header.d.mts +2 -2
  289. package/dist/components/templates/page-header.d.mts.map +1 -1
  290. package/dist/components/templates/page-header.mjs +1 -1
  291. package/dist/components/templates/result.d.mts +2 -2
  292. package/dist/components/templates/result.d.mts.map +1 -1
  293. package/dist/components/templates/result.mjs +1 -1
  294. package/dist/core/accordion.mjs +1 -1
  295. package/dist/core/autocomplete.d.mts +2 -0
  296. package/dist/core/autocomplete.mjs +48 -0
  297. package/dist/core/autocomplete.mjs.map +1 -0
  298. package/dist/core/badge.d.mts +5 -3
  299. package/dist/core/badge.d.mts.map +1 -1
  300. package/dist/core/button.d.mts +6 -4
  301. package/dist/core/button.d.mts.map +1 -1
  302. package/dist/core/calendar.d.mts +13 -3
  303. package/dist/core/calendar.d.mts.map +1 -0
  304. package/dist/core/calendar.mjs +1 -1
  305. package/dist/core/checkbox.mjs +11 -8
  306. package/dist/core/checkbox.mjs.map +1 -1
  307. package/dist/core/combobox.d.mts +26 -4
  308. package/dist/core/combobox.d.mts.map +1 -1
  309. package/dist/core/combobox.mjs +2 -2
  310. package/dist/core/combobox.mjs.map +1 -1
  311. package/dist/core/dialog.mjs +2 -2
  312. package/dist/core/dialog.mjs.map +1 -1
  313. package/dist/core/form.d.mts +8 -0
  314. package/dist/core/form.d.mts.map +1 -0
  315. package/dist/core/form.mjs +3 -0
  316. package/dist/core/index.d.mts +13 -9
  317. package/dist/core/popover.mjs +10 -2
  318. package/dist/core/popover.mjs.map +1 -1
  319. package/dist/core/radio-group.mjs +1 -1
  320. package/dist/core/resizable.d.mts +7 -2
  321. package/dist/core/resizable.d.mts.map +1 -1
  322. package/dist/core/resizable.mjs +1 -1
  323. package/dist/core/scroll-area.d.mts +20 -0
  324. package/dist/core/scroll-area.d.mts.map +1 -0
  325. package/dist/core/scroll-area.mjs +57 -0
  326. package/dist/core/scroll-area.mjs.map +1 -0
  327. package/dist/core/select.d.mts +24 -2
  328. package/dist/core/select.d.mts.map +1 -1
  329. package/dist/core/select.mjs +1 -1
  330. package/dist/core/separator.d.mts +13 -2
  331. package/dist/core/separator.d.mts.map +1 -0
  332. package/dist/core/tabs.d.mts +16 -2
  333. package/dist/core/tabs.d.mts.map +1 -1
  334. package/dist/index.d.mts +59 -36
  335. package/dist/index.mjs +25 -6
  336. package/dist/lib/colors.d.mts +2 -3
  337. package/dist/lib/colors.d.mts.map +1 -1
  338. package/dist/providers/config/context.d.mts +2 -3
  339. package/dist/providers/config/context.d.mts.map +1 -1
  340. package/dist/providers/config/context.mjs +3 -1
  341. package/dist/providers/config/context.mjs.map +1 -1
  342. package/dist/providers/config/registry.d.mts +2 -3
  343. package/dist/providers/config/registry.d.mts.map +1 -1
  344. package/dist/providers/config/types.d.mts +8 -7
  345. package/dist/providers/config/types.d.mts.map +1 -1
  346. package/dist/style.css +689 -332
  347. package/dist/utils.d.mts +2 -3
  348. package/dist/utils.d.mts.map +1 -1
  349. package/package.json +122 -26
  350. package/dist/components/molecules/marquees/use-pause-on-hover.mjs +0 -26
  351. package/dist/components/molecules/marquees/use-pause-on-hover.mjs.map +0 -1
@@ -2,7 +2,7 @@ import { ComponentSize } from "../../../providers/config/types.mjs";
2
2
  import * as React$1 from "react";
3
3
  import { NumberField, NumberFieldRoot } from "@base-ui/react/number-field";
4
4
  //#region src/components/atoms/input/number.d.ts
5
- interface Props extends Omit<React$1.ComponentProps<typeof NumberField.Root>, 'children' | 'onValueChange'> {
5
+ export interface Props extends Omit<React$1.ComponentProps<typeof NumberField.Root>, 'children' | 'onValueChange'> {
6
6
  /** Visible input label. Alternatively, pair `id` with an external label. */
7
7
  label?: string;
8
8
  /** Called with the numeric value (or null when cleared). */
@@ -19,5 +19,5 @@ interface Props extends Omit<React$1.ComponentProps<typeof NumberField.Root>, 'c
19
19
  }
20
20
  declare const Number: ({ ref, id, label, onChange, placeholder, size, className, classNames, "aria-label": ariaLabel, "aria-labelledby": ariaLabelledBy, "aria-describedby": ariaDescribedBy, ...props }: Props) => React$1.JSX.Element;
21
21
  //#endregion
22
- export { Props, Number as default };
22
+ export { Number as default };
23
23
  //# sourceMappingURL=number.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"number.d.mts","names":[],"sources":["../../../../src/components/atoms/input/number.tsx"],"mappings":";;;;UAmBiB,cAAc,KAC7B,QAAM,sBAAsB,YAAY;;EAIxC;;EAEA,YACE,sBACA,cAAc,gBAAgB;EAEhC;EACA,OAAO;EACP;IACE;IACA;IACA;IACA;IACA;;;cAIE,WAAU,KAAA,IAAA,OAAA,UAAA,aAAA,MAAA,WAAA,0BAAA,8BAAA,oCAAA,oBAAA,SAab,UAAK,QAAA,IAAA"}
1
+ {"version":3,"file":"number.d.mts","names":["React"],"sources":["../../../../src/components/atoms/input/number.tsx"],"mappings":";;;;iBAmBiB,cAAc,KAC7BA,QAAM,sBAAsB,YAAY;;EAIxC;;EAEA,YACE,sBACA,cAAc,gBAAgB;EAEhC;EACA,OAAO;EACP;IACE;IACA;IACA;IACA;IACA;;;cAIE,WAAU,KAAA,IAAA,OAAA,UAAA,aAAA,MAAA,WAAA,0BAAA,8BAAA,oCAAA,oBAAA,SAab,UAAKA,QAAA,IAAA"}
@@ -3,9 +3,9 @@ import { cn } from "../../../utils.mjs";
3
3
  import { useConfig } from "../../../providers/config/context.mjs";
4
4
  import Button from "../../../Button.mjs";
5
5
  import Input from "./input.mjs";
6
- import { Minus, Plus } from "lucide-react";
7
6
  import * as React$1 from "react";
8
7
  import { jsx, jsxs } from "react/jsx-runtime";
8
+ import { Minus, Plus } from "lucide-react";
9
9
  import { NumberField } from "@base-ui/react/number-field";
10
10
  //#region src/components/atoms/input/number.tsx
11
11
  const sizes = {
@@ -0,0 +1,26 @@
1
+ import { ComponentSize } from "../../../providers/config/types.mjs";
2
+ import * as React$1 from "react";
3
+ import { OTPField, OTPFieldRoot } from "@base-ui/react/otp-field";
4
+ //#region src/components/atoms/input/otp.d.ts
5
+ export interface Props extends Omit<React$1.ComponentProps<typeof OTPField.Root>, 'children' | 'onValueChange' | 'onValueComplete' | 'autoSubmit' | 'render' | 'className' | 'length'> {
6
+ /** Positive safe integer slot count. Invalid or omitted values use six. */
7
+ length?: number;
8
+ className?: string;
9
+ label?: string;
10
+ onChange?: (value: string, details: OTPFieldRoot.ChangeEventDetails) => void;
11
+ onComplete?: (value: string, details: OTPFieldRoot.CompleteEventDetails) => void;
12
+ size?: ComponentSize;
13
+ inputRef?: React$1.Ref<HTMLInputElement>;
14
+ placeholder?: string;
15
+ /** Localize the accessible name of each slot after the first. */
16
+ getSlotLabel?: (index: number, length: number) => string;
17
+ classNames?: {
18
+ label?: string;
19
+ group?: string;
20
+ input?: string;
21
+ };
22
+ }
23
+ declare const OTP: ({ label, id, length, size, onChange, onComplete, inputRef, placeholder, getSlotLabel, className, classNames, "aria-label": ariaLabel, "aria-labelledby": labelledBy, "aria-describedby": describedBy, ...props }: Props) => React$1.JSX.Element;
24
+ //#endregion
25
+ export { OTP as default };
26
+ //# sourceMappingURL=otp.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"otp.d.mts","names":["React"],"sources":["../../../../src/components/atoms/input/otp.tsx"],"mappings":";;;;iBAmBiB,cAAc,KAC7BA,QAAM,sBAAsB,SAAS;;EAUrC;EACA;EACA;EACA,YAAY,eAAe,SAAS,aAAa;EACjD,cACE,eACA,SAAS,aAAa;EAExB,OAAO;EACP,WAAWA,QAAM,IAAI;EACrB;;EAEA,gBAAgB,eAAe;EAC/B;IAAe;IAAgB;IAAgB;;;cAG3C,QAAO,OAAA,IAAA,QAAA,MAAA,UAAA,YAAA,UAAA,aAAA,cAAA,WAAA,0BAAA,8BAAA,gCAAA,gBAAA,SAgBV,UAAKA,QAAA,IAAA"}
@@ -0,0 +1,52 @@
1
+ "use client";
2
+ import { cn } from "../../../utils.mjs";
3
+ import { useConfig } from "../../../providers/config/context.mjs";
4
+ import Input from "./input.mjs";
5
+ import * as React$1 from "react";
6
+ import { jsx, jsxs } from "react/jsx-runtime";
7
+ import { OTPField } from "@base-ui/react/otp-field";
8
+ //#region src/components/atoms/input/otp.tsx
9
+ const sizes = {
10
+ small: "h-8 w-8",
11
+ middle: "h-9 w-9",
12
+ large: "h-10 w-10"
13
+ };
14
+ const OTP = ({ label, id, length = 6, size, onChange, onComplete, inputRef, placeholder, getSlotLabel = (index, count) => `Character ${index + 1} of ${count}`, className, classNames, "aria-label": ariaLabel, "aria-labelledby": labelledBy, "aria-describedby": describedBy, ...props }) => {
15
+ const generatedId = React$1.useId();
16
+ const inputId = id ?? generatedId;
17
+ const { componentSize } = useConfig();
18
+ const isValidLength = Number.isSafeInteger(length) && length > 0;
19
+ const count = isValidLength ? length : 6;
20
+ React$1.useEffect(() => {
21
+ if (process.env.NODE_ENV !== "production" && !isValidLength) console.warn("Input.OTP length must be a positive safe integer; using six.");
22
+ }, [isValidLength, length]);
23
+ return /* @__PURE__ */ jsxs("div", {
24
+ "data-slot": "input-otp",
25
+ children: [label && /* @__PURE__ */ jsx("label", {
26
+ htmlFor: inputId,
27
+ className: cn("mb-1.5 block text-sm font-medium", classNames?.label),
28
+ children: label
29
+ }), /* @__PURE__ */ jsx(OTPField.Root, {
30
+ ...props,
31
+ id: inputId,
32
+ length: count,
33
+ autoSubmit: false,
34
+ onValueChange: onChange,
35
+ onValueComplete: onComplete,
36
+ "aria-describedby": describedBy,
37
+ className: cn("flex flex-wrap gap-2", classNames?.group, className),
38
+ children: Array.from({ length: count }, (_, index) => /* @__PURE__ */ jsx(OTPField.Input, {
39
+ ref: index === 0 ? inputRef : void 0,
40
+ render: /* @__PURE__ */ jsx(Input, {}),
41
+ placeholder,
42
+ "aria-label": index === 0 ? ariaLabel : getSlotLabel(index, count),
43
+ "aria-labelledby": index === 0 ? labelledBy : void 0,
44
+ className: cn("shrink-0 px-0 text-center tabular-nums", sizes[size ?? componentSize ?? "middle"], classNames?.input)
45
+ }, index))
46
+ })]
47
+ });
48
+ };
49
+ //#endregion
50
+ export { OTP as default };
51
+
52
+ //# sourceMappingURL=otp.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"otp.mjs","names":["React"],"sources":["../../../../src/components/atoms/input/otp.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\n\nimport { OTPField, type OTPFieldRoot } from '@base-ui/react/otp-field';\n\nimport { type ComponentSize, useConfig } from '@repo/ui/providers';\nimport { cn } from '@repo/ui/utils';\n\nimport Input from './input';\n\ndeclare const process: { env: { NODE_ENV?: string } };\n\nconst sizes: Record<ComponentSize, string> = {\n small: 'h-8 w-8',\n middle: 'h-9 w-9',\n large: 'h-10 w-10',\n};\n\nexport interface Props extends Omit<\n React.ComponentProps<typeof OTPField.Root>,\n | 'children'\n | 'onValueChange'\n | 'onValueComplete'\n | 'autoSubmit'\n | 'render'\n | 'className'\n | 'length'\n> {\n /** Positive safe integer slot count. Invalid or omitted values use six. */\n length?: number;\n className?: string;\n label?: string;\n onChange?: (value: string, details: OTPFieldRoot.ChangeEventDetails) => void;\n onComplete?: (\n value: string,\n details: OTPFieldRoot.CompleteEventDetails,\n ) => void;\n size?: ComponentSize;\n inputRef?: React.Ref<HTMLInputElement>;\n placeholder?: string;\n /** Localize the accessible name of each slot after the first. */\n getSlotLabel?: (index: number, length: number) => string;\n classNames?: { label?: string; group?: string; input?: string };\n}\n\nconst OTP = ({\n label,\n id,\n length = 6,\n size,\n onChange,\n onComplete,\n inputRef,\n placeholder,\n getSlotLabel = (index, count) => `Character ${index + 1} of ${count}`,\n className,\n classNames,\n 'aria-label': ariaLabel,\n 'aria-labelledby': labelledBy,\n 'aria-describedby': describedBy,\n ...props\n}: Props) => {\n const generatedId = React.useId();\n const inputId = id ?? generatedId;\n const { componentSize } = useConfig();\n const isValidLength = Number.isSafeInteger(length) && length > 0;\n const count = isValidLength ? length : 6;\n\n React.useEffect(() => {\n if (process.env.NODE_ENV !== 'production' && !isValidLength) {\n console.warn(\n 'Input.OTP length must be a positive safe integer; using six.',\n );\n }\n }, [isValidLength, length]);\n\n return (\n <div data-slot=\"input-otp\">\n {label && (\n <label\n htmlFor={inputId}\n className={cn(\n 'mb-1.5 block text-sm font-medium',\n classNames?.label,\n //\n )}\n >\n {label}\n </label>\n )}\n <OTPField.Root\n {...props}\n id={inputId}\n length={count}\n autoSubmit={false}\n onValueChange={onChange}\n onValueComplete={onComplete}\n aria-describedby={describedBy}\n className={cn(\n 'flex flex-wrap gap-2',\n classNames?.group,\n className,\n //\n )}\n >\n {Array.from({ length: count }, (_, index) => (\n <OTPField.Input\n key={index}\n ref={index === 0 ? inputRef : undefined}\n render={<Input />}\n placeholder={placeholder}\n aria-label={index === 0 ? ariaLabel : getSlotLabel(index, count)}\n aria-labelledby={index === 0 ? labelledBy : undefined}\n className={cn(\n 'shrink-0 px-0 text-center tabular-nums',\n sizes[size ?? componentSize ?? 'middle'],\n classNames?.input,\n //\n )}\n />\n ))}\n </OTPField.Root>\n </div>\n );\n};\nexport default OTP;\n"],"mappings":";;;;;;;;AAaA,MAAM,QAAuC;CAC3C,OAAO;CACP,QAAQ;CACR,OAAO;AACT;AA6BA,MAAM,OAAO,EACX,OACA,IACA,SAAS,GACT,MACA,UACA,YACA,UACA,aACA,gBAAgB,OAAO,UAAU,aAAa,QAAQ,EAAE,MAAM,SAC9D,WACA,YACA,cAAc,WACd,mBAAmB,YACnB,oBAAoB,aACpB,GAAG,YACQ;CACX,MAAM,cAAcA,QAAM,MAAM;CAChC,MAAM,UAAU,MAAM;CACtB,MAAM,EAAE,kBAAkB,UAAU;CACpC,MAAM,gBAAgB,OAAO,cAAc,MAAM,KAAK,SAAS;CAC/D,MAAM,QAAQ,gBAAgB,SAAS;CAEvC,QAAM,gBAAgB;EACpB,IAAI,QAAQ,IAAI,aAAa,gBAAgB,CAAC,eAC5C,QAAQ,KACN,8DACF;CAEJ,GAAG,CAAC,eAAe,MAAM,CAAC;CAE1B,OACE,qBAAC,OAAD;EAAK,aAAU;EAAf,UAAA,CACG,SACC,oBAAC,SAAD;GACE,SAAS;GACT,WAAW,GACT,oCACA,YAAY,KAEd;GAEC,UAAA;EACI,CAAA,GAET,oBAAC,SAAS,MAAV;GACE,GAAI;GACJ,IAAI;GACJ,QAAQ;GACR,YAAY;GACZ,eAAe;GACf,iBAAiB;GACjB,oBAAkB;GAClB,WAAW,GACT,wBACA,YAAY,OACZ,SAEF;GAEC,UAAA,MAAM,KAAK,EAAE,QAAQ,MAAM,IAAI,GAAG,UACjC,oBAAC,SAAS,OAAV;IAEE,KAAK,UAAU,IAAI,WAAW,KAAA;IAC9B,QAAQ,oBAAC,OAAD,CAAQ,CAAA;IACH;IACb,cAAY,UAAU,IAAI,YAAY,aAAa,OAAO,KAAK;IAC/D,mBAAiB,UAAU,IAAI,aAAa,KAAA;IAC5C,WAAW,GACT,0CACA,MAAM,QAAQ,iBAAiB,WAC/B,YAAY,KAEd;GACD,GAZM,KAYN,CACF;EACY,CAAA,CACZ;;AAET"}
@@ -1,5 +1,5 @@
1
1
  //#region src/components/atoms/input/search.d.ts
2
- interface Props extends React.ComponentPropsWithRef<'input'> {
2
+ export interface Props extends React.ComponentPropsWithRef<'input'> {
3
3
  allowClear?: boolean;
4
4
  onSearch?: (value: string) => void;
5
5
  }
@@ -8,5 +8,5 @@ declare const Search: {
8
8
  displayName: string;
9
9
  };
10
10
  //#endregion
11
- export { Props, Search as default };
11
+ export { Search as default };
12
12
  //# sourceMappingURL=search.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"search.d.mts","names":[],"sources":["../../../../src/components/atoms/input/search.tsx"],"mappings":";UAeiB,cAAc,MAAM;EACnC;EACA,YAAY;;cAGR;KAWH,KAAA,WAAA,cAAA,OAAA,UAAA,YAAA,UAAA,WAAA,YAAA,UAAA,cAAA,SAAA,wBAAK,IAAA"}
1
+ {"version":3,"file":"search.d.mts","names":[],"sources":["../../../../src/components/atoms/input/search.tsx"],"mappings":";iBAeiB,cAAc,MAAM;EACnC;EACA,YAAY;;cAGR;KAWH,KAAA,WAAA,cAAA,OAAA,UAAA,YAAA,UAAA,WAAA,YAAA,UAAA,cAAA,SAAA,wBAAK,IAAA"}
@@ -1,12 +1,12 @@
1
1
  "use client";
2
2
  import { cn } from "../../../utils.mjs";
3
3
  import { DEFAULT_LOCALE, useConfig } from "../../../providers/config/context.mjs";
4
- import { input_exports } from "../../../core/input.mjs";
5
4
  import Button from "../../../Button.mjs";
6
- import { CircleX, Search } from "lucide-react";
5
+ import { input_exports } from "../../../core/input.mjs";
7
6
  import { useRef, useState } from "react";
8
7
  import { useMergedRef } from "@jbpark/use-hooks";
9
8
  import { jsx, jsxs } from "react/jsx-runtime";
9
+ import { CircleX, Search } from "lucide-react";
10
10
  //#region src/components/atoms/input/search.tsx
11
11
  const { Input: Core } = input_exports;
12
12
  const Search$1 = ({ ref, className, defaultValue, value, disabled, allowClear = true, onChange, onKeyDown: _onKeyDown, onSearch: _onSearch, ...props }) => {
@@ -0,0 +1,31 @@
1
+ //#region src/components/atoms/mentions-token.ts
2
+ function findToken(text, start, end, prefixes) {
3
+ if (start < 0 || end < start || end > text.length) return null;
4
+ let boundary = start;
5
+ while (boundary > 0 && !/\s/u.test(text[boundary - 1])) boundary -= 1;
6
+ const beforeCaret = text.slice(boundary, start);
7
+ const prefix = prefixes.filter((candidate) => candidate.length > 0 && !/\s/u.test(candidate)).sort((a, b) => b.length - a.length).find((candidate) => beforeCaret.startsWith(candidate));
8
+ if (!prefix) return null;
9
+ let tokenEnd = start;
10
+ while (tokenEnd < text.length && !/\s/u.test(text[tokenEnd])) tokenEnd += 1;
11
+ if (end > tokenEnd) return null;
12
+ return {
13
+ start: boundary,
14
+ end: tokenEnd,
15
+ prefix,
16
+ query: beforeCaret.slice(prefix.length)
17
+ };
18
+ }
19
+ function insertToken(text, token, value) {
20
+ const mention = token.prefix + value;
21
+ const tail = text.slice(token.end);
22
+ const separator = tail.length === 0 || !/^\s/u.test(tail) ? " " : "";
23
+ return {
24
+ value: text.slice(0, token.start) + mention + separator + tail,
25
+ caret: token.start + mention.length + separator.length
26
+ };
27
+ }
28
+ //#endregion
29
+ export { findToken, insertToken };
30
+
31
+ //# sourceMappingURL=mentions-token.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mentions-token.mjs","names":[],"sources":["../../../src/components/atoms/mentions-token.ts"],"sourcesContent":["export interface Token {\n start: number;\n end: number;\n prefix: string;\n query: string;\n}\n\nexport function findToken(\n text: string,\n start: number,\n end: number,\n prefixes: readonly string[],\n): Token | null {\n if (start < 0 || end < start || end > text.length) {\n return null;\n }\n\n let boundary = start;\n\n while (boundary > 0 && !/\\s/u.test(text[boundary - 1]!)) {\n boundary -= 1;\n }\n\n const beforeCaret = text.slice(boundary, start);\n const prefix = prefixes\n .filter(candidate => candidate.length > 0 && !/\\s/u.test(candidate))\n .sort((a, b) => b.length - a.length)\n .find(candidate => beforeCaret.startsWith(candidate));\n\n if (!prefix) {\n return null;\n }\n\n let tokenEnd = start;\n\n while (tokenEnd < text.length && !/\\s/u.test(text[tokenEnd]!)) {\n tokenEnd += 1;\n }\n\n if (end > tokenEnd) {\n return null;\n }\n\n return {\n start: boundary,\n end: tokenEnd,\n prefix,\n query: beforeCaret.slice(prefix.length),\n };\n}\n\nexport function insertToken(text: string, token: Token, value: string) {\n const mention = token.prefix + value;\n const tail = text.slice(token.end);\n const separator = tail.length === 0 || !/^\\s/u.test(tail) ? ' ' : '';\n\n return {\n value: text.slice(0, token.start) + mention + separator + tail,\n caret: token.start + mention.length + separator.length,\n };\n}\n"],"mappings":";AAOA,SAAgB,UACd,MACA,OACA,KACA,UACc;CACd,IAAI,QAAQ,KAAK,MAAM,SAAS,MAAM,KAAK,QACzC,OAAO;CAGT,IAAI,WAAW;CAEf,OAAO,WAAW,KAAK,CAAC,MAAM,KAAK,KAAK,WAAW,EAAG,GACpD,YAAY;CAGd,MAAM,cAAc,KAAK,MAAM,UAAU,KAAK;CAC9C,MAAM,SAAS,SACZ,QAAO,cAAa,UAAU,SAAS,KAAK,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CACnE,MAAM,GAAG,MAAM,EAAE,SAAS,EAAE,MAAM,CAAC,CACnC,MAAK,cAAa,YAAY,WAAW,SAAS,CAAC;CAEtD,IAAI,CAAC,QACH,OAAO;CAGT,IAAI,WAAW;CAEf,OAAO,WAAW,KAAK,UAAU,CAAC,MAAM,KAAK,KAAK,SAAU,GAC1D,YAAY;CAGd,IAAI,MAAM,UACR,OAAO;CAGT,OAAO;EACL,OAAO;EACP,KAAK;EACL;EACA,OAAO,YAAY,MAAM,OAAO,MAAM;CACxC;AACF;AAEA,SAAgB,YAAY,MAAc,OAAc,OAAe;CACrE,MAAM,UAAU,MAAM,SAAS;CAC/B,MAAM,OAAO,KAAK,MAAM,MAAM,GAAG;CACjC,MAAM,YAAY,KAAK,WAAW,KAAK,CAAC,OAAO,KAAK,IAAI,IAAI,MAAM;CAElE,OAAO;EACL,OAAO,KAAK,MAAM,GAAG,MAAM,KAAK,IAAI,UAAU,YAAY;EAC1D,OAAO,MAAM,QAAQ,QAAQ,SAAS,UAAU;CAClD;AACF"}
@@ -1,15 +1,14 @@
1
1
  //#region src/components/atoms/option-group.d.ts
2
- type OptionValue = string | number | boolean;
3
- interface Option {
2
+ export type OptionValue = string | number | boolean;
3
+ export interface Option {
4
4
  label: string;
5
5
  value: OptionValue;
6
6
  disabled?: boolean;
7
7
  }
8
- type Options = string[] | number[] | boolean[] | Option[];
9
- interface OptionGroupClassNames {
8
+ export type Options = string[] | number[] | boolean[] | Option[];
9
+ export interface OptionGroupClassNames {
10
10
  wrapper?: string;
11
11
  item?: string;
12
12
  }
13
13
  //#endregion
14
- export { Option, OptionGroupClassNames, OptionValue, Options };
15
14
  //# sourceMappingURL=option-group.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"option-group.d.mts","names":[],"sources":["../../../src/components/atoms/option-group.ts"],"mappings":";KAAY;UAEK;EACf;EACA,OAAO;EACP;;KAGU,4CAA4C;UAEvC;EACf;EACA"}
1
+ {"version":3,"file":"option-group.d.mts","names":[],"sources":["../../../src/components/atoms/option-group.ts"],"mappings":";YAAY;iBAEK;EACf;EACA,OAAO;EACP;;YAGU,4CAA4C;iBAEvC;EACf;EACA"}
@@ -1,6 +1,6 @@
1
1
  //#region src/components/atoms/popover.d.ts
2
2
  type Placement = 'top' | 'left' | 'right' | 'bottom' | 'topLeft' | 'topRight' | 'bottomLeft' | 'bottomRight' | 'leftTop' | 'leftBottom' | 'rightTop' | 'rightBottom';
3
- interface Props extends Omit<React.ComponentPropsWithoutRef<'div'>, 'title' | 'content'> {
3
+ export interface Props extends Omit<React.ComponentPropsWithoutRef<'div'>, 'title' | 'content'> {
4
4
  title?: React.ReactNode;
5
5
  /** Set to false when a custom trigger component renders a non-button element. */
6
6
  nativeButton?: boolean;
@@ -12,5 +12,5 @@ interface Props extends Omit<React.ComponentPropsWithoutRef<'div'>, 'title' | 'c
12
12
  }
13
13
  declare const Popover: ({ title, nativeButton, placement, className, content, children, open: _open, defaultOpen, onOpenChange, ...props }: Props) => import("react").JSX.Element;
14
14
  //#endregion
15
- export { Props, Popover as default };
15
+ export { Popover as default };
16
16
  //# sourceMappingURL=popover.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"popover.d.mts","names":[],"sources":["../../../src/components/atoms/popover.tsx"],"mappings":";KAmBK;UAcY,cAAc,KAC7B,MAAM;EAGN,QAAQ,MAAM;;EAEd;EACA,YAAY;EACZ,SAAS,MAAM;EACf;EACA;EACA,gBAAgB;;cAqBZ,YAAW,OAAA,cAAA,WAAA,WAAA,SAAA,UAAA,MAAA,OAAA,aAAA,iBAAA,SAWd,0BAAK,IAAA"}
1
+ {"version":3,"file":"popover.d.mts","names":[],"sources":["../../../src/components/atoms/popover.tsx"],"mappings":";KAmBK;iBAcY,cAAc,KAC7B,MAAM;EAGN,QAAQ,MAAM;;EAEd;EACA,YAAY;EACZ,SAAS,MAAM;EACf;EACA;EACA,gBAAgB;;cAqBZ,YAAW,OAAA,cAAA,WAAA,WAAA,SAAA,UAAA,MAAA,OAAA,aAAA,iBAAA,SAWd,0BAAK,IAAA"}
@@ -1,5 +1,5 @@
1
1
  //#region src/components/atoms/progress.d.ts
2
- interface Props extends React.ComponentPropsWithoutRef<'div'> {
2
+ export interface Props extends React.ComponentPropsWithoutRef<'div'> {
3
3
  value: number;
4
4
  orientation?: 'horizontal' | 'vertical';
5
5
  /** @deprecated Use `orientation`. */
@@ -11,5 +11,5 @@ interface Props extends React.ComponentPropsWithoutRef<'div'> {
11
11
  }
12
12
  declare const Progress: ({ value, className, orientation, direction, classNames, ...props }: Props) => import("react").JSX.Element;
13
13
  //#endregion
14
- export { Props, Progress as default };
14
+ export { Progress as default };
15
15
  //# sourceMappingURL=progress.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"progress.d.mts","names":[],"sources":["../../../src/components/atoms/progress.tsx"],"mappings":";UAMiB,cAAc,MAAM;EACnC;EACA;;EAEA;EACA;IACE;IACA;;;cAIE,aAAY,OAAA,WAAA,aAAA,WAAA,eAAA,SAOf,0BAAK,IAAA"}
1
+ {"version":3,"file":"progress.d.mts","names":[],"sources":["../../../src/components/atoms/progress.tsx"],"mappings":";iBAMiB,cAAc,MAAM;EACnC;EACA;;EAEA;EACA;IACE;IACA;;;cAIE,aAAY,OAAA,WAAA,aAAA,WAAA,eAAA,SAOf,0BAAK,IAAA"}
@@ -1,6 +1,6 @@
1
1
  import { OptionGroupClassNames, OptionValue, Options } from "../option-group.mjs";
2
2
  //#region src/components/atoms/radio/group.d.ts
3
- interface Props extends Omit<React.ComponentPropsWithoutRef<'ul'>, 'onChange' | 'defaultValue' | 'value'> {
3
+ export interface Props extends Omit<React.ComponentPropsWithoutRef<'ul'>, 'onChange' | 'defaultValue' | 'value'> {
4
4
  options?: Options;
5
5
  orientation?: 'vertical' | 'horizontal';
6
6
  placement?: 'left' | 'right';
@@ -17,5 +17,5 @@ interface Props extends Omit<React.ComponentPropsWithoutRef<'ul'>, 'onChange' |
17
17
  }
18
18
  declare const RadioGroup: ({ orientation, placement, className, classNames, options: _options, name, optionType, buttonStyle, size, disabled, defaultValue, value: _value, onChange: _onChange, ...props }: Props) => import("react").JSX.Element;
19
19
  //#endregion
20
- export { type OptionValue, Props, RadioGroup as default };
20
+ export { type OptionValue, RadioGroup as default };
21
21
  //# sourceMappingURL=group.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"group.d.mts","names":[],"sources":["../../../../src/components/atoms/radio/group.tsx"],"mappings":";;UA0BiB,cAAc,KAC7B,MAAM;EAGN,UAAU;EACV;EACA;EACA,aAAa;EACb,eAAe;EACf,QAAQ;;EAER;EACA;EACA;EACA;EACA;EACA,YAAY,OAAO;;cAGf,eAAc,aAAA,WAAA,WAAA,YAAA,SAAA,UAAA,MAAA,YAAA,aAAA,MAAA,UAAA,cAAA,OAAA,QAAA,UAAA,cAAA,SAejB,0BAAK,IAAA"}
1
+ {"version":3,"file":"group.d.mts","names":[],"sources":["../../../../src/components/atoms/radio/group.tsx"],"mappings":";;iBA0BiB,cAAc,KAC7B,MAAM;EAGN,UAAU;EACV;EACA;EACA,aAAa;EACb,eAAe;EACf,QAAQ;;EAER;EACA;EACA;EACA;EACA;EACA,YAAY,OAAO;;cAGf,eAAc,aAAA,WAAA,WAAA,YAAA,SAAA,UAAA,MAAA,YAAA,aAAA,MAAA,UAAA,cAAA,OAAA,QAAA,UAAA,cAAA,SAejB,0BAAK,IAAA"}
@@ -1,7 +1,7 @@
1
1
  "use client";
2
2
  import { cn } from "../../../utils.mjs";
3
- import { radio_group_exports } from "../../../core/radio-group.mjs";
4
3
  import Button from "../../../Button.mjs";
4
+ import { radio_group_exports } from "../../../core/radio-group.mjs";
5
5
  import { normalizeOptions, warnOnDuplicateOptionValues } from "../option-group.mjs";
6
6
  import { RadioGroupContext } from "./context.mjs";
7
7
  import Radio$1 from "./radio.mjs";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.mts","names":[],"sources":["../../../../src/components/atoms/radio/index.ts"],"mappings":";;;KAGK,wBAAwB;EAAc,cAAc;;cAEnD,OAAqB"}
1
+ {"version":3,"file":"index.d.mts","names":["RadioImpl","Group"],"sources":["../../../../src/components/atoms/radio/index.ts"],"mappings":";;;KAGK,wBAAwBA;EAAc,cAAcC;;cAEnD,OAAqB"}
@@ -1,6 +1,6 @@
1
1
  import { OptionValue } from "../option-group.mjs";
2
2
  //#region src/components/atoms/radio/radio.d.ts
3
- interface Props extends Omit<React.ComponentPropsWithoutRef<'div'>, 'onChange'> {
3
+ export interface Props extends Omit<React.ComponentPropsWithoutRef<'div'>, 'onChange'> {
4
4
  placement?: 'left' | 'right';
5
5
  defaultChecked?: boolean;
6
6
  checked?: boolean;
@@ -22,5 +22,5 @@ interface Props extends Omit<React.ComponentPropsWithoutRef<'div'>, 'onChange'>
22
22
  }
23
23
  declare const Radio: ({ placement, value: _value, children, className, icons, disabled, defaultChecked, checked: _checked, id: _id, name, onChange: _onChange, ...props }: Props) => import("react").JSX.Element;
24
24
  //#endregion
25
- export { Props, Radio as default };
25
+ export { Radio as default };
26
26
  //# sourceMappingURL=radio.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"radio.d.mts","names":[],"sources":["../../../../src/components/atoms/radio/radio.tsx"],"mappings":";;UAoBiB,cAAc,KAC7B,MAAM;EAGN;EACA;EACA;EACA,QAAQ;;EAER;EACA;;;;;;EAMA;EACA,QAAQ;IAAU,SAAS,MAAM;IAAW,WAAW,MAAM;;EAC7D,YAAY;;cAGR,UAAS,WAAA,OAAA,QAAA,UAAA,WAAA,OAAA,UAAA,gBAAA,SAAA,UAAA,IAAA,KAAA,MAAA,UAAA,cAAA,SAaZ,0BAAK,IAAA"}
1
+ {"version":3,"file":"radio.d.mts","names":[],"sources":["../../../../src/components/atoms/radio/radio.tsx"],"mappings":";;iBAoBiB,cAAc,KAC7B,MAAM;EAGN;EACA;EACA;EACA,QAAQ;;EAER;EACA;;;;;;EAMA;EACA,QAAQ;IAAU,SAAS,MAAM;IAAW,WAAW,MAAM;;EAC7D,YAAY;;cAGR,UAAS,WAAA,OAAA,QAAA,UAAA,WAAA,OAAA,UAAA,gBAAA,SAAA,UAAA,IAAA,KAAA,MAAA,UAAA,cAAA,SAaZ,0BAAK,IAAA"}
@@ -3,10 +3,10 @@ import { cn } from "../../../utils.mjs";
3
3
  import { field_exports } from "../../../core/field.mjs";
4
4
  import { radio_group_exports } from "../../../core/radio-group.mjs";
5
5
  import { RadioGroupContext } from "./context.mjs";
6
- import { Circle, CircleCheck } from "lucide-react";
7
6
  import { useContext, useId, useRef } from "react";
8
7
  import { useControllableState, useKeyPress } from "@jbpark/use-hooks";
9
8
  import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
9
+ import { Circle, CircleCheck } from "lucide-react";
10
10
  //#region src/components/atoms/radio/radio.tsx
11
11
  const { RadioGroup: Core, RadioGroupItem: Item } = radio_group_exports;
12
12
  const { Field, FieldLabel } = field_exports;
@@ -1,6 +1,6 @@
1
1
  import { ToolbarItem, ToolbarPreset } from "./types.mjs";
2
2
  //#region src/components/atoms/rich-text-editor/rich-text-editor.d.ts
3
- interface Props {
3
+ export interface Props {
4
4
  value?: string;
5
5
  placeholder?: string;
6
6
  className?: string;
@@ -25,5 +25,5 @@ interface Props {
25
25
  }
26
26
  declare const RichTextEditor: ({ value, placeholder, className, classNames, toolbar, toolbarItems, onUpdate, onCommit, onChange }: Props) => import("react").JSX.Element;
27
27
  //#endregion
28
- export { Props, RichTextEditor as default };
28
+ export { RichTextEditor as default };
29
29
  //# sourceMappingURL=rich-text-editor.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"rich-text-editor.d.mts","names":[],"sources":["../../../../src/components/atoms/rich-text-editor/rich-text-editor.tsx"],"mappings":";;UAgBiB;EACf;EACA;EACA;EACA;IACE;IACA;;;;;;;EAOF,oBAAoB;;EAEpB,eAAe;;EAEf,YAAY;;EAEZ,YAAY;;EAEZ,YAAY;;cAGR,mBAAkB,OAAA,aAAA,WAAA,YAAA,SAAA,cAAA,UAAA,UAAA,YAUrB,0BAAK,IAAA"}
1
+ {"version":3,"file":"rich-text-editor.d.mts","names":[],"sources":["../../../../src/components/atoms/rich-text-editor/rich-text-editor.tsx"],"mappings":";;iBAgBiB;EACf;EACA;EACA;EACA;IACE;IACA;;;;;;;EAOF,oBAAoB;;EAEpB,eAAe;;EAEf,YAAY;;EAEZ,YAAY;;EAEZ,YAAY;;cAGR,mBAAkB,OAAA,aAAA,WAAA,YAAA,SAAA,cAAA,UAAA,UAAA,YAUrB,0BAAK,IAAA"}
@@ -1,13 +1,13 @@
1
1
  "use client";
2
2
  import Button from "../../../Button.mjs";
3
+ import Input from "../input/index.mjs";
3
4
  import Popover from "../popover.mjs";
4
5
  import ColorPicker from "../color-picker.mjs";
5
- import Input from "../input/index.mjs";
6
6
  import ToolbarButton from "./toolbar-button.mjs";
7
7
  import Select from "../select.mjs";
8
- import { Bold, Code, Code2, Italic, Link, List, ListOrdered, Minus, Quote, Redo2, Strikethrough, Underline, Undo2 } from "lucide-react";
9
8
  import { useState } from "react";
10
9
  import { jsx, jsxs } from "react/jsx-runtime";
10
+ import { Bold, Code, Code2, Italic, Link, List, ListOrdered, Minus, Quote, Redo2, Strikethrough, Underline, Undo2 } from "lucide-react";
11
11
  //#region src/components/atoms/rich-text-editor/toolbar-presets.tsx
12
12
  const FONT_SIZE_OPTIONS = [
13
13
  {
@@ -1,8 +1,8 @@
1
1
  import { ReactNode } from "react";
2
2
  import { Editor } from "@tiptap/core";
3
3
  //#region src/components/atoms/rich-text-editor/types.d.ts
4
- type ToolbarPreset = 'undo' | 'redo' | 'heading' | 'bold' | 'italic' | 'underline' | 'strike' | 'code' | 'bulletList' | 'orderedList' | 'blockquote' | 'codeBlock' | 'horizontalRule' | 'link' | 'fontSize' | 'color';
5
- interface ToolbarItem {
4
+ export type ToolbarPreset = 'undo' | 'redo' | 'heading' | 'bold' | 'italic' | 'underline' | 'strike' | 'code' | 'bulletList' | 'orderedList' | 'blockquote' | 'codeBlock' | 'horizontalRule' | 'link' | 'fontSize' | 'color';
5
+ export interface ToolbarItem {
6
6
  key: string;
7
7
  icon: ReactNode;
8
8
  label?: string;
@@ -10,5 +10,4 @@ interface ToolbarItem {
10
10
  onClick: (editor: Editor) => void;
11
11
  }
12
12
  //#endregion
13
- export { ToolbarItem, ToolbarPreset };
14
13
  //# sourceMappingURL=types.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.mts","names":[],"sources":["../../../../src/components/atoms/rich-text-editor/types.ts"],"mappings":";;;KAIY;UAkBK;EACf;EACA,MAAM;EACN;EACA,YAAY,QAAQ;EACpB,UAAU,QAAQ"}
1
+ {"version":3,"file":"types.d.mts","names":[],"sources":["../../../../src/components/atoms/rich-text-editor/types.ts"],"mappings":";;;YAIY;iBAkBK;EACf;EACA,MAAM;EACN;EACA,YAAY,QAAQ;EACpB,UAAU,QAAQ"}
@@ -1,9 +1,9 @@
1
- import { RootProps } from "../../core/combobox.mjs";
1
+ import { RootProps, combobox_d_exports } from "../../core/combobox.mjs";
2
2
  import "../../core/index.mjs";
3
3
  import { ClassNames, Option, OptionGroup } from "./select-searchable-options.mjs";
4
4
  import { ReactNode } from "react";
5
5
  //#region src/components/atoms/select-multiple.d.ts
6
- interface Props extends Omit<RootProps<string, Option, true>, 'children' | 'items' | 'filteredItems' | 'onValueChange' | 'itemToStringLabel' | 'itemToStringValue' | 'isItemEqualToValue'> {
6
+ export interface Props extends Omit<RootProps<string, Option, true>, 'children' | 'items' | 'filteredItems' | 'onValueChange' | 'itemToStringLabel' | 'itemToStringValue' | 'isItemEqualToValue'> {
7
7
  searchable: true;
8
8
  multiple: true;
9
9
  /** Accessible name for the multi-select input. */
@@ -25,5 +25,4 @@ interface Props extends Omit<RootProps<string, Option, true>, 'children' | 'item
25
25
  onChange?: (values: string[]) => void;
26
26
  }
27
27
  //#endregion
28
- export { Props };
29
28
  //# sourceMappingURL=select-multiple.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"select-multiple.d.mts","names":[],"sources":["../../../src/components/atoms/select-multiple.tsx"],"mappings":";;;;;UAgCiB,cAAc,KAC7B,kBAA2B;EAS3B;EACA;;EAEA;EACA,UAAU,SAAS;EACnB;EACA;EACA,YAAY;EACZ;;EAEA;;EAEA,oBAAoB;EACpB;EACA,aAAa;IACX;IACA;;EAEF,YAAY"}
1
+ {"version":3,"file":"select-multiple.d.mts","names":["combobox","combobox.RootProps"],"sources":["../../../src/components/atoms/select-multiple.tsx"],"mappings":";;;;;iBAgCiB,cAAc,KAC7BC,kBAA2B;EAS3B;EACA;;EAEA;EACA,UAAU,SAAS;EACnB;EACA;EACA,YAAY;EACZ;;EAEA;;EAEA,oBAAoB;EACpB;EACA,aAAa;IACX;IACA;;EAEF,YAAY"}
@@ -2,13 +2,13 @@
2
2
  import { cn } from "../../utils.mjs";
3
3
  import { DEFAULT_LOCALE, useConfig } from "../../providers/config/context.mjs";
4
4
  import { combobox_exports } from "../../core/combobox.mjs";
5
- import { selectTriggerStyles } from "../../core/select.mjs";
6
5
  import Button from "../../Button.mjs";
6
+ import { selectTriggerStyles } from "../../core/select.mjs";
7
7
  import Input from "./input/index.mjs";
8
8
  import SearchableOptions, { useSelectItems } from "./select-searchable-options.mjs";
9
- import { ChevronDownIcon, XIcon } from "lucide-react";
10
9
  import { useMemo } from "react";
11
10
  import { jsx, jsxs } from "react/jsx-runtime";
11
+ import { ChevronDownIcon, XIcon } from "lucide-react";
12
12
  //#region src/components/atoms/select-multiple.tsx
13
13
  const { Combobox: Core, ComboboxChip, ComboboxChipRemove, ComboboxChips, ComboboxClear, ComboboxContent, ComboboxInput, ComboboxInputGroup, ComboboxTrigger, ComboboxValue } = combobox_exports;
14
14
  const MultipleSelect = ({ label, options, placeholder = "Select options", searchPlaceholder = "Search...", emptyText = "No results found.", allowClear = true, chipDescription = "Press Backspace or Delete to remove", inputDescription = (count) => `${count} selected. From the start of the input, press Left Arrow to focus selected options`, className, classNames, onChange, onOpenChange, searchable: _searchable, multiple, ...props }) => {
@@ -72,7 +72,8 @@ const MultipleSelect = ({ label, options, placeholder = "Select options", search
72
72
  size: "icon-sm",
73
73
  icon: /* @__PURE__ */ jsx(XIcon, {}),
74
74
  "aria-label": locale.clear ?? DEFAULT_LOCALE.clear
75
- })
75
+ }),
76
+ children: null
76
77
  }),
77
78
  /* @__PURE__ */ jsx(ComboboxTrigger, { render: /* @__PURE__ */ jsx(Button, {
78
79
  variant: "text",
@@ -1 +1 @@
1
- {"version":3,"file":"select-multiple.mjs","names":["combobox","select.selectTriggerStyles"],"sources":["../../../src/components/atoms/select-multiple.tsx"],"sourcesContent":["'use client';\n\nimport { type ReactNode, useMemo } from 'react';\n\nimport { ChevronDownIcon, XIcon } from 'lucide-react';\n\nimport { DEFAULT_LOCALE, useConfig } from '@repo/ui/providers';\nimport { cn } from '@repo/ui/utils';\n\nimport { combobox, select } from '../../core';\nimport Button from './button';\nimport Input from './input';\nimport SearchableOptions, {\n type ClassNames,\n type Option,\n type OptionGroup,\n useSelectItems,\n} from './select-searchable-options';\n\nconst {\n Combobox: Core,\n ComboboxChip,\n ComboboxChipRemove,\n ComboboxChips,\n ComboboxClear,\n ComboboxContent,\n ComboboxInput,\n ComboboxInputGroup,\n ComboboxTrigger,\n ComboboxValue,\n} = combobox;\n\nexport interface Props extends Omit<\n combobox.RootProps<string, Option, true>,\n | 'children'\n | 'items'\n | 'filteredItems'\n | 'onValueChange'\n | 'itemToStringLabel'\n | 'itemToStringValue'\n | 'isItemEqualToValue'\n> {\n searchable: true;\n multiple: true;\n /** Accessible name for the multi-select input. */\n label: string;\n options: (Option | OptionGroup)[];\n placeholder?: string;\n searchPlaceholder?: string;\n emptyText?: ReactNode;\n allowClear?: boolean;\n /** Instructions announced when a selected chip receives focus. */\n chipDescription?: string;\n /** Instructions announced on the input when chips are selected. */\n inputDescription?: (selectedCount: number) => string;\n className?: string;\n classNames?: ClassNames & {\n chips?: string;\n chip?: string;\n };\n onChange?: (values: string[]) => void;\n}\n\nconst MultipleSelect = ({\n label,\n options,\n placeholder = 'Select options',\n searchPlaceholder = 'Search...',\n emptyText = 'No results found.',\n allowClear = true,\n chipDescription = 'Press Backspace or Delete to remove',\n inputDescription = count =>\n `${count} selected. From the start of the input, press Left Arrow to focus selected options`,\n className,\n classNames,\n onChange,\n onOpenChange,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars -- Do not forward the public mode switch to Base UI.\n searchable: _searchable,\n multiple,\n ...props\n}: Props) => {\n const { locale } = useConfig();\n const items = useSelectItems(options);\n const labels = useMemo(() => {\n const result = new Map<string, string>();\n\n options.forEach(option => {\n if ('options' in option) {\n option.options.forEach(item => result.set(item.value, item.label));\n } else {\n result.set(option.value, option.label);\n }\n });\n\n return result;\n }, [options]);\n\n return (\n <Core\n items={items}\n multiple={multiple}\n onValueChange={values => onChange?.(values)}\n onOpenChange={(open, details) => {\n if (!open && details.reason === 'item-press') {\n details.cancel();\n }\n\n onOpenChange?.(open, details);\n }}\n {...props}\n >\n <ComboboxInputGroup\n data-slot=\"select-multiple-input-group\"\n className={cn(\n select.selectTriggerStyles,\n 'h-auto min-h-9 w-full max-w-64 flex-wrap gap-1 py-1',\n className,\n )}\n >\n <ComboboxValue>\n {(values: string[]) => (\n <ComboboxChips\n aria-label={\n values.length > 0 ? `${label} selected options` : undefined\n }\n className={cn(\n 'flex min-w-0 flex-1 flex-wrap items-center gap-1',\n classNames?.chips,\n )}\n >\n {values.map(value => {\n const name = labels.get(value) ?? value;\n\n return (\n <ComboboxChip\n key={value}\n data-slot=\"select-chip\"\n aria-label={name}\n aria-description={chipDescription}\n className={cn(\n `bg-accent text-accent-foreground flex min-w-0\n items-center gap-1 rounded-sm ps-2 pe-1 text-xs\n outline-none`,\n 'focus-visible:ring-ring/50 focus-visible:ring-[3px]',\n classNames?.chip,\n )}\n >\n <span className=\"max-w-40 truncate\">{name}</span>\n <ComboboxChipRemove\n data-slot=\"select-chip-remove\"\n aria-label={`${locale.clear ?? DEFAULT_LOCALE.clear} ${name}`}\n className=\"hover:bg-background/70 flex size-5 shrink-0\n items-center justify-center rounded-sm\"\n >\n <XIcon className=\"size-3\" />\n </ComboboxChipRemove>\n </ComboboxChip>\n );\n })}\n <ComboboxInput\n render={\n <Input\n aria-label={label}\n aria-description={\n values.length > 0\n ? inputDescription(values.length)\n : undefined\n }\n placeholder={\n values.length > 0 ? searchPlaceholder : placeholder\n }\n className={cn(\n `h-6 min-w-16 flex-1 border-0 bg-transparent px-0 py-0\n shadow-none focus-visible:border-0 focus-visible:ring-0`,\n classNames?.input,\n )}\n />\n }\n />\n </ComboboxChips>\n )}\n </ComboboxValue>\n {allowClear && (\n <ComboboxClear\n data-slot=\"select-multiple-clear\"\n render={\n <Button\n variant=\"text\"\n size=\"icon-sm\"\n icon={<XIcon />}\n aria-label={locale.clear ?? DEFAULT_LOCALE.clear}\n />\n }\n />\n )}\n <ComboboxTrigger\n render={\n <Button\n variant=\"text\"\n size=\"icon-sm\"\n icon={<ChevronDownIcon />}\n aria-label={locale.expand ?? DEFAULT_LOCALE.expand}\n />\n }\n />\n </ComboboxInputGroup>\n <ComboboxContent aria-label={label} className={classNames?.content}>\n <SearchableOptions emptyText={emptyText} classNames={classNames} />\n </ComboboxContent>\n </Core>\n );\n};\n\nexport default MultipleSelect;\n"],"mappings":";;;;;;;;;;;;AAmBA,MAAM,EACJ,UAAU,MACV,cACA,oBACA,eACA,eACA,iBACA,eACA,oBACA,iBACA,kBACEA;AAiCJ,MAAM,kBAAkB,EACtB,OACA,SACA,cAAc,kBACd,oBAAoB,aACpB,YAAY,qBACZ,aAAa,MACb,kBAAkB,uCAClB,oBAAmB,UACjB,GAAG,MAAM,qFACX,WACA,YACA,UACA,cAEA,YAAY,aACZ,UACA,GAAG,YACQ;CACX,MAAM,EAAE,WAAW,UAAU;CAC7B,MAAM,QAAQ,eAAe,OAAO;CACpC,MAAM,SAAS,cAAc;EAC3B,MAAM,yBAAS,IAAI,IAAoB;EAEvC,QAAQ,SAAQ,WAAU;GACxB,IAAI,aAAa,QACf,OAAO,QAAQ,SAAQ,SAAQ,OAAO,IAAI,KAAK,OAAO,KAAK,KAAK,CAAC;QAEjE,OAAO,IAAI,OAAO,OAAO,OAAO,KAAK;EAEzC,CAAC;EAED,OAAO;CACT,GAAG,CAAC,OAAO,CAAC;CAEZ,OACE,qBAAC,MAAD;EACS;EACG;EACV,gBAAe,WAAU,WAAW,MAAM;EAC1C,eAAe,MAAM,YAAY;GAC/B,IAAI,CAAC,QAAQ,QAAQ,WAAW,cAC9B,QAAQ,OAAO;GAGjB,eAAe,MAAM,OAAO;EAC9B;EACA,GAAI;EAXN,UAAA,CAaE,qBAAC,oBAAD;GACE,aAAU;GACV,WAAW,GACTC,qBACA,uDACA,SACF;GANF,UAAA;IAQE,oBAAC,eAAD,EAAA,WACI,WACA,qBAAC,eAAD;KACE,cACE,OAAO,SAAS,IAAI,GAAG,MAAM,qBAAqB,KAAA;KAEpD,WAAW,GACT,oDACA,YAAY,KACd;KAPF,UAAA,CASG,OAAO,KAAI,UAAS;MACnB,MAAM,OAAO,OAAO,IAAI,KAAK,KAAK;MAElC,OACE,qBAAC,cAAD;OAEE,aAAU;OACV,cAAY;OACZ,oBAAkB;OAClB,WAAW,GACT;;qCAGA,uDACA,YAAY,IACd;OAXF,UAAA,CAaE,oBAAC,QAAD;QAAM,WAAU;QAAqB,UAAA;OAAW,CAAA,GAChD,oBAAC,oBAAD;QACE,aAAU;QACV,cAAY,GAAG,OAAO,SAAS,eAAe,MAAM,GAAG;QACvD,WAAU;QAGV,UAAA,oBAAC,OAAD,EAAO,WAAU,SAAU,CAAA;OACT,CAAA,CACR;MArBP,GAAA,KAqBO;KAElB,CAAC,GACD,oBAAC,eAAD,EACE,QACE,oBAAC,OAAD;MACE,cAAY;MACZ,oBACE,OAAO,SAAS,IACZ,iBAAiB,OAAO,MAAM,IAC9B,KAAA;MAEN,aACE,OAAO,SAAS,IAAI,oBAAoB;MAE1C,WAAW,GACT;gFAEA,YAAY,KACd;KACD,CAAA,EAEJ,CAAA,CACY;IAEJ,CAAA,EAAA,CAAA;IACd,cACC,oBAAC,eAAD;KACE,aAAU;KACV,QACE,oBAAC,QAAD;MACE,SAAQ;MACR,MAAK;MACL,MAAM,oBAAC,OAAD,CAAQ,CAAA;MACd,cAAY,OAAO,SAAS,eAAe;KAC5C,CAAA;IAEJ,CAAA;IAEH,oBAAC,iBAAD,EACE,QACE,oBAAC,QAAD;KACE,SAAQ;KACR,MAAK;KACL,MAAM,oBAAC,iBAAD,CAAkB,CAAA;KACxB,cAAY,OAAO,UAAU,eAAe;IAC7C,CAAA,EAEJ,CAAA;GACiB;EACpB,CAAA,GAAA,oBAAC,iBAAD;GAAiB,cAAY;GAAO,WAAW,YAAY;GACzD,UAAA,oBAAC,mBAAD;IAA8B;IAAuB;GAAa,CAAA;EACnD,CAAA,CACb;;AAEV"}
1
+ {"version":3,"file":"select-multiple.mjs","names":["combobox","select.selectTriggerStyles"],"sources":["../../../src/components/atoms/select-multiple.tsx"],"sourcesContent":["'use client';\n\nimport { type ReactNode, useMemo } from 'react';\n\nimport { ChevronDownIcon, XIcon } from 'lucide-react';\n\nimport { DEFAULT_LOCALE, useConfig } from '@repo/ui/providers';\nimport { cn } from '@repo/ui/utils';\n\nimport { combobox, select } from '../../core';\nimport Button from './button';\nimport Input from './input';\nimport SearchableOptions, {\n type ClassNames,\n type Option,\n type OptionGroup,\n useSelectItems,\n} from './select-searchable-options';\n\nconst {\n Combobox: Core,\n ComboboxChip,\n ComboboxChipRemove,\n ComboboxChips,\n ComboboxClear,\n ComboboxContent,\n ComboboxInput,\n ComboboxInputGroup,\n ComboboxTrigger,\n ComboboxValue,\n} = combobox;\n\nexport interface Props extends Omit<\n combobox.RootProps<string, Option, true>,\n | 'children'\n | 'items'\n | 'filteredItems'\n | 'onValueChange'\n | 'itemToStringLabel'\n | 'itemToStringValue'\n | 'isItemEqualToValue'\n> {\n searchable: true;\n multiple: true;\n /** Accessible name for the multi-select input. */\n label: string;\n options: (Option | OptionGroup)[];\n placeholder?: string;\n searchPlaceholder?: string;\n emptyText?: ReactNode;\n allowClear?: boolean;\n /** Instructions announced when a selected chip receives focus. */\n chipDescription?: string;\n /** Instructions announced on the input when chips are selected. */\n inputDescription?: (selectedCount: number) => string;\n className?: string;\n classNames?: ClassNames & {\n chips?: string;\n chip?: string;\n };\n onChange?: (values: string[]) => void;\n}\n\nconst MultipleSelect = ({\n label,\n options,\n placeholder = 'Select options',\n searchPlaceholder = 'Search...',\n emptyText = 'No results found.',\n allowClear = true,\n chipDescription = 'Press Backspace or Delete to remove',\n inputDescription = count =>\n `${count} selected. From the start of the input, press Left Arrow to focus selected options`,\n className,\n classNames,\n onChange,\n onOpenChange,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars -- Do not forward the public mode switch to Base UI.\n searchable: _searchable,\n multiple,\n ...props\n}: Props) => {\n const { locale } = useConfig();\n const items = useSelectItems(options);\n const labels = useMemo(() => {\n const result = new Map<string, string>();\n\n options.forEach(option => {\n if ('options' in option) {\n option.options.forEach(item => result.set(item.value, item.label));\n } else {\n result.set(option.value, option.label);\n }\n });\n\n return result;\n }, [options]);\n\n return (\n <Core\n items={items}\n multiple={multiple}\n onValueChange={values => onChange?.(values)}\n onOpenChange={(open, details) => {\n if (!open && details.reason === 'item-press') {\n details.cancel();\n }\n\n onOpenChange?.(open, details);\n }}\n {...props}\n >\n <ComboboxInputGroup\n data-slot=\"select-multiple-input-group\"\n className={cn(\n select.selectTriggerStyles,\n 'h-auto min-h-9 w-full max-w-64 flex-wrap gap-1 py-1',\n className,\n )}\n >\n <ComboboxValue>\n {(values: string[]) => (\n <ComboboxChips\n aria-label={\n values.length > 0 ? `${label} selected options` : undefined\n }\n className={cn(\n 'flex min-w-0 flex-1 flex-wrap items-center gap-1',\n classNames?.chips,\n )}\n >\n {values.map(value => {\n const name = labels.get(value) ?? value;\n\n return (\n <ComboboxChip\n key={value}\n data-slot=\"select-chip\"\n aria-label={name}\n aria-description={chipDescription}\n className={cn(\n `bg-accent text-accent-foreground flex min-w-0\n items-center gap-1 rounded-sm ps-2 pe-1 text-xs\n outline-none`,\n 'focus-visible:ring-ring/50 focus-visible:ring-[3px]',\n classNames?.chip,\n )}\n >\n <span className=\"max-w-40 truncate\">{name}</span>\n <ComboboxChipRemove\n data-slot=\"select-chip-remove\"\n aria-label={`${locale.clear ?? DEFAULT_LOCALE.clear} ${name}`}\n className=\"hover:bg-background/70 flex size-5 shrink-0\n items-center justify-center rounded-sm\"\n >\n <XIcon className=\"size-3\" />\n </ComboboxChipRemove>\n </ComboboxChip>\n );\n })}\n <ComboboxInput\n render={\n <Input\n aria-label={label}\n aria-description={\n values.length > 0\n ? inputDescription(values.length)\n : undefined\n }\n placeholder={\n values.length > 0 ? searchPlaceholder : placeholder\n }\n className={cn(\n `h-6 min-w-16 flex-1 border-0 bg-transparent px-0 py-0\n shadow-none focus-visible:border-0 focus-visible:ring-0`,\n classNames?.input,\n )}\n />\n }\n />\n </ComboboxChips>\n )}\n </ComboboxValue>\n {allowClear && (\n <ComboboxClear\n data-slot=\"select-multiple-clear\"\n render={\n <Button\n variant=\"text\"\n size=\"icon-sm\"\n icon={<XIcon />}\n aria-label={locale.clear ?? DEFAULT_LOCALE.clear}\n />\n }\n >\n {null}\n </ComboboxClear>\n )}\n <ComboboxTrigger\n render={\n <Button\n variant=\"text\"\n size=\"icon-sm\"\n icon={<ChevronDownIcon />}\n aria-label={locale.expand ?? DEFAULT_LOCALE.expand}\n />\n }\n />\n </ComboboxInputGroup>\n <ComboboxContent aria-label={label} className={classNames?.content}>\n <SearchableOptions emptyText={emptyText} classNames={classNames} />\n </ComboboxContent>\n </Core>\n );\n};\n\nexport default MultipleSelect;\n"],"mappings":";;;;;;;;;;;;AAmBA,MAAM,EACJ,UAAU,MACV,cACA,oBACA,eACA,eACA,iBACA,eACA,oBACA,iBACA,kBACEA;AAiCJ,MAAM,kBAAkB,EACtB,OACA,SACA,cAAc,kBACd,oBAAoB,aACpB,YAAY,qBACZ,aAAa,MACb,kBAAkB,uCAClB,oBAAmB,UACjB,GAAG,MAAM,qFACX,WACA,YACA,UACA,cAEA,YAAY,aACZ,UACA,GAAG,YACQ;CACX,MAAM,EAAE,WAAW,UAAU;CAC7B,MAAM,QAAQ,eAAe,OAAO;CACpC,MAAM,SAAS,cAAc;EAC3B,MAAM,yBAAS,IAAI,IAAoB;EAEvC,QAAQ,SAAQ,WAAU;GACxB,IAAI,aAAa,QACf,OAAO,QAAQ,SAAQ,SAAQ,OAAO,IAAI,KAAK,OAAO,KAAK,KAAK,CAAC;QAEjE,OAAO,IAAI,OAAO,OAAO,OAAO,KAAK;EAEzC,CAAC;EAED,OAAO;CACT,GAAG,CAAC,OAAO,CAAC;CAEZ,OACE,qBAAC,MAAD;EACS;EACG;EACV,gBAAe,WAAU,WAAW,MAAM;EAC1C,eAAe,MAAM,YAAY;GAC/B,IAAI,CAAC,QAAQ,QAAQ,WAAW,cAC9B,QAAQ,OAAO;GAGjB,eAAe,MAAM,OAAO;EAC9B;EACA,GAAI;EAXN,UAAA,CAaE,qBAAC,oBAAD;GACE,aAAU;GACV,WAAW,GACTC,qBACA,uDACA,SACF;GANF,UAAA;IAQE,oBAAC,eAAD,EAAA,WACI,WACA,qBAAC,eAAD;KACE,cACE,OAAO,SAAS,IAAI,GAAG,MAAM,qBAAqB,KAAA;KAEpD,WAAW,GACT,oDACA,YAAY,KACd;KAPF,UAAA,CASG,OAAO,KAAI,UAAS;MACnB,MAAM,OAAO,OAAO,IAAI,KAAK,KAAK;MAElC,OACE,qBAAC,cAAD;OAEE,aAAU;OACV,cAAY;OACZ,oBAAkB;OAClB,WAAW,GACT;;qCAGA,uDACA,YAAY,IACd;OAXF,UAAA,CAaE,oBAAC,QAAD;QAAM,WAAU;QAAqB,UAAA;OAAW,CAAA,GAChD,oBAAC,oBAAD;QACE,aAAU;QACV,cAAY,GAAG,OAAO,SAAS,eAAe,MAAM,GAAG;QACvD,WAAU;QAGV,UAAA,oBAAC,OAAD,EAAO,WAAU,SAAU,CAAA;OACT,CAAA,CACR;MArBP,GAAA,KAqBO;KAElB,CAAC,GACD,oBAAC,eAAD,EACE,QACE,oBAAC,OAAD;MACE,cAAY;MACZ,oBACE,OAAO,SAAS,IACZ,iBAAiB,OAAO,MAAM,IAC9B,KAAA;MAEN,aACE,OAAO,SAAS,IAAI,oBAAoB;MAE1C,WAAW,GACT;gFAEA,YAAY,KACd;KACD,CAAA,EAEJ,CAAA,CACY;IAEJ,CAAA,EAAA,CAAA;IACd,cACC,oBAAC,eAAD;KACE,aAAU;KACV,QACE,oBAAC,QAAD;MACE,SAAQ;MACR,MAAK;MACL,MAAM,oBAAC,OAAD,CAAQ,CAAA;MACd,cAAY,OAAO,SAAS,eAAe;KAC5C,CAAA;KAGF,UAAA;IACY,CAAA;IAEjB,oBAAC,iBAAD,EACE,QACE,oBAAC,QAAD;KACE,SAAQ;KACR,MAAK;KACL,MAAM,oBAAC,iBAAD,CAAkB,CAAA;KACxB,cAAY,OAAO,UAAU,eAAe;IAC7C,CAAA,EAEJ,CAAA;GACiB;EACpB,CAAA,GAAA,oBAAC,iBAAD;GAAiB,cAAY;GAAO,WAAW,YAAY;GACzD,UAAA,oBAAC,mBAAD;IAA8B;IAAuB;GAAa,CAAA;EACnD,CAAA,CACb;;AAEV"}
@@ -1,15 +1,15 @@
1
1
  import { ReactNode } from "react";
2
2
  //#region src/components/atoms/select-searchable-options.d.ts
3
- interface Option {
3
+ export interface Option {
4
4
  value: string;
5
5
  label: string;
6
6
  disabled?: boolean;
7
7
  }
8
- interface OptionGroup {
8
+ export interface OptionGroup {
9
9
  label: string;
10
10
  options: Option[];
11
11
  }
12
- interface ClassNames {
12
+ export interface ClassNames {
13
13
  input?: string;
14
14
  content?: string;
15
15
  list?: string;
@@ -17,5 +17,4 @@ interface ClassNames {
17
17
  empty?: string;
18
18
  }
19
19
  //#endregion
20
- export { ClassNames, Option, OptionGroup };
21
20
  //# sourceMappingURL=select-searchable-options.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"select-searchable-options.d.mts","names":[],"sources":["../../../src/components/atoms/select-searchable-options.tsx"],"mappings":";;UAgBiB;EACf;EACA;EACA;;UAGe;EACf;EACA,SAAS;;UAGM;EACf;EACA;EACA;EACA;EACA"}
1
+ {"version":3,"file":"select-searchable-options.d.mts","names":[],"sources":["../../../src/components/atoms/select-searchable-options.tsx"],"mappings":";;iBAgBiB;EACf;EACA;EACA;;iBAGe;EACf;EACA,SAAS;;iBAGM;EACf;EACA;EACA;EACA;EACA"}
@@ -1,9 +1,9 @@
1
- import { RootProps } from "../../core/combobox.mjs";
1
+ import { RootProps, combobox_d_exports } from "../../core/combobox.mjs";
2
2
  import "../../core/index.mjs";
3
3
  import { ClassNames, Option, OptionGroup } from "./select-searchable-options.mjs";
4
4
  import { ReactNode } from "react";
5
5
  //#region src/components/atoms/select-searchable.d.ts
6
- interface Props extends Omit<RootProps<string, Option>, 'children' | 'items' | 'multiple' | 'filteredItems' | 'onValueChange' | 'itemToStringLabel' | 'itemToStringValue' | 'isItemEqualToValue'> {
6
+ export interface Props extends Omit<RootProps<string, Option>, 'children' | 'items' | 'multiple' | 'filteredItems' | 'onValueChange' | 'itemToStringLabel' | 'itemToStringValue' | 'isItemEqualToValue'> {
7
7
  searchable: true;
8
8
  multiple?: false;
9
9
  /** Accessible name for the trigger and search popup. */
@@ -18,5 +18,4 @@ interface Props extends Omit<RootProps<string, Option>, 'children' | 'items' | '
18
18
  onChange?: (value: string | null) => void;
19
19
  }
20
20
  //#endregion
21
- export { Props };
22
21
  //# sourceMappingURL=select-searchable.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"select-searchable.d.mts","names":[],"sources":["../../../src/components/atoms/select-searchable.tsx"],"mappings":";;;;;UA6BiB,cAAc,KAC7B,kBAA2B;EAU3B;EACA;;EAEA;EACA,UAAU,SAAS;EACnB;EACA;EACA,YAAY;EACZ;EACA;EACA,aAAa;EACb,YAAY"}
1
+ {"version":3,"file":"select-searchable.d.mts","names":["combobox","combobox.RootProps"],"sources":["../../../src/components/atoms/select-searchable.tsx"],"mappings":";;;;;iBA6BiB,cAAc,KAC7BC,kBAA2B;EAU3B;EACA;;EAEA;EACA,UAAU,SAAS;EACnB;EACA;EACA,YAAY;EACZ;EACA;EACA,aAAa;EACb,YAAY"}
@@ -2,12 +2,12 @@
2
2
  import { cn } from "../../utils.mjs";
3
3
  import { DEFAULT_LOCALE, useConfig } from "../../providers/config/context.mjs";
4
4
  import { combobox_exports } from "../../core/combobox.mjs";
5
- import { selectTriggerStyles } from "../../core/select.mjs";
6
5
  import Button from "../../Button.mjs";
6
+ import { selectTriggerStyles } from "../../core/select.mjs";
7
7
  import Input from "./input/index.mjs";
8
8
  import SearchableOptions, { useSelectItems } from "./select-searchable-options.mjs";
9
- import { ChevronDownIcon, XIcon } from "lucide-react";
10
9
  import { jsx, jsxs } from "react/jsx-runtime";
10
+ import { ChevronDownIcon, XIcon } from "lucide-react";
11
11
  //#region src/components/atoms/select-searchable.tsx
12
12
  const { Combobox: Core, ComboboxClear, ComboboxContent, ComboboxIcon, ComboboxInput, ComboboxTrigger, ComboboxValue } = combobox_exports;
13
13
  const SearchableSelect = ({ label, options, placeholder, searchPlaceholder = "Search...", emptyText = "No results found.", allowClear = true, className, classNames, onChange, searchable: _searchable, multiple: _multiple, ...props }) => {
@@ -49,7 +49,8 @@ const SearchableSelect = ({ label, options, placeholder, searchPlaceholder = "Se
49
49
  icon: /* @__PURE__ */ jsx(XIcon, {}),
50
50
  "aria-label": locale.clear ?? DEFAULT_LOCALE.clear,
51
51
  className: "absolute end-0"
52
- })
52
+ }),
53
+ children: null
53
54
  })]
54
55
  })
55
56
  }), /* @__PURE__ */ jsx(SearchableOptions, {