@oneplatformdev/ui 0.1.99-beta.2 → 0.1.99-beta.201

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 (291) 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 +48 -26
  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 +2 -3
  10. package/AlertDialog/AlertDialog.stories.js.map +1 -1
  11. package/AlertDialog/AlertDialogRoot.d.ts.map +1 -1
  12. package/AlertDialog/AlertDialogRoot.js +23 -23
  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.d.ts +1 -1
  21. package/Badge/badgeVariants.js.map +1 -1
  22. package/Breadcrumb/Breadcrumb.js.map +1 -1
  23. package/Button/Button.d.ts +12 -6
  24. package/Button/Button.d.ts.map +1 -1
  25. package/Button/Button.js +46 -45
  26. package/Button/Button.js.map +1 -1
  27. package/Button/Button.stories.js +45 -53
  28. package/Button/Button.stories.js.map +1 -1
  29. package/Button/Button.types.d.ts +24 -1
  30. package/Button/Button.types.d.ts.map +1 -1
  31. package/Button/Button.utils.d.ts +3 -0
  32. package/Button/Button.utils.d.ts.map +1 -0
  33. package/Button/Button.utils.js +14 -0
  34. package/Button/Button.utils.js.map +1 -0
  35. package/Button/ButtonCounterBadge.d.ts +7 -0
  36. package/Button/ButtonCounterBadge.d.ts.map +1 -0
  37. package/Button/ButtonCounterBadge.js +20 -0
  38. package/Button/ButtonCounterBadge.js.map +1 -0
  39. package/Button/buttonVariants.d.ts +11 -20
  40. package/Button/buttonVariants.d.ts.map +1 -1
  41. package/Button/buttonVariants.js +76 -12
  42. package/Button/buttonVariants.js.map +1 -1
  43. package/Button/index.d.ts +1 -0
  44. package/Button/index.d.ts.map +1 -1
  45. package/Button/index.js +6 -3
  46. package/Button/index.js.map +1 -1
  47. package/ButtonIcon/ButtonIcon.d.ts +55 -0
  48. package/ButtonIcon/ButtonIcon.d.ts.map +1 -1
  49. package/ButtonIcon/ButtonIcon.js +69 -46
  50. package/ButtonIcon/ButtonIcon.js.map +1 -1
  51. package/ButtonIcon/ButtonIcon.stories.js +123 -78
  52. package/ButtonIcon/ButtonIcon.stories.js.map +1 -1
  53. package/ButtonIcon/ButtonIcon.types.d.ts +2 -1
  54. package/ButtonIcon/ButtonIcon.types.d.ts.map +1 -1
  55. package/ButtonIcon/buttonIconVariants.d.ts +1 -1
  56. package/ButtonIcon/buttonIconVariants.d.ts.map +1 -1
  57. package/ButtonIcon/buttonIconVariants.js +7 -6
  58. package/ButtonIcon/buttonIconVariants.js.map +1 -1
  59. package/CHANGELOG.md +2674 -1527
  60. package/Calendar/Calendar.js +0 -1
  61. package/Calendar/Calendar.js.map +1 -1
  62. package/Card/Card.js.map +1 -1
  63. package/Carousel/Carousel.js +6 -7
  64. package/Carousel/Carousel.js.map +1 -1
  65. package/Chart/Chart.js.map +1 -1
  66. package/Checkbox/Checkbox.d.ts.map +1 -1
  67. package/Checkbox/Checkbox.js +34 -33
  68. package/Checkbox/Checkbox.js.map +1 -1
  69. package/Checkbox/Checkbox.stories.js +108 -0
  70. package/Checkbox/Checkbox.stories.js.map +1 -0
  71. package/Collapsible/Collapsible.js.map +1 -1
  72. package/Combobox/Combobox.d.ts +1 -1
  73. package/Combobox/Combobox.d.ts.map +1 -1
  74. package/Combobox/Combobox.js +205 -192
  75. package/Combobox/Combobox.js.map +1 -1
  76. package/Combobox/Combobox.stories.js +212 -0
  77. package/Combobox/Combobox.stories.js.map +1 -0
  78. package/Combobox/Combobox.types.d.ts +34 -19
  79. package/Combobox/Combobox.types.d.ts.map +1 -1
  80. package/Combobox/ComboboxOptionItem.d.ts +4 -3
  81. package/Combobox/ComboboxOptionItem.d.ts.map +1 -1
  82. package/Combobox/ComboboxOptionItem.js +49 -22
  83. package/Combobox/ComboboxOptionItem.js.map +1 -1
  84. package/Combobox/ComboboxOptions.d.ts +2 -2
  85. package/Combobox/ComboboxOptions.d.ts.map +1 -1
  86. package/Combobox/ComboboxOptions.js +48 -49
  87. package/Combobox/ComboboxOptions.js.map +1 -1
  88. package/Command/Command.d.ts +6 -1
  89. package/Command/Command.d.ts.map +1 -1
  90. package/Command/Command.js +61 -47
  91. package/Command/Command.js.map +1 -1
  92. package/DataTable/DataTable.js +12 -13
  93. package/DataTable/DataTable.js.map +1 -1
  94. package/DataTable/DataTableColumnFilter.js +6 -7
  95. package/DataTable/DataTableColumnFilter.js.map +1 -1
  96. package/DataTable/useDataTable.js.map +1 -1
  97. package/DatePicker/DatePicker.js +12 -13
  98. package/DatePicker/DatePicker.js.map +1 -1
  99. package/Dialog/Dialog.d.ts +4 -1
  100. package/Dialog/Dialog.d.ts.map +1 -1
  101. package/Dialog/Dialog.js +70 -37
  102. package/Dialog/Dialog.js.map +1 -1
  103. package/Dialog/Dialog.stories.js +101 -0
  104. package/Dialog/Dialog.stories.js.map +1 -0
  105. package/Dialog/Dialog.types.d.ts +4 -0
  106. package/Dialog/Dialog.types.d.ts.map +1 -0
  107. package/Dialog/Dialog.types.js +2 -0
  108. package/Dialog/Dialog.types.js.map +1 -0
  109. package/Dialog/DialogOverlayScope.js.map +1 -1
  110. package/Dialog/index.d.ts +1 -0
  111. package/Dialog/index.d.ts.map +1 -1
  112. package/Drawer/Drawer.js.map +1 -1
  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.map +1 -1
  122. package/Dropzone/DropzoneFilePreview.js.map +1 -1
  123. package/Dropzone/DropzoneSinglePickPreview.js.map +1 -1
  124. package/Dropzone/DropzoneUtils.js.map +1 -1
  125. package/Form/Form.d.ts.map +1 -1
  126. package/Form/Form.js +14 -15
  127. package/Form/Form.js.map +1 -1
  128. package/Form/FormRenderControl.d.ts +1 -1
  129. package/Form/FormRenderControl.d.ts.map +1 -1
  130. package/Form/FormRenderControl.js +53 -14
  131. package/Form/FormRenderControl.js.map +1 -1
  132. package/Form/FormRenderControl.types.d.ts +4 -1
  133. package/Form/FormRenderControl.types.d.ts.map +1 -1
  134. package/Form/Form_old.js +4 -5
  135. package/Form/Form_old.js.map +1 -1
  136. package/FormCheckbox/FormCheckbox.js +4 -4
  137. package/FormCheckbox/FormCheckbox.js.map +1 -1
  138. package/FormCombobox/FormCombobox.d.ts.map +1 -1
  139. package/FormCombobox/FormCombobox.js +15 -13
  140. package/FormCombobox/FormCombobox.js.map +1 -1
  141. package/FormDatePicker/FormDatePicker.d.ts.map +1 -1
  142. package/FormDatePicker/FormDatePicker.js +18 -16
  143. package/FormDatePicker/FormDatePicker.js.map +1 -1
  144. package/FormDropzone/FormDropzone.d.ts.map +1 -1
  145. package/FormDropzone/FormDropzone.js +13 -11
  146. package/FormDropzone/FormDropzone.js.map +1 -1
  147. package/FormInput/FormInput.d.ts.map +1 -1
  148. package/FormInput/FormInput.js +47 -27
  149. package/FormInput/FormInput.js.map +1 -1
  150. package/FormInput/FormInput.stories.js +61 -0
  151. package/FormInput/FormInput.stories.js.map +1 -0
  152. package/FormInput/FormInput.types.d.ts +1 -0
  153. package/FormInput/FormInput.types.d.ts.map +1 -1
  154. package/FormRadio/FormRadio.js.map +1 -1
  155. package/FormSelect/FormSelect.d.ts.map +1 -1
  156. package/FormSelect/FormSelect.js +19 -18
  157. package/FormSelect/FormSelect.js.map +1 -1
  158. package/FormTextarea/FormTextarea.d.ts.map +1 -1
  159. package/FormTextarea/FormTextarea.js +13 -11
  160. package/FormTextarea/FormTextarea.js.map +1 -1
  161. package/Header/Header.js.map +1 -1
  162. package/HoverCard/HoverCard.js.map +1 -1
  163. package/InfoBlock/InfoBlock.d.ts +7 -0
  164. package/InfoBlock/InfoBlock.d.ts.map +1 -0
  165. package/InfoBlock/InfoBlock.js +28 -0
  166. package/InfoBlock/InfoBlock.js.map +1 -0
  167. package/InfoBlock/InfoBlock.stories.js +50 -0
  168. package/InfoBlock/InfoBlock.stories.js.map +1 -0
  169. package/InfoBlock/InfoBlock.types.d.ts +9 -0
  170. package/InfoBlock/InfoBlock.types.d.ts.map +1 -0
  171. package/InfoBlock/InfoBlock.types.js +2 -0
  172. package/InfoBlock/InfoBlock.types.js.map +1 -0
  173. package/InfoBlock/index.d.ts +3 -0
  174. package/InfoBlock/index.d.ts.map +1 -0
  175. package/InfoBlock/index.js +5 -0
  176. package/InfoBlock/index.js.map +1 -0
  177. package/InfoBlock/infoBlockVariants.d.ts +6 -0
  178. package/InfoBlock/infoBlockVariants.d.ts.map +1 -0
  179. package/InfoBlock/infoBlockVariants.js +27 -0
  180. package/InfoBlock/infoBlockVariants.js.map +1 -0
  181. package/Input/Input.d.ts.map +1 -1
  182. package/Input/Input.js +80 -53
  183. package/Input/Input.js.map +1 -1
  184. package/Input/Input.types.d.ts +2 -0
  185. package/Input/Input.types.d.ts.map +1 -1
  186. package/Input/inputVariants.d.ts.map +1 -1
  187. package/Input/inputVariants.js +5 -4
  188. package/Input/inputVariants.js.map +1 -1
  189. package/InputOTP/InputOTP.d.ts.map +1 -1
  190. package/InputOTP/InputOTP.js.map +1 -1
  191. package/LICENSE +21 -21
  192. package/Label/Label.js.map +1 -1
  193. package/Label/labelVariants.js.map +1 -1
  194. package/LazyLoader/LazyLoader.js +4 -5
  195. package/LazyLoader/LazyLoader.js.map +1 -1
  196. package/LoadedIcon/LoadedIcon.d.ts.map +1 -1
  197. package/LoadedIcon/LoadedIcon.js +3 -1
  198. package/LoadedIcon/LoadedIcon.js.map +1 -1
  199. package/LoadingMask/LoadingMask.d.ts +1 -2
  200. package/LoadingMask/LoadingMask.d.ts.map +1 -1
  201. package/LoadingMask/LoadingMask.js +8 -8
  202. package/LoadingMask/LoadingMask.js.map +1 -1
  203. package/LoadingMask/LoadingMask.types.d.ts +1 -0
  204. package/LoadingMask/LoadingMask.types.d.ts.map +1 -1
  205. package/LoadingMask/RenderLoadingMask.js.map +1 -1
  206. package/LoadingProgress/LoadingProgress.js.map +1 -1
  207. package/LoadingProgress/loadingProgressVariants.js.map +1 -1
  208. package/Menubar/Menubar.js.map +1 -1
  209. package/NavigationMenu/NavigationMenu.js.map +1 -1
  210. package/NavigationMenu/navigationMenuVariants.js.map +1 -1
  211. package/Pagination/Pagination.js +0 -1
  212. package/Pagination/Pagination.js.map +1 -1
  213. package/Popover/Popover.js.map +1 -1
  214. package/Progress/Progress.js.map +1 -1
  215. package/README.md +7 -7
  216. package/Radio/Radio.js.map +1 -1
  217. package/RadioGroup/RadioGroup.js.map +1 -1
  218. package/Resizable/Resizable.d.ts +5 -20
  219. package/Resizable/Resizable.d.ts.map +1 -1
  220. package/Resizable/Resizable.js +48 -31
  221. package/Resizable/Resizable.js.map +1 -1
  222. package/Resizable/Resizable.stories.js +140 -0
  223. package/Resizable/Resizable.stories.js.map +1 -0
  224. package/ScrollArea/ScrollArea.js.map +1 -1
  225. package/Search/Search.d.ts.map +1 -1
  226. package/Search/Search.js +40 -31
  227. package/Search/Search.js.map +1 -1
  228. package/Search/Search.stories.js +17 -0
  229. package/Search/Search.stories.js.map +1 -0
  230. package/Select/Select.d.ts.map +1 -1
  231. package/Select/Select.js +53 -49
  232. package/Select/Select.js.map +1 -1
  233. package/Select/Select.stories.js.map +1 -1
  234. package/Select/Select.types.d.ts +4 -0
  235. package/Select/Select.types.d.ts.map +1 -1
  236. package/Select/SelectRoot.js +1 -1
  237. package/Select/SelectRoot.js.map +1 -1
  238. package/Separator/Separator.js.map +1 -1
  239. package/Sheet/Sheet.js.map +1 -1
  240. package/Sidebar/Sidebar.js +20 -21
  241. package/Sidebar/Sidebar.js.map +1 -1
  242. package/Skeleton/Skeleton.js.map +1 -1
  243. package/Slider/Slider.js.map +1 -1
  244. package/Sonner/Sonner.js.map +1 -1
  245. package/Switch/Switch.js.map +1 -1
  246. package/Table/Table.js.map +1 -1
  247. package/TablePagination/TablePagination.js +17 -21
  248. package/TablePagination/TablePagination.js.map +1 -1
  249. package/Tabs/Tabs.js.map +1 -1
  250. package/Tabs/TabsRoot.js.map +1 -1
  251. package/Textarea/Textarea.d.ts.map +1 -1
  252. package/Textarea/Textarea.js +50 -45
  253. package/Textarea/Textarea.js.map +1 -1
  254. package/Textarea/Textarea.stories.js +12 -0
  255. package/Textarea/Textarea.stories.js.map +1 -0
  256. package/Textarea/Textarea.types.d.ts +3 -1
  257. package/Textarea/Textarea.types.d.ts.map +1 -1
  258. package/Textarea/useAutosizeTextArea.d.ts +1 -1
  259. package/Textarea/useAutosizeTextArea.d.ts.map +1 -1
  260. package/Textarea/useAutosizeTextArea.js.map +1 -1
  261. package/Theme/ThemeModeToggle.js +3 -4
  262. package/Theme/ThemeModeToggle.js.map +1 -1
  263. package/Theme/ThemeProvider.js.map +1 -1
  264. package/Toast/Toast.d.ts +1 -1
  265. package/Toast/Toast.js.map +1 -1
  266. package/Toast/toast.constants.js.map +1 -1
  267. package/Toast/toastVariants.d.ts +1 -1
  268. package/Toast/toastVariants.js.map +1 -1
  269. package/Toast/useToast.js.map +1 -1
  270. package/Toaster/Toaster.js.map +1 -1
  271. package/Toggle/Toggle.js.map +1 -1
  272. package/ToggleGroup/ToggleGroup.js.map +1 -1
  273. package/Tooltip/Tooltip.d.ts.map +1 -1
  274. package/Tooltip/Tooltip.js +41 -29
  275. package/Tooltip/Tooltip.js.map +1 -1
  276. package/Tooltip/Tooltip.types.d.ts +1 -0
  277. package/Tooltip/Tooltip.types.d.ts.map +1 -1
  278. package/Tooltip/TooltipRoot.js.map +1 -1
  279. package/Tooltip/tooltipVariants.d.ts +4 -0
  280. package/Tooltip/tooltipVariants.d.ts.map +1 -0
  281. package/Tooltip/tooltipVariants.js +23 -0
  282. package/Tooltip/tooltipVariants.js.map +1 -0
  283. package/index.d.ts +1 -0
  284. package/index.d.ts.map +1 -1
  285. package/index.js +335 -330
  286. package/index.js.map +1 -1
  287. package/package.json +9 -5
  288. package/Button/Button.s.d.ts +0 -83
  289. package/Button/Button.s.d.ts.map +0 -1
  290. package/Button/Button.s.js +0 -163
  291. package/Button/Button.s.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ButtonCounterBadge.d.ts","sourceRoot":"","sources":["../../src/Button/ButtonCounterBadge.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAmC,MAAM,gBAAgB,CAAC;AAC3F,OAAO,EAAE,KAAK,mBAAmB,EAAuB,MAAM,kBAAkB,CAAC;AAGjF,MAAM,WAAW,uBAAwB,SAAQ,mBAAmB;IAClE,OAAO,CAAC,EAAE,wBAAwB,CAAC;CACpC;AAgBD,eAAO,MAAM,kBAAkB,GAAI,OAAO,uBAAuB,mDAchE,CAAA"}
@@ -0,0 +1,20 @@
1
+ import { jsxs as i, jsx as s } from "react/jsx-runtime";
2
+ import { buttonBadgeVariants as c } from "./buttonVariants.js";
3
+ import { cn as u } from "@oneplatformdev/utils";
4
+ const a = (t) => t ? typeof t == "number" ? { count: t } : t : null, o = 99, l = (t) => Math.max(0, Math.min(t || 0, o)), m = (t) => t > o, x = (t) => {
5
+ const { counter: r, ...e } = t, n = a(r);
6
+ return n?.count ? /* @__PURE__ */ i(
7
+ "div",
8
+ {
9
+ className: u(c({ ...e })),
10
+ children: [
11
+ l(n.count),
12
+ m(n.count) && /* @__PURE__ */ s("span", { className: "relative -top-[0.5px]", children: "+" })
13
+ ]
14
+ }
15
+ ) : null;
16
+ };
17
+ export {
18
+ x as ButtonCounterBadge
19
+ };
20
+ //# sourceMappingURL=ButtonCounterBadge.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ButtonCounterBadge.js","sources":["../../src/Button/ButtonCounterBadge.tsx"],"sourcesContent":["import { ButtonCounterBadgeReader, ButtonCounterBadgeReaderOptions } from \"./Button.types\";\r\nimport { type ButtonBadgeCVAProps, buttonBadgeVariants } from \"./buttonVariants\";\r\nimport { cn } from \"@oneplatformdev/utils\";\r\n\r\nexport interface ButtonCounterBadgeProps extends ButtonBadgeCVAProps {\r\n counter?: ButtonCounterBadgeReader;\r\n}\r\n\r\nconst normalizeCounter = (counter: ButtonCounterBadgeReader): ButtonCounterBadgeReaderOptions | null => {\r\n if(!counter) return null\r\n if(typeof counter === 'number') return { count: counter };\r\n return counter;\r\n}\r\n\r\nconst MIN_COUNT = 99;\r\nconst normalizeCount = (count: number): number => {\r\n const c = count || 0;\r\n return Math.max(0, Math.min(c, MIN_COUNT));\r\n}\r\n\r\nconst isOverflown = (count: number): boolean => count > MIN_COUNT\r\n\r\nexport const ButtonCounterBadge = (props: ButtonCounterBadgeProps) => {\r\n const {counter: initializeCounter, ...rest} = props;\r\n const counter = normalizeCounter(initializeCounter);\r\n if(!counter?.count) return null;\r\n return (\r\n <div\r\n className={cn(buttonBadgeVariants({ ...rest }))}\r\n >\r\n {normalizeCount(counter.count)}\r\n {isOverflown(counter.count) && (\r\n <span className=\"relative -top-[0.5px]\">+</span>\r\n )}\r\n </div>\r\n )\r\n}\r\n"],"names":["normalizeCounter","counter","MIN_COUNT","normalizeCount","count","isOverflown","ButtonCounterBadge","props","initializeCounter","rest","jsxs","cn","buttonBadgeVariants"],"mappings":";;;AAQA,MAAMA,IAAmB,CAACC,MACpBA,IACD,OAAOA,KAAY,WAAiB,EAAE,OAAOA,EAAA,IACzCA,IAFa,MAKhBC,IAAY,IACZC,IAAiB,CAACC,MAEf,KAAK,IAAI,GAAG,KAAK,IADdA,KAAS,GACYF,CAAS,CAAC,GAGrCG,IAAc,CAACD,MAA2BA,IAAQF,GAE3CI,IAAqB,CAACC,MAAmC;AACpE,QAAM,EAAC,SAASC,GAAmB,GAAGC,MAAQF,GACxCN,IAAUD,EAAiBQ,CAAiB;AAClD,SAAIP,GAAS,QAEX,gBAAAS;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAWC,EAAGC,EAAoB,EAAE,GAAGH,EAAA,CAAM,CAAC;AAAA,MAE7C,UAAA;AAAA,QAAAN,EAAeF,EAAQ,KAAK;AAAA,QAC5BI,EAAYJ,EAAQ,KAAK,uBACvB,QAAA,EAAK,WAAU,yBAAwB,UAAA,IAAA,CAAC;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA,IAPpB;AAW7B;"}
@@ -1,25 +1,16 @@
1
1
  import { VariantProps } from 'class-variance-authority';
2
2
  export declare const buttonVariants: (props?: ({
3
- variant?: "none" | "default" | "destructive" | "outline" | "secondary" | "contained" | "outlined" | "ghost" | null | undefined;
4
- color?: "secondary" | "primary" | "error" | null | undefined;
3
+ variant?: "none" | "contained" | "outlined" | "ghost" | null | undefined;
4
+ color?: "primary" | "secondary" | "error" | null | undefined;
5
5
  size?: "xs" | "sm" | "md" | "lg" | null | undefined;
6
6
  } & import('class-variance-authority/types').ClassProp) | undefined) => string;
7
- export type ButtonCVAProps = VariantProps<typeof buttonVariants>;
8
- type ButtonCVANoVariantProps = Omit<VariantProps<typeof buttonVariants>, 'variant'>;
9
- type ButtonCVAVariants = ButtonCVAProps['variant'];
10
- /** @deprecated use "variant=contained color=primary" instead */
11
- type LegacyDefaultVariant = 'default';
12
- /** @deprecated use "variant=outlined color=primary" instead */
13
- type LegacyOutlineVariant = 'outline';
14
- /** @deprecated use "variant=text color=primary" instead */
15
- type LegacyGhostVariant = 'ghost';
16
- /** @deprecated use "variant=contained color=secondary" instead */
17
- type LegacySecondaryVariant = 'secondary';
18
- /** @deprecated use "variant=contained color=error" instead */
19
- type LegacyDestructiveVariant = 'destructive';
20
- type ModernVariant = Exclude<ButtonCVAVariants, 'default' | 'outline' | 'ghost' | 'secondary' | 'destructive'> | LegacyDefaultVariant | LegacyOutlineVariant | LegacyGhostVariant | LegacySecondaryVariant | LegacyDestructiveVariant;
21
- export interface ButtonVarianceProps extends ButtonCVANoVariantProps {
22
- variant?: ModernVariant;
23
- }
24
- export {};
7
+ export type ButtonVarianceProps = VariantProps<typeof buttonVariants>;
8
+ export declare const buttonBadgeVariants: (props?: ({
9
+ variant?: "none" | "contained" | "outlined" | "ghost" | null | undefined;
10
+ color?: "primary" | "secondary" | "error" | null | undefined;
11
+ size?: "xs" | "sm" | "md" | "lg" | null | undefined;
12
+ rounded?: boolean | null | undefined;
13
+ disabled?: boolean | null | undefined;
14
+ } & import('class-variance-authority/types').ClassProp) | undefined) => string;
15
+ export type ButtonBadgeCVAProps = VariantProps<typeof buttonBadgeVariants>;
25
16
  //# sourceMappingURL=buttonVariants.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"buttonVariants.d.ts","sourceRoot":"","sources":["../../src/Button/buttonVariants.ts"],"names":[],"mappings":"AAAA,OAAO,EAAO,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAGlE,eAAO,MAAM,cAAc;;;;8EAmJ1B,CAAA;AAED,MAAM,MAAM,cAAc,GAAG,YAAY,CAAC,OAAO,cAAc,CAAC,CAAC;AAEjE,KAAK,uBAAuB,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,cAAc,CAAC,EAAE,SAAS,CAAC,CAAA;AAEnF,KAAK,iBAAiB,GAAG,cAAc,CAAC,SAAS,CAAC,CAAC;AAEnD,gEAAgE;AAChE,KAAK,oBAAoB,GAAG,SAAS,CAAC;AACtC,+DAA+D;AAC/D,KAAK,oBAAoB,GAAG,SAAS,CAAC;AACtC,2DAA2D;AAC3D,KAAK,kBAAkB,GAAG,OAAO,CAAC;AAClC,kEAAkE;AAClE,KAAK,sBAAsB,GAAG,WAAW,CAAC;AAC1C,8DAA8D;AAC9D,KAAK,wBAAwB,GAAG,aAAa,CAAC;AAE9C,KAAK,aAAa,GACd,OAAO,CAAC,iBAAiB,EAAE,SAAS,GAAG,SAAS,GAAG,OAAO,GAAG,WAAW,GAAG,aAAa,CAAC,GACzF,oBAAoB,GACpB,oBAAoB,GACpB,kBAAkB,GAClB,sBAAsB,GACtB,wBAAwB,CAAC;AAE7B,MAAM,WAAW,mBAAoB,SAAQ,uBAAuB;IAClE,OAAO,CAAC,EAAE,aAAa,CAAC;CACzB"}
1
+ {"version":3,"file":"buttonVariants.d.ts","sourceRoot":"","sources":["../../src/Button/buttonVariants.ts"],"names":[],"mappings":"AAAA,OAAO,EAAO,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAGlE,eAAO,MAAM,cAAc;;;;8EA+I1B,CAAA;AAED,MAAM,MAAM,mBAAmB,GAAG,YAAY,CAAC,OAAO,cAAc,CAAC,CAAC;AAEtE,eAAO,MAAM,mBAAmB;;;;;;8EAoE/B,CAAA;AACD,MAAM,MAAM,mBAAmB,GAAG,YAAY,CAAC,OAAO,mBAAmB,CAAC,CAAC"}
@@ -1,22 +1,18 @@
1
- import { cva as t } from "class-variance-authority";
1
+ import { cva as r } from "class-variance-authority";
2
2
  import { cn as e } from "@oneplatformdev/utils";
3
- const o = t(
3
+ const s = r(
4
4
  [
5
- "inline-flex items-center justify-center",
5
+ "inline-flex items-center justify-center box-border",
6
6
  "whitespace-nowrap font-medium",
7
- "cursor-pointer box-border",
7
+ "cursor-pointer",
8
8
  "transition-colors focus-visible:outline-hidden focus-visible:ring-none focus-visible:ring-transparent",
9
9
  "disabled:pointer-events-none disabled:cursor-default",
10
- "[&_svg]:pointer-events-none [&_svg]:shrink-0"
10
+ "[&_svg]:pointer-events-none [&_svg]:shrink-0",
11
+ "transition-transform duration-200 [&_svg]:transition-transform [&_svg]:duration-200"
11
12
  ],
12
13
  {
13
14
  variants: {
14
15
  variant: {
15
- default: "deprecated.do_not_use",
16
- outline: "deprecated.do_not_use",
17
- secondary: "deprecated.do_not_use",
18
- destructive: "deprecated.do_not_use",
19
- //
20
16
  none: "",
21
17
  contained: "",
22
18
  outlined: "",
@@ -35,7 +31,7 @@ const o = t(
35
31
  "text-sm leading-[1.12] [&_svg]:size-6"
36
32
  ),
37
33
  lg: e(
38
- "min-h-10 min-w-35 rounded-lg gap-1 px-3 py-2",
34
+ "min-h-10 min-w-35 rounded-lg gap-1 px-2.5 py-1.5",
39
35
  "text-base leading-normal [&_svg]:size-6"
40
36
  )
41
37
  }
@@ -147,8 +143,76 @@ const o = t(
147
143
  size: "lg"
148
144
  }
149
145
  }
146
+ ), o = r(
147
+ [
148
+ "absolute z-0",
149
+ "flex items-center justify-center text-center p-0",
150
+ "font-medium leading-none tracking-tighter",
151
+ "rounded-full w-fit min-w-4 h-4 text-[10px] px-0.5 box-border"
152
+ ],
153
+ {
154
+ variants: {
155
+ variant: {
156
+ none: "",
157
+ contained: "",
158
+ outlined: "",
159
+ ghost: ""
160
+ },
161
+ color: {
162
+ primary: "",
163
+ secondary: "",
164
+ error: ""
165
+ },
166
+ size: {
167
+ xs: "",
168
+ sm: "",
169
+ md: "",
170
+ lg: "-top-[2px] left-[14px]"
171
+ },
172
+ rounded: {
173
+ true: "left-1/2 -translate-x-1/2 -translate-y-1/2",
174
+ false: ""
175
+ },
176
+ disabled: {
177
+ true: "",
178
+ false: ""
179
+ }
180
+ },
181
+ compoundVariants: [
182
+ // SIZE XS
183
+ { size: "xs", rounded: !1, className: "-top-px -right-px translate-x-1/2 -translate-y-1/2" },
184
+ { size: "xs", rounded: !0, className: "-top-px" },
185
+ // SIZE SM
186
+ { size: "sm", rounded: !1, className: "top-0 right-0 translate-x-1/2 -translate-y-1/2" },
187
+ { size: "sm", rounded: !0, className: "-top-[3px]" },
188
+ // SIZE MD
189
+ { size: "md", rounded: !1, className: "-top-[4px] left-[12px]" },
190
+ { size: "md", rounded: !0, className: "-top-[6px]" },
191
+ // SIZE LG
192
+ { size: "lg", rounded: !1, className: "-top-[4px] left-[12px]" },
193
+ { size: "lg", rounded: !0, className: "-top-2" },
194
+ // COLORS
195
+ {
196
+ color: ["primary", "secondary", "error"],
197
+ className: "bg-[#9368FF] text-[#FCFCFC]"
198
+ },
199
+ {
200
+ color: ["primary", "secondary", "error"],
201
+ disabled: !0,
202
+ className: "bg-[#666A78] text-[#FCFCFC]"
203
+ }
204
+ ],
205
+ defaultVariants: {
206
+ color: "primary",
207
+ variant: "contained",
208
+ size: "lg",
209
+ disabled: !1,
210
+ rounded: !1
211
+ }
212
+ }
150
213
  );
151
214
  export {
152
- o as buttonVariants
215
+ o as buttonBadgeVariants,
216
+ s as buttonVariants
153
217
  };
154
218
  //# sourceMappingURL=buttonVariants.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"buttonVariants.js","sources":["../../src/Button/buttonVariants.ts"],"sourcesContent":["import { cva, type VariantProps } from 'class-variance-authority';\nimport { cn } from \"@oneplatformdev/utils\";\n\nexport const buttonVariants = cva(\n [\n \"inline-flex items-center justify-center\",\n 'whitespace-nowrap font-medium',\n 'cursor-pointer box-border',\n \"transition-colors focus-visible:outline-hidden focus-visible:ring-none focus-visible:ring-transparent\",\n \"disabled:pointer-events-none disabled:cursor-default\",\n \"[&_svg]:pointer-events-none [&_svg]:shrink-0\",\n ],\n {\n variants: {\n variant: {\n default: \"deprecated.do_not_use\",\n outline: \"deprecated.do_not_use\",\n secondary: \"deprecated.do_not_use\",\n destructive: \"deprecated.do_not_use\",\n //\n none: \"\",\n contained: \"\",\n outlined: \"\",\n ghost: '',\n },\n color: {\n primary: '',\n secondary: '',\n error: '',\n },\n size: {\n xs: 'rounded-sm p-1 gap-1 text-xs min-h-4 min-w-14',\n sm: 'rounded-md p-1 gap-1 text-sm min-h-6 min-w-20',\n md: cn(\n 'min-h-8 min-w-[102px] rounded-lg gap-1 px-2 py-1',\n 'text-sm leading-[1.12] [&_svg]:size-6',\n ),\n lg: cn(\n \"min-h-10 min-w-35 rounded-lg gap-1 px-3 py-2\",\n 'text-base leading-normal [&_svg]:size-6',\n )\n }\n },\n compoundVariants: [\n // PRIMARY BUTTON VARIANTS\n {\n color: 'primary',\n variant: 'contained',\n className: cn(\n 'bg-[#9368FF] border border-[#9368FF] text-[#FCFCFC] [&_svg]:text-[#FCFCFC]',\n 'hover:bg-[#7F4EEB]',\n 'focus:bg-[#7F4EEB] focus:border-[#6B3DD9]',\n 'active:bg-[#6B3DD9]',\n 'disabled:bg-[#E8E9EB] disabled:border-[#E8E9EB] disabled:text-[#666A78] disabled:[&_svg]:text-[#666A78]',\n ),\n },\n {\n color: 'primary',\n variant: 'outlined',\n className: cn(\n 'bg-transparent border border-[#9368FF] text-[#9368FF] [&_svg]:text-[#9368FF]',\n 'hover:bg-[#9368FF0F]',\n 'active:bg-[#9368FF0F] active:border-[#6B3DD9]',\n 'disabled:border-[#EBEBEB] disabled:text-[#666A78] disabled:[&_svg]:text-[#666A78]',\n ),\n },\n {\n color: 'primary',\n variant: 'ghost',\n className: cn(\n 'bg-transparent border border-transparent text-[#9368FF] [&_svg]:text-[#9368FF]',\n 'hover:text-[#6B3DD9] hover:[&_svg]:text-[#6B3DD9]',\n 'focus:text-[#6B3DD9] focus:[&_svg]:text-[#6B3DD9]',\n 'active:bg-[#9368FF0F]',\n 'disabled:text-[#666A78] disabled:[&_svg]:text-[#666A78]',\n ),\n },\n // SECONDARY BUTTON VARIANTS\n {\n color: 'secondary',\n variant: 'contained',\n className: cn(\n 'bg-[#FCFCFC] border border-[#E1E1E5] text-[#06080D] [&_svg]:text-[#06080D]',\n 'hover:bg-[#F9FAFB] hover:border-[#E1E1E5]',\n 'focus:bg-[#FCFCFC] focus:border-[#C5C7CD]',\n 'active:bg-[#F9FAFB] active:border-[#C5C7CD]',\n 'disabled:bg-[#FCFCFC] disabled:border-[#EBEBEB] disabled:text-[#666A78] disabled:[&_svg]:text-[#666A78]',\n ),\n },\n {\n color: 'secondary',\n variant: 'outlined',\n className: cn(\n 'bg-transparent border border-[#E1E1E5] text-[#06080D] [&_svg]:text-[#06080D]',\n 'hover:bg-[#F9FAFB] hover:border-[#E1E1E5]',\n 'focus:bg-[#FCFCFC] focus:border-[#C5C7CD]',\n 'active:bg-[#F9FAFB] active:border-[#C5C7CD]',\n 'disabled:bg-[#FCFCFC] disabled:border-[#EBEBEB] disabled:text-[#666A78] disabled:[&_svg]:text-[#666A78]',\n ),\n },\n {\n color: 'secondary',\n variant: 'ghost',\n className: cn(\n 'text-[#06080D] [&_svg]:text-[#06080D] bg-transparent border border-transparent',\n 'hover:bg-[#F9FAFB]',\n 'focus:bg-[#FCFCFC]',\n 'active:bg-[#F9FAFB]',\n 'disabled:bg-[#FCFCFC] disabled:text-[#666A78] disabled:[&_svg]:text-[#666A78]',\n ),\n },\n // ERROR BUTTON VARIANTS\n {\n color: 'error',\n variant: 'contained',\n className: cn(\n 'bg-[#EF4444] border border-[#EF4444] text-[#FCFCFC] [&_svg]:text-[#FCFCFC]',\n 'hover:bg-[#DC2626]',\n 'focus:bg-[#DC2626]',\n 'active:bg-[#DC2626]',\n 'disabled:bg-[#E8E9EB] disabled:border-[#E8E9EB] disabled:text-[#666A78] disabled:[&_svg]:text-[#666A78]',\n ),\n },\n {\n color: 'error',\n variant: 'outlined',\n className: cn(\n 'bg-transparent border border-[#EF4444] text-[#EF4444] [&_svg]:text-[#EF4444]',\n 'hover:bg-[#EF44440F]',\n 'active:bg-[#DC26260F] active:border-[#DC2626]',\n 'disabled:border-[#EBEBEB] disabled:text-[#666A78] disabled:[&_svg]:text-[#666A78]',\n ),\n },\n {\n color: 'error',\n variant: 'ghost',\n className: cn(\n 'bg-transparent border border-transparent text-[#EF4444] [&_svg]:text-[#EF4444]',\n 'hover:bg-[#EF44440F] hover:text-[#DC2626] hover:[&_svg]:text-[#DC2626]',\n 'active:bg-[#DC26260F] active:border-[#DC2626]',\n 'disabled:text-[#666A78] disabled:[&_svg]:text-[#666A78]',\n ),\n },\n ],\n defaultVariants: {\n variant: 'contained',\n color: 'primary',\n size: 'lg',\n },\n }\n)\n\nexport type ButtonCVAProps = VariantProps<typeof buttonVariants>;\n\ntype ButtonCVANoVariantProps = Omit<VariantProps<typeof buttonVariants>, 'variant'>\n\ntype ButtonCVAVariants = ButtonCVAProps['variant'];\n\n/** @deprecated use \"variant=contained color=primary\" instead */\ntype LegacyDefaultVariant = 'default';\n/** @deprecated use \"variant=outlined color=primary\" instead */\ntype LegacyOutlineVariant = 'outline';\n/** @deprecated use \"variant=text color=primary\" instead */\ntype LegacyGhostVariant = 'ghost';\n/** @deprecated use \"variant=contained color=secondary\" instead */\ntype LegacySecondaryVariant = 'secondary';\n/** @deprecated use \"variant=contained color=error\" instead */\ntype LegacyDestructiveVariant = 'destructive';\n\ntype ModernVariant =\n | Exclude<ButtonCVAVariants, 'default' | 'outline' | 'ghost' | 'secondary' | 'destructive'>\n | LegacyDefaultVariant\n | LegacyOutlineVariant\n | LegacyGhostVariant\n | LegacySecondaryVariant\n | LegacyDestructiveVariant;\n\nexport interface ButtonVarianceProps extends ButtonCVANoVariantProps {\n variant?: ModernVariant;\n}\n"],"names":["buttonVariants","cva","cn"],"mappings":";;AAGO,MAAMA,IAAiBC;AAAA,EAC5B;AAAA,IACE;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EAAA;AAAA,EAEF;AAAA,IACE,UAAU;AAAA,MACR,SAAS;AAAA,QACP,SAAS;AAAA,QACT,SAAS;AAAA,QACT,WAAW;AAAA,QACX,aAAa;AAAA;AAAA,QAEb,MAAM;AAAA,QACN,WAAW;AAAA,QACX,UAAU;AAAA,QACV,OAAO;AAAA,MAAA;AAAA,MAET,OAAO;AAAA,QACL,SAAS;AAAA,QACT,WAAW;AAAA,QACX,OAAO;AAAA,MAAA;AAAA,MAET,MAAM;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,IAAIC;AAAA,UACF;AAAA,UACA;AAAA,QAAA;AAAA,QAEF,IAAIA;AAAA,UACF;AAAA,UACA;AAAA,QAAA;AAAA,MACF;AAAA,IACF;AAAA,IAEF,kBAAkB;AAAA;AAAA,MAEhB;AAAA,QACE,OAAO;AAAA,QACP,SAAS;AAAA,QACT,WAAWA;AAAA,UACT;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,QAAA;AAAA,MACF;AAAA,MAEF;AAAA,QACE,OAAO;AAAA,QACP,SAAS;AAAA,QACT,WAAWA;AAAA,UACT;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,QAAA;AAAA,MACF;AAAA,MAEF;AAAA,QACE,OAAO;AAAA,QACP,SAAS;AAAA,QACT,WAAWA;AAAA,UACT;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,QAAA;AAAA,MACF;AAAA;AAAA,MAGF;AAAA,QACE,OAAO;AAAA,QACP,SAAS;AAAA,QACT,WAAWA;AAAA,UACT;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,QAAA;AAAA,MACF;AAAA,MAEF;AAAA,QACE,OAAO;AAAA,QACP,SAAS;AAAA,QACT,WAAWA;AAAA,UACT;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,QAAA;AAAA,MACF;AAAA,MAEF;AAAA,QACE,OAAO;AAAA,QACP,SAAS;AAAA,QACT,WAAWA;AAAA,UACT;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,QAAA;AAAA,MACF;AAAA;AAAA,MAGF;AAAA,QACE,OAAO;AAAA,QACP,SAAS;AAAA,QACT,WAAWA;AAAA,UACT;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,QAAA;AAAA,MACF;AAAA,MAEF;AAAA,QACE,OAAO;AAAA,QACP,SAAS;AAAA,QACT,WAAWA;AAAA,UACT;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,QAAA;AAAA,MACF;AAAA,MAEF;AAAA,QACE,OAAO;AAAA,QACP,SAAS;AAAA,QACT,WAAWA;AAAA,UACT;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,QAAA;AAAA,MACF;AAAA,IACF;AAAA,IAEF,iBAAiB;AAAA,MACf,SAAS;AAAA,MACT,OAAO;AAAA,MACP,MAAM;AAAA,IAAA;AAAA,EACR;AAEJ;"}
1
+ {"version":3,"file":"buttonVariants.js","sources":["../../src/Button/buttonVariants.ts"],"sourcesContent":["import { cva, type VariantProps } from 'class-variance-authority';\r\nimport { cn } from \"@oneplatformdev/utils\";\r\n\r\nexport const buttonVariants = cva(\r\n [\r\n \"inline-flex items-center justify-center box-border\",\r\n 'whitespace-nowrap font-medium',\r\n 'cursor-pointer',\r\n \"transition-colors focus-visible:outline-hidden focus-visible:ring-none focus-visible:ring-transparent\",\r\n \"disabled:pointer-events-none disabled:cursor-default\",\r\n \"[&_svg]:pointer-events-none [&_svg]:shrink-0\",\r\n 'transition-transform duration-200 [&_svg]:transition-transform [&_svg]:duration-200',\r\n ],\r\n {\r\n variants: {\r\n variant: {\r\n none: \"\",\r\n contained: \"\",\r\n outlined: \"\",\r\n ghost: '',\r\n },\r\n color: {\r\n primary: '',\r\n secondary: '',\r\n error: '',\r\n },\r\n size: {\r\n xs: 'rounded-sm p-1 gap-1 text-xs min-h-4 min-w-14',\r\n sm: 'rounded-md p-1 gap-1 text-sm min-h-6 min-w-20',\r\n md: cn(\r\n 'min-h-8 min-w-[102px] rounded-lg gap-1 px-2 py-1',\r\n 'text-sm leading-[1.12] [&_svg]:size-6',\r\n ),\r\n lg: cn(\r\n \"min-h-10 min-w-35 rounded-lg gap-1 px-2.5 py-1.5\",\r\n 'text-base leading-normal [&_svg]:size-6',\r\n )\r\n }\r\n },\r\n compoundVariants: [\r\n // PRIMARY BUTTON VARIANTS\r\n {\r\n color: 'primary',\r\n variant: 'contained',\r\n className: cn(\r\n 'bg-[#9368FF] border border-[#9368FF] text-[#FCFCFC] [&_svg]:text-[#FCFCFC]',\r\n 'hover:bg-[#7F4EEB]',\r\n 'focus:bg-[#7F4EEB] focus:border-[#6B3DD9]',\r\n 'active:bg-[#6B3DD9]',\r\n 'disabled:bg-[#E8E9EB] disabled:border-[#E8E9EB] disabled:text-[#666A78] disabled:[&_svg]:text-[#666A78]',\r\n ),\r\n },\r\n {\r\n color: 'primary',\r\n variant: 'outlined',\r\n className: cn(\r\n 'bg-transparent border border-[#9368FF] text-[#9368FF] [&_svg]:text-[#9368FF]',\r\n 'hover:bg-[#9368FF0F]',\r\n 'active:bg-[#9368FF0F] active:border-[#6B3DD9]',\r\n 'disabled:border-[#EBEBEB] disabled:text-[#666A78] disabled:[&_svg]:text-[#666A78]',\r\n ),\r\n },\r\n {\r\n color: 'primary',\r\n variant: 'ghost',\r\n className: cn(\r\n 'bg-transparent border border-transparent text-[#9368FF] [&_svg]:text-[#9368FF]',\r\n 'hover:text-[#6B3DD9] hover:[&_svg]:text-[#6B3DD9]',\r\n 'focus:text-[#6B3DD9] focus:[&_svg]:text-[#6B3DD9]',\r\n 'active:bg-[#9368FF0F]',\r\n 'disabled:text-[#666A78] disabled:[&_svg]:text-[#666A78]',\r\n ),\r\n },\r\n // SECONDARY BUTTON VARIANTS\r\n {\r\n color: 'secondary',\r\n variant: 'contained',\r\n className: cn(\r\n 'bg-[#FCFCFC] border border-[#E1E1E5] text-[#06080D] [&_svg]:text-[#06080D]',\r\n 'hover:bg-[#F9FAFB] hover:border-[#E1E1E5]',\r\n 'focus:bg-[#FCFCFC] focus:border-[#C5C7CD]',\r\n 'active:bg-[#F9FAFB] active:border-[#C5C7CD]',\r\n 'disabled:bg-[#FCFCFC] disabled:border-[#EBEBEB] disabled:text-[#666A78] disabled:[&_svg]:text-[#666A78]',\r\n ),\r\n },\r\n {\r\n color: 'secondary',\r\n variant: 'outlined',\r\n className: cn(\r\n 'bg-transparent border border-[#E1E1E5] text-[#06080D] [&_svg]:text-[#06080D]',\r\n 'hover:bg-[#F9FAFB] hover:border-[#E1E1E5]',\r\n 'focus:bg-[#FCFCFC] focus:border-[#C5C7CD]',\r\n 'active:bg-[#F9FAFB] active:border-[#C5C7CD]',\r\n 'disabled:bg-[#FCFCFC] disabled:border-[#EBEBEB] disabled:text-[#666A78] disabled:[&_svg]:text-[#666A78]',\r\n ),\r\n },\r\n {\r\n color: 'secondary',\r\n variant: 'ghost',\r\n className: cn(\r\n 'text-[#06080D] [&_svg]:text-[#06080D] bg-transparent border border-transparent',\r\n 'hover:bg-[#F9FAFB]',\r\n 'focus:bg-[#FCFCFC]',\r\n 'active:bg-[#F9FAFB]',\r\n 'disabled:bg-[#FCFCFC] disabled:text-[#666A78] disabled:[&_svg]:text-[#666A78]',\r\n ),\r\n },\r\n // ERROR BUTTON VARIANTS\r\n {\r\n color: 'error',\r\n variant: 'contained',\r\n className: cn(\r\n 'bg-[#EF4444] border border-[#EF4444] text-[#FCFCFC] [&_svg]:text-[#FCFCFC]',\r\n 'hover:bg-[#DC2626]',\r\n 'focus:bg-[#DC2626]',\r\n 'active:bg-[#DC2626]',\r\n 'disabled:bg-[#E8E9EB] disabled:border-[#E8E9EB] disabled:text-[#666A78] disabled:[&_svg]:text-[#666A78]',\r\n ),\r\n },\r\n {\r\n color: 'error',\r\n variant: 'outlined',\r\n className: cn(\r\n 'bg-transparent border border-[#EF4444] text-[#EF4444] [&_svg]:text-[#EF4444]',\r\n 'hover:bg-[#EF44440F]',\r\n 'active:bg-[#DC26260F] active:border-[#DC2626]',\r\n 'disabled:border-[#EBEBEB] disabled:text-[#666A78] disabled:[&_svg]:text-[#666A78]',\r\n ),\r\n },\r\n {\r\n color: 'error',\r\n variant: 'ghost',\r\n className: cn(\r\n 'bg-transparent border border-transparent text-[#EF4444] [&_svg]:text-[#EF4444]',\r\n 'hover:bg-[#EF44440F] hover:text-[#DC2626] hover:[&_svg]:text-[#DC2626]',\r\n 'active:bg-[#DC26260F] active:border-[#DC2626]',\r\n 'disabled:text-[#666A78] disabled:[&_svg]:text-[#666A78]',\r\n ),\r\n },\r\n ],\r\n defaultVariants: {\r\n variant: 'contained',\r\n color: 'primary',\r\n size: 'lg',\r\n },\r\n }\r\n)\r\n\r\nexport type ButtonVarianceProps = VariantProps<typeof buttonVariants>;\r\n\r\nexport const buttonBadgeVariants = cva(\r\n [\r\n 'absolute z-0',\r\n 'flex items-center justify-center text-center p-0',\r\n 'font-medium leading-none tracking-tighter',\r\n 'rounded-full w-fit min-w-4 h-4 text-[10px] px-0.5 box-border',\r\n ],\r\n {\r\n variants: {\r\n variant: {\r\n none: '',\r\n contained: '',\r\n outlined: '',\r\n ghost: \"\",\r\n },\r\n color: {\r\n primary: \"\",\r\n secondary: \"\",\r\n error: \"\"\r\n },\r\n size: {\r\n xs: '',\r\n sm: '',\r\n md: '',\r\n lg: '-top-[2px] left-[14px]',\r\n },\r\n rounded: {\r\n true: 'left-1/2 -translate-x-1/2 -translate-y-1/2',\r\n false: '',\r\n },\r\n disabled: {\r\n true: '',\r\n false: '',\r\n }\r\n },\r\n compoundVariants: [\r\n // SIZE XS\r\n { size: 'xs', rounded: false, className: '-top-px -right-px translate-x-1/2 -translate-y-1/2' },\r\n { size: 'xs', rounded: true, className: '-top-px' },\r\n // SIZE SM\r\n { size: 'sm', rounded: false, className: 'top-0 right-0 translate-x-1/2 -translate-y-1/2' },\r\n { size: 'sm', rounded: true, className: '-top-[3px]' },\r\n // SIZE MD\r\n { size: 'md', rounded: false, className: '-top-[4px] left-[12px]' },\r\n { size: 'md', rounded: true, className: '-top-[6px]' },\r\n // SIZE LG\r\n { size: 'lg', rounded: false, className: '-top-[4px] left-[12px]' },\r\n { size: 'lg', rounded: true, className: '-top-2' },\r\n\r\n // COLORS\r\n {\r\n color: ['primary', 'secondary', 'error'],\r\n className: 'bg-[#9368FF] text-[#FCFCFC]',\r\n },\r\n {\r\n color: ['primary', 'secondary', 'error'],\r\n disabled: true,\r\n className: 'bg-[#666A78] text-[#FCFCFC]'\r\n },\r\n ],\r\n defaultVariants: {\r\n color: \"primary\",\r\n variant: \"contained\",\r\n size: \"lg\",\r\n disabled: false,\r\n rounded: false,\r\n },\r\n }\r\n)\r\nexport type ButtonBadgeCVAProps = VariantProps<typeof buttonBadgeVariants>;\r\n"],"names":["buttonVariants","cva","cn","buttonBadgeVariants"],"mappings":"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"}
package/Button/index.d.ts CHANGED
@@ -1,4 +1,5 @@
1
1
  export { Button as default, Button } from './Button';
2
2
  export * from './buttonVariants';
3
3
  export type * from './Button.types';
4
+ export * from './Button.utils';
4
5
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/Button/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AACrD,cAAc,kBAAkB,CAAC;AACjC,mBAAmB,gBAAgB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/Button/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AACrD,cAAc,kBAAkB,CAAC;AACjC,mBAAmB,gBAAgB,CAAC;AACpC,cAAc,gBAAgB,CAAC"}
package/Button/index.js CHANGED
@@ -1,8 +1,11 @@
1
- import { Button as r, Button as a } from "./Button.js";
2
- import { buttonVariants as u } from "./buttonVariants.js";
1
+ import { Button as r, Button as n } from "./Button.js";
2
+ import { buttonBadgeVariants as a, buttonVariants as u } from "./buttonVariants.js";
3
+ import { renderInnerIcon as d } from "./Button.utils.js";
3
4
  export {
4
5
  r as Button,
6
+ a as buttonBadgeVariants,
5
7
  u as buttonVariants,
6
- a as default
8
+ n as default,
9
+ d as renderInnerIcon
7
10
  };
8
11
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;"}
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;"}
@@ -1,5 +1,60 @@
1
1
  import { ButtonIconProps } from './ButtonIcon.types';
2
2
  import * as React from "react";
3
+ /**
4
+ * Icon-only version of the Button component.
5
+ *
6
+ * `ButtonIcon` is used for compact actions represented by an icon instead of text.
7
+ * Supports all core features of Button: variants, sizes, tooltips, disabled and loading state.
8
+ *
9
+ * @public
10
+ * @see [Documentation](#) // TODO: add link to docs
11
+ *
12
+ * @example
13
+ * > Import:
14
+ * ```tsx
15
+ * import { ButtonIcon } from '@oneplatformdev/ui/ButtonIcon';
16
+ * ```
17
+ * > Basic usage by icon:
18
+ * ```tsx
19
+ *<ButtonIcon icon={<PlusIcon />}/>
20
+ *<ButtonIcon icon={PlusIcon}/>
21
+ * ```
22
+ * > Basic usage by children:
23
+ * ```tsx
24
+ *<ButtonIcon>
25
+ * <PlusIcon />
26
+ *</ButtonIcon>
27
+ * ```
28
+ * > With variant & color:
29
+ * ```tsx
30
+ *<ButtonIcon variant="outline" color="primary">
31
+ * <Search />
32
+ *</ButtonIcon>
33
+ * ```
34
+ * > With tooltip message:
35
+ * ```tsx
36
+ *<ButtonIcon message="Edit item">
37
+ * <PencilLine />
38
+ *</ButtonIcon>
39
+ * ```
40
+ * > Loading state:
41
+ * ```tsx
42
+ *<ButtonIcon loading>
43
+ * <Trash2 />
44
+ *</ButtonIcon>
45
+ * ```
46
+ * > Badge counter:
47
+ * ```tsx
48
+ *<ButtonIcon counter={5} icon={MessageCircleMoreIcon}/>
49
+ *<ButtonIcon counter={{ count: 8 }} icon={MessageCircleMoreIcon}/>
50
+ * ```
51
+ *
52
+ * @remarks
53
+ * - Designed for icon-only usage. If you need text, use `Button`.
54
+ * - Works with any SVG React component or element, e.g. lucide-react, heroicons, custom icons.
55
+ *
56
+ * @see {@link Button} for regular text buttons
57
+ */
3
58
  export declare const ButtonIcon: React.ForwardRefExoticComponent<ButtonIconProps & React.RefAttributes<HTMLButtonElement>>;
4
59
  export default ButtonIcon;
5
60
  //# sourceMappingURL=ButtonIcon.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ButtonIcon.d.ts","sourceRoot":"","sources":["../../src/ButtonIcon/ButtonIcon.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAI9B,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAMrD,eAAO,MAAM,UAAU,2FAsDtB,CAAA;AAED,eAAe,UAAU,CAAC"}
1
+ {"version":3,"file":"ButtonIcon.d.ts","sourceRoot":"","sources":["../../src/ButtonIcon/ButtonIcon.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAI9B,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAQrD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsDG;AACH,eAAO,MAAM,UAAU,2FAgFtB,CAAA;AAED,eAAe,UAAU,CAAC"}
@@ -1,61 +1,84 @@
1
- import { jsx as n } from "react/jsx-runtime";
2
- import * as I from "react";
3
- import { cn as N } from "@oneplatformdev/utils";
4
- import { buttonIconVariants as x } from "./buttonIconVariants.js";
5
- import { Slot as B } from "@radix-ui/react-slot";
6
- import "@radix-ui/react-tooltip";
7
- import { Tooltip as C } from "../Tooltip/Tooltip.js";
8
- import { LoadedIcon as R } from "../LoadedIcon/LoadedIcon.js";
9
- const j = I.forwardRef(
10
- (c, p) => {
1
+ import { jsxs as f, Fragment as C, jsx as t } from "react/jsx-runtime";
2
+ import * as R from "react";
3
+ import { cn as j } from "@oneplatformdev/utils";
4
+ import { buttonIconVariants as w } from "./buttonIconVariants.js";
5
+ import { Slot as z } from "@radix-ui/react-slot";
6
+ import { ButtonCounterBadge as F } from "../Button/ButtonCounterBadge.js";
7
+ import { renderInnerIcon as L } from "../Button/Button.utils.js";
8
+ import { LoadedIcon as P } from "../LoadedIcon/LoadedIcon.js";
9
+ import { Tooltip as S } from "../Tooltip/Tooltip.js";
10
+ const T = R.forwardRef(
11
+ (g, h) => {
11
12
  const {
12
- asChild: r,
13
- children: o,
14
- disabled: s = !1,
15
- loading: t = !1,
16
- message: l,
17
- title: d = "",
18
- tooltipProps: a = {},
19
- className: f,
20
- variant: u,
21
- color: b,
22
- size: i,
23
- rounded: g,
24
- ...h
25
- } = c, v = r ? B : "button", e = l || d, y = r ? o : !!o && /* @__PURE__ */ n(R, { loading: t, size: i, children: o }), m = /* @__PURE__ */ n(
13
+ asChild: i,
14
+ children: a,
15
+ icon: b,
16
+ disabled: n = !1,
17
+ loading: r = !1,
18
+ message: y,
19
+ title: I = "",
20
+ tooltipProps: c = {},
21
+ className: x,
22
+ variant: m,
23
+ color: p,
24
+ size: e,
25
+ rounded: l,
26
+ screenReader: o,
27
+ counter: B,
28
+ ...N
29
+ } = g, v = i ? z : "button", s = y || I, d = i ? a : /* @__PURE__ */ f(C, { children: [
30
+ /* @__PURE__ */ f(P, { loading: r, size: e, children: [
31
+ L(b) ?? a,
32
+ /* @__PURE__ */ t(
33
+ F,
34
+ {
35
+ counter: B,
36
+ variant: m,
37
+ color: p,
38
+ size: e,
39
+ disabled: n,
40
+ rounded: l
41
+ }
42
+ )
43
+ ] }),
44
+ !!o && /* @__PURE__ */ t("span", { className: "sr-only", children: typeof o == "string" ? o : o.text })
45
+ ] });
46
+ if (!d) return null;
47
+ const u = /* @__PURE__ */ t(
26
48
  v,
27
49
  {
28
50
  type: "button",
29
- ref: p,
30
- disabled: s,
31
- className: N(
32
- x({
33
- variant: u,
34
- size: i,
35
- color: b,
36
- rounded: g,
37
- className: f
51
+ ref: h,
52
+ disabled: n,
53
+ className: j(
54
+ "group group/button group/button-icon",
55
+ w({
56
+ variant: m,
57
+ size: e,
58
+ color: p,
59
+ rounded: l,
60
+ className: x
38
61
  }),
39
- t && "pointer-events-none opacity-80"
62
+ r && "pointer-events-none opacity-80"
40
63
  ),
41
- ...h,
42
- children: y
64
+ ...N,
65
+ children: d
43
66
  }
44
67
  );
45
- return e ? /* @__PURE__ */ n(
46
- C,
68
+ return s ? /* @__PURE__ */ t(
69
+ S,
47
70
  {
48
- ...a || {},
49
- open: a.open ?? (s || t || !e) ? !1 : void 0,
50
- message: e,
51
- children: m
71
+ ...c || {},
72
+ open: c.open ?? (n || r || !s) ? !1 : void 0,
73
+ message: s,
74
+ children: u
52
75
  }
53
- ) : m;
76
+ ) : u;
54
77
  }
55
78
  );
56
- j.displayName = "Button";
79
+ T.displayName = "Button";
57
80
  export {
58
- j as ButtonIcon,
59
- j as default
81
+ T as ButtonIcon,
82
+ T as default
60
83
  };
61
84
  //# sourceMappingURL=ButtonIcon.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ButtonIcon.js","sources":["../../src/ButtonIcon/ButtonIcon.tsx"],"sourcesContent":["import * as React from \"react\"\n\nimport { cn } from \"@oneplatformdev/utils\"\nimport { buttonIconVariants } from './buttonIconVariants';\nimport { ButtonIconProps } from './ButtonIcon.types';\nimport { Slot } from \"@radix-ui/react-slot\"\n\nimport { Tooltip } from '../Tooltip';\nimport { LoadedIcon } from \"../LoadedIcon\";\n\nexport const ButtonIcon = React.forwardRef<HTMLButtonElement, ButtonIconProps>(\n (props, ref) => {\n const {\n asChild,\n children,\n disabled = false,\n loading = false,\n message,\n title = '',\n tooltipProps = {},\n className,\n variant,\n color,\n size,\n rounded,\n ...rest\n } = props;\n\n const Comp = asChild ? Slot : \"button\"\n const msg = message || title;\n\n const content = asChild\n ? children\n : !!children && <LoadedIcon loading={loading} size={size}>{children}</LoadedIcon>\n\n const cmp = (\n <Comp\n type='button'\n ref={ref}\n disabled={disabled}\n className={cn(\n buttonIconVariants({\n variant, size, color, rounded,\n className\n }),\n loading && 'pointer-events-none opacity-80',\n )}\n {...rest}\n >\n {content}\n </Comp>\n )\n\n if (!msg) return cmp\n return (\n <Tooltip\n {...(tooltipProps || {})}\n open={tooltipProps.open ?? (disabled || loading || !msg) ? false : undefined}\n message={msg}\n >\n {cmp}\n </Tooltip>\n )\n }\n)\nButtonIcon.displayName = \"Button\"\nexport default ButtonIcon;\n"],"names":["ButtonIcon","React","props","ref","asChild","children","disabled","loading","message","title","tooltipProps","className","variant","color","size","rounded","rest","Comp","Slot","msg","content","jsx","LoadedIcon","cmp","cn","buttonIconVariants","Tooltip"],"mappings":";;;;;;;;AAUO,MAAMA,IAAaC,EAAM;AAAA,EAC9B,CAACC,GAAOC,MAAQ;AACd,UAAM;AAAA,MACJ,SAAAC;AAAA,MACA,UAAAC;AAAA,MACA,UAAAC,IAAW;AAAA,MACX,SAAAC,IAAU;AAAA,MACV,SAAAC;AAAA,MACA,OAAAC,IAAQ;AAAA,MACR,cAAAC,IAAe,CAAA;AAAA,MACf,WAAAC;AAAA,MACA,SAAAC;AAAA,MACA,OAAAC;AAAA,MACA,MAAAC;AAAA,MACA,SAAAC;AAAA,MACA,GAAGC;AAAA,IAAA,IACDd,GAEEe,IAAOb,IAAUc,IAAO,UACxBC,IAAMX,KAAWC,GAEjBW,IAAUhB,IACZC,IACA,CAAC,CAACA,KAAY,gBAAAgB,EAACC,GAAA,EAAW,SAAAf,GAAkB,MAAAO,GAAa,UAAAT,EAAA,CAAS,GAEhEkB,IACJ,gBAAAF;AAAA,MAACJ;AAAA,MAAA;AAAA,QACC,MAAK;AAAA,QACL,KAAAd;AAAA,QACA,UAAAG;AAAA,QACA,WAAWkB;AAAA,UACTC,EAAmB;AAAA,YACjB,SAAAb;AAAA,YAAS,MAAAE;AAAA,YAAM,OAAAD;AAAA,YAAO,SAAAE;AAAA,YACtB,WAAAJ;AAAA,UAAA,CACD;AAAA,UACDJ,KAAW;AAAA,QAAA;AAAA,QAEZ,GAAGS;AAAA,QAEH,UAAAI;AAAA,MAAA;AAAA,IAAA;AAIL,WAAKD,IAEH,gBAAAE;AAAA,MAACK;AAAA,MAAA;AAAA,QACE,GAAIhB,KAAgB,CAAA;AAAA,QACrB,MAAMA,EAAa,SAASJ,KAAYC,KAAW,CAACY,KAAO,KAAQ;AAAA,QACnE,SAASA;AAAA,QAER,UAAAI;AAAA,MAAA;AAAA,IAAA,IAPYA;AAAA,EAUnB;AACF;AACAvB,EAAW,cAAc;"}
1
+ {"version":3,"file":"ButtonIcon.js","sources":["../../src/ButtonIcon/ButtonIcon.tsx"],"sourcesContent":["import * as React from \"react\"\r\n\r\nimport { cn } from \"@oneplatformdev/utils\"\r\nimport { buttonIconVariants } from './buttonIconVariants';\r\nimport { ButtonIconProps } from './ButtonIcon.types';\r\nimport { Slot } from \"@radix-ui/react-slot\"\r\n\r\nimport { Tooltip } from '../Tooltip';\r\nimport { LoadedIcon } from \"../LoadedIcon\";\r\nimport { ButtonCounterBadge } from \"../Button/ButtonCounterBadge\";\r\nimport { renderInnerIcon } from \"../Button\";\r\n\r\n/**\r\n * Icon-only version of the Button component.\r\n *\r\n * `ButtonIcon` is used for compact actions represented by an icon instead of text.\r\n * Supports all core features of Button: variants, sizes, tooltips, disabled and loading state.\r\n *\r\n * @public\r\n * @see [Documentation](#) // TODO: add link to docs\r\n *\r\n * @example\r\n * > Import:\r\n * ```tsx\r\n * import { ButtonIcon } from '@oneplatformdev/ui/ButtonIcon';\r\n * ```\r\n * > Basic usage by icon:\r\n * ```tsx\r\n *<ButtonIcon icon={<PlusIcon />}/>\r\n *<ButtonIcon icon={PlusIcon}/>\r\n * ```\r\n * > Basic usage by children:\r\n * ```tsx\r\n *<ButtonIcon>\r\n * <PlusIcon />\r\n *</ButtonIcon>\r\n * ```\r\n * > With variant & color:\r\n * ```tsx\r\n *<ButtonIcon variant=\"outline\" color=\"primary\">\r\n * <Search />\r\n *</ButtonIcon>\r\n * ```\r\n * > With tooltip message:\r\n * ```tsx\r\n *<ButtonIcon message=\"Edit item\">\r\n * <PencilLine />\r\n *</ButtonIcon>\r\n * ```\r\n * > Loading state:\r\n * ```tsx\r\n *<ButtonIcon loading>\r\n * <Trash2 />\r\n *</ButtonIcon>\r\n * ```\r\n * > Badge counter:\r\n * ```tsx\r\n *<ButtonIcon counter={5} icon={MessageCircleMoreIcon}/>\r\n *<ButtonIcon counter={{ count: 8 }} icon={MessageCircleMoreIcon}/>\r\n * ```\r\n *\r\n * @remarks\r\n * - Designed for icon-only usage. If you need text, use `Button`.\r\n * - Works with any SVG React component or element, e.g. lucide-react, heroicons, custom icons.\r\n *\r\n * @see {@link Button} for regular text buttons\r\n */\r\nexport const ButtonIcon = React.forwardRef<HTMLButtonElement, ButtonIconProps>(\r\n (props, ref) => {\r\n const {\r\n asChild,\r\n children,\r\n icon,\r\n disabled = false,\r\n loading = false,\r\n message,\r\n title = '',\r\n tooltipProps = {},\r\n className,\r\n variant,\r\n color,\r\n size,\r\n rounded,\r\n screenReader,\r\n counter,\r\n ...rest\r\n } = props;\r\n\r\n const Comp = asChild ? Slot : \"button\"\r\n const msg = message || title;\r\n\r\n const content = asChild\r\n ? children\r\n : (\r\n <>\r\n <LoadedIcon loading={loading} size={size}>\r\n {renderInnerIcon(icon) ?? children}\r\n <ButtonCounterBadge\r\n counter={counter}\r\n variant={variant}\r\n color={color}\r\n size={size}\r\n disabled={disabled}\r\n rounded={rounded}\r\n />\r\n </LoadedIcon>\r\n\r\n {!!screenReader && (\r\n <span className=\"sr-only\">\r\n {typeof screenReader === 'string' ? screenReader : screenReader.text}\r\n </span>\r\n )}\r\n </>\r\n )\r\n\r\n if (!content) return null;\r\n\r\n const cmp = (\r\n <Comp\r\n type='button'\r\n ref={ref}\r\n disabled={disabled}\r\n className={cn(\r\n 'group group/button group/button-icon',\r\n buttonIconVariants({\r\n variant, size, color, rounded,\r\n className\r\n }),\r\n loading && 'pointer-events-none opacity-80',\r\n )}\r\n {...rest}\r\n >\r\n {content}\r\n </Comp>\r\n )\r\n\r\n if (!msg) return cmp\r\n return (\r\n <Tooltip\r\n {...(tooltipProps || {})}\r\n open={tooltipProps.open ?? (disabled || loading || !msg) ? false : undefined}\r\n message={msg}\r\n >\r\n {cmp}\r\n </Tooltip>\r\n )\r\n }\r\n)\r\nButtonIcon.displayName = \"Button\"\r\nexport default ButtonIcon;\r\n"],"names":["ButtonIcon","React","props","ref","asChild","children","icon","disabled","loading","message","title","tooltipProps","className","variant","color","size","rounded","screenReader","counter","rest","Comp","Slot","msg","content","jsxs","Fragment","LoadedIcon","renderInnerIcon","jsx","ButtonCounterBadge","cmp","cn","buttonIconVariants","Tooltip"],"mappings":";;;;;;;;;AAmEO,MAAMA,IAAaC,EAAM;AAAA,EAC9B,CAACC,GAAOC,MAAQ;AACd,UAAM;AAAA,MACJ,SAAAC;AAAA,MACA,UAAAC;AAAA,MACA,MAAAC;AAAA,MACA,UAAAC,IAAW;AAAA,MACX,SAAAC,IAAU;AAAA,MACV,SAAAC;AAAA,MACA,OAAAC,IAAQ;AAAA,MACR,cAAAC,IAAe,CAAA;AAAA,MACf,WAAAC;AAAA,MACA,SAAAC;AAAA,MACA,OAAAC;AAAA,MACA,MAAAC;AAAA,MACA,SAAAC;AAAA,MACA,cAAAC;AAAA,MACA,SAAAC;AAAA,MACA,GAAGC;AAAA,IAAA,IACDjB,GAEEkB,IAAOhB,IAAUiB,IAAO,UACxBC,IAAMb,KAAWC,GAEjBa,IAAUnB,IACZC,IAEA,gBAAAmB,EAAAC,GAAA,EACE,UAAA;AAAA,MAAA,gBAAAD,EAACE,GAAA,EAAW,SAAAlB,GAAkB,MAAAO,GAC3B,UAAA;AAAA,QAAAY,EAAgBrB,CAAI,KAAKD;AAAA,QAC1B,gBAAAuB;AAAA,UAACC;AAAA,UAAA;AAAA,YACC,SAAAX;AAAA,YACA,SAAAL;AAAA,YACA,OAAAC;AAAA,YACA,MAAAC;AAAA,YACA,UAAAR;AAAA,YACA,SAAAS;AAAA,UAAA;AAAA,QAAA;AAAA,MACF,GACF;AAAA,MAEC,CAAC,CAACC,KACD,gBAAAW,EAAC,QAAA,EAAK,WAAU,WACb,UAAA,OAAOX,KAAiB,WAAWA,IAAeA,EAAa,KAAA,CAClE;AAAA,IAAA,GAEJ;AAGJ,QAAI,CAACM,EAAS,QAAO;AAErB,UAAMO,IACJ,gBAAAF;AAAA,MAACR;AAAA,MAAA;AAAA,QACC,MAAK;AAAA,QACL,KAAAjB;AAAA,QACA,UAAAI;AAAA,QACA,WAAWwB;AAAA,UACT;AAAA,UACAC,EAAmB;AAAA,YACjB,SAAAnB;AAAA,YAAS,MAAAE;AAAA,YAAM,OAAAD;AAAA,YAAO,SAAAE;AAAA,YACtB,WAAAJ;AAAA,UAAA,CACD;AAAA,UACDJ,KAAW;AAAA,QAAA;AAAA,QAEZ,GAAGW;AAAA,QAEH,UAAAI;AAAA,MAAA;AAAA,IAAA;AAIL,WAAKD,IAEH,gBAAAM;AAAA,MAACK;AAAA,MAAA;AAAA,QACE,GAAItB,KAAgB,CAAA;AAAA,QACrB,MAAMA,EAAa,SAASJ,KAAYC,KAAW,CAACc,KAAO,KAAQ;AAAA,QACnE,SAASA;AAAA,QAER,UAAAQ;AAAA,MAAA;AAAA,IAAA,IAPYA;AAAA,EAUnB;AACF;AACA9B,EAAW,cAAc;"}