@sikka/hawa 0.48.1-next → 0.49.0-next

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 (299) hide show
  1. package/dist/accordion/index.js +3 -28
  2. package/dist/accordion/index.js.map +1 -1
  3. package/dist/accordion/index.mjs +3 -28
  4. package/dist/accordion/index.mjs.map +1 -1
  5. package/dist/alert/index.js +53 -98
  6. package/dist/alert/index.js.map +1 -1
  7. package/dist/alert/index.mjs +53 -98
  8. package/dist/alert/index.mjs.map +1 -1
  9. package/dist/appLayout/index.d.mts +2 -0
  10. package/dist/appLayout/index.d.ts +2 -0
  11. package/dist/appLayout/index.js +263 -409
  12. package/dist/appLayout/index.js.map +1 -1
  13. package/dist/appLayout/index.mjs +263 -409
  14. package/dist/appLayout/index.mjs.map +1 -1
  15. package/dist/appMenubar/index.js +15 -20
  16. package/dist/appMenubar/index.js.map +1 -1
  17. package/dist/appMenubar/index.mjs +15 -20
  18. package/dist/appMenubar/index.mjs.map +1 -1
  19. package/dist/appTabs/index.js +28 -37
  20. package/dist/appTabs/index.js.map +1 -1
  21. package/dist/appTabs/index.mjs +28 -37
  22. package/dist/appTabs/index.mjs.map +1 -1
  23. package/dist/appTopbar/index.js +125 -173
  24. package/dist/appTopbar/index.js.map +1 -1
  25. package/dist/appTopbar/index.mjs +125 -173
  26. package/dist/appTopbar/index.mjs.map +1 -1
  27. package/dist/avatar/index.js.map +1 -1
  28. package/dist/avatar/index.mjs.map +1 -1
  29. package/dist/backToTop/index.js +50 -82
  30. package/dist/backToTop/index.js.map +1 -1
  31. package/dist/backToTop/index.mjs +50 -82
  32. package/dist/backToTop/index.mjs.map +1 -1
  33. package/dist/badge/index.d.mts +1 -1
  34. package/dist/badge/index.d.ts +1 -1
  35. package/dist/badge/index.js +2 -18
  36. package/dist/badge/index.js.map +1 -1
  37. package/dist/badge/index.mjs +2 -18
  38. package/dist/badge/index.mjs.map +1 -1
  39. package/dist/blocks/auth/index.js +202 -468
  40. package/dist/blocks/auth/index.mjs +96 -280
  41. package/dist/blocks/feedback/index.js +214 -375
  42. package/dist/blocks/feedback/index.mjs +12 -25
  43. package/dist/blocks/index.js +604 -1122
  44. package/dist/blocks/index.mjs +132 -291
  45. package/dist/blocks/misc/index.js +136 -251
  46. package/dist/blocks/misc/index.mjs +29 -54
  47. package/dist/blocks/pricing/index.js +220 -397
  48. package/dist/blocks/pricing/index.mjs +63 -134
  49. package/dist/breadcrumb/index.js +1 -5
  50. package/dist/breadcrumb/index.js.map +1 -1
  51. package/dist/breadcrumb/index.mjs +1 -5
  52. package/dist/breadcrumb/index.mjs.map +1 -1
  53. package/dist/button/index.js +50 -82
  54. package/dist/button/index.js.map +1 -1
  55. package/dist/button/index.mjs +50 -82
  56. package/dist/button/index.mjs.map +1 -1
  57. package/dist/calendar/index.js +50 -82
  58. package/dist/calendar/index.js.map +1 -1
  59. package/dist/calendar/index.mjs +50 -82
  60. package/dist/calendar/index.mjs.map +1 -1
  61. package/dist/card/index.js +7 -35
  62. package/dist/card/index.js.map +1 -1
  63. package/dist/card/index.mjs +7 -35
  64. package/dist/card/index.mjs.map +1 -1
  65. package/dist/carousel/index.js +15 -27
  66. package/dist/carousel/index.js.map +1 -1
  67. package/dist/carousel/index.mjs +15 -27
  68. package/dist/carousel/index.mjs.map +1 -1
  69. package/dist/checkbox/index.js +2 -13
  70. package/dist/checkbox/index.js.map +1 -1
  71. package/dist/checkbox/index.mjs +2 -13
  72. package/dist/checkbox/index.mjs.map +1 -1
  73. package/dist/chip/index.js +2 -16
  74. package/dist/chip/index.js.map +1 -1
  75. package/dist/chip/index.mjs +2 -16
  76. package/dist/chip/index.mjs.map +1 -1
  77. package/dist/{chunk-WUMDFBEK.mjs → chunk-3CHFVHTW.mjs} +43 -54
  78. package/dist/{chunk-2LUXOXAL.mjs → chunk-5SQBJRWE.mjs} +3 -9
  79. package/dist/{chunk-C2UOOH4X.mjs → chunk-B53SP2WZ.mjs} +3 -17
  80. package/dist/chunk-GHGWQVTM.mjs +150 -0
  81. package/dist/{chunk-5S5DR7KF.mjs → chunk-I23ONEDJ.mjs} +2 -10
  82. package/dist/{chunk-JFWD2ICY.mjs → chunk-JT7R3L5O.mjs} +54 -62
  83. package/dist/{chunk-6SJUUJOV.mjs → chunk-KDGJZPWK.mjs} +295 -574
  84. package/dist/{chunk-AWJSHOYU.mjs → chunk-KSJGXQTE.mjs} +1 -1
  85. package/dist/{chunk-NMW4GM4G.mjs → chunk-SE2JMXYG.mjs} +104 -144
  86. package/dist/{chunk-GBLWUEYN.mjs → chunk-ULRL4WI6.mjs} +176 -256
  87. package/dist/{chunk-IFWYR5W2.mjs → chunk-VUELRPUL.mjs} +57 -117
  88. package/dist/{chunk-WL7C2A5D.mjs → chunk-WQR4XZGL.mjs} +8 -15
  89. package/dist/codeBlock/index.js +50 -82
  90. package/dist/codeBlock/index.js.map +1 -1
  91. package/dist/codeBlock/index.mjs +50 -82
  92. package/dist/codeBlock/index.mjs.map +1 -1
  93. package/dist/colorPicker/index.js +21 -33
  94. package/dist/colorPicker/index.js.map +1 -1
  95. package/dist/colorPicker/index.mjs +22 -37
  96. package/dist/colorPicker/index.mjs.map +1 -1
  97. package/dist/combobox/index.d.mts +1 -1
  98. package/dist/combobox/index.d.ts +1 -1
  99. package/dist/combobox/index.js +141 -223
  100. package/dist/combobox/index.js.map +1 -1
  101. package/dist/combobox/index.mjs +141 -223
  102. package/dist/combobox/index.mjs.map +1 -1
  103. package/dist/command/index.d.mts +1 -1
  104. package/dist/command/index.d.ts +1 -1
  105. package/dist/command/index.js +129 -212
  106. package/dist/command/index.js.map +1 -1
  107. package/dist/command/index.mjs +129 -212
  108. package/dist/command/index.mjs.map +1 -1
  109. package/dist/dataTable/index.js +254 -394
  110. package/dist/dataTable/index.js.map +1 -1
  111. package/dist/dataTable/index.mjs +254 -394
  112. package/dist/dataTable/index.mjs.map +1 -1
  113. package/dist/datePicker/index.js +64 -105
  114. package/dist/datePicker/index.js.map +1 -1
  115. package/dist/datePicker/index.mjs +64 -105
  116. package/dist/datePicker/index.mjs.map +1 -1
  117. package/dist/destroyableCard/index.js +8 -39
  118. package/dist/destroyableCard/index.js.map +1 -1
  119. package/dist/destroyableCard/index.mjs +8 -39
  120. package/dist/destroyableCard/index.mjs.map +1 -1
  121. package/dist/dialog/index.js +70 -122
  122. package/dist/dialog/index.js.map +1 -1
  123. package/dist/dialog/index.mjs +70 -122
  124. package/dist/dialog/index.mjs.map +1 -1
  125. package/dist/docsLayout/index.js +169 -358
  126. package/dist/docsLayout/index.js.map +1 -1
  127. package/dist/docsLayout/index.mjs +169 -358
  128. package/dist/docsLayout/index.mjs.map +1 -1
  129. package/dist/docsSidebar/index.js +9 -16
  130. package/dist/docsSidebar/index.js.map +1 -1
  131. package/dist/docsSidebar/index.mjs +9 -16
  132. package/dist/docsSidebar/index.mjs.map +1 -1
  133. package/dist/dropdownMenu/index.js +124 -164
  134. package/dist/dropdownMenu/index.js.map +1 -1
  135. package/dist/dropdownMenu/index.mjs +124 -164
  136. package/dist/dropdownMenu/index.mjs.map +1 -1
  137. package/dist/elements/index.d.mts +3 -3
  138. package/dist/elements/index.d.ts +3 -3
  139. package/dist/elements/index.js +841 -1505
  140. package/dist/elements/index.mjs +381 -718
  141. package/dist/fileDropzone/index.js +60 -159
  142. package/dist/fileDropzone/index.js.map +1 -1
  143. package/dist/fileDropzone/index.mjs +60 -159
  144. package/dist/fileDropzone/index.mjs.map +1 -1
  145. package/dist/glow/index.js +4 -16
  146. package/dist/glow/index.js.map +1 -1
  147. package/dist/glow/index.mjs +4 -16
  148. package/dist/glow/index.mjs.map +1 -1
  149. package/dist/hooks/index.d.mts +1 -5
  150. package/dist/hooks/index.d.ts +1 -5
  151. package/dist/hooks/index.js +11 -24
  152. package/dist/hooks/index.mjs +2 -2
  153. package/dist/{index-B0aJcA6d.d.ts → index-BgNycocQ.d.mts} +2 -2
  154. package/dist/{index-B0aJcA6d.d.mts → index-BgNycocQ.d.ts} +2 -2
  155. package/dist/index.css +1 -2
  156. package/dist/index.d.mts +6 -8
  157. package/dist/index.d.ts +6 -8
  158. package/dist/index.js +1194 -2170
  159. package/dist/index.mjs +1195 -2174
  160. package/dist/input/index.js +20 -29
  161. package/dist/input/index.js.map +1 -1
  162. package/dist/input/index.mjs +20 -29
  163. package/dist/input/index.mjs.map +1 -1
  164. package/dist/interfaceSettings/index.js +122 -163
  165. package/dist/interfaceSettings/index.js.map +1 -1
  166. package/dist/interfaceSettings/index.mjs +122 -163
  167. package/dist/interfaceSettings/index.mjs.map +1 -1
  168. package/dist/label/index.js +19 -26
  169. package/dist/label/index.js.map +1 -1
  170. package/dist/label/index.mjs +19 -26
  171. package/dist/label/index.mjs.map +1 -1
  172. package/dist/layout/index.d.mts +2 -0
  173. package/dist/layout/index.d.ts +2 -0
  174. package/dist/layout/index.js +434 -790
  175. package/dist/layout/index.mjs +143 -243
  176. package/dist/loading/index.js +30 -53
  177. package/dist/loading/index.js.map +1 -1
  178. package/dist/loading/index.mjs +30 -53
  179. package/dist/loading/index.mjs.map +1 -1
  180. package/dist/logos/index.js +66 -191
  181. package/dist/logos/index.js.map +1 -1
  182. package/dist/logos/index.mjs +66 -191
  183. package/dist/logos/index.mjs.map +1 -1
  184. package/dist/navbar/index.js +1 -4
  185. package/dist/navbar/index.js.map +1 -1
  186. package/dist/navbar/index.mjs +1 -4
  187. package/dist/navbar/index.mjs.map +1 -1
  188. package/dist/navigationMenu/index.js +14 -22
  189. package/dist/navigationMenu/index.js.map +1 -1
  190. package/dist/navigationMenu/index.mjs +14 -22
  191. package/dist/navigationMenu/index.mjs.map +1 -1
  192. package/dist/pagination/index.js +1 -5
  193. package/dist/pagination/index.js.map +1 -1
  194. package/dist/pagination/index.mjs +1 -5
  195. package/dist/pagination/index.mjs.map +1 -1
  196. package/dist/passwordInput/index.js +36 -65
  197. package/dist/passwordInput/index.js.map +1 -1
  198. package/dist/passwordInput/index.mjs +36 -65
  199. package/dist/passwordInput/index.mjs.map +1 -1
  200. package/dist/phoneInput/index.js +20 -29
  201. package/dist/phoneInput/index.js.map +1 -1
  202. package/dist/phoneInput/index.mjs +20 -29
  203. package/dist/phoneInput/index.mjs.map +1 -1
  204. package/dist/pinInput/index.js +14 -16
  205. package/dist/pinInput/index.js.map +1 -1
  206. package/dist/pinInput/index.mjs +14 -16
  207. package/dist/pinInput/index.mjs.map +1 -1
  208. package/dist/popover/index.js +14 -24
  209. package/dist/popover/index.js.map +1 -1
  210. package/dist/popover/index.mjs +14 -24
  211. package/dist/popover/index.mjs.map +1 -1
  212. package/dist/progress/index.js +19 -26
  213. package/dist/progress/index.js.map +1 -1
  214. package/dist/progress/index.mjs +19 -26
  215. package/dist/progress/index.mjs.map +1 -1
  216. package/dist/progressCircle/index.js +67 -71
  217. package/dist/progressCircle/index.js.map +1 -1
  218. package/dist/progressCircle/index.mjs +67 -71
  219. package/dist/progressCircle/index.mjs.map +1 -1
  220. package/dist/radio/index.js +122 -163
  221. package/dist/radio/index.js.map +1 -1
  222. package/dist/radio/index.mjs +122 -163
  223. package/dist/radio/index.mjs.map +1 -1
  224. package/dist/scrollArea/index.js.map +1 -1
  225. package/dist/scrollArea/index.mjs.map +1 -1
  226. package/dist/scrollIndicator/index.js +1 -4
  227. package/dist/scrollIndicator/index.js.map +1 -1
  228. package/dist/scrollIndicator/index.mjs +1 -4
  229. package/dist/scrollIndicator/index.mjs.map +1 -1
  230. package/dist/select/index.js +20 -29
  231. package/dist/select/index.js.map +1 -1
  232. package/dist/select/index.mjs +20 -29
  233. package/dist/select/index.mjs.map +1 -1
  234. package/dist/separator/index.js.map +1 -1
  235. package/dist/separator/index.mjs.map +1 -1
  236. package/dist/sheet/index.js +42 -53
  237. package/dist/sheet/index.js.map +1 -1
  238. package/dist/sheet/index.mjs +42 -53
  239. package/dist/sheet/index.mjs.map +1 -1
  240. package/dist/sidebar/index.js +66 -133
  241. package/dist/sidebar/index.js.map +1 -1
  242. package/dist/sidebar/index.mjs +66 -133
  243. package/dist/sidebar/index.mjs.map +1 -1
  244. package/dist/signature/index.js +19 -26
  245. package/dist/signature/index.js.map +1 -1
  246. package/dist/signature/index.mjs +19 -26
  247. package/dist/signature/index.mjs.map +1 -1
  248. package/dist/simpleTable/index.js +50 -81
  249. package/dist/simpleTable/index.js.map +1 -1
  250. package/dist/simpleTable/index.mjs +50 -81
  251. package/dist/simpleTable/index.mjs.map +1 -1
  252. package/dist/skeleton/index.js.map +1 -1
  253. package/dist/skeleton/index.mjs.map +1 -1
  254. package/dist/slider/index.js.map +1 -1
  255. package/dist/slider/index.mjs.map +1 -1
  256. package/dist/sonner/index.js.map +1 -1
  257. package/dist/sonner/index.mjs.map +1 -1
  258. package/dist/sortButton/index.js +50 -82
  259. package/dist/sortButton/index.js.map +1 -1
  260. package/dist/sortButton/index.mjs +50 -82
  261. package/dist/sortButton/index.mjs.map +1 -1
  262. package/dist/splitButton/index.js +214 -294
  263. package/dist/splitButton/index.js.map +1 -1
  264. package/dist/splitButton/index.mjs +214 -294
  265. package/dist/splitButton/index.mjs.map +1 -1
  266. package/dist/stats/index.js +7 -35
  267. package/dist/stats/index.js.map +1 -1
  268. package/dist/stats/index.mjs +7 -35
  269. package/dist/stats/index.mjs.map +1 -1
  270. package/dist/switch/index.js +24 -34
  271. package/dist/switch/index.js.map +1 -1
  272. package/dist/switch/index.mjs +24 -34
  273. package/dist/switch/index.mjs.map +1 -1
  274. package/dist/table/index.js +27 -29
  275. package/dist/table/index.js.map +1 -1
  276. package/dist/table/index.mjs +27 -29
  277. package/dist/table/index.mjs.map +1 -1
  278. package/dist/tabs/index.js +54 -76
  279. package/dist/tabs/index.js.map +1 -1
  280. package/dist/tabs/index.mjs +54 -76
  281. package/dist/tabs/index.mjs.map +1 -1
  282. package/dist/textarea/index.js +21 -38
  283. package/dist/textarea/index.js.map +1 -1
  284. package/dist/textarea/index.mjs +21 -38
  285. package/dist/textarea/index.mjs.map +1 -1
  286. package/dist/toast/index.js +2 -10
  287. package/dist/toast/index.js.map +1 -1
  288. package/dist/toast/index.mjs +2 -10
  289. package/dist/toast/index.mjs.map +1 -1
  290. package/dist/toaster/index.js +3 -16
  291. package/dist/toaster/index.js.map +1 -1
  292. package/dist/toaster/index.mjs +3 -16
  293. package/dist/toaster/index.mjs.map +1 -1
  294. package/dist/tooltip/index.js +19 -26
  295. package/dist/tooltip/index.js.map +1 -1
  296. package/dist/tooltip/index.mjs +19 -26
  297. package/dist/tooltip/index.mjs.map +1 -1
  298. package/package.json +12 -12
  299. package/dist/chunk-JP2N5WKD.mjs +0 -190
@@ -1 +1 @@
1
- {"version":3,"sources":["../../elements/progressCircle/ProgressCircle.tsx","../../util/index.ts"],"sourcesContent":["import React from \"react\";\n\nimport { cn } from \"@util/index\";\n\ntype Size = \"xs\" | \"sm\" | \"md\" | \"lg\" | \"xl\";\n\ninterface ProgressCircleProps extends React.HTMLAttributes<HTMLDivElement> {\n value: number;\n size?: Size;\n color?: any;\n showAnimation?: boolean;\n tooltip?: string;\n radius?: number;\n strokeWidth?: number;\n children?: React.ReactNode;\n}\n\nconst size2config: Record<Size, { strokeWidth: number; radius: number }> = {\n xs: { radius: 15, strokeWidth: 3 },\n sm: { radius: 19, strokeWidth: 4 },\n md: { radius: 32, strokeWidth: 6 },\n lg: { radius: 52, strokeWidth: 8 },\n xl: { radius: 80, strokeWidth: 10 },\n};\n\nfunction getLimitedValue(input: number | undefined) {\n if (input === undefined) {\n return 0;\n } else if (input > 100) {\n return 100;\n } else {\n return input;\n }\n}\nexport const ProgressCircle = React.forwardRef<\n HTMLDivElement,\n ProgressCircleProps\n>((props, ref) => {\n const {\n value: inputValue,\n size = \"md\",\n className,\n showAnimation = true,\n color,\n tooltip,\n radius: inputRadius,\n strokeWidth: inputStrokeWidth,\n children,\n ...other\n } = props;\n\n const value = getLimitedValue(inputValue);\n const radius = inputRadius ?? size2config[size].radius;\n const strokeWidth = inputStrokeWidth ?? size2config[size].strokeWidth;\n const normalizedRadius = radius - strokeWidth / 2;\n const circumference = normalizedRadius * 2 * Math.PI;\n const strokeDashoffset = (value / 100) * circumference;\n const offset = circumference - strokeDashoffset;\n\n return (\n <>\n <div\n ref={ref}\n className={cn(\n \"hawa-flex hawa-flex-col hawa-items-center hawa-justify-center\",\n className,\n )}\n >\n <svg\n width={radius * 2}\n height={radius * 2}\n viewBox={`0 0 ${radius * 2} ${radius * 2}`}\n className=\"hawa-rotate-180 hawa-transform\"\n >\n <circle\n r={normalizedRadius}\n cx={radius}\n cy={radius}\n strokeWidth={strokeWidth}\n fill=\"transparent\"\n stroke=\"\"\n strokeLinecap=\"round\"\n className={cn(\n \"hawa-transition-colors hawa-ease-linear\",\n \"hawa-stroke-primary/20\",\n )}\n />\n {value > 0 ? (\n <circle\n r={normalizedRadius}\n cx={radius}\n cy={radius}\n strokeWidth={strokeWidth}\n strokeDasharray={circumference + \" \" + circumference}\n strokeDashoffset={offset}\n fill=\"transparent\"\n stroke=\"\"\n strokeLinecap=\"round\"\n className={cn(\n \"hawa-transition-colors hawa-ease-linear\",\n \"hawa-stroke-primary\",\n showAnimation\n ? \"hawa-transition-all hawa-duration-300 hawa-ease-in-out\"\n : \"\",\n )}\n />\n ) : null}\n </svg>\n <div className={cn(\"hawa-absolute hawa-flex\")}>{children}</div>\n </div>\n </>\n );\n});\n\nProgressCircle.displayName = \"ProgressCircle\";\n","import { clsx, type ClassValue } from \"clsx\";\nimport { twMerge } from \"tailwind-merge\";\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs));\n}\n\ntype Palette = {\n name: string;\n colors: {\n [key: number]: string;\n };\n};\ntype Rgb = {\n r: number;\n g: number;\n b: number;\n};\nfunction hexToRgb(hex: string): Rgb | null {\n const sanitizedHex = hex.replaceAll(\"##\", \"#\");\n const colorParts = /^#?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})$/i.exec(\n sanitizedHex\n );\n\n if (!colorParts) {\n return null;\n }\n\n const [, r, g, b] = colorParts;\n\n return {\n r: parseInt(r, 16),\n g: parseInt(g, 16),\n b: parseInt(b, 16)\n } as Rgb;\n}\n\nfunction rgbToHex(r: number, g: number, b: number): string {\n const toHex = (c: number) => `0${c.toString(16)}`.slice(-2);\n return `#${toHex(r)}${toHex(g)}${toHex(b)}`;\n}\n\nexport function getTextColor(color: string): \"#FFF\" | \"#333\" {\n const rgbColor = hexToRgb(color);\n\n if (!rgbColor) {\n return \"#333\";\n }\n\n const { r, g, b } = rgbColor;\n const luma = 0.2126 * r + 0.7152 * g + 0.0722 * b;\n\n return luma < 120 ? \"#FFF\" : \"#333\";\n}\n\nfunction lighten(hex: string, intensity: number): string {\n const color = hexToRgb(`#${hex}`);\n\n if (!color) {\n return \"\";\n }\n\n const r = Math.round(color.r + (255 - color.r) * intensity);\n const g = Math.round(color.g + (255 - color.g) * intensity);\n const b = Math.round(color.b + (255 - color.b) * intensity);\n\n return rgbToHex(r, g, b);\n}\n\nfunction darken(hex: string, intensity: number): string {\n const color = hexToRgb(hex);\n\n if (!color) {\n return \"\";\n }\n\n const r = Math.round(color.r * intensity);\n const g = Math.round(color.g * intensity);\n const b = Math.round(color.b * intensity);\n\n return rgbToHex(r, g, b);\n}\nconst parseColor = (color: any) => {\n if (color.startsWith(\"#\")) {\n // Convert hex to RGB\n let r = parseInt(color.slice(1, 3), 16);\n let g = parseInt(color.slice(3, 5), 16);\n let b = parseInt(color.slice(5, 7), 16);\n return [r, g, b];\n } else if (color.startsWith(\"rgb\")) {\n // Extract RGB values from rgb() format\n return color.match(/\\d+/g).map(Number);\n }\n // Default to white if format is unrecognized\n return [255, 255, 255];\n};\nexport const calculateLuminance = (color: any) => {\n const [r, g, b] = parseColor(color)?.map((c: any) => {\n c /= 255;\n return c <= 0.03928 ? c / 12.92 : ((c + 0.055) / 1.055) ** 2.4;\n });\n return 0.2126 * r + 0.7152 * g + 0.0722 * b;\n};\n\nfunction getPallette(baseColor: string): Palette {\n const name = baseColor;\n\n const response: Palette = {\n name,\n colors: {\n 500: `#${baseColor}`.replace(\"##\", \"#\")\n }\n };\n\n const intensityMap: {\n [key: number]: number;\n } = {\n 50: 0.95,\n 100: 0.9,\n 200: 0.75,\n 300: 0.6,\n 400: 0.3,\n 600: 0.9,\n 700: 0.75,\n 800: 0.6,\n 900: 0.49\n };\n\n [50, 100, 200, 300, 400].forEach((level) => {\n response.colors[level] = lighten(baseColor, intensityMap[level]);\n });\n [600, 700, 800, 900].forEach((level) => {\n response.colors[level] = darken(baseColor, intensityMap[level]);\n });\n\n return response as Palette;\n}\n\nexport { getPallette };\n\n// const hexToRgb = (hex) => {\n// let d = hex?.split(\"#\")[1];\n// var aRgbHex = d?.match(/.{1,2}/g);\n// var aRgb = [\n// parseInt(aRgbHex[0], 16),\n// parseInt(aRgbHex[1], 16),\n// parseInt(aRgbHex[2], 16)\n// ];\n// return aRgb;\n// };\n// const getTextColor = (backColor) => {\n// let rgbArray = hexToRgb(backColor);\n// if (rgbArray[0] * 0.299 + rgbArray[1] * 0.587 + rgbArray[2] * 0.114 > 186) {\n// return \"#000000\";\n// } else {\n// return \"#ffffff\";\n// }\n// };\n// const replaceAt = function (string, index, replacement) {\n// // if (replacement == \"\" || replacement == \" \") {\n// // return (\n// // string.substring(0, index) +\n// // string.substring(index + replacement.length )\n// // );\n// // }\n// const replaced = string.substring(0, index) + replacement + string.substring(index + 1)\n// return replaced\n// };\n\n// export { hexToRgb, getTextColor, replaceAt };\n"],"mappings":";;;AAAA,OAAO,WAAW;;;ACAlB,SAAS,YAA6B;AACtC,SAAS,eAAe;AAEjB,SAAS,MAAM,QAAsB;AAC1C,SAAO,QAAQ,KAAK,MAAM,CAAC;AAC7B;;;ADYA,IAAM,cAAqE;AAAA,EACzE,IAAI,EAAE,QAAQ,IAAI,aAAa,EAAE;AAAA,EACjC,IAAI,EAAE,QAAQ,IAAI,aAAa,EAAE;AAAA,EACjC,IAAI,EAAE,QAAQ,IAAI,aAAa,EAAE;AAAA,EACjC,IAAI,EAAE,QAAQ,IAAI,aAAa,EAAE;AAAA,EACjC,IAAI,EAAE,QAAQ,IAAI,aAAa,GAAG;AACpC;AAEA,SAAS,gBAAgB,OAA2B;AAClD,MAAI,UAAU,QAAW;AACvB,WAAO;AAAA,EACT,WAAW,QAAQ,KAAK;AACtB,WAAO;AAAA,EACT,OAAO;AACL,WAAO;AAAA,EACT;AACF;AACO,IAAM,iBAAiB,MAAM,WAGlC,CAAC,OAAO,QAAQ;AAChB,QAAM;AAAA,IACJ,OAAO;AAAA,IACP,OAAO;AAAA,IACP;AAAA,IACA,gBAAgB;AAAA,IAChB;AAAA,IACA;AAAA,IACA,QAAQ;AAAA,IACR,aAAa;AAAA,IACb;AAAA,IACA,GAAG;AAAA,EACL,IAAI;AAEJ,QAAM,QAAQ,gBAAgB,UAAU;AACxC,QAAM,SAAS,oCAAe,YAAY,IAAI,EAAE;AAChD,QAAM,cAAc,8CAAoB,YAAY,IAAI,EAAE;AAC1D,QAAM,mBAAmB,SAAS,cAAc;AAChD,QAAM,gBAAgB,mBAAmB,IAAI,KAAK;AAClD,QAAM,mBAAoB,QAAQ,MAAO;AACzC,QAAM,SAAS,gBAAgB;AAE/B,SACE,0DACE;AAAA,IAAC;AAAA;AAAA,MACC;AAAA,MACA,WAAW;AAAA,QACT;AAAA,QACA;AAAA,MACF;AAAA;AAAA,IAEA;AAAA,MAAC;AAAA;AAAA,QACC,OAAO,SAAS;AAAA,QAChB,QAAQ,SAAS;AAAA,QACjB,SAAS,OAAO,SAAS,CAAC,IAAI,SAAS,CAAC;AAAA,QACxC,WAAU;AAAA;AAAA,MAEV;AAAA,QAAC;AAAA;AAAA,UACC,GAAG;AAAA,UACH,IAAI;AAAA,UACJ,IAAI;AAAA,UACJ;AAAA,UACA,MAAK;AAAA,UACL,QAAO;AAAA,UACP,eAAc;AAAA,UACd,WAAW;AAAA,YACT;AAAA,YACA;AAAA,UACF;AAAA;AAAA,MACF;AAAA,MACC,QAAQ,IACP;AAAA,QAAC;AAAA;AAAA,UACC,GAAG;AAAA,UACH,IAAI;AAAA,UACJ,IAAI;AAAA,UACJ;AAAA,UACA,iBAAiB,gBAAgB,MAAM;AAAA,UACvC,kBAAkB;AAAA,UAClB,MAAK;AAAA,UACL,QAAO;AAAA,UACP,eAAc;AAAA,UACd,WAAW;AAAA,YACT;AAAA,YACA;AAAA,YACA,gBACI,2DACA;AAAA,UACN;AAAA;AAAA,MACF,IACE;AAAA,IACN;AAAA,IACA,oCAAC,SAAI,WAAW,GAAG,yBAAyB,KAAI,QAAS;AAAA,EAC3D,CACF;AAEJ,CAAC;AAED,eAAe,cAAc;","names":[]}
1
+ {"version":3,"sources":["../../elements/progressCircle/ProgressCircle.tsx","../../util/index.ts"],"sourcesContent":["import React from \"react\";\n\nimport { cn } from \"@util/index\";\n\ntype Size = \"xs\" | \"sm\" | \"md\" | \"lg\" | \"xl\";\n\ninterface ProgressCircleProps extends React.HTMLAttributes<HTMLDivElement> {\n value: number;\n size?: Size;\n color?: any;\n showAnimation?: boolean;\n tooltip?: string;\n radius?: number;\n strokeWidth?: number;\n children?: React.ReactNode;\n}\n\nconst size2config: Record<Size, { strokeWidth: number; radius: number }> = {\n xs: { radius: 15, strokeWidth: 3 },\n sm: { radius: 19, strokeWidth: 4 },\n md: { radius: 32, strokeWidth: 6 },\n lg: { radius: 52, strokeWidth: 8 },\n xl: { radius: 80, strokeWidth: 10 },\n};\n\nfunction getLimitedValue(input: number | undefined) {\n if (input === undefined) {\n return 0;\n } else if (input > 100) {\n return 100;\n } else {\n return input;\n }\n}\nexport const ProgressCircle = React.forwardRef<HTMLDivElement, ProgressCircleProps>(\n (props, ref) => {\n const {\n value: inputValue,\n size = \"md\",\n className,\n showAnimation = true,\n color,\n tooltip,\n radius: inputRadius,\n strokeWidth: inputStrokeWidth,\n children,\n ...other\n } = props;\n\n const value = getLimitedValue(inputValue);\n const radius = inputRadius ?? size2config[size].radius;\n const strokeWidth = inputStrokeWidth ?? size2config[size].strokeWidth;\n const normalizedRadius = radius - strokeWidth / 2;\n const circumference = normalizedRadius * 2 * Math.PI;\n const strokeDashoffset = (value / 100) * circumference;\n const offset = circumference - strokeDashoffset;\n\n return (\n <>\n <div\n ref={ref}\n className={cn(\"hawa-flex hawa-flex-col hawa-items-center hawa-justify-center\", className)}\n >\n <svg\n width={radius * 2}\n height={radius * 2}\n viewBox={`0 0 ${radius * 2} ${radius * 2}`}\n className=\"hawa-rotate-180 hawa-transform\"\n >\n <circle\n r={normalizedRadius}\n cx={radius}\n cy={radius}\n strokeWidth={strokeWidth}\n fill=\"transparent\"\n stroke=\"\"\n strokeLinecap=\"round\"\n className={cn(\"hawa-transition-colors hawa-ease-linear\", \"hawa-stroke-primary/20\")}\n />\n {value > 0 ? (\n <circle\n r={normalizedRadius}\n cx={radius}\n cy={radius}\n strokeWidth={strokeWidth}\n strokeDasharray={circumference + \" \" + circumference}\n strokeDashoffset={offset}\n fill=\"transparent\"\n stroke=\"\"\n strokeLinecap=\"round\"\n className={cn(\n \"hawa-transition-colors hawa-ease-linear\",\n \"hawa-stroke-primary\",\n showAnimation ? \"hawa-transition-all hawa-duration-300 hawa-ease-in-out\" : \"\",\n )}\n />\n ) : null}\n </svg>\n <div className={cn(\"hawa-absolute hawa-flex\")}>{children}</div>\n </div>\n </>\n );\n },\n);\n\nProgressCircle.displayName = \"ProgressCircle\";\n","import { clsx, type ClassValue } from \"clsx\";\nimport { twMerge } from \"tailwind-merge\";\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs));\n}\n\ntype Palette = {\n name: string;\n colors: {\n [key: number]: string;\n };\n};\ntype Rgb = {\n r: number;\n g: number;\n b: number;\n};\nfunction hexToRgb(hex: string): Rgb | null {\n const sanitizedHex = hex.replaceAll(\"##\", \"#\");\n const colorParts = /^#?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})$/i.exec(sanitizedHex);\n\n if (!colorParts) {\n return null;\n }\n\n const [, r, g, b] = colorParts;\n\n return {\n r: parseInt(r, 16),\n g: parseInt(g, 16),\n b: parseInt(b, 16),\n } as Rgb;\n}\n\nfunction rgbToHex(r: number, g: number, b: number): string {\n const toHex = (c: number) => `0${c.toString(16)}`.slice(-2);\n return `#${toHex(r)}${toHex(g)}${toHex(b)}`;\n}\n\nexport function getTextColor(color: string): \"#FFF\" | \"#333\" {\n const rgbColor = hexToRgb(color);\n\n if (!rgbColor) {\n return \"#333\";\n }\n\n const { r, g, b } = rgbColor;\n const luma = 0.2126 * r + 0.7152 * g + 0.0722 * b;\n\n return luma < 120 ? \"#FFF\" : \"#333\";\n}\n\nfunction lighten(hex: string, intensity: number): string {\n const color = hexToRgb(`#${hex}`);\n\n if (!color) {\n return \"\";\n }\n\n const r = Math.round(color.r + (255 - color.r) * intensity);\n const g = Math.round(color.g + (255 - color.g) * intensity);\n const b = Math.round(color.b + (255 - color.b) * intensity);\n\n return rgbToHex(r, g, b);\n}\n\nfunction darken(hex: string, intensity: number): string {\n const color = hexToRgb(hex);\n\n if (!color) {\n return \"\";\n }\n\n const r = Math.round(color.r * intensity);\n const g = Math.round(color.g * intensity);\n const b = Math.round(color.b * intensity);\n\n return rgbToHex(r, g, b);\n}\nconst parseColor = (color: any) => {\n if (color.startsWith(\"#\")) {\n // Convert hex to RGB\n let r = parseInt(color.slice(1, 3), 16);\n let g = parseInt(color.slice(3, 5), 16);\n let b = parseInt(color.slice(5, 7), 16);\n return [r, g, b];\n } else if (color.startsWith(\"rgb\")) {\n // Extract RGB values from rgb() format\n return color.match(/\\d+/g).map(Number);\n }\n // Default to white if format is unrecognized\n return [255, 255, 255];\n};\nexport const calculateLuminance = (color: any) => {\n const [r, g, b] = parseColor(color)?.map((c: any) => {\n c /= 255;\n return c <= 0.03928 ? c / 12.92 : ((c + 0.055) / 1.055) ** 2.4;\n });\n return 0.2126 * r + 0.7152 * g + 0.0722 * b;\n};\n\nfunction getPallette(baseColor: string): Palette {\n const name = baseColor;\n\n const response: Palette = {\n name,\n colors: {\n 500: `#${baseColor}`.replace(\"##\", \"#\"),\n },\n };\n\n const intensityMap: {\n [key: number]: number;\n } = {\n 50: 0.95,\n 100: 0.9,\n 200: 0.75,\n 300: 0.6,\n 400: 0.3,\n 600: 0.9,\n 700: 0.75,\n 800: 0.6,\n 900: 0.49,\n };\n\n [50, 100, 200, 300, 400].forEach((level) => {\n response.colors[level] = lighten(baseColor, intensityMap[level]);\n });\n [600, 700, 800, 900].forEach((level) => {\n response.colors[level] = darken(baseColor, intensityMap[level]);\n });\n\n return response as Palette;\n}\n\nexport { getPallette };\n\n// const hexToRgb = (hex) => {\n// let d = hex?.split(\"#\")[1];\n// var aRgbHex = d?.match(/.{1,2}/g);\n// var aRgb = [\n// parseInt(aRgbHex[0], 16),\n// parseInt(aRgbHex[1], 16),\n// parseInt(aRgbHex[2], 16)\n// ];\n// return aRgb;\n// };\n// const getTextColor = (backColor) => {\n// let rgbArray = hexToRgb(backColor);\n// if (rgbArray[0] * 0.299 + rgbArray[1] * 0.587 + rgbArray[2] * 0.114 > 186) {\n// return \"#000000\";\n// } else {\n// return \"#ffffff\";\n// }\n// };\n// const replaceAt = function (string, index, replacement) {\n// // if (replacement == \"\" || replacement == \" \") {\n// // return (\n// // string.substring(0, index) +\n// // string.substring(index + replacement.length )\n// // );\n// // }\n// const replaced = string.substring(0, index) + replacement + string.substring(index + 1)\n// return replaced\n// };\n\n// export { hexToRgb, getTextColor, replaceAt };\n"],"mappings":";;;AAAA,OAAO,WAAW;;;ACAlB,SAAS,YAA6B;AACtC,SAAS,eAAe;AAEjB,SAAS,MAAM,QAAsB;AAC1C,SAAO,QAAQ,KAAK,MAAM,CAAC;AAC7B;;;ADYA,IAAM,cAAqE;AAAA,EACzE,IAAI,EAAE,QAAQ,IAAI,aAAa,EAAE;AAAA,EACjC,IAAI,EAAE,QAAQ,IAAI,aAAa,EAAE;AAAA,EACjC,IAAI,EAAE,QAAQ,IAAI,aAAa,EAAE;AAAA,EACjC,IAAI,EAAE,QAAQ,IAAI,aAAa,EAAE;AAAA,EACjC,IAAI,EAAE,QAAQ,IAAI,aAAa,GAAG;AACpC;AAEA,SAAS,gBAAgB,OAA2B;AAClD,MAAI,UAAU,QAAW;AACvB,WAAO;AAAA,EACT,WAAW,QAAQ,KAAK;AACtB,WAAO;AAAA,EACT,OAAO;AACL,WAAO;AAAA,EACT;AACF;AACO,IAAM,iBAAiB,MAAM;AAAA,EAClC,CAAC,OAAO,QAAQ;AACd,UAAM;AAAA,MACJ,OAAO;AAAA,MACP,OAAO;AAAA,MACP;AAAA,MACA,gBAAgB;AAAA,MAChB;AAAA,MACA;AAAA,MACA,QAAQ;AAAA,MACR,aAAa;AAAA,MACb;AAAA,MACA,GAAG;AAAA,IACL,IAAI;AAEJ,UAAM,QAAQ,gBAAgB,UAAU;AACxC,UAAM,SAAS,oCAAe,YAAY,IAAI,EAAE;AAChD,UAAM,cAAc,8CAAoB,YAAY,IAAI,EAAE;AAC1D,UAAM,mBAAmB,SAAS,cAAc;AAChD,UAAM,gBAAgB,mBAAmB,IAAI,KAAK;AAClD,UAAM,mBAAoB,QAAQ,MAAO;AACzC,UAAM,SAAS,gBAAgB;AAE/B,WACE,0DACE;AAAA,MAAC;AAAA;AAAA,QACC;AAAA,QACA,WAAW,GAAG,iEAAiE,SAAS;AAAA;AAAA,MAExF;AAAA,QAAC;AAAA;AAAA,UACC,OAAO,SAAS;AAAA,UAChB,QAAQ,SAAS;AAAA,UACjB,SAAS,OAAO,SAAS,CAAC,IAAI,SAAS,CAAC;AAAA,UACxC,WAAU;AAAA;AAAA,QAEV;AAAA,UAAC;AAAA;AAAA,YACC,GAAG;AAAA,YACH,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ;AAAA,YACA,MAAK;AAAA,YACL,QAAO;AAAA,YACP,eAAc;AAAA,YACd,WAAW,GAAG,2CAA2C,wBAAwB;AAAA;AAAA,QACnF;AAAA,QACC,QAAQ,IACP;AAAA,UAAC;AAAA;AAAA,YACC,GAAG;AAAA,YACH,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ;AAAA,YACA,iBAAiB,gBAAgB,MAAM;AAAA,YACvC,kBAAkB;AAAA,YAClB,MAAK;AAAA,YACL,QAAO;AAAA,YACP,eAAc;AAAA,YACd,WAAW;AAAA,cACT;AAAA,cACA;AAAA,cACA,gBAAgB,2DAA2D;AAAA,YAC7E;AAAA;AAAA,QACF,IACE;AAAA,MACN;AAAA,MACA,oCAAC,SAAI,WAAW,GAAG,yBAAyB,KAAI,QAAS;AAAA,IAC3D,CACF;AAAA,EAEJ;AACF;AAEA,eAAe,cAAc;","names":[]}
@@ -48,9 +48,7 @@ function cn(...inputs) {
48
48
 
49
49
  // elements/helperText/HelperText.tsx
50
50
  var import_react = __toESM(require("react"));
51
- var HelperText = ({
52
- helperText
53
- }) => /* @__PURE__ */ import_react.default.createElement(
51
+ var HelperText = ({ helperText }) => /* @__PURE__ */ import_react.default.createElement(
54
52
  "p",
55
53
  {
56
54
  className: cn(
@@ -101,38 +99,31 @@ var Tooltip = ({
101
99
  delayDuration = 300,
102
100
  ...props
103
101
  }) => {
104
- return /* @__PURE__ */ import_react2.default.createElement(
105
- TooltipPrimitive.TooltipProvider,
102
+ return /* @__PURE__ */ import_react2.default.createElement(TooltipPrimitive.TooltipProvider, { delayDuration, ...providerProps }, /* @__PURE__ */ import_react2.default.createElement(
103
+ TooltipPrimitive.Root,
106
104
  {
107
- delayDuration,
108
- ...providerProps
105
+ open: !disabled && open,
106
+ defaultOpen,
107
+ onOpenChange,
108
+ ...props
109
109
  },
110
+ /* @__PURE__ */ import_react2.default.createElement(TooltipPrimitive.Trigger, { ...triggerProps }, children),
110
111
  /* @__PURE__ */ import_react2.default.createElement(
111
- TooltipPrimitive.Root,
112
+ TooltipContent,
112
113
  {
113
- open: !disabled && open,
114
- defaultOpen,
115
- onOpenChange,
116
- ...props
114
+ size,
115
+ side,
116
+ align: "center",
117
+ ...contentProps,
118
+ style: {
119
+ ...contentProps == null ? void 0 : contentProps.style,
120
+ maxWidth: "var(--radix-tooltip-content-available-width)",
121
+ maxHeight: "var(--radix-tooltip-content-available-height)"
122
+ }
117
123
  },
118
- /* @__PURE__ */ import_react2.default.createElement(TooltipPrimitive.Trigger, { ...triggerProps }, children),
119
- /* @__PURE__ */ import_react2.default.createElement(
120
- TooltipContent,
121
- {
122
- size,
123
- side,
124
- align: "center",
125
- ...contentProps,
126
- style: {
127
- ...contentProps == null ? void 0 : contentProps.style,
128
- maxWidth: "var(--radix-tooltip-content-available-width)",
129
- maxHeight: "var(--radix-tooltip-content-available-height)"
130
- }
131
- },
132
- content
133
- )
124
+ content
134
125
  )
135
- );
126
+ ));
136
127
  };
137
128
 
138
129
  // elements/label/Label.tsx
@@ -180,21 +171,19 @@ Label.displayName = "Label";
180
171
  // elements/popover/Popover.tsx
181
172
  var React4 = __toESM(require("react"));
182
173
  var PopoverPrimitive = __toESM(require("@radix-ui/react-popover"));
183
- var PopoverContent = React4.forwardRef(
184
- ({ className, align = "center", sideOffset = 4, container, ...props }, ref) => /* @__PURE__ */ React4.createElement(PopoverPrimitive.Portal, { container }, /* @__PURE__ */ React4.createElement(
185
- PopoverPrimitive.Content,
186
- {
187
- ref,
188
- align,
189
- sideOffset,
190
- className: cn(
191
- "dark:dark-shadow hawa-z-50 hawa-rounded hawa-border hawa-bg-popover hawa-text-popover-foreground hawa-shadow-md hawa-outline-none data-[state=open]:hawa-animate-in data-[state=closed]:hawa-animate-out data-[state=closed]:hawa-fade-out-0 data-[state=open]:hawa-fade-in-0 data-[state=closed]:hawa-zoom-out-95 data-[state=open]:hawa-zoom-in-95 data-[side=bottom]:hawa-slide-in-from-top-2 data-[side=left]:hawa-slide-in-from-right-2 data-[side=right]:hawa-slide-in-from-left-2 data-[side=top]:hawa-slide-in-from-bottom-2",
192
- className
193
- ),
194
- ...props
195
- }
196
- ))
197
- );
174
+ var PopoverContent = React4.forwardRef(({ className, align = "center", sideOffset = 4, container, ...props }, ref) => /* @__PURE__ */ React4.createElement(PopoverPrimitive.Portal, { container }, /* @__PURE__ */ React4.createElement(
175
+ PopoverPrimitive.Content,
176
+ {
177
+ ref,
178
+ align,
179
+ sideOffset,
180
+ className: cn(
181
+ "dark:dark-shadow hawa-z-50 hawa-rounded hawa-border hawa-bg-popover hawa-text-popover-foreground hawa-shadow-md hawa-outline-none data-[state=open]:hawa-animate-in data-[state=closed]:hawa-animate-out data-[state=closed]:hawa-fade-out-0 data-[state=open]:hawa-fade-in-0 data-[state=closed]:hawa-zoom-out-95 data-[state=open]:hawa-zoom-in-95 data-[side=bottom]:hawa-slide-in-from-top-2 data-[side=left]:hawa-slide-in-from-right-2 data-[side=right]:hawa-slide-in-from-left-2 data-[side=top]:hawa-slide-in-from-bottom-2",
182
+ className
183
+ ),
184
+ ...props
185
+ }
186
+ )));
198
187
  PopoverContent.displayName = PopoverPrimitive.Content.displayName;
199
188
  var PopoverTrigger = PopoverPrimitive.Trigger;
200
189
  var PopoverRoot = PopoverPrimitive.Root;
@@ -233,12 +222,8 @@ var Radio = (0, import_react3.forwardRef)(
233
222
  default: "hawa-max-w-fit",
234
223
  full: "hawa-w-full"
235
224
  };
236
- const [parentDirection, setParentDirection] = import_react3.default.useState(
237
- null
238
- );
239
- const [selectedOption, setSelectedOption] = (0, import_react3.useState)(
240
- props.defaultValue || props.value
241
- );
225
+ const [parentDirection, setParentDirection] = import_react3.default.useState(null);
226
+ const [selectedOption, setSelectedOption] = (0, import_react3.useState)(props.defaultValue || props.value);
242
227
  const [openTooltip, setOpenTooltip] = (0, import_react3.useState)(null);
243
228
  const parentRef = (0, import_react3.useRef)(null);
244
229
  (0, import_react3.useEffect)(() => {
@@ -267,89 +252,78 @@ var Radio = (0, import_react3.forwardRef)(
267
252
  ];
268
253
  switch (design) {
269
254
  case "tabs":
270
- return /* @__PURE__ */ import_react3.default.createElement(
271
- "div",
255
+ return /* @__PURE__ */ import_react3.default.createElement("div", { className: cn("hawa-gap-2 hawa-flex hawa-flex-col", containerClassNames == null ? void 0 : containerClassNames.tabs) }, props.label && /* @__PURE__ */ import_react3.default.createElement(Label, { ...labelProps }, props.label), /* @__PURE__ */ import_react3.default.createElement(import_react_tabs.Tabs, null, /* @__PURE__ */ import_react3.default.createElement(
256
+ import_react_tabs.TabsList,
272
257
  {
258
+ role: "tablist",
259
+ ref: parentRef,
273
260
  className: cn(
274
- "hawa-gap-2 hawa-flex hawa-flex-col",
275
- containerClassNames == null ? void 0 : containerClassNames.tabs
261
+ props.options && ((_a = props.options) == null ? void 0 : _a.length) > 2 ? "hawa-flex-wrap xs:hawa-max-w-full xs:hawa-flex-nowrap" : "",
262
+ "hawa-select-none hawa-whitespace-nowrap hawa-rounded hawa-border hawa-text-center hawa-font-medium hawa-h-[40px]",
263
+ orientationStyle[orientation],
264
+ widthStyle[width],
265
+ tabsContainerClassName,
266
+ props.direction === "rtl" ? "hawa-flex-row-reverse" : ""
276
267
  )
277
268
  },
278
- props.label && /* @__PURE__ */ import_react3.default.createElement(Label, { ...labelProps }, props.label),
279
- /* @__PURE__ */ import_react3.default.createElement(import_react_tabs.Tabs, null, /* @__PURE__ */ import_react3.default.createElement(
280
- import_react_tabs.TabsList,
281
- {
282
- role: "tablist",
283
- ref: parentRef,
284
- className: cn(
285
- props.options && ((_a = props.options) == null ? void 0 : _a.length) > 2 ? "hawa-flex-wrap xs:hawa-max-w-full xs:hawa-flex-nowrap" : "",
286
- "hawa-select-none hawa-whitespace-nowrap hawa-rounded hawa-border hawa-text-center hawa-font-medium hawa-h-[40px]",
287
- orientationStyle[orientation],
288
- widthStyle[width],
289
- tabsContainerClassName,
290
- props.direction === "rtl" ? "hawa-flex-row-reverse" : ""
291
- )
292
- },
293
- (_b = props.options) == null ? void 0 : _b.map((opt, o) => {
294
- return opt.tooltip ? /* @__PURE__ */ import_react3.default.createElement(
295
- PopoverRoot,
269
+ (_b = props.options) == null ? void 0 : _b.map((opt, o) => {
270
+ return opt.tooltip ? /* @__PURE__ */ import_react3.default.createElement(
271
+ PopoverRoot,
272
+ {
273
+ key: o,
274
+ open: o === openTooltip,
275
+ onOpenChange: (bool) => setOpenTooltip(bool ? o : null)
276
+ },
277
+ /* @__PURE__ */ import_react3.default.createElement(
278
+ PopoverTrigger,
296
279
  {
297
- key: o,
298
- open: o === openTooltip,
299
- onOpenChange: (bool) => setOpenTooltip(bool ? o : null)
280
+ onMouseEnter: () => setOpenTooltip(o),
281
+ onMouseLeave: () => setOpenTooltip(null),
282
+ asChild: true
300
283
  },
301
284
  /* @__PURE__ */ import_react3.default.createElement(
302
- PopoverTrigger,
285
+ import_react_tabs.TabsTrigger,
303
286
  {
304
- onMouseEnter: () => setOpenTooltip(o),
305
- onMouseLeave: () => setOpenTooltip(null),
306
- asChild: true
307
- },
308
- /* @__PURE__ */ import_react3.default.createElement(
309
- import_react_tabs.TabsTrigger,
310
- {
311
- "aria-current": selectedOption === opt.value ? "page" : void 0,
312
- value: opt.value,
313
- role: "tab",
314
- tabIndex: 0,
315
- onClick: () => {
316
- if (props.disabled || opt.disabled) return;
317
- handleChange(opt);
318
- },
319
- className: cn(
320
- ...radio_option_tabs_styling,
321
- selectedOption === opt.value ? activeTabStyle : inactiveTabStyle
322
- )
287
+ "aria-current": selectedOption === opt.value ? "page" : void 0,
288
+ value: opt.value,
289
+ role: "tab",
290
+ tabIndex: 0,
291
+ onClick: () => {
292
+ if (props.disabled || opt.disabled) return;
293
+ handleChange(opt);
323
294
  },
324
- opt.icon && opt.icon,
325
- opt.label
326
- )
327
- ),
328
- /* @__PURE__ */ import_react3.default.createElement(PopoverContent, { ...opt.tooltipContentProps }, opt.tooltip)
329
- ) : /* @__PURE__ */ import_react3.default.createElement(
330
- import_react_tabs.TabsTrigger,
331
- {
332
- key: o,
333
- role: "tab",
334
- tabIndex: 0,
335
- "aria-current": selectedOption === opt.value ? "page" : void 0,
336
- onClick: () => {
337
- if (props.disabled || opt.disabled) return;
338
- handleChange(opt);
295
+ className: cn(
296
+ ...radio_option_tabs_styling,
297
+ selectedOption === opt.value ? activeTabStyle : inactiveTabStyle
298
+ )
339
299
  },
340
- className: cn(
341
- ...radio_option_tabs_styling,
342
- selectedOption === opt.value ? activeTabStyle : inactiveTabStyle
343
- ),
344
- value: opt.value
300
+ opt.icon && opt.icon,
301
+ opt.label
302
+ )
303
+ ),
304
+ /* @__PURE__ */ import_react3.default.createElement(PopoverContent, { ...opt.tooltipContentProps }, opt.tooltip)
305
+ ) : /* @__PURE__ */ import_react3.default.createElement(
306
+ import_react_tabs.TabsTrigger,
307
+ {
308
+ key: o,
309
+ role: "tab",
310
+ tabIndex: 0,
311
+ "aria-current": selectedOption === opt.value ? "page" : void 0,
312
+ onClick: () => {
313
+ if (props.disabled || opt.disabled) return;
314
+ handleChange(opt);
345
315
  },
346
- opt.icon && opt.icon,
347
- opt.label
348
- );
349
- })
350
- )),
351
- !forceHideHelperText && /* @__PURE__ */ import_react3.default.createElement(HelperText, { helperText: props.helperText })
352
- );
316
+ className: cn(
317
+ ...radio_option_tabs_styling,
318
+ selectedOption === opt.value ? activeTabStyle : inactiveTabStyle
319
+ ),
320
+ value: opt.value
321
+ },
322
+ opt.icon && opt.icon,
323
+ opt.label
324
+ );
325
+ })
326
+ )), !forceHideHelperText && /* @__PURE__ */ import_react3.default.createElement(HelperText, { helperText: props.helperText }));
353
327
  case "bordered":
354
328
  return /* @__PURE__ */ import_react3.default.createElement(
355
329
  "div",
@@ -397,11 +371,7 @@ var Radio = (0, import_react3.forwardRef)(
397
371
  return /* @__PURE__ */ import_react3.default.createElement(
398
372
  "ul",
399
373
  {
400
- className: cn(
401
- orientationStyle[orientation],
402
- "hawa-gap-4",
403
- containerClassNames == null ? void 0 : containerClassNames.cards
404
- )
374
+ className: cn(orientationStyle[orientation], "hawa-gap-4", containerClassNames == null ? void 0 : containerClassNames.cards)
405
375
  },
406
376
  (_c = props.options) == null ? void 0 : _c.map((opt, o) => /* @__PURE__ */ import_react3.default.createElement("li", { key: o, onClick: () => handleChange(opt) }, /* @__PURE__ */ import_react3.default.createElement(
407
377
  "input",
@@ -427,49 +397,38 @@ var Radio = (0, import_react3.forwardRef)(
427
397
  )))
428
398
  );
429
399
  default:
430
- return /* @__PURE__ */ import_react3.default.createElement(
400
+ return /* @__PURE__ */ import_react3.default.createElement("div", { className: cn("hawa-flex hawa-flex-col hawa-gap-2", containerClassNames == null ? void 0 : containerClassNames.default) }, props.label && /* @__PURE__ */ import_react3.default.createElement(Label, { ...labelProps }, props.label), /* @__PURE__ */ import_react3.default.createElement("div", { className: cn(orientationStyle[orientation], "hawa-gap-2") }, props.options && props.options.map((opt, i) => /* @__PURE__ */ import_react3.default.createElement(
431
401
  "div",
432
402
  {
433
403
  className: cn(
434
- "hawa-flex hawa-flex-col hawa-gap-2",
435
- containerClassNames == null ? void 0 : containerClassNames.default
436
- )
404
+ "radio-item radio-item-default hawa-flex hawa-items-center hawa-transition-all",
405
+ props.direction === "rtl" ? "margin-left right-3px" : "margin-right left-3px"
406
+ ),
407
+ key: i + 1
437
408
  },
438
- props.label && /* @__PURE__ */ import_react3.default.createElement(Label, { ...labelProps }, props.label),
439
- /* @__PURE__ */ import_react3.default.createElement("div", { className: cn(orientationStyle[orientation], "hawa-gap-2") }, props.options && props.options.map((opt, i) => /* @__PURE__ */ import_react3.default.createElement(
440
- "div",
409
+ /* @__PURE__ */ import_react3.default.createElement(
410
+ "input",
441
411
  {
412
+ disabled: opt.disabled,
413
+ id: opt.value.toString(),
414
+ type: "radio",
415
+ value: opt.value,
416
+ name,
417
+ onChange: () => handleChange(opt)
418
+ }
419
+ ),
420
+ /* @__PURE__ */ import_react3.default.createElement(
421
+ "label",
422
+ {
423
+ htmlFor: opt.value.toString(),
442
424
  className: cn(
443
- "radio-item radio-item-default hawa-flex hawa-items-center hawa-transition-all",
444
- props.direction === "rtl" ? "margin-left right-3px" : "margin-right left-3px"
445
- ),
446
- key: i + 1
425
+ "hawa-text-sm hawa-font-medium dark:hawa-text-white",
426
+ opt.disabled ? "hawa-text-gray-400" : "hawa-cursor-pointer hawa-text-gray-900"
427
+ )
447
428
  },
448
- /* @__PURE__ */ import_react3.default.createElement(
449
- "input",
450
- {
451
- disabled: opt.disabled,
452
- id: opt.value.toString(),
453
- type: "radio",
454
- value: opt.value,
455
- name,
456
- onChange: () => handleChange(opt)
457
- }
458
- ),
459
- /* @__PURE__ */ import_react3.default.createElement(
460
- "label",
461
- {
462
- htmlFor: opt.value.toString(),
463
- className: cn(
464
- "hawa-text-sm hawa-font-medium dark:hawa-text-white",
465
- opt.disabled ? "hawa-text-gray-400" : "hawa-cursor-pointer hawa-text-gray-900"
466
- )
467
- },
468
- opt.label
469
- )
470
- ))),
471
- /* @__PURE__ */ import_react3.default.createElement(HelperText, { helperText: props.helperText })
472
- );
429
+ opt.label
430
+ )
431
+ ))), /* @__PURE__ */ import_react3.default.createElement(HelperText, { helperText: props.helperText }));
473
432
  }
474
433
  }
475
434
  );
@@ -1 +1 @@
1
- {"version":3,"sources":["../../elements/radio/index.ts","../../elements/radio/Radio.tsx","../../util/index.ts","../../elements/helperText/HelperText.tsx","../../elements/label/Label.tsx","../../elements/tooltip/Tooltip.tsx","../../elements/popover/Popover.tsx"],"sourcesContent":["export * from \"./Radio\";\n","import React, { useState, FC, useRef, useEffect, forwardRef } from \"react\";\n\nimport { PopoverContentProps } from \"@radix-ui/react-popover\";\nimport { TabsList, TabsTrigger, Tabs } from \"@radix-ui/react-tabs\";\nimport { cn } from \"@util/index\";\n\nimport { DirectionType, OrientationType } from \"../../types/commonTypes\";\nimport { HelperText } from \"../helperText\";\nimport { Label, LabelProps } from \"../label/Label\";\nimport { PopoverContent, PopoverRoot, PopoverTrigger } from \"../popover\";\n\nexport type RadioOptionsTypes = {\n value: any;\n label: any;\n disabled?: any;\n sublabel?: any;\n icon?: any;\n tooltip?: string;\n tooltipContentProps?: PopoverContentProps;\n};\n\ntype RadioTypes = {\n /** Required to enable selection and differentiate between different Radio instances. */\n name: string;\n disabled?: boolean;\n orientation?: OrientationType;\n design?: \"default\" | \"tabs\" | \"cards\" | \"bordered\";\n width?: \"default\" | \"full\" | \"none\";\n size?: \"default\" | \"lg\" | \"sm\" | \"xs\";\n options: RadioOptionsTypes[];\n onChange?: any;\n defaultValue?: any;\n value?: any;\n direction?: DirectionType;\n helperText?: any;\n labelProps?: LabelProps;\n label?: string;\n tabsContainerClassName?: string;\n forceHideHelperText?: boolean;\n containerClassNames?: {\n bordered?: string;\n tabs?: string;\n cards?: string;\n default?: string;\n };\n};\n\nexport const Radio = forwardRef<HTMLInputElement, RadioTypes>(\n (\n {\n design = \"default\",\n width = \"default\",\n size = \"default\",\n orientation = \"horizontal\",\n name,\n labelProps,\n tabsContainerClassName,\n forceHideHelperText = false,\n onChange,\n containerClassNames,\n ...props\n },\n ref,\n ) => {\n let activeTabStyle =\n \"hawa-inline-block hawa-w-full hawa-text-primary-foreground hawa-bg-primary hawa-active dark:hawa-bg-primary\";\n let inactiveTabStyle = `hawa-inline-block hawa-w-full hawa-transition-all hawa-bg-primary-foreground dark:hover:hawa-text-white\n ${props.disabled ? \"\" : \"hover:hawa-bg-muted\"}`;\n let orientationStyle = {\n horizontal: \"hawa-flex hawa-flex-row\",\n vertical: \"hawa-flex hawa-flex-col\",\n };\n\n let tabSizeStyle = {\n default: \"hawa-py-2 hawa-px-4 hawa-text-sm\",\n lg: \"hawa-py-2 hawa-px-4\",\n sm: \"hawa-p-1.5 hawa-text-xs\",\n xs: \"hawa-p-1 hawa-text-[10px]\",\n };\n let widthStyle = {\n none: \"\",\n default: \"hawa-max-w-fit\",\n full: \"hawa-w-full\",\n };\n const [parentDirection, setParentDirection] = React.useState<string | null>(\n null,\n );\n const [selectedOption, setSelectedOption] = useState(\n props.defaultValue || props.value,\n );\n const [openTooltip, setOpenTooltip] = useState<number | null>(null);\n\n const parentRef = useRef<HTMLDivElement>(null);\n\n useEffect(() => {\n const parentNode = parentRef.current?.parentNode as HTMLElement | null;\n if (parentNode) {\n const dir = window.getComputedStyle(parentNode).direction;\n setParentDirection(dir);\n }\n });\n\n const handleChange = (opt: RadioOptionsTypes) => {\n setSelectedOption(opt.value);\n if (onChange) {\n // use the more generic onChange prop\n onChange(opt.value); // You can pass the entire option or just the value\n } else {\n console.log(\"onChange was not provided\");\n }\n };\n\n const radio_option_tabs_styling = [\n \"hawa-w-full hawa-last hawa-flex hawa-flex-row hawa-items-center hawa-justify-center hawa-gap-2 \",\n !props.disabled && \"hawa-cursor-pointer\",\n orientation === \"horizontal\" &&\n parentDirection === \"ltr\" &&\n \"hawa-rounded-none first:hawa-rounded-l last:hawa-rounded-r\",\n orientation === \"horizontal\" &&\n parentDirection === \"rtl\" &&\n \"hawa-rounded-none first:hawa-rounded-r last:hawa-rounded-l\",\n orientation === \"vertical\" &&\n \"hawa-rounded-none first:hawa-rounded-t last:hawa-rounded-b\",\n tabSizeStyle[size],\n ];\n\n switch (design) {\n case \"tabs\":\n return (\n <div\n className={cn(\n \"hawa-gap-2 hawa-flex hawa-flex-col\",\n containerClassNames?.tabs,\n )}\n >\n {props.label && <Label {...labelProps}>{props.label}</Label>}\n <Tabs>\n <TabsList\n role=\"tablist\"\n ref={parentRef}\n className={cn(\n props.options && props.options?.length > 2\n ? \"hawa-flex-wrap xs:hawa-max-w-full xs:hawa-flex-nowrap\"\n : \"\",\n \"hawa-select-none hawa-whitespace-nowrap hawa-rounded hawa-border hawa-text-center hawa-font-medium hawa-h-[40px]\",\n orientationStyle[orientation],\n widthStyle[width],\n tabsContainerClassName,\n props.direction === \"rtl\" ? \"hawa-flex-row-reverse\" : \"\",\n )}\n >\n {props.options?.map((opt, o) => {\n return opt.tooltip ? (\n <PopoverRoot\n key={o}\n open={o === openTooltip}\n onOpenChange={(bool) => setOpenTooltip(bool ? o : null)}\n >\n <PopoverTrigger\n onMouseEnter={() => setOpenTooltip(o)}\n onMouseLeave={() => setOpenTooltip(null)}\n asChild\n >\n <TabsTrigger\n aria-current={\n selectedOption === opt.value ? \"page\" : undefined\n }\n value={opt.value}\n role=\"tab\"\n tabIndex={0}\n onClick={() => {\n if (props.disabled || opt.disabled) return;\n handleChange(opt);\n }}\n className={cn(\n ...radio_option_tabs_styling,\n selectedOption === opt.value\n ? activeTabStyle\n : inactiveTabStyle,\n )}\n >\n {opt.icon && opt.icon}\n {opt.label}\n </TabsTrigger>\n </PopoverTrigger>\n <PopoverContent {...opt.tooltipContentProps}>\n {opt.tooltip}\n </PopoverContent>\n </PopoverRoot>\n ) : (\n <TabsTrigger\n key={o}\n role=\"tab\"\n tabIndex={0}\n aria-current={\n selectedOption === opt.value ? \"page\" : undefined\n }\n onClick={() => {\n if (props.disabled || opt.disabled) return;\n handleChange(opt);\n }}\n className={cn(\n ...radio_option_tabs_styling,\n selectedOption === opt.value\n ? activeTabStyle\n : inactiveTabStyle,\n )}\n value={opt.value}\n >\n {opt.icon && opt.icon}\n {opt.label}\n </TabsTrigger>\n );\n })}\n </TabsList>\n </Tabs>\n {!forceHideHelperText && (\n <HelperText helperText={props.helperText} />\n )}\n </div>\n );\n case \"bordered\":\n return (\n <div\n className={cn(\n orientationStyle[orientation],\n \"hawa-gap-4\",\n containerClassNames?.bordered,\n )}\n >\n {props.options &&\n props.options.map((opt, i) => (\n <div key={i} className=\"hawa-w-full hawa-rounded hawa-border\">\n <div\n className={cn(\n \"radio-item radio-item-bordered hawa-flex hawa-items-center hawa-transition-all\",\n props.direction === \"rtl\"\n ? \"margin-left right-19px\"\n : \"margin-right left-23px\",\n )}\n key={i + 1}\n >\n <input\n disabled={opt.disabled}\n id={opt.value.toString()}\n type=\"radio\"\n value={opt.value}\n name={name}\n onChange={() => handleChange(opt)}\n />\n <label\n htmlFor={opt.value.toString()}\n className={cn(\n \"hawa-ml-2 hawa-w-full hawa-select-none hawa-p-4 hawa-pl-3 hawa-text-sm hawa-font-medium hawa-text-black dark:hawa-text-white\",\n opt.disabled\n ? \"hawa-opacity-50\"\n : \"hawa-cursor-pointer hawa-text-gray-900\",\n )}\n >\n {opt.label}\n </label>\n </div>\n </div>\n ))}\n </div>\n );\n case \"cards\":\n return (\n <ul\n className={cn(\n orientationStyle[orientation],\n \"hawa-gap-4\",\n containerClassNames?.cards,\n )}\n >\n {props.options?.map((opt: any, o) => (\n <li key={o} onClick={() => handleChange(opt)}>\n <input\n type=\"radio\"\n id={opt.value.toString()}\n name={name}\n value={opt.value.toString()}\n className=\"hawa-peer hawa-hidden\"\n required\n disabled={opt.disabled}\n />\n <label\n htmlFor={opt.value.toString()}\n className={cn(\n \"hawa-inline-flex hawa-h-full hawa-w-full hawa-transition-all hawa-items-center hawa-justify-between hawa-rounded-lg hawa-border hawa-border-foreground/10 hawa-bg-background hawa-p-5 hawa-text-gray-500 peer-checked:hawa-border-primary peer-checked:hawa-text-primary dark:hawa-border-foreground/10 dark:hawa-bg-foreground/5 dark:hawa-text-gray-400 dark:peer-checked:hawa-text-primary\",\n opt.disabled\n ? \"hawa-opacity-50\"\n : \"hawa-cursor-pointer hover:hawa-bg-foreground/10 hover:hawa-text-gray-600 dark:hover:hawa-bg-foreground/20 dark:hover:hawa-text-gray-300\",\n )}\n >\n <div className=\"hawa-block hawa-h-full hawa-w-full\">\n <div className=\"hawa-w-full hawa-text-lg hawa-font-semibold\">\n {opt.label}\n </div>\n <div className=\"hawa-w-full\">{opt.sublabel}</div>\n </div>\n </label>\n </li>\n ))}\n </ul>\n );\n\n default:\n return (\n <div\n className={cn(\n \"hawa-flex hawa-flex-col hawa-gap-2\",\n containerClassNames?.default,\n )}\n >\n {props.label && <Label {...labelProps}>{props.label}</Label>}\n <div className={cn(orientationStyle[orientation], \"hawa-gap-2\")}>\n {props.options &&\n props.options.map((opt, i) => (\n <div\n className={cn(\n \"radio-item radio-item-default hawa-flex hawa-items-center hawa-transition-all\",\n props.direction === \"rtl\"\n ? \"margin-left right-3px\"\n : \"margin-right left-3px\",\n )}\n key={i + 1}\n >\n <input\n // TODO: spread the usual radio props\n disabled={opt.disabled}\n id={opt.value.toString()}\n type=\"radio\"\n value={opt.value}\n name={name}\n onChange={() => handleChange(opt)}\n />\n <label\n htmlFor={opt.value.toString()}\n className={cn(\n \"hawa-text-sm hawa-font-medium dark:hawa-text-white\",\n opt.disabled\n ? \"hawa-text-gray-400\"\n : \"hawa-cursor-pointer hawa-text-gray-900\",\n )}\n >\n {opt.label}\n </label>\n </div>\n ))}\n </div>\n <HelperText helperText={props.helperText} />\n </div>\n );\n }\n },\n);\n","import { clsx, type ClassValue } from \"clsx\";\nimport { twMerge } from \"tailwind-merge\";\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs));\n}\n\ntype Palette = {\n name: string;\n colors: {\n [key: number]: string;\n };\n};\ntype Rgb = {\n r: number;\n g: number;\n b: number;\n};\nfunction hexToRgb(hex: string): Rgb | null {\n const sanitizedHex = hex.replaceAll(\"##\", \"#\");\n const colorParts = /^#?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})$/i.exec(\n sanitizedHex\n );\n\n if (!colorParts) {\n return null;\n }\n\n const [, r, g, b] = colorParts;\n\n return {\n r: parseInt(r, 16),\n g: parseInt(g, 16),\n b: parseInt(b, 16)\n } as Rgb;\n}\n\nfunction rgbToHex(r: number, g: number, b: number): string {\n const toHex = (c: number) => `0${c.toString(16)}`.slice(-2);\n return `#${toHex(r)}${toHex(g)}${toHex(b)}`;\n}\n\nexport function getTextColor(color: string): \"#FFF\" | \"#333\" {\n const rgbColor = hexToRgb(color);\n\n if (!rgbColor) {\n return \"#333\";\n }\n\n const { r, g, b } = rgbColor;\n const luma = 0.2126 * r + 0.7152 * g + 0.0722 * b;\n\n return luma < 120 ? \"#FFF\" : \"#333\";\n}\n\nfunction lighten(hex: string, intensity: number): string {\n const color = hexToRgb(`#${hex}`);\n\n if (!color) {\n return \"\";\n }\n\n const r = Math.round(color.r + (255 - color.r) * intensity);\n const g = Math.round(color.g + (255 - color.g) * intensity);\n const b = Math.round(color.b + (255 - color.b) * intensity);\n\n return rgbToHex(r, g, b);\n}\n\nfunction darken(hex: string, intensity: number): string {\n const color = hexToRgb(hex);\n\n if (!color) {\n return \"\";\n }\n\n const r = Math.round(color.r * intensity);\n const g = Math.round(color.g * intensity);\n const b = Math.round(color.b * intensity);\n\n return rgbToHex(r, g, b);\n}\nconst parseColor = (color: any) => {\n if (color.startsWith(\"#\")) {\n // Convert hex to RGB\n let r = parseInt(color.slice(1, 3), 16);\n let g = parseInt(color.slice(3, 5), 16);\n let b = parseInt(color.slice(5, 7), 16);\n return [r, g, b];\n } else if (color.startsWith(\"rgb\")) {\n // Extract RGB values from rgb() format\n return color.match(/\\d+/g).map(Number);\n }\n // Default to white if format is unrecognized\n return [255, 255, 255];\n};\nexport const calculateLuminance = (color: any) => {\n const [r, g, b] = parseColor(color)?.map((c: any) => {\n c /= 255;\n return c <= 0.03928 ? c / 12.92 : ((c + 0.055) / 1.055) ** 2.4;\n });\n return 0.2126 * r + 0.7152 * g + 0.0722 * b;\n};\n\nfunction getPallette(baseColor: string): Palette {\n const name = baseColor;\n\n const response: Palette = {\n name,\n colors: {\n 500: `#${baseColor}`.replace(\"##\", \"#\")\n }\n };\n\n const intensityMap: {\n [key: number]: number;\n } = {\n 50: 0.95,\n 100: 0.9,\n 200: 0.75,\n 300: 0.6,\n 400: 0.3,\n 600: 0.9,\n 700: 0.75,\n 800: 0.6,\n 900: 0.49\n };\n\n [50, 100, 200, 300, 400].forEach((level) => {\n response.colors[level] = lighten(baseColor, intensityMap[level]);\n });\n [600, 700, 800, 900].forEach((level) => {\n response.colors[level] = darken(baseColor, intensityMap[level]);\n });\n\n return response as Palette;\n}\n\nexport { getPallette };\n\n// const hexToRgb = (hex) => {\n// let d = hex?.split(\"#\")[1];\n// var aRgbHex = d?.match(/.{1,2}/g);\n// var aRgb = [\n// parseInt(aRgbHex[0], 16),\n// parseInt(aRgbHex[1], 16),\n// parseInt(aRgbHex[2], 16)\n// ];\n// return aRgb;\n// };\n// const getTextColor = (backColor) => {\n// let rgbArray = hexToRgb(backColor);\n// if (rgbArray[0] * 0.299 + rgbArray[1] * 0.587 + rgbArray[2] * 0.114 > 186) {\n// return \"#000000\";\n// } else {\n// return \"#ffffff\";\n// }\n// };\n// const replaceAt = function (string, index, replacement) {\n// // if (replacement == \"\" || replacement == \" \") {\n// // return (\n// // string.substring(0, index) +\n// // string.substring(index + replacement.length )\n// // );\n// // }\n// const replaced = string.substring(0, index) + replacement + string.substring(index + 1)\n// return replaced\n// };\n\n// export { hexToRgb, getTextColor, replaceAt };\n","import React from \"react\";\n\nimport { cn } from \"@util/index\";\n\nexport const HelperText = ({\n helperText,\n}: {\n helperText?: string | React.ReactNode;\n}) => (\n <p\n className={cn(\n \"hawa-my-0 hawa-text-start hawa-text-helper-color hawa-transition-all hawa-text-xs\",\n helperText ? \"hawa-opacity-100 hawa-h-4\" : \"hawa-h-0 hawa-opacity-0\",\n )}\n >\n {helperText}\n </p>\n);\n","import * as React from \"react\";\n\nimport { cn } from \"@util/index\";\n\nimport { PositionType } from \"@_types/commonTypes\";\n\nimport { Tooltip } from \"../tooltip\";\n\nexport type LabelProps = {\n hint?: React.ReactNode;\n hintSide?: PositionType;\n htmlFor?: string;\n required?: boolean;\n};\n\nconst Label = React.forwardRef<\n HTMLLabelElement,\n React.LabelHTMLAttributes<HTMLLabelElement> & LabelProps\n>(({ className, hint, hintSide, required, children, ...props }, ref) => (\n <div className=\"hawa-flex hawa-flex-row hawa-items-center hawa-gap-1 hawa-transition-all\">\n <label\n ref={ref}\n className={cn(\n \"hawa-text-sm hawa-font-medium hawa-leading-none peer-disabled:hawa-cursor-not-allowed peer-disabled:hawa-opacity-70\",\n className,\n )}\n {...props}\n >\n {children}\n {required && <span className=\"hawa-mx-0.5 hawa-text-red-500\">*</span>}\n </label>\n {hint && (\n <Tooltip\n content={hint}\n side={hintSide}\n triggerProps={{\n tabIndex: -1,\n onClick: (event) => event.preventDefault(),\n }}\n >\n <div>\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n className=\"hawa-h-[14px] hawa-w-[14px] hawa-cursor-help\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n >\n <circle cx=\"12\" cy=\"12\" r=\"10\" />\n <path d=\"M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3\" />\n <path d=\"M12 17h.01\" />\n </svg>\n </div>\n </Tooltip>\n )}\n </div>\n));\n\nLabel.displayName = \"Label\";\n\nexport { Label };\n","import React from \"react\";\n\nimport * as TooltipPrimitive from \"@radix-ui/react-tooltip\";\nimport { cn } from \"@util/index\";\n\nimport { PositionType } from \"@_types/commonTypes\";\n\nconst TooltipContent = React.forwardRef<\n React.ElementRef<typeof TooltipPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof TooltipPrimitive.Content> & {\n size?: \"default\" | \"small\" | \"large\";\n }\n>(({ className, sideOffset = 4, size = \"default\", ...props }, ref) => (\n <TooltipPrimitive.Content\n ref={ref}\n sideOffset={sideOffset}\n className={cn(\n \"hawa-z-50 hawa-overflow-hidden hawa-rounded-md hawa-border hawa-bg-popover hawa-px-3 hawa-py-1.5 hawa-text-sm hawa-text-popover-foreground hawa-shadow-md hawa-animate-in hawa-fade-in-0 hawa-zoom-in-95 data-[state=closed]:hawa-animate-out data-[state=closed]:hawa-fade-out-0 data-[state=closed]:hawa-zoom-out-95 data-[side=bottom]:hawa-slide-in-from-top-2 data-[side=left]:hawa-slide-in-from-right-2 data-[side=right]:hawa-slide-in-from-left-2 data-[side=top]:hawa-slide-in-from-bottom-2\",\n {\n \"hawa-text-xs\": size === \"small\",\n \"hawa-text-xl\": size === \"large\",\n },\n className,\n )}\n {...props}\n />\n));\nTooltipContent.displayName = TooltipPrimitive.Content.displayName;\n\nconst TooltipArrow = React.forwardRef<\n React.ElementRef<typeof TooltipPrimitive.Arrow>,\n React.ComponentPropsWithoutRef<typeof TooltipPrimitive.Arrow>\n>(({ className, ...props }, ref) => (\n <TooltipPrimitive.Arrow ref={ref} className={cn(className)} {...props} />\n));\nTooltipArrow.displayName = TooltipPrimitive.Arrow.displayName;\n\ntype TooltipTypes = {\n /** Controls the open state of the tooltip. */\n open?: any;\n /** Specifies the side where the tooltip will appear. */\n side?: PositionType;\n /** Content to be displayed within the tooltip. */\n content?: any;\n /** Elements to which the tooltip is anchored. */\n children?: any;\n /** Sets the default open state of the tooltip. */\n defaultOpen?: any;\n /** Event handler for open state changes. */\n onOpenChange?: any;\n /** Duration of the delay before the tooltip appears. */\n delayDuration?: any;\n /** Size of the tooltip. */\n size?: \"default\" | \"small\" | \"large\";\n /** Disables the tooltip. */\n disabled?: boolean;\n triggerProps?: TooltipPrimitive.TooltipTriggerProps;\n contentProps?: TooltipPrimitive.TooltipContentProps;\n providerProps?: TooltipPrimitive.TooltipProps;\n};\n\nconst Tooltip: React.FunctionComponent<TooltipTypes> = ({\n side,\n size,\n open,\n content,\n children,\n disabled,\n defaultOpen,\n onOpenChange,\n triggerProps,\n contentProps,\n providerProps,\n delayDuration = 300,\n ...props\n}) => {\n return (\n <TooltipPrimitive.TooltipProvider\n delayDuration={delayDuration}\n {...providerProps}\n >\n <TooltipPrimitive.Root\n open={!disabled && open}\n defaultOpen={defaultOpen}\n onOpenChange={onOpenChange}\n {...props}\n >\n <TooltipPrimitive.Trigger {...triggerProps}>\n {children}\n </TooltipPrimitive.Trigger>\n <TooltipContent\n size={size}\n side={side}\n align=\"center\"\n {...contentProps}\n style={{\n ...contentProps?.style,\n maxWidth: \"var(--radix-tooltip-content-available-width)\",\n maxHeight: \"var(--radix-tooltip-content-available-height)\",\n }}\n >\n {content}\n </TooltipContent>\n </TooltipPrimitive.Root>\n </TooltipPrimitive.TooltipProvider>\n );\n};\n\nexport { Tooltip };\n","import * as React from \"react\";\n\nimport * as PopoverPrimitive from \"@radix-ui/react-popover\";\nimport { cn } from \"@util/index\";\n\nimport { PositionType } from \"@_types/commonTypes\";\n\nconst PopoverContent = React.forwardRef<\n React.ElementRef<typeof PopoverPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof PopoverPrimitive.Content> & {\n container?: HTMLElement | null;\n }\n>(\n (\n { className, align = \"center\", sideOffset = 4, container, ...props },\n ref,\n ) => (\n <PopoverPrimitive.Portal container={container}>\n <PopoverPrimitive.Content\n ref={ref}\n align={align}\n sideOffset={sideOffset}\n className={cn(\n \"dark:dark-shadow hawa-z-50 hawa-rounded hawa-border hawa-bg-popover hawa-text-popover-foreground hawa-shadow-md hawa-outline-none data-[state=open]:hawa-animate-in data-[state=closed]:hawa-animate-out data-[state=closed]:hawa-fade-out-0 data-[state=open]:hawa-fade-in-0 data-[state=closed]:hawa-zoom-out-95 data-[state=open]:hawa-zoom-in-95 data-[side=bottom]:hawa-slide-in-from-top-2 data-[side=left]:hawa-slide-in-from-right-2 data-[side=right]:hawa-slide-in-from-left-2 data-[side=top]:hawa-slide-in-from-bottom-2\",\n className,\n )}\n {...props}\n />\n </PopoverPrimitive.Portal>\n ),\n);\nPopoverContent.displayName = PopoverPrimitive.Content.displayName;\n\ninterface PopoverProps {\n side?: PositionType;\n align?: \"start\" | \"center\" | \"end\";\n trigger?: React.ReactNode;\n children: React.ReactNode;\n className?: string;\n sideOffset?: number;\n disableTrigger?: any;\n width?: \"trigger\" | \"default\";\n open?: boolean;\n contentProps?: PopoverPrimitive.PopoverContentProps;\n triggerProps?: PopoverPrimitive.PopoverTriggerProps;\n}\n\ntype HawaPopoverTypes = PopoverProps &\n React.ComponentProps<typeof PopoverPrimitive.Root>;\n\nconst Popover: React.FC<HawaPopoverTypes> = ({\n trigger,\n children,\n className,\n align = \"center\",\n side,\n sideOffset = 4,\n open,\n width = \"default\",\n disableTrigger,\n contentProps,\n triggerProps,\n ...props\n}) => {\n let widthStyles = {\n trigger: \"var(--radix-popover-trigger-width)\",\n default: \"auto\",\n };\n\n return (\n <PopoverPrimitive.Root open={open} {...props}>\n <PopoverPrimitive.Trigger\n className=\"hawa-w-full\"\n disabled={disableTrigger}\n {...triggerProps}\n >\n {trigger}\n </PopoverPrimitive.Trigger>\n <PopoverContent\n side={side}\n className={className}\n align={align}\n sideOffset={sideOffset}\n style={{\n width: widthStyles[width],\n maxWidth: \"var(--radix-popover-content-available-width)\",\n maxHeight: \"var(--radix-popover-content-available-height)\",\n }}\n {...contentProps}\n >\n {children}\n </PopoverContent>\n </PopoverPrimitive.Root>\n );\n};\n\nconst PopoverTrigger = PopoverPrimitive.Trigger;\nconst PopoverPortal = PopoverPrimitive.Portal;\nconst PopoverRoot = PopoverPrimitive.Root;\n\nexport { Popover, PopoverPortal, PopoverRoot, PopoverContent, PopoverTrigger };\n"],"mappings":"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","names":["import_react","React","React","import_react","React","React","React","_a"]}
1
+ {"version":3,"sources":["../../elements/radio/index.ts","../../elements/radio/Radio.tsx","../../util/index.ts","../../elements/helperText/HelperText.tsx","../../elements/label/Label.tsx","../../elements/tooltip/Tooltip.tsx","../../elements/popover/Popover.tsx"],"sourcesContent":["export * from \"./Radio\";\n","import React, { useState, FC, useRef, useEffect, forwardRef } from \"react\";\n\nimport { PopoverContentProps } from \"@radix-ui/react-popover\";\nimport { TabsList, TabsTrigger, Tabs } from \"@radix-ui/react-tabs\";\nimport { cn } from \"@util/index\";\n\nimport { DirectionType, OrientationType } from \"../../types/commonTypes\";\nimport { HelperText } from \"../helperText\";\nimport { Label, LabelProps } from \"../label/Label\";\nimport { PopoverContent, PopoverRoot, PopoverTrigger } from \"../popover\";\n\nexport type RadioOptionsTypes = {\n value: any;\n label: any;\n disabled?: any;\n sublabel?: any;\n icon?: any;\n tooltip?: string;\n tooltipContentProps?: PopoverContentProps;\n};\n\ntype RadioTypes = {\n /** Required to enable selection and differentiate between different Radio instances. */\n name: string;\n disabled?: boolean;\n orientation?: OrientationType;\n design?: \"default\" | \"tabs\" | \"cards\" | \"bordered\";\n width?: \"default\" | \"full\" | \"none\";\n size?: \"default\" | \"lg\" | \"sm\" | \"xs\";\n options: RadioOptionsTypes[];\n onChange?: any;\n defaultValue?: any;\n value?: any;\n direction?: DirectionType;\n helperText?: any;\n labelProps?: LabelProps;\n label?: string;\n tabsContainerClassName?: string;\n forceHideHelperText?: boolean;\n containerClassNames?: {\n bordered?: string;\n tabs?: string;\n cards?: string;\n default?: string;\n };\n};\n\nexport const Radio = forwardRef<HTMLInputElement, RadioTypes>(\n (\n {\n design = \"default\",\n width = \"default\",\n size = \"default\",\n orientation = \"horizontal\",\n name,\n labelProps,\n tabsContainerClassName,\n forceHideHelperText = false,\n onChange,\n containerClassNames,\n ...props\n },\n ref,\n ) => {\n let activeTabStyle =\n \"hawa-inline-block hawa-w-full hawa-text-primary-foreground hawa-bg-primary hawa-active dark:hawa-bg-primary\";\n let inactiveTabStyle = `hawa-inline-block hawa-w-full hawa-transition-all hawa-bg-primary-foreground dark:hover:hawa-text-white\n ${props.disabled ? \"\" : \"hover:hawa-bg-muted\"}`;\n let orientationStyle = {\n horizontal: \"hawa-flex hawa-flex-row\",\n vertical: \"hawa-flex hawa-flex-col\",\n };\n\n let tabSizeStyle = {\n default: \"hawa-py-2 hawa-px-4 hawa-text-sm\",\n lg: \"hawa-py-2 hawa-px-4\",\n sm: \"hawa-p-1.5 hawa-text-xs\",\n xs: \"hawa-p-1 hawa-text-[10px]\",\n };\n let widthStyle = {\n none: \"\",\n default: \"hawa-max-w-fit\",\n full: \"hawa-w-full\",\n };\n const [parentDirection, setParentDirection] = React.useState<string | null>(null);\n const [selectedOption, setSelectedOption] = useState(props.defaultValue || props.value);\n const [openTooltip, setOpenTooltip] = useState<number | null>(null);\n\n const parentRef = useRef<HTMLDivElement>(null);\n\n useEffect(() => {\n const parentNode = parentRef.current?.parentNode as HTMLElement | null;\n if (parentNode) {\n const dir = window.getComputedStyle(parentNode).direction;\n setParentDirection(dir);\n }\n });\n\n const handleChange = (opt: RadioOptionsTypes) => {\n setSelectedOption(opt.value);\n if (onChange) {\n // use the more generic onChange prop\n onChange(opt.value); // You can pass the entire option or just the value\n } else {\n console.log(\"onChange was not provided\");\n }\n };\n\n const radio_option_tabs_styling = [\n \"hawa-w-full hawa-last hawa-flex hawa-flex-row hawa-items-center hawa-justify-center hawa-gap-2 \",\n !props.disabled && \"hawa-cursor-pointer\",\n orientation === \"horizontal\" &&\n parentDirection === \"ltr\" &&\n \"hawa-rounded-none first:hawa-rounded-l last:hawa-rounded-r\",\n orientation === \"horizontal\" &&\n parentDirection === \"rtl\" &&\n \"hawa-rounded-none first:hawa-rounded-r last:hawa-rounded-l\",\n orientation === \"vertical\" && \"hawa-rounded-none first:hawa-rounded-t last:hawa-rounded-b\",\n tabSizeStyle[size],\n ];\n\n switch (design) {\n case \"tabs\":\n return (\n <div className={cn(\"hawa-gap-2 hawa-flex hawa-flex-col\", containerClassNames?.tabs)}>\n {props.label && <Label {...labelProps}>{props.label}</Label>}\n <Tabs>\n <TabsList\n role=\"tablist\"\n ref={parentRef}\n className={cn(\n props.options && props.options?.length > 2\n ? \"hawa-flex-wrap xs:hawa-max-w-full xs:hawa-flex-nowrap\"\n : \"\",\n \"hawa-select-none hawa-whitespace-nowrap hawa-rounded hawa-border hawa-text-center hawa-font-medium hawa-h-[40px]\",\n orientationStyle[orientation],\n widthStyle[width],\n tabsContainerClassName,\n props.direction === \"rtl\" ? \"hawa-flex-row-reverse\" : \"\",\n )}\n >\n {props.options?.map((opt, o) => {\n return opt.tooltip ? (\n <PopoverRoot\n key={o}\n open={o === openTooltip}\n onOpenChange={(bool) => setOpenTooltip(bool ? o : null)}\n >\n <PopoverTrigger\n onMouseEnter={() => setOpenTooltip(o)}\n onMouseLeave={() => setOpenTooltip(null)}\n asChild\n >\n <TabsTrigger\n aria-current={selectedOption === opt.value ? \"page\" : undefined}\n value={opt.value}\n role=\"tab\"\n tabIndex={0}\n onClick={() => {\n if (props.disabled || opt.disabled) return;\n handleChange(opt);\n }}\n className={cn(\n ...radio_option_tabs_styling,\n selectedOption === opt.value ? activeTabStyle : inactiveTabStyle,\n )}\n >\n {opt.icon && opt.icon}\n {opt.label}\n </TabsTrigger>\n </PopoverTrigger>\n <PopoverContent {...opt.tooltipContentProps}>{opt.tooltip}</PopoverContent>\n </PopoverRoot>\n ) : (\n <TabsTrigger\n key={o}\n role=\"tab\"\n tabIndex={0}\n aria-current={selectedOption === opt.value ? \"page\" : undefined}\n onClick={() => {\n if (props.disabled || opt.disabled) return;\n handleChange(opt);\n }}\n className={cn(\n ...radio_option_tabs_styling,\n selectedOption === opt.value ? activeTabStyle : inactiveTabStyle,\n )}\n value={opt.value}\n >\n {opt.icon && opt.icon}\n {opt.label}\n </TabsTrigger>\n );\n })}\n </TabsList>\n </Tabs>\n {!forceHideHelperText && <HelperText helperText={props.helperText} />}\n </div>\n );\n case \"bordered\":\n return (\n <div\n className={cn(\n orientationStyle[orientation],\n \"hawa-gap-4\",\n containerClassNames?.bordered,\n )}\n >\n {props.options &&\n props.options.map((opt, i) => (\n <div key={i} className=\"hawa-w-full hawa-rounded hawa-border\">\n <div\n className={cn(\n \"radio-item radio-item-bordered hawa-flex hawa-items-center hawa-transition-all\",\n props.direction === \"rtl\"\n ? \"margin-left right-19px\"\n : \"margin-right left-23px\",\n )}\n key={i + 1}\n >\n <input\n disabled={opt.disabled}\n id={opt.value.toString()}\n type=\"radio\"\n value={opt.value}\n name={name}\n onChange={() => handleChange(opt)}\n />\n <label\n htmlFor={opt.value.toString()}\n className={cn(\n \"hawa-ml-2 hawa-w-full hawa-select-none hawa-p-4 hawa-pl-3 hawa-text-sm hawa-font-medium hawa-text-black dark:hawa-text-white\",\n opt.disabled ? \"hawa-opacity-50\" : \"hawa-cursor-pointer hawa-text-gray-900\",\n )}\n >\n {opt.label}\n </label>\n </div>\n </div>\n ))}\n </div>\n );\n case \"cards\":\n return (\n <ul\n className={cn(orientationStyle[orientation], \"hawa-gap-4\", containerClassNames?.cards)}\n >\n {props.options?.map((opt: any, o) => (\n <li key={o} onClick={() => handleChange(opt)}>\n <input\n type=\"radio\"\n id={opt.value.toString()}\n name={name}\n value={opt.value.toString()}\n className=\"hawa-peer hawa-hidden\"\n required\n disabled={opt.disabled}\n />\n <label\n htmlFor={opt.value.toString()}\n className={cn(\n \"hawa-inline-flex hawa-h-full hawa-w-full hawa-transition-all hawa-items-center hawa-justify-between hawa-rounded-lg hawa-border hawa-border-foreground/10 hawa-bg-background hawa-p-5 hawa-text-gray-500 peer-checked:hawa-border-primary peer-checked:hawa-text-primary dark:hawa-border-foreground/10 dark:hawa-bg-foreground/5 dark:hawa-text-gray-400 dark:peer-checked:hawa-text-primary\",\n opt.disabled\n ? \"hawa-opacity-50\"\n : \"hawa-cursor-pointer hover:hawa-bg-foreground/10 hover:hawa-text-gray-600 dark:hover:hawa-bg-foreground/20 dark:hover:hawa-text-gray-300\",\n )}\n >\n <div className=\"hawa-block hawa-h-full hawa-w-full\">\n <div className=\"hawa-w-full hawa-text-lg hawa-font-semibold\">{opt.label}</div>\n <div className=\"hawa-w-full\">{opt.sublabel}</div>\n </div>\n </label>\n </li>\n ))}\n </ul>\n );\n\n default:\n return (\n <div className={cn(\"hawa-flex hawa-flex-col hawa-gap-2\", containerClassNames?.default)}>\n {props.label && <Label {...labelProps}>{props.label}</Label>}\n <div className={cn(orientationStyle[orientation], \"hawa-gap-2\")}>\n {props.options &&\n props.options.map((opt, i) => (\n <div\n className={cn(\n \"radio-item radio-item-default hawa-flex hawa-items-center hawa-transition-all\",\n props.direction === \"rtl\" ? \"margin-left right-3px\" : \"margin-right left-3px\",\n )}\n key={i + 1}\n >\n <input\n // TODO: spread the usual radio props\n disabled={opt.disabled}\n id={opt.value.toString()}\n type=\"radio\"\n value={opt.value}\n name={name}\n onChange={() => handleChange(opt)}\n />\n <label\n htmlFor={opt.value.toString()}\n className={cn(\n \"hawa-text-sm hawa-font-medium dark:hawa-text-white\",\n opt.disabled\n ? \"hawa-text-gray-400\"\n : \"hawa-cursor-pointer hawa-text-gray-900\",\n )}\n >\n {opt.label}\n </label>\n </div>\n ))}\n </div>\n <HelperText helperText={props.helperText} />\n </div>\n );\n }\n },\n);\n","import { clsx, type ClassValue } from \"clsx\";\nimport { twMerge } from \"tailwind-merge\";\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs));\n}\n\ntype Palette = {\n name: string;\n colors: {\n [key: number]: string;\n };\n};\ntype Rgb = {\n r: number;\n g: number;\n b: number;\n};\nfunction hexToRgb(hex: string): Rgb | null {\n const sanitizedHex = hex.replaceAll(\"##\", \"#\");\n const colorParts = /^#?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})$/i.exec(sanitizedHex);\n\n if (!colorParts) {\n return null;\n }\n\n const [, r, g, b] = colorParts;\n\n return {\n r: parseInt(r, 16),\n g: parseInt(g, 16),\n b: parseInt(b, 16),\n } as Rgb;\n}\n\nfunction rgbToHex(r: number, g: number, b: number): string {\n const toHex = (c: number) => `0${c.toString(16)}`.slice(-2);\n return `#${toHex(r)}${toHex(g)}${toHex(b)}`;\n}\n\nexport function getTextColor(color: string): \"#FFF\" | \"#333\" {\n const rgbColor = hexToRgb(color);\n\n if (!rgbColor) {\n return \"#333\";\n }\n\n const { r, g, b } = rgbColor;\n const luma = 0.2126 * r + 0.7152 * g + 0.0722 * b;\n\n return luma < 120 ? \"#FFF\" : \"#333\";\n}\n\nfunction lighten(hex: string, intensity: number): string {\n const color = hexToRgb(`#${hex}`);\n\n if (!color) {\n return \"\";\n }\n\n const r = Math.round(color.r + (255 - color.r) * intensity);\n const g = Math.round(color.g + (255 - color.g) * intensity);\n const b = Math.round(color.b + (255 - color.b) * intensity);\n\n return rgbToHex(r, g, b);\n}\n\nfunction darken(hex: string, intensity: number): string {\n const color = hexToRgb(hex);\n\n if (!color) {\n return \"\";\n }\n\n const r = Math.round(color.r * intensity);\n const g = Math.round(color.g * intensity);\n const b = Math.round(color.b * intensity);\n\n return rgbToHex(r, g, b);\n}\nconst parseColor = (color: any) => {\n if (color.startsWith(\"#\")) {\n // Convert hex to RGB\n let r = parseInt(color.slice(1, 3), 16);\n let g = parseInt(color.slice(3, 5), 16);\n let b = parseInt(color.slice(5, 7), 16);\n return [r, g, b];\n } else if (color.startsWith(\"rgb\")) {\n // Extract RGB values from rgb() format\n return color.match(/\\d+/g).map(Number);\n }\n // Default to white if format is unrecognized\n return [255, 255, 255];\n};\nexport const calculateLuminance = (color: any) => {\n const [r, g, b] = parseColor(color)?.map((c: any) => {\n c /= 255;\n return c <= 0.03928 ? c / 12.92 : ((c + 0.055) / 1.055) ** 2.4;\n });\n return 0.2126 * r + 0.7152 * g + 0.0722 * b;\n};\n\nfunction getPallette(baseColor: string): Palette {\n const name = baseColor;\n\n const response: Palette = {\n name,\n colors: {\n 500: `#${baseColor}`.replace(\"##\", \"#\"),\n },\n };\n\n const intensityMap: {\n [key: number]: number;\n } = {\n 50: 0.95,\n 100: 0.9,\n 200: 0.75,\n 300: 0.6,\n 400: 0.3,\n 600: 0.9,\n 700: 0.75,\n 800: 0.6,\n 900: 0.49,\n };\n\n [50, 100, 200, 300, 400].forEach((level) => {\n response.colors[level] = lighten(baseColor, intensityMap[level]);\n });\n [600, 700, 800, 900].forEach((level) => {\n response.colors[level] = darken(baseColor, intensityMap[level]);\n });\n\n return response as Palette;\n}\n\nexport { getPallette };\n\n// const hexToRgb = (hex) => {\n// let d = hex?.split(\"#\")[1];\n// var aRgbHex = d?.match(/.{1,2}/g);\n// var aRgb = [\n// parseInt(aRgbHex[0], 16),\n// parseInt(aRgbHex[1], 16),\n// parseInt(aRgbHex[2], 16)\n// ];\n// return aRgb;\n// };\n// const getTextColor = (backColor) => {\n// let rgbArray = hexToRgb(backColor);\n// if (rgbArray[0] * 0.299 + rgbArray[1] * 0.587 + rgbArray[2] * 0.114 > 186) {\n// return \"#000000\";\n// } else {\n// return \"#ffffff\";\n// }\n// };\n// const replaceAt = function (string, index, replacement) {\n// // if (replacement == \"\" || replacement == \" \") {\n// // return (\n// // string.substring(0, index) +\n// // string.substring(index + replacement.length )\n// // );\n// // }\n// const replaced = string.substring(0, index) + replacement + string.substring(index + 1)\n// return replaced\n// };\n\n// export { hexToRgb, getTextColor, replaceAt };\n","import React from \"react\";\n\nimport { cn } from \"@util/index\";\n\nexport const HelperText = ({ helperText }: { helperText?: string | React.ReactNode }) => (\n <p\n className={cn(\n \"hawa-my-0 hawa-text-start hawa-text-helper-color hawa-transition-all hawa-text-xs\",\n helperText ? \"hawa-opacity-100 hawa-h-4\" : \"hawa-h-0 hawa-opacity-0\",\n )}\n >\n {helperText}\n </p>\n);\n","import * as React from \"react\";\n\nimport { cn } from \"@util/index\";\n\nimport { PositionType } from \"@_types/commonTypes\";\n\nimport { Tooltip } from \"../tooltip\";\n\nexport type LabelProps = {\n hint?: React.ReactNode;\n hintSide?: PositionType;\n htmlFor?: string;\n required?: boolean;\n};\n\nconst Label = React.forwardRef<\n HTMLLabelElement,\n React.LabelHTMLAttributes<HTMLLabelElement> & LabelProps\n>(({ className, hint, hintSide, required, children, ...props }, ref) => (\n <div className=\"hawa-flex hawa-flex-row hawa-items-center hawa-gap-1 hawa-transition-all\">\n <label\n ref={ref}\n className={cn(\n \"hawa-text-sm hawa-font-medium hawa-leading-none peer-disabled:hawa-cursor-not-allowed peer-disabled:hawa-opacity-70\",\n className,\n )}\n {...props}\n >\n {children}\n {required && <span className=\"hawa-mx-0.5 hawa-text-red-500\">*</span>}\n </label>\n {hint && (\n <Tooltip\n content={hint}\n side={hintSide}\n triggerProps={{\n tabIndex: -1,\n onClick: (event) => event.preventDefault(),\n }}\n >\n <div>\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n className=\"hawa-h-[14px] hawa-w-[14px] hawa-cursor-help\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n >\n <circle cx=\"12\" cy=\"12\" r=\"10\" />\n <path d=\"M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3\" />\n <path d=\"M12 17h.01\" />\n </svg>\n </div>\n </Tooltip>\n )}\n </div>\n));\n\nLabel.displayName = \"Label\";\n\nexport { Label };\n","import React from \"react\";\n\nimport * as TooltipPrimitive from \"@radix-ui/react-tooltip\";\nimport { cn } from \"@util/index\";\n\nimport { PositionType } from \"@_types/commonTypes\";\n\nconst TooltipContent = React.forwardRef<\n React.ElementRef<typeof TooltipPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof TooltipPrimitive.Content> & {\n size?: \"default\" | \"small\" | \"large\";\n }\n>(({ className, sideOffset = 4, size = \"default\", ...props }, ref) => (\n <TooltipPrimitive.Content\n ref={ref}\n sideOffset={sideOffset}\n className={cn(\n \"hawa-z-50 hawa-overflow-hidden hawa-rounded-md hawa-border hawa-bg-popover hawa-px-3 hawa-py-1.5 hawa-text-sm hawa-text-popover-foreground hawa-shadow-md hawa-animate-in hawa-fade-in-0 hawa-zoom-in-95 data-[state=closed]:hawa-animate-out data-[state=closed]:hawa-fade-out-0 data-[state=closed]:hawa-zoom-out-95 data-[side=bottom]:hawa-slide-in-from-top-2 data-[side=left]:hawa-slide-in-from-right-2 data-[side=right]:hawa-slide-in-from-left-2 data-[side=top]:hawa-slide-in-from-bottom-2\",\n {\n \"hawa-text-xs\": size === \"small\",\n \"hawa-text-xl\": size === \"large\",\n },\n className,\n )}\n {...props}\n />\n));\nTooltipContent.displayName = TooltipPrimitive.Content.displayName;\n\nconst TooltipArrow = React.forwardRef<\n React.ElementRef<typeof TooltipPrimitive.Arrow>,\n React.ComponentPropsWithoutRef<typeof TooltipPrimitive.Arrow>\n>(({ className, ...props }, ref) => (\n <TooltipPrimitive.Arrow ref={ref} className={cn(className)} {...props} />\n));\nTooltipArrow.displayName = TooltipPrimitive.Arrow.displayName;\n\ntype TooltipTypes = {\n /** Controls the open state of the tooltip. */\n open?: any;\n /** Specifies the side where the tooltip will appear. */\n side?: PositionType;\n /** Content to be displayed within the tooltip. */\n content?: any;\n /** Elements to which the tooltip is anchored. */\n children?: any;\n /** Sets the default open state of the tooltip. */\n defaultOpen?: any;\n /** Event handler for open state changes. */\n onOpenChange?: any;\n /** Duration of the delay before the tooltip appears. */\n delayDuration?: any;\n /** Size of the tooltip. */\n size?: \"default\" | \"small\" | \"large\";\n /** Disables the tooltip. */\n disabled?: boolean;\n triggerProps?: TooltipPrimitive.TooltipTriggerProps;\n contentProps?: TooltipPrimitive.TooltipContentProps;\n providerProps?: TooltipPrimitive.TooltipProps;\n};\n\nconst Tooltip: React.FunctionComponent<TooltipTypes> = ({\n side,\n size,\n open,\n content,\n children,\n disabled,\n defaultOpen,\n onOpenChange,\n triggerProps,\n contentProps,\n providerProps,\n delayDuration = 300,\n ...props\n}) => {\n return (\n <TooltipPrimitive.TooltipProvider delayDuration={delayDuration} {...providerProps}>\n <TooltipPrimitive.Root\n open={!disabled && open}\n defaultOpen={defaultOpen}\n onOpenChange={onOpenChange}\n {...props}\n >\n <TooltipPrimitive.Trigger {...triggerProps}>{children}</TooltipPrimitive.Trigger>\n <TooltipContent\n size={size}\n side={side}\n align=\"center\"\n {...contentProps}\n style={{\n ...contentProps?.style,\n maxWidth: \"var(--radix-tooltip-content-available-width)\",\n maxHeight: \"var(--radix-tooltip-content-available-height)\",\n }}\n >\n {content}\n </TooltipContent>\n </TooltipPrimitive.Root>\n </TooltipPrimitive.TooltipProvider>\n );\n};\n\nexport { Tooltip };\n","import * as React from \"react\";\n\nimport * as PopoverPrimitive from \"@radix-ui/react-popover\";\nimport { cn } from \"@util/index\";\n\nimport { PositionType } from \"@_types/commonTypes\";\n\nconst PopoverContent = React.forwardRef<\n React.ElementRef<typeof PopoverPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof PopoverPrimitive.Content> & {\n container?: HTMLElement | null;\n }\n>(({ className, align = \"center\", sideOffset = 4, container, ...props }, ref) => (\n <PopoverPrimitive.Portal container={container}>\n <PopoverPrimitive.Content\n ref={ref}\n align={align}\n sideOffset={sideOffset}\n className={cn(\n \"dark:dark-shadow hawa-z-50 hawa-rounded hawa-border hawa-bg-popover hawa-text-popover-foreground hawa-shadow-md hawa-outline-none data-[state=open]:hawa-animate-in data-[state=closed]:hawa-animate-out data-[state=closed]:hawa-fade-out-0 data-[state=open]:hawa-fade-in-0 data-[state=closed]:hawa-zoom-out-95 data-[state=open]:hawa-zoom-in-95 data-[side=bottom]:hawa-slide-in-from-top-2 data-[side=left]:hawa-slide-in-from-right-2 data-[side=right]:hawa-slide-in-from-left-2 data-[side=top]:hawa-slide-in-from-bottom-2\",\n className,\n )}\n {...props}\n />\n </PopoverPrimitive.Portal>\n));\nPopoverContent.displayName = PopoverPrimitive.Content.displayName;\n\ninterface PopoverProps {\n side?: PositionType;\n align?: \"start\" | \"center\" | \"end\";\n trigger?: React.ReactNode;\n children: React.ReactNode;\n className?: string;\n sideOffset?: number;\n disableTrigger?: any;\n width?: \"trigger\" | \"default\";\n open?: boolean;\n contentProps?: PopoverPrimitive.PopoverContentProps;\n triggerProps?: PopoverPrimitive.PopoverTriggerProps;\n}\n\ntype HawaPopoverTypes = PopoverProps & React.ComponentProps<typeof PopoverPrimitive.Root>;\n\nconst Popover: React.FC<HawaPopoverTypes> = ({\n trigger,\n children,\n className,\n align = \"center\",\n side,\n sideOffset = 4,\n open,\n width = \"default\",\n disableTrigger,\n contentProps,\n triggerProps,\n ...props\n}) => {\n let widthStyles = {\n trigger: \"var(--radix-popover-trigger-width)\",\n default: \"auto\",\n };\n\n return (\n <PopoverPrimitive.Root open={open} {...props}>\n <PopoverPrimitive.Trigger className=\"hawa-w-full\" disabled={disableTrigger} {...triggerProps}>\n {trigger}\n </PopoverPrimitive.Trigger>\n <PopoverContent\n side={side}\n className={className}\n align={align}\n sideOffset={sideOffset}\n style={{\n width: widthStyles[width],\n maxWidth: \"var(--radix-popover-content-available-width)\",\n maxHeight: \"var(--radix-popover-content-available-height)\",\n }}\n {...contentProps}\n >\n {children}\n </PopoverContent>\n </PopoverPrimitive.Root>\n );\n};\n\nconst PopoverTrigger = PopoverPrimitive.Trigger;\nconst PopoverPortal = PopoverPrimitive.Portal;\nconst PopoverRoot = PopoverPrimitive.Root;\n\nexport { Popover, PopoverPortal, PopoverRoot, PopoverContent, PopoverTrigger };\n"],"mappings":"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","names":["import_react","React","React","import_react","React","React","React","_a"]}