@oneplatformdev/ui 0.1.99-beta.25 → 0.1.99-beta.251

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 (234) hide show
  1. package/Accordion/Accordion.d.ts +1 -1
  2. package/Accordion/Accordion.d.ts.map +1 -1
  3. package/Accordion/Accordion.js +48 -26
  4. package/Accordion/Accordion.js.map +1 -1
  5. package/AlertDialog/AlertDialog.stories.js +3 -2
  6. package/AlertDialog/AlertDialog.stories.js.map +1 -1
  7. package/AlertDialog/AlertDialogRoot.d.ts.map +1 -1
  8. package/AlertDialog/AlertDialogRoot.js +26 -24
  9. package/AlertDialog/AlertDialogRoot.js.map +1 -1
  10. package/Button/Button.d.ts.map +1 -1
  11. package/Button/Button.js +43 -43
  12. package/Button/Button.js.map +1 -1
  13. package/Button/Button.stories.js +15 -12
  14. package/Button/Button.stories.js.map +1 -1
  15. package/Button/Button.utils.d.ts +3 -0
  16. package/Button/Button.utils.d.ts.map +1 -0
  17. package/Button/Button.utils.js +14 -0
  18. package/Button/Button.utils.js.map +1 -0
  19. package/Button/buttonVariants.d.ts +2 -2
  20. package/Button/buttonVariants.d.ts.map +1 -1
  21. package/Button/buttonVariants.js +38 -6
  22. package/Button/buttonVariants.js.map +1 -1
  23. package/Button/index.d.ts +1 -0
  24. package/Button/index.d.ts.map +1 -1
  25. package/Button/index.js +8 -6
  26. package/Button/index.js.map +1 -1
  27. package/ButtonIcon/ButtonIcon.d.ts.map +1 -1
  28. package/ButtonIcon/ButtonIcon.js +41 -39
  29. package/ButtonIcon/ButtonIcon.js.map +1 -1
  30. package/ButtonIcon/ButtonIcon.stories.js +35 -33
  31. package/ButtonIcon/ButtonIcon.stories.js.map +1 -1
  32. package/ButtonIcon/buttonIconVariants.d.ts +1 -1
  33. package/ButtonIcon/buttonIconVariants.d.ts.map +1 -1
  34. package/ButtonIcon/buttonIconVariants.js +3 -2
  35. package/ButtonIcon/buttonIconVariants.js.map +1 -1
  36. package/CHANGELOG.md +1439 -0
  37. package/Calendar/Calendar.js +5 -4
  38. package/Calendar/Calendar.js.map +1 -1
  39. package/Card/Card.d.ts.map +1 -1
  40. package/Card/Card.js +22 -21
  41. package/Card/Card.js.map +1 -1
  42. package/Checkbox/Checkbox.d.ts.map +1 -1
  43. package/Checkbox/Checkbox.js +36 -34
  44. package/Checkbox/Checkbox.js.map +1 -1
  45. package/Checkbox/Checkbox.stories.js +108 -0
  46. package/Checkbox/Checkbox.stories.js.map +1 -0
  47. package/Checkbox/Checkbox.types.d.ts +2 -1
  48. package/Checkbox/Checkbox.types.d.ts.map +1 -1
  49. package/Combobox/Combobox.d.ts +4 -2
  50. package/Combobox/Combobox.d.ts.map +1 -1
  51. package/Combobox/Combobox.js +183 -194
  52. package/Combobox/Combobox.js.map +1 -1
  53. package/Combobox/Combobox.stories.js +174 -73
  54. package/Combobox/Combobox.stories.js.map +1 -1
  55. package/Combobox/Combobox.types.d.ts +68 -24
  56. package/Combobox/Combobox.types.d.ts.map +1 -1
  57. package/Combobox/Combobox.types.js +4 -1
  58. package/Combobox/Combobox.types.js.map +1 -1
  59. package/Combobox/ComboboxOptionItem.d.ts +5 -3
  60. package/Combobox/ComboboxOptionItem.d.ts.map +1 -1
  61. package/Combobox/ComboboxOptionItem.js +79 -23
  62. package/Combobox/ComboboxOptionItem.js.map +1 -1
  63. package/Combobox/ComboboxRenderContent.d.ts +23 -0
  64. package/Combobox/ComboboxRenderContent.d.ts.map +1 -0
  65. package/Combobox/ComboboxRenderContent.js +117 -0
  66. package/Combobox/ComboboxRenderContent.js.map +1 -0
  67. package/Combobox/ComboboxRenderOptions.d.ts +4 -0
  68. package/Combobox/ComboboxRenderOptions.d.ts.map +1 -0
  69. package/Combobox/ComboboxRenderOptions.js +53 -0
  70. package/Combobox/ComboboxRenderOptions.js.map +1 -0
  71. package/Combobox/ComboboxRenderTrigger.d.ts +18 -0
  72. package/Combobox/ComboboxRenderTrigger.d.ts.map +1 -0
  73. package/Combobox/ComboboxRenderTrigger.js +120 -0
  74. package/Combobox/ComboboxRenderTrigger.js.map +1 -0
  75. package/Command/Command.d.ts +6 -1
  76. package/Command/Command.d.ts.map +1 -1
  77. package/Command/Command.js +61 -43
  78. package/Command/Command.js.map +1 -1
  79. package/ContextPopover/ContextDropdownMenu.d.ts +12 -0
  80. package/ContextPopover/ContextDropdownMenu.d.ts.map +1 -0
  81. package/ContextPopover/ContextDropdownMenu.js +41 -0
  82. package/ContextPopover/ContextDropdownMenu.js.map +1 -0
  83. package/ContextPopover/ContextPopover.d.ts +12 -0
  84. package/ContextPopover/ContextPopover.d.ts.map +1 -0
  85. package/ContextPopover/ContextPopover.js +34 -0
  86. package/ContextPopover/ContextPopover.js.map +1 -0
  87. package/ContextPopover/index.d.ts +4 -0
  88. package/ContextPopover/index.d.ts.map +1 -0
  89. package/ContextPopover/index.js +9 -0
  90. package/ContextPopover/index.js.map +1 -0
  91. package/ContextPopover/useContextPopoverHandler.d.ts +14 -0
  92. package/ContextPopover/useContextPopoverHandler.d.ts.map +1 -0
  93. package/ContextPopover/useContextPopoverHandler.js +21 -0
  94. package/ContextPopover/useContextPopoverHandler.js.map +1 -0
  95. package/DataTable/DataTable.js +16 -15
  96. package/DataTable/DataTable.js.map +1 -1
  97. package/Dialog/Dialog.d.ts +4 -1
  98. package/Dialog/Dialog.d.ts.map +1 -1
  99. package/Dialog/Dialog.js +84 -41
  100. package/Dialog/Dialog.js.map +1 -1
  101. package/Dialog/Dialog.stories.js +109 -0
  102. package/Dialog/Dialog.stories.js.map +1 -0
  103. package/Dialog/Dialog.types.d.ts +4 -0
  104. package/Dialog/Dialog.types.d.ts.map +1 -0
  105. package/Dialog/Dialog.types.js +2 -0
  106. package/Dialog/Dialog.types.js.map +1 -0
  107. package/Dialog/index.d.ts +1 -0
  108. package/Dialog/index.d.ts.map +1 -1
  109. package/Dialog/useDialogClosePosition.d.ts +11 -0
  110. package/Dialog/useDialogClosePosition.d.ts.map +1 -0
  111. package/Dialog/useDialogClosePosition.js +50 -0
  112. package/Dialog/useDialogClosePosition.js.map +1 -0
  113. package/DropdownMenu/DropdownMenu.d.ts.map +1 -1
  114. package/DropdownMenu/DropdownMenu.js +33 -20
  115. package/DropdownMenu/DropdownMenu.js.map +1 -1
  116. package/Dropzone/Dropzone.d.ts.map +1 -1
  117. package/Dropzone/Dropzone.js +46 -28
  118. package/Dropzone/Dropzone.js.map +1 -1
  119. package/Dropzone/Dropzone.stories.js +100 -0
  120. package/Dropzone/Dropzone.stories.js.map +1 -0
  121. package/Dropzone/Dropzone.types.js +6 -6
  122. package/Dropzone/Dropzone.types.js.map +1 -1
  123. package/Form/FormRenderControl.d.ts +1 -1
  124. package/Form/FormRenderControl.d.ts.map +1 -1
  125. package/Form/FormRenderControl.js +55 -14
  126. package/Form/FormRenderControl.js.map +1 -1
  127. package/Form/FormRenderControl.types.d.ts +6 -2
  128. package/Form/FormRenderControl.types.d.ts.map +1 -1
  129. package/FormCombobox/FormCombobox.d.ts +4 -2
  130. package/FormCombobox/FormCombobox.d.ts.map +1 -1
  131. package/FormCombobox/FormCombobox.js +30 -17
  132. package/FormCombobox/FormCombobox.js.map +1 -1
  133. package/FormCombobox/FormCombobox.types.d.ts +6 -2
  134. package/FormCombobox/FormCombobox.types.d.ts.map +1 -1
  135. package/FormDatePicker/FormDatePicker.d.ts.map +1 -1
  136. package/FormDatePicker/FormDatePicker.js +18 -16
  137. package/FormDatePicker/FormDatePicker.js.map +1 -1
  138. package/FormDropzone/FormDropzone.d.ts.map +1 -1
  139. package/FormDropzone/FormDropzone.js +11 -9
  140. package/FormDropzone/FormDropzone.js.map +1 -1
  141. package/FormInput/FormInput.d.ts.map +1 -1
  142. package/FormInput/FormInput.js +47 -27
  143. package/FormInput/FormInput.js.map +1 -1
  144. package/FormInput/FormInput.stories.js +61 -0
  145. package/FormInput/FormInput.stories.js.map +1 -0
  146. package/FormInput/FormInput.types.d.ts +1 -0
  147. package/FormInput/FormInput.types.d.ts.map +1 -1
  148. package/FormSelect/FormSelect.d.ts.map +1 -1
  149. package/FormSelect/FormSelect.js +21 -17
  150. package/FormSelect/FormSelect.js.map +1 -1
  151. package/FormTextarea/FormTextarea.d.ts.map +1 -1
  152. package/FormTextarea/FormTextarea.js +15 -12
  153. package/FormTextarea/FormTextarea.js.map +1 -1
  154. package/InfoBlock/InfoBlock.d.ts +7 -0
  155. package/InfoBlock/InfoBlock.d.ts.map +1 -0
  156. package/InfoBlock/InfoBlock.js +28 -0
  157. package/InfoBlock/InfoBlock.js.map +1 -0
  158. package/InfoBlock/InfoBlock.stories.js +50 -0
  159. package/InfoBlock/InfoBlock.stories.js.map +1 -0
  160. package/InfoBlock/InfoBlock.types.d.ts +9 -0
  161. package/InfoBlock/InfoBlock.types.d.ts.map +1 -0
  162. package/InfoBlock/InfoBlock.types.js +2 -0
  163. package/InfoBlock/InfoBlock.types.js.map +1 -0
  164. package/InfoBlock/index.d.ts +3 -0
  165. package/InfoBlock/index.d.ts.map +1 -0
  166. package/InfoBlock/index.js +5 -0
  167. package/InfoBlock/index.js.map +1 -0
  168. package/InfoBlock/infoBlockVariants.d.ts +6 -0
  169. package/InfoBlock/infoBlockVariants.d.ts.map +1 -0
  170. package/InfoBlock/infoBlockVariants.js +27 -0
  171. package/InfoBlock/infoBlockVariants.js.map +1 -0
  172. package/Input/Input.d.ts.map +1 -1
  173. package/Input/Input.js +65 -51
  174. package/Input/Input.js.map +1 -1
  175. package/Input/Input.stories.js +154 -0
  176. package/Input/Input.stories.js.map +1 -0
  177. package/Input/Input.types.d.ts +1 -0
  178. package/Input/Input.types.d.ts.map +1 -1
  179. package/LoadingMask/LoadingMask.d.ts +1 -2
  180. package/LoadingMask/LoadingMask.d.ts.map +1 -1
  181. package/LoadingMask/LoadingMask.js +8 -8
  182. package/LoadingMask/LoadingMask.js.map +1 -1
  183. package/LoadingMask/LoadingMask.types.d.ts +1 -0
  184. package/LoadingMask/LoadingMask.types.d.ts.map +1 -1
  185. package/Popover/Popover.d.ts.map +1 -1
  186. package/Popover/Popover.js +9 -5
  187. package/Popover/Popover.js.map +1 -1
  188. package/ScrollArea/ScrollArea.d.ts +5 -1
  189. package/ScrollArea/ScrollArea.d.ts.map +1 -1
  190. package/ScrollArea/ScrollArea.js +23 -17
  191. package/ScrollArea/ScrollArea.js.map +1 -1
  192. package/Search/Search.d.ts.map +1 -1
  193. package/Search/Search.js +40 -31
  194. package/Search/Search.js.map +1 -1
  195. package/Select/Select.d.ts.map +1 -1
  196. package/Select/Select.js +53 -48
  197. package/Select/Select.js.map +1 -1
  198. package/Select/Select.types.d.ts +4 -0
  199. package/Select/Select.types.d.ts.map +1 -1
  200. package/Select/SelectRoot.js +6 -6
  201. package/Select/SelectRoot.js.map +1 -1
  202. package/Switch/Switch.d.ts +1 -1
  203. package/Switch/Switch.d.ts.map +1 -1
  204. package/Switch/Switch.js +19 -9
  205. package/Switch/Switch.js.map +1 -1
  206. package/Switch/Switch.stories.js +62 -0
  207. package/Switch/Switch.stories.js.map +1 -0
  208. package/TablePagination/TablePagination.js +9 -8
  209. package/TablePagination/TablePagination.js.map +1 -1
  210. package/Textarea/Textarea.d.ts.map +1 -1
  211. package/Textarea/Textarea.js +50 -45
  212. package/Textarea/Textarea.js.map +1 -1
  213. package/Textarea/Textarea.types.d.ts +3 -1
  214. package/Textarea/Textarea.types.d.ts.map +1 -1
  215. package/Toast/Toast.d.ts +1 -1
  216. package/Toast/toastVariants.d.ts +1 -1
  217. package/Tooltip/Tooltip.d.ts.map +1 -1
  218. package/Tooltip/Tooltip.js +51 -32
  219. package/Tooltip/Tooltip.js.map +1 -1
  220. package/Tooltip/Tooltip.types.d.ts +10 -0
  221. package/Tooltip/Tooltip.types.d.ts.map +1 -1
  222. package/Tooltip/tooltipVariants.d.ts +4 -0
  223. package/Tooltip/tooltipVariants.d.ts.map +1 -0
  224. package/Tooltip/tooltipVariants.js +22 -0
  225. package/Tooltip/tooltipVariants.js.map +1 -0
  226. package/index.d.ts +2 -0
  227. package/index.d.ts.map +1 -1
  228. package/index.js +342 -332
  229. package/index.js.map +1 -1
  230. package/package.json +6 -5
  231. package/Combobox/ComboboxOptions.d.ts +0 -4
  232. package/Combobox/ComboboxOptions.d.ts.map +0 -1
  233. package/Combobox/ComboboxOptions.js +0 -65
  234. package/Combobox/ComboboxOptions.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"Popover.d.ts","sourceRoot":"","sources":["../../src/Popover/Popover.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,KAAK,gBAAgB,MAAM,yBAAyB,CAAA;AAI3D,iBAAS,OAAO,CAAC,EACE,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,gBAAgB,CAAC,IAAI,CAAC,2CAErE;AAED,iBAAS,cAAc,CAAC,EACE,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,gBAAgB,CAAC,OAAO,CAAC,2CAE/E;AAED,iBAAS,cAAc,CAAC,KAAK,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,gBAAgB,CAAC,OAAO,CAAC,2CA0BnF;AAED,iBAAS,aAAa,CAAC,EACE,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,gBAAgB,CAAC,MAAM,CAAC,2CAE7E;AAED,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,aAAa,EAAE,gBAAgB,EAAE,CAAA"}
1
+ {"version":3,"file":"Popover.d.ts","sourceRoot":"","sources":["../../src/Popover/Popover.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,KAAK,gBAAgB,MAAM,yBAAyB,CAAA;AAI3D,iBAAS,OAAO,CAAC,EACE,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,gBAAgB,CAAC,IAAI,CAAC,2CAErE;AAED,iBAAS,cAAc,CAAC,EACE,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,gBAAgB,CAAC,OAAO,CAAC,2CAE/E;AAED,iBAAS,cAAc,CAAC,KAAK,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,gBAAgB,CAAC,OAAO,CAAC,2CA8BnF;AAED,iBAAS,aAAa,CAAC,EACE,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,gBAAgB,CAAC,MAAM,CAAC,2CAE7E;AAED,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,aAAa,EAAE,gBAAgB,EAAE,CAAA"}
@@ -1,7 +1,7 @@
1
1
  import { jsx as t } from "react/jsx-runtime";
2
2
  import * as e from "@radix-ui/react-popover";
3
3
  import { cn as s } from "@oneplatformdev/utils";
4
- function l({
4
+ function m({
5
5
  ...o
6
6
  }) {
7
7
  return /* @__PURE__ */ t(e.Root, { "data-slot": "popover", ...o });
@@ -27,7 +27,11 @@ function c(o) {
27
27
  sideOffset: n,
28
28
  ...d,
29
29
  className: s(
30
- "bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 w-72 origin-(--radix-popover-content-transform-origin) rounded-md border p-4 shadow-md outline-hidden",
30
+ "text-popover-foreground",
31
+ "w-72 origin-(--radix-popover-content-transform-origin) outline-hidden",
32
+ "border p-4 bg-popover rounded-lg",
33
+ "shadow-[1px_1px_10px_rgba(6,8,13,0.06)]",
34
+ "data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50",
31
35
  r
32
36
  ),
33
37
  style: {
@@ -37,14 +41,14 @@ function c(o) {
37
41
  }
38
42
  ) });
39
43
  }
40
- function u({
44
+ function g({
41
45
  ...o
42
46
  }) {
43
47
  return /* @__PURE__ */ t(e.Anchor, { "data-slot": "popover-anchor", ...o });
44
48
  }
45
49
  export {
46
- l as Popover,
47
- u as PopoverAnchor,
50
+ m as Popover,
51
+ g as PopoverAnchor,
48
52
  c as PopoverContent,
49
53
  e as PopoverPrimitive,
50
54
  f as PopoverTrigger
@@ -1 +1 @@
1
- {"version":3,"file":"Popover.js","sources":["../../src/Popover/Popover.tsx"],"sourcesContent":["\"use client\"\n\nimport * as React from \"react\"\nimport * as PopoverPrimitive from \"@radix-ui/react-popover\"\n\nimport { cn } from \"@oneplatformdev/utils\"\n\nfunction Popover({\n ...props\n }: React.ComponentProps<typeof PopoverPrimitive.Root>) {\n return <PopoverPrimitive.Root data-slot=\"popover\" {...props} />\n}\n\nfunction PopoverTrigger({\n ...props\n }: React.ComponentProps<typeof PopoverPrimitive.Trigger>) {\n return <PopoverPrimitive.Trigger data-slot=\"popover-trigger\" {...props} />\n}\n\nfunction PopoverContent(props: React.ComponentProps<typeof PopoverPrimitive.Content>) {\n const {\n className,\n align = \"center\",\n sideOffset = 4,\n style,\n ...rest\n } = props;\n return (\n <PopoverPrimitive.Portal>\n <PopoverPrimitive.Content\n data-slot=\"popover-content\"\n align={align}\n sideOffset={sideOffset}\n {...rest}\n className={cn(\n \"bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 w-72 origin-(--radix-popover-content-transform-origin) rounded-md border p-4 shadow-md outline-hidden\",\n className\n )}\n style={{\n pointerEvents: 'auto',\n ...(style || {}),\n }}\n />\n </PopoverPrimitive.Portal>\n )\n}\n\nfunction PopoverAnchor({\n ...props\n }: React.ComponentProps<typeof PopoverPrimitive.Anchor>) {\n return <PopoverPrimitive.Anchor data-slot=\"popover-anchor\" {...props} />\n}\n\nexport { Popover, PopoverTrigger, PopoverContent, PopoverAnchor, PopoverPrimitive }\n"],"names":["Popover","props","PopoverPrimitive","PopoverTrigger","PopoverContent","className","align","sideOffset","style","rest","jsx","cn","PopoverAnchor"],"mappings":";;;AAOA,SAASA,EAAQ;AAAA,EACE,GAAGC;AACL,GAAuD;AACtE,2BAAQC,EAAiB,MAAjB,EAAsB,aAAU,WAAW,GAAGD,GAAO;AAC/D;AAEA,SAASE,EAAe;AAAA,EACE,GAAGF;AACL,GAA0D;AAChF,2BAAQC,EAAiB,SAAjB,EAAyB,aAAU,mBAAmB,GAAGD,GAAO;AAC1E;AAEA,SAASG,EAAeH,GAA8D;AACpF,QAAM;AAAA,IACJ,WAAAI;AAAA,IACA,OAAAC,IAAQ;AAAA,IACR,YAAAC,IAAa;AAAA,IACb,OAAAC;AAAA,IACA,GAAGC;AAAA,EAAA,IACDR;AACJ,SACE,gBAAAS,EAACR,EAAiB,QAAjB,EACC,UAAA,gBAAAQ;AAAA,IAACR,EAAiB;AAAA,IAAjB;AAAA,MACC,aAAU;AAAA,MACV,OAAAI;AAAA,MACA,YAAAC;AAAA,MACC,GAAGE;AAAA,MACJ,WAAWE;AAAA,QACT;AAAA,QACAN;AAAA,MAAA;AAAA,MAEF,OAAO;AAAA,QACL,eAAe;AAAA,QACf,GAAIG,KAAS,CAAA;AAAA,MAAC;AAAA,IAChB;AAAA,EAAA,GAEJ;AAEJ;AAEA,SAASI,EAAc;AAAA,EACE,GAAGX;AACL,GAAyD;AAC9E,2BAAQC,EAAiB,QAAjB,EAAwB,aAAU,kBAAkB,GAAGD,GAAO;AACxE;"}
1
+ {"version":3,"file":"Popover.js","sources":["../../src/Popover/Popover.tsx"],"sourcesContent":["\"use client\"\n\nimport * as React from \"react\"\nimport * as PopoverPrimitive from \"@radix-ui/react-popover\"\n\nimport { cn } from \"@oneplatformdev/utils\"\n\nfunction Popover({\n ...props\n }: React.ComponentProps<typeof PopoverPrimitive.Root>) {\n return <PopoverPrimitive.Root data-slot=\"popover\" {...props} />\n}\n\nfunction PopoverTrigger({\n ...props\n }: React.ComponentProps<typeof PopoverPrimitive.Trigger>) {\n return <PopoverPrimitive.Trigger data-slot=\"popover-trigger\" {...props} />\n}\n\nfunction PopoverContent(props: React.ComponentProps<typeof PopoverPrimitive.Content>) {\n const {\n className,\n align = \"center\",\n sideOffset = 4,\n style,\n ...rest\n } = props;\n return (\n <PopoverPrimitive.Portal>\n <PopoverPrimitive.Content\n data-slot=\"popover-content\"\n align={align}\n sideOffset={sideOffset}\n {...rest}\n className={cn(\n \"text-popover-foreground\",\n 'w-72 origin-(--radix-popover-content-transform-origin) outline-hidden',\n 'border p-4 bg-popover rounded-lg',\n 'shadow-[1px_1px_10px_rgba(6,8,13,0.06)]',\n 'data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50',\n className\n )}\n style={{\n pointerEvents: 'auto',\n ...(style || {}),\n }}\n />\n </PopoverPrimitive.Portal>\n )\n}\n\nfunction PopoverAnchor({\n ...props\n }: React.ComponentProps<typeof PopoverPrimitive.Anchor>) {\n return <PopoverPrimitive.Anchor data-slot=\"popover-anchor\" {...props} />\n}\n\nexport { Popover, PopoverTrigger, PopoverContent, PopoverAnchor, PopoverPrimitive }\n"],"names":["Popover","props","PopoverPrimitive","PopoverTrigger","PopoverContent","className","align","sideOffset","style","rest","jsx","cn","PopoverAnchor"],"mappings":";;;AAOA,SAASA,EAAQ;AAAA,EACE,GAAGC;AACL,GAAuD;AACtE,2BAAQC,EAAiB,MAAjB,EAAsB,aAAU,WAAW,GAAGD,GAAO;AAC/D;AAEA,SAASE,EAAe;AAAA,EACE,GAAGF;AACL,GAA0D;AAChF,2BAAQC,EAAiB,SAAjB,EAAyB,aAAU,mBAAmB,GAAGD,GAAO;AAC1E;AAEA,SAASG,EAAeH,GAA8D;AACpF,QAAM;AAAA,IACJ,WAAAI;AAAA,IACA,OAAAC,IAAQ;AAAA,IACR,YAAAC,IAAa;AAAA,IACb,OAAAC;AAAA,IACA,GAAGC;AAAA,EAAA,IACDR;AACJ,SACE,gBAAAS,EAACR,EAAiB,QAAjB,EACC,UAAA,gBAAAQ;AAAA,IAACR,EAAiB;AAAA,IAAjB;AAAA,MACC,aAAU;AAAA,MACV,OAAAI;AAAA,MACA,YAAAC;AAAA,MACC,GAAGE;AAAA,MACJ,WAAWE;AAAA,QACT;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACAN;AAAA,MAAA;AAAA,MAEF,OAAO;AAAA,QACL,eAAe;AAAA,QACf,GAAIG,KAAS,CAAA;AAAA,MAAC;AAAA,IAChB;AAAA,EAAA,GAEJ;AAEJ;AAEA,SAASI,EAAc;AAAA,EACE,GAAGX;AACL,GAAyD;AAC9E,2BAAQC,EAAiB,QAAjB,EAAwB,aAAU,kBAAkB,GAAGD,GAAO;AACxE;"}
@@ -1,6 +1,10 @@
1
1
  import * as React from "react";
2
2
  import * as ScrollAreaPrimitive from "@radix-ui/react-scroll-area";
3
- declare function ScrollArea({ className, children, ...props }: React.ComponentProps<typeof ScrollAreaPrimitive.Root>): import("react/jsx-runtime").JSX.Element;
3
+ declare function ScrollArea(props: React.ComponentProps<typeof ScrollAreaPrimitive.Root> & {
4
+ slotProps?: {
5
+ viewport?: React.ComponentProps<typeof ScrollAreaPrimitive.Viewport>;
6
+ };
7
+ }): import("react/jsx-runtime").JSX.Element;
4
8
  declare function ScrollBar({ className, orientation, ...props }: React.ComponentProps<typeof ScrollAreaPrimitive.ScrollAreaScrollbar>): import("react/jsx-runtime").JSX.Element;
5
9
  export { ScrollArea, ScrollBar, ScrollAreaPrimitive };
6
10
  //# sourceMappingURL=ScrollArea.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ScrollArea.d.ts","sourceRoot":"","sources":["../../src/ScrollArea/ScrollArea.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,KAAK,mBAAmB,MAAM,6BAA6B,CAAA;AAIlE,iBAAS,UAAU,CAAC,EACE,SAAS,EACT,QAAQ,EACR,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,mBAAmB,CAAC,IAAI,CAAC,2CAiB3E;AAED,iBAAS,SAAS,CAAC,EACE,SAAS,EACT,WAAwB,EACxB,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,mBAAmB,CAAC,mBAAmB,CAAC,2CAqBzF;AAED,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,mBAAmB,EAAE,CAAA"}
1
+ {"version":3,"file":"ScrollArea.d.ts","sourceRoot":"","sources":["../../src/ScrollArea/ScrollArea.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,KAAK,mBAAmB,MAAM,6BAA6B,CAAA;AAIlE,iBAAS,UAAU,CACjB,KAAK,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,mBAAmB,CAAC,IAAI,CAAC,GAAG;IAC7D,SAAS,CAAC,EAAE;QACV,QAAQ,CAAC,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,mBAAmB,CAAC,QAAQ,CAAC,CAAC;KACtE,CAAA;CACF,2CA4BF;AAED,iBAAS,SAAS,CAAC,EACE,SAAS,EACT,WAAwB,EACxB,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,mBAAmB,CAAC,mBAAmB,CAAC,2CAqBzF;AAED,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,mBAAmB,EAAE,CAAA"}
@@ -1,33 +1,39 @@
1
- import { jsxs as s, jsx as l } from "react/jsx-runtime";
1
+ import { jsxs as i, jsx as l } from "react/jsx-runtime";
2
2
  import * as o from "@radix-ui/react-scroll-area";
3
- import { cn as t } from "@oneplatformdev/utils";
4
- function u({
5
- className: e,
6
- children: r,
7
- ...a
8
- }) {
9
- return /* @__PURE__ */ s(
3
+ import { cn as s } from "@oneplatformdev/utils";
4
+ function m(e) {
5
+ const {
6
+ className: r,
7
+ children: a,
8
+ slotProps: t,
9
+ ...c
10
+ } = e;
11
+ return /* @__PURE__ */ i(
10
12
  o.Root,
11
13
  {
12
14
  "data-slot": "scroll-area",
13
- className: t("relative", e),
14
- ...a,
15
+ className: s("relative", r),
16
+ ...c,
15
17
  children: [
16
18
  /* @__PURE__ */ l(
17
19
  o.Viewport,
18
20
  {
21
+ ...t?.viewport || {},
19
22
  "data-slot": "scroll-area-viewport",
20
- className: "focus-visible:ring-ring/50 size-full rounded-[inherit] transition-[color,box-shadow] outline-none focus-visible:ring-[3px] focus-visible:outline-1",
21
- children: r
23
+ className: s(
24
+ "focus-visible:ring-ring/50 size-full rounded-[inherit] transition-[color,box-shadow] outline-none focus-visible:ring-[3px] focus-visible:outline-1",
25
+ t?.viewport?.className
26
+ ),
27
+ children: a
22
28
  }
23
29
  ),
24
- /* @__PURE__ */ l(i, {}),
30
+ /* @__PURE__ */ l(n, {}),
25
31
  /* @__PURE__ */ l(o.Corner, {})
26
32
  ]
27
33
  }
28
34
  );
29
35
  }
30
- function i({
36
+ function n({
31
37
  className: e,
32
38
  orientation: r = "vertical",
33
39
  ...a
@@ -37,7 +43,7 @@ function i({
37
43
  {
38
44
  "data-slot": "scroll-area-scrollbar",
39
45
  orientation: r,
40
- className: t(
46
+ className: s(
41
47
  "flex touch-none p-px transition-colors select-none",
42
48
  r === "vertical" && "h-full w-2.5 border-l border-l-transparent",
43
49
  r === "horizontal" && "h-2.5 flex-col border-t border-t-transparent",
@@ -55,8 +61,8 @@ function i({
55
61
  );
56
62
  }
57
63
  export {
58
- u as ScrollArea,
64
+ m as ScrollArea,
59
65
  o as ScrollAreaPrimitive,
60
- i as ScrollBar
66
+ n as ScrollBar
61
67
  };
62
68
  //# sourceMappingURL=ScrollArea.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ScrollArea.js","sources":["../../src/ScrollArea/ScrollArea.tsx"],"sourcesContent":["\"use client\"\n\nimport * as React from \"react\"\nimport * as ScrollAreaPrimitive from \"@radix-ui/react-scroll-area\"\n\nimport { cn } from \"@oneplatformdev/utils\"\n\nfunction ScrollArea({\n className,\n children,\n ...props\n }: React.ComponentProps<typeof ScrollAreaPrimitive.Root>) {\n return (\n <ScrollAreaPrimitive.Root\n data-slot=\"scroll-area\"\n className={cn(\"relative\", className)}\n {...props}\n >\n <ScrollAreaPrimitive.Viewport\n data-slot=\"scroll-area-viewport\"\n className=\"focus-visible:ring-ring/50 size-full rounded-[inherit] transition-[color,box-shadow] outline-none focus-visible:ring-[3px] focus-visible:outline-1\"\n >\n {children}\n </ScrollAreaPrimitive.Viewport>\n <ScrollBar />\n <ScrollAreaPrimitive.Corner />\n </ScrollAreaPrimitive.Root>\n )\n}\n\nfunction ScrollBar({\n className,\n orientation = \"vertical\",\n ...props\n }: React.ComponentProps<typeof ScrollAreaPrimitive.ScrollAreaScrollbar>) {\n return (\n <ScrollAreaPrimitive.ScrollAreaScrollbar\n data-slot=\"scroll-area-scrollbar\"\n orientation={orientation}\n className={cn(\n \"flex touch-none p-px transition-colors select-none\",\n orientation === \"vertical\" &&\n \"h-full w-2.5 border-l border-l-transparent\",\n orientation === \"horizontal\" &&\n \"h-2.5 flex-col border-t border-t-transparent\",\n className\n )}\n {...props}\n >\n <ScrollAreaPrimitive.ScrollAreaThumb\n data-slot=\"scroll-area-thumb\"\n className=\"bg-border relative flex-1 rounded-full\"\n />\n </ScrollAreaPrimitive.ScrollAreaScrollbar>\n )\n}\n\nexport { ScrollArea, ScrollBar, ScrollAreaPrimitive }\n"],"names":["ScrollArea","className","children","props","jsxs","ScrollAreaPrimitive","cn","jsx","ScrollBar","orientation"],"mappings":";;;AAOA,SAASA,EAAW;AAAA,EACE,WAAAC;AAAA,EACA,UAAAC;AAAA,EACA,GAAGC;AACL,GAA0D;AAC5E,SACE,gBAAAC;AAAA,IAACC,EAAoB;AAAA,IAApB;AAAA,MACC,aAAU;AAAA,MACV,WAAWC,EAAG,YAAYL,CAAS;AAAA,MAClC,GAAGE;AAAA,MAEJ,UAAA;AAAA,QAAA,gBAAAI;AAAA,UAACF,EAAoB;AAAA,UAApB;AAAA,YACC,aAAU;AAAA,YACV,WAAU;AAAA,YAET,UAAAH;AAAA,UAAA;AAAA,QAAA;AAAA,0BAEFM,GAAA,EAAU;AAAA,QACX,gBAAAD,EAACF,EAAoB,QAApB,CAAA,CAA2B;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAGlC;AAEA,SAASG,EAAU;AAAA,EACE,WAAAP;AAAA,EACA,aAAAQ,IAAc;AAAA,EACd,GAAGN;AACL,GAAyE;AAC1F,SACE,gBAAAI;AAAA,IAACF,EAAoB;AAAA,IAApB;AAAA,MACC,aAAU;AAAA,MACV,aAAAI;AAAA,MACA,WAAWH;AAAA,QACT;AAAA,QACAG,MAAgB,cAChB;AAAA,QACAA,MAAgB,gBAChB;AAAA,QACAR;AAAA,MAAA;AAAA,MAED,GAAGE;AAAA,MAEJ,UAAA,gBAAAI;AAAA,QAACF,EAAoB;AAAA,QAApB;AAAA,UACC,aAAU;AAAA,UACV,WAAU;AAAA,QAAA;AAAA,MAAA;AAAA,IACZ;AAAA,EAAA;AAGN;"}
1
+ {"version":3,"file":"ScrollArea.js","sources":["../../src/ScrollArea/ScrollArea.tsx"],"sourcesContent":["\"use client\"\n\nimport * as React from \"react\"\nimport * as ScrollAreaPrimitive from \"@radix-ui/react-scroll-area\"\n\nimport { cn } from \"@oneplatformdev/utils\"\n\nfunction ScrollArea(\n props: React.ComponentProps<typeof ScrollAreaPrimitive.Root> & {\n slotProps?: {\n viewport?: React.ComponentProps<typeof ScrollAreaPrimitive.Viewport>;\n }\n }\n) {\n const {\n className,\n children,\n slotProps,\n ...rest\n } = props;\n return (\n <ScrollAreaPrimitive.Root\n data-slot=\"scroll-area\"\n className={cn(\"relative\", className)}\n {...rest}\n >\n <ScrollAreaPrimitive.Viewport\n {...slotProps?.viewport || {}}\n data-slot=\"scroll-area-viewport\"\n className={cn(\n \"focus-visible:ring-ring/50 size-full rounded-[inherit] transition-[color,box-shadow] outline-none focus-visible:ring-[3px] focus-visible:outline-1\",\n slotProps?.viewport?.className\n )}\n >\n {children}\n </ScrollAreaPrimitive.Viewport>\n <ScrollBar />\n <ScrollAreaPrimitive.Corner />\n </ScrollAreaPrimitive.Root>\n )\n}\n\nfunction ScrollBar({\n className,\n orientation = \"vertical\",\n ...props\n }: React.ComponentProps<typeof ScrollAreaPrimitive.ScrollAreaScrollbar>) {\n return (\n <ScrollAreaPrimitive.ScrollAreaScrollbar\n data-slot=\"scroll-area-scrollbar\"\n orientation={orientation}\n className={cn(\n \"flex touch-none p-px transition-colors select-none\",\n orientation === \"vertical\" &&\n \"h-full w-2.5 border-l border-l-transparent\",\n orientation === \"horizontal\" &&\n \"h-2.5 flex-col border-t border-t-transparent\",\n className\n )}\n {...props}\n >\n <ScrollAreaPrimitive.ScrollAreaThumb\n data-slot=\"scroll-area-thumb\"\n className=\"bg-border relative flex-1 rounded-full\"\n />\n </ScrollAreaPrimitive.ScrollAreaScrollbar>\n )\n}\n\nexport { ScrollArea, ScrollBar, ScrollAreaPrimitive }\n"],"names":["ScrollArea","props","className","children","slotProps","rest","jsxs","ScrollAreaPrimitive","cn","jsx","ScrollBar","orientation"],"mappings":";;;AAOA,SAASA,EACPC,GAKA;AACA,QAAM;AAAA,IACJ,WAAAC;AAAA,IACA,UAAAC;AAAA,IACA,WAAAC;AAAA,IACA,GAAGC;AAAA,EAAA,IACDJ;AACJ,SACE,gBAAAK;AAAA,IAACC,EAAoB;AAAA,IAApB;AAAA,MACC,aAAU;AAAA,MACV,WAAWC,EAAG,YAAYN,CAAS;AAAA,MAClC,GAAGG;AAAA,MAEJ,UAAA;AAAA,QAAA,gBAAAI;AAAA,UAACF,EAAoB;AAAA,UAApB;AAAA,YACE,GAAGH,GAAW,YAAY,CAAA;AAAA,YAC3B,aAAU;AAAA,YACV,WAAWI;AAAA,cACT;AAAA,cACAJ,GAAW,UAAU;AAAA,YAAA;AAAA,YAGtB,UAAAD;AAAA,UAAA;AAAA,QAAA;AAAA,0BAEFO,GAAA,EAAU;AAAA,QACX,gBAAAD,EAACF,EAAoB,QAApB,CAAA,CAA2B;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAGlC;AAEA,SAASG,EAAU;AAAA,EACE,WAAAR;AAAA,EACA,aAAAS,IAAc;AAAA,EACd,GAAGV;AACL,GAAyE;AAC1F,SACE,gBAAAQ;AAAA,IAACF,EAAoB;AAAA,IAApB;AAAA,MACC,aAAU;AAAA,MACV,aAAAI;AAAA,MACA,WAAWH;AAAA,QACT;AAAA,QACAG,MAAgB,cAChB;AAAA,QACAA,MAAgB,gBAChB;AAAA,QACAT;AAAA,MAAA;AAAA,MAED,GAAGD;AAAA,MAEJ,UAAA,gBAAAQ;AAAA,QAACF,EAAoB;AAAA,QAApB;AAAA,UACC,aAAU;AAAA,UACV,WAAU;AAAA,QAAA;AAAA,MAAA;AAAA,IACZ;AAAA,EAAA;AAGN;"}
@@ -1 +1 @@
1
- {"version":3,"file":"Search.d.ts","sourceRoot":"","sources":["../../src/Search/Search.tsx"],"names":[],"mappings":"AAKA,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAO7C,eAAO,MAAM,MAAM,GAAI,OAAO,WAAW,4CAgDxC,CAAC"}
1
+ {"version":3,"file":"Search.d.ts","sourceRoot":"","sources":["../../src/Search/Search.tsx"],"names":[],"mappings":"AAKA,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAO7C,eAAO,MAAM,MAAM,GAAI,OAAO,WAAW,4CAgExC,CAAC"}
package/Search/Search.js CHANGED
@@ -1,48 +1,57 @@
1
1
  import { jsx as t } from "react/jsx-runtime";
2
- import { useState as g, useEffect as v } from "react";
3
- import { Input as C } from "../Input/Input.js";
4
- import { useDebounceCallback as b } from "@oneplatformdev/hooks";
5
- import { cn as x } from "@oneplatformdev/utils";
6
- import { SearchIcon as I } from "lucide-react";
7
- import { LoadedIcon as N } from "../LoadedIcon/LoadedIcon.js";
8
- const L = (n) => {
2
+ import { useState as y, useRef as C, useEffect as k, useCallback as b } from "react";
3
+ import { Input as v } from "../Input/Input.js";
4
+ import { useDebounceCallback as x, useEventListener as D } from "@oneplatformdev/hooks";
5
+ import { cn as I } from "@oneplatformdev/utils";
6
+ import { SearchIcon as K } from "lucide-react";
7
+ import { LoadedIcon as L } from "../LoadedIcon/LoadedIcon.js";
8
+ const z = (s) => {
9
9
  const {
10
- search: e,
10
+ search: o,
11
11
  onChange: c,
12
- onSearch: s,
13
- placeholder: m = "Search",
14
- className: l,
15
- loading: h = !1,
16
- slotProps: o,
17
- name: i = "search",
12
+ onSearch: l,
13
+ placeholder: i = "Search",
14
+ className: u,
15
+ loading: m = !1,
16
+ slotProps: r,
17
+ name: f = "search",
18
18
  ...p
19
- } = n, [u, a] = g(e), f = b(s, 1e3), d = (r) => {
20
- const S = r.target.value;
21
- a(S), c?.(r), f(r.target.value);
19
+ } = s, [d, n] = y(o), h = x(l, 1e3), a = C(null), w = (e) => {
20
+ const g = e.target.value;
21
+ n(g), c?.(e), h(e.target.value);
22
22
  };
23
- return v(() => {
24
- a(e ?? "");
25
- }, [e]), /* @__PURE__ */ t(
26
- C,
23
+ k(() => {
24
+ n(o ?? "");
25
+ }, [o]);
26
+ const S = b((e) => {
27
+ (e.metaKey || e.ctrlKey) && e.key.toLowerCase() === "k" && (e.preventDefault(), a.current?.focus());
28
+ }, []);
29
+ return D(
30
+ "keydown",
31
+ S,
32
+ typeof window < "u" ? window : void 0
33
+ ), /* @__PURE__ */ t(
34
+ v,
27
35
  {
28
- name: i,
29
- placeholder: m,
30
- value: u,
31
- className: x("min-w-[340px]", l),
32
- onChange: d,
36
+ ref: a,
37
+ name: f,
38
+ placeholder: i,
39
+ value: d,
40
+ className: I("min-w-[340px]", u),
41
+ onChange: w,
33
42
  ...p,
34
- ...o || {},
43
+ ...r || {},
35
44
  slotProps: {
36
- ...o || {},
45
+ ...r || {},
37
46
  input: {
38
- startAdornment: /* @__PURE__ */ t(N, { loading: h, children: /* @__PURE__ */ t(I, {}) }),
39
- ...o?.input || {}
47
+ startAdornment: /* @__PURE__ */ t(L, { loading: m, children: /* @__PURE__ */ t(K, {}) }),
48
+ ...r?.input || {}
40
49
  }
41
50
  }
42
51
  }
43
52
  );
44
53
  };
45
54
  export {
46
- L as Search
55
+ z as Search
47
56
  };
48
57
  //# sourceMappingURL=Search.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Search.js","sources":["../../src/Search/Search.tsx"],"sourcesContent":["'use client';\n\nimport { ChangeEvent, useEffect, useState } from 'react';\n\nimport { Input } from '../Input';\nimport { SearchProps } from './Search.types';\n\nimport { useDebounceCallback } from '@oneplatformdev/hooks';\nimport { cn } from '@oneplatformdev/utils';\nimport { SearchIcon } from 'lucide-react';\nimport { LoadedIcon } from '../LoadedIcon';\n\nexport const Search = (props: SearchProps) => {\n const {\n search: initialSearch,\n onChange: handleChange,\n onSearch,\n placeholder = 'Search',\n className,\n loading = false,\n slotProps,\n name = 'search',\n ...rest\n } = props;\n const [search, setSearch] = useState(initialSearch);\n const debounced = useDebounceCallback(onSearch, 1000);\n\n const onChange = (e: ChangeEvent<HTMLInputElement>) => {\n const v = e.target.value;\n setSearch(v);\n handleChange?.(e);\n debounced(e.target.value);\n };\n\n useEffect(() => {\n setSearch(initialSearch ?? '');\n }, [initialSearch]);\n\n return (\n <Input\n name={name}\n placeholder={placeholder}\n value={search}\n className={cn('min-w-[340px]', className)}\n onChange={onChange}\n {...rest}\n {...(slotProps || {})}\n slotProps={{\n ...(slotProps || {}),\n input: {\n startAdornment: (\n <LoadedIcon loading={loading}>\n <SearchIcon />\n </LoadedIcon>\n ),\n ...(slotProps?.input || {}),\n },\n }}\n />\n );\n};\n"],"names":["Search","props","initialSearch","handleChange","onSearch","placeholder","className","loading","slotProps","name","rest","search","setSearch","useState","debounced","useDebounceCallback","onChange","e","v","useEffect","jsx","Input","cn","LoadedIcon","SearchIcon"],"mappings":";;;;;;;AAYO,MAAMA,IAAS,CAACC,MAAuB;AAC5C,QAAM;AAAA,IACJ,QAAQC;AAAA,IACR,UAAUC;AAAA,IACV,UAAAC;AAAA,IACA,aAAAC,IAAc;AAAA,IACd,WAAAC;AAAA,IACA,SAAAC,IAAU;AAAA,IACV,WAAAC;AAAA,IACA,MAAAC,IAAO;AAAA,IACP,GAAGC;AAAA,EAAA,IACDT,GACE,CAACU,GAAQC,CAAS,IAAIC,EAASX,CAAa,GAC5CY,IAAYC,EAAoBX,GAAU,GAAI,GAE9CY,IAAW,CAACC,MAAqC;AACrD,UAAMC,IAAID,EAAE,OAAO;AACnB,IAAAL,EAAUM,CAAC,GACXf,IAAec,CAAC,GAChBH,EAAUG,EAAE,OAAO,KAAK;AAAA,EAC1B;AAEA,SAAAE,EAAU,MAAM;AACd,IAAAP,EAAUV,KAAiB,EAAE;AAAA,EAC/B,GAAG,CAACA,CAAa,CAAC,GAGhB,gBAAAkB;AAAA,IAACC;AAAA,IAAA;AAAA,MACC,MAAAZ;AAAA,MACA,aAAAJ;AAAA,MACA,OAAOM;AAAA,MACP,WAAWW,EAAG,iBAAiBhB,CAAS;AAAA,MACxC,UAAAU;AAAA,MACC,GAAGN;AAAA,MACH,GAAIF,KAAa,CAAA;AAAA,MAClB,WAAW;AAAA,QACT,GAAIA,KAAa,CAAA;AAAA,QACjB,OAAO;AAAA,UACL,gBACE,gBAAAY,EAACG,GAAA,EAAW,SAAAhB,GACV,UAAA,gBAAAa,EAACI,KAAW,GACd;AAAA,UAEF,GAAIhB,GAAW,SAAS,CAAA;AAAA,QAAC;AAAA,MAC3B;AAAA,IACF;AAAA,EAAA;AAGN;"}
1
+ {"version":3,"file":"Search.js","sources":["../../src/Search/Search.tsx"],"sourcesContent":["'use client';\n\nimport { ChangeEvent, useEffect, useState, KeyboardEvent, useRef, useCallback } from 'react';\n\nimport { Input } from '../Input';\nimport { SearchProps } from './Search.types';\n\nimport { useDebounceCallback, useEventListener } from '@oneplatformdev/hooks';\nimport { cn } from '@oneplatformdev/utils';\nimport { SearchIcon } from 'lucide-react';\nimport { LoadedIcon } from '../LoadedIcon';\n\nexport const Search = (props: SearchProps) => {\n const {\n search: initialSearch,\n onChange: handleChange,\n onSearch,\n placeholder = 'Search',\n className,\n loading = false,\n slotProps,\n name = 'search',\n ...rest\n } = props;\n const [ search, setSearch ] = useState(initialSearch);\n const debounced = useDebounceCallback(onSearch, 1000);\n\n const inputRef = useRef<HTMLInputElement>(null);\n\n const onChange = (e: ChangeEvent<HTMLInputElement>) => {\n const v = e.target.value;\n setSearch(v);\n handleChange?.(e);\n debounced(e.target.value);\n };\n\n useEffect(() => {\n setSearch(initialSearch ?? '');\n }, [ initialSearch ]);\n\n const handleKeyDown = useCallback((event: KeyboardEvent<HTMLInputElement>) => {\n if ((event.metaKey || event.ctrlKey) && event.key.toLowerCase() === 'k') {\n event.preventDefault();\n inputRef.current?.focus();\n }\n }, []);\n\n useEventListener(\n 'keydown',\n handleKeyDown,\n typeof window !== 'undefined' ? window : undefined\n );\n\n return (\n <Input\n ref={inputRef}\n name={name}\n placeholder={placeholder}\n value={search}\n className={cn('min-w-[340px]', className)}\n onChange={onChange}\n {...rest}\n {...(slotProps || {})}\n slotProps={{\n ...(slotProps || {}),\n input: {\n startAdornment: (\n <LoadedIcon loading={loading}>\n <SearchIcon/>\n </LoadedIcon>\n ),\n ...(slotProps?.input || {}),\n },\n }}\n />\n );\n};\n"],"names":["Search","props","initialSearch","handleChange","onSearch","placeholder","className","loading","slotProps","name","rest","search","setSearch","useState","debounced","useDebounceCallback","inputRef","useRef","onChange","v","useEffect","handleKeyDown","useCallback","event","useEventListener","jsx","Input","cn","LoadedIcon","SearchIcon"],"mappings":";;;;;;;AAYO,MAAMA,IAAS,CAACC,MAAuB;AAC5C,QAAM;AAAA,IACJ,QAAQC;AAAA,IACR,UAAUC;AAAA,IACV,UAAAC;AAAA,IACA,aAAAC,IAAc;AAAA,IACd,WAAAC;AAAA,IACA,SAAAC,IAAU;AAAA,IACV,WAAAC;AAAA,IACA,MAAAC,IAAO;AAAA,IACP,GAAGC;AAAA,EAAA,IACDT,GACE,CAAEU,GAAQC,CAAU,IAAIC,EAASX,CAAa,GAC9CY,IAAYC,EAAoBX,GAAU,GAAI,GAE9CY,IAAWC,EAAyB,IAAI,GAExCC,IAAW,CAAC,MAAqC;AACrD,UAAMC,IAAI,EAAE,OAAO;AACnB,IAAAP,EAAUO,CAAC,GACXhB,IAAe,CAAC,GAChBW,EAAU,EAAE,OAAO,KAAK;AAAA,EAC1B;AAEA,EAAAM,EAAU,MAAM;AACd,IAAAR,EAAUV,KAAiB,EAAE;AAAA,EAC/B,GAAG,CAAEA,CAAc,CAAC;AAEpB,QAAMmB,IAAgBC,EAAY,CAACC,MAA2C;AAC5E,KAAKA,EAAM,WAAWA,EAAM,YAAYA,EAAM,IAAI,YAAA,MAAkB,QAClEA,EAAM,eAAA,GACNP,EAAS,SAAS,MAAA;AAAA,EAEtB,GAAG,CAAA,CAAE;AAEL,SAAAQ;AAAA,IACE;AAAA,IACAH;AAAA,IACA,OAAO,SAAW,MAAc,SAAS;AAAA,EAAA,GAIzC,gBAAAI;AAAA,IAACC;AAAA,IAAA;AAAA,MACC,KAAKV;AAAA,MACL,MAAAP;AAAA,MACA,aAAAJ;AAAA,MACA,OAAOM;AAAA,MACP,WAAWgB,EAAG,iBAAiBrB,CAAS;AAAA,MACxC,UAAAY;AAAA,MACC,GAAGR;AAAA,MACH,GAAIF,KAAa,CAAA;AAAA,MAClB,WAAW;AAAA,QACT,GAAIA,KAAa,CAAA;AAAA,QACjB,OAAO;AAAA,UACL,gBACE,gBAAAiB,EAACG,GAAA,EAAW,SAAArB,GACV,UAAA,gBAAAkB,EAACI,KAAU,GACb;AAAA,UAEF,GAAIrB,GAAW,SAAS,CAAA;AAAA,QAAC;AAAA,MAC3B;AAAA,IACF;AAAA,EAAA;AAGN;"}
@@ -1 +1 @@
1
- {"version":3,"file":"Select.d.ts","sourceRoot":"","sources":["../../src/Select/Select.tsx"],"names":[],"mappings":"AAGA,OAAO,EAIL,WAAW,EAIZ,MAAM,WAAW,CAAC;AAkGnB,eAAO,MAAM,MAAM,GAAI,gBAAgB,EACrC,OAAO,WAAW,CAAC,gBAAgB,CAAC,4CAwCrC,CAAC"}
1
+ {"version":3,"file":"Select.d.ts","sourceRoot":"","sources":["../../src/Select/Select.tsx"],"names":[],"mappings":"AAGA,OAAO,EAIL,WAAW,EAIZ,MAAM,WAAW,CAAC;AAkGnB,eAAO,MAAM,MAAM,GAAI,gBAAgB,EACrC,OAAO,WAAW,CAAC,gBAAgB,CAAC,4CAiDrC,CAAC"}
package/Select/Select.js CHANGED
@@ -1,90 +1,95 @@
1
- import { jsxs as u, jsx as r, Fragment as g } from "react/jsx-runtime";
2
- import { createElement as m } from "react";
3
- import { Button as h } from "../Button/Button.js";
1
+ import { jsxs as u, jsx as o, Fragment as y } from "react/jsx-runtime";
2
+ import { useMemo as S, createElement as p } from "react";
3
+ import { Button as v } from "../Button/Button.js";
4
4
  import "../Button/buttonVariants.js";
5
- import { SelectRoot as x, SelectContent as v, SelectTrigger as y, SelectValue as S, SelectItem as b } from "./SelectRoot.js";
6
- import { cn as C } from "@oneplatformdev/utils";
7
- const N = (e) => {
8
- const { placeholder: n, renderTrigger: t, slotProps: l } = e, o = /* @__PURE__ */ r(y, { ...l?.triggerProps || {}, children: /* @__PURE__ */ r(S, { placeholder: n }) });
9
- return t && typeof t == "function" ? t(e, o) : o;
10
- }, a = (e) => {
11
- const { children: n, child: t, option: l, deep: o = 0, className: c, style: i = {} } = e;
5
+ import { SelectRoot as b, SelectContent as C, SelectTrigger as O, SelectValue as N, SelectItem as P } from "./SelectRoot.js";
6
+ import { cn as R } from "@oneplatformdev/utils";
7
+ const k = (e) => {
8
+ const { placeholder: n, renderTrigger: t, slotProps: l } = e, r = /* @__PURE__ */ o(O, { ...l?.triggerProps || {}, children: /* @__PURE__ */ o(N, { placeholder: n }) });
9
+ return t && typeof t == "function" ? t(e, r) : r;
10
+ }, s = (e) => {
11
+ const { children: n, child: t, option: l, deep: r = 0, className: c, style: a = {} } = e;
12
12
  return /* @__PURE__ */ u(
13
- b,
13
+ P,
14
14
  {
15
15
  value: l.value ?? "",
16
16
  disabled: l.disabled,
17
- className: C("cursor-pointer", c),
18
- style: { paddingLeft: `calc(8px + ${(o || 0) * 8}px)`, ...i || {} },
17
+ className: R("cursor-pointer", c),
18
+ style: { paddingLeft: `calc(8px + ${(r || 0) * 8}px)`, ...a || {} },
19
19
  children: [
20
20
  n,
21
21
  !t && l.label,
22
- t && /* @__PURE__ */ r(g, { children: typeof t == "function" ? t({ ...e }) : t })
22
+ t && /* @__PURE__ */ o(y, { children: typeof t == "function" ? t({ ...e }) : t })
23
23
  ]
24
24
  },
25
25
  l.value
26
26
  );
27
- }, p = (e) => {
28
- const { renderOption: n, option: t, index: l, options: o, deep: c = 0, ...i } = e;
29
- return n ? n && typeof n != "function" ? /* @__PURE__ */ r(a, { ...e }) : n && typeof n == "function" ? n(
27
+ }, g = (e) => {
28
+ const { renderOption: n, option: t, index: l, options: r, deep: c = 0, ...a } = e;
29
+ return n ? n && typeof n != "function" ? /* @__PURE__ */ o(s, { ...e }) : n && typeof n == "function" ? n(
30
30
  t,
31
31
  l,
32
- o,
33
- { ...i, options: o },
34
- /* @__PURE__ */ r(a, { ...e })
32
+ r,
33
+ { ...a, options: r },
34
+ /* @__PURE__ */ o(s, { ...e })
35
35
  ) : t.children?.length ? /* @__PURE__ */ u(
36
36
  "div",
37
37
  {
38
38
  className: "flex flex-col gap-1 truncate line-clamp-2",
39
39
  children: [
40
- /* @__PURE__ */ r(a, { ...e }),
41
- t.children?.map((d, s, f) => /* @__PURE__ */ m(
42
- p,
40
+ /* @__PURE__ */ o(s, { ...e }),
41
+ t.children?.map((d, f, m) => /* @__PURE__ */ p(
42
+ g,
43
43
  {
44
44
  ...e,
45
45
  key: d.value,
46
46
  option: d,
47
- options: f,
48
- index: s,
47
+ options: m,
48
+ index: f,
49
49
  deep: (c || 0) + 1
50
50
  }
51
51
  ))
52
52
  ]
53
53
  },
54
54
  t.value
55
- ) : /* @__PURE__ */ r(a, { ...e }) : /* @__PURE__ */ r(a, { ...e });
56
- }, B = (e) => {
55
+ ) : /* @__PURE__ */ o(s, { ...e }) : /* @__PURE__ */ o(s, { ...e });
56
+ }, z = (e) => {
57
57
  const {
58
58
  value: n,
59
- options: t,
60
- onChange: l,
61
- nullable: o = !1,
62
- clearLabel: c = "Clear",
63
- disabled: i,
64
- slotProps: d
65
- } = e;
66
- return /* @__PURE__ */ u(x, { value: n, onValueChange: l, disabled: i, children: [
67
- /* @__PURE__ */ r(N, { ...e }),
68
- /* @__PURE__ */ u(v, { ...d?.selectProps || {}, children: [
69
- o && /* @__PURE__ */ r(
70
- h,
59
+ options: t = [],
60
+ filterOption: l,
61
+ filterOptions: r,
62
+ onChange: c,
63
+ nullable: a = !1,
64
+ clearLabel: d = "Clear",
65
+ disabled: f,
66
+ slotProps: m
67
+ } = e, h = S(() => {
68
+ let i = t;
69
+ return l && (i = i.filter(l)), r && (i = r(i)), i;
70
+ }, [t, r]);
71
+ return /* @__PURE__ */ u(b, { value: n, onValueChange: c, disabled: f, children: [
72
+ /* @__PURE__ */ o(k, { ...e }),
73
+ /* @__PURE__ */ u(C, { ...m?.selectProps || {}, children: [
74
+ a && /* @__PURE__ */ o(
75
+ v,
71
76
  {
72
77
  className: "w-full px-2",
73
- variant: "secondary",
78
+ color: "secondary",
74
79
  size: "sm",
75
80
  onClick: () => {
76
- l?.("");
81
+ c?.("");
77
82
  },
78
- children: c
83
+ children: d
79
84
  }
80
85
  ),
81
- t.map((s, f) => /* @__PURE__ */ m(
82
- p,
86
+ h.map((i, x) => /* @__PURE__ */ p(
87
+ g,
83
88
  {
84
89
  ...e,
85
- key: s.value,
86
- option: s,
87
- index: f,
90
+ key: i.value,
91
+ option: i,
92
+ index: x,
88
93
  deep: 0
89
94
  }
90
95
  ))
@@ -92,6 +97,6 @@ const N = (e) => {
92
97
  ] });
93
98
  };
94
99
  export {
95
- B as Select
100
+ z as Select
96
101
  };
97
102
  //# sourceMappingURL=Select.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Select.js","sources":["../../src/Select/Select.tsx"],"sourcesContent":["import { HTMLAttributes, ReactNode } from 'react';\n\nimport { Button } from '../Button';\nimport {\n SelectContent,\n SelectItem,\n SelectOption,\n SelectProps,\n SelectRoot,\n SelectTrigger,\n SelectValue,\n} from '../Select';\nimport { cn } from '@oneplatformdev/utils';\n\nconst RenderSelectTrigger = <ExtendOptionData,>(\n props: SelectProps<ExtendOptionData>\n) => {\n const { placeholder, renderTrigger, slotProps } = props;\n const defaultComponent = (\n <SelectTrigger {...(slotProps?.triggerProps || {})}>\n <SelectValue placeholder={placeholder} />\n </SelectTrigger>\n );\n\n if (Boolean(renderTrigger) && typeof renderTrigger === 'function') {\n return renderTrigger(props, defaultComponent);\n }\n\n return defaultComponent;\n};\n\nconst DefaultRenderSelectOption = <ExtendOptionData,>(\n props: SelectProps<ExtendOptionData> & {\n option: SelectOption<ExtendOptionData>;\n index: number;\n deep?: number;\n child?: ((params: SelectProps<ExtendOptionData> & {\n option: SelectOption<ExtendOptionData>;\n index: number;\n }) => ReactNode) | ReactNode;\n } & Omit<HTMLAttributes<HTMLDivElement>, 'onChange'>\n) => {\n const { children, child, option, deep = 0, className, style = {} } = props;\n\n return (\n <SelectItem\n key={option.value}\n value={option.value ?? ''}\n disabled={option.disabled}\n className={cn('cursor-pointer', className)}\n style={{ paddingLeft: `calc(8px + ${(deep || 0) * 8}px)`, ...(style || {}) }}\n >\n {children}\n {!child && option.label}\n {child && (\n <>\n {typeof child === 'function'\n ? child({ ...props })\n : child\n }\n </>\n )}\n </SelectItem>\n )\n};\n\nconst RenderSelectOption = <ExtendOptionData,>(\n props: SelectProps<ExtendOptionData> & {\n option: SelectOption<ExtendOptionData>;\n index: number;\n deep?: number;\n }\n) => {\n const { renderOption, option, index, options, deep = 0, ...rest } = props;\n if(!renderOption) return <DefaultRenderSelectOption {...props} />;\n if(renderOption && typeof renderOption !== 'function') return <DefaultRenderSelectOption {...props} />;\n if(renderOption && typeof renderOption === 'function') return renderOption(\n option,\n index,\n options,\n { ...rest, options },\n <DefaultRenderSelectOption {...props} />\n )\n\n if(!option.children?.length) {\n return <DefaultRenderSelectOption {...props} />;\n }\n\n return (\n <div\n key={option.value}\n className=\"flex flex-col gap-1 truncate line-clamp-2\"\n >\n <DefaultRenderSelectOption {...props} />\n {option.children?.map((child, idx, arr) => (\n <RenderSelectOption\n {...props}\n key={child.value}\n option={child}\n options={arr}\n index={idx}\n deep={(deep || 0) + 1}\n />\n ))}\n </div>\n )\n};\n\n// TODO: add description\nexport const Select = <ExtendOptionData,>(\n props: SelectProps<ExtendOptionData>\n) => {\n const {\n value,\n options,\n onChange,\n nullable = false,\n clearLabel = 'Clear',\n disabled,\n slotProps,\n } = props;\n\n return (\n <SelectRoot value={value} onValueChange={onChange} disabled={disabled}>\n <RenderSelectTrigger {...props} />\n <SelectContent {...(slotProps?.selectProps || {})}>\n {nullable && (\n <Button\n className=\"w-full px-2\"\n variant=\"secondary\"\n size=\"sm\"\n onClick={() => {\n onChange?.('');\n }}\n >\n {clearLabel}\n </Button>\n )}\n {options.map((option, index) => (\n <RenderSelectOption\n {...props}\n key={option.value}\n option={option}\n index={index}\n deep={0}\n />\n ))}\n </SelectContent>\n </SelectRoot>\n );\n};\n"],"names":["RenderSelectTrigger","props","placeholder","renderTrigger","slotProps","defaultComponent","jsx","SelectTrigger","SelectValue","DefaultRenderSelectOption","children","child","option","deep","className","style","jsxs","SelectItem","cn","Fragment","RenderSelectOption","renderOption","index","options","rest","idx","arr","createElement","Select","value","onChange","nullable","clearLabel","disabled","SelectRoot","SelectContent","Button"],"mappings":"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"}
1
+ {"version":3,"file":"Select.js","sources":["../../src/Select/Select.tsx"],"sourcesContent":["import { HTMLAttributes, ReactNode, useMemo } from 'react';\n\nimport { Button } from '../Button';\nimport {\n SelectContent,\n SelectItem,\n SelectOption,\n SelectProps,\n SelectRoot,\n SelectTrigger,\n SelectValue,\n} from '../Select';\nimport { cn } from '@oneplatformdev/utils';\n\nconst RenderSelectTrigger = <ExtendOptionData, >(\n props: SelectProps<ExtendOptionData>\n) => {\n const { placeholder, renderTrigger, slotProps } = props;\n const defaultComponent = (\n <SelectTrigger {...(slotProps?.triggerProps || {})}>\n <SelectValue placeholder={placeholder}/>\n </SelectTrigger>\n );\n\n if (Boolean(renderTrigger) && typeof renderTrigger === 'function') {\n return renderTrigger(props, defaultComponent);\n }\n\n return defaultComponent;\n};\n\nconst DefaultRenderSelectOption = <ExtendOptionData, >(\n props: SelectProps<ExtendOptionData> & {\n option: SelectOption<ExtendOptionData>;\n index: number;\n deep?: number;\n child?: ((params: SelectProps<ExtendOptionData> & {\n option: SelectOption<ExtendOptionData>;\n index: number;\n }) => ReactNode) | ReactNode;\n } & Omit<HTMLAttributes<HTMLDivElement>, 'onChange'>\n) => {\n const { children, child, option, deep = 0, className, style = {} } = props;\n\n return (\n <SelectItem\n key={option.value}\n value={option.value ?? ''}\n disabled={option.disabled}\n className={cn('cursor-pointer', className)}\n style={{ paddingLeft: `calc(8px + ${(deep || 0) * 8}px)`, ...(style || {}) }}\n >\n {children}\n {!child && option.label}\n {child && (\n <>\n {typeof child === 'function'\n ? child({ ...props })\n : child\n }\n </>\n )}\n </SelectItem>\n )\n};\n\nconst RenderSelectOption = <ExtendOptionData, >(\n props: SelectProps<ExtendOptionData> & {\n option: SelectOption<ExtendOptionData>;\n index: number;\n deep?: number;\n }\n) => {\n const { renderOption, option, index, options, deep = 0, ...rest } = props;\n if (!renderOption) return <DefaultRenderSelectOption {...props} />;\n if (renderOption && typeof renderOption !== 'function') return <DefaultRenderSelectOption {...props} />;\n if (renderOption && typeof renderOption === 'function') return renderOption(\n option,\n index,\n options,\n { ...rest, options },\n <DefaultRenderSelectOption {...props} />\n )\n\n if (!option.children?.length) {\n return <DefaultRenderSelectOption {...props} />;\n }\n\n return (\n <div\n key={option.value}\n className=\"flex flex-col gap-1 truncate line-clamp-2\"\n >\n <DefaultRenderSelectOption {...props} />\n {option.children?.map((child, idx, arr) => (\n <RenderSelectOption\n {...props}\n key={child.value}\n option={child}\n options={arr}\n index={idx}\n deep={(deep || 0) + 1}\n />\n ))}\n </div>\n )\n};\n\n// TODO: add description\nexport const Select = <ExtendOptionData, >(\n props: SelectProps<ExtendOptionData>\n) => {\n const {\n value,\n options: initialOptions = [],\n filterOption,\n filterOptions,\n onChange,\n nullable = false,\n clearLabel = 'Clear',\n disabled,\n slotProps,\n } = props;\n\n const options = useMemo(() => {\n let opt = initialOptions;\n if(filterOption) opt = opt.filter(filterOption);\n if(filterOptions) opt = filterOptions(opt);\n return opt;\n }, [ initialOptions, filterOptions ]);\n\n return (\n <SelectRoot value={value} onValueChange={onChange} disabled={disabled}>\n <RenderSelectTrigger {...props} />\n <SelectContent {...(slotProps?.selectProps || {})}>\n {nullable && (\n <Button\n className=\"w-full px-2\"\n color=\"secondary\"\n size=\"sm\"\n onClick={() => {\n onChange?.('');\n }}\n >\n {clearLabel}\n </Button>\n )}\n {options.map((option, index) => (\n <RenderSelectOption\n {...props}\n key={option.value}\n option={option}\n index={index}\n deep={0}\n />\n ))}\n </SelectContent>\n </SelectRoot>\n );\n};\n"],"names":["RenderSelectTrigger","props","placeholder","renderTrigger","slotProps","defaultComponent","jsx","SelectTrigger","SelectValue","DefaultRenderSelectOption","children","child","option","deep","className","style","jsxs","SelectItem","cn","Fragment","RenderSelectOption","renderOption","index","options","rest","idx","arr","createElement","Select","value","initialOptions","filterOption","filterOptions","onChange","nullable","clearLabel","disabled","useMemo","opt","SelectRoot","SelectContent","Button"],"mappings":"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"}
@@ -13,6 +13,10 @@ export type SelectRenderOption<ExtendOptionData> = (option: SelectOption<ExtendO
13
13
  export interface SelectProps<ExtendOptionData> {
14
14
  /** Render options. */
15
15
  options: SelectOption<ExtendOptionData>[];
16
+ /** Filter options handler */
17
+ filterOptions?: (options: SelectOption<ExtendOptionData>[]) => SelectOption<ExtendOptionData>[];
18
+ /** Filter option handler */
19
+ filterOption?: (option: SelectOption<ExtendOptionData>, index: number, options: SelectOption<ExtendOptionData>[]) => boolean;
16
20
  /** Current value. */
17
21
  value?: SelectOption<ExtendOptionData>['value'];
18
22
  /** Select placeholder string. */
@@ -1 +1 @@
1
- {"version":3,"file":"Select.types.d.ts","sourceRoot":"","sources":["../../src/Select/Select.types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAC1E,OAAO,KAAK,eAAe,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAE7C,MAAM,WAAW,YAAY,CAAC,gBAAgB,GAAG,OAAO;IACtD,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,IAAI,CAAC,EAAE,gBAAgB,CAAC;IACxB,QAAQ,CAAC,EAAE,YAAY,CAAC,gBAAgB,CAAC,EAAE,CAAC;CAC7C;AAED,MAAM,MAAM,mBAAmB,CAAC,gBAAgB,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,EAAE,eAAe,CAAC,EAAE,gBAAgB,EAAE,SAAS,KAAK,SAAS,CAAC;AAE5J,MAAM,MAAM,kBAAkB,CAAC,gBAAgB,IAAI,CACjD,MAAM,EAAE,YAAY,CAAC,gBAAgB,CAAC,EACtC,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,YAAY,CAAC,gBAAgB,CAAC,EAAE,EACzC,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,EAAE,cAAc,CAAC,EAC1D,gBAAgB,EAAE,SAAS,KACxB,YAAY,CAAC;AAElB,MAAM,WAAW,WAAW,CAAC,gBAAgB;IAC3C,sBAAsB;IACtB,OAAO,EAAE,YAAY,CAAC,gBAAgB,CAAC,EAAE,CAAC;IAC1C,qBAAqB;IACrB,KAAK,CAAC,EAAE,YAAY,CAAC,gBAAgB,CAAC,CAAC,OAAO,CAAC,CAAC;IAChD,iCAAiC;IACjC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,yCAAyC;IACzC,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,YAAY,CAAC,gBAAgB,CAAC,CAAC,OAAO,CAAC,KAAK,IAAI,CAAC;IACpE,qCAAqC;IACrC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,qCAAqC;IACrC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,iCAAiC;IACjC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,6BAA6B;IAC7B,aAAa,CAAC,EAAE,mBAAmB,CAAC,gBAAgB,CAAC,CAAC;IACtD,4BAA4B;IAC5B,YAAY,CAAC,EAAE,kBAAkB,CAAC,gBAAgB,CAAC,CAAC;IACpD,wBAAwB;IACxB,SAAS,CAAC,EAAE;QACV,mCAAmC;QACnC,YAAY,CAAC,EAAE,wBAAwB,CAAC,OAAO,eAAe,CAAC,OAAO,CAAC,CAAC;QACxE,2BAA2B;QAC3B,WAAW,CAAC,EAAE,wBAAwB,CAAC,OAAO,aAAa,CAAC,CAAC;KAC9D,CAAC;CACH"}
1
+ {"version":3,"file":"Select.types.d.ts","sourceRoot":"","sources":["../../src/Select/Select.types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAC1E,OAAO,KAAK,eAAe,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAE7C,MAAM,WAAW,YAAY,CAAC,gBAAgB,GAAG,OAAO;IACtD,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,IAAI,CAAC,EAAE,gBAAgB,CAAC;IACxB,QAAQ,CAAC,EAAE,YAAY,CAAC,gBAAgB,CAAC,EAAE,CAAC;CAC7C;AAED,MAAM,MAAM,mBAAmB,CAAC,gBAAgB,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,EAAE,eAAe,CAAC,EAAE,gBAAgB,EAAE,SAAS,KAAK,SAAS,CAAC;AAE5J,MAAM,MAAM,kBAAkB,CAAC,gBAAgB,IAAI,CACjD,MAAM,EAAE,YAAY,CAAC,gBAAgB,CAAC,EACtC,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,YAAY,CAAC,gBAAgB,CAAC,EAAE,EACzC,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,EAAE,cAAc,CAAC,EAC1D,gBAAgB,EAAE,SAAS,KACxB,YAAY,CAAC;AAElB,MAAM,WAAW,WAAW,CAAC,gBAAgB;IAC3C,sBAAsB;IACtB,OAAO,EAAE,YAAY,CAAC,gBAAgB,CAAC,EAAE,CAAC;IAC1C,6BAA6B;IAC7B,aAAa,CAAC,EAAE,CAAC,OAAO,EAAE,YAAY,CAAC,gBAAgB,CAAC,EAAE,KAAK,YAAY,CAAC,gBAAgB,CAAC,EAAE,CAAC;IAChG,4BAA4B;IAC5B,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,YAAY,CAAC,gBAAgB,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,CAAC,gBAAgB,CAAC,EAAE,KAAK,OAAO,CAAC;IAC7H,qBAAqB;IACrB,KAAK,CAAC,EAAE,YAAY,CAAC,gBAAgB,CAAC,CAAC,OAAO,CAAC,CAAC;IAChD,iCAAiC;IACjC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,yCAAyC;IACzC,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,YAAY,CAAC,gBAAgB,CAAC,CAAC,OAAO,CAAC,KAAK,IAAI,CAAC;IACpE,qCAAqC;IACrC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,qCAAqC;IACrC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,iCAAiC;IACjC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,6BAA6B;IAC7B,aAAa,CAAC,EAAE,mBAAmB,CAAC,gBAAgB,CAAC,CAAC;IACtD,4BAA4B;IAC5B,YAAY,CAAC,EAAE,kBAAkB,CAAC,gBAAgB,CAAC,CAAC;IACpD,wBAAwB;IACxB,SAAS,CAAC,EAAE;QACV,mCAAmC;QACnC,YAAY,CAAC,EAAE,wBAAwB,CAAC,OAAO,eAAe,CAAC,OAAO,CAAC,CAAC;QACxE,2BAA2B;QAC3B,WAAW,CAAC,EAAE,wBAAwB,CAAC,OAAO,aAAa,CAAC,CAAC;KAC9D,CAAC;CACH"}
@@ -17,7 +17,7 @@ function w({
17
17
  }) {
18
18
  return /* @__PURE__ */ t(a.Value, { "data-slot": "select-value", ...e });
19
19
  }
20
- function y(e) {
20
+ function S(e) {
21
21
  const {
22
22
  className: r,
23
23
  size: o = "default",
@@ -31,7 +31,7 @@ function y(e) {
31
31
  "data-slot": "select-trigger",
32
32
  "data-size": o,
33
33
  className: s(
34
- "flex w-inherit items-center justify-between gap-2 rounded-md bg-transparent px-3 py-2 text-sm whitespace-nowrap shadow-xs",
34
+ "flex w-inherit items-center justify-between gap-2 rounded-lg bg-transparent px-3 py-2 text-sm whitespace-nowrap shadow-xs",
35
35
  "border border-input outline-none",
36
36
  "data-[placeholder]:text-muted-foreground [&_svg:not([class*='text-'])]:text-muted-foreground focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:bg-input/30 dark:hover:bg-input/50 transition-[color,box-shadow] focus-visible:ring-[3px] *:data-[slot=select-value]:line-clamp-1 *:data-[slot=select-value]:flex *:data-[slot=select-value]:items-center *:data-[slot=select-value]:gap-2 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
37
37
  "cursor-pointer",
@@ -41,12 +41,12 @@ function y(e) {
41
41
  ...c,
42
42
  children: [
43
43
  n,
44
- l && /* @__PURE__ */ t(a.Icon, { asChild: !0, children: /* @__PURE__ */ t(d, { className: "size-4 opacity-50" }) })
44
+ l && /* @__PURE__ */ t(a.Icon, { asChild: !0, children: /* @__PURE__ */ t(d, { className: "size-6 text-[#06080D]" }) })
45
45
  ]
46
46
  }
47
47
  );
48
48
  }
49
- function S({
49
+ function y({
50
50
  className: e,
51
51
  children: r,
52
52
  position: o = "popper",
@@ -165,7 +165,7 @@ function f({
165
165
  );
166
166
  }
167
167
  export {
168
- S as SelectContent,
168
+ y as SelectContent,
169
169
  b as SelectGroup,
170
170
  N as SelectItem,
171
171
  z as SelectLabel,
@@ -174,7 +174,7 @@ export {
174
174
  f as SelectScrollDownButton,
175
175
  m as SelectScrollUpButton,
176
176
  I as SelectSeparator,
177
- y as SelectTrigger,
177
+ S as SelectTrigger,
178
178
  w as SelectValue
179
179
  };
180
180
  //# sourceMappingURL=SelectRoot.js.map