@sikka/hawa 0.37.2-next → 0.38.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 (139) hide show
  1. package/dist/{Radio-y9uhxitu.d.ts → Radio-lgoClQrv.d.ts} +2 -2
  2. package/dist/{Radio-BCD7k628.d.mts → Radio-uQ7DtzcI.d.mts} +2 -2
  3. package/dist/alert/index.js.map +1 -1
  4. package/dist/alert/index.mjs.map +1 -1
  5. package/dist/appLayout/index.js.map +1 -1
  6. package/dist/appLayout/index.mjs.map +1 -1
  7. package/dist/backToTop/index.js.map +1 -1
  8. package/dist/backToTop/index.mjs.map +1 -1
  9. package/dist/blocks/auth/index.d.mts +1 -0
  10. package/dist/blocks/auth/index.d.ts +1 -0
  11. package/dist/blocks/auth/index.js +207 -123
  12. package/dist/blocks/auth/index.mjs +204 -101
  13. package/dist/blocks/feedback/index.js +4 -40
  14. package/dist/blocks/feedback/index.mjs +5 -5
  15. package/dist/blocks/index.d.mts +2 -1
  16. package/dist/blocks/index.d.ts +2 -1
  17. package/dist/blocks/index.js +457 -400
  18. package/dist/blocks/index.mjs +10 -8
  19. package/dist/blocks/misc/index.js +5 -32
  20. package/dist/blocks/misc/index.mjs +5 -5
  21. package/dist/blocks/pricing/index.js +4 -22
  22. package/dist/blocks/pricing/index.mjs +4 -4
  23. package/dist/button/index.js.map +1 -1
  24. package/dist/button/index.mjs.map +1 -1
  25. package/dist/calendar/index.js.map +1 -1
  26. package/dist/calendar/index.mjs.map +1 -1
  27. package/dist/checkbox/index.d.mts +1 -1
  28. package/dist/checkbox/index.d.ts +1 -1
  29. package/dist/checkbox/index.js.map +1 -1
  30. package/dist/checkbox/index.mjs.map +1 -1
  31. package/dist/{chunk-BPHQFAWM.mjs → chunk-4EZL2A64.mjs} +3 -11
  32. package/dist/{chunk-DS3AACQJ.mjs → chunk-E6C3LDHD.mjs} +1 -1
  33. package/dist/{chunk-ODOCZAWC.mjs → chunk-E77TUADR.mjs} +1 -1
  34. package/dist/{chunk-QXH7ZDMN.mjs → chunk-IA5FLRFL.mjs} +3 -11
  35. package/dist/{chunk-ZTUWU652.mjs → chunk-JJMRBD3S.mjs} +3 -3
  36. package/dist/{chunk-RNFJAEEU.mjs → chunk-LDJD5ITW.mjs} +1 -0
  37. package/dist/{chunk-QYWOI3DO.mjs → chunk-MHSSZ6XE.mjs} +204 -144
  38. package/dist/{chunk-BTDR3VAG.mjs → chunk-Q3HJI7ZE.mjs} +4 -21
  39. package/dist/{chunk-MDHDHEPZ.mjs → chunk-TMUQCNLO.mjs} +3 -11
  40. package/dist/{chunk-PXGL7ZXQ.mjs → chunk-V4SUYEVH.mjs} +1 -0
  41. package/dist/codeBlock/index.js.map +1 -1
  42. package/dist/codeBlock/index.mjs.map +1 -1
  43. package/dist/colorPicker/index.d.mts +1 -1
  44. package/dist/colorPicker/index.d.ts +1 -1
  45. package/dist/colorPicker/index.js +35 -31
  46. package/dist/colorPicker/index.js.map +1 -1
  47. package/dist/colorPicker/index.mjs +33 -29
  48. package/dist/colorPicker/index.mjs.map +1 -1
  49. package/dist/combobox/index.d.mts +1 -1
  50. package/dist/combobox/index.d.ts +1 -1
  51. package/dist/combobox/index.js +52 -48
  52. package/dist/combobox/index.js.map +1 -1
  53. package/dist/combobox/index.mjs +52 -48
  54. package/dist/combobox/index.mjs.map +1 -1
  55. package/dist/dataTable/index.js +1 -10
  56. package/dist/dataTable/index.js.map +1 -1
  57. package/dist/dataTable/index.mjs +1 -10
  58. package/dist/dataTable/index.mjs.map +1 -1
  59. package/dist/datePicker/index.js.map +1 -1
  60. package/dist/datePicker/index.mjs.map +1 -1
  61. package/dist/docsLayout/index.js.map +1 -1
  62. package/dist/docsLayout/index.mjs.map +1 -1
  63. package/dist/elements/index.d.mts +42 -21
  64. package/dist/elements/index.d.ts +42 -21
  65. package/dist/elements/index.js +335 -290
  66. package/dist/elements/index.mjs +14 -23
  67. package/dist/fileDropzone/index.js.map +1 -1
  68. package/dist/fileDropzone/index.mjs.map +1 -1
  69. package/dist/index.css +29 -3
  70. package/dist/index.d.mts +44 -22
  71. package/dist/index.d.ts +44 -22
  72. package/dist/index.js +764 -717
  73. package/dist/index.mjs +287 -244
  74. package/dist/input/index.d.mts +1 -1
  75. package/dist/input/index.d.ts +1 -1
  76. package/dist/input/index.js +46 -42
  77. package/dist/input/index.js.map +1 -1
  78. package/dist/input/index.mjs +45 -41
  79. package/dist/input/index.mjs.map +1 -1
  80. package/dist/interfaceSettings/index.js +64 -69
  81. package/dist/interfaceSettings/index.js.map +1 -1
  82. package/dist/interfaceSettings/index.mjs +57 -62
  83. package/dist/interfaceSettings/index.mjs.map +1 -1
  84. package/dist/layout/index.d.mts +1 -1
  85. package/dist/layout/index.d.ts +1 -1
  86. package/dist/layout/index.mjs +2 -2
  87. package/dist/passwordInput/index.js +70 -66
  88. package/dist/passwordInput/index.js.map +1 -1
  89. package/dist/passwordInput/index.mjs +59 -55
  90. package/dist/passwordInput/index.mjs.map +1 -1
  91. package/dist/phoneInput/index.js +50 -55
  92. package/dist/phoneInput/index.js.map +1 -1
  93. package/dist/phoneInput/index.mjs +47 -52
  94. package/dist/phoneInput/index.mjs.map +1 -1
  95. package/dist/pinInput/index.d.mts +37 -16
  96. package/dist/pinInput/index.d.ts +37 -16
  97. package/dist/pinInput/index.js +208 -78
  98. package/dist/pinInput/index.js.map +1 -1
  99. package/dist/pinInput/index.mjs +203 -77
  100. package/dist/pinInput/index.mjs.map +1 -1
  101. package/dist/radio/index.d.mts +1 -1
  102. package/dist/radio/index.d.ts +1 -1
  103. package/dist/radio/index.js +55 -60
  104. package/dist/radio/index.js.map +1 -1
  105. package/dist/radio/index.mjs +50 -55
  106. package/dist/radio/index.mjs.map +1 -1
  107. package/dist/scrollArea/index.js +2 -2
  108. package/dist/scrollArea/index.js.map +1 -1
  109. package/dist/scrollArea/index.mjs +2 -2
  110. package/dist/scrollArea/index.mjs.map +1 -1
  111. package/dist/select/index.d.mts +1 -1
  112. package/dist/select/index.d.ts +1 -1
  113. package/dist/select/index.js +43 -39
  114. package/dist/select/index.js.map +1 -1
  115. package/dist/select/index.mjs +43 -39
  116. package/dist/select/index.mjs.map +1 -1
  117. package/dist/signature/index.d.mts +1 -1
  118. package/dist/signature/index.d.ts +1 -1
  119. package/dist/signature/index.js.map +1 -1
  120. package/dist/signature/index.mjs.map +1 -1
  121. package/dist/sortButton/index.js.map +1 -1
  122. package/dist/sortButton/index.mjs.map +1 -1
  123. package/dist/splitButton/index.js.map +1 -1
  124. package/dist/splitButton/index.mjs.map +1 -1
  125. package/dist/stats/index.d.mts +1 -1
  126. package/dist/stats/index.d.ts +1 -1
  127. package/dist/stats/index.js.map +1 -1
  128. package/dist/stats/index.mjs.map +1 -1
  129. package/dist/tabs/index.js +2 -2
  130. package/dist/tabs/index.js.map +1 -1
  131. package/dist/tabs/index.mjs +2 -2
  132. package/dist/tabs/index.mjs.map +1 -1
  133. package/dist/textarea/index.d.mts +1 -1
  134. package/dist/textarea/index.d.ts +1 -1
  135. package/dist/textarea/index.js +34 -30
  136. package/dist/textarea/index.js.map +1 -1
  137. package/dist/textarea/index.mjs +34 -30
  138. package/dist/textarea/index.mjs.map +1 -1
  139. package/package.json +2 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["../../elements/interfaceSettings/InterfaceSettings.tsx","../../util/index.ts","../../elements/radio/Radio.tsx","../../elements/label/Label.tsx","../../elements/tooltip/Tooltip.tsx","../../elements/popover/Popover.tsx"],"sourcesContent":["import React, { FC, useState } from \"react\";\n\nimport { cn } from \"@util/index\";\n\nimport { OrientationType } from \"@_types/commonTypes\";\n\nimport { Radio } from \"../radio/Radio\";\n\ntype TypographyTypes = {\n /** Function to handle language change. */\n handleLanguage?: (e: any) => void;\n /** Current selected language. */\n currentLanguage?: string;\n /** Function to handle theme color mode change. */\n handleColorMode?: (e: any) => void;\n /** Current selected theme color mode. */\n currentColorMode?: \"light\" | \"dark\";\n orientation?: OrientationType;\n width?: \"default\" | \"full\";\n};\nexport const InterfaceSettings: FC<TypographyTypes> = ({\n orientation = \"horizontal\",\n width = \"default\",\n handleColorMode,\n handleLanguage,\n ...props\n}) => {\n const [color, setColor] = useState(props.currentColorMode);\n const [language, setLanguage] = useState(props.currentLanguage);\n let orientationStyle = {\n horizontal: \"hawa-flex hawa-flex-row hawa-justify-between\",\n vertical: \"hawa-flex hawa-flex-col hawa-items-center hawa-gap-2\"\n };\n return (\n <div className={cn(orientationStyle[orientation])}>\n <Radio\n name=\"language\"\n width={width}\n defaultValue={language}\n onChange={(e: any) => {\n if (handleLanguage) {\n handleLanguage(e);\n }\n setLanguage(e);\n }}\n design=\"tabs\"\n options={[\n { value: \"ar\", label: \"عربي\" },\n { value: \"en\", label: \"English\" }\n ]}\n />\n <Radio\n name=\"theme\"\n width={width}\n defaultValue={color}\n onChange={(e: any) => {\n if (handleColorMode) {\n handleColorMode(e);\n }\n setColor(e);\n }}\n design=\"tabs\"\n options={[\n {\n value: \"light\",\n label: (\n <svg\n width=\"15\"\n height=\"15\"\n viewBox=\"0 0 15 15\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n className=\"hawa-h-[1.2rem] hawa-w-[1.2rem] hawa-rotate-0 hawa-scale-100 hawa-transition-all dark:hawa--rotate-90\"\n >\n <path\n d=\"M7.5 0C7.77614 0 8 0.223858 8 0.5V2.5C8 2.77614 7.77614 3 7.5 3C7.22386 3 7 2.77614 7 2.5V0.5C7 0.223858 7.22386 0 7.5 0ZM2.1967 2.1967C2.39196 2.00144 2.70854 2.00144 2.90381 2.1967L4.31802 3.61091C4.51328 3.80617 4.51328 4.12276 4.31802 4.31802C4.12276 4.51328 3.80617 4.51328 3.61091 4.31802L2.1967 2.90381C2.00144 2.70854 2.00144 2.39196 2.1967 2.1967ZM0.5 7C0.223858 7 0 7.22386 0 7.5C0 7.77614 0.223858 8 0.5 8H2.5C2.77614 8 3 7.77614 3 7.5C3 7.22386 2.77614 7 2.5 7H0.5ZM2.1967 12.8033C2.00144 12.608 2.00144 12.2915 2.1967 12.0962L3.61091 10.682C3.80617 10.4867 4.12276 10.4867 4.31802 10.682C4.51328 10.8772 4.51328 11.1938 4.31802 11.3891L2.90381 12.8033C2.70854 12.9986 2.39196 12.9986 2.1967 12.8033ZM12.5 7C12.2239 7 12 7.22386 12 7.5C12 7.77614 12.2239 8 12.5 8H14.5C14.7761 8 15 7.77614 15 7.5C15 7.22386 14.7761 7 14.5 7H12.5ZM10.682 4.31802C10.4867 4.12276 10.4867 3.80617 10.682 3.61091L12.0962 2.1967C12.2915 2.00144 12.608 2.00144 12.8033 2.1967C12.9986 2.39196 12.9986 2.70854 12.8033 2.90381L11.3891 4.31802C11.1938 4.51328 10.8772 4.51328 10.682 4.31802ZM8 12.5C8 12.2239 7.77614 12 7.5 12C7.22386 12 7 12.2239 7 12.5V14.5C7 14.7761 7.22386 15 7.5 15C7.77614 15 8 14.7761 8 14.5V12.5ZM10.682 10.682C10.8772 10.4867 11.1938 10.4867 11.3891 10.682L12.8033 12.0962C12.9986 12.2915 12.9986 12.608 12.8033 12.8033C12.608 12.9986 12.2915 12.9986 12.0962 12.8033L10.682 11.3891C10.4867 11.1938 10.4867 10.8772 10.682 10.682ZM5.5 7.5C5.5 6.39543 6.39543 5.5 7.5 5.5C8.60457 5.5 9.5 6.39543 9.5 7.5C9.5 8.60457 8.60457 9.5 7.5 9.5C6.39543 9.5 5.5 8.60457 5.5 7.5ZM7.5 4.5C5.84315 4.5 4.5 5.84315 4.5 7.5C4.5 9.15685 5.84315 10.5 7.5 10.5C9.15685 10.5 10.5 9.15685 10.5 7.5C10.5 5.84315 9.15685 4.5 7.5 4.5Z\"\n fill=\"currentColor\"\n ></path>\n </svg>\n )\n },\n {\n value: \"dark\",\n label: (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n className=\"hawa-h-[1.2rem] hawa-w-[1.2rem] hawa-transition-all dark:hawa-rotate-0 dark:hawa-scale-100\"\n >\n <path d=\"M12 3a6 6 0 0 0 9 9 9 9 0 1 1-9-9Z\"></path>\n </svg>\n )\n }\n ]}\n />\n </div>\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, { useState, FC, useRef, useEffect, forwardRef } from \"react\";\n\nimport { PopoverContentProps } from \"@radix-ui/react-popover\";\nimport { cn } from \"@util/index\";\n\nimport { DirectionType, OrientationType } from \"../../types/commonTypes\";\nimport { Label, LabelProps } from \"../label/Label\";\nimport { PopoverContent, PopoverRoot, PopoverTrigger } from \"../popover\";\nimport { Tooltip } from \"../tooltip\";\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?: string;\n labelProps?: LabelProps;\n label?: string;\n tabsContainerClassName?: string;\n forceHideHelperText?: boolean;\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 ...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<HTMLUListElement>(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 className=\"hawa-gap-2 hawa-flex hawa-flex-col\">\n {props.label && <Label {...labelProps}>{props.label}</Label>}\n\n <ul\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 )}\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 <li\n aria-current=\"page\"\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 </li>\n </PopoverTrigger>\n <PopoverContent {...opt.tooltipContentProps}>\n {opt.tooltip}\n </PopoverContent>\n </PopoverRoot>\n ) : (\n <li\n key={o}\n aria-current=\"page\"\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 </li>\n );\n })}\n </ul>\n {!forceHideHelperText && (\n <p\n className={cn(\n \"hawa-my-0 hawa-text-start hawa-text-xs hawa-text-helper-color hawa-transition-all\",\n props.helperText\n ? \"hawa-h-4 hawa-opacity-100\"\n : \"hawa-h-0 hawa-opacity-0\",\n )}\n >\n {props.helperText}\n </p>\n )}\n </div>\n );\n case \"bordered\":\n return (\n <div className={cn(orientationStyle[orientation], \"hawa-gap-4\")}>\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 className={cn(orientationStyle[orientation], \"hawa-gap-4\")}>\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 className=\"hawa-flex hawa-flex-col hawa-gap-2\">\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 <p\n className={cn(\n \"hawa-my-0 hawa-text-start hawa-text-xs hawa-text-helper-color hawa-transition-all\",\n props.helperText\n ? \"hawa-h-4 hawa-opacity-100\"\n : \"hawa-h-0 hawa-opacity-0\",\n )}\n >\n {props.helperText}\n </p>\n </div>\n );\n }\n },\n);\n","import * as React from \"react\";\n\nimport { PositionType } from \"@_types/commonTypes\";\n\nimport { cn } from \"@util/index\";\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.TooltipProviderProps;\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":["React","useState","React","forwardRef","React","React","forwardRef","React","_a","useState","React"]}
1
+ {"version":3,"sources":["../../elements/interfaceSettings/InterfaceSettings.tsx","../../util/index.ts","../../elements/radio/Radio.tsx","../../elements/helperText/HelperText.tsx","../../elements/label/Label.tsx","../../elements/tooltip/Tooltip.tsx","../../elements/popover/Popover.tsx"],"sourcesContent":["import React, { FC, useState } from \"react\";\n\nimport { cn } from \"@util/index\";\n\nimport { OrientationType } from \"@_types/commonTypes\";\n\nimport { Radio } from \"../radio/Radio\";\n\ntype TypographyTypes = {\n /** Function to handle language change. */\n handleLanguage?: (e: any) => void;\n /** Current selected language. */\n currentLanguage?: string;\n /** Function to handle theme color mode change. */\n handleColorMode?: (e: any) => void;\n /** Current selected theme color mode. */\n currentColorMode?: \"light\" | \"dark\";\n orientation?: OrientationType;\n width?: \"default\" | \"full\";\n};\nexport const InterfaceSettings: FC<TypographyTypes> = ({\n orientation = \"horizontal\",\n width = \"default\",\n handleColorMode,\n handleLanguage,\n ...props\n}) => {\n const [color, setColor] = useState(props.currentColorMode);\n const [language, setLanguage] = useState(props.currentLanguage);\n let orientationStyle = {\n horizontal: \"hawa-flex hawa-flex-row hawa-justify-between\",\n vertical: \"hawa-flex hawa-flex-col hawa-items-center hawa-gap-2\"\n };\n return (\n <div className={cn(orientationStyle[orientation])}>\n <Radio\n name=\"language\"\n width={width}\n defaultValue={language}\n onChange={(e: any) => {\n if (handleLanguage) {\n handleLanguage(e);\n }\n setLanguage(e);\n }}\n design=\"tabs\"\n options={[\n { value: \"ar\", label: \"عربي\" },\n { value: \"en\", label: \"English\" }\n ]}\n />\n <Radio\n name=\"theme\"\n width={width}\n defaultValue={color}\n onChange={(e: any) => {\n if (handleColorMode) {\n handleColorMode(e);\n }\n setColor(e);\n }}\n design=\"tabs\"\n options={[\n {\n value: \"light\",\n label: (\n <svg\n width=\"15\"\n height=\"15\"\n viewBox=\"0 0 15 15\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n className=\"hawa-h-[1.2rem] hawa-w-[1.2rem] hawa-rotate-0 hawa-scale-100 hawa-transition-all dark:hawa--rotate-90\"\n >\n <path\n d=\"M7.5 0C7.77614 0 8 0.223858 8 0.5V2.5C8 2.77614 7.77614 3 7.5 3C7.22386 3 7 2.77614 7 2.5V0.5C7 0.223858 7.22386 0 7.5 0ZM2.1967 2.1967C2.39196 2.00144 2.70854 2.00144 2.90381 2.1967L4.31802 3.61091C4.51328 3.80617 4.51328 4.12276 4.31802 4.31802C4.12276 4.51328 3.80617 4.51328 3.61091 4.31802L2.1967 2.90381C2.00144 2.70854 2.00144 2.39196 2.1967 2.1967ZM0.5 7C0.223858 7 0 7.22386 0 7.5C0 7.77614 0.223858 8 0.5 8H2.5C2.77614 8 3 7.77614 3 7.5C3 7.22386 2.77614 7 2.5 7H0.5ZM2.1967 12.8033C2.00144 12.608 2.00144 12.2915 2.1967 12.0962L3.61091 10.682C3.80617 10.4867 4.12276 10.4867 4.31802 10.682C4.51328 10.8772 4.51328 11.1938 4.31802 11.3891L2.90381 12.8033C2.70854 12.9986 2.39196 12.9986 2.1967 12.8033ZM12.5 7C12.2239 7 12 7.22386 12 7.5C12 7.77614 12.2239 8 12.5 8H14.5C14.7761 8 15 7.77614 15 7.5C15 7.22386 14.7761 7 14.5 7H12.5ZM10.682 4.31802C10.4867 4.12276 10.4867 3.80617 10.682 3.61091L12.0962 2.1967C12.2915 2.00144 12.608 2.00144 12.8033 2.1967C12.9986 2.39196 12.9986 2.70854 12.8033 2.90381L11.3891 4.31802C11.1938 4.51328 10.8772 4.51328 10.682 4.31802ZM8 12.5C8 12.2239 7.77614 12 7.5 12C7.22386 12 7 12.2239 7 12.5V14.5C7 14.7761 7.22386 15 7.5 15C7.77614 15 8 14.7761 8 14.5V12.5ZM10.682 10.682C10.8772 10.4867 11.1938 10.4867 11.3891 10.682L12.8033 12.0962C12.9986 12.2915 12.9986 12.608 12.8033 12.8033C12.608 12.9986 12.2915 12.9986 12.0962 12.8033L10.682 11.3891C10.4867 11.1938 10.4867 10.8772 10.682 10.682ZM5.5 7.5C5.5 6.39543 6.39543 5.5 7.5 5.5C8.60457 5.5 9.5 6.39543 9.5 7.5C9.5 8.60457 8.60457 9.5 7.5 9.5C6.39543 9.5 5.5 8.60457 5.5 7.5ZM7.5 4.5C5.84315 4.5 4.5 5.84315 4.5 7.5C4.5 9.15685 5.84315 10.5 7.5 10.5C9.15685 10.5 10.5 9.15685 10.5 7.5C10.5 5.84315 9.15685 4.5 7.5 4.5Z\"\n fill=\"currentColor\"\n ></path>\n </svg>\n )\n },\n {\n value: \"dark\",\n label: (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n className=\"hawa-h-[1.2rem] hawa-w-[1.2rem] hawa-transition-all dark:hawa-rotate-0 dark:hawa-scale-100\"\n >\n <path d=\"M12 3a6 6 0 0 0 9 9 9 9 0 1 1-9-9Z\"></path>\n </svg>\n )\n }\n ]}\n />\n </div>\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, { useState, FC, useRef, useEffect, forwardRef } from \"react\";\n\nimport { PopoverContentProps } from \"@radix-ui/react-popover\";\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\";\nimport { Tooltip } from \"../tooltip\";\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};\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 ...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<HTMLUListElement>(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 className=\"hawa-gap-2 hawa-flex hawa-flex-col\">\n {props.label && <Label {...labelProps}>{props.label}</Label>}\n\n <ul\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 )}\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 <li\n aria-current=\"page\"\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 </li>\n </PopoverTrigger>\n <PopoverContent {...opt.tooltipContentProps}>\n {opt.tooltip}\n </PopoverContent>\n </PopoverRoot>\n ) : (\n <li\n key={o}\n aria-current=\"page\"\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 </li>\n );\n })}\n </ul>\n {!forceHideHelperText && (\n <HelperText helperText={props.helperText} />\n )}\n </div>\n );\n case \"bordered\":\n return (\n <div className={cn(orientationStyle[orientation], \"hawa-gap-4\")}>\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 className={cn(orientationStyle[orientation], \"hawa-gap-4\")}>\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 className=\"hawa-flex hawa-flex-col hawa-gap-2\">\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 React from \"react\";\n\nimport { cn } from \"@util/index\";\n\nexport const HelperText = ({ helperText }: { helperText?: any }) => (\n <p\n className={cn(\n \"hawa-my-0 hawa-text-start hawa-text-xs hawa-text-helper-color hawa-transition-all\",\n helperText ? \"hawa-h-4 hawa-opacity-100\" : \"hawa-h-0 hawa-opacity-0\",\n )}\n >\n {helperText}\n </p>\n);\n","import * as React from \"react\";\n\nimport { PositionType } from \"@_types/commonTypes\";\n\nimport { cn } from \"@util/index\";\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.TooltipProviderProps;\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":["React","useState","React","forwardRef","React","React","React","React","forwardRef","React","_a","useState","React"]}
@@ -10,7 +10,7 @@ interface StatTypes extends React__default.HTMLAttributes<HTMLDivElement> {
10
10
  label?: string;
11
11
  color?: string;
12
12
  number?: string;
13
- helperText?: string;
13
+ helperText?: any;
14
14
  helperTextColor?: "default" | "positive" | "negative" | "muted";
15
15
  chart?: any;
16
16
  icon?: React__default.ReactNode;
@@ -10,7 +10,7 @@ interface StatTypes extends React__default.HTMLAttributes<HTMLDivElement> {
10
10
  label?: string;
11
11
  color?: string;
12
12
  number?: string;
13
- helperText?: string;
13
+ helperText?: any;
14
14
  helperTextColor?: "default" | "positive" | "negative" | "muted";
15
15
  chart?: any;
16
16
  icon?: React__default.ReactNode;
@@ -3,7 +3,7 @@ import {
3
3
  Sheet,
4
4
  SheetContent,
5
5
  SheetTrigger
6
- } from "../chunk-ODOCZAWC.mjs";
6
+ } from "../chunk-E77TUADR.mjs";
7
7
  import {
8
8
  Button,
9
9
  Card,
@@ -16,7 +16,7 @@ import {
16
16
  Skeleton,
17
17
  Tooltip,
18
18
  cn
19
- } from "../chunk-RNFJAEEU.mjs";
19
+ } from "../chunk-LDJD5ITW.mjs";
20
20
  import {
21
21
  useBreakpoint,
22
22
  useClickOutside
@@ -37,7 +37,7 @@ __export(passwordInput_exports, {
37
37
  module.exports = __toCommonJS(passwordInput_exports);
38
38
 
39
39
  // elements/passwordInput/PasswordInput.tsx
40
- var import_react7 = __toESM(require("react"));
40
+ var import_react8 = __toESM(require("react"));
41
41
 
42
42
  // icons/Emojis.tsx
43
43
  var import_react = __toESM(require("react"));
@@ -134,15 +134,28 @@ var UncheckMark = ({ size = "default", className }) => {
134
134
  };
135
135
 
136
136
  // elements/input/Input.tsx
137
- var import_react6 = __toESM(require("react"));
137
+ var import_react7 = __toESM(require("react"));
138
+
139
+ // elements/helperText/HelperText.tsx
140
+ var import_react4 = __toESM(require("react"));
141
+ var HelperText = ({ helperText }) => /* @__PURE__ */ import_react4.default.createElement(
142
+ "p",
143
+ {
144
+ className: cn(
145
+ "hawa-my-0 hawa-text-start hawa-text-xs hawa-text-helper-color hawa-transition-all",
146
+ helperText ? "hawa-h-4 hawa-opacity-100" : "hawa-h-0 hawa-opacity-0"
147
+ )
148
+ },
149
+ helperText
150
+ );
138
151
 
139
152
  // elements/label/Label.tsx
140
- var React5 = __toESM(require("react"));
153
+ var React6 = __toESM(require("react"));
141
154
 
142
155
  // elements/tooltip/Tooltip.tsx
143
- var import_react4 = __toESM(require("react"));
156
+ var import_react5 = __toESM(require("react"));
144
157
  var TooltipPrimitive = __toESM(require("@radix-ui/react-tooltip"));
145
- var TooltipContent = import_react4.default.forwardRef(({ className, sideOffset = 4, size = "default", ...props }, ref) => /* @__PURE__ */ import_react4.default.createElement(
158
+ var TooltipContent = import_react5.default.forwardRef(({ className, sideOffset = 4, size = "default", ...props }, ref) => /* @__PURE__ */ import_react5.default.createElement(
146
159
  TooltipPrimitive.Content,
147
160
  {
148
161
  ref,
@@ -159,7 +172,7 @@ var TooltipContent = import_react4.default.forwardRef(({ className, sideOffset =
159
172
  }
160
173
  ));
161
174
  TooltipContent.displayName = TooltipPrimitive.Content.displayName;
162
- var TooltipArrow = import_react4.default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ import_react4.default.createElement(TooltipPrimitive.Arrow, { ref, className: cn(className), ...props }));
175
+ var TooltipArrow = import_react5.default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ import_react5.default.createElement(TooltipPrimitive.Arrow, { ref, className: cn(className), ...props }));
163
176
  TooltipArrow.displayName = TooltipPrimitive.Arrow.displayName;
164
177
  var Tooltip = ({
165
178
  side,
@@ -176,13 +189,13 @@ var Tooltip = ({
176
189
  delayDuration = 300,
177
190
  ...props
178
191
  }) => {
179
- return /* @__PURE__ */ import_react4.default.createElement(
192
+ return /* @__PURE__ */ import_react5.default.createElement(
180
193
  TooltipPrimitive.TooltipProvider,
181
194
  {
182
195
  delayDuration,
183
196
  ...providerProps
184
197
  },
185
- /* @__PURE__ */ import_react4.default.createElement(
198
+ /* @__PURE__ */ import_react5.default.createElement(
186
199
  TooltipPrimitive.Root,
187
200
  {
188
201
  open: !disabled && open,
@@ -190,8 +203,8 @@ var Tooltip = ({
190
203
  onOpenChange,
191
204
  ...props
192
205
  },
193
- /* @__PURE__ */ import_react4.default.createElement(TooltipPrimitive.Trigger, { ...triggerProps }, children),
194
- /* @__PURE__ */ import_react4.default.createElement(
206
+ /* @__PURE__ */ import_react5.default.createElement(TooltipPrimitive.Trigger, { ...triggerProps }, children),
207
+ /* @__PURE__ */ import_react5.default.createElement(
195
208
  TooltipContent,
196
209
  {
197
210
  size,
@@ -211,7 +224,7 @@ var Tooltip = ({
211
224
  };
212
225
 
213
226
  // elements/label/Label.tsx
214
- var Label = React5.forwardRef(({ className, hint, hintSide, required, children, ...props }, ref) => /* @__PURE__ */ React5.createElement("div", { className: "hawa-flex hawa-flex-row hawa-items-center hawa-gap-1 hawa-transition-all" }, /* @__PURE__ */ React5.createElement(
227
+ var Label = React6.forwardRef(({ className, hint, hintSide, required, children, ...props }, ref) => /* @__PURE__ */ React6.createElement("div", { className: "hawa-flex hawa-flex-row hawa-items-center hawa-gap-1 hawa-transition-all" }, /* @__PURE__ */ React6.createElement(
215
228
  "label",
216
229
  {
217
230
  ref,
@@ -222,8 +235,8 @@ var Label = React5.forwardRef(({ className, hint, hintSide, required, children,
222
235
  ...props
223
236
  },
224
237
  children,
225
- required && /* @__PURE__ */ React5.createElement("span", { className: "hawa-mx-0.5 hawa-text-red-500" }, "*")
226
- ), hint && /* @__PURE__ */ React5.createElement(
238
+ required && /* @__PURE__ */ React6.createElement("span", { className: "hawa-mx-0.5 hawa-text-red-500" }, "*")
239
+ ), hint && /* @__PURE__ */ React6.createElement(
227
240
  Tooltip,
228
241
  {
229
242
  content: hint,
@@ -233,7 +246,7 @@ var Label = React5.forwardRef(({ className, hint, hintSide, required, children,
233
246
  onClick: (event) => event.preventDefault()
234
247
  }
235
248
  },
236
- /* @__PURE__ */ React5.createElement("div", null, /* @__PURE__ */ React5.createElement(
249
+ /* @__PURE__ */ React6.createElement("div", null, /* @__PURE__ */ React6.createElement(
237
250
  "svg",
238
251
  {
239
252
  xmlns: "http://www.w3.org/2000/svg",
@@ -245,15 +258,15 @@ var Label = React5.forwardRef(({ className, hint, hintSide, required, children,
245
258
  strokeLinecap: "round",
246
259
  strokeLinejoin: "round"
247
260
  },
248
- /* @__PURE__ */ React5.createElement("circle", { cx: "12", cy: "12", r: "10" }),
249
- /* @__PURE__ */ React5.createElement("path", { d: "M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3" }),
250
- /* @__PURE__ */ React5.createElement("path", { d: "M12 17h.01" })
261
+ /* @__PURE__ */ React6.createElement("circle", { cx: "12", cy: "12", r: "10" }),
262
+ /* @__PURE__ */ React6.createElement("path", { d: "M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3" }),
263
+ /* @__PURE__ */ React6.createElement("path", { d: "M12 17h.01" })
251
264
  ))
252
265
  )));
253
266
  Label.displayName = "Label";
254
267
 
255
268
  // elements/skeleton/Skeleton.tsx
256
- var import_react5 = __toESM(require("react"));
269
+ var import_react6 = __toESM(require("react"));
257
270
  function Skeleton({
258
271
  className,
259
272
  content,
@@ -272,7 +285,7 @@ function Skeleton({
272
285
  right: "hawa-mask-fade-right",
273
286
  left: "hawa-mask-fade-left "
274
287
  };
275
- return /* @__PURE__ */ import_react5.default.createElement(
288
+ return /* @__PURE__ */ import_react6.default.createElement(
276
289
  "div",
277
290
  {
278
291
  className: cn(
@@ -288,7 +301,7 @@ function Skeleton({
288
301
  }
289
302
 
290
303
  // elements/input/Input.tsx
291
- var Input = (0, import_react6.forwardRef)(
304
+ var Input = (0, import_react7.forwardRef)(
292
305
  ({
293
306
  margin = "none",
294
307
  width = "full",
@@ -332,7 +345,7 @@ var Input = (0, import_react6.forwardRef)(
332
345
  props.onChange(newEvent);
333
346
  }
334
347
  };
335
- return /* @__PURE__ */ import_react6.default.createElement(
348
+ return /* @__PURE__ */ import_react7.default.createElement(
336
349
  "div",
337
350
  {
338
351
  className: cn(
@@ -343,8 +356,8 @@ var Input = (0, import_react6.forwardRef)(
343
356
  "hawa-w-full hawa-gap-2"
344
357
  )
345
358
  },
346
- props.label && /* @__PURE__ */ import_react6.default.createElement(Label, { ...labelProps }, props.label),
347
- /* @__PURE__ */ import_react6.default.createElement("div", { className: "hawa-flex hawa-flex-row hawa-w-full hawa-items-center " }, props.outsidePrefix && /* @__PURE__ */ import_react6.default.createElement(
359
+ props.label && /* @__PURE__ */ import_react7.default.createElement(Label, { ...labelProps }, props.label),
360
+ /* @__PURE__ */ import_react7.default.createElement("div", { className: "hawa-flex hawa-flex-row hawa-w-full hawa-items-center " }, props.outsidePrefix && /* @__PURE__ */ import_react7.default.createElement(
348
361
  "span",
349
362
  {
350
363
  className: cn(
@@ -353,12 +366,12 @@ var Input = (0, import_react6.forwardRef)(
353
366
  )
354
367
  },
355
368
  props.outsidePrefix
356
- ), props.isLoading ? /* @__PURE__ */ import_react6.default.createElement("div", { className: "hawa-pb-2 hawa-w-full" }, /* @__PURE__ */ import_react6.default.createElement(Skeleton, { className: "hawa-h-[40px] hawa-w-full" })) : props.isLoadingError ? /* @__PURE__ */ import_react6.default.createElement("div", { className: "hawa-pb-2 hawa-w-full" }, /* @__PURE__ */ import_react6.default.createElement(
369
+ ), props.isLoading ? /* @__PURE__ */ import_react7.default.createElement("div", { className: "hawa-pb-2 hawa-w-full" }, /* @__PURE__ */ import_react7.default.createElement(Skeleton, { className: "hawa-h-[40px] hawa-w-full" })) : props.isLoadingError ? /* @__PURE__ */ import_react7.default.createElement("div", { className: "hawa-pb-2 hawa-w-full" }, /* @__PURE__ */ import_react7.default.createElement(
357
370
  Skeleton,
358
371
  {
359
372
  animation: "none",
360
373
  className: "hawa-h-[40px] hawa-w-full !hawa-bg-destructive/[0.3]",
361
- content: /* @__PURE__ */ import_react6.default.createElement("div", { className: "hawa-flex hawa-flex-row hawa-gap-2" }, /* @__PURE__ */ import_react6.default.createElement(
374
+ content: /* @__PURE__ */ import_react7.default.createElement("div", { className: "hawa-flex hawa-flex-row hawa-gap-2" }, /* @__PURE__ */ import_react7.default.createElement(
362
375
  "svg",
363
376
  {
364
377
  xmlns: "http://www.w3.org/2000/svg",
@@ -372,12 +385,12 @@ var Input = (0, import_react6.forwardRef)(
372
385
  strokeLinejoin: "round",
373
386
  className: "hawa-text-destructive"
374
387
  },
375
- /* @__PURE__ */ import_react6.default.createElement("path", { d: "m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3" }),
376
- /* @__PURE__ */ import_react6.default.createElement("path", { d: "M12 9v4" }),
377
- /* @__PURE__ */ import_react6.default.createElement("path", { d: "M12 17h.01" })
378
- ), /* @__PURE__ */ import_react6.default.createElement("span", null, /* @__PURE__ */ import_react6.default.createElement("span", { className: "hawa-text-destructive" }, props.loadingErrorMesssage || "Error loading data")))
388
+ /* @__PURE__ */ import_react7.default.createElement("path", { d: "m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3" }),
389
+ /* @__PURE__ */ import_react7.default.createElement("path", { d: "M12 9v4" }),
390
+ /* @__PURE__ */ import_react7.default.createElement("path", { d: "M12 17h.01" })
391
+ ), /* @__PURE__ */ import_react7.default.createElement("span", null, /* @__PURE__ */ import_react7.default.createElement("span", { className: "hawa-text-destructive" }, props.loadingErrorMesssage || "Error loading data")))
379
392
  }
380
- )) : /* @__PURE__ */ import_react6.default.createElement(import_react6.default.Fragment, null, !props.hideSeparator && /* @__PURE__ */ import_react6.default.createElement(
393
+ )) : /* @__PURE__ */ import_react7.default.createElement(import_react7.default.Fragment, null, !props.hideSeparator && /* @__PURE__ */ import_react7.default.createElement(
381
394
  "div",
382
395
  {
383
396
  className: cn(
@@ -385,7 +398,7 @@ var Input = (0, import_react6.forwardRef)(
385
398
  preview ? "hawa-opacity-100" : "hawa-opacity-0"
386
399
  )
387
400
  }
388
- ), /* @__PURE__ */ import_react6.default.createElement("div", { className: "hawa-flex hawa-flex-col hawa-w-full hawa-gap-2" }, /* @__PURE__ */ import_react6.default.createElement("div", { className: "hawa-relative" }, props.startIcon && /* @__PURE__ */ import_react6.default.createElement("div", { className: "hawa-absolute hawa-start-3 hawa-top-1/2 hawa--translate-y-1/2" }, props.startIcon), props.endIcon && /* @__PURE__ */ import_react6.default.createElement(
401
+ ), /* @__PURE__ */ import_react7.default.createElement("div", { className: "hawa-flex hawa-flex-col hawa-w-full hawa-gap-2" }, /* @__PURE__ */ import_react7.default.createElement("div", { className: "hawa-relative" }, props.startIcon && /* @__PURE__ */ import_react7.default.createElement("div", { className: "hawa-absolute hawa-start-3 hawa-top-1/2 hawa--translate-y-1/2" }, props.startIcon), props.endIcon && /* @__PURE__ */ import_react7.default.createElement(
389
402
  "div",
390
403
  {
391
404
  className: cn(
@@ -394,7 +407,7 @@ var Input = (0, import_react6.forwardRef)(
394
407
  )
395
408
  },
396
409
  props.endIcon
397
- ), /* @__PURE__ */ import_react6.default.createElement(
410
+ ), /* @__PURE__ */ import_react7.default.createElement(
398
411
  "input",
399
412
  {
400
413
  required: true,
@@ -420,16 +433,7 @@ var Input = (0, import_react6.forwardRef)(
420
433
  inputProps == null ? void 0 : inputProps.className
421
434
  )
422
435
  }
423
- )), !forceHideHelperText && /* @__PURE__ */ import_react6.default.createElement(
424
- "p",
425
- {
426
- className: cn(
427
- "hawa-my-0 hawa-text-start hawa-text-xs hawa-text-helper-color hawa-transition-all",
428
- props.helperText ? "hawa-h-4 hawa-opacity-100" : "hawa-h-0 hawa-opacity-0"
429
- )
430
- },
431
- props.helperText
432
- ), !props.disabled && forceHideHelperText && /* @__PURE__ */ import_react6.default.createElement(
436
+ )), !forceHideHelperText && /* @__PURE__ */ import_react7.default.createElement(HelperText, { helperText: props.helperText }), !props.disabled && forceHideHelperText && /* @__PURE__ */ import_react7.default.createElement(
433
437
  "div",
434
438
  {
435
439
  className: cn(
@@ -438,7 +442,7 @@ var Input = (0, import_react6.forwardRef)(
438
442
  )
439
443
  },
440
444
  props.helperText
441
- ), showCount && /* @__PURE__ */ import_react6.default.createElement(
445
+ ), showCount && /* @__PURE__ */ import_react7.default.createElement(
442
446
  "div",
443
447
  {
444
448
  className: cn(
@@ -459,10 +463,10 @@ var Input = (0, import_react6.forwardRef)(
459
463
  );
460
464
 
461
465
  // elements/popover/Popover.tsx
462
- var React8 = __toESM(require("react"));
466
+ var React9 = __toESM(require("react"));
463
467
  var PopoverPrimitive = __toESM(require("@radix-ui/react-popover"));
464
- var PopoverContent = React8.forwardRef(
465
- ({ className, align = "center", sideOffset = 4, container, ...props }, ref) => /* @__PURE__ */ React8.createElement(PopoverPrimitive.Portal, { container }, /* @__PURE__ */ React8.createElement(
468
+ var PopoverContent = React9.forwardRef(
469
+ ({ className, align = "center", sideOffset = 4, container, ...props }, ref) => /* @__PURE__ */ React9.createElement(PopoverPrimitive.Portal, { container }, /* @__PURE__ */ React9.createElement(
466
470
  PopoverPrimitive.Content,
467
471
  {
468
472
  ref,
@@ -495,7 +499,7 @@ var Popover = ({
495
499
  trigger: "var(--radix-popover-trigger-width)",
496
500
  default: "auto"
497
501
  };
498
- return /* @__PURE__ */ React8.createElement(PopoverPrimitive.Root, { open, ...props }, /* @__PURE__ */ React8.createElement(
502
+ return /* @__PURE__ */ React9.createElement(PopoverPrimitive.Root, { open, ...props }, /* @__PURE__ */ React9.createElement(
499
503
  PopoverPrimitive.Trigger,
500
504
  {
501
505
  className: "hawa-w-full",
@@ -503,7 +507,7 @@ var Popover = ({
503
507
  ...triggerProps
504
508
  },
505
509
  trigger
506
- ), /* @__PURE__ */ React8.createElement(
510
+ ), /* @__PURE__ */ React9.createElement(
507
511
  PopoverContent,
508
512
  {
509
513
  side,
@@ -548,7 +552,7 @@ var PasswordStrengthIndicator = ({ strength }) => {
548
552
  strong: "80%",
549
553
  "very-strong": "100%"
550
554
  }[currentStrengthLevel];
551
- return /* @__PURE__ */ import_react7.default.createElement("div", { className: "hawa-mt-0.5 hawa-h-2 hawa-w-full hawa-rounded hawa-bg-gray-200" }, /* @__PURE__ */ import_react7.default.createElement(
555
+ return /* @__PURE__ */ import_react8.default.createElement("div", { className: "hawa-mt-0.5 hawa-h-2 hawa-w-full hawa-rounded hawa-bg-gray-200" }, /* @__PURE__ */ import_react8.default.createElement(
552
556
  "div",
553
557
  {
554
558
  className: `${strengthColors[currentStrengthLevel]} hawa-h-full hawa-rounded hawa-transition-all hawa-duration-300`,
@@ -560,16 +564,16 @@ var PasswordInput = ({
560
564
  hidePopover,
561
565
  ...props
562
566
  }) => {
563
- const [inputValue, setInputValue] = (0, import_react7.useState)("");
564
- const [isInputFocused, setIsInputFocused] = (0, import_react7.useState)(false);
565
- const [currentStr, setCurrentStr] = (0, import_react7.useState)(0);
566
- const [passwordVisible, setPasswordVisible] = (0, import_react7.useState)(false);
567
- const [lengthCriteriaMet, setLengthCriteriaMet] = (0, import_react7.useState)(false);
568
- const [numberCriteriaMet, setNumberCriteriaMet] = (0, import_react7.useState)(false);
569
- const [specialCharCriteriaMet, setSpecialCharCriteriaMet] = (0, import_react7.useState)(false);
570
- const [lowercaseCriteriaMet, setLowercaseCriteriaMet] = (0, import_react7.useState)(false);
571
- const [uppercaseCriteriaMet, setUppercaseCriteriaMet] = (0, import_react7.useState)(false);
572
- (0, import_react7.useEffect)(() => {
567
+ const [inputValue, setInputValue] = (0, import_react8.useState)("");
568
+ const [isInputFocused, setIsInputFocused] = (0, import_react8.useState)(false);
569
+ const [currentStr, setCurrentStr] = (0, import_react8.useState)(0);
570
+ const [passwordVisible, setPasswordVisible] = (0, import_react8.useState)(false);
571
+ const [lengthCriteriaMet, setLengthCriteriaMet] = (0, import_react8.useState)(false);
572
+ const [numberCriteriaMet, setNumberCriteriaMet] = (0, import_react8.useState)(false);
573
+ const [specialCharCriteriaMet, setSpecialCharCriteriaMet] = (0, import_react8.useState)(false);
574
+ const [lowercaseCriteriaMet, setLowercaseCriteriaMet] = (0, import_react8.useState)(false);
575
+ const [uppercaseCriteriaMet, setUppercaseCriteriaMet] = (0, import_react8.useState)(false);
576
+ (0, import_react8.useEffect)(() => {
573
577
  const calculateStrength = () => {
574
578
  let strengthScore = 0;
575
579
  if (lengthCriteriaMet)
@@ -608,7 +612,7 @@ var PasswordInput = ({
608
612
  setIsInputFocused(false);
609
613
  };
610
614
  const getCriteriaClass = (isMet) => isMet ? "hawa-flex hawa-flex-row hawa-gap-2 hawa-text-sm hawa-items-center hawa-text-green-500" : "hawa-flex hawa-flex-row hawa-gap-2 hawa-text-sm hawa-items-center hawa-text-red-600";
611
- return /* @__PURE__ */ import_react7.default.createElement("div", null, /* @__PURE__ */ import_react7.default.createElement(
615
+ return /* @__PURE__ */ import_react8.default.createElement("div", null, /* @__PURE__ */ import_react8.default.createElement(
612
616
  Popover,
613
617
  {
614
618
  width: "trigger",
@@ -617,7 +621,7 @@ var PasswordInput = ({
617
621
  onOpenChange: setIsInputFocused,
618
622
  triggerProps: { asChild: true },
619
623
  contentProps: { onOpenAutoFocus: (e) => e.preventDefault() },
620
- trigger: /* @__PURE__ */ import_react7.default.createElement(
624
+ trigger: /* @__PURE__ */ import_react8.default.createElement(
621
625
  "div",
622
626
  {
623
627
  onClick: (e) => {
@@ -627,7 +631,7 @@ var PasswordInput = ({
627
631
  }
628
632
  }
629
633
  },
630
- /* @__PURE__ */ import_react7.default.createElement(
634
+ /* @__PURE__ */ import_react8.default.createElement(
631
635
  Input,
632
636
  {
633
637
  width: "full",
@@ -637,21 +641,21 @@ var PasswordInput = ({
637
641
  onFocus: handleInputFocus,
638
642
  onBlur: handleInputBlur,
639
643
  type: passwordVisible ? "text" : "password",
640
- endIcon: /* @__PURE__ */ import_react7.default.createElement(
644
+ endIcon: /* @__PURE__ */ import_react8.default.createElement(
641
645
  "div",
642
646
  {
643
647
  className: "hawa-cursor-pointer",
644
648
  onClick: () => setPasswordVisible(!passwordVisible)
645
649
  },
646
- passwordVisible ? /* @__PURE__ */ import_react7.default.createElement(EyeIcon, { className: "hawa-text-gray-500" }) : /* @__PURE__ */ import_react7.default.createElement(HiddenEyeIcon, { className: "hawa-text-gray-500" }),
650
+ passwordVisible ? /* @__PURE__ */ import_react8.default.createElement(EyeIcon, { className: "hawa-text-gray-500" }) : /* @__PURE__ */ import_react8.default.createElement(HiddenEyeIcon, { className: "hawa-text-gray-500" }),
647
651
  " "
648
652
  )
649
653
  }
650
654
  )
651
655
  )
652
656
  },
653
- /* @__PURE__ */ import_react7.default.createElement("div", { className: "hawa-rounded hawa-p-2" }, /* @__PURE__ */ import_react7.default.createElement("ul", { className: "hawa-rounded hawa-p-2" }, /* @__PURE__ */ import_react7.default.createElement("li", { className: getCriteriaClass(lengthCriteriaMet) }, lengthCriteriaMet ? /* @__PURE__ */ import_react7.default.createElement(CheckMark, { size: "sm" }) : /* @__PURE__ */ import_react7.default.createElement(UncheckMark, { size: "sm" }), "At least 8 characters long"), /* @__PURE__ */ import_react7.default.createElement("li", { className: getCriteriaClass(numberCriteriaMet) }, numberCriteriaMet ? /* @__PURE__ */ import_react7.default.createElement(CheckMark, { size: "sm" }) : /* @__PURE__ */ import_react7.default.createElement(UncheckMark, { size: "sm" }), "At least 1 number"), /* @__PURE__ */ import_react7.default.createElement("li", { className: getCriteriaClass(specialCharCriteriaMet) }, specialCharCriteriaMet ? /* @__PURE__ */ import_react7.default.createElement(CheckMark, { size: "sm" }) : /* @__PURE__ */ import_react7.default.createElement(UncheckMark, { size: "sm" }), "At least 1 special character"), /* @__PURE__ */ import_react7.default.createElement("li", { className: getCriteriaClass(lowercaseCriteriaMet) }, lowercaseCriteriaMet ? /* @__PURE__ */ import_react7.default.createElement(CheckMark, { size: "sm" }) : /* @__PURE__ */ import_react7.default.createElement(UncheckMark, { size: "sm" }), "At least 1 lowercase letter"), /* @__PURE__ */ import_react7.default.createElement("li", { className: getCriteriaClass(uppercaseCriteriaMet) }, uppercaseCriteriaMet ? /* @__PURE__ */ import_react7.default.createElement(CheckMark, { size: "sm" }) : /* @__PURE__ */ import_react7.default.createElement(UncheckMark, { size: "sm" }), "At least 1 uppercase letter")))
654
- ), /* @__PURE__ */ import_react7.default.createElement(PasswordStrengthIndicator, { strength: currentStr }));
657
+ /* @__PURE__ */ import_react8.default.createElement("div", { className: "hawa-rounded hawa-p-2" }, /* @__PURE__ */ import_react8.default.createElement("ul", { className: "hawa-rounded hawa-p-2" }, /* @__PURE__ */ import_react8.default.createElement("li", { className: getCriteriaClass(lengthCriteriaMet) }, lengthCriteriaMet ? /* @__PURE__ */ import_react8.default.createElement(CheckMark, { size: "sm" }) : /* @__PURE__ */ import_react8.default.createElement(UncheckMark, { size: "sm" }), "At least 8 characters long"), /* @__PURE__ */ import_react8.default.createElement("li", { className: getCriteriaClass(numberCriteriaMet) }, numberCriteriaMet ? /* @__PURE__ */ import_react8.default.createElement(CheckMark, { size: "sm" }) : /* @__PURE__ */ import_react8.default.createElement(UncheckMark, { size: "sm" }), "At least 1 number"), /* @__PURE__ */ import_react8.default.createElement("li", { className: getCriteriaClass(specialCharCriteriaMet) }, specialCharCriteriaMet ? /* @__PURE__ */ import_react8.default.createElement(CheckMark, { size: "sm" }) : /* @__PURE__ */ import_react8.default.createElement(UncheckMark, { size: "sm" }), "At least 1 special character"), /* @__PURE__ */ import_react8.default.createElement("li", { className: getCriteriaClass(lowercaseCriteriaMet) }, lowercaseCriteriaMet ? /* @__PURE__ */ import_react8.default.createElement(CheckMark, { size: "sm" }) : /* @__PURE__ */ import_react8.default.createElement(UncheckMark, { size: "sm" }), "At least 1 lowercase letter"), /* @__PURE__ */ import_react8.default.createElement("li", { className: getCriteriaClass(uppercaseCriteriaMet) }, uppercaseCriteriaMet ? /* @__PURE__ */ import_react8.default.createElement(CheckMark, { size: "sm" }) : /* @__PURE__ */ import_react8.default.createElement(UncheckMark, { size: "sm" }), "At least 1 uppercase letter")))
658
+ ), /* @__PURE__ */ import_react8.default.createElement(PasswordStrengthIndicator, { strength: currentStr }));
655
659
  };
656
660
  // Annotate the CommonJS export names for ESM import in node:
657
661
  0 && (module.exports = {