@oneplatformdev/ui 0.1.99-beta.30 → 0.1.99-beta.300

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 (374) hide show
  1. package/.storybook/Wrappers.js.map +1 -1
  2. package/Accordion/Accordion.d.ts +1 -1
  3. package/Accordion/Accordion.d.ts.map +1 -1
  4. package/Accordion/Accordion.js +47 -31
  5. package/Accordion/Accordion.js.map +1 -1
  6. package/Alert/Alert.js.map +1 -1
  7. package/Alert/alertVariants.js.map +1 -1
  8. package/AlertDialog/AlertDialog.js.map +1 -1
  9. package/AlertDialog/AlertDialog.stories.js +66 -24
  10. package/AlertDialog/AlertDialog.stories.js.map +1 -1
  11. package/AlertDialog/AlertDialogRoot.d.ts.map +1 -1
  12. package/AlertDialog/AlertDialogRoot.js +25 -25
  13. package/AlertDialog/AlertDialogRoot.js.map +1 -1
  14. package/AreaChart/AreaChart.js.map +1 -1
  15. package/Aside/Aside.js.map +1 -1
  16. package/Aside/AsideSidebar.js.map +1 -1
  17. package/AspectRatio/AspectRatio.js.map +1 -1
  18. package/Avatar/Avatar.js.map +1 -1
  19. package/Badge/Badge.js.map +1 -1
  20. package/Badge/badgeVariants.js.map +1 -1
  21. package/Breadcrumb/Breadcrumb.js.map +1 -1
  22. package/Button/Button.d.ts.map +1 -1
  23. package/Button/Button.js +40 -41
  24. package/Button/Button.js.map +1 -1
  25. package/Button/Button.stories.js +15 -12
  26. package/Button/Button.stories.js.map +1 -1
  27. package/Button/Button.utils.d.ts +3 -0
  28. package/Button/Button.utils.d.ts.map +1 -0
  29. package/Button/Button.utils.js +14 -0
  30. package/Button/Button.utils.js.map +1 -0
  31. package/Button/ButtonCounterBadge.js.map +1 -1
  32. package/Button/buttonVariants.d.ts +2 -2
  33. package/Button/buttonVariants.d.ts.map +1 -1
  34. package/Button/buttonVariants.js +37 -5
  35. package/Button/buttonVariants.js.map +1 -1
  36. package/Button/index.d.ts +1 -0
  37. package/Button/index.d.ts.map +1 -1
  38. package/Button/index.js +8 -6
  39. package/Button/index.js.map +1 -1
  40. package/ButtonIcon/ButtonIcon.d.ts.map +1 -1
  41. package/ButtonIcon/ButtonIcon.js +49 -50
  42. package/ButtonIcon/ButtonIcon.js.map +1 -1
  43. package/ButtonIcon/ButtonIcon.stories.js +35 -33
  44. package/ButtonIcon/ButtonIcon.stories.js.map +1 -1
  45. package/ButtonIcon/buttonIconVariants.d.ts +1 -1
  46. package/ButtonIcon/buttonIconVariants.d.ts.map +1 -1
  47. package/ButtonIcon/buttonIconVariants.js +2 -1
  48. package/ButtonIcon/buttonIconVariants.js.map +1 -1
  49. package/CHANGELOG.md +3502 -1898
  50. package/Calendar/Calendar.js +0 -1
  51. package/Calendar/Calendar.js.map +1 -1
  52. package/Card/Card.d.ts.map +1 -1
  53. package/Card/Card.js +22 -21
  54. package/Card/Card.js.map +1 -1
  55. package/Carousel/Carousel.js +6 -7
  56. package/Carousel/Carousel.js.map +1 -1
  57. package/Chart/Chart.js.map +1 -1
  58. package/Checkbox/Checkbox.d.ts.map +1 -1
  59. package/Checkbox/Checkbox.js +36 -35
  60. package/Checkbox/Checkbox.js.map +1 -1
  61. package/Checkbox/Checkbox.stories.js +108 -0
  62. package/Checkbox/Checkbox.stories.js.map +1 -0
  63. package/Checkbox/Checkbox.types.d.ts +2 -1
  64. package/Checkbox/Checkbox.types.d.ts.map +1 -1
  65. package/Collapsible/Collapsible.js.map +1 -1
  66. package/Combobox/Combobox.d.ts +4 -2
  67. package/Combobox/Combobox.d.ts.map +1 -1
  68. package/Combobox/Combobox.js +222 -194
  69. package/Combobox/Combobox.js.map +1 -1
  70. package/Combobox/Combobox.stories.js +240 -85
  71. package/Combobox/Combobox.stories.js.map +1 -1
  72. package/Combobox/Combobox.types.d.ts +88 -24
  73. package/Combobox/Combobox.types.d.ts.map +1 -1
  74. package/Combobox/Combobox.types.js +4 -1
  75. package/Combobox/Combobox.types.js.map +1 -1
  76. package/Combobox/ComboboxOptionItem.d.ts +5 -3
  77. package/Combobox/ComboboxOptionItem.d.ts.map +1 -1
  78. package/Combobox/ComboboxOptionItem.js +80 -23
  79. package/Combobox/ComboboxOptionItem.js.map +1 -1
  80. package/Combobox/ComboboxRenderContent.d.ts +28 -0
  81. package/Combobox/ComboboxRenderContent.d.ts.map +1 -0
  82. package/Combobox/ComboboxRenderContent.js +142 -0
  83. package/Combobox/ComboboxRenderContent.js.map +1 -0
  84. package/Combobox/ComboboxRenderOptions.d.ts +4 -0
  85. package/Combobox/ComboboxRenderOptions.d.ts.map +1 -0
  86. package/Combobox/ComboboxRenderOptions.js +53 -0
  87. package/Combobox/ComboboxRenderOptions.js.map +1 -0
  88. package/Combobox/ComboboxRenderTrigger.d.ts +18 -0
  89. package/Combobox/ComboboxRenderTrigger.d.ts.map +1 -0
  90. package/Combobox/ComboboxRenderTrigger.js +118 -0
  91. package/Combobox/ComboboxRenderTrigger.js.map +1 -0
  92. package/Command/Command.d.ts +6 -1
  93. package/Command/Command.d.ts.map +1 -1
  94. package/Command/Command.js +63 -46
  95. package/Command/Command.js.map +1 -1
  96. package/ContextPopover/ContextDropdownMenu.d.ts +12 -0
  97. package/ContextPopover/ContextDropdownMenu.d.ts.map +1 -0
  98. package/ContextPopover/ContextDropdownMenu.js +41 -0
  99. package/ContextPopover/ContextDropdownMenu.js.map +1 -0
  100. package/ContextPopover/ContextPopover.d.ts +12 -0
  101. package/ContextPopover/ContextPopover.d.ts.map +1 -0
  102. package/ContextPopover/ContextPopover.js +34 -0
  103. package/ContextPopover/ContextPopover.js.map +1 -0
  104. package/ContextPopover/index.d.ts +4 -0
  105. package/ContextPopover/index.d.ts.map +1 -0
  106. package/ContextPopover/index.js +9 -0
  107. package/ContextPopover/index.js.map +1 -0
  108. package/ContextPopover/useContextPopoverHandler.d.ts +14 -0
  109. package/ContextPopover/useContextPopoverHandler.d.ts.map +1 -0
  110. package/ContextPopover/useContextPopoverHandler.js +21 -0
  111. package/ContextPopover/useContextPopoverHandler.js.map +1 -0
  112. package/DataTable/DataTable.js +14 -15
  113. package/DataTable/DataTable.js.map +1 -1
  114. package/DataTable/DataTableColumnFilter.js +6 -7
  115. package/DataTable/DataTableColumnFilter.js.map +1 -1
  116. package/DataTable/useDataTable.js.map +1 -1
  117. package/DatePicker/DatePicker.d.ts.map +1 -1
  118. package/DatePicker/DatePicker.js +31 -30
  119. package/DatePicker/DatePicker.js.map +1 -1
  120. package/Dialog/Dialog.d.ts +4 -1
  121. package/Dialog/Dialog.d.ts.map +1 -1
  122. package/Dialog/Dialog.js +82 -40
  123. package/Dialog/Dialog.js.map +1 -1
  124. package/Dialog/Dialog.stories.js +108 -0
  125. package/Dialog/Dialog.stories.js.map +1 -0
  126. package/Dialog/Dialog.types.d.ts +4 -0
  127. package/Dialog/Dialog.types.d.ts.map +1 -0
  128. package/Dialog/Dialog.types.js +2 -0
  129. package/Dialog/Dialog.types.js.map +1 -0
  130. package/Dialog/DialogOverlayScope.js.map +1 -1
  131. package/Dialog/index.d.ts +1 -0
  132. package/Dialog/index.d.ts.map +1 -1
  133. package/Dialog/useDialogClosePosition.d.ts +11 -0
  134. package/Dialog/useDialogClosePosition.d.ts.map +1 -0
  135. package/Dialog/useDialogClosePosition.js +50 -0
  136. package/Dialog/useDialogClosePosition.js.map +1 -0
  137. package/Drawer/Drawer.js.map +1 -1
  138. package/DropdownMenu/DropdownMenu.d.ts.map +1 -1
  139. package/DropdownMenu/DropdownMenu.js +33 -20
  140. package/DropdownMenu/DropdownMenu.js.map +1 -1
  141. package/Dropzone/Dropzone.d.ts.map +1 -1
  142. package/Dropzone/Dropzone.js +493 -132
  143. package/Dropzone/Dropzone.js.map +1 -1
  144. package/Dropzone/Dropzone.stories.js +387 -0
  145. package/Dropzone/Dropzone.stories.js.map +1 -0
  146. package/Dropzone/Dropzone.types.d.ts +29 -1
  147. package/Dropzone/Dropzone.types.d.ts.map +1 -1
  148. package/Dropzone/Dropzone.types.js +32 -9
  149. package/Dropzone/Dropzone.types.js.map +1 -1
  150. package/Dropzone/DropzoneCoverPreview.d.ts +14 -0
  151. package/Dropzone/DropzoneCoverPreview.d.ts.map +1 -0
  152. package/Dropzone/DropzoneCoverPreview.js +56 -0
  153. package/Dropzone/DropzoneCoverPreview.js.map +1 -0
  154. package/Dropzone/DropzoneFileCard.d.ts +17 -0
  155. package/Dropzone/DropzoneFileCard.d.ts.map +1 -0
  156. package/Dropzone/DropzoneFileCard.js +39 -0
  157. package/Dropzone/DropzoneFileCard.js.map +1 -0
  158. package/Dropzone/DropzoneFilePreview.d.ts.map +1 -1
  159. package/Dropzone/DropzoneFilePreview.js +46 -26
  160. package/Dropzone/DropzoneFilePreview.js.map +1 -1
  161. package/Dropzone/DropzoneSinglePickPreview.d.ts +10 -2
  162. package/Dropzone/DropzoneSinglePickPreview.d.ts.map +1 -1
  163. package/Dropzone/DropzoneSinglePickPreview.js +206 -22
  164. package/Dropzone/DropzoneSinglePickPreview.js.map +1 -1
  165. package/Dropzone/DropzoneUtils.d.ts +1 -0
  166. package/Dropzone/DropzoneUtils.d.ts.map +1 -1
  167. package/Dropzone/DropzoneUtils.js +17 -6
  168. package/Dropzone/DropzoneUtils.js.map +1 -1
  169. package/Dropzone/icons/file-csv.svg.js +5 -0
  170. package/Dropzone/icons/file-csv.svg.js.map +1 -0
  171. package/Dropzone/icons/file-doc.svg.js +5 -0
  172. package/Dropzone/icons/file-doc.svg.js.map +1 -0
  173. package/Dropzone/icons/file-docx.svg.js +5 -0
  174. package/Dropzone/icons/file-docx.svg.js.map +1 -0
  175. package/Dropzone/icons/file-jpg.svg.js +5 -0
  176. package/Dropzone/icons/file-jpg.svg.js.map +1 -0
  177. package/Dropzone/icons/file-pdf.svg.js +5 -0
  178. package/Dropzone/icons/file-pdf.svg.js.map +1 -0
  179. package/Dropzone/icons/file-png.svg.js +5 -0
  180. package/Dropzone/icons/file-png.svg.js.map +1 -0
  181. package/Dropzone/icons/file-ppt.svg.js +5 -0
  182. package/Dropzone/icons/file-ppt.svg.js.map +1 -0
  183. package/Dropzone/icons/file-pptx.svg.js +5 -0
  184. package/Dropzone/icons/file-pptx.svg.js.map +1 -0
  185. package/Dropzone/icons/file-rar.svg.js +5 -0
  186. package/Dropzone/icons/file-rar.svg.js.map +1 -0
  187. package/Dropzone/icons/file-svg.svg.js +5 -0
  188. package/Dropzone/icons/file-svg.svg.js.map +1 -0
  189. package/Dropzone/icons/file-webp.svg.js +5 -0
  190. package/Dropzone/icons/file-webp.svg.js.map +1 -0
  191. package/Dropzone/icons/file-xls.svg.js +5 -0
  192. package/Dropzone/icons/file-xls.svg.js.map +1 -0
  193. package/Dropzone/icons/file-xlsx.svg.js +5 -0
  194. package/Dropzone/icons/file-xlsx.svg.js.map +1 -0
  195. package/Dropzone/icons/file-zip.svg.js +5 -0
  196. package/Dropzone/icons/file-zip.svg.js.map +1 -0
  197. package/Dropzone/index.js +8 -5
  198. package/Form/Form.js +28 -29
  199. package/Form/Form.js.map +1 -1
  200. package/Form/FormRenderControl.d.ts +1 -1
  201. package/Form/FormRenderControl.d.ts.map +1 -1
  202. package/Form/FormRenderControl.js +54 -14
  203. package/Form/FormRenderControl.js.map +1 -1
  204. package/Form/FormRenderControl.types.d.ts +6 -2
  205. package/Form/FormRenderControl.types.d.ts.map +1 -1
  206. package/Form/Form_old.js +4 -5
  207. package/Form/Form_old.js.map +1 -1
  208. package/FormCheckbox/FormCheckbox.js +4 -4
  209. package/FormCheckbox/FormCheckbox.js.map +1 -1
  210. package/FormCombobox/FormCombobox.d.ts +4 -2
  211. package/FormCombobox/FormCombobox.d.ts.map +1 -1
  212. package/FormCombobox/FormCombobox.js +29 -16
  213. package/FormCombobox/FormCombobox.js.map +1 -1
  214. package/FormCombobox/FormCombobox.types.d.ts +6 -2
  215. package/FormCombobox/FormCombobox.types.d.ts.map +1 -1
  216. package/FormDatePicker/FormDatePicker.d.ts.map +1 -1
  217. package/FormDatePicker/FormDatePicker.js +18 -16
  218. package/FormDatePicker/FormDatePicker.js.map +1 -1
  219. package/FormDropzone/FormDropzone.d.ts.map +1 -1
  220. package/FormDropzone/FormDropzone.js +13 -11
  221. package/FormDropzone/FormDropzone.js.map +1 -1
  222. package/FormInput/FormInput.d.ts.map +1 -1
  223. package/FormInput/FormInput.js +47 -27
  224. package/FormInput/FormInput.js.map +1 -1
  225. package/FormInput/FormInput.stories.js +80 -0
  226. package/FormInput/FormInput.stories.js.map +1 -0
  227. package/FormInput/FormInput.types.d.ts +1 -0
  228. package/FormInput/FormInput.types.d.ts.map +1 -1
  229. package/FormRadio/FormRadio.js.map +1 -1
  230. package/FormSelect/FormSelect.d.ts.map +1 -1
  231. package/FormSelect/FormSelect.js +19 -18
  232. package/FormSelect/FormSelect.js.map +1 -1
  233. package/FormTextarea/FormTextarea.d.ts.map +1 -1
  234. package/FormTextarea/FormTextarea.js +15 -12
  235. package/FormTextarea/FormTextarea.js.map +1 -1
  236. package/Header/Header.js.map +1 -1
  237. package/HoverCard/HoverCard.js.map +1 -1
  238. package/InfoBlock/InfoBlock.d.ts +7 -0
  239. package/InfoBlock/InfoBlock.d.ts.map +1 -0
  240. package/InfoBlock/InfoBlock.js +28 -0
  241. package/InfoBlock/InfoBlock.js.map +1 -0
  242. package/InfoBlock/InfoBlock.stories.js +50 -0
  243. package/InfoBlock/InfoBlock.stories.js.map +1 -0
  244. package/InfoBlock/InfoBlock.types.d.ts +9 -0
  245. package/InfoBlock/InfoBlock.types.d.ts.map +1 -0
  246. package/InfoBlock/InfoBlock.types.js +2 -0
  247. package/InfoBlock/InfoBlock.types.js.map +1 -0
  248. package/InfoBlock/index.d.ts +3 -0
  249. package/InfoBlock/index.d.ts.map +1 -0
  250. package/InfoBlock/index.js +5 -0
  251. package/InfoBlock/index.js.map +1 -0
  252. package/InfoBlock/infoBlockVariants.d.ts +6 -0
  253. package/InfoBlock/infoBlockVariants.d.ts.map +1 -0
  254. package/InfoBlock/infoBlockVariants.js +27 -0
  255. package/InfoBlock/infoBlockVariants.js.map +1 -0
  256. package/Input/Input.d.ts.map +1 -1
  257. package/Input/Input.js +104 -53
  258. package/Input/Input.js.map +1 -1
  259. package/Input/Input.stories.js +225 -0
  260. package/Input/Input.stories.js.map +1 -0
  261. package/Input/Input.types.d.ts +5 -0
  262. package/Input/Input.types.d.ts.map +1 -1
  263. package/Input/inputVariants.js.map +1 -1
  264. package/InputOTP/InputOTP.d.ts.map +1 -1
  265. package/InputOTP/InputOTP.js.map +1 -1
  266. package/LICENSE +21 -21
  267. package/Label/Label.js.map +1 -1
  268. package/Label/labelVariants.js.map +1 -1
  269. package/LazyLoader/LazyLoader.js +4 -5
  270. package/LazyLoader/LazyLoader.js.map +1 -1
  271. package/LoadedIcon/LoadedIcon.js.map +1 -1
  272. package/LoadingMask/LoadingMask.d.ts +1 -2
  273. package/LoadingMask/LoadingMask.d.ts.map +1 -1
  274. package/LoadingMask/LoadingMask.js +8 -8
  275. package/LoadingMask/LoadingMask.js.map +1 -1
  276. package/LoadingMask/LoadingMask.types.d.ts +1 -0
  277. package/LoadingMask/LoadingMask.types.d.ts.map +1 -1
  278. package/LoadingMask/RenderLoadingMask.js.map +1 -1
  279. package/LoadingProgress/LoadingProgress.js.map +1 -1
  280. package/LoadingProgress/loadingProgressVariants.js.map +1 -1
  281. package/Menubar/Menubar.js.map +1 -1
  282. package/NavigationMenu/NavigationMenu.js.map +1 -1
  283. package/NavigationMenu/navigationMenuVariants.js.map +1 -1
  284. package/Pagination/Pagination.js +0 -1
  285. package/Pagination/Pagination.js.map +1 -1
  286. package/Popover/Popover.d.ts +3 -1
  287. package/Popover/Popover.d.ts.map +1 -1
  288. package/Popover/Popover.js +15 -10
  289. package/Popover/Popover.js.map +1 -1
  290. package/Progress/Progress.js.map +1 -1
  291. package/README.md +7 -7
  292. package/Radio/Radio.js.map +1 -1
  293. package/RadioGroup/RadioGroup.js.map +1 -1
  294. package/Resizable/Resizable.js.map +1 -1
  295. package/Resizable/Resizable.stories.js.map +1 -1
  296. package/ScrollArea/ScrollArea.d.ts +5 -1
  297. package/ScrollArea/ScrollArea.d.ts.map +1 -1
  298. package/ScrollArea/ScrollArea.js +23 -17
  299. package/ScrollArea/ScrollArea.js.map +1 -1
  300. package/Search/Search.d.ts.map +1 -1
  301. package/Search/Search.js +39 -30
  302. package/Search/Search.js.map +1 -1
  303. package/Search/Search.stories.js.map +1 -1
  304. package/Select/Select.d.ts.map +1 -1
  305. package/Select/Select.js +53 -49
  306. package/Select/Select.js.map +1 -1
  307. package/Select/Select.stories.js.map +1 -1
  308. package/Select/Select.types.d.ts +4 -0
  309. package/Select/Select.types.d.ts.map +1 -1
  310. package/Select/SelectRoot.d.ts.map +1 -1
  311. package/Select/SelectRoot.js +79 -66
  312. package/Select/SelectRoot.js.map +1 -1
  313. package/Separator/Separator.js.map +1 -1
  314. package/Sheet/Sheet.js.map +1 -1
  315. package/Sidebar/Sidebar.js +20 -21
  316. package/Sidebar/Sidebar.js.map +1 -1
  317. package/Skeleton/Skeleton.js.map +1 -1
  318. package/Slider/Slider.js.map +1 -1
  319. package/Sonner/Sonner.js.map +1 -1
  320. package/Switch/Switch.d.ts +1 -1
  321. package/Switch/Switch.d.ts.map +1 -1
  322. package/Switch/Switch.js +19 -9
  323. package/Switch/Switch.js.map +1 -1
  324. package/Switch/Switch.stories.js +62 -0
  325. package/Switch/Switch.stories.js.map +1 -0
  326. package/Table/Table.js.map +1 -1
  327. package/TablePagination/TablePagination.js +17 -21
  328. package/TablePagination/TablePagination.js.map +1 -1
  329. package/Tabs/Tabs.js.map +1 -1
  330. package/Tabs/TabsRoot.js.map +1 -1
  331. package/Textarea/Textarea.d.ts.map +1 -1
  332. package/Textarea/Textarea.js +50 -45
  333. package/Textarea/Textarea.js.map +1 -1
  334. package/Textarea/Textarea.stories.js.map +1 -1
  335. package/Textarea/Textarea.types.d.ts +3 -1
  336. package/Textarea/Textarea.types.d.ts.map +1 -1
  337. package/Textarea/useAutosizeTextArea.js.map +1 -1
  338. package/Theme/ThemeModeToggle.js +3 -4
  339. package/Theme/ThemeModeToggle.js.map +1 -1
  340. package/Theme/ThemeProvider.js.map +1 -1
  341. package/Toast/Toast.d.ts +1 -1
  342. package/Toast/Toast.js.map +1 -1
  343. package/Toast/toast.constants.js.map +1 -1
  344. package/Toast/toastVariants.d.ts +1 -1
  345. package/Toast/toastVariants.js.map +1 -1
  346. package/Toast/useToast.js.map +1 -1
  347. package/Toaster/Toaster.js.map +1 -1
  348. package/Toggle/Toggle.js.map +1 -1
  349. package/ToggleGroup/ToggleGroup.js.map +1 -1
  350. package/Tooltip/QuestionMarkIcon.svg.js +6 -0
  351. package/Tooltip/QuestionMarkIcon.svg.js.map +1 -0
  352. package/Tooltip/Tooltip.d.ts.map +1 -1
  353. package/Tooltip/Tooltip.js +52 -32
  354. package/Tooltip/Tooltip.js.map +1 -1
  355. package/Tooltip/Tooltip.types.d.ts +10 -0
  356. package/Tooltip/Tooltip.types.d.ts.map +1 -1
  357. package/Tooltip/TooltipRoot.js.map +1 -1
  358. package/Tooltip/tooltipVariants.d.ts +4 -0
  359. package/Tooltip/tooltipVariants.d.ts.map +1 -0
  360. package/Tooltip/tooltipVariants.js +23 -0
  361. package/Tooltip/tooltipVariants.js.map +1 -0
  362. package/index.d.ts +2 -0
  363. package/index.d.ts.map +1 -1
  364. package/index.js +357 -344
  365. package/index.js.map +1 -1
  366. package/package.json +10 -6
  367. package/styles.css +1 -0
  368. package/vite-env.d.js +2 -0
  369. package/vite-env.d.js.map +1 -0
  370. package/vite-env.d.ts +7 -0
  371. package/Combobox/ComboboxOptions.d.ts +0 -4
  372. package/Combobox/ComboboxOptions.d.ts.map +0 -1
  373. package/Combobox/ComboboxOptions.js +0 -65
  374. package/Combobox/ComboboxOptions.js.map +0 -1
@@ -1,50 +1,114 @@
1
- import { Dispatch, ReactNode, SetStateAction } from 'react';
2
- export interface ComboboxOption {
1
+ import { Dispatch, HTMLAttributes, ReactNode, Ref, SetStateAction } from 'react';
2
+ export type ComboboxValueType = string | string[];
3
+ export type ComboboxSelectedType = 'single' | 'multi';
4
+ export declare const DEFAULT_COMBOBOX_TYPE: ComboboxSelectedType;
5
+ export interface ComboboxOption<Data extends object = object> {
3
6
  value: string;
4
7
  label: string;
5
- items?: ComboboxOption[];
8
+ node?: Data;
9
+ items?: ComboboxOption<Data>[];
10
+ path?: string[];
11
+ parent?: string;
12
+ level?: number;
13
+ matched?: boolean;
6
14
  }
7
- export interface ComboboxCallbackStateParams {
8
- options: ComboboxOption[];
9
- setOptions: Dispatch<SetStateAction<ComboboxOption[]>>;
10
- selectedOption?: ComboboxOption;
11
- setSelectedOption: Dispatch<SetStateAction<ComboboxOption | undefined>>;
15
+ export interface ComboboxCallbackStateParams<Data extends object = object, T extends ComboboxSelectedType = 'single'> {
16
+ options: ComboboxOption<Data>[];
17
+ setOptions: Dispatch<SetStateAction<ComboboxOption<Data>[]>>;
12
18
  search: string;
13
19
  setSearch: Dispatch<SetStateAction<string>>;
20
+ onChangeOption: (option: ComboboxOption<Data>) => void;
14
21
  open: boolean;
15
22
  setOpen: Dispatch<SetStateAction<boolean>>;
16
23
  loading: boolean;
17
24
  setLoading: Dispatch<SetStateAction<boolean>>;
18
25
  isEmptyList: boolean;
19
26
  isSearchedEmptyList: boolean;
27
+ placeholder?: string;
28
+ type: T;
29
+ selectedOption: T extends 'single' ? ComboboxOption<Data> | undefined : ComboboxOption<Data>[];
30
+ setSelectedOption: T extends 'single' ? Dispatch<SetStateAction<ComboboxOption<Data> | undefined>> : Dispatch<SetStateAction<ComboboxOption<Data>[] | undefined>>;
20
31
  }
21
- export interface IComboboxOptionsNodeProps {
22
- value?: string;
23
- option: ComboboxOption;
24
- onChangeOption?: (option: ComboboxOption) => void;
32
+ export type ComboboxCallbackStateParamsUnion<Data extends object = object> = ComboboxCallbackStateParams<Data, 'single'> | ComboboxCallbackStateParams<Data, 'multi'>;
33
+ export type ComboboxCallbackStateParamsRenderHandler<Data extends object = object> = (params: ComboboxCallbackStateParamsUnion<Data>) => ReactNode;
34
+ export interface IComboboxOptionsNodeHandlersProps<Data extends object = object> {
35
+ defaultNodeOpen?: boolean | ((option: ComboboxOption<Data>, deep: number) => boolean | undefined);
36
+ defaultNodeDisabled?: boolean | ((option: ComboboxOption<Data>, deep: number) => boolean | undefined);
37
+ defaultNodeMatched?: boolean | ((option: ComboboxOption<Data>, deep: number) => boolean | undefined);
38
+ defaultNodeMuted?: boolean | ((option: ComboboxOption<Data>, deep: number) => boolean | undefined);
39
+ defaultNodeInteractive?: boolean | ((option: ComboboxOption<Data>, deep: number) => boolean | undefined);
40
+ /** Use onPointerUp instead of cmdk onSelect. Fixes selection inside modal Dialog. */
41
+ forcePointerSelect?: boolean;
42
+ }
43
+ export interface IComboboxOptionsNodeProps<Data extends object = object> extends IComboboxOptionsNodeHandlersProps<Data> {
44
+ type: ComboboxSelectedType;
45
+ search?: string;
46
+ value?: ComboboxValueType;
47
+ option: ComboboxOption<Data>;
48
+ onSelect?: (option: ComboboxOption<Data>) => void;
25
49
  deep?: number;
26
- setOpen: Dispatch<SetStateAction<boolean>>;
27
50
  }
28
- export interface IComboboxOptionsProps extends Omit<IComboboxOptionsNodeProps, 'option'> {
29
- options?: ComboboxOption[];
51
+ export interface IComboboxOptionsProps<Data extends object = object> extends Omit<IComboboxOptionsNodeProps<Data>, 'option'>, IComboboxOptionsNodeHandlersProps<Data> {
52
+ options?: ComboboxOption<Data>[];
30
53
  }
31
- export interface ComboboxProps {
32
- value: string;
33
- onChange: (value: string) => void;
54
+ interface IListActionProps extends HTMLAttributes<HTMLDivElement> {
55
+ bordered?: boolean;
56
+ }
57
+ interface IPopoverSlotProps {
58
+ /** Set Popover modal mode. Use `true` when Combobox is inside a modal Dialog. */
59
+ modal?: boolean;
60
+ /** Container element for Popover portal. Use to render inside modal Dialog. */
61
+ container?: HTMLElement | null;
62
+ }
63
+ export interface ISlotProps {
64
+ popover?: IPopoverSlotProps;
65
+ listFooterAction?: IListActionProps;
66
+ }
67
+ type ComboboxLoadDataParams = {
68
+ search?: string;
69
+ offset?: number;
70
+ };
71
+ type ComboboxLoadDataResult<Data extends object = object> = {
72
+ data: ComboboxOption<Data>[];
73
+ total: number;
74
+ };
75
+ type ComboboxLoadDataReturn<Data extends object = object> = ComboboxOption<Data>[] | ComboboxLoadDataResult<Data>;
76
+ type ComboboxLoadData<Data extends object = object> = (params: ComboboxLoadDataParams, signal: AbortSignal, controller: ComboboxCallbackStateParams<Data, 'single'> | ComboboxCallbackStateParams<Data, 'multi'>) => Promise<ComboboxLoadDataReturn<Data>>;
77
+ export interface ComboboxBaseProps<Data extends object = object, T extends ComboboxSelectedType = 'single'> extends IComboboxOptionsNodeHandlersProps {
78
+ type?: T;
79
+ imperativeRef?: Ref<ComboboxCallbackStateParams<Data, 'single'> | ComboboxCallbackStateParams<Data, 'multi'> | null>;
34
80
  placeholder?: string;
35
81
  searchLabel?: string;
36
82
  disabled?: boolean;
37
- fetchOptions: (search?: string) => Promise<ComboboxOption[]>;
38
- options?: ComboboxOption[];
83
+ /** Callback for load data on search debounce */
84
+ loadData: ComboboxLoadData<Data>;
85
+ options?: ComboboxOption<Data>[];
39
86
  /** Command Empty list label*/
40
87
  emptyLabel?: string;
41
88
  /** Command Empty list action */
42
- emptyAction?: ((params: ComboboxCallbackStateParams) => ReactNode) | ReactNode;
89
+ emptyAction?: ((params: ComboboxCallbackStateParams<Data, T>) => ReactNode) | ReactNode;
43
90
  /** Command Input footer action */
44
- commandInputAction?: ((params: ComboboxCallbackStateParams) => ReactNode) | ReactNode;
91
+ commandInputAction?: ((params: ComboboxCallbackStateParams<Data, T>) => ReactNode) | ReactNode;
45
92
  /** Command List first element action */
46
- listHeadAction?: ((params: ComboboxCallbackStateParams) => ReactNode) | ReactNode;
93
+ listHeadAction?: ((params: ComboboxCallbackStateParams<Data, T>) => ReactNode) | ReactNode;
94
+ /** Command List footer element action */
95
+ listFooterAction?: ((params: ComboboxCallbackStateParams<Data, T>) => ReactNode) | ReactNode;
47
96
  /** Callback for load data on start component */
48
- onMount?: (params: ComboboxCallbackStateParams) => Promise<void>;
97
+ onMount?: (params: ComboboxCallbackStateParams<Data, T>) => Promise<void>;
98
+ renderTrigger?: (params: ComboboxCallbackStateParams<Data, T>) => ReactNode;
99
+ renderList?: (params: ComboboxCallbackStateParams<Data, T>) => ReactNode;
100
+ slotProps?: ISlotProps;
101
+ }
102
+ export interface SingleComboboxProps<Data extends object = object> extends ComboboxBaseProps<Data, 'single'> {
103
+ type?: 'single';
104
+ value?: string;
105
+ onChange: (value: string | undefined) => void;
106
+ }
107
+ export interface MultiComboboxProps<Data extends object = object> extends ComboboxBaseProps<Data, 'multi'> {
108
+ type: 'multi';
109
+ value?: string[];
110
+ onChange: (value: string[] | undefined) => void;
49
111
  }
112
+ export type ComboboxProps<Data extends object = object, T extends ComboboxSelectedType = 'single'> = T extends 'single' ? SingleComboboxProps<Data> : MultiComboboxProps<Data>;
113
+ export {};
50
114
  //# sourceMappingURL=Combobox.types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Combobox.types.d.ts","sourceRoot":"","sources":["../../src/Combobox/Combobox.types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AAE5D,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,cAAc,EAAE,CAAC;CAC1B;AAED,MAAM,WAAW,2BAA2B;IAC1C,OAAO,EAAE,cAAc,EAAE,CAAC;IAC1B,UAAU,EAAG,QAAQ,CAAC,cAAc,CAAC,cAAc,EAAE,CAAC,CAAC,CAAA;IACvD,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,iBAAiB,EAAG,QAAQ,CAAC,cAAc,CAAC,cAAc,GAAG,SAAS,CAAC,CAAC,CAAA;IACxE,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAG,QAAQ,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAA;IAC5C,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,EAAE,QAAQ,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC;IAC3C,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,QAAQ,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC;IAC9C,WAAW,EAAE,OAAO,CAAC;IACrB,mBAAmB,EAAE,OAAO,CAAC;CAC9B;AAED,MAAM,WAAW,yBAAyB;IACxC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,cAAc,CAAC;IACvB,cAAc,CAAC,EAAE,CAAC,MAAM,EAAE,cAAc,KAAK,IAAI,CAAC;IAClD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,QAAQ,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAA;CAC3C;AAED,MAAM,WAAW,qBACf,SAAQ,IAAI,CAAC,yBAAyB,EAAE,QAAQ,CAAC;IACjD,OAAO,CAAC,EAAE,cAAc,EAAE,CAAC;CAC5B;AAED,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,YAAY,EAAE,CAAC,MAAM,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,cAAc,EAAE,CAAC,CAAC;IAC7D,OAAO,CAAC,EAAE,cAAc,EAAE,CAAC;IAC3B,8BAA8B;IAC9B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,gCAAgC;IAChC,WAAW,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,2BAA2B,KAAK,SAAS,CAAC,GAAG,SAAS,CAAC;IAC/E,kCAAkC;IAClC,kBAAkB,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,2BAA2B,KAAK,SAAS,CAAC,GAAG,SAAS,CAAC;IACtF,wCAAwC;IACxC,cAAc,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,2BAA2B,KAAK,SAAS,CAAC,GAAG,SAAS,CAAC;IAClF,gDAAgD;IAChD,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,2BAA2B,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CAClE"}
1
+ {"version":3,"file":"Combobox.types.d.ts","sourceRoot":"","sources":["../../src/Combobox/Combobox.types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,SAAS,EAAE,GAAG,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AAEjF,MAAM,MAAM,iBAAiB,GAAG,MAAM,GAAG,MAAM,EAAE,CAAC;AAClD,MAAM,MAAM,oBAAoB,GAAG,QAAQ,GAAG,OAAO,CAAC;AAEtD,eAAO,MAAM,qBAAqB,EAAE,oBAA+B,CAAC;AAEpE,MAAM,WAAW,cAAc,CAAC,IAAI,SAAS,MAAM,GAAG,MAAM;IAC1D,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,IAAI,CAAC;IAEZ,KAAK,CAAC,EAAE,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC;IAC/B,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,2BAA2B,CAC1C,IAAI,SAAS,MAAM,GAAG,MAAM,EAC5B,CAAC,SAAS,oBAAoB,GAAG,QAAQ;IAEzC,OAAO,EAAE,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC;IAChC,UAAU,EAAG,QAAQ,CAAC,cAAc,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAA;IAC7D,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAG,QAAQ,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAA;IAC5C,cAAc,EAAE,CAAC,MAAM,EAAE,cAAc,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC;IACvD,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,EAAE,QAAQ,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC;IAC3C,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,QAAQ,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC;IAC9C,WAAW,EAAE,OAAO,CAAC;IACrB,mBAAmB,EAAE,OAAO,CAAC;IAC7B,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,IAAI,EAAE,CAAC,CAAC;IACR,cAAc,EAAE,CAAC,SAAS,QAAQ,GAC9B,cAAc,CAAC,IAAI,CAAC,GAAG,SAAS,GAChC,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC;IAC3B,iBAAiB,EAAE,CAAC,SAAS,QAAQ,GACjC,QAAQ,CAAC,cAAc,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,CAAC,GAC1D,QAAQ,CAAC,cAAc,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,GAAG,SAAS,CAAC,CAAC,CAAC;CAClE;AAED,MAAM,MAAM,gCAAgC,CAAC,IAAI,SAAS,MAAM,GAAG,MAAM,IAAI,2BAA2B,CAAC,IAAI,EAAE,QAAQ,CAAC,GAAI,2BAA2B,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;AACtK,MAAM,MAAM,wCAAwC,CAAC,IAAI,SAAS,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,EAAC,gCAAgC,CAAC,IAAI,CAAC,KAAK,SAAS,CAAA;AAEjJ,MAAM,WAAW,iCAAiC,CAAC,IAAI,SAAS,MAAM,GAAG,MAAM;IAC7E,eAAe,CAAC,EAAE,OAAO,GAAG,CAAC,CAAC,MAAM,EAAE,cAAc,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,KAAK,OAAO,GAAG,SAAS,CAAC,CAAC;IAClG,mBAAmB,CAAC,EAAE,OAAO,GAAG,CAAC,CAAC,MAAM,EAAE,cAAc,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,KAAK,OAAO,GAAG,SAAS,CAAC,CAAC;IACtG,kBAAkB,CAAC,EAAE,OAAO,GAAG,CAAC,CAAC,MAAM,EAAE,cAAc,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,KAAK,OAAO,GAAG,SAAS,CAAC,CAAC;IACrG,gBAAgB,CAAC,EAAE,OAAO,GAAG,CAAC,CAAC,MAAM,EAAE,cAAc,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,KAAK,OAAO,GAAG,SAAS,CAAC,CAAC;IACnG,sBAAsB,CAAC,EAAE,OAAO,GAAG,CAAC,CAAC,MAAM,EAAE,cAAc,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,KAAK,OAAO,GAAG,SAAS,CAAC,CAAC;IACzG,qFAAqF;IACrF,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAC9B;AAED,MAAM,WAAW,yBAAyB,CAAC,IAAI,SAAS,MAAM,GAAG,MAAM,CACrE,SAAQ,iCAAiC,CAAC,IAAI,CAAC;IAC/C,IAAI,EAAE,oBAAoB,CAAC;IAC3B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,iBAAiB,CAAC;IAC1B,MAAM,EAAE,cAAc,CAAC,IAAI,CAAC,CAAC;IAC7B,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,cAAc,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC;IAClD,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,qBAAqB,CAAC,IAAI,SAAS,MAAM,GAAG,MAAM,CACjE,SAAQ,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,EAAE,QAAQ,CAAC,EAAE,iCAAiC,CAAC,IAAI,CAAC;IAChG,OAAO,CAAC,EAAE,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC;CAClC;AAED,UAAU,gBAAiB,SAAQ,cAAc,CAAC,cAAc,CAAC;IAC/D,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AACD,UAAU,iBAAiB;IACzB,iFAAiF;IACjF,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,+EAA+E;IAC/E,SAAS,CAAC,EAAE,WAAW,GAAG,IAAI,CAAC;CAChC;AAED,MAAM,WAAW,UAAU;IACzB,OAAO,CAAC,EAAE,iBAAiB,CAAC;IAC5B,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;CACrC;AAED,KAAK,sBAAsB,GAAG;IAAE,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;CAAE,CAAA;AACnE,KAAK,sBAAsB,CAAC,IAAI,SAAS,MAAM,GAAG,MAAM,IAAI;IAAE,IAAI,EAAE,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;CAAE,CAAA;AAC5G,KAAK,sBAAsB,CAAC,IAAI,SAAS,MAAM,GAAG,MAAM,IAAI,cAAc,CAAC,IAAI,CAAC,EAAE,GAAG,sBAAsB,CAAC,IAAI,CAAC,CAAC;AAClH,KAAK,gBAAgB,CAAC,IAAI,SAAS,MAAM,GAAG,MAAM,IAAI,CACpD,MAAM,EAAE,sBAAsB,EAC9B,MAAM,EAAE,WAAW,EACnB,UAAU,EAAE,2BAA2B,CAAC,IAAI,EAAE,QAAQ,CAAC,GAAG,2BAA2B,CAAC,IAAI,EAAE,OAAO,CAAC,KACjG,OAAO,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAC,CAAC;AAE3C,MAAM,WAAW,iBAAiB,CAChC,IAAI,SAAS,MAAM,GAAG,MAAM,EAC5B,CAAC,SAAS,oBAAoB,GAAG,QAAQ,CACzC,SAAQ,iCAAiC;IACzC,IAAI,CAAC,EAAE,CAAC,CAAC;IACT,aAAa,CAAC,EAAE,GAAG,CACjB,2BAA2B,CAAC,IAAI,EAAE,QAAQ,CAAC,GACzC,2BAA2B,CAAC,IAAI,EAAE,OAAO,CAAC,GAC1C,IAAI,CACP,CAAC;IACF,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,gDAAgD;IAChD,QAAQ,EAAE,gBAAgB,CAAC,IAAI,CAAC,CAAC;IACjC,OAAO,CAAC,EAAE,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC;IACjC,8BAA8B;IAC9B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,gCAAgC;IAChC,WAAW,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,2BAA2B,CAAC,IAAI,EAAE,CAAC,CAAC,KAAK,SAAS,CAAC,GAAG,SAAS,CAAC;IACxF,kCAAkC;IAClC,kBAAkB,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,2BAA2B,CAAC,IAAI,EAAE,CAAC,CAAC,KAAK,SAAS,CAAC,GAAG,SAAS,CAAC;IAC/F,wCAAwC;IACxC,cAAc,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,2BAA2B,CAAC,IAAI,EAAE,CAAC,CAAC,KAAK,SAAS,CAAC,GAAG,SAAS,CAAC;IAC3F,yCAAyC;IACzC,gBAAgB,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,2BAA2B,CAAC,IAAI,EAAE,CAAC,CAAC,KAAK,SAAS,CAAC,GAAG,SAAS,CAAC;IAC7F,gDAAgD;IAChD,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,2BAA2B,CAAC,IAAI,EAAE,CAAC,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAE1E,aAAa,CAAC,EAAE,CAAC,MAAM,EAAE,2BAA2B,CAAC,IAAI,EAAE,CAAC,CAAC,KAAK,SAAS,CAAC;IAC5E,UAAU,CAAC,EAAE,CAAC,MAAM,EAAE,2BAA2B,CAAC,IAAI,EAAE,CAAC,CAAC,KAAK,SAAS,CAAC;IAEzE,SAAS,CAAC,EAAE,UAAU,CAAC;CACxB;AAED,MAAM,WAAW,mBAAmB,CAAC,IAAI,SAAS,MAAM,GAAG,MAAM,CAC/D,SAAQ,iBAAiB,CAAC,IAAI,EAAE,QAAQ,CAAC;IACzC,IAAI,CAAC,EAAE,QAAQ,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,KAAK,IAAI,CAAC;CAC/C;AACD,MAAM,WAAW,kBAAkB,CAAC,IAAI,SAAS,MAAM,GAAG,MAAM,CAC9D,SAAQ,iBAAiB,CAAC,IAAI,EAAE,OAAO,CAAC;IACxC,IAAI,EAAE,OAAO,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,SAAS,KAAK,IAAI,CAAC;CACjD;AAED,MAAM,MAAM,aAAa,CACvB,IAAI,SAAS,MAAM,GAAG,MAAM,EAC5B,CAAC,SAAS,oBAAoB,GAAG,QAAQ,IACvC,CAAC,SAAS,QAAQ,GAClB,mBAAmB,CAAC,IAAI,CAAC,GACzB,kBAAkB,CAAC,IAAI,CAAC,CAAC"}
@@ -1,2 +1,5 @@
1
-
1
+ const O = "single";
2
+ export {
3
+ O as DEFAULT_COMBOBOX_TYPE
4
+ };
2
5
  //# sourceMappingURL=Combobox.types.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Combobox.types.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
1
+ {"version":3,"file":"Combobox.types.js","sources":["../../src/Combobox/Combobox.types.ts"],"sourcesContent":["import { Dispatch, HTMLAttributes, ReactNode, Ref, SetStateAction } from 'react';\r\n\r\nexport type ComboboxValueType = string | string[];\r\nexport type ComboboxSelectedType = 'single' | 'multi';\r\n\r\nexport const DEFAULT_COMBOBOX_TYPE: ComboboxSelectedType = 'single';\r\n\r\nexport interface ComboboxOption<Data extends object = object> {\r\n value: string;\r\n label: string;\r\n node?: Data;\r\n // tree only\r\n items?: ComboboxOption<Data>[];\r\n path?: string[];\r\n parent?: string;\r\n level?: number;\r\n matched?: boolean;\r\n}\r\n\r\nexport interface ComboboxCallbackStateParams<\r\n Data extends object = object,\r\n T extends ComboboxSelectedType = 'single'\r\n> {\r\n options: ComboboxOption<Data>[];\r\n setOptions: Dispatch<SetStateAction<ComboboxOption<Data>[]>>\r\n search: string;\r\n setSearch: Dispatch<SetStateAction<string>>\r\n onChangeOption: (option: ComboboxOption<Data>) => void;\r\n open: boolean,\r\n setOpen: Dispatch<SetStateAction<boolean>>;\r\n loading: boolean;\r\n setLoading: Dispatch<SetStateAction<boolean>>;\r\n isEmptyList: boolean;\r\n isSearchedEmptyList: boolean;\r\n placeholder?: string;\r\n\r\n type: T;\r\n selectedOption: T extends 'single'\r\n ? ComboboxOption<Data> | undefined\r\n : ComboboxOption<Data>[];\r\n setSelectedOption: T extends 'single'\r\n ? Dispatch<SetStateAction<ComboboxOption<Data> | undefined>>\r\n : Dispatch<SetStateAction<ComboboxOption<Data>[] | undefined>>;\r\n}\r\n\r\nexport type ComboboxCallbackStateParamsUnion<Data extends object = object> = ComboboxCallbackStateParams<Data, 'single'> | ComboboxCallbackStateParams<Data, 'multi'>\r\nexport type ComboboxCallbackStateParamsRenderHandler<Data extends object = object> = (params:ComboboxCallbackStateParamsUnion<Data>) => ReactNode\r\n\r\nexport interface IComboboxOptionsNodeHandlersProps<Data extends object = object> {\r\n defaultNodeOpen?: boolean | ((option: ComboboxOption<Data>, deep: number) => boolean | undefined);\r\n defaultNodeDisabled?: boolean | ((option: ComboboxOption<Data>, deep: number) => boolean | undefined);\r\n defaultNodeMatched?: boolean | ((option: ComboboxOption<Data>, deep: number) => boolean | undefined);\r\n defaultNodeMuted?: boolean | ((option: ComboboxOption<Data>, deep: number) => boolean | undefined);\r\n defaultNodeInteractive?: boolean | ((option: ComboboxOption<Data>, deep: number) => boolean | undefined);\r\n /** Use onPointerUp instead of cmdk onSelect. Fixes selection inside modal Dialog. */\r\n forcePointerSelect?: boolean;\r\n}\r\n\r\nexport interface IComboboxOptionsNodeProps<Data extends object = object>\r\n extends IComboboxOptionsNodeHandlersProps<Data> {\r\n type: ComboboxSelectedType,\r\n search?: string;\r\n value?: ComboboxValueType;\r\n option: ComboboxOption<Data>;\r\n onSelect?: (option: ComboboxOption<Data>) => void;\r\n deep?: number;\r\n}\r\n\r\nexport interface IComboboxOptionsProps<Data extends object = object>\r\n extends Omit<IComboboxOptionsNodeProps<Data>, 'option'>, IComboboxOptionsNodeHandlersProps<Data> {\r\n options?: ComboboxOption<Data>[];\r\n}\r\n\r\ninterface IListActionProps extends HTMLAttributes<HTMLDivElement> {\r\n bordered?: boolean;\r\n}\r\ninterface IPopoverSlotProps {\r\n /** Set Popover modal mode. Use `true` when Combobox is inside a modal Dialog. */\r\n modal?: boolean;\r\n /** Container element for Popover portal. Use to render inside modal Dialog. */\r\n container?: HTMLElement | null;\r\n}\r\n\r\nexport interface ISlotProps {\r\n popover?: IPopoverSlotProps;\r\n listFooterAction?: IListActionProps;\r\n}\r\n\r\ntype ComboboxLoadDataParams = { search?: string; offset?: number; }\r\ntype ComboboxLoadDataResult<Data extends object = object> = { data: ComboboxOption<Data>[]; total: number; }\r\ntype ComboboxLoadDataReturn<Data extends object = object> = ComboboxOption<Data>[] | ComboboxLoadDataResult<Data>;\r\ntype ComboboxLoadData<Data extends object = object> = (\r\n params: ComboboxLoadDataParams,\r\n signal: AbortSignal,\r\n controller: ComboboxCallbackStateParams<Data, 'single'> | ComboboxCallbackStateParams<Data, 'multi'>\r\n) => Promise<ComboboxLoadDataReturn<Data>>;\r\n\r\nexport interface ComboboxBaseProps<\r\n Data extends object = object,\r\n T extends ComboboxSelectedType = 'single'\r\n> extends IComboboxOptionsNodeHandlersProps {\r\n type?: T;\r\n imperativeRef?: Ref<\r\n ComboboxCallbackStateParams<Data, 'single'>\r\n | ComboboxCallbackStateParams<Data, 'multi'>\r\n | null\r\n >;\r\n placeholder?: string;\r\n searchLabel?: string;\r\n disabled?: boolean;\r\n /** Callback for load data on search debounce */\r\n loadData: ComboboxLoadData<Data>;\r\n options?: ComboboxOption<Data>[];\r\n /** Command Empty list label*/\r\n emptyLabel?: string;\r\n /** Command Empty list action */\r\n emptyAction?: ((params: ComboboxCallbackStateParams<Data, T>) => ReactNode) | ReactNode;\r\n /** Command Input footer action */\r\n commandInputAction?: ((params: ComboboxCallbackStateParams<Data, T>) => ReactNode) | ReactNode;\r\n /** Command List first element action */\r\n listHeadAction?: ((params: ComboboxCallbackStateParams<Data, T>) => ReactNode) | ReactNode;\r\n /** Command List footer element action */\r\n listFooterAction?: ((params: ComboboxCallbackStateParams<Data, T>) => ReactNode) | ReactNode;\r\n /** Callback for load data on start component */\r\n onMount?: (params: ComboboxCallbackStateParams<Data, T>) => Promise<void>;\r\n\r\n renderTrigger?: (params: ComboboxCallbackStateParams<Data, T>) => ReactNode;\r\n renderList?: (params: ComboboxCallbackStateParams<Data, T>) => ReactNode;\r\n\r\n slotProps?: ISlotProps;\r\n}\r\n\r\nexport interface SingleComboboxProps<Data extends object = object>\r\n extends ComboboxBaseProps<Data, 'single'> {\r\n type?: 'single';\r\n value?: string;\r\n onChange: (value: string | undefined) => void;\r\n}\r\nexport interface MultiComboboxProps<Data extends object = object>\r\n extends ComboboxBaseProps<Data, 'multi'> {\r\n type: 'multi';\r\n value?: string[];\r\n onChange: (value: string[] | undefined) => void;\r\n}\r\n\r\nexport type ComboboxProps<\r\n Data extends object = object,\r\n T extends ComboboxSelectedType = 'single'\r\n> = T extends 'single'\r\n ? SingleComboboxProps<Data>\r\n : MultiComboboxProps<Data>;\r\n"],"names":["DEFAULT_COMBOBOX_TYPE"],"mappings":"AAKO,MAAMA,IAA8C;"}
@@ -1,5 +1,7 @@
1
+ import { PropsWithChildren } from 'react';
1
2
  import { IComboboxOptionsNodeProps } from './Combobox.types';
2
- export declare const ComboboxOptionItem: import('react').ForwardRefExoticComponent<IComboboxOptionsNodeProps & {
3
- children?: import('react').ReactNode | undefined;
4
- } & import('react').RefAttributes<HTMLDivElement>>;
3
+ export declare const ComboboxOptionItem: <Data extends object>(props: PropsWithChildren<IComboboxOptionsNodeProps<Data>> & {
4
+ onCollapseToggle?: () => void;
5
+ expanded?: boolean;
6
+ }) => import("react/jsx-runtime").JSX.Element;
5
7
  //# sourceMappingURL=ComboboxOptionItem.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ComboboxOptionItem.d.ts","sourceRoot":"","sources":["../../src/Combobox/ComboboxOptionItem.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,yBAAyB,EAAE,MAAM,kBAAkB,CAAC;AAM7D,eAAO,MAAM,kBAAkB;;kDAsC7B,CAAC"}
1
+ {"version":3,"file":"ComboboxOptionItem.d.ts","sourceRoot":"","sources":["../../src/Combobox/ComboboxOptionItem.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAiB,iBAAiB,EAAE,MAAM,OAAO,CAAC;AAEzD,OAAO,EAAyB,yBAAyB,EAAE,MAAM,kBAAkB,CAAC;AAcpF,eAAO,MAAM,kBAAkB,GAAI,IAAI,SAAS,MAAM,EACpD,OAAO,iBAAiB,CAAC,yBAAyB,CAAC,IAAI,CAAC,CAAC,GAAG;IAC1D,gBAAgB,CAAC,EAAE,MAAM,IAAI,CAAC;IAC9B,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,4CA2HF,CAAA"}
@@ -1,38 +1,95 @@
1
- import { jsxs as s, jsx as a } from "react/jsx-runtime";
2
- import { forwardRef as c } from "react";
3
- import { CommandItem as f } from "../Command/Command.js";
4
- import { Check as d } from "lucide-react";
5
- import { cn as t } from "@oneplatformdev/utils";
6
- const u = 8, C = c((i, n) => {
7
- const { children: r, setOpen: m, option: e, onChangeOption: o, value: l = "", deep: p = 0 } = i;
8
- return /* @__PURE__ */ s(
9
- f,
1
+ import { jsxs as b, jsx as a } from "react/jsx-runtime";
2
+ import { DEFAULT_COMBOBOX_TYPE as g } from "./Combobox.types.js";
3
+ import { ChevronRightIcon as N, CheckIcon as x } from "lucide-react";
4
+ import { cn as r } from "@oneplatformdev/utils";
5
+ import { CommandItem as D } from "../Command/Command.js";
6
+ import { ButtonIcon as k } from "../ButtonIcon/ButtonIcon.js";
7
+ import { Checkbox as C } from "../Checkbox/Checkbox.js";
8
+ const E = 24, P = 8, I = (c) => c ? Math.max(c - 1, 0) * E - P : 0, F = (c) => {
9
+ const {
10
+ type: s = g,
11
+ expanded: h,
12
+ option: e,
13
+ onSelect: y,
14
+ value: l = "",
15
+ deep: t = 0,
16
+ onCollapseToggle: i,
17
+ defaultNodeDisabled: p,
18
+ defaultNodeMatched: d,
19
+ defaultNodeMuted: f,
20
+ defaultNodeInteractive: o,
21
+ forcePointerSelect: u
22
+ } = c, m = Array.isArray(l) ? l.includes(e.value) : l === e.value, v = () => {
23
+ if (!(typeof o == "function" ? o(e, t) : o ?? !0)) return i?.();
24
+ y?.(e);
25
+ };
26
+ return /* @__PURE__ */ b(
27
+ D,
10
28
  {
11
- ref: n,
12
29
  value: e.value,
13
- onSelect: () => {
14
- l === e.value ? o?.({ value: "", label: "" }) : o?.(e), m(!1);
30
+ "data-matched": e.matched ?? !0,
31
+ onSelect: u ? void 0 : v,
32
+ onPointerUp: u ? v : void 0,
33
+ onClick: (n) => {
34
+ (typeof o == "function" ? o(e, t) : o ?? !0) || (n?.preventDefault(), n?.stopPropagation());
15
35
  },
36
+ className: r("py-0 gap-0", t && "pl-0"),
16
37
  style: {
17
- paddingLeft: (p + 1) * u
38
+ "--deep-space": `${I(t)}px`
18
39
  },
40
+ disabled: typeof p == "function" ? p(e, t) : p ?? !1,
19
41
  children: [
20
- r,
42
+ !!t && /* @__PURE__ */ a(
43
+ "div",
44
+ {
45
+ style: { paddingLeft: "var(--deep-space)" },
46
+ className: "relative box-border min-w-10 h-10",
47
+ onClick: (n) => {
48
+ i && (n?.preventDefault(), n?.stopPropagation(), i?.());
49
+ },
50
+ children: /* @__PURE__ */ a("div", { className: "w-10 aspect-square shrink-0", children: i && /* @__PURE__ */ a(
51
+ k,
52
+ {
53
+ type: "button",
54
+ variant: "ghost",
55
+ color: "secondary",
56
+ className: r(
57
+ "bg-transparent hover:bg-transparent active:bg-transparent focus:bg-transparent"
58
+ ),
59
+ icon: /* @__PURE__ */ a(
60
+ N,
61
+ {
62
+ strokeWidth: 2,
63
+ className: r(
64
+ "text-[#06080D]",
65
+ "transition-transform duration-200",
66
+ h && "rotate-90"
67
+ )
68
+ }
69
+ )
70
+ }
71
+ ) })
72
+ }
73
+ ),
74
+ s === "multi" && /* @__PURE__ */ a(C, { checked: m, className: "mr-2 shrink-0" }),
21
75
  /* @__PURE__ */ a(
22
76
  "span",
23
77
  {
24
- className: t(
25
- "overflow-hidden whitespace-wrap text-ellipsis line-clamp-2"
78
+ className: r(
79
+ "overflow-hidden whitespace-wrap text-ellipsis line-clamp-2 grow",
80
+ (typeof d == "function" ? d(e, t) : d ?? !1) && "font-bold",
81
+ (typeof f == "function" ? f(e, t) : f ?? !1) && "opacity-60",
82
+ !(typeof o == "function" ? o(e, t) : o ?? !0) && "pointer-events-none"
26
83
  ),
27
84
  children: e.label
28
85
  }
29
86
  ),
30
- /* @__PURE__ */ a(
31
- d,
87
+ s === "single" && /* @__PURE__ */ a(
88
+ x,
32
89
  {
33
- className: t(
34
- "ml-auto",
35
- l === e.value ? "opacity-100" : "opacity-0"
90
+ className: r(
91
+ "ml-2 shrink-0",
92
+ m ? "opacity-100" : "opacity-0"
36
93
  )
37
94
  }
38
95
  )
@@ -40,8 +97,8 @@ const u = 8, C = c((i, n) => {
40
97
  },
41
98
  e.value
42
99
  );
43
- });
100
+ };
44
101
  export {
45
- C as ComboboxOptionItem
102
+ F as ComboboxOptionItem
46
103
  };
47
104
  //# sourceMappingURL=ComboboxOptionItem.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ComboboxOptionItem.js","sources":["../../src/Combobox/ComboboxOptionItem.tsx"],"sourcesContent":["import { forwardRef, PropsWithChildren } from 'react';\nimport { CommandItem } from '../Command';\nimport { IComboboxOptionsNodeProps } from './Combobox.types';\nimport { Check } from 'lucide-react';\nimport { cn } from '@oneplatformdev/utils';\n\nconst DEEP_OFFSET = 8;\n\nexport const ComboboxOptionItem = forwardRef<\n HTMLDivElement,\n PropsWithChildren<IComboboxOptionsNodeProps>\n>((props, ref) => {\n const { children, setOpen, option, onChangeOption, value = '', deep = 0 } = props;\n return (\n <CommandItem\n ref={ref}\n key={option.value}\n value={option.value}\n onSelect={() => {\n if (value === option.value) {\n onChangeOption?.({ value: '', label: '' });\n } else {\n onChangeOption?.(option);\n }\n setOpen(false);\n }}\n style={{\n paddingLeft: (deep + 1) * DEEP_OFFSET,\n }}\n >\n {children}\n <span\n className={cn(\n 'overflow-hidden whitespace-wrap text-ellipsis line-clamp-2'\n )}\n >\n {option.label}\n </span>\n <Check\n className={cn(\n 'ml-auto',\n value === option.value ? 'opacity-100' : 'opacity-0'\n )}\n />\n </CommandItem>\n );\n});\n"],"names":["DEEP_OFFSET","ComboboxOptionItem","forwardRef","props","ref","children","setOpen","option","onChangeOption","value","deep","jsxs","CommandItem","jsx","cn","Check"],"mappings":";;;;;AAMA,MAAMA,IAAc,GAEPC,IAAqBC,EAGhC,CAACC,GAAOC,MAAQ;AAChB,QAAM,EAAE,UAAAC,GAAU,SAAAC,GAAS,QAAAC,GAAQ,gBAAAC,GAAgB,OAAAC,IAAQ,IAAI,MAAAC,IAAO,EAAA,IAAMP;AAC5E,SACE,gBAAAQ;AAAA,IAACC;AAAA,IAAA;AAAA,MACC,KAAAR;AAAA,MAEA,OAAOG,EAAO;AAAA,MACd,UAAU,MAAM;AACd,QAAIE,MAAUF,EAAO,QACnBC,IAAiB,EAAE,OAAO,IAAI,OAAO,IAAI,IAEzCA,IAAiBD,CAAM,GAEzBD,EAAQ,EAAK;AAAA,MACf;AAAA,MACA,OAAO;AAAA,QACL,cAAcI,IAAO,KAAKV;AAAA,MAAA;AAAA,MAG3B,UAAA;AAAA,QAAAK;AAAA,QACD,gBAAAQ;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,WAAWC;AAAA,cACT;AAAA,YAAA;AAAA,YAGD,UAAAP,EAAO;AAAA,UAAA;AAAA,QAAA;AAAA,QAEV,gBAAAM;AAAA,UAACE;AAAA,UAAA;AAAA,YACC,WAAWD;AAAA,cACT;AAAA,cACAL,MAAUF,EAAO,QAAQ,gBAAgB;AAAA,YAAA;AAAA,UAC3C;AAAA,QAAA;AAAA,MACF;AAAA,IAAA;AAAA,IA3BKA,EAAO;AAAA,EAAA;AA8BlB,CAAC;"}
1
+ {"version":3,"file":"ComboboxOptionItem.js","sources":["../../src/Combobox/ComboboxOptionItem.tsx"],"sourcesContent":["import { CSSProperties, PropsWithChildren } from 'react';\r\nimport { CommandItem } from '../Command';\r\nimport { DEFAULT_COMBOBOX_TYPE, IComboboxOptionsNodeProps } from './Combobox.types';\r\nimport { CheckIcon, ChevronRightIcon } from 'lucide-react';\r\nimport { cn } from '@oneplatformdev/utils';\r\nimport { Checkbox } from \"../Checkbox\";\r\nimport { ButtonIcon } from \"../ButtonIcon\";\r\n\r\nconst DEEP_OFFSET = 24;\r\nconst DEEP_PADDING_DELTA = 8;\r\nconst calcDeepSpace = (deep: number) => {\r\n if(!deep) return 0;\r\n const space = Math.max(deep - 1, 0) * DEEP_OFFSET;\r\n return space - DEEP_PADDING_DELTA;\r\n}\r\n\r\nexport const ComboboxOptionItem = <Data extends object>(\r\n props: PropsWithChildren<IComboboxOptionsNodeProps<Data>> & {\r\n onCollapseToggle?: () => void;\r\n expanded?: boolean;\r\n }\r\n) => {\r\n const {\r\n type = DEFAULT_COMBOBOX_TYPE,\r\n expanded,\r\n option,\r\n onSelect,\r\n value = '',\r\n deep = 0,\r\n onCollapseToggle,\r\n defaultNodeDisabled,\r\n defaultNodeMatched,\r\n defaultNodeMuted,\r\n defaultNodeInteractive,\r\n forcePointerSelect,\r\n } = props;\r\n\r\n const isSelected = Array.isArray(value)\r\n ? value.includes(option.value)\r\n : value === option.value;\r\n\r\n const handleSelect = () => {\r\n const interactive = typeof defaultNodeInteractive === \"function\"\r\n ? defaultNodeInteractive(option, deep)\r\n : defaultNodeInteractive ?? true;\r\n if (!interactive) return onCollapseToggle?.();\r\n onSelect?.(option);\r\n };\r\n\r\n return (\r\n <CommandItem\r\n key={option.value}\r\n value={option.value}\r\n data-matched={option.matched ?? true}\r\n onSelect={forcePointerSelect ? undefined : handleSelect}\r\n onPointerUp={forcePointerSelect ? handleSelect : undefined}\r\n onClick={(e) => {\r\n const interactive = typeof defaultNodeInteractive === \"function\"\r\n ? defaultNodeInteractive(option, deep)\r\n : defaultNodeInteractive ?? true\r\n\r\n if(!interactive) {\r\n e?.preventDefault();\r\n e?.stopPropagation();\r\n }\r\n }}\r\n className={cn('py-0 gap-0', deep && 'pl-0')}\r\n style={{\r\n '--deep-space': `${calcDeepSpace(deep)}px`,\r\n } as CSSProperties}\r\n disabled={typeof defaultNodeDisabled === \"function\"\r\n ? defaultNodeDisabled(option, deep)\r\n : defaultNodeDisabled ?? false}\r\n >\r\n {!!deep && (\r\n <div\r\n style={{ paddingLeft: 'var(--deep-space)' }}\r\n className='relative box-border min-w-10 h-10'\r\n onClick={(e) => {\r\n if(!onCollapseToggle) return;\r\n e?.preventDefault();\r\n e?.stopPropagation();\r\n onCollapseToggle?.();\r\n }}\r\n >\r\n <div className='w-10 aspect-square shrink-0'>\r\n {onCollapseToggle && (\r\n <ButtonIcon\r\n type=\"button\"\r\n variant=\"ghost\"\r\n color='secondary'\r\n className={cn(\r\n 'bg-transparent hover:bg-transparent active:bg-transparent focus:bg-transparent'\r\n )}\r\n icon={(\r\n <ChevronRightIcon\r\n strokeWidth={2}\r\n className={cn(\r\n 'text-[#06080D]',\r\n 'transition-transform duration-200',\r\n expanded && 'rotate-90',\r\n )}\r\n />\r\n )}\r\n />\r\n )}\r\n </div>\r\n </div>\r\n )}\r\n {type === 'multi' && <Checkbox checked={isSelected} className='mr-2 shrink-0'/>}\r\n <span\r\n className={cn(\r\n 'overflow-hidden whitespace-wrap text-ellipsis line-clamp-2 grow',\r\n (() => {\r\n return typeof defaultNodeMatched === \"function\"\r\n ? defaultNodeMatched(option, deep)\r\n : defaultNodeMatched ?? false\r\n })() && 'font-bold',\r\n (() => {\r\n return typeof defaultNodeMuted === \"function\"\r\n ? defaultNodeMuted(option, deep)\r\n : defaultNodeMuted ?? false\r\n })() && 'opacity-60',\r\n (() => {\r\n const res = typeof defaultNodeInteractive === \"function\"\r\n ? defaultNodeInteractive(option, deep)\r\n : defaultNodeInteractive ?? true\r\n return !res;\r\n })() && 'pointer-events-none',\r\n )}\r\n >\r\n {option.label}\r\n </span>\r\n {type === 'single' && (\r\n <CheckIcon\r\n className={cn(\r\n 'ml-2 shrink-0',\r\n isSelected ? 'opacity-100' : 'opacity-0'\r\n )}\r\n />\r\n )}\r\n </CommandItem>\r\n );\r\n}\r\n"],"names":["DEEP_OFFSET","DEEP_PADDING_DELTA","calcDeepSpace","deep","ComboboxOptionItem","props","type","DEFAULT_COMBOBOX_TYPE","expanded","option","onSelect","value","onCollapseToggle","defaultNodeDisabled","defaultNodeMatched","defaultNodeMuted","defaultNodeInteractive","forcePointerSelect","isSelected","handleSelect","jsxs","CommandItem","e","cn","jsx","ButtonIcon","ChevronRightIcon","Checkbox","CheckIcon"],"mappings":"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"}
@@ -0,0 +1,28 @@
1
+ import { ComboboxCallbackStateParamsRenderHandler, ComboboxCallbackStateParamsUnion, ComboboxOption, ComboboxProps, ComboboxSelectedType, IComboboxOptionsNodeHandlersProps, ISlotProps } from './Combobox.types';
2
+ type ComboboxRenderContentProps<Data extends object = object> = IComboboxOptionsNodeHandlersProps<Data> & {
3
+ open?: boolean;
4
+ type: ComboboxSelectedType;
5
+ value: ComboboxProps<Data, 'single'>['value'] | ComboboxProps<Data, 'multi'>['value'];
6
+ hasNext: boolean;
7
+ loading: boolean;
8
+ loadingMore: boolean;
9
+ options: ComboboxOption<Data>[];
10
+ search?: string;
11
+ onSearch?: (term: string) => void;
12
+ isEmptyList?: boolean;
13
+ onSelect?: (option: ComboboxOption<Data>) => void;
14
+ searchLabel?: string;
15
+ emptyLabel?: string;
16
+ callbackStateParams: ComboboxCallbackStateParamsUnion<Data>;
17
+ commandInputAction?: ComboboxCallbackStateParamsRenderHandler<Data>;
18
+ renderList?: ComboboxCallbackStateParamsRenderHandler<Data>;
19
+ listHeadAction?: ComboboxCallbackStateParamsRenderHandler<Data>;
20
+ listFooterAction?: ComboboxCallbackStateParamsRenderHandler<Data>;
21
+ emptyAction?: ComboboxCallbackStateParamsRenderHandler<Data>;
22
+ slotProps?: ISlotProps;
23
+ popoverContainer?: HTMLElement | null;
24
+ onLoadMore?: () => Promise<void>;
25
+ };
26
+ export declare const ComboboxRenderContent: <Data extends object = object>(props: ComboboxRenderContentProps<Data>) => import("react/jsx-runtime").JSX.Element;
27
+ export {};
28
+ //# sourceMappingURL=ComboboxRenderContent.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ComboboxRenderContent.d.ts","sourceRoot":"","sources":["../../src/Combobox/ComboboxRenderContent.tsx"],"names":[],"mappings":"AAWA,OAAO,EACL,wCAAwC,EACxC,gCAAgC,EAChC,cAAc,EAAE,aAAa,EAC7B,oBAAoB,EAAE,iCAAiC,EACvD,UAAU,EACX,MAAM,kBAAkB,CAAC;AAM1B,KAAK,0BAA0B,CAAC,IAAI,SAAS,MAAM,GAAG,MAAM,IAC1D,iCAAiC,CAAC,IAAI,CAAC,GACrC;IACF,IAAI,CAAC,EAAE,OAAO,CAAC;IAEf,IAAI,EAAE,oBAAoB,CAAC;IAC3B,KAAK,EAAE,aAAa,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,OAAO,CAAC,GAAG,aAAa,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC;IAEtF,OAAO,EAAE,OAAO,CAAC;IAEjB,OAAO,EAAE,OAAO,CAAC;IACjB,WAAW,EAAE,OAAO,CAAC;IAErB,OAAO,EAAE,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC;IAChC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,cAAc,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC;IAElD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,mBAAmB,EAAE,gCAAgC,CAAC,IAAI,CAAC,CAAC;IAE5D,kBAAkB,CAAC,EAAE,wCAAwC,CAAC,IAAI,CAAC,CAAC;IACpE,UAAU,CAAC,EAAE,wCAAwC,CAAC,IAAI,CAAC,CAAC;IAC5D,cAAc,CAAC,EAAE,wCAAwC,CAAC,IAAI,CAAC,CAAC;IAChE,gBAAgB,CAAC,EAAE,wCAAwC,CAAC,IAAI,CAAC,CAAC;IAClE,WAAW,CAAC,EAAE,wCAAwC,CAAC,IAAI,CAAC,CAAC;IAE7D,SAAS,CAAC,EAAE,UAAU,CAAC;IAEvB,gBAAgB,CAAC,EAAE,WAAW,GAAG,IAAI,CAAC;IAEtC,UAAU,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAClC,CAAA;AAkBD,eAAO,MAAM,qBAAqB,GAAI,IAAI,SAAS,MAAM,GAAG,MAAM,EAChE,OAAO,0BAA0B,CAAC,IAAI,CAAC,4CAyJxC,CAAA"}
@@ -0,0 +1,142 @@
1
+ import { jsx as e, jsxs as i, Fragment as w } from "react/jsx-runtime";
2
+ import { cn as s } from "@oneplatformdev/utils";
3
+ import { ComboboxRenderOptions as G } from "./ComboboxRenderOptions.js";
4
+ import { useRef as H, useEffect as J } from "react";
5
+ import { useInView as T } from "react-intersection-observer";
6
+ import { PopoverContent as _ } from "../Popover/Popover.js";
7
+ import { Command as q, CommandInput as z, CommandList as B, CommandGroup as K, CommandEmpty as y, CommandItem as Q } from "../Command/Command.js";
8
+ import { LoadingMask as U } from "../LoadingMask/LoadingMask.js";
9
+ import { Skeleton as W } from "../Skeleton/Skeleton.js";
10
+ const X = (t) => /* @__PURE__ */ e("div", { className: "flex w-full flex-col gap-0", children: Array.from({ length: t.length || 2 }).map((c, d) => /* @__PURE__ */ e(
11
+ "div",
12
+ {
13
+ className: "flex items-center min-h-10 w-full px-4",
14
+ children: /* @__PURE__ */ e("div", { className: s("flex items-center w-full", t.className), children: /* @__PURE__ */ e(W, { className: "h-4 w-full" }) })
15
+ },
16
+ d
17
+ )) }), ae = (t) => {
18
+ const {
19
+ open: c,
20
+ type: d,
21
+ search: u,
22
+ onSearch: C,
23
+ hasNext: v,
24
+ loading: r,
25
+ loadingMore: A,
26
+ isEmptyList: m,
27
+ onSelect: L,
28
+ options: x = [],
29
+ callbackStateParams: o,
30
+ value: S,
31
+ searchLabel: F = "Type to search...",
32
+ emptyLabel: N = "No options",
33
+ emptyAction: n,
34
+ commandInputAction: p,
35
+ listHeadAction: l,
36
+ listFooterAction: a,
37
+ slotProps: f = {},
38
+ defaultNodeDisabled: I,
39
+ defaultNodeMatched: M,
40
+ defaultNodeMuted: R,
41
+ defaultNodeInteractive: k,
42
+ forcePointerSelect: P,
43
+ popoverContainer: E,
44
+ renderList: h,
45
+ onLoadMore: V
46
+ } = t, b = H(null), { ref: j, inView: g } = T({
47
+ root: b.current,
48
+ rootMargin: "0px 0px 200px 0px",
49
+ threshold: 0
50
+ });
51
+ return J(() => {
52
+ c && g && V?.();
53
+ }, [g, c]), /* @__PURE__ */ e(
54
+ _,
55
+ {
56
+ className: s(
57
+ "w-(--radix-popper-anchor-width) max-w-none p-2"
58
+ ),
59
+ align: "start",
60
+ container: E,
61
+ children: /* @__PURE__ */ i(q, { shouldFilter: !1, children: [
62
+ /* @__PURE__ */ e(
63
+ z,
64
+ {
65
+ placeholder: F,
66
+ value: u,
67
+ onValueChange: C
68
+ }
69
+ ),
70
+ typeof p == "function" ? p(o) : p,
71
+ /* @__PURE__ */ e(B, { ref: b, children: /* @__PURE__ */ i(
72
+ K,
73
+ {
74
+ className: s(
75
+ !x.length && "p-0 shadow-none",
76
+ "px-0 py-2"
77
+ ),
78
+ children: [
79
+ r && /* @__PURE__ */ e("div", { className: "pt-2 pb-0", children: /* @__PURE__ */ e(U, {}) }),
80
+ !r && m && /* @__PURE__ */ e(w, { children: n ? /* @__PURE__ */ i(y, { className: "flex flex-col gap-3 py-5 px-3 items-center", children: [
81
+ /* @__PURE__ */ e("span", { children: N }),
82
+ typeof n == "function" ? n(o) : n
83
+ ] }) : /* @__PURE__ */ e(y, { children: N }) }),
84
+ !r && !m && /* @__PURE__ */ i(w, { children: [
85
+ l && /* @__PURE__ */ e(
86
+ Q,
87
+ {
88
+ asChild: !0,
89
+ className: "w-full",
90
+ children: typeof l == "function" ? l(o) : l
91
+ },
92
+ "combobox-list-head-action"
93
+ ),
94
+ h && h(o),
95
+ !h && /* @__PURE__ */ e(
96
+ G,
97
+ {
98
+ type: d,
99
+ search: u,
100
+ value: S,
101
+ options: x,
102
+ onSelect: L,
103
+ defaultNodeDisabled: I,
104
+ defaultNodeMatched: M,
105
+ defaultNodeMuted: R,
106
+ defaultNodeInteractive: k,
107
+ forcePointerSelect: P
108
+ }
109
+ ),
110
+ v && /* @__PURE__ */ e("div", { ref: j, className: "h-px w-full" }),
111
+ A && /* @__PURE__ */ e(X, {})
112
+ ] })
113
+ ]
114
+ }
115
+ ) }),
116
+ !r && a && !m && /* @__PURE__ */ e(
117
+ "div",
118
+ {
119
+ "data-slot": "command-footer-wrapper",
120
+ ...(() => {
121
+ const { bordered: O = !0, ...D } = f?.listFooterAction || {};
122
+ return {
123
+ ...D,
124
+ "data-slot-bordered": JSON.stringify(O)
125
+ };
126
+ })(),
127
+ className: s(
128
+ "flex w-full items-center gap-2 px-0",
129
+ (f?.listFooterAction?.bordered ?? !0) && "border-t px-0 pt-2",
130
+ f?.listFooterAction?.className
131
+ ),
132
+ children: typeof a == "function" ? a(o) : a
133
+ }
134
+ )
135
+ ] })
136
+ }
137
+ );
138
+ };
139
+ export {
140
+ ae as ComboboxRenderContent
141
+ };
142
+ //# sourceMappingURL=ComboboxRenderContent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ComboboxRenderContent.js","sources":["../../src/Combobox/ComboboxRenderContent.tsx"],"sourcesContent":["import { LoadingMask } from '../LoadingMask';\r\nimport { PopoverContent } from '../Popover';\r\nimport {\r\n Command,\r\n CommandEmpty,\r\n CommandGroup,\r\n CommandInput,\r\n CommandItem,\r\n CommandList,\r\n} from '../Command';\r\nimport { cn } from '@oneplatformdev/utils';\r\nimport {\r\n ComboboxCallbackStateParamsRenderHandler,\r\n ComboboxCallbackStateParamsUnion,\r\n ComboboxOption, ComboboxProps,\r\n ComboboxSelectedType, IComboboxOptionsNodeHandlersProps,\r\n ISlotProps,\r\n} from './Combobox.types';\r\nimport { ComboboxRenderOptions } from './ComboboxRenderOptions';\r\nimport { HTMLAttributes, useEffect, useRef } from \"react\";\r\nimport { useInView } from \"react-intersection-observer\";\r\nimport { Skeleton } from \"../Skeleton\";\r\n\r\ntype ComboboxRenderContentProps<Data extends object = object> =\r\n IComboboxOptionsNodeHandlersProps<Data>\r\n & {\r\n open?: boolean;\r\n\r\n type: ComboboxSelectedType,\r\n value: ComboboxProps<Data, 'single'>['value'] | ComboboxProps<Data, 'multi'>['value'];\r\n\r\n hasNext: boolean;\r\n\r\n loading: boolean;\r\n loadingMore: boolean;\r\n\r\n options: ComboboxOption<Data>[];\r\n search?: string;\r\n onSearch?: (term: string) => void;\r\n isEmptyList?: boolean;\r\n onSelect?: (option: ComboboxOption<Data>) => void;\r\n\r\n searchLabel?: string;\r\n emptyLabel?: string;\r\n\r\n callbackStateParams: ComboboxCallbackStateParamsUnion<Data>;\r\n\r\n commandInputAction?: ComboboxCallbackStateParamsRenderHandler<Data>;\r\n renderList?: ComboboxCallbackStateParamsRenderHandler<Data>;\r\n listHeadAction?: ComboboxCallbackStateParamsRenderHandler<Data>;\r\n listFooterAction?: ComboboxCallbackStateParamsRenderHandler<Data>;\r\n emptyAction?: ComboboxCallbackStateParamsRenderHandler<Data>;\r\n\r\n slotProps?: ISlotProps;\r\n\r\n popoverContainer?: HTMLElement | null;\r\n\r\n onLoadMore?: () => Promise<void>;\r\n}\r\n\r\nconst SkeletonItems = (props: HTMLAttributes<HTMLDivElement> & { length?: number }) => (\r\n <div className=\"flex w-full flex-col gap-0\">\r\n {Array.from({ length: props.length || 2 }).map((_, i) => (\r\n <div\r\n key={i}\r\n className='flex items-center min-h-10 w-full px-4'\r\n >\r\n <div className={cn('flex items-center w-full', props.className)}>\r\n <Skeleton className='h-4 w-full'/>\r\n </div>\r\n </div>\r\n ))}\r\n </div>\r\n);\r\n\r\n\r\nexport const ComboboxRenderContent = <Data extends object = object>(\r\n props: ComboboxRenderContentProps<Data>\r\n) => {\r\n const {\r\n open,\r\n type,\r\n search,\r\n onSearch,\r\n hasNext,\r\n loading,\r\n loadingMore,\r\n isEmptyList,\r\n onSelect,\r\n options = [],\r\n callbackStateParams,\r\n value,\r\n searchLabel = 'Type to search...',\r\n emptyLabel = 'No options',\r\n emptyAction,\r\n commandInputAction,\r\n listHeadAction,\r\n listFooterAction,\r\n slotProps = {},\r\n defaultNodeDisabled,\r\n defaultNodeMatched,\r\n defaultNodeMuted,\r\n defaultNodeInteractive,\r\n forcePointerSelect,\r\n popoverContainer,\r\n renderList,\r\n onLoadMore,\r\n } = props;\r\n\r\n const scrollRootRef = useRef<HTMLDivElement>(null);\r\n const { ref: sentinelRef, inView } = useInView({\r\n root: scrollRootRef.current,\r\n rootMargin: \"0px 0px 200px 0px\",\r\n threshold: 0,\r\n });\r\n\r\n useEffect(() => {\r\n if (!open) return;\r\n if (!inView) return;\r\n void onLoadMore?.();\r\n }, [ inView, open ]);\r\n\r\n return (\r\n <PopoverContent\r\n className={cn(\r\n \"w-(--radix-popper-anchor-width) max-w-none p-2\"\r\n )}\r\n align=\"start\"\r\n container={popoverContainer}\r\n >\r\n <Command shouldFilter={false}>\r\n <CommandInput\r\n placeholder={searchLabel}\r\n value={search}\r\n onValueChange={onSearch}\r\n />\r\n {typeof commandInputAction === 'function'\r\n ? commandInputAction(callbackStateParams)\r\n : commandInputAction}\r\n\r\n <CommandList ref={scrollRootRef}>\r\n <CommandGroup\r\n className={cn(\r\n !options.length && 'p-0 shadow-none',\r\n 'px-0 py-2',\r\n )}\r\n >\r\n {loading && (\r\n <div className=\"pt-2 pb-0\">\r\n <LoadingMask />\r\n </div>\r\n )}\r\n {!loading && isEmptyList && (\r\n <>\r\n {emptyAction ? (\r\n <CommandEmpty className=\"flex flex-col gap-3 py-5 px-3 items-center\">\r\n <span>{emptyLabel}</span>\r\n {typeof emptyAction === 'function'\r\n ? emptyAction(callbackStateParams)\r\n : emptyAction}\r\n </CommandEmpty>\r\n ) : (\r\n <CommandEmpty>{emptyLabel}</CommandEmpty>\r\n )}\r\n </>\r\n )}\r\n\r\n {!loading && !isEmptyList && (\r\n <>\r\n {listHeadAction && (\r\n <CommandItem\r\n key='combobox-list-head-action'\r\n asChild\r\n className='w-full'\r\n >\r\n {typeof listHeadAction === 'function'\r\n ? listHeadAction(callbackStateParams)\r\n : listHeadAction}\r\n </CommandItem>\r\n )}\r\n\r\n {renderList && renderList(callbackStateParams)}\r\n\r\n {!renderList && (\r\n <ComboboxRenderOptions\r\n type={type}\r\n search={search}\r\n value={value}\r\n options={options}\r\n onSelect={onSelect}\r\n defaultNodeDisabled={defaultNodeDisabled}\r\n defaultNodeMatched={defaultNodeMatched}\r\n defaultNodeMuted={defaultNodeMuted}\r\n defaultNodeInteractive={defaultNodeInteractive}\r\n forcePointerSelect={forcePointerSelect}/>\r\n )}\r\n\r\n {hasNext && <div ref={sentinelRef} className=\"h-px w-full\"/>}\r\n {loadingMore && <SkeletonItems />}\r\n </>\r\n )}\r\n\r\n </CommandGroup>\r\n </CommandList>\r\n\r\n {/*LIST FOOTER ACTION*/}\r\n {!loading && listFooterAction && !isEmptyList && (\r\n <div\r\n data-slot=\"command-footer-wrapper\"\r\n {...((() => {\r\n const { bordered = true, ...rest } = slotProps?.listFooterAction || {};\r\n return {\r\n ...rest,\r\n 'data-slot-bordered': JSON.stringify(bordered)\r\n }\r\n })())}\r\n className={cn(\r\n \"flex w-full items-center gap-2 px-0\",\r\n (slotProps?.listFooterAction?.bordered ?? true) && 'border-t px-0 pt-2',\r\n slotProps?.listFooterAction?.className,\r\n )}\r\n >\r\n {typeof listFooterAction === 'function'\r\n ? listFooterAction(callbackStateParams)\r\n : listFooterAction}\r\n </div>\r\n )}\r\n </Command>\r\n </PopoverContent>\r\n );\r\n}\r\n"],"names":["SkeletonItems","props","_","i","jsx","cn","Skeleton","ComboboxRenderContent","open","type","search","onSearch","hasNext","loading","loadingMore","isEmptyList","onSelect","options","callbackStateParams","value","searchLabel","emptyLabel","emptyAction","commandInputAction","listHeadAction","listFooterAction","slotProps","defaultNodeDisabled","defaultNodeMatched","defaultNodeMuted","defaultNodeInteractive","forcePointerSelect","popoverContainer","renderList","onLoadMore","scrollRootRef","useRef","sentinelRef","inView","useInView","useEffect","PopoverContent","jsxs","Command","CommandInput","CommandList","CommandGroup","LoadingMask","Fragment","CommandEmpty","CommandItem","ComboboxRenderOptions","bordered","rest"],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import { IComboboxOptionsNodeProps, IComboboxOptionsProps } from './Combobox.types';
2
+ export declare const ComboboxOptionsNode: <Data extends object>(props: IComboboxOptionsNodeProps<Data>) => import("react/jsx-runtime").JSX.Element;
3
+ export declare const ComboboxRenderOptions: <Data extends object>(props: IComboboxOptionsProps<Data>) => import("react/jsx-runtime").JSX.Element;
4
+ //# sourceMappingURL=ComboboxRenderOptions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ComboboxRenderOptions.d.ts","sourceRoot":"","sources":["../../src/Combobox/ComboboxRenderOptions.tsx"],"names":[],"mappings":"AAAA,OAAO,EACL,yBAAyB,EACzB,qBAAqB,EACtB,MAAM,kBAAkB,CAAC;AAS1B,eAAO,MAAM,mBAAmB,GAAI,IAAI,SAAS,MAAM,EAAE,OAAO,yBAAyB,CAAC,IAAI,CAAC,4CA2C9F,CAAA;AAED,eAAO,MAAM,qBAAqB,GAAI,IAAI,SAAS,MAAM,EAAE,OAAO,qBAAqB,CAAC,IAAI,CAAC,4CAe5F,CAAA"}