@bigbinary/neeto-atoms 1.0.141 → 1.0.143-beta1

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 (220) hide show
  1. package/dist/{Alert-DWdha6In.js → Alert-BSP9oI1z.js} +2 -2
  2. package/dist/{Alert-DWdha6In.js.map → Alert-BSP9oI1z.js.map} +1 -1
  3. package/dist/{Button-ZssOVkG0.js → Button-hshHbjPF.js} +2 -1
  4. package/dist/Button-hshHbjPF.js.map +1 -0
  5. package/dist/{ColorPicker-BvWNd8Tp.js → ColorPicker-g9siUaIe.js} +3 -3
  6. package/dist/ColorPicker-g9siUaIe.js.map +1 -0
  7. package/dist/{Combobox-CrcrQlgz.js → Combobox-LxuMoLF5.js} +3 -3
  8. package/dist/{Combobox-CrcrQlgz.js.map → Combobox-LxuMoLF5.js.map} +1 -1
  9. package/dist/{DataTable-8hVysQPv.js → DataTable-BAf51Sfw.js} +5 -5
  10. package/dist/{DataTable-8hVysQPv.js.map → DataTable-BAf51Sfw.js.map} +1 -1
  11. package/dist/{Empty-XqdCD2dj.js → Empty-B4iQJlmf.js} +3 -3
  12. package/dist/{Empty-XqdCD2dj.js.map → Empty-B4iQJlmf.js.map} +1 -1
  13. package/dist/{HelpIcon-TkvMVF4n.js → HelpIcon-CEHRtxZ5.js} +3 -3
  14. package/dist/{HelpIcon-TkvMVF4n.js.map → HelpIcon-CEHRtxZ5.js.map} +1 -1
  15. package/dist/{Label-DrjtHwMk.js → Label-C2ZO0-dt.js} +2 -2
  16. package/dist/{Label-DrjtHwMk.js.map → Label-C2ZO0-dt.js.map} +1 -1
  17. package/dist/{Popover-BHGvcdV2.js → Popover-B0QALwsd.js} +2 -2
  18. package/dist/{Popover-BHGvcdV2.js.map → Popover-B0QALwsd.js.map} +1 -1
  19. package/dist/{Select-B6Yn7BFi.js → Select-DCVlTRBI.js} +2 -2
  20. package/dist/{Select-B6Yn7BFi.js.map → Select-DCVlTRBI.js.map} +1 -1
  21. package/dist/{Tree-D95PpI3W.js → Tree-Cf0rLcX9.js} +3 -3
  22. package/dist/{Tree-D95PpI3W.js.map → Tree-Cf0rLcX9.js.map} +1 -1
  23. package/dist/{TreeSelect-LTSl-QJA.js → TreeSelect-BV18q8UD.js} +2 -2
  24. package/dist/{TreeSelect-LTSl-QJA.js.map → TreeSelect-BV18q8UD.js.map} +1 -1
  25. package/dist/{Typography-CmILccNh.js → Typography-Bu78IBJy.js} +5 -2
  26. package/dist/Typography-Bu78IBJy.js.map +1 -0
  27. package/dist/{button-DTkEk06V.js → button-D5-pwGwG.js} +2 -1
  28. package/dist/button-D5-pwGwG.js.map +1 -0
  29. package/dist/cjs/{Alert-BUPMvhfY.js → Alert-Q_dXiT50.js} +2 -2
  30. package/dist/cjs/{Alert-BUPMvhfY.js.map → Alert-Q_dXiT50.js.map} +1 -1
  31. package/dist/cjs/{Button-BQ4rpzsl.js → Button-B6ygc4Gi.js} +2 -1
  32. package/dist/cjs/Button-B6ygc4Gi.js.map +1 -0
  33. package/dist/cjs/{ColorPicker-Dh58otnF.js → ColorPicker-CODJ0QKs.js} +3 -3
  34. package/dist/cjs/ColorPicker-CODJ0QKs.js.map +1 -0
  35. package/dist/cjs/{Combobox-B3KzI_J_.js → Combobox-CUS3FpS8.js} +3 -3
  36. package/dist/cjs/{Combobox-B3KzI_J_.js.map → Combobox-CUS3FpS8.js.map} +1 -1
  37. package/dist/cjs/{DataTable-DAoZP73Q.js → DataTable-KvsmFjeu.js} +5 -5
  38. package/dist/cjs/{DataTable-DAoZP73Q.js.map → DataTable-KvsmFjeu.js.map} +1 -1
  39. package/dist/cjs/{Empty-DGvhPdiG.js → Empty-Bwpsj82B.js} +3 -3
  40. package/dist/cjs/{Empty-DGvhPdiG.js.map → Empty-Bwpsj82B.js.map} +1 -1
  41. package/dist/cjs/{HelpIcon-CULBhXS7.js → HelpIcon-39gUuk1F.js} +3 -3
  42. package/dist/cjs/{HelpIcon-CULBhXS7.js.map → HelpIcon-39gUuk1F.js.map} +1 -1
  43. package/dist/cjs/{Label-D_FsFUcl.js → Label-BLgCH5sc.js} +2 -2
  44. package/dist/cjs/{Label-D_FsFUcl.js.map → Label-BLgCH5sc.js.map} +1 -1
  45. package/dist/cjs/{Popover-5BUgIW60.js → Popover-BY8Afql0.js} +2 -2
  46. package/dist/cjs/{Popover-5BUgIW60.js.map → Popover-BY8Afql0.js.map} +1 -1
  47. package/dist/cjs/{Select-0JzGuzUW.js → Select-DReP9RU1.js} +2 -2
  48. package/dist/cjs/{Select-0JzGuzUW.js.map → Select-DReP9RU1.js.map} +1 -1
  49. package/dist/cjs/{Tree-BCeV70TF.js → Tree-D1QjLPS9.js} +3 -3
  50. package/dist/cjs/{Tree-BCeV70TF.js.map → Tree-D1QjLPS9.js.map} +1 -1
  51. package/dist/cjs/{TreeSelect-B8ScKK9l.js → TreeSelect-CrLmpq26.js} +2 -2
  52. package/dist/cjs/{TreeSelect-B8ScKK9l.js.map → TreeSelect-CrLmpq26.js.map} +1 -1
  53. package/dist/cjs/{Typography-BW6xEk10.js → Typography-Ctlu_0Qy.js} +5 -2
  54. package/dist/cjs/Typography-Ctlu_0Qy.js.map +1 -0
  55. package/dist/cjs/{button-CDZTqJzs.js → button-UCo5fJnC.js} +2 -1
  56. package/dist/cjs/button-UCo5fJnC.js.map +1 -0
  57. package/dist/cjs/components/Alert.js +4 -4
  58. package/dist/cjs/components/Button.js +2 -2
  59. package/dist/cjs/components/Checkbox.js +5 -5
  60. package/dist/cjs/components/ColorPicker.js +2 -2
  61. package/dist/cjs/components/DataTable.js +5 -5
  62. package/dist/cjs/components/DatePicker.js +5 -5
  63. package/dist/cjs/components/Dialog.js +2 -2
  64. package/dist/cjs/components/DropdownMenu.js +2 -2
  65. package/dist/cjs/components/Empty.js +4 -4
  66. package/dist/cjs/components/Input.js +6 -6
  67. package/dist/cjs/components/Label.js +6 -6
  68. package/dist/cjs/components/MultiEmailInput.js +5 -5
  69. package/dist/cjs/components/Pagination.js +1 -1
  70. package/dist/cjs/components/Popover.js +2 -2
  71. package/dist/cjs/components/RadioGroup.js +5 -5
  72. package/dist/cjs/components/Select.js +8 -8
  73. package/dist/cjs/components/Sheet.js +2 -2
  74. package/dist/cjs/components/Slider.js +5 -5
  75. package/dist/cjs/components/Switch.js +5 -5
  76. package/dist/cjs/components/Textarea.js +5 -5
  77. package/dist/cjs/components/TimePicker.js +5 -5
  78. package/dist/cjs/components/Tree.js +1 -1
  79. package/dist/cjs/components/TreeSelect.js +7 -7
  80. package/dist/cjs/components/Typography.js +1 -1
  81. package/dist/cjs/components/index.js +17 -17
  82. package/dist/cjs/{dialog-Bnk4GUFC.js → dialog-D7OSycGe.js} +2 -2
  83. package/dist/cjs/{dialog-Bnk4GUFC.js.map → dialog-D7OSycGe.js.map} +1 -1
  84. package/dist/cjs/formik/ActionBlock.js +2 -2
  85. package/dist/cjs/formik/BlockNavigation.js +43 -11
  86. package/dist/cjs/formik/BlockNavigation.js.map +1 -1
  87. package/dist/cjs/formik/Button.js +2 -2
  88. package/dist/cjs/formik/Checkbox.js +5 -5
  89. package/dist/cjs/formik/Form.js +2 -2
  90. package/dist/cjs/formik/Form.js.map +1 -1
  91. package/dist/cjs/formik/Input.js +6 -6
  92. package/dist/cjs/formik/MultiEmailInput.js +5 -5
  93. package/dist/cjs/formik/RadioGroup.js +5 -5
  94. package/dist/cjs/formik/Select.js +8 -8
  95. package/dist/cjs/formik/Slider.js +5 -5
  96. package/dist/cjs/formik/Switch.js +5 -5
  97. package/dist/cjs/formik/Textarea.js +5 -5
  98. package/dist/cjs/formik/TreeSelect.js +7 -7
  99. package/dist/cjs/formik/index.js +11 -11
  100. package/dist/cjs/index.js +17 -17
  101. package/dist/cjs/{input-group-BU6uw1MA.js → input-group-Cr4T8woC.js} +2 -2
  102. package/dist/cjs/{input-group-BU6uw1MA.js.map → input-group-Cr4T8woC.js.map} +1 -1
  103. package/dist/cjs/primitives/AlertDialog.js +1 -1
  104. package/dist/cjs/primitives/Button.js +5 -1
  105. package/dist/cjs/primitives/Button.js.map +1 -1
  106. package/dist/cjs/primitives/Calendar.js +1 -1
  107. package/dist/cjs/primitives/Carousel.js +1 -1
  108. package/dist/cjs/primitives/Checkbox.js +6 -2
  109. package/dist/cjs/primitives/Checkbox.js.map +1 -1
  110. package/dist/cjs/primitives/Combobox.js +3 -3
  111. package/dist/cjs/primitives/Command.js +3 -3
  112. package/dist/cjs/primitives/Dialog.js +2 -2
  113. package/dist/cjs/primitives/Empty.js +14 -1
  114. package/dist/cjs/primitives/Empty.js.map +1 -1
  115. package/dist/cjs/primitives/Field.js +19 -6
  116. package/dist/cjs/primitives/Field.js.map +1 -1
  117. package/dist/cjs/primitives/InputGroup.js +2 -2
  118. package/dist/cjs/primitives/Item.js +14 -1
  119. package/dist/cjs/primitives/Item.js.map +1 -1
  120. package/dist/cjs/primitives/Pagination.js +1 -1
  121. package/dist/cjs/primitives/RadioGroup.js +3 -3
  122. package/dist/cjs/primitives/RadioGroup.js.map +1 -1
  123. package/dist/cjs/primitives/Sheet.js +2 -2
  124. package/dist/cjs/primitives/Sidebar.js +2 -2
  125. package/dist/cjs/primitives/Switch.js +2 -2
  126. package/dist/cjs/primitives/Switch.js.map +1 -1
  127. package/dist/cjs/primitives/index.js +9 -9
  128. package/dist/cjs/{sheet-CQ82jJkC.js → sheet-C33j5mif.js} +2 -2
  129. package/dist/cjs/{sheet-CQ82jJkC.js.map → sheet-C33j5mif.js.map} +1 -1
  130. package/dist/components/Alert.js +4 -4
  131. package/dist/components/Button/Button.d.ts +1 -1
  132. package/dist/components/Button.js +2 -2
  133. package/dist/components/Checkbox.js +5 -5
  134. package/dist/components/ColorPicker.js +2 -2
  135. package/dist/components/DataTable.js +5 -5
  136. package/dist/components/DatePicker.js +5 -5
  137. package/dist/components/Dialog.js +2 -2
  138. package/dist/components/DropdownMenu.js +2 -2
  139. package/dist/components/Empty.js +4 -4
  140. package/dist/components/Input.js +6 -6
  141. package/dist/components/Label.js +6 -6
  142. package/dist/components/MultiEmailInput.js +5 -5
  143. package/dist/components/Pagination.js +1 -1
  144. package/dist/components/Popover.js +2 -2
  145. package/dist/components/RadioGroup.js +5 -5
  146. package/dist/components/Select.js +8 -8
  147. package/dist/components/Sheet.js +2 -2
  148. package/dist/components/Slider.js +5 -5
  149. package/dist/components/Switch.js +5 -5
  150. package/dist/components/Textarea.js +5 -5
  151. package/dist/components/TimePicker.js +5 -5
  152. package/dist/components/Tree.js +1 -1
  153. package/dist/components/TreeSelect.js +7 -7
  154. package/dist/components/Typography.js +1 -1
  155. package/dist/components/index.js +17 -17
  156. package/dist/{dialog-BG8Tjl78.js → dialog-CT2j-JaR.js} +2 -2
  157. package/dist/{dialog-BG8Tjl78.js.map → dialog-CT2j-JaR.js.map} +1 -1
  158. package/dist/formik/ActionBlock.js +2 -2
  159. package/dist/formik/BlockNavigation/BlockNavigationAlert.d.ts +10 -3
  160. package/dist/formik/BlockNavigation/index.d.ts +2 -2
  161. package/dist/formik/BlockNavigation.js +43 -11
  162. package/dist/formik/BlockNavigation.js.map +1 -1
  163. package/dist/formik/Button.js +2 -2
  164. package/dist/formik/Checkbox.js +5 -5
  165. package/dist/formik/Form.js +2 -2
  166. package/dist/formik/Form.js.map +1 -1
  167. package/dist/formik/Input.js +6 -6
  168. package/dist/formik/MultiEmailInput.js +5 -5
  169. package/dist/formik/RadioGroup.js +5 -5
  170. package/dist/formik/Select.js +8 -8
  171. package/dist/formik/Slider.js +5 -5
  172. package/dist/formik/Switch.js +5 -5
  173. package/dist/formik/Textarea.js +5 -5
  174. package/dist/formik/TreeSelect.js +7 -7
  175. package/dist/formik/index.js +11 -11
  176. package/dist/index.css +16 -4
  177. package/dist/index.js +17 -17
  178. package/dist/{input-group-CFQrWXbU.js → input-group-kccDxDZ0.js} +2 -2
  179. package/dist/{input-group-CFQrWXbU.js.map → input-group-kccDxDZ0.js.map} +1 -1
  180. package/dist/primitives/AlertDialog.js +1 -1
  181. package/dist/primitives/Button.js +6 -2
  182. package/dist/primitives/Button.js.map +1 -1
  183. package/dist/primitives/Calendar.js +1 -1
  184. package/dist/primitives/Carousel.js +1 -1
  185. package/dist/primitives/Checkbox.js +6 -2
  186. package/dist/primitives/Checkbox.js.map +1 -1
  187. package/dist/primitives/Combobox.js +3 -3
  188. package/dist/primitives/Command.js +3 -3
  189. package/dist/primitives/Dialog.js +2 -2
  190. package/dist/primitives/Empty.d.ts +1 -1
  191. package/dist/primitives/Empty.js +14 -1
  192. package/dist/primitives/Empty.js.map +1 -1
  193. package/dist/primitives/Field.d.ts +1 -1
  194. package/dist/primitives/Field.js +19 -6
  195. package/dist/primitives/Field.js.map +1 -1
  196. package/dist/primitives/InputGroup.js +2 -2
  197. package/dist/primitives/Item.d.ts +1 -1
  198. package/dist/primitives/Item.js +14 -1
  199. package/dist/primitives/Item.js.map +1 -1
  200. package/dist/primitives/Pagination.js +1 -1
  201. package/dist/primitives/RadioGroup.js +3 -3
  202. package/dist/primitives/RadioGroup.js.map +1 -1
  203. package/dist/primitives/Sheet.js +2 -2
  204. package/dist/primitives/Sidebar.js +2 -2
  205. package/dist/primitives/Switch.js +2 -2
  206. package/dist/primitives/Switch.js.map +1 -1
  207. package/dist/primitives/index.js +9 -9
  208. package/dist/shadcn/components/button.d.ts +2 -2
  209. package/dist/{sheet-BD8c3_Va.js → sheet-CNgGLv5u.js} +2 -2
  210. package/dist/{sheet-BD8c3_Va.js.map → sheet-CNgGLv5u.js.map} +1 -1
  211. package/package.json +2 -2
  212. package/CHANGELOG.md +0 -3
  213. package/dist/Button-ZssOVkG0.js.map +0 -1
  214. package/dist/ColorPicker-BvWNd8Tp.js.map +0 -1
  215. package/dist/Typography-CmILccNh.js.map +0 -1
  216. package/dist/button-DTkEk06V.js.map +0 -1
  217. package/dist/cjs/Button-BQ4rpzsl.js.map +0 -1
  218. package/dist/cjs/ColorPicker-Dh58otnF.js.map +0 -1
  219. package/dist/cjs/Typography-BW6xEk10.js.map +0 -1
  220. package/dist/cjs/button-CDZTqJzs.js.map +0 -1
@@ -1,7 +1,7 @@
1
1
  import { jsx, jsxs } from 'react/jsx-runtime';
2
2
  import { useTranslation } from 'react-i18next';
3
3
  import { c as cn } from './utils-BJnb9o5c.js';
4
- import { B as Button } from './button-DTkEk06V.js';
4
+ import { B as Button } from './button-D5-pwGwG.js';
5
5
  import { X } from './x-_o2T3n6D.js';
6
6
  import { e as DialogTitle, f as DialogDescription, d as DialogRoot, a as DialogClose, g as DialogTrigger, D as DialogPopup, b as DialogPortal, c as DialogBackdrop } from './DialogTrigger-a3diAOif.js';
7
7
 
@@ -126,4 +126,4 @@ function SheetDescription({
126
126
  }
127
127
 
128
128
  export { SheetHeader as S, SheetFooter as a, SheetTitle as b, SheetDescription as c, Sheet as d, SheetClose as e, SheetTrigger as f, SheetContent as g };
129
- //# sourceMappingURL=sheet-BD8c3_Va.js.map
129
+ //# sourceMappingURL=sheet-CNgGLv5u.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"sheet-BD8c3_Va.js","sources":["../src/shadcn/components/sheet.tsx"],"sourcesContent":["\"use client\"\n\nimport * as React from \"react\"\nimport { Dialog as SheetPrimitive } from \"@base-ui/react/dialog\"\nimport { useTranslation } from \"react-i18next\"\n\nimport { cn } from \"src/shadcn/lib/utils\"\nimport { Button } from \"src/shadcn/components/button\"\nimport { XIcon } from \"lucide-react\"\n\nfunction Sheet({ ...props }: SheetPrimitive.Root.Props) {\n return <SheetPrimitive.Root data-slot=\"sheet\" {...props} />\n}\n\nfunction SheetTrigger({ ...props }: SheetPrimitive.Trigger.Props) {\n return <SheetPrimitive.Trigger data-slot=\"sheet-trigger\" {...props} />\n}\n\nfunction SheetClose({ ...props }: SheetPrimitive.Close.Props) {\n return <SheetPrimitive.Close data-slot=\"sheet-close\" {...props} />\n}\n\nfunction SheetPortal({ ...props }: SheetPrimitive.Portal.Props) {\n return <SheetPrimitive.Portal data-slot=\"sheet-portal\" {...props} />\n}\n\nfunction SheetOverlay({ className, ...props }: SheetPrimitive.Backdrop.Props) {\n return (\n <SheetPrimitive.Backdrop\n data-slot=\"sheet-overlay\"\n className={cn(\n \"fixed inset-0 z-50 bg-black/50 transition-opacity duration-150 data-ending-style:opacity-0 data-starting-style:opacity-0 supports-backdrop-filter:backdrop-blur-xs\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction SheetContent({\n className,\n children,\n side = \"right\",\n showCloseButton = true,\n ...props\n}: SheetPrimitive.Popup.Props & {\n side?: \"top\" | \"right\" | \"bottom\" | \"left\"\n showCloseButton?: boolean\n}) {\n const { t } = useTranslation()\n\n return (\n <SheetPortal>\n <SheetOverlay forceRender />\n <SheetPrimitive.Popup\n data-slot=\"sheet-content\"\n data-side={side}\n className={cn(\n \"fixed z-50 flex flex-col gap-4 bg-popover bg-clip-padding text-sm text-popover-foreground shadow-lg transition duration-200 ease-in-out data-ending-style:opacity-0 data-starting-style:opacity-0 data-[side=bottom]:inset-x-0 data-[side=bottom]:bottom-0 data-[side=bottom]:h-auto data-[side=bottom]:border-t data-[side=bottom]:data-ending-style:translate-y-[2.5rem] data-[side=bottom]:data-starting-style:translate-y-[2.5rem] data-[side=left]:inset-y-0 data-[side=left]:left-0 data-[side=left]:h-full data-[side=left]:w-3/4 data-[side=left]:border-e data-[side=left]:data-ending-style:translate-x-[-2.5rem] data-[side=left]:data-starting-style:translate-x-[-2.5rem] data-[side=right]:inset-y-0 data-[side=right]:right-0 data-[side=right]:h-full data-[side=right]:w-3/4 data-[side=right]:border-s data-[side=right]:data-ending-style:translate-x-[2.5rem] data-[side=right]:data-starting-style:translate-x-[2.5rem] data-[side=top]:inset-x-0 data-[side=top]:top-0 data-[side=top]:h-auto data-[side=top]:border-b data-[side=top]:data-ending-style:translate-y-[-2.5rem] data-[side=top]:data-starting-style:translate-y-[-2.5rem] data-[side=left]:sm:max-w-sm data-[side=right]:sm:max-w-sm\",\n className\n )}\n {...props}\n >\n {children}\n {showCloseButton && (\n <SheetPrimitive.Close\n data-slot=\"sheet-close\"\n render={\n <Button\n variant=\"ghost\"\n className=\"absolute top-3 end-3\"\n size=\"icon-sm\"\n />\n }\n >\n <XIcon />\n <span className=\"sr-only\">{t(\"neetoatoms.sheet.close\", \"Close\")}</span>\n </SheetPrimitive.Close>\n )}\n </SheetPrimitive.Popup>\n </SheetPortal>\n )\n}\n\nfunction SheetHeader({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"sheet-header\"\n className={cn(\"flex flex-col gap-3 p-6\", className)}\n {...props}\n />\n )\n}\n\nfunction SheetFooter({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"sheet-footer\"\n className={cn(\n \"mt-auto flex flex-col gap-2 bg-muted/50 px-6 py-4\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction SheetTitle({ className, ...props }: SheetPrimitive.Title.Props) {\n return (\n <SheetPrimitive.Title\n data-slot=\"sheet-title\"\n className={cn(\n \"text-base font-medium text-foreground\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction SheetDescription({\n className,\n ...props\n}: SheetPrimitive.Description.Props) {\n return (\n <SheetPrimitive.Description\n data-slot=\"sheet-description\"\n className={cn(\"text-sm text-muted-foreground\", className)}\n {...props}\n />\n )\n}\n\nexport {\n Sheet,\n SheetTrigger,\n SheetClose,\n SheetContent,\n SheetHeader,\n SheetFooter,\n SheetTitle,\n SheetDescription,\n}\n"],"names":["SheetPrimitive.Root","SheetPrimitive.Trigger","SheetPrimitive.Close","SheetPrimitive.Portal","SheetPrimitive.Backdrop","SheetPrimitive.Popup","XIcon","SheetPrimitive.Title","SheetPrimitive.Description"],"mappings":"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"}
1
+ {"version":3,"file":"sheet-CNgGLv5u.js","sources":["../src/shadcn/components/sheet.tsx"],"sourcesContent":["\"use client\"\n\nimport * as React from \"react\"\nimport { Dialog as SheetPrimitive } from \"@base-ui/react/dialog\"\nimport { useTranslation } from \"react-i18next\"\n\nimport { cn } from \"src/shadcn/lib/utils\"\nimport { Button } from \"src/shadcn/components/button\"\nimport { XIcon } from \"lucide-react\"\n\nfunction Sheet({ ...props }: SheetPrimitive.Root.Props) {\n return <SheetPrimitive.Root data-slot=\"sheet\" {...props} />\n}\n\nfunction SheetTrigger({ ...props }: SheetPrimitive.Trigger.Props) {\n return <SheetPrimitive.Trigger data-slot=\"sheet-trigger\" {...props} />\n}\n\nfunction SheetClose({ ...props }: SheetPrimitive.Close.Props) {\n return <SheetPrimitive.Close data-slot=\"sheet-close\" {...props} />\n}\n\nfunction SheetPortal({ ...props }: SheetPrimitive.Portal.Props) {\n return <SheetPrimitive.Portal data-slot=\"sheet-portal\" {...props} />\n}\n\nfunction SheetOverlay({ className, ...props }: SheetPrimitive.Backdrop.Props) {\n return (\n <SheetPrimitive.Backdrop\n data-slot=\"sheet-overlay\"\n className={cn(\n \"fixed inset-0 z-50 bg-black/50 transition-opacity duration-150 data-ending-style:opacity-0 data-starting-style:opacity-0 supports-backdrop-filter:backdrop-blur-xs\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction SheetContent({\n className,\n children,\n side = \"right\",\n showCloseButton = true,\n ...props\n}: SheetPrimitive.Popup.Props & {\n side?: \"top\" | \"right\" | \"bottom\" | \"left\"\n showCloseButton?: boolean\n}) {\n const { t } = useTranslation()\n\n return (\n <SheetPortal>\n <SheetOverlay forceRender />\n <SheetPrimitive.Popup\n data-slot=\"sheet-content\"\n data-side={side}\n className={cn(\n \"fixed z-50 flex flex-col gap-4 bg-popover bg-clip-padding text-sm text-popover-foreground shadow-lg transition duration-200 ease-in-out data-ending-style:opacity-0 data-starting-style:opacity-0 data-[side=bottom]:inset-x-0 data-[side=bottom]:bottom-0 data-[side=bottom]:h-auto data-[side=bottom]:border-t data-[side=bottom]:data-ending-style:translate-y-[2.5rem] data-[side=bottom]:data-starting-style:translate-y-[2.5rem] data-[side=left]:inset-y-0 data-[side=left]:left-0 data-[side=left]:h-full data-[side=left]:w-3/4 data-[side=left]:border-e data-[side=left]:data-ending-style:translate-x-[-2.5rem] data-[side=left]:data-starting-style:translate-x-[-2.5rem] data-[side=right]:inset-y-0 data-[side=right]:right-0 data-[side=right]:h-full data-[side=right]:w-3/4 data-[side=right]:border-s data-[side=right]:data-ending-style:translate-x-[2.5rem] data-[side=right]:data-starting-style:translate-x-[2.5rem] data-[side=top]:inset-x-0 data-[side=top]:top-0 data-[side=top]:h-auto data-[side=top]:border-b data-[side=top]:data-ending-style:translate-y-[-2.5rem] data-[side=top]:data-starting-style:translate-y-[-2.5rem] data-[side=left]:sm:max-w-sm data-[side=right]:sm:max-w-sm\",\n className\n )}\n {...props}\n >\n {children}\n {showCloseButton && (\n <SheetPrimitive.Close\n data-slot=\"sheet-close\"\n render={\n <Button\n variant=\"ghost\"\n className=\"absolute top-3 end-3\"\n size=\"icon-sm\"\n />\n }\n >\n <XIcon />\n <span className=\"sr-only\">{t(\"neetoatoms.sheet.close\", \"Close\")}</span>\n </SheetPrimitive.Close>\n )}\n </SheetPrimitive.Popup>\n </SheetPortal>\n )\n}\n\nfunction SheetHeader({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"sheet-header\"\n className={cn(\"flex flex-col gap-3 p-6\", className)}\n {...props}\n />\n )\n}\n\nfunction SheetFooter({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"sheet-footer\"\n className={cn(\n \"mt-auto flex flex-col gap-2 bg-muted/50 px-6 py-4\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction SheetTitle({ className, ...props }: SheetPrimitive.Title.Props) {\n return (\n <SheetPrimitive.Title\n data-slot=\"sheet-title\"\n className={cn(\n \"text-base font-medium text-foreground\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction SheetDescription({\n className,\n ...props\n}: SheetPrimitive.Description.Props) {\n return (\n <SheetPrimitive.Description\n data-slot=\"sheet-description\"\n className={cn(\"text-sm text-muted-foreground\", className)}\n {...props}\n />\n )\n}\n\nexport {\n Sheet,\n SheetTrigger,\n SheetClose,\n SheetContent,\n SheetHeader,\n SheetFooter,\n SheetTitle,\n SheetDescription,\n}\n"],"names":["SheetPrimitive.Root","SheetPrimitive.Trigger","SheetPrimitive.Close","SheetPrimitive.Portal","SheetPrimitive.Backdrop","SheetPrimitive.Popup","XIcon","SheetPrimitive.Title","SheetPrimitive.Description"],"mappings":";;;;;;;AAUA,SAAS,KAAA,CAAM,EAAE,GAAG,KAAA,EAAM,EAA8B;AACtD,EAAA,2BAAQA,UAAe,EAAf,EAAoB,WAAA,EAAU,OAAA,EAAS,GAAG,KAAA,EAAO,CAAA;AAC3D;AAEA,SAAS,YAAA,CAAa,EAAE,GAAG,KAAA,EAAM,EAAiC;AAChE,EAAA,2BAAQC,aAAe,EAAf,EAAuB,WAAA,EAAU,eAAA,EAAiB,GAAG,KAAA,EAAO,CAAA;AACtE;AAEA,SAAS,UAAA,CAAW,EAAE,GAAG,KAAA,EAAM,EAA+B;AAC5D,EAAA,2BAAQC,WAAe,EAAf,EAAqB,WAAA,EAAU,aAAA,EAAe,GAAG,KAAA,EAAO,CAAA;AAClE;AAEA,SAAS,WAAA,CAAY,EAAE,GAAG,KAAA,EAAM,EAAgC;AAC9D,EAAA,2BAAQC,YAAe,EAAf,EAAsB,WAAA,EAAU,cAAA,EAAgB,GAAG,KAAA,EAAO,CAAA;AACpE;AAEA,SAAS,YAAA,CAAa,EAAE,SAAA,EAAW,GAAG,OAAM,EAAkC;AAC5E,EAAA,uBACE,GAAA;AAAA,IAACC,cAAe;AAAA,IAAf;AAAA,MACC,WAAA,EAAU,eAAA;AAAA,MACV,SAAA,EAAW,EAAA;AAAA,QACT,oKAAA;AAAA,QACA;AAAA,OACF;AAAA,MACC,GAAG;AAAA;AAAA,GACN;AAEJ;AAEA,SAAS,YAAA,CAAa;AAAA,EACpB,SAAA;AAAA,EACA,QAAA;AAAA,EACA,IAAA,GAAO,OAAA;AAAA,EACP,eAAA,GAAkB,IAAA;AAAA,EAClB,GAAG;AACL,CAAA,EAGG;AACD,EAAA,MAAM,EAAE,CAAA,EAAE,GAAI,cAAA,EAAe;AAE7B,EAAA,4BACG,WAAA,EAAA,EACC,QAAA,EAAA;AAAA,oBAAA,GAAA,CAAC,YAAA,EAAA,EAAa,aAAW,IAAA,EAAC,CAAA;AAAA,oBAC1B,IAAA;AAAA,MAACC,WAAe;AAAA,MAAf;AAAA,QACC,WAAA,EAAU,eAAA;AAAA,QACV,WAAA,EAAW,IAAA;AAAA,QACX,SAAA,EAAW,EAAA;AAAA,UACT,2pCAAA;AAAA,UACA;AAAA,SACF;AAAA,QACC,GAAG,KAAA;AAAA,QAEH,QAAA,EAAA;AAAA,UAAA,QAAA;AAAA,UACA,eAAA,oBACC,IAAA;AAAA,YAACH,WAAe;AAAA,YAAf;AAAA,cACC,WAAA,EAAU,aAAA;AAAA,cACV,MAAA,kBACE,GAAA;AAAA,gBAAC,MAAA;AAAA,gBAAA;AAAA,kBACC,OAAA,EAAQ,OAAA;AAAA,kBACR,SAAA,EAAU,sBAAA;AAAA,kBACV,IAAA,EAAK;AAAA;AAAA,eACP;AAAA,cAGF,QAAA,EAAA;AAAA,gCAAA,GAAA,CAACI,CAAA,EAAA,EAAM,CAAA;AAAA,oCACN,MAAA,EAAA,EAAK,SAAA,EAAU,WAAW,QAAA,EAAA,CAAA,CAAE,wBAAA,EAA0B,OAAO,CAAA,EAAE;AAAA;AAAA;AAAA;AAClE;AAAA;AAAA;AAEJ,GAAA,EACF,CAAA;AAEJ;AAEA,SAAS,WAAA,CAAY,EAAE,SAAA,EAAW,GAAG,OAAM,EAAgC;AACzE,EAAA,uBACE,GAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,WAAA,EAAU,cAAA;AAAA,MACV,SAAA,EAAW,EAAA,CAAG,yBAAA,EAA2B,SAAS,CAAA;AAAA,MACjD,GAAG;AAAA;AAAA,GACN;AAEJ;AAEA,SAAS,WAAA,CAAY,EAAE,SAAA,EAAW,GAAG,OAAM,EAAgC;AACzE,EAAA,uBACE,GAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,WAAA,EAAU,cAAA;AAAA,MACV,SAAA,EAAW,EAAA;AAAA,QACT,mDAAA;AAAA,QACA;AAAA,OACF;AAAA,MACC,GAAG;AAAA;AAAA,GACN;AAEJ;AAEA,SAAS,UAAA,CAAW,EAAE,SAAA,EAAW,GAAG,OAAM,EAA+B;AACvE,EAAA,uBACE,GAAA;AAAA,IAACC,WAAe;AAAA,IAAf;AAAA,MACC,WAAA,EAAU,aAAA;AAAA,MACV,SAAA,EAAW,EAAA;AAAA,QACT,uCAAA;AAAA,QACA;AAAA,OACF;AAAA,MACC,GAAG;AAAA;AAAA,GACN;AAEJ;AAEA,SAAS,gBAAA,CAAiB;AAAA,EACxB,SAAA;AAAA,EACA,GAAG;AACL,CAAA,EAAqC;AACnC,EAAA,uBACE,GAAA;AAAA,IAACC,iBAAe;AAAA,IAAf;AAAA,MACC,WAAA,EAAU,mBAAA;AAAA,MACV,SAAA,EAAW,EAAA,CAAG,+BAAA,EAAiC,SAAS,CAAA;AAAA,MACvD,GAAG;AAAA;AAAA,GACN;AAEJ;;;;"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bigbinary/neeto-atoms",
3
- "version": "1.0.141",
3
+ "version": "1.0.143-beta1",
4
4
  "author": "BigBinary",
5
5
  "license": "MIT",
6
6
  "engines": {
@@ -209,4 +209,4 @@
209
209
  "react-router-dom": "^5.3.3"
210
210
  },
211
211
  "packageManager": "yarn@4.9.2"
212
- }
212
+ }
package/CHANGELOG.md DELETED
@@ -1,3 +0,0 @@
1
- # Changelog
2
-
3
- All notable changes to this project will be documented in this file.
@@ -1 +0,0 @@
1
- {"version":3,"file":"Button-ZssOVkG0.js","sources":["../src/components/Button/constants.ts","../src/components/Button/Button.tsx"],"sourcesContent":["type ButtonSize =\n | \"default\"\n | \"xs\"\n | \"sm\"\n | \"lg\"\n | \"icon\"\n | \"icon-xs\"\n | \"icon-sm\"\n | \"icon-lg\";\n\nexport const ICON_ONLY_SIZE_MAP: Partial<Record<ButtonSize, ButtonSize>> = {\n xs: \"icon-xs\",\n sm: \"icon-sm\",\n default: \"icon\",\n lg: \"icon-lg\",\n};\n\nexport const SPINNER_SIZE_MAP: Record<ButtonSize, string> = {\n xs: \"size-3\",\n sm: \"size-3.5\",\n default: \"size-3.5\",\n lg: \"size-4\",\n icon: \"size-3.5\",\n \"icon-xs\": \"size-3\",\n \"icon-sm\": \"size-3.5\",\n \"icon-lg\": \"size-4\",\n};\n\n// Map NeetoUI tooltip `position` values to Radix side values\nexport const TOOLTIP_SIDE_MAP: Record<\n string,\n \"top\" | \"right\" | \"bottom\" | \"left\"\n> = {\n top: \"top\",\n bottom: \"bottom\",\n left: \"left\",\n right: \"right\",\n \"top-start\": \"top\",\n \"top-end\": \"top\",\n \"bottom-start\": \"bottom\",\n \"bottom-end\": \"bottom\",\n \"left-start\": \"left\",\n \"left-end\": \"left\",\n \"right-start\": \"right\",\n \"right-end\": \"right\",\n};\n","import React, { forwardRef, type ReactNode, type MouseEvent } from \"react\";\n\nimport { Link } from \"react-router-dom\";\nimport { cn } from \"src/shadcn/lib/utils\";\nimport { renderIcon, type IconProp } from \"src/shared/renderIcon\";\nimport {\n Button as PrimitiveButton,\n type ButtonUnderline,\n} from \"src/primitives/Button\";\nimport { Spinner } from \"src/primitives/Spinner\";\nimport {\n Tooltip,\n TooltipContent,\n TooltipProvider,\n TooltipTrigger,\n} from \"src/primitives/Tooltip\";\n\nimport {\n ICON_ONLY_SIZE_MAP,\n SPINNER_SIZE_MAP,\n TOOLTIP_SIDE_MAP,\n} from \"./constants\";\n\nexport const BUTTON_VARIANTS = [\n \"default\",\n \"brand\",\n \"secondary\",\n \"destructive\",\n \"destructive-soft\",\n \"outline\",\n \"ghost\",\n \"link\",\n \"link-muted\",\n] as const;\n\nexport const BUTTON_SIZES = [\n \"default\",\n \"xs\",\n \"sm\",\n \"lg\",\n \"icon\",\n \"icon-xs\",\n \"icon-sm\",\n \"icon-lg\",\n] as const;\n\nexport type ButtonVariant = (typeof BUTTON_VARIANTS)[number];\nexport type ButtonSize = (typeof BUTTON_SIZES)[number];\nexport type { ButtonUnderline };\n\ntype IconPosition = \"left\" | \"right\";\n\ntype ButtonType = \"button\" | \"reset\" | \"submit\";\n\ninterface ButtonTooltipProps {\n content?: ReactNode;\n position?: string;\n disabled?: boolean;\n}\n\nexport interface ButtonProps extends Omit<\n React.ButtonHTMLAttributes<HTMLButtonElement>,\n \"type\" | \"disabled\" | \"className\" | \"children\" | \"onClick\"\n> {\n /** Visual variant of the button. */\n variant?: ButtonVariant;\n /** Size of the button. */\n size?: ButtonSize;\n /**\n * Underline behaviour for link variants. Only applies to `link` /\n * `link-muted`. Defaults to `\"hover\"` (no resting underline, revealed on\n * hover and keyboard focus). Use `\"always\"` or `\"none\"` to override.\n */\n underline?: ButtonUnderline;\n /** Text label rendered inside the button. */\n label?: string;\n /** Icon component, element, or class-name string. */\n icon?: IconProp;\n /** Placement of the icon relative to the label. */\n iconPosition?: IconPosition;\n /** Show a loading spinner and prevent clicks. */\n loading?: boolean;\n /** Disable the button. */\n disabled?: boolean;\n /** Click handler. */\n onClick?: (e: MouseEvent<HTMLButtonElement | HTMLAnchorElement>) => void;\n /** Internal route (react-router `Link`). */\n to?: string;\n /** External URL (renders an anchor tag). */\n href?: string;\n /** HTML button type attribute. */\n type?: ButtonType;\n /** Stretch the button to fill its container. */\n fullWidth?: boolean;\n /** Additional CSS class names. */\n className?: string;\n /** Props forwarded to a wrapping Tooltip. */\n tooltipProps?: ButtonTooltipProps | null;\n /** Render as a custom element (polymorphic). */\n asChild?: boolean;\n /**\n * Content rendered after the label and any right-side icon (e.g., a trailing\n * chevron, badge, or shortcut indicator). Auto-wrapped with\n * `data-icon=\"inline-end\"` so the button's compact end-padding kicks in.\n */\n trailing?: ReactNode;\n /** Children rendered inside the button (fallback for `label`). */\n children?: ReactNode;\n}\n\nconst Button = forwardRef<HTMLButtonElement, ButtonProps>(\n (\n {\n variant = \"default\",\n size = \"default\",\n label,\n icon = null,\n iconPosition = \"right\",\n loading = false,\n disabled = false,\n onClick,\n to,\n href,\n type = \"button\",\n fullWidth = false,\n className,\n tooltipProps = null,\n asChild = false,\n trailing,\n children,\n ...otherProps\n },\n ref\n ) => {\n const isIconSize = size.startsWith(\"icon\");\n const renderLabel = isIconSize ? null : label || children;\n const isIconOnly = !renderLabel && !!icon;\n const resolvedSize = isIconOnly ? (ICON_ONLY_SIZE_MAP[size] ?? size) : size;\n\n // --- Loading / disabled state ---\n const isDisabled = disabled || loading;\n\n // --- Click handler ---\n const handleClick = (\n e: MouseEvent<HTMLButtonElement | HTMLAnchorElement>\n ) => {\n if (loading || disabled) {\n e.preventDefault();\n return;\n }\n onClick?.(e);\n };\n\n // --- Icon elements ---\n const iconElement = icon ? renderIcon(icon) : null;\n\n // --- Build the inner content ---\n const buttonContent = (\n <>\n {loading && (\n <span className=\"absolute inset-0 flex items-center justify-center\">\n <Spinner\n aria-hidden=\"true\"\n className={SPINNER_SIZE_MAP[resolvedSize]}\n />\n </span>\n )}\n <span\n className={cn(\n \"inline-flex items-center gap-1.5\",\n loading && \"invisible\"\n )}\n >\n {iconPosition === \"left\" && iconElement && (\n <span data-icon=\"inline-start\">{iconElement}</span>\n )}\n {renderLabel && <span>{renderLabel}</span>}\n {iconPosition === \"right\" && iconElement && (\n <span data-icon=\"inline-end\">{iconElement}</span>\n )}\n {trailing && <span data-icon=\"inline-end\">{trailing}</span>}\n </span>\n </>\n );\n\n // --- Merged className ---\n const mergedClassName = cn(\n fullWidth && \"w-full\",\n loading && \"relative pointer-events-none\",\n (variant === \"link\" || variant === \"link-muted\") &&\n \"[table_&]:max-w-full [table_&]:whitespace-normal\",\n className\n );\n\n // --- Determine render element ---\n let buttonElement: ReactNode;\n\n if (asChild) {\n buttonElement = (\n <PrimitiveButton\n ref={ref}\n asChild\n variant={variant}\n size={resolvedSize}\n className={mergedClassName}\n disabled={isDisabled}\n {...otherProps}\n >\n {children}\n </PrimitiveButton>\n );\n } else if (!disabled && to) {\n buttonElement = (\n <PrimitiveButton\n asChild\n variant={variant}\n size={resolvedSize}\n className={mergedClassName}\n disabled={isDisabled}\n {...otherProps}\n >\n <Link\n innerRef={ref as React.Ref<HTMLAnchorElement>}\n to={to}\n onClick={handleClick}\n >\n {buttonContent}\n </Link>\n </PrimitiveButton>\n );\n } else if (!disabled && href) {\n buttonElement = (\n <PrimitiveButton\n asChild\n variant={variant}\n size={resolvedSize}\n className={mergedClassName}\n disabled={isDisabled}\n {...otherProps}\n >\n <a\n ref={ref as React.Ref<HTMLAnchorElement>}\n href={href}\n onClick={handleClick}\n >\n {buttonContent}\n </a>\n </PrimitiveButton>\n );\n } else {\n buttonElement = (\n <PrimitiveButton\n ref={ref}\n type={type}\n variant={variant}\n size={resolvedSize}\n className={mergedClassName}\n disabled={isDisabled}\n onClick={handleClick}\n {...otherProps}\n >\n {buttonContent}\n </PrimitiveButton>\n );\n }\n\n // --- Tooltip wrapper ---\n if (tooltipProps) {\n const { content, position, disabled: tooltipDisabled } = tooltipProps;\n\n if (tooltipDisabled || !content) {\n return <>{buttonElement}</>;\n }\n\n const side = position ? TOOLTIP_SIDE_MAP[position] : undefined;\n\n // Wrap disabled buttons in a span so tooltip still triggers\n const triggerContent = isDisabled ? (\n <span className=\"inline-flex\">{buttonElement}</span>\n ) : (\n buttonElement\n );\n\n return (\n <TooltipProvider>\n <Tooltip>\n <TooltipTrigger asChild>{triggerContent}</TooltipTrigger>\n <TooltipContent data-testid=\"tooltip-box\" side={side}>\n {content}\n </TooltipContent>\n </Tooltip>\n </TooltipProvider>\n );\n }\n\n return <>{buttonElement}</>;\n }\n);\n\nButton.displayName = \"Button\";\n\nexport { Button };\n"],"names":["PrimitiveButton"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"ColorPicker-BvWNd8Tp.js","sources":["../node_modules/lucide-react/dist/esm/icons/pipette.js","../src/components/ColorPicker/hooks/useEyeDropper.ts","../src/components/ColorPicker/constants.ts","../src/components/ColorPicker/hooks/useRecentlyUsedColors.ts","../src/components/ColorPicker/utils.ts","../src/components/ColorPicker/Palette.tsx","../src/components/ColorPicker/Target.tsx","../src/components/ColorPicker/ColorPicker.tsx"],"sourcesContent":["/**\n * @license lucide-react v0.577.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [\n [\n \"path\",\n {\n d: \"m12 9-8.414 8.414A2 2 0 0 0 3 18.828v1.344a2 2 0 0 1-.586 1.414A2 2 0 0 1 3.828 21h1.344a2 2 0 0 0 1.414-.586L15 12\",\n key: \"1y3wsu\"\n }\n ],\n [\n \"path\",\n {\n d: \"m18 9 .4.4a1 1 0 1 1-3 3l-3.8-3.8a1 1 0 1 1 3-3l.4.4 3.4-3.4a1 1 0 1 1 3 3z\",\n key: \"110lr1\"\n }\n ],\n [\"path\", { d: \"m2 22 .414-.414\", key: \"jhxm08\" }]\n];\nconst Pipette = createLucideIcon(\"pipette\", __iconNode);\n\nexport { __iconNode, Pipette as default };\n//# sourceMappingURL=pipette.js.map\n","import { useCallback } from \"react\";\n\ninterface EyeDropperResult {\n sRGBHex: string;\n}\n\ndeclare global {\n interface Window {\n EyeDropper?: new () => { open: () => Promise<EyeDropperResult> };\n }\n}\n\nconst isSupported = typeof window !== \"undefined\" && \"EyeDropper\" in window;\n\nexport const useEyeDropper = () => {\n const open = useCallback(async (): Promise<string> => {\n if (!window.EyeDropper) throw new Error(\"EyeDropper API not supported\");\n\n const dropper = new window.EyeDropper();\n const result = await dropper.open();\n\n return result.sRGBHex;\n }, []);\n\n return { isSupported, open };\n};\n","export const DEFAULT_PALETTE_COLORS = [\n { hex: \"#FFFFFF\" },\n { hex: \"#D6D6D6\" },\n { hex: \"#0A0E13\" },\n { hex: \"#FECE1E\" },\n { hex: \"#F32E48\" },\n { hex: \"#02C39A\" },\n { hex: \"#2A79C4\" },\n { hex: \"#B3E5FC\" },\n { hex: \"#C3C6F9\" },\n { hex: \"#8064CE\" },\n { hex: \"#FE861E\" },\n { hex: \"#FF7DC9\" },\n { hex: \"#028090\" },\n { hex: \"#095482\" },\n];\n\nexport const RECENTLY_USED_STORAGE_KEY = \"recently-used-colors\";\n\nexport const TARGET_SIZES = {\n small: \"small\",\n medium: \"medium\",\n large: \"large\",\n} as const;\n\nexport const PICKER_HEIGHT: Record<string, string> = {\n small: \"100px\",\n medium: \"120px\",\n large: \"140px\",\n};\n","import { useSyncExternalStore } from \"react\";\n\nimport { RECENTLY_USED_STORAGE_KEY } from \"../constants\";\n\ninterface ColorValue {\n hex: string;\n rgb: string | { r: number; g: number; b: number; a?: number };\n}\n\nconst getFromStorage = (key: string, fallback: ColorValue[]): ColorValue[] => {\n try {\n const stored = localStorage.getItem(key);\n\n return stored ? JSON.parse(stored) : fallback;\n } catch {\n return fallback;\n }\n};\n\nconst setToStorage = (key: string, value: ColorValue[]) => {\n try {\n localStorage.setItem(key, JSON.stringify(value));\n } catch {\n // Silently fail if storage is unavailable\n }\n};\n\nconst createSyncedStore = (storageKey: string) => {\n const listeners = new Set<() => void>();\n\n const store = {\n value: getFromStorage(storageKey, []),\n getSnapshot: () => store.value,\n getServerSnapshot: () => [] as ColorValue[],\n setValue: (newValue: ColorValue[]) => {\n store.value = newValue;\n setToStorage(storageKey, newValue);\n listeners.forEach(listener => listener());\n },\n subscribe: (callback: () => void) => {\n listeners.add(callback);\n\n const storageEventHandler = (event: StorageEvent) => {\n if (event.key !== storageKey) return;\n store.value = getFromStorage(storageKey, []);\n listeners.forEach(listener => listener());\n };\n\n if (listeners.size === 1) {\n window.addEventListener(\"storage\", storageEventHandler);\n }\n\n return () => {\n listeners.delete(callback);\n if (listeners.size === 0) {\n window.removeEventListener(\"storage\", storageEventHandler);\n }\n };\n },\n };\n\n return store;\n};\n\nconst store = createSyncedStore(RECENTLY_USED_STORAGE_KEY);\n\nexport const useRecentlyUsedColors = (): [\n ColorValue[],\n (value: ColorValue[]) => void,\n] => [\n useSyncExternalStore(\n store.subscribe,\n store.getSnapshot,\n store.getServerSnapshot\n ),\n store.setValue,\n];\n","/**\n * Validates a hex color string (3, 4, 6, or 8 digits with optional #).\n */\nexport const isValidHex = (hex: string): boolean =>\n /^#?([0-9A-Fa-f]{3}|[0-9A-Fa-f]{4}|[0-9A-Fa-f]{6}|[0-9A-Fa-f]{8})$/.test(hex);\n\n/**\n * Parses a hex color string into RGBA components.\n * Returns { r: 0, g: 0, b: 0, a: 1 } for invalid inputs.\n */\nexport const hexToRgb = (\n hex: string\n): { r: number; g: number; b: number; a: number } => {\n const raw = hex.replace(/^#/, \"\");\n\n if (\n !/^([0-9A-Fa-f]{3}|[0-9A-Fa-f]{4}|[0-9A-Fa-f]{6}|[0-9A-Fa-f]{8})$/.test(raw)\n ) {\n return { r: 0, g: 0, b: 0, a: 1 };\n }\n\n let r: number,\n g: number,\n b: number,\n a = 255;\n if (raw.length === 3 || raw.length === 4) {\n r = parseInt(raw[0] + raw[0], 16);\n g = parseInt(raw[1] + raw[1], 16);\n b = parseInt(raw[2] + raw[2], 16);\n if (raw.length === 4) a = parseInt(raw[3] + raw[3], 16);\n } else {\n r = parseInt(raw.slice(0, 2), 16);\n g = parseInt(raw.slice(2, 4), 16);\n b = parseInt(raw.slice(4, 6), 16);\n if (raw.length === 8) a = parseInt(raw.slice(6, 8), 16);\n }\n\n return { r, g, b, a: Math.round((a / 255) * 100) / 100 };\n};\n\n/**\n * Converts a hex color to an 8-digit hex string (#RRGGBBAA).\n */\nexport const hexToHex8 = (hex: string): string => {\n const { r, g, b, a } = hexToRgb(hex);\n const alpha = Math.round(a * 255);\n\n return `#${[r, g, b, alpha].map(channel => channel.toString(16).padStart(2, \"0\")).join(\"\")}`;\n};\n\n/**\n * Converts a color value to a normalized { hex, rgb } object.\n * Handles transparency and validity checks.\n */\nexport const getColor = (\n colorValue: string,\n showTransparencyControl: boolean\n): { hex: string; rgb: { r: number; g: number; b: number; a: number } } => {\n if (!isValidHex(colorValue)) {\n return { hex: colorValue, rgb: { r: 0, g: 0, b: 0, a: 1 } };\n }\n\n const rgb = hexToRgb(colorValue);\n\n if (rgb.a === 0) {\n return { hex: colorValue, rgb };\n }\n\n const hex = showTransparencyControl\n ? hexToHex8(colorValue)\n : `#${colorValue.replace(/^#/, \"\").slice(0, 6)}`;\n\n return { hex, rgb: hexToRgb(hex) };\n};\n","import React, { forwardRef } from \"react\";\n\nimport { cn } from \"src/shadcn/lib/utils\";\n\nimport { isValidHex } from \"./utils\";\nimport { DEFAULT_PALETTE_COLORS } from \"./constants\";\nimport type { PaletteColor } from \"./types\";\n\nexport interface PaletteProps extends Omit<\n React.HTMLAttributes<HTMLDivElement>,\n \"onChange\"\n> {\n /** Currently selected color. */\n color?: string;\n /** List of colors to render. */\n colorList?: PaletteColor[];\n /** Callback when a color swatch is clicked. */\n onChange?: (color: string) => void;\n}\n\nconst Palette = forwardRef<HTMLDivElement, PaletteProps>(\n (\n {\n color,\n colorList = DEFAULT_PALETTE_COLORS,\n onChange,\n className,\n ...otherProps\n },\n ref\n ) => (\n <div\n ref={ref}\n className={cn(\n \"flex flex-row flex-wrap items-start justify-start gap-1\",\n className\n )}\n {...otherProps}\n >\n {colorList.map(item => {\n const rgbValue =\n \"rgb\" in item && typeof item.rgb === \"string\" ? item.rgb : undefined;\n const value = item.hex ?? rgbValue ?? \"\";\n const isActive =\n !!color && !!value && color.toLowerCase() === value.toLowerCase();\n\n return (\n <button\n type=\"button\"\n key={value}\n data-testid=\"color-palette-item\"\n className={cn(\n \"size-6 rounded-[5px] border cursor-pointer overflow-hidden transition-colors\",\n isActive\n ? \"border-muted-foreground\"\n : \"border-border hover:border-muted-foreground/50\"\n )}\n onClick={() => onChange?.(value)}\n >\n <span\n className={cn(\n \"block size-full\",\n isValidHex(value)\n ? \"\"\n : \"bg-[repeating-conic-gradient(#ccc_0_25%,transparent_0_50%)] bg-[length:8px_8px]\"\n )}\n style={isValidHex(value) ? { backgroundColor: value } : undefined}\n />\n </button>\n );\n })}\n </div>\n )\n);\n\nPalette.displayName = \"ColorPicker.Palette\";\n\nexport { Palette };\n","import React, { forwardRef } from \"react\";\n\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { ChevronDown } from \"lucide-react\";\nimport { cn } from \"src/shadcn/lib/utils\";\n\nconst targetVariants = cva(\n \"inline-flex items-center justify-between rounded-md border border-input bg-background transition-colors hover:border-muted-foreground focus-visible:outline-none focus-visible:border-primary focus-visible:ring-3 focus-visible:ring-primary/15 cursor-pointer\",\n {\n variants: {\n size: {\n small: \"h-7 p-0.5 gap-2\",\n medium: \"h-8 p-1 gap-2\",\n large: \"h-10 p-1.5 gap-3\",\n },\n },\n defaultVariants: {\n size: \"large\",\n },\n }\n);\n\nexport interface TargetProps\n extends\n Omit<React.ButtonHTMLAttributes<HTMLButtonElement>, \"size\">,\n VariantProps<typeof targetVariants> {\n /** Show hex code text beside the color swatch. */\n showHexValue?: boolean;\n /** The original color prop value. */\n color?: string;\n /** The resolved color value to display. */\n colorValue?: string;\n}\n\nconst Target = forwardRef<HTMLButtonElement, TargetProps>(\n (\n { size = \"large\", showHexValue, color, colorValue, className, ...props },\n ref\n ) => (\n <button\n ref={ref}\n type=\"button\"\n data-testid=\"color-picker-target\"\n className={cn(targetVariants({ size }), className)}\n {...props}\n >\n {showHexValue && (\n <span className=\"text-sm font-medium text-foreground min-w-[4.5rem] ps-1\">\n {color}\n </span>\n )}\n <span className=\"inline-flex items-center gap-2\">\n <span\n className=\"block size-5 rounded-[4px] border border-border\"\n style={{ backgroundColor: colorValue }}\n />\n <ChevronDown className=\"size-4 text-muted-foreground\" />\n </span>\n </button>\n )\n);\n\nTarget.displayName = \"ColorPicker.Target\";\n\nexport { Target };\n","import { forwardRef, useState, useRef } from \"react\";\n\nimport { Pipette } from \"lucide-react\";\nimport { useTranslation } from \"react-i18next\";\nimport {\n HexColorPicker,\n HexColorInput,\n HexAlphaColorPicker,\n} from \"react-colorful\";\nimport { Button } from \"src/primitives/Button\";\nimport {\n Popover,\n PopoverContent,\n PopoverTrigger,\n} from \"src/primitives/Popover\";\nimport { cn } from \"src/shadcn/lib/utils\";\n\nimport { useEyeDropper } from \"./hooks/useEyeDropper\";\nimport { useRecentlyUsedColors } from \"./hooks/useRecentlyUsedColors\";\nimport { Palette } from \"./Palette\";\nimport { Target } from \"./Target\";\nimport { PICKER_HEIGHT } from \"./constants\";\nimport type { ColorPickerProps } from \"./types\";\nimport { getColor } from \"./utils\";\n\nconst ColorPicker = forwardRef<HTMLDivElement, ColorPickerProps>(\n (\n {\n color = \"\",\n size = \"large\",\n onChange,\n dropdownProps,\n showEyeDropper = true,\n showHexValue = false,\n showTransparencyControl = false,\n showPicker = true,\n showHexPicker = true,\n colorPalette,\n showRecentlyUsedColors = showPicker,\n className,\n },\n ref\n ) => {\n const { t } = useTranslation();\n const [colorInternal, setColorInternal] = useState(color);\n const [isColorSelected, setIsColorSelected] = useState(false);\n const [open, setOpen] = useState(false);\n const hexColorInputValue = useRef(\"\");\n const { isSupported: eyeDropperSupported, open: openEyeDropper } =\n useEyeDropper();\n const [recentlyUsedColors, setRecentlyUsedColors] = useRecentlyUsedColors();\n\n const PickerComponent = showTransparencyControl\n ? HexAlphaColorPicker\n : HexColorPicker;\n\n const colorValue = color ?? colorInternal ?? \"\";\n\n const onColorChange = (value: string) => {\n setIsColorSelected(true);\n\n if (onChange) {\n onChange(getColor(value, showTransparencyControl));\n } else {\n setColorInternal(value);\n }\n };\n\n const onColorInputChange = (hex: string) => {\n hexColorInputValue.current = hex;\n const expectedLength = showTransparencyControl ? 9 : 7;\n if (hex.length !== expectedLength) return;\n\n onColorChange(hex);\n hexColorInputValue.current = \"\";\n };\n\n const onBlur = () => {\n if (!hexColorInputValue.current) return;\n\n onColorChange(hexColorInputValue.current);\n hexColorInputValue.current = \"\";\n };\n\n const pickColor = async () => {\n try {\n const hex = await openEyeDropper();\n onColorChange(hex);\n } catch {\n // User cancelled or API unavailable\n }\n };\n\n const onOpenChange = (nextOpen: boolean) => {\n if (!nextOpen && showRecentlyUsedColors && isColorSelected) {\n const newColor = getColor(colorValue, showTransparencyControl);\n const filtered = recentlyUsedColors.filter(\n ({ hex }) => hex !== newColor.hex\n );\n const updated = [newColor, ...filtered];\n if (updated.length > 14) updated.pop();\n\n setRecentlyUsedColors(updated);\n setIsColorSelected(false);\n }\n\n setOpen(nextOpen);\n };\n\n return (\n <Popover open={open} onOpenChange={onOpenChange}>\n <PopoverTrigger asChild>\n <Target\n color={color}\n colorValue={colorValue}\n showHexValue={showHexValue}\n size={size}\n />\n </PopoverTrigger>\n <PopoverContent\n ref={ref}\n align=\"start\"\n side=\"bottom\"\n className={cn(\"w-auto p-3\", className)}\n {...dropdownProps}\n >\n <div className=\"flex flex-col gap-3 w-56\">\n {showPicker && (\n <>\n {showHexPicker && (\n <div\n data-testid=\"neeto-color-picker-section\"\n style={{\n [\"--react-colorful-height\" as string]:\n PICKER_HEIGHT[size] ?? \"140px\",\n }}\n >\n <PickerComponent\n color={colorValue}\n onChange={onColorChange}\n style={{\n width: \"100%\",\n height: PICKER_HEIGHT[size] ?? \"140px\",\n }}\n />\n </div>\n )}\n <div className=\"flex items-center justify-center gap-2\">\n {showEyeDropper && eyeDropperSupported && (\n <Button\n type=\"button\"\n variant=\"ghost\"\n size=\"icon-sm\"\n onClick={pickColor}\n aria-label={t(\n \"neetoatoms.colorPicker.pickColor\",\n \"Pick color from screen\"\n )}\n >\n <Pipette className=\"size-4\" />\n </Button>\n )}\n <div\n className=\"flex-1\"\n data-testid=\"colorpicker-editable-input\"\n >\n <HexColorInput\n prefixed\n alpha={!!showTransparencyControl}\n color={colorValue}\n data-testid=\"colorpicker-editable-input-textbox\"\n onChange={onColorInputChange}\n onBlur={onBlur}\n className=\"h-8 w-full rounded-lg border border-input bg-transparent px-2.5 text-base outline-none focus-visible:border-primary focus-visible:ring-3 focus-visible:ring-primary/15 md:text-sm\"\n />\n </div>\n </div>\n </>\n )}\n <div\n data-testid=\"color-palette\"\n className={cn(showPicker && \"border-t border-border pt-3\")}\n >\n <Palette\n color={color}\n colorList={colorPalette}\n onChange={onColorChange}\n />\n </div>\n {showRecentlyUsedColors && recentlyUsedColors.length > 0 && (\n <div\n className=\"border-t border-border pt-3\"\n data-testid=\"color-palette-recently-used\"\n >\n <p className=\"text-xs font-medium text-muted-foreground mb-2\">\n {t(\"neetoatoms.colorPicker.recentlyUsed\", \"Recently used\")}\n </p>\n <Palette\n colorList={recentlyUsedColors}\n onChange={onColorChange}\n />\n </div>\n )}\n </div>\n </PopoverContent>\n </Popover>\n );\n }\n);\n\nColorPicker.displayName = \"ColorPicker\";\n\nexport { ColorPicker };\n"],"names":["store"],"mappings":"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","x_google_ignoreList":[0]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"Typography-CmILccNh.js","sources":["../src/components/Typography/Typography.tsx"],"sourcesContent":["import React, { forwardRef } from \"react\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { Slot } from \"radix-ui\";\n\nimport { cn } from \"src/shadcn/lib/utils\";\n\nconst typographyVariants = cva(\"\", {\n variants: {\n variant: {\n jumbo: \"text-5xl font-semibold leading-none tracking-tight\",\n h1: \"text-[2.5rem] font-semibold leading-tight tracking-tight\",\n h2: \"text-[2rem] font-semibold leading-tight tracking-tight\",\n h3: \"text-[1.75rem] font-semibold leading-tight\",\n h4: \"text-2xl font-semibold leading-tight\",\n h5: \"text-xl font-semibold leading-tight\",\n h6: \"text-base font-semibold leading-tight\",\n body1: \"text-base leading-normal\",\n body2: \"text-[15px] leading-normal\",\n body3: \"text-sm leading-normal\",\n caption: \"text-xs leading-normal\",\n nano: \"text-[10px] leading-normal\",\n code: \"font-mono text-sm\",\n },\n weight: {\n thin: \"font-thin\",\n extralight: \"font-extralight\",\n light: \"font-light\",\n normal: \"font-normal\",\n medium: \"font-medium\",\n semibold: \"font-semibold\",\n bold: \"font-bold\",\n extrabold: \"font-extrabold\",\n black: \"font-black\",\n },\n color: {\n default: \"text-foreground\",\n muted: \"text-muted-foreground\",\n primary: \"text-primary\",\n destructive: \"text-destructive\",\n inherit: \"text-inherit\",\n },\n lineClamp: {\n none: \"\",\n 1: \"line-clamp-1\",\n 2: \"line-clamp-2\",\n 3: \"line-clamp-3\",\n },\n },\n defaultVariants: {\n variant: \"body3\",\n color: \"default\",\n },\n});\n\nconst defaultElementMap: Record<string, keyof React.JSX.IntrinsicElements> = {\n jumbo: \"h1\",\n h1: \"h1\",\n h2: \"h2\",\n h3: \"h3\",\n h4: \"h4\",\n h5: \"h5\",\n h6: \"h6\",\n body1: \"p\",\n body2: \"p\",\n body3: \"p\",\n caption: \"span\",\n nano: \"span\",\n code: \"code\",\n};\n\nconst Typography = forwardRef<\n HTMLElement,\n React.HTMLAttributes<HTMLElement> &\n VariantProps<typeof typographyVariants> & {\n asChild?: boolean;\n /**\n * Renders Typography as the given tag (e.g. `\"code\"`, `\"span\"`).\n * Use this when the rendered element only needs generic HTML\n * attributes — common for `<Trans>` templates and other\n * string-child consumers.\n *\n * For element-specific attributes (e.g. `href` on an anchor) prefer\n * `asChild` with a real element child, which gives full type\n * safety on that element's props.\n */\n as?: React.ElementType;\n }\n>(\n (\n {\n className,\n variant = \"body3\",\n weight,\n color = \"default\",\n lineClamp,\n asChild = false,\n as,\n ...props\n },\n ref\n ) => {\n const Comp = (\n asChild ? Slot.Root : (as ?? defaultElementMap[variant ?? \"body3\"] ?? \"p\")\n ) as React.ElementType;\n\n return (\n <Comp\n ref={ref}\n data-slot=\"typography\"\n data-variant={variant}\n className={cn(\n typographyVariants({ variant, weight, color, lineClamp, className })\n )}\n {...props}\n />\n );\n }\n);\n\nTypography.displayName = \"Typography\";\n\nexport { Typography, typographyVariants };\n"],"names":["Slot.Root"],"mappings":";;;;;;AAMA,MAAM,kBAAA,GAAqB,IAAI,EAAA,EAAI;AAAA,EACjC,QAAA,EAAU;AAAA,IACR,OAAA,EAAS;AAAA,MACP,KAAA,EAAO,oDAAA;AAAA,MACP,EAAA,EAAI,0DAAA;AAAA,MACJ,EAAA,EAAI,wDAAA;AAAA,MACJ,EAAA,EAAI,4CAAA;AAAA,MACJ,EAAA,EAAI,sCAAA;AAAA,MACJ,EAAA,EAAI,qCAAA;AAAA,MACJ,EAAA,EAAI,uCAAA;AAAA,MACJ,KAAA,EAAO,0BAAA;AAAA,MACP,KAAA,EAAO,4BAAA;AAAA,MACP,KAAA,EAAO,wBAAA;AAAA,MACP,OAAA,EAAS,wBAAA;AAAA,MACT,IAAA,EAAM,4BAAA;AAAA,MACN,IAAA,EAAM;AAAA,KACR;AAAA,IACA,MAAA,EAAQ;AAAA,MACN,IAAA,EAAM,WAAA;AAAA,MACN,UAAA,EAAY,iBAAA;AAAA,MACZ,KAAA,EAAO,YAAA;AAAA,MACP,MAAA,EAAQ,aAAA;AAAA,MACR,MAAA,EAAQ,aAAA;AAAA,MACR,QAAA,EAAU,eAAA;AAAA,MACV,IAAA,EAAM,WAAA;AAAA,MACN,SAAA,EAAW,gBAAA;AAAA,MACX,KAAA,EAAO;AAAA,KACT;AAAA,IACA,KAAA,EAAO;AAAA,MACL,OAAA,EAAS,iBAAA;AAAA,MACT,KAAA,EAAO,uBAAA;AAAA,MACP,OAAA,EAAS,cAAA;AAAA,MACT,WAAA,EAAa,kBAAA;AAAA,MACb,OAAA,EAAS;AAAA,KACX;AAAA,IACA,SAAA,EAAW;AAAA,MACT,IAAA,EAAM,EAAA;AAAA,MACN,CAAA,EAAG,cAAA;AAAA,MACH,CAAA,EAAG,cAAA;AAAA,MACH,CAAA,EAAG;AAAA;AACL,GACF;AAAA,EACA,eAAA,EAAiB;AAAA,IACf,OAAA,EAAS,OAAA;AAAA,IACT,KAAA,EAAO;AAAA;AAEX,CAAC;AAED,MAAM,iBAAA,GAAuE;AAAA,EAC3E,KAAA,EAAO,IAAA;AAAA,EACP,EAAA,EAAI,IAAA;AAAA,EACJ,EAAA,EAAI,IAAA;AAAA,EACJ,EAAA,EAAI,IAAA;AAAA,EACJ,EAAA,EAAI,IAAA;AAAA,EACJ,EAAA,EAAI,IAAA;AAAA,EACJ,EAAA,EAAI,IAAA;AAAA,EACJ,KAAA,EAAO,GAAA;AAAA,EACP,KAAA,EAAO,GAAA;AAAA,EACP,KAAA,EAAO,GAAA;AAAA,EACP,OAAA,EAAS,MAAA;AAAA,EACT,IAAA,EAAM,MAAA;AAAA,EACN,IAAA,EAAM;AACR,CAAA;AAEA,MAAM,UAAA,GAAa,UAAA;AAAA,EAkBjB,CACE;AAAA,IACE,SAAA;AAAA,IACA,OAAA,GAAU,OAAA;AAAA,IACV,MAAA;AAAA,IACA,KAAA,GAAQ,SAAA;AAAA,IACR,SAAA;AAAA,IACA,OAAA,GAAU,KAAA;AAAA,IACV,EAAA;AAAA,IACA,GAAG;AAAA,KAEL,GAAA,KACG;AACH,IAAA,MAAM,IAAA,GACJ,UAAUA,IAAK,GAAQ,MAAM,iBAAA,CAAkB,OAAA,IAAW,OAAO,CAAA,IAAK,GAAA;AAGxE,IAAA,uBACE,GAAA;AAAA,MAAC,IAAA;AAAA,MAAA;AAAA,QACC,GAAA;AAAA,QACA,WAAA,EAAU,YAAA;AAAA,QACV,cAAA,EAAc,OAAA;AAAA,QACd,SAAA,EAAW,EAAA;AAAA,UACT,mBAAmB,EAAE,OAAA,EAAS,QAAQ,KAAA,EAAO,SAAA,EAAW,WAAW;AAAA,SACrE;AAAA,QACC,GAAG;AAAA;AAAA,KACN;AAAA,EAEJ;AACF;AAEA,UAAA,CAAW,WAAA,GAAc,YAAA;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"button-DTkEk06V.js","sources":["../src/shadcn/components/button.tsx"],"sourcesContent":["import * as React from \"react\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\nimport { Slot } from \"radix-ui\"\n\nimport { cn } from \"src/shadcn/lib/utils\"\n\nconst buttonVariants = cva(\n \"group/button inline-flex cursor-pointer shrink-0 items-center justify-center rounded-lg border border-transparent bg-clip-padding text-sm font-medium whitespace-nowrap transition-all outline-none select-none disabled:cursor-not-allowed focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 active:translate-y-px disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n {\n variants: {\n variant: {\n default: \"bg-primary text-primary-foreground [a]:hover:bg-primary/80\",\n brand:\n \"bg-brand text-brand-foreground hover:bg-brand/90 focus-visible:border-brand focus-visible:ring-brand/40\",\n outline:\n \"border-border bg-background hover:bg-muted hover:text-foreground aria-expanded:bg-muted aria-expanded:text-foreground dark:border-input dark:bg-input/30 dark:hover:bg-input/50\",\n secondary:\n \"bg-secondary text-secondary-foreground hover:bg-secondary/80 aria-expanded:bg-secondary aria-expanded:text-secondary-foreground\",\n ghost:\n \"hover:bg-muted hover:text-foreground aria-expanded:bg-muted aria-expanded:text-foreground dark:hover:bg-muted/50\",\n destructive:\n \"bg-destructive text-destructive-foreground hover:bg-destructive/90 focus-visible:border-destructive focus-visible:ring-destructive/40 dark:bg-destructive dark:hover:bg-destructive/90 dark:focus-visible:ring-destructive/40\",\n \"destructive-soft\":\n \"bg-destructive/10 text-destructive hover:bg-destructive/20 focus-visible:border-destructive/40 focus-visible:ring-destructive/20 dark:bg-destructive/20 dark:hover:bg-destructive/30 dark:focus-visible:ring-destructive/40\",\n link: \"text-primary underline underline-offset-4 decoration-primary/40 hover:decoration-primary\",\n },\n size: {\n default:\n \"h-8 gap-1.5 px-2.5 has-data-[icon=inline-end]:pe-2 has-data-[icon=inline-start]:ps-2\",\n xs: \"h-6 gap-1 rounded-[min(var(--radius-md),10px)] px-2 text-xs in-data-[slot=button-group]:rounded-lg has-data-[icon=inline-end]:pe-1.5 has-data-[icon=inline-start]:ps-1.5 [&_svg:not([class*='size-'])]:size-3\",\n sm: \"h-7 gap-1 rounded-[min(var(--radius-md),12px)] px-2.5 text-[0.8rem] in-data-[slot=button-group]:rounded-lg has-data-[icon=inline-end]:pe-1.5 has-data-[icon=inline-start]:ps-1.5 [&_svg:not([class*='size-'])]:size-3.5\",\n lg: \"h-9 gap-1.5 px-2.5 has-data-[icon=inline-end]:pe-3 has-data-[icon=inline-start]:ps-3\",\n icon: \"size-8\",\n \"icon-xs\":\n \"size-6 rounded-[min(var(--radius-md),10px)] in-data-[slot=button-group]:rounded-lg [&_svg:not([class*='size-'])]:size-3\",\n \"icon-sm\":\n \"size-7 rounded-[min(var(--radius-md),12px)] in-data-[slot=button-group]:rounded-lg\",\n \"icon-lg\": \"size-9\",\n },\n },\n compoundVariants: [\n {\n variant: \"link\",\n size: [\"default\", \"xs\", \"sm\", \"lg\"],\n className:\n \"h-auto border-0 px-0 has-data-[icon=inline-end]:pe-0 has-data-[icon=inline-start]:ps-0\",\n },\n ],\n defaultVariants: {\n variant: \"default\",\n size: \"default\",\n },\n }\n)\n\nconst Button = React.forwardRef<\n HTMLButtonElement,\n React.ComponentProps<\"button\"> &\n VariantProps<typeof buttonVariants> & {\n asChild?: boolean\n }\n>(({\n className,\n variant = \"default\",\n size = \"default\",\n asChild = false,\n ...props\n}, ref) => {\n const Comp = asChild ? Slot.Root : \"button\"\n\n return (\n <Comp\n ref={ref}\n data-slot=\"button\"\n data-variant={variant}\n data-size={size}\n className={cn(buttonVariants({ variant, size, className }))}\n {...props}\n />\n )\n})\n\nButton.displayName = \"Button\"\n\nexport { Button, buttonVariants }\n"],"names":["Slot.Root"],"mappings":";;;;;;AAMA,MAAM,cAAA,GAAiB,GAAA;AAAA,EACrB,mnBAAA;AAAA,EACA;AAAA,IACE,QAAA,EAAU;AAAA,MACR,OAAA,EAAS;AAAA,QACP,OAAA,EAAS,4DAAA;AAAA,QACT,KAAA,EACE,yGAAA;AAAA,QACF,OAAA,EACE,iLAAA;AAAA,QACF,SAAA,EACE,iIAAA;AAAA,QACF,KAAA,EACE,kHAAA;AAAA,QACF,WAAA,EACE,+NAAA;AAAA,QACF,kBAAA,EACE,6NAAA;AAAA,QACF,IAAA,EAAM;AAAA,OACR;AAAA,MACA,IAAA,EAAM;AAAA,QACJ,OAAA,EACE,sFAAA;AAAA,QACF,EAAA,EAAI,+MAAA;AAAA,QACJ,EAAA,EAAI,yNAAA;AAAA,QACJ,EAAA,EAAI,sFAAA;AAAA,QACJ,IAAA,EAAM,QAAA;AAAA,QACN,SAAA,EACE,yHAAA;AAAA,QACF,SAAA,EACE,oFAAA;AAAA,QACF,SAAA,EAAW;AAAA;AACb,KACF;AAAA,IACA,gBAAA,EAAkB;AAAA,MAChB;AAAA,QACE,OAAA,EAAS,MAAA;AAAA,QACT,IAAA,EAAM,CAAC,SAAA,EAAW,IAAA,EAAM,MAAM,IAAI,CAAA;AAAA,QAClC,SAAA,EACE;AAAA;AACJ,KACF;AAAA,IACA,eAAA,EAAiB;AAAA,MACf,OAAA,EAAS,SAAA;AAAA,MACT,IAAA,EAAM;AAAA;AACR;AAEJ;AAEA,MAAM,MAAA,GAAS,KAAA,CAAM,UAAA,CAMnB,CAAC;AAAA,EACD,SAAA;AAAA,EACA,OAAA,GAAU,SAAA;AAAA,EACV,IAAA,GAAO,SAAA;AAAA,EACP,OAAA,GAAU,KAAA;AAAA,EACV,GAAG;AACL,CAAA,EAAG,GAAA,KAAQ;AACT,EAAA,MAAM,IAAA,GAAO,OAAA,GAAUA,IAAK,GAAO,QAAA;AAEnC,EAAA,uBACE,GAAA;AAAA,IAAC,IAAA;AAAA,IAAA;AAAA,MACC,GAAA;AAAA,MACA,WAAA,EAAU,QAAA;AAAA,MACV,cAAA,EAAc,OAAA;AAAA,MACd,WAAA,EAAW,IAAA;AAAA,MACX,SAAA,EAAW,GAAG,cAAA,CAAe,EAAE,SAAS,IAAA,EAAM,SAAA,EAAW,CAAC,CAAA;AAAA,MACzD,GAAG;AAAA;AAAA,GACN;AAEJ,CAAC;AAED,MAAA,CAAO,WAAA,GAAc,QAAA;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"Button-BQ4rpzsl.js","sources":["../../src/components/Button/constants.ts","../../src/components/Button/Button.tsx"],"sourcesContent":["type ButtonSize =\n | \"default\"\n | \"xs\"\n | \"sm\"\n | \"lg\"\n | \"icon\"\n | \"icon-xs\"\n | \"icon-sm\"\n | \"icon-lg\";\n\nexport const ICON_ONLY_SIZE_MAP: Partial<Record<ButtonSize, ButtonSize>> = {\n xs: \"icon-xs\",\n sm: \"icon-sm\",\n default: \"icon\",\n lg: \"icon-lg\",\n};\n\nexport const SPINNER_SIZE_MAP: Record<ButtonSize, string> = {\n xs: \"size-3\",\n sm: \"size-3.5\",\n default: \"size-3.5\",\n lg: \"size-4\",\n icon: \"size-3.5\",\n \"icon-xs\": \"size-3\",\n \"icon-sm\": \"size-3.5\",\n \"icon-lg\": \"size-4\",\n};\n\n// Map NeetoUI tooltip `position` values to Radix side values\nexport const TOOLTIP_SIDE_MAP: Record<\n string,\n \"top\" | \"right\" | \"bottom\" | \"left\"\n> = {\n top: \"top\",\n bottom: \"bottom\",\n left: \"left\",\n right: \"right\",\n \"top-start\": \"top\",\n \"top-end\": \"top\",\n \"bottom-start\": \"bottom\",\n \"bottom-end\": \"bottom\",\n \"left-start\": \"left\",\n \"left-end\": \"left\",\n \"right-start\": \"right\",\n \"right-end\": \"right\",\n};\n","import React, { forwardRef, type ReactNode, type MouseEvent } from \"react\";\n\nimport { Link } from \"react-router-dom\";\nimport { cn } from \"src/shadcn/lib/utils\";\nimport { renderIcon, type IconProp } from \"src/shared/renderIcon\";\nimport {\n Button as PrimitiveButton,\n type ButtonUnderline,\n} from \"src/primitives/Button\";\nimport { Spinner } from \"src/primitives/Spinner\";\nimport {\n Tooltip,\n TooltipContent,\n TooltipProvider,\n TooltipTrigger,\n} from \"src/primitives/Tooltip\";\n\nimport {\n ICON_ONLY_SIZE_MAP,\n SPINNER_SIZE_MAP,\n TOOLTIP_SIDE_MAP,\n} from \"./constants\";\n\nexport const BUTTON_VARIANTS = [\n \"default\",\n \"brand\",\n \"secondary\",\n \"destructive\",\n \"destructive-soft\",\n \"outline\",\n \"ghost\",\n \"link\",\n \"link-muted\",\n] as const;\n\nexport const BUTTON_SIZES = [\n \"default\",\n \"xs\",\n \"sm\",\n \"lg\",\n \"icon\",\n \"icon-xs\",\n \"icon-sm\",\n \"icon-lg\",\n] as const;\n\nexport type ButtonVariant = (typeof BUTTON_VARIANTS)[number];\nexport type ButtonSize = (typeof BUTTON_SIZES)[number];\nexport type { ButtonUnderline };\n\ntype IconPosition = \"left\" | \"right\";\n\ntype ButtonType = \"button\" | \"reset\" | \"submit\";\n\ninterface ButtonTooltipProps {\n content?: ReactNode;\n position?: string;\n disabled?: boolean;\n}\n\nexport interface ButtonProps extends Omit<\n React.ButtonHTMLAttributes<HTMLButtonElement>,\n \"type\" | \"disabled\" | \"className\" | \"children\" | \"onClick\"\n> {\n /** Visual variant of the button. */\n variant?: ButtonVariant;\n /** Size of the button. */\n size?: ButtonSize;\n /**\n * Underline behaviour for link variants. Only applies to `link` /\n * `link-muted`. Defaults to `\"hover\"` (no resting underline, revealed on\n * hover and keyboard focus). Use `\"always\"` or `\"none\"` to override.\n */\n underline?: ButtonUnderline;\n /** Text label rendered inside the button. */\n label?: string;\n /** Icon component, element, or class-name string. */\n icon?: IconProp;\n /** Placement of the icon relative to the label. */\n iconPosition?: IconPosition;\n /** Show a loading spinner and prevent clicks. */\n loading?: boolean;\n /** Disable the button. */\n disabled?: boolean;\n /** Click handler. */\n onClick?: (e: MouseEvent<HTMLButtonElement | HTMLAnchorElement>) => void;\n /** Internal route (react-router `Link`). */\n to?: string;\n /** External URL (renders an anchor tag). */\n href?: string;\n /** HTML button type attribute. */\n type?: ButtonType;\n /** Stretch the button to fill its container. */\n fullWidth?: boolean;\n /** Additional CSS class names. */\n className?: string;\n /** Props forwarded to a wrapping Tooltip. */\n tooltipProps?: ButtonTooltipProps | null;\n /** Render as a custom element (polymorphic). */\n asChild?: boolean;\n /**\n * Content rendered after the label and any right-side icon (e.g., a trailing\n * chevron, badge, or shortcut indicator). Auto-wrapped with\n * `data-icon=\"inline-end\"` so the button's compact end-padding kicks in.\n */\n trailing?: ReactNode;\n /** Children rendered inside the button (fallback for `label`). */\n children?: ReactNode;\n}\n\nconst Button = forwardRef<HTMLButtonElement, ButtonProps>(\n (\n {\n variant = \"default\",\n size = \"default\",\n label,\n icon = null,\n iconPosition = \"right\",\n loading = false,\n disabled = false,\n onClick,\n to,\n href,\n type = \"button\",\n fullWidth = false,\n className,\n tooltipProps = null,\n asChild = false,\n trailing,\n children,\n ...otherProps\n },\n ref\n ) => {\n const isIconSize = size.startsWith(\"icon\");\n const renderLabel = isIconSize ? null : label || children;\n const isIconOnly = !renderLabel && !!icon;\n const resolvedSize = isIconOnly ? (ICON_ONLY_SIZE_MAP[size] ?? size) : size;\n\n // --- Loading / disabled state ---\n const isDisabled = disabled || loading;\n\n // --- Click handler ---\n const handleClick = (\n e: MouseEvent<HTMLButtonElement | HTMLAnchorElement>\n ) => {\n if (loading || disabled) {\n e.preventDefault();\n return;\n }\n onClick?.(e);\n };\n\n // --- Icon elements ---\n const iconElement = icon ? renderIcon(icon) : null;\n\n // --- Build the inner content ---\n const buttonContent = (\n <>\n {loading && (\n <span className=\"absolute inset-0 flex items-center justify-center\">\n <Spinner\n aria-hidden=\"true\"\n className={SPINNER_SIZE_MAP[resolvedSize]}\n />\n </span>\n )}\n <span\n className={cn(\n \"inline-flex items-center gap-1.5\",\n loading && \"invisible\"\n )}\n >\n {iconPosition === \"left\" && iconElement && (\n <span data-icon=\"inline-start\">{iconElement}</span>\n )}\n {renderLabel && <span>{renderLabel}</span>}\n {iconPosition === \"right\" && iconElement && (\n <span data-icon=\"inline-end\">{iconElement}</span>\n )}\n {trailing && <span data-icon=\"inline-end\">{trailing}</span>}\n </span>\n </>\n );\n\n // --- Merged className ---\n const mergedClassName = cn(\n fullWidth && \"w-full\",\n loading && \"relative pointer-events-none\",\n (variant === \"link\" || variant === \"link-muted\") &&\n \"[table_&]:max-w-full [table_&]:whitespace-normal\",\n className\n );\n\n // --- Determine render element ---\n let buttonElement: ReactNode;\n\n if (asChild) {\n buttonElement = (\n <PrimitiveButton\n ref={ref}\n asChild\n variant={variant}\n size={resolvedSize}\n className={mergedClassName}\n disabled={isDisabled}\n {...otherProps}\n >\n {children}\n </PrimitiveButton>\n );\n } else if (!disabled && to) {\n buttonElement = (\n <PrimitiveButton\n asChild\n variant={variant}\n size={resolvedSize}\n className={mergedClassName}\n disabled={isDisabled}\n {...otherProps}\n >\n <Link\n innerRef={ref as React.Ref<HTMLAnchorElement>}\n to={to}\n onClick={handleClick}\n >\n {buttonContent}\n </Link>\n </PrimitiveButton>\n );\n } else if (!disabled && href) {\n buttonElement = (\n <PrimitiveButton\n asChild\n variant={variant}\n size={resolvedSize}\n className={mergedClassName}\n disabled={isDisabled}\n {...otherProps}\n >\n <a\n ref={ref as React.Ref<HTMLAnchorElement>}\n href={href}\n onClick={handleClick}\n >\n {buttonContent}\n </a>\n </PrimitiveButton>\n );\n } else {\n buttonElement = (\n <PrimitiveButton\n ref={ref}\n type={type}\n variant={variant}\n size={resolvedSize}\n className={mergedClassName}\n disabled={isDisabled}\n onClick={handleClick}\n {...otherProps}\n >\n {buttonContent}\n </PrimitiveButton>\n );\n }\n\n // --- Tooltip wrapper ---\n if (tooltipProps) {\n const { content, position, disabled: tooltipDisabled } = tooltipProps;\n\n if (tooltipDisabled || !content) {\n return <>{buttonElement}</>;\n }\n\n const side = position ? TOOLTIP_SIDE_MAP[position] : undefined;\n\n // Wrap disabled buttons in a span so tooltip still triggers\n const triggerContent = isDisabled ? (\n <span className=\"inline-flex\">{buttonElement}</span>\n ) : (\n buttonElement\n );\n\n return (\n <TooltipProvider>\n <Tooltip>\n <TooltipTrigger asChild>{triggerContent}</TooltipTrigger>\n <TooltipContent data-testid=\"tooltip-box\" side={side}>\n {content}\n </TooltipContent>\n </Tooltip>\n </TooltipProvider>\n );\n }\n\n return <>{buttonElement}</>;\n }\n);\n\nButton.displayName = \"Button\";\n\nexport { Button };\n"],"names":["forwardRef","renderIcon","jsxs","Fragment","jsx","Spinner","cn","PrimitiveButton","Link","TooltipProvider","Tooltip","TooltipTrigger","TooltipContent"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"ColorPicker-Dh58otnF.js","sources":["../../node_modules/lucide-react/dist/esm/icons/pipette.js","../../src/components/ColorPicker/hooks/useEyeDropper.ts","../../src/components/ColorPicker/constants.ts","../../src/components/ColorPicker/hooks/useRecentlyUsedColors.ts","../../src/components/ColorPicker/utils.ts","../../src/components/ColorPicker/Palette.tsx","../../src/components/ColorPicker/Target.tsx","../../src/components/ColorPicker/ColorPicker.tsx"],"sourcesContent":["/**\n * @license lucide-react v0.577.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [\n [\n \"path\",\n {\n d: \"m12 9-8.414 8.414A2 2 0 0 0 3 18.828v1.344a2 2 0 0 1-.586 1.414A2 2 0 0 1 3.828 21h1.344a2 2 0 0 0 1.414-.586L15 12\",\n key: \"1y3wsu\"\n }\n ],\n [\n \"path\",\n {\n d: \"m18 9 .4.4a1 1 0 1 1-3 3l-3.8-3.8a1 1 0 1 1 3-3l.4.4 3.4-3.4a1 1 0 1 1 3 3z\",\n key: \"110lr1\"\n }\n ],\n [\"path\", { d: \"m2 22 .414-.414\", key: \"jhxm08\" }]\n];\nconst Pipette = createLucideIcon(\"pipette\", __iconNode);\n\nexport { __iconNode, Pipette as default };\n//# sourceMappingURL=pipette.js.map\n","import { useCallback } from \"react\";\n\ninterface EyeDropperResult {\n sRGBHex: string;\n}\n\ndeclare global {\n interface Window {\n EyeDropper?: new () => { open: () => Promise<EyeDropperResult> };\n }\n}\n\nconst isSupported = typeof window !== \"undefined\" && \"EyeDropper\" in window;\n\nexport const useEyeDropper = () => {\n const open = useCallback(async (): Promise<string> => {\n if (!window.EyeDropper) throw new Error(\"EyeDropper API not supported\");\n\n const dropper = new window.EyeDropper();\n const result = await dropper.open();\n\n return result.sRGBHex;\n }, []);\n\n return { isSupported, open };\n};\n","export const DEFAULT_PALETTE_COLORS = [\n { hex: \"#FFFFFF\" },\n { hex: \"#D6D6D6\" },\n { hex: \"#0A0E13\" },\n { hex: \"#FECE1E\" },\n { hex: \"#F32E48\" },\n { hex: \"#02C39A\" },\n { hex: \"#2A79C4\" },\n { hex: \"#B3E5FC\" },\n { hex: \"#C3C6F9\" },\n { hex: \"#8064CE\" },\n { hex: \"#FE861E\" },\n { hex: \"#FF7DC9\" },\n { hex: \"#028090\" },\n { hex: \"#095482\" },\n];\n\nexport const RECENTLY_USED_STORAGE_KEY = \"recently-used-colors\";\n\nexport const TARGET_SIZES = {\n small: \"small\",\n medium: \"medium\",\n large: \"large\",\n} as const;\n\nexport const PICKER_HEIGHT: Record<string, string> = {\n small: \"100px\",\n medium: \"120px\",\n large: \"140px\",\n};\n","import { useSyncExternalStore } from \"react\";\n\nimport { RECENTLY_USED_STORAGE_KEY } from \"../constants\";\n\ninterface ColorValue {\n hex: string;\n rgb: string | { r: number; g: number; b: number; a?: number };\n}\n\nconst getFromStorage = (key: string, fallback: ColorValue[]): ColorValue[] => {\n try {\n const stored = localStorage.getItem(key);\n\n return stored ? JSON.parse(stored) : fallback;\n } catch {\n return fallback;\n }\n};\n\nconst setToStorage = (key: string, value: ColorValue[]) => {\n try {\n localStorage.setItem(key, JSON.stringify(value));\n } catch {\n // Silently fail if storage is unavailable\n }\n};\n\nconst createSyncedStore = (storageKey: string) => {\n const listeners = new Set<() => void>();\n\n const store = {\n value: getFromStorage(storageKey, []),\n getSnapshot: () => store.value,\n getServerSnapshot: () => [] as ColorValue[],\n setValue: (newValue: ColorValue[]) => {\n store.value = newValue;\n setToStorage(storageKey, newValue);\n listeners.forEach(listener => listener());\n },\n subscribe: (callback: () => void) => {\n listeners.add(callback);\n\n const storageEventHandler = (event: StorageEvent) => {\n if (event.key !== storageKey) return;\n store.value = getFromStorage(storageKey, []);\n listeners.forEach(listener => listener());\n };\n\n if (listeners.size === 1) {\n window.addEventListener(\"storage\", storageEventHandler);\n }\n\n return () => {\n listeners.delete(callback);\n if (listeners.size === 0) {\n window.removeEventListener(\"storage\", storageEventHandler);\n }\n };\n },\n };\n\n return store;\n};\n\nconst store = createSyncedStore(RECENTLY_USED_STORAGE_KEY);\n\nexport const useRecentlyUsedColors = (): [\n ColorValue[],\n (value: ColorValue[]) => void,\n] => [\n useSyncExternalStore(\n store.subscribe,\n store.getSnapshot,\n store.getServerSnapshot\n ),\n store.setValue,\n];\n","/**\n * Validates a hex color string (3, 4, 6, or 8 digits with optional #).\n */\nexport const isValidHex = (hex: string): boolean =>\n /^#?([0-9A-Fa-f]{3}|[0-9A-Fa-f]{4}|[0-9A-Fa-f]{6}|[0-9A-Fa-f]{8})$/.test(hex);\n\n/**\n * Parses a hex color string into RGBA components.\n * Returns { r: 0, g: 0, b: 0, a: 1 } for invalid inputs.\n */\nexport const hexToRgb = (\n hex: string\n): { r: number; g: number; b: number; a: number } => {\n const raw = hex.replace(/^#/, \"\");\n\n if (\n !/^([0-9A-Fa-f]{3}|[0-9A-Fa-f]{4}|[0-9A-Fa-f]{6}|[0-9A-Fa-f]{8})$/.test(raw)\n ) {\n return { r: 0, g: 0, b: 0, a: 1 };\n }\n\n let r: number,\n g: number,\n b: number,\n a = 255;\n if (raw.length === 3 || raw.length === 4) {\n r = parseInt(raw[0] + raw[0], 16);\n g = parseInt(raw[1] + raw[1], 16);\n b = parseInt(raw[2] + raw[2], 16);\n if (raw.length === 4) a = parseInt(raw[3] + raw[3], 16);\n } else {\n r = parseInt(raw.slice(0, 2), 16);\n g = parseInt(raw.slice(2, 4), 16);\n b = parseInt(raw.slice(4, 6), 16);\n if (raw.length === 8) a = parseInt(raw.slice(6, 8), 16);\n }\n\n return { r, g, b, a: Math.round((a / 255) * 100) / 100 };\n};\n\n/**\n * Converts a hex color to an 8-digit hex string (#RRGGBBAA).\n */\nexport const hexToHex8 = (hex: string): string => {\n const { r, g, b, a } = hexToRgb(hex);\n const alpha = Math.round(a * 255);\n\n return `#${[r, g, b, alpha].map(channel => channel.toString(16).padStart(2, \"0\")).join(\"\")}`;\n};\n\n/**\n * Converts a color value to a normalized { hex, rgb } object.\n * Handles transparency and validity checks.\n */\nexport const getColor = (\n colorValue: string,\n showTransparencyControl: boolean\n): { hex: string; rgb: { r: number; g: number; b: number; a: number } } => {\n if (!isValidHex(colorValue)) {\n return { hex: colorValue, rgb: { r: 0, g: 0, b: 0, a: 1 } };\n }\n\n const rgb = hexToRgb(colorValue);\n\n if (rgb.a === 0) {\n return { hex: colorValue, rgb };\n }\n\n const hex = showTransparencyControl\n ? hexToHex8(colorValue)\n : `#${colorValue.replace(/^#/, \"\").slice(0, 6)}`;\n\n return { hex, rgb: hexToRgb(hex) };\n};\n","import React, { forwardRef } from \"react\";\n\nimport { cn } from \"src/shadcn/lib/utils\";\n\nimport { isValidHex } from \"./utils\";\nimport { DEFAULT_PALETTE_COLORS } from \"./constants\";\nimport type { PaletteColor } from \"./types\";\n\nexport interface PaletteProps extends Omit<\n React.HTMLAttributes<HTMLDivElement>,\n \"onChange\"\n> {\n /** Currently selected color. */\n color?: string;\n /** List of colors to render. */\n colorList?: PaletteColor[];\n /** Callback when a color swatch is clicked. */\n onChange?: (color: string) => void;\n}\n\nconst Palette = forwardRef<HTMLDivElement, PaletteProps>(\n (\n {\n color,\n colorList = DEFAULT_PALETTE_COLORS,\n onChange,\n className,\n ...otherProps\n },\n ref\n ) => (\n <div\n ref={ref}\n className={cn(\n \"flex flex-row flex-wrap items-start justify-start gap-1\",\n className\n )}\n {...otherProps}\n >\n {colorList.map(item => {\n const rgbValue =\n \"rgb\" in item && typeof item.rgb === \"string\" ? item.rgb : undefined;\n const value = item.hex ?? rgbValue ?? \"\";\n const isActive =\n !!color && !!value && color.toLowerCase() === value.toLowerCase();\n\n return (\n <button\n type=\"button\"\n key={value}\n data-testid=\"color-palette-item\"\n className={cn(\n \"size-6 rounded-[5px] border cursor-pointer overflow-hidden transition-colors\",\n isActive\n ? \"border-muted-foreground\"\n : \"border-border hover:border-muted-foreground/50\"\n )}\n onClick={() => onChange?.(value)}\n >\n <span\n className={cn(\n \"block size-full\",\n isValidHex(value)\n ? \"\"\n : \"bg-[repeating-conic-gradient(#ccc_0_25%,transparent_0_50%)] bg-[length:8px_8px]\"\n )}\n style={isValidHex(value) ? { backgroundColor: value } : undefined}\n />\n </button>\n );\n })}\n </div>\n )\n);\n\nPalette.displayName = \"ColorPicker.Palette\";\n\nexport { Palette };\n","import React, { forwardRef } from \"react\";\n\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { ChevronDown } from \"lucide-react\";\nimport { cn } from \"src/shadcn/lib/utils\";\n\nconst targetVariants = cva(\n \"inline-flex items-center justify-between rounded-md border border-input bg-background transition-colors hover:border-muted-foreground focus-visible:outline-none focus-visible:border-primary focus-visible:ring-3 focus-visible:ring-primary/15 cursor-pointer\",\n {\n variants: {\n size: {\n small: \"h-7 p-0.5 gap-2\",\n medium: \"h-8 p-1 gap-2\",\n large: \"h-10 p-1.5 gap-3\",\n },\n },\n defaultVariants: {\n size: \"large\",\n },\n }\n);\n\nexport interface TargetProps\n extends\n Omit<React.ButtonHTMLAttributes<HTMLButtonElement>, \"size\">,\n VariantProps<typeof targetVariants> {\n /** Show hex code text beside the color swatch. */\n showHexValue?: boolean;\n /** The original color prop value. */\n color?: string;\n /** The resolved color value to display. */\n colorValue?: string;\n}\n\nconst Target = forwardRef<HTMLButtonElement, TargetProps>(\n (\n { size = \"large\", showHexValue, color, colorValue, className, ...props },\n ref\n ) => (\n <button\n ref={ref}\n type=\"button\"\n data-testid=\"color-picker-target\"\n className={cn(targetVariants({ size }), className)}\n {...props}\n >\n {showHexValue && (\n <span className=\"text-sm font-medium text-foreground min-w-[4.5rem] ps-1\">\n {color}\n </span>\n )}\n <span className=\"inline-flex items-center gap-2\">\n <span\n className=\"block size-5 rounded-[4px] border border-border\"\n style={{ backgroundColor: colorValue }}\n />\n <ChevronDown className=\"size-4 text-muted-foreground\" />\n </span>\n </button>\n )\n);\n\nTarget.displayName = \"ColorPicker.Target\";\n\nexport { Target };\n","import { forwardRef, useState, useRef } from \"react\";\n\nimport { Pipette } from \"lucide-react\";\nimport { useTranslation } from \"react-i18next\";\nimport {\n HexColorPicker,\n HexColorInput,\n HexAlphaColorPicker,\n} from \"react-colorful\";\nimport { Button } from \"src/primitives/Button\";\nimport {\n Popover,\n PopoverContent,\n PopoverTrigger,\n} from \"src/primitives/Popover\";\nimport { cn } from \"src/shadcn/lib/utils\";\n\nimport { useEyeDropper } from \"./hooks/useEyeDropper\";\nimport { useRecentlyUsedColors } from \"./hooks/useRecentlyUsedColors\";\nimport { Palette } from \"./Palette\";\nimport { Target } from \"./Target\";\nimport { PICKER_HEIGHT } from \"./constants\";\nimport type { ColorPickerProps } from \"./types\";\nimport { getColor } from \"./utils\";\n\nconst ColorPicker = forwardRef<HTMLDivElement, ColorPickerProps>(\n (\n {\n color = \"\",\n size = \"large\",\n onChange,\n dropdownProps,\n showEyeDropper = true,\n showHexValue = false,\n showTransparencyControl = false,\n showPicker = true,\n showHexPicker = true,\n colorPalette,\n showRecentlyUsedColors = showPicker,\n className,\n },\n ref\n ) => {\n const { t } = useTranslation();\n const [colorInternal, setColorInternal] = useState(color);\n const [isColorSelected, setIsColorSelected] = useState(false);\n const [open, setOpen] = useState(false);\n const hexColorInputValue = useRef(\"\");\n const { isSupported: eyeDropperSupported, open: openEyeDropper } =\n useEyeDropper();\n const [recentlyUsedColors, setRecentlyUsedColors] = useRecentlyUsedColors();\n\n const PickerComponent = showTransparencyControl\n ? HexAlphaColorPicker\n : HexColorPicker;\n\n const colorValue = color ?? colorInternal ?? \"\";\n\n const onColorChange = (value: string) => {\n setIsColorSelected(true);\n\n if (onChange) {\n onChange(getColor(value, showTransparencyControl));\n } else {\n setColorInternal(value);\n }\n };\n\n const onColorInputChange = (hex: string) => {\n hexColorInputValue.current = hex;\n const expectedLength = showTransparencyControl ? 9 : 7;\n if (hex.length !== expectedLength) return;\n\n onColorChange(hex);\n hexColorInputValue.current = \"\";\n };\n\n const onBlur = () => {\n if (!hexColorInputValue.current) return;\n\n onColorChange(hexColorInputValue.current);\n hexColorInputValue.current = \"\";\n };\n\n const pickColor = async () => {\n try {\n const hex = await openEyeDropper();\n onColorChange(hex);\n } catch {\n // User cancelled or API unavailable\n }\n };\n\n const onOpenChange = (nextOpen: boolean) => {\n if (!nextOpen && showRecentlyUsedColors && isColorSelected) {\n const newColor = getColor(colorValue, showTransparencyControl);\n const filtered = recentlyUsedColors.filter(\n ({ hex }) => hex !== newColor.hex\n );\n const updated = [newColor, ...filtered];\n if (updated.length > 14) updated.pop();\n\n setRecentlyUsedColors(updated);\n setIsColorSelected(false);\n }\n\n setOpen(nextOpen);\n };\n\n return (\n <Popover open={open} onOpenChange={onOpenChange}>\n <PopoverTrigger asChild>\n <Target\n color={color}\n colorValue={colorValue}\n showHexValue={showHexValue}\n size={size}\n />\n </PopoverTrigger>\n <PopoverContent\n ref={ref}\n align=\"start\"\n side=\"bottom\"\n className={cn(\"w-auto p-3\", className)}\n {...dropdownProps}\n >\n <div className=\"flex flex-col gap-3 w-56\">\n {showPicker && (\n <>\n {showHexPicker && (\n <div\n data-testid=\"neeto-color-picker-section\"\n style={{\n [\"--react-colorful-height\" as string]:\n PICKER_HEIGHT[size] ?? \"140px\",\n }}\n >\n <PickerComponent\n color={colorValue}\n onChange={onColorChange}\n style={{\n width: \"100%\",\n height: PICKER_HEIGHT[size] ?? \"140px\",\n }}\n />\n </div>\n )}\n <div className=\"flex items-center justify-center gap-2\">\n {showEyeDropper && eyeDropperSupported && (\n <Button\n type=\"button\"\n variant=\"ghost\"\n size=\"icon-sm\"\n onClick={pickColor}\n aria-label={t(\n \"neetoatoms.colorPicker.pickColor\",\n \"Pick color from screen\"\n )}\n >\n <Pipette className=\"size-4\" />\n </Button>\n )}\n <div\n className=\"flex-1\"\n data-testid=\"colorpicker-editable-input\"\n >\n <HexColorInput\n prefixed\n alpha={!!showTransparencyControl}\n color={colorValue}\n data-testid=\"colorpicker-editable-input-textbox\"\n onChange={onColorInputChange}\n onBlur={onBlur}\n className=\"h-8 w-full rounded-lg border border-input bg-transparent px-2.5 text-base outline-none focus-visible:border-primary focus-visible:ring-3 focus-visible:ring-primary/15 md:text-sm\"\n />\n </div>\n </div>\n </>\n )}\n <div\n data-testid=\"color-palette\"\n className={cn(showPicker && \"border-t border-border pt-3\")}\n >\n <Palette\n color={color}\n colorList={colorPalette}\n onChange={onColorChange}\n />\n </div>\n {showRecentlyUsedColors && recentlyUsedColors.length > 0 && (\n <div\n className=\"border-t border-border pt-3\"\n data-testid=\"color-palette-recently-used\"\n >\n <p className=\"text-xs font-medium text-muted-foreground mb-2\">\n {t(\"neetoatoms.colorPicker.recentlyUsed\", \"Recently used\")}\n </p>\n <Palette\n colorList={recentlyUsedColors}\n onChange={onColorChange}\n />\n </div>\n )}\n </div>\n </PopoverContent>\n </Popover>\n );\n }\n);\n\nColorPicker.displayName = \"ColorPicker\";\n\nexport { ColorPicker };\n"],"names":["createLucideIcon","useCallback","store","useSyncExternalStore","forwardRef","jsx","cn","cva","jsxs","ChevronDown","useTranslation","useState","useRef","HexAlphaColorPicker","HexColorPicker","Popover","PopoverTrigger","PopoverContent","Fragment","Button","HexColorInput"],"mappings":"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","x_google_ignoreList":[0]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"Typography-BW6xEk10.js","sources":["../../src/components/Typography/Typography.tsx"],"sourcesContent":["import React, { forwardRef } from \"react\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { Slot } from \"radix-ui\";\n\nimport { cn } from \"src/shadcn/lib/utils\";\n\nconst typographyVariants = cva(\"\", {\n variants: {\n variant: {\n jumbo: \"text-5xl font-semibold leading-none tracking-tight\",\n h1: \"text-[2.5rem] font-semibold leading-tight tracking-tight\",\n h2: \"text-[2rem] font-semibold leading-tight tracking-tight\",\n h3: \"text-[1.75rem] font-semibold leading-tight\",\n h4: \"text-2xl font-semibold leading-tight\",\n h5: \"text-xl font-semibold leading-tight\",\n h6: \"text-base font-semibold leading-tight\",\n body1: \"text-base leading-normal\",\n body2: \"text-[15px] leading-normal\",\n body3: \"text-sm leading-normal\",\n caption: \"text-xs leading-normal\",\n nano: \"text-[10px] leading-normal\",\n code: \"font-mono text-sm\",\n },\n weight: {\n thin: \"font-thin\",\n extralight: \"font-extralight\",\n light: \"font-light\",\n normal: \"font-normal\",\n medium: \"font-medium\",\n semibold: \"font-semibold\",\n bold: \"font-bold\",\n extrabold: \"font-extrabold\",\n black: \"font-black\",\n },\n color: {\n default: \"text-foreground\",\n muted: \"text-muted-foreground\",\n primary: \"text-primary\",\n destructive: \"text-destructive\",\n inherit: \"text-inherit\",\n },\n lineClamp: {\n none: \"\",\n 1: \"line-clamp-1\",\n 2: \"line-clamp-2\",\n 3: \"line-clamp-3\",\n },\n },\n defaultVariants: {\n variant: \"body3\",\n color: \"default\",\n },\n});\n\nconst defaultElementMap: Record<string, keyof React.JSX.IntrinsicElements> = {\n jumbo: \"h1\",\n h1: \"h1\",\n h2: \"h2\",\n h3: \"h3\",\n h4: \"h4\",\n h5: \"h5\",\n h6: \"h6\",\n body1: \"p\",\n body2: \"p\",\n body3: \"p\",\n caption: \"span\",\n nano: \"span\",\n code: \"code\",\n};\n\nconst Typography = forwardRef<\n HTMLElement,\n React.HTMLAttributes<HTMLElement> &\n VariantProps<typeof typographyVariants> & {\n asChild?: boolean;\n /**\n * Renders Typography as the given tag (e.g. `\"code\"`, `\"span\"`).\n * Use this when the rendered element only needs generic HTML\n * attributes — common for `<Trans>` templates and other\n * string-child consumers.\n *\n * For element-specific attributes (e.g. `href` on an anchor) prefer\n * `asChild` with a real element child, which gives full type\n * safety on that element's props.\n */\n as?: React.ElementType;\n }\n>(\n (\n {\n className,\n variant = \"body3\",\n weight,\n color = \"default\",\n lineClamp,\n asChild = false,\n as,\n ...props\n },\n ref\n ) => {\n const Comp = (\n asChild ? Slot.Root : (as ?? defaultElementMap[variant ?? \"body3\"] ?? \"p\")\n ) as React.ElementType;\n\n return (\n <Comp\n ref={ref}\n data-slot=\"typography\"\n data-variant={variant}\n className={cn(\n typographyVariants({ variant, weight, color, lineClamp, className })\n )}\n {...props}\n />\n );\n }\n);\n\nTypography.displayName = \"Typography\";\n\nexport { Typography, typographyVariants };\n"],"names":["cva","forwardRef","Slot.Root","jsx","cn"],"mappings":";;;;;;;;AAMA,MAAM,kBAAA,GAAqBA,YAAI,EAAA,EAAI;AAAA,EACjC,QAAA,EAAU;AAAA,IACR,OAAA,EAAS;AAAA,MACP,KAAA,EAAO,oDAAA;AAAA,MACP,EAAA,EAAI,0DAAA;AAAA,MACJ,EAAA,EAAI,wDAAA;AAAA,MACJ,EAAA,EAAI,4CAAA;AAAA,MACJ,EAAA,EAAI,sCAAA;AAAA,MACJ,EAAA,EAAI,qCAAA;AAAA,MACJ,EAAA,EAAI,uCAAA;AAAA,MACJ,KAAA,EAAO,0BAAA;AAAA,MACP,KAAA,EAAO,4BAAA;AAAA,MACP,KAAA,EAAO,wBAAA;AAAA,MACP,OAAA,EAAS,wBAAA;AAAA,MACT,IAAA,EAAM,4BAAA;AAAA,MACN,IAAA,EAAM;AAAA,KACR;AAAA,IACA,MAAA,EAAQ;AAAA,MACN,IAAA,EAAM,WAAA;AAAA,MACN,UAAA,EAAY,iBAAA;AAAA,MACZ,KAAA,EAAO,YAAA;AAAA,MACP,MAAA,EAAQ,aAAA;AAAA,MACR,MAAA,EAAQ,aAAA;AAAA,MACR,QAAA,EAAU,eAAA;AAAA,MACV,IAAA,EAAM,WAAA;AAAA,MACN,SAAA,EAAW,gBAAA;AAAA,MACX,KAAA,EAAO;AAAA,KACT;AAAA,IACA,KAAA,EAAO;AAAA,MACL,OAAA,EAAS,iBAAA;AAAA,MACT,KAAA,EAAO,uBAAA;AAAA,MACP,OAAA,EAAS,cAAA;AAAA,MACT,WAAA,EAAa,kBAAA;AAAA,MACb,OAAA,EAAS;AAAA,KACX;AAAA,IACA,SAAA,EAAW;AAAA,MACT,IAAA,EAAM,EAAA;AAAA,MACN,CAAA,EAAG,cAAA;AAAA,MACH,CAAA,EAAG,cAAA;AAAA,MACH,CAAA,EAAG;AAAA;AACL,GACF;AAAA,EACA,eAAA,EAAiB;AAAA,IACf,OAAA,EAAS,OAAA;AAAA,IACT,KAAA,EAAO;AAAA;AAEX,CAAC;AAED,MAAM,iBAAA,GAAuE;AAAA,EAC3E,KAAA,EAAO,IAAA;AAAA,EACP,EAAA,EAAI,IAAA;AAAA,EACJ,EAAA,EAAI,IAAA;AAAA,EACJ,EAAA,EAAI,IAAA;AAAA,EACJ,EAAA,EAAI,IAAA;AAAA,EACJ,EAAA,EAAI,IAAA;AAAA,EACJ,EAAA,EAAI,IAAA;AAAA,EACJ,KAAA,EAAO,GAAA;AAAA,EACP,KAAA,EAAO,GAAA;AAAA,EACP,KAAA,EAAO,GAAA;AAAA,EACP,OAAA,EAAS,MAAA;AAAA,EACT,IAAA,EAAM,MAAA;AAAA,EACN,IAAA,EAAM;AACR,CAAA;AAEA,MAAM,UAAA,GAAaC,gBAAA;AAAA,EAkBjB,CACE;AAAA,IACE,SAAA;AAAA,IACA,OAAA,GAAU,OAAA;AAAA,IACV,MAAA;AAAA,IACA,KAAA,GAAQ,SAAA;AAAA,IACR,SAAA;AAAA,IACA,OAAA,GAAU,KAAA;AAAA,IACV,EAAA;AAAA,IACA,GAAG;AAAA,KAEL,GAAA,KACG;AACH,IAAA,MAAM,IAAA,GACJ,UAAUC,UAAK,GAAQ,MAAM,iBAAA,CAAkB,OAAA,IAAW,OAAO,CAAA,IAAK,GAAA;AAGxE,IAAA,uBACEC,cAAA;AAAA,MAAC,IAAA;AAAA,MAAA;AAAA,QACC,GAAA;AAAA,QACA,WAAA,EAAU,YAAA;AAAA,QACV,cAAA,EAAc,OAAA;AAAA,QACd,SAAA,EAAWC,QAAA;AAAA,UACT,mBAAmB,EAAE,OAAA,EAAS,QAAQ,KAAA,EAAO,SAAA,EAAW,WAAW;AAAA,SACrE;AAAA,QACC,GAAG;AAAA;AAAA,KACN;AAAA,EAEJ;AACF;AAEA,UAAA,CAAW,WAAA,GAAc,YAAA;;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"button-CDZTqJzs.js","sources":["../../src/shadcn/components/button.tsx"],"sourcesContent":["import * as React from \"react\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\nimport { Slot } from \"radix-ui\"\n\nimport { cn } from \"src/shadcn/lib/utils\"\n\nconst buttonVariants = cva(\n \"group/button inline-flex cursor-pointer shrink-0 items-center justify-center rounded-lg border border-transparent bg-clip-padding text-sm font-medium whitespace-nowrap transition-all outline-none select-none disabled:cursor-not-allowed focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 active:translate-y-px disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n {\n variants: {\n variant: {\n default: \"bg-primary text-primary-foreground [a]:hover:bg-primary/80\",\n brand:\n \"bg-brand text-brand-foreground hover:bg-brand/90 focus-visible:border-brand focus-visible:ring-brand/40\",\n outline:\n \"border-border bg-background hover:bg-muted hover:text-foreground aria-expanded:bg-muted aria-expanded:text-foreground dark:border-input dark:bg-input/30 dark:hover:bg-input/50\",\n secondary:\n \"bg-secondary text-secondary-foreground hover:bg-secondary/80 aria-expanded:bg-secondary aria-expanded:text-secondary-foreground\",\n ghost:\n \"hover:bg-muted hover:text-foreground aria-expanded:bg-muted aria-expanded:text-foreground dark:hover:bg-muted/50\",\n destructive:\n \"bg-destructive text-destructive-foreground hover:bg-destructive/90 focus-visible:border-destructive focus-visible:ring-destructive/40 dark:bg-destructive dark:hover:bg-destructive/90 dark:focus-visible:ring-destructive/40\",\n \"destructive-soft\":\n \"bg-destructive/10 text-destructive hover:bg-destructive/20 focus-visible:border-destructive/40 focus-visible:ring-destructive/20 dark:bg-destructive/20 dark:hover:bg-destructive/30 dark:focus-visible:ring-destructive/40\",\n link: \"text-primary underline underline-offset-4 decoration-primary/40 hover:decoration-primary\",\n },\n size: {\n default:\n \"h-8 gap-1.5 px-2.5 has-data-[icon=inline-end]:pe-2 has-data-[icon=inline-start]:ps-2\",\n xs: \"h-6 gap-1 rounded-[min(var(--radius-md),10px)] px-2 text-xs in-data-[slot=button-group]:rounded-lg has-data-[icon=inline-end]:pe-1.5 has-data-[icon=inline-start]:ps-1.5 [&_svg:not([class*='size-'])]:size-3\",\n sm: \"h-7 gap-1 rounded-[min(var(--radius-md),12px)] px-2.5 text-[0.8rem] in-data-[slot=button-group]:rounded-lg has-data-[icon=inline-end]:pe-1.5 has-data-[icon=inline-start]:ps-1.5 [&_svg:not([class*='size-'])]:size-3.5\",\n lg: \"h-9 gap-1.5 px-2.5 has-data-[icon=inline-end]:pe-3 has-data-[icon=inline-start]:ps-3\",\n icon: \"size-8\",\n \"icon-xs\":\n \"size-6 rounded-[min(var(--radius-md),10px)] in-data-[slot=button-group]:rounded-lg [&_svg:not([class*='size-'])]:size-3\",\n \"icon-sm\":\n \"size-7 rounded-[min(var(--radius-md),12px)] in-data-[slot=button-group]:rounded-lg\",\n \"icon-lg\": \"size-9\",\n },\n },\n compoundVariants: [\n {\n variant: \"link\",\n size: [\"default\", \"xs\", \"sm\", \"lg\"],\n className:\n \"h-auto border-0 px-0 has-data-[icon=inline-end]:pe-0 has-data-[icon=inline-start]:ps-0\",\n },\n ],\n defaultVariants: {\n variant: \"default\",\n size: \"default\",\n },\n }\n)\n\nconst Button = React.forwardRef<\n HTMLButtonElement,\n React.ComponentProps<\"button\"> &\n VariantProps<typeof buttonVariants> & {\n asChild?: boolean\n }\n>(({\n className,\n variant = \"default\",\n size = \"default\",\n asChild = false,\n ...props\n}, ref) => {\n const Comp = asChild ? Slot.Root : \"button\"\n\n return (\n <Comp\n ref={ref}\n data-slot=\"button\"\n data-variant={variant}\n data-size={size}\n className={cn(buttonVariants({ variant, size, className }))}\n {...props}\n />\n )\n})\n\nButton.displayName = \"Button\"\n\nexport { Button, buttonVariants }\n"],"names":["cva","React","Slot.Root","jsx","cn"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAMA,MAAM,cAAA,GAAiBA,WAAA;AAAA,EACrB,mnBAAA;AAAA,EACA;AAAA,IACE,QAAA,EAAU;AAAA,MACR,OAAA,EAAS;AAAA,QACP,OAAA,EAAS,4DAAA;AAAA,QACT,KAAA,EACE,yGAAA;AAAA,QACF,OAAA,EACE,iLAAA;AAAA,QACF,SAAA,EACE,iIAAA;AAAA,QACF,KAAA,EACE,kHAAA;AAAA,QACF,WAAA,EACE,+NAAA;AAAA,QACF,kBAAA,EACE,6NAAA;AAAA,QACF,IAAA,EAAM;AAAA,OACR;AAAA,MACA,IAAA,EAAM;AAAA,QACJ,OAAA,EACE,sFAAA;AAAA,QACF,EAAA,EAAI,+MAAA;AAAA,QACJ,EAAA,EAAI,yNAAA;AAAA,QACJ,EAAA,EAAI,sFAAA;AAAA,QACJ,IAAA,EAAM,QAAA;AAAA,QACN,SAAA,EACE,yHAAA;AAAA,QACF,SAAA,EACE,oFAAA;AAAA,QACF,SAAA,EAAW;AAAA;AACb,KACF;AAAA,IACA,gBAAA,EAAkB;AAAA,MAChB;AAAA,QACE,OAAA,EAAS,MAAA;AAAA,QACT,IAAA,EAAM,CAAC,SAAA,EAAW,IAAA,EAAM,MAAM,IAAI,CAAA;AAAA,QAClC,SAAA,EACE;AAAA;AACJ,KACF;AAAA,IACA,eAAA,EAAiB;AAAA,MACf,OAAA,EAAS,SAAA;AAAA,MACT,IAAA,EAAM;AAAA;AACR;AAEJ;AAEA,MAAM,MAAA,GAASC,gBAAA,CAAM,UAAA,CAMnB,CAAC;AAAA,EACD,SAAA;AAAA,EACA,OAAA,GAAU,SAAA;AAAA,EACV,IAAA,GAAO,SAAA;AAAA,EACP,OAAA,GAAU,KAAA;AAAA,EACV,GAAG;AACL,CAAA,EAAG,GAAA,KAAQ;AACT,EAAA,MAAM,IAAA,GAAO,OAAA,GAAUC,UAAK,GAAO,QAAA;AAEnC,EAAA,uBACEC,cAAA;AAAA,IAAC,IAAA;AAAA,IAAA;AAAA,MACC,GAAA;AAAA,MACA,WAAA,EAAU,QAAA;AAAA,MACV,cAAA,EAAc,OAAA;AAAA,MACd,WAAA,EAAW,IAAA;AAAA,MACX,SAAA,EAAWC,SAAG,cAAA,CAAe,EAAE,SAAS,IAAA,EAAM,SAAA,EAAW,CAAC,CAAA;AAAA,MACzD,GAAG;AAAA;AAAA,GACN;AAEJ,CAAC;AAED,MAAA,CAAO,WAAA,GAAc,QAAA;;;;;"}