@sikka/hawa 0.49.14-next → 0.49.15-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 (77) hide show
  1. package/dist/{Chip-KG1_ZmCL.d.mts → Chip-BRMzT5TB.d.mts} +2 -2
  2. package/dist/{Chip-Cw1twk4G.d.ts → Chip-D58g8OJ_.d.ts} +2 -2
  3. package/dist/accordion/index.d.mts +1 -1
  4. package/dist/accordion/index.d.ts +1 -1
  5. package/dist/accordion/index.js.map +1 -1
  6. package/dist/accordion/index.mjs.map +1 -1
  7. package/dist/appLayout/index.js +1 -1
  8. package/dist/appLayout/index.js.map +1 -1
  9. package/dist/appLayout/index.mjs +1 -1
  10. package/dist/appLayout/index.mjs.map +1 -1
  11. package/dist/badge/index.d.mts +1 -1
  12. package/dist/badge/index.d.ts +1 -1
  13. package/dist/badge/index.js +11 -2
  14. package/dist/badge/index.js.map +1 -1
  15. package/dist/badge/index.mjs +11 -2
  16. package/dist/badge/index.mjs.map +1 -1
  17. package/dist/blocks/auth/index.js +15 -15
  18. package/dist/blocks/auth/index.mjs +15 -15
  19. package/dist/blocks/index.d.mts +1 -1
  20. package/dist/blocks/index.d.ts +1 -1
  21. package/dist/blocks/index.js +15 -15
  22. package/dist/blocks/index.mjs +3 -3
  23. package/dist/button/index.d.mts +1 -1
  24. package/dist/button/index.d.ts +1 -1
  25. package/dist/chip/index.d.mts +2 -2
  26. package/dist/chip/index.d.ts +2 -2
  27. package/dist/chip/index.js.map +1 -1
  28. package/dist/chip/index.mjs.map +1 -1
  29. package/dist/{chunk-FTS7YP7U.mjs → chunk-NJJVVA2A.mjs} +16 -16
  30. package/dist/{chunk-5SQBJRWE.mjs → chunk-OWMN44TT.mjs} +1 -1
  31. package/dist/{chunk-3AANFRLZ.mjs → chunk-Z3ZL22XB.mjs} +1 -1
  32. package/dist/count/index.d.mts +2 -2
  33. package/dist/count/index.d.ts +2 -2
  34. package/dist/count/index.js.map +1 -1
  35. package/dist/count/index.mjs.map +1 -1
  36. package/dist/datePicker/index.d.mts +1 -1
  37. package/dist/datePicker/index.d.ts +1 -1
  38. package/dist/docsLayout/index.js +1 -1
  39. package/dist/docsLayout/index.js.map +1 -1
  40. package/dist/docsLayout/index.mjs +1 -1
  41. package/dist/docsLayout/index.mjs.map +1 -1
  42. package/dist/elements/index.d.mts +9 -7
  43. package/dist/elements/index.d.ts +9 -7
  44. package/dist/elements/index.js +32 -21
  45. package/dist/elements/index.mjs +20 -9
  46. package/dist/fileDropzone/index.js +6 -4
  47. package/dist/fileDropzone/index.js.map +1 -1
  48. package/dist/fileDropzone/index.mjs +6 -4
  49. package/dist/fileDropzone/index.mjs.map +1 -1
  50. package/dist/hooks/index.d.mts +2 -2
  51. package/dist/hooks/index.d.ts +2 -2
  52. package/dist/hooks/index.js +2 -2
  53. package/dist/hooks/index.mjs +2 -2
  54. package/dist/index.css +124 -124
  55. package/dist/index.d.mts +11 -9
  56. package/dist/index.d.ts +11 -9
  57. package/dist/index.js +35 -24
  58. package/dist/index.mjs +35 -24
  59. package/dist/layout/index.d.mts +1 -1
  60. package/dist/layout/index.d.ts +1 -1
  61. package/dist/layout/index.js +2 -2
  62. package/dist/layout/index.mjs +2 -2
  63. package/dist/pinInput/index.d.mts +4 -2
  64. package/dist/pinInput/index.d.ts +4 -2
  65. package/dist/pinInput/index.js +15 -15
  66. package/dist/pinInput/index.js.map +1 -1
  67. package/dist/pinInput/index.mjs +15 -15
  68. package/dist/pinInput/index.mjs.map +1 -1
  69. package/dist/sidebar/index.js.map +1 -1
  70. package/dist/sidebar/index.mjs.map +1 -1
  71. package/dist/splitButton/index.d.mts +1 -1
  72. package/dist/splitButton/index.d.ts +1 -1
  73. package/dist/tabs/index.d.mts +1 -1
  74. package/dist/tabs/index.d.ts +1 -1
  75. package/dist/tabs/index.js.map +1 -1
  76. package/dist/tabs/index.mjs.map +1 -1
  77. package/package.json +45 -45
@@ -598,11 +598,13 @@ var FileDropzone = ({
598
598
  var _a, _b, _c, _d, _e, _f;
599
599
  const [cmp, setCmp] = useState2(0);
600
600
  const [max, setMax] = useState2(0);
601
+ const [filesAccepted, setFilesAccepted] = useState2([]);
601
602
  const { getRootProps, getInputProps, fileRejections, acceptedFiles, isDragActive } = useDropzone({
602
603
  multiple: true,
603
604
  accept,
604
605
  maxSize,
605
606
  maxFiles,
607
+ useFsAccessApi: true,
606
608
  onDrop: (acceptedFiles2) => {
607
609
  setFiles(
608
610
  acceptedFiles2.map(
@@ -625,12 +627,12 @@ var FileDropzone = ({
625
627
  setFiles(acceptedFiles);
626
628
  }, [acceptedFiles, cmp, setFiles]);
627
629
  onClearFiles = () => {
628
- acceptedFiles.length = 0;
629
- acceptedFiles.splice(0, acceptedFiles.length);
630
+ setFilesAccepted([]);
631
+ setFilesAccepted(filesAccepted.splice(0, filesAccepted.length));
630
632
  setFiles([]);
631
633
  };
632
634
  const clearAllFiles = () => {
633
- acceptedFiles.length = 0;
635
+ setFilesAccepted([]);
634
636
  setFiles([]);
635
637
  };
636
638
  useEffect2(() => {
@@ -658,7 +660,7 @@ var FileDropzone = ({
658
660
  {
659
661
  onClick: (e) => {
660
662
  e.stopPropagation();
661
- acceptedFiles.splice(acceptedFiles.indexOf(file), 1);
663
+ setFilesAccepted(filesAccepted.splice(filesAccepted.indexOf(file), 1));
662
664
  setCmp(Math.random);
663
665
  onDeleteFile(file);
664
666
  },
@@ -1 +1 @@
1
- {"version":3,"sources":["../../elements/fileDropzone/FileDropzone.tsx","../../elements/alert/Alert.tsx","../../util/index.ts","../../elements/button/Button.tsx","../../elements/helperText/HelperText.tsx","../../elements/label/Label.tsx","../../elements/tooltip/Tooltip.tsx","../../elements/loading/Loading.tsx"],"sourcesContent":["import React, { useEffect, useState } from \"react\";\nimport { useDropzone } from \"react-dropzone\";\n\nimport clsx from \"clsx\";\n\nimport { Alert } from \"../alert/Alert\";\nimport { Button } from \"../button\";\n\ntype FileDropzoneTypes = {\n /** The text label above the component. Consistant with the other form input fields */\n label?: string;\n files: [File];\n setFiles: any;\n setDeletedFiles: any;\n maxFiles: number;\n accept: any;\n onAcceptedFiles: any;\n showPreview: any;\n onDeleteFile: any;\n onClearFiles: any;\n maxSize: number;\n errorMessages: string;\n disclaimer?: boolean;\n termsLink?: string;\n privacyLink?: string;\n /** The translation object, use this to replace the default text with any translated text you want.*/\n texts: {\n errorUploading: any;\n clickHereToUpload: any;\n maxFileSize: any;\n tooManyFiles: any;\n fileTooLarge: any;\n acceptedFileTypes: any;\n invalidFileType: any;\n terms?: string;\n privacyPolicy?: string;\n disclaimer?: string;\n and?: string;\n };\n};\n\nexport const FileDropzone: React.FunctionComponent<FileDropzoneTypes> = ({\n texts,\n files,\n setFiles,\n setDeletedFiles,\n onAcceptedFiles,\n errorMessages,\n maxFiles,\n accept,\n showPreview,\n onDeleteFile,\n onClearFiles,\n disclaimer,\n maxSize,\n label,\n termsLink,\n privacyLink,\n}) => {\n const [cmp, setCmp] = useState(0);\n const [max, setMax] = useState<any>(0);\n\n const { getRootProps, getInputProps, fileRejections, acceptedFiles, isDragActive } = useDropzone({\n multiple: true,\n accept: accept,\n maxSize: maxSize,\n maxFiles: maxFiles,\n onDrop: (acceptedFiles: any) => {\n setFiles(\n acceptedFiles.map((file: any, index: any) =>\n Object.assign(file, {\n preview: URL.createObjectURL(file),\n }),\n ),\n );\n },\n });\n useEffect(\n () => () => {\n files?.forEach((file: any) => {\n URL.revokeObjectURL(file.preview);\n });\n },\n [files],\n );\n useEffect(() => {\n setFiles(acceptedFiles);\n }, [acceptedFiles, cmp, setFiles]);\n onClearFiles = () => {\n acceptedFiles.length = 0;\n acceptedFiles.splice(0, acceptedFiles.length);\n setFiles([]);\n };\n\n const clearAllFiles = () => {\n acceptedFiles.length = 0;\n setFiles([]);\n };\n\n useEffect(() => {\n if (maxSize > 0) {\n const k = 1024;\n const sizes = [\"Bytes\", \"KB\", \"MB\", \"GB\", \"TB\", \"PB\", \"EB\", \"ZB\", \"YB\"];\n const i = Math.floor(Math.log(maxSize) / Math.log(1024));\n\n setMax(parseFloat((maxSize / Math.pow(1024, i)).toFixed(2)) + \" \" + sizes[i]);\n }\n }, [maxSize]);\n const errs = fileRejections.map((rej: any, i: any) => {\n switch (rej.errors[0].code) {\n case \"file-too-large\":\n return <Alert key={i} text={rej.file.name} title={texts.fileTooLarge} severity=\"error\" />;\n case \"too-many-files\":\n return <Alert key={i} text={rej.file.name} title={texts.tooManyFiles} severity=\"error\" />;\n case \"file-invalid-type\":\n return (\n <Alert key={i} text={rej.file.name} title={texts.invalidFileType} severity=\"error\" />\n );\n\n default:\n return <Alert key={i} text={rej.file.name} title={rej.errors[0].code} severity=\"error\" />;\n }\n });\n const thumbs = files?.map((file: any, index: any) => (\n <div className=\"hawa-relative hawa-rounded\" key={index}>\n <button\n onClick={(e) => {\n e.stopPropagation();\n acceptedFiles.splice(acceptedFiles.indexOf(file), 1);\n setCmp(Math.random);\n onDeleteFile(file);\n }}\n type=\"button\"\n className=\"hawa-absolute hawa-left-0 hawa-ml-auto hawa-inline-flex hawa-items-center hawa-rounded-inner hawa-rounded-bl-none hawa-rounded-tr-none hawa-bg-gray-900 hawa-p-1.5 hawa-text-sm hawa-text-gray-400 hawa-transition-all hover:hawa-bg-gray-200 hover:hawa-text-gray-900 dark:hover:hawa-bg-gray-600 dark:hover:hawa-text-white\"\n data-modal-toggle=\"defaultModal\"\n >\n <svg\n aria-hidden=\"true\"\n className=\"hawa-h-5 hawa-w-5\"\n fill=\"currentColor\"\n viewBox=\"0 0 20 20\"\n >\n <path\n fillRule=\"evenodd\"\n d=\"M4.293 4.293a1 1 0 011.414 0L10 8.586l4.293-4.293a1 1 0 111.414 1.414L11.414 10l4.293 4.293a1 1 0 01-1.414 1.414L10 11.414l-4.293 4.293a1 1 0 01-1.414-1.414L8.586 10 4.293 5.707a1 1 0 010-1.414z\"\n clipRule=\"evenodd\"\n ></path>\n </svg>\n <span className=\"hawa-sr-only\">Close modal</span>\n </button>\n\n <div\n style={{\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\",\n overflow: \"hidden\",\n height: 100,\n width: 100,\n backgroundImage: `url(${file.preview})`,\n backgroundSize: \"cover\",\n backgroundPosition: \"center\",\n border: \"1px solid black\",\n }}\n className=\"hawa-rounded\"\n key={file.name}\n />\n </div>\n ));\n\n return (\n <div>\n {label && (\n <div className=\"hawa-mb-2 hawa-block hawa-text-sm hawa-font-medium hawa-text-gray-900 dark:hawa-text-gray-300\">\n {label}\n </div>\n )}\n <div\n className={clsx(\n \"hawa-flex hawa-flex-col hawa-justify-center hawa-rounded hawa-border hawa-border-dashed hawa-p-6 hawa-transition-all\",\n isDragActive ? \"hawa-bg-muted\" : \"hawa-bg-muted/20 hover:hawa-bg-muted/50\",\n )}\n >\n <div {...getRootProps({})}>\n <p {...getInputProps()} />\n <div className=\"hawa-flex hawa-flex-col hawa-items-center hawa-justify-center hawa-gap-2 hawa-pt-4 hawa-text-center\">\n <svg\n stroke=\"currentColor\"\n fill=\"none\"\n strokeWidth=\"2\"\n viewBox=\"0 0 24 24\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n height=\"1.5em\"\n width=\"1.5em\"\n >\n <path stroke=\"none\" d=\"M0 0h24v24H0z\" fill=\"none\"></path>\n <path d=\"M19 11v-2a2 2 0 0 0 -2 -2h-8a2 2 0 0 0 -2 2v8a2 2 0 0 0 2 2h2\"></path>\n <path d=\"M13 13l9 3l-4 2l-2 4l-3 -9\"></path>\n <path d=\"M3 3l0 .01\"></path>\n <path d=\"M7 3l0 .01\"></path>\n <path d=\"M11 3l0 .01\"></path>\n <path d=\"M15 3l0 .01\"></path>\n <path d=\"M3 7l0 .01\"></path>\n <path d=\"M3 11l0 .01\"></path>\n <path d=\"M3 15l0 .01\"></path>\n </svg>\n {typeof texts.clickHereToUpload === \"function\"\n ? texts.clickHereToUpload()\n : texts.clickHereToUpload}\n </div>\n <div className=\"hawa-select-none hawa-pt-2 hawa-text-center hawa-text-xs\">\n {texts.acceptedFileTypes} {accept.split(\",\")}\n </div>\n <div className=\"hawa-select-none hawa-pb-2 hawa-pt-1 hawa-text-center hawa-text-xs\">\n {texts.maxFileSize} {max}\n </div>\n </div>\n {acceptedFiles.length > 0 && (\n <div className=\"hawa-flex hawa-justify-center hawa-rounded-lg hawa-p-2\">\n <Button onClick={clearAllFiles}>Clear All</Button>\n </div>\n )}\n {acceptedFiles.length > 0 && thumbs && showPreview ? (\n <aside className=\"hawa-flex hawa-flex-row hawa-flex-wrap hawa-justify-center hawa-gap-2 hawa-rounded-lg hawa-p-2\">\n {thumbs}\n </aside>\n ) : null}\n <div className=\"px-4\">{fileRejections[0]?.errors[0]?.code && errs}</div>\n </div>\n {disclaimer && (\n <div className=\"hawa-mt-2 hawa-text-sm hawa-text-muted-foreground/50\">\n {texts.disclaimer ?? \"By uploading a file you agree to our\"}{\" \"}\n <a href={termsLink} className=\"clickable-link hawa-text-muted-foreground/50\">\n {texts.terms ?? \"Terms\"}\n </a>{\" \"}\n {texts.and ?? \"and\"}{\" \"}\n <a href={privacyLink} className=\"clickable-link hawa-text-muted-foreground/50\">\n {texts.privacyPolicy ?? \"Privacy Policy\"}\n </a>\n </div>\n )}\n </div>\n );\n};\n","import React, { useRef, useState, useEffect } from \"react\";\n\nimport { cn } from \"@util/index\";\n\nimport { DirectionType, SeverityType } from \"@_types/commonTypes\";\n\nimport { Button } from \"../button\";\n\ntype AlertTypes = {\n severity?: SeverityType | \"hyper\" | \"oceanic\";\n /** The title of the alert placed above the text of the alert. Can be used alone */\n title?: React.ReactNode;\n /** The text of the alert placed below the title of the alert. Can be used alone */\n text: React.ReactNode;\n /** The duration for the alert to stay on the screen */\n duration?: number;\n direction?: DirectionType;\n actions?: [\n {\n label: string;\n onClick: any;\n variant: \"outline\" | \"link\" | \"default\" | \"destructive\" | \"secondary\" | \"ghost\";\n },\n ];\n /** Removes the close button */\n persistent?: boolean;\n icon?: any;\n classNames?: {\n root?: string;\n content?: string;\n title?: string;\n text?: string;\n actions?: string;\n icon?: string;\n closeButton?: string;\n };\n onAlertClosed?: () => void;\n noDestroy?: boolean;\n};\n\nexport const Alert: React.FunctionComponent<AlertTypes> = ({\n direction = \"ltr\",\n severity = \"none\",\n duration,\n icon,\n classNames,\n ...props\n}) => {\n const alertRef = useRef<HTMLDivElement>(null);\n const [closed, setClosed] = useState(false);\n\n useEffect(() => {\n if (duration) {\n //To change opacity and hide the component\n const timeoutHide = setTimeout(() => {\n setClosed(true);\n }, duration);\n //To destroy the component after hiding it\n const timeoutDestroy = setTimeout(() => {\n setClosed(true);\n if (alertRef?.current) {\n alertRef?.current.removeChild(alertRef?.current.children[0]);\n }\n }, duration + 1000);\n\n return () => {\n clearTimeout(timeoutHide);\n clearTimeout(timeoutDestroy);\n };\n }\n }, [duration]);\n\n let closeButtonStyle = {\n none: \"\",\n info: \"\",\n warning: \"\",\n error: \"\",\n success: \"\",\n hyper: \"\",\n oceanic: \"\",\n };\n let styleVariant = {\n none: \"hawa-bg-background hawa-border\",\n info: \"hawa-text-info-foreground hawa-bg-info/90\",\n warning: \"hawa-text-warning-foreground hawa-bg-warning/90\",\n error: \"hawa-text-destructive-foreground hawa-bg-destructive/90\",\n success: \"hawa-text-success-foreground hawa-bg-success/90\",\n hyper:\n \"hawa-text-white hawa-bg-gradient-to-tl hawa-from-pink-700 hawa-via-red-500 hawa-to-yellow-600 \",\n oceanic:\n \"hawa-text-white hawa-bg-gradient-to-bl hawa-from-green-500 hawa-via-blue-700 hawa-to-purple-500\",\n };\n\n return (\n <div ref={alertRef}>\n <div\n data-testid=\"alert\"\n aria-label=\"Alert\"\n role=\"alert\"\n dir={direction}\n className={cn(\n \"hawa-relative hawa-mb-4 hawa-flex hawa-flex-col hawa-rounded hawa-p-4 hawa-text-sm hawa-transition-all\",\n styleVariant[severity],\n closed ? \"hawa-opacity-0\" : \"hawa-opacity-100\",\n classNames?.root,\n )}\n >\n <div className=\"hawa-flex hawa-flex-row\">\n {icon && (\n <div\n className={cn(\n direction === \"rtl\" ? \"hawa-pl-2 hawa-pt-1\" : \"hawa-pr-2 hawa-pt-1\",\n classNames?.icon,\n )}\n >\n {icon}\n </div>\n )}\n <div className={cn(\"hawa-flex hawa-flex-col\", classNames?.content)}>\n <span\n className={cn(\n \"hawa-font-bold\",\n direction === \"rtl\" ? \"hawa-ml-8\" : \"hawa-mr-8\",\n classNames?.title,\n )}\n >\n {props.title}\n </span>\n <span\n className={cn(\n direction === \"rtl\" ? \"hawa-ml-8\" : \"hawa-mr-8\",\n props.persistent ? \"hawa-w-full\" : \"hawa-w-[calc(100% - 40px)]\",\n classNames?.text,\n )}\n >\n {props.text}\n </span>\n {props.actions && (\n <div\n className={cn(\"hawa-mt-2 hawa-flex hawa-flex-row hawa-gap-2\", classNames?.actions)}\n >\n {props.actions.map((act, index) => (\n <Button key={index} variant={act.variant} onClick={act.onClick()}>\n {act.label}\n </Button>\n ))}\n </div>\n )}\n </div>\n </div>\n {!props.persistent && (\n <button\n type=\"button\"\n data-dismiss-target=\"#alert-default\"\n aria-label=\"Close\"\n className={cn(\n \"hawa-absolute hawa-top-2 hawa-inline-flex hawa-h-9 hawa-w-9 hawa-items-center hawa-justify-center hawa-rounded-inner hawa-p-1.5 hawa-transition-all hover:hawa-text-gray-900\",\n closeButtonStyle[severity],\n direction === \"rtl\" ? \"hawa-left-2\" : \"hawa-right-2\",\n classNames?.closeButton,\n )}\n onClick={() => {\n if (props.onAlertClosed) {\n props.onAlertClosed();\n }\n if (!props.noDestroy) {\n setClosed(true);\n setTimeout(() => {\n if (alertRef?.current) {\n alertRef?.current.removeChild(alertRef?.current.children[0]);\n }\n }, 200);\n }\n }}\n >\n <span className=\"hawa-sr-only\">Close</span>\n <svg\n aria-label=\"Close Icon\"\n aria-hidden=\"true\"\n className=\"hawa-h-5 hawa-w-5\"\n fill=\"currentColor\"\n viewBox=\"0 0 20 20\"\n >\n <path\n fillRule=\"evenodd\"\n d=\"M4.293 4.293a1 1 0 011.414 0L10 8.586l4.293-4.293a1 1 0 111.414 1.414L11.414 10l4.293 4.293a1 1 0 01-1.414 1.414L10 11.414l-4.293 4.293a1 1 0 01-1.414-1.414L8.586 10 4.293 5.707a1 1 0 010-1.414z\"\n clipRule=\"evenodd\"\n ></path>\n </svg>\n </button>\n )}\n </div>\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(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 * as React from \"react\";\n\nimport { cn } from \"@util/index\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\n\nimport { HelperText } from \"../helperText\";\nimport { Label, LabelProps } from \"../label\";\nimport { Loading } from \"../loading/Loading\";\n\nconst buttonVariants = cva(\n \"hawa-inline-flex hawa-items-center hawa-select-none hawa-rounded-md hawa-text-sm hawa-font-medium hawa-ring-offset-background hawa-transition-colors focus-visible:hawa-outline-none focus-visible:hawa-ring-2 focus-visible:hawa-ring-ring focus-visible:hawa-ring-offset-2 disabled:hawa-pointer-events-none disabled:hawa-opacity-50\",\n {\n variants: {\n variant: {\n default: \"hawa-bg-primary hawa-text-primary-foreground hover:hawa-bg-primary/90\",\n light: \"hawa-bg-primary/20 hawa-text-primary hover:hawa-bg-primary/40\",\n destructive:\n \"hawa-bg-destructive hawa-text-destructive-foreground hover:hawa-bg-destructive/90\",\n outline:\n \"hawa-border hawa-border-input hawa-bg-transparent hover:hawa-bg-accent hover:hawa-text-accent-foreground\",\n secondary: \"hawa-bg-secondary hawa-text-secondary-foreground hover:hawa-bg-secondary/80\",\n ghost: \"hover:hawa-bg-accent hover:hawa-text-accent-foreground\",\n link: \"hawa-text-primary hawa-underline-offset-4 hover:hawa-underline\",\n combobox: \"hawa-bg-background hawa-border\",\n neoBrutalism: \"neo-brutalism\",\n // \"hawa-cursor-pointer hawa-transition-all hawa-uppercase hawa-font-mono dark:hawa-bg-black hawa-font-bold hawa-py-2 hawa-px-4 hawa-rounded hawa-border-2 hawa-border-primary hawa-shadow-color-primary hawa-transition-[hawa-transform_50ms, hawa-box-shadow_50ms] active:hawa-translate-x-0.5 active:hawa-translate-y-0.5 active:hawa-shadow-color-primary-active shadow-color-primary active:shadow-color-primary-active\",\n },\n size: {\n default: \"hawa-h-10 hawa-px-4 hawa-py-2\",\n heightless: \"hawa-px-4 hawa-py-4\",\n xs: \"hawa-h-fit hawa-min-h-[25px] hawa-py-1 hawa-text-[10px] hawa-px-2 \",\n sm: \"hawa-h-9 hawa-text-[11px] hawa-rounded-md hawa-px-3\",\n lg: \"hawa-h-11 hawa-rounded-md hawa-px-8\",\n xl: \"hawa-h-14 hawa-rounded-md hawa-px-10\",\n icon: \"hawa-h-10 hawa-w-10\",\n smallIcon: \"hawa-h-7 hawa-w-7\",\n },\n },\n defaultVariants: { variant: \"default\", size: \"default\" },\n },\n);\n\nexport interface ButtonProps\n extends React.ButtonHTMLAttributes<HTMLButtonElement>,\n VariantProps<typeof buttonVariants> {\n asChild?: boolean;\n centered?: boolean;\n isLoading?: boolean;\n label?: string;\n labelProps?: LabelProps;\n /** The small red text under the input field to show validation. */\n helperText?: any;\n showHelperText?: boolean;\n /**\n * If true, the button will include a label and helper text. This is useful for forms where the button is part of the form.\n */\n asInput?: boolean;\n}\n\nconst Button = React.forwardRef<HTMLButtonElement, ButtonProps>(\n (\n {\n className,\n label,\n variant,\n size,\n asChild = false,\n centered = true,\n isLoading,\n children,\n labelProps,\n showHelperText = false,\n asInput = false,\n ...props\n },\n ref,\n ) => {\n const Comp = \"button\";\n\n // Determine the color for the Loading component based on the variant\n const loadingColor =\n variant === \"outline\" || variant === \"ghost\" || variant === \"neoBrutalism\"\n ? \"hawa-bg-primary\"\n : \"hawa-bg-primary-foreground\";\n\n if (asInput) {\n return (\n <div className=\"hawa-flex hawa-flex-col hawa-gap-2\">\n {label && <Label {...labelProps}>{label}</Label>}\n <Comp\n className={cn(\n buttonVariants({ variant, size, className }),\n centered && \"hawa-justify-center\",\n )}\n ref={ref}\n {...props}\n >\n {isLoading ? (\n <Loading\n design={size === \"icon\" || size === \"smallIcon\" ? \"spinner\" : \"dots-pulse\"}\n themeMode={variant === \"outline\" ? \"light\" : \"dark\"}\n color={loadingColor}\n size={size === \"sm\" || size === \"xs\" ? \"xs\" : \"button\"}\n />\n ) : (\n children\n )}\n </Comp>\n {showHelperText && <HelperText helperText={props.helperText} />}\n </div>\n );\n } else {\n return (\n <Comp\n className={cn(\n buttonVariants({ variant, size, className }),\n centered && \"hawa-justify-center\",\n )}\n ref={ref}\n {...props}\n >\n {isLoading ? (\n <Loading\n design={size === \"icon\" || size === \"smallIcon\" ? \"spinner\" : \"dots-pulse\"}\n themeMode={variant === \"outline\" ? \"light\" : \"dark\"}\n color={loadingColor}\n size={size === \"sm\" || size === \"xs\" ? \"xs\" : \"button\"}\n />\n ) : (\n children\n )}\n </Comp>\n );\n }\n },\n);\n\nButton.displayName = \"Button\";\n\nexport { Button, buttonVariants };\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 React, { FC } from \"react\";\n\nimport { cn } from \"@util/index\";\n\ntype LoadingTypes = {\n /** Specifies the size of the loading component.*/\n size?: \"button\" | \"xs\" | \"sm\" | \"normal\" | \"lg\" | \"xl\";\n /** Determines the design of the loading animation.*/\n design?:\n | \"spinner\"\n | \"dots-bounce\"\n | \"dots-pulse\"\n | \"pulse\"\n | \"spinner-dots\"\n | \"squircle\"\n | \"square\"\n | \"progress\"\n | \"orbit\";\n /** Specifies the color of the loading component. By default it will inherit the value of --primary global CSS variable*/\n color?: string;\n classNames?: {\n container?: string;\n track?: string;\n car?: string;\n };\n themeMode?: \"dark\" | \"light\";\n};\n\nexport const Loading: FC<LoadingTypes> = ({\n design = \"spinner\",\n size = \"normal\",\n themeMode = \"light\",\n classNames,\n color,\n ...props\n}) => {\n let sizeStyles = {\n button: \"hawa-h-4 hawa-w-4\",\n xs: \"hawa-h-1 hawa-w-1\",\n sm: \"hawa-h-6 hawa-w-6\",\n normal: \"hawa-h-8 hawa-w-8\",\n lg: \"hawa-h-14 hawa-w-14\",\n xl: \"hawa-h-24 hawa-w-24\",\n };\n let progressSizes = {\n button: \"hawa-h-1\",\n xs: \"hawa-h-1 hawa-w-1\",\n sm: \"hawa-h-6 hawa-w-6\",\n normal: \"\",\n lg: \"hawa-h-6\",\n xl: \"hawa-h-10 hawa-w-64\",\n };\n\n let animationStyles: any = {\n pulse: \"hawa-animate-in hawa-fade-in hawa-duration-1000\",\n bounce: \"hawa-animate-bounce\",\n };\n switch (design.split(\"-\")[0]) {\n case \"dots\":\n return (\n <div className={cn(\"hawa-flex hawa-flex-row hawa-gap-2\", classNames?.container)}>\n <div\n className={cn(\n \"hawa-animate-bounce hawa-rounded-full hawa-delay-100 hawa-repeat-infinite\",\n size === \"button\" ? \"hawa-h-2 hawa-w-2\" : sizeStyles[size],\n animationStyles[design.split(\"-\")[1]],\n color ? color : \"hawa-bg-primary\",\n )}\n ></div>\n <div\n className={cn(\n \"hawa-animate-bounce hawa-rounded-full hawa-delay-200 hawa-repeat-infinite\",\n size === \"button\" ? \"hawa-h-2 hawa-w-2\" : sizeStyles[size],\n animationStyles[design.split(\"-\")[1]],\n color ? color : \"hawa-bg-primary\",\n )}\n ></div>\n <div\n className={cn(\n \"hawa-animate-bounce hawa-rounded-full hawa-delay-300 hawa-repeat-infinite\",\n size === \"button\" ? \"hawa-h-2 hawa-w-2\" : sizeStyles[size],\n animationStyles[design.split(\"-\")[1]],\n color ? color : \"hawa-bg-primary\",\n )}\n ></div>\n </div>\n );\n case \"square\":\n return (\n <svg\n className={cn(\"squircle-container\", sizeStyles[size], classNames?.container)}\n viewBox=\"0 0 35 35\"\n height=\"35\"\n width=\"35\"\n >\n <rect\n className=\"squircle-track\"\n x=\"2.5\"\n y=\"2.5\"\n fill=\"none\"\n strokeWidth=\"5px\"\n width=\"32.5\"\n height=\"32.5\"\n />\n <rect\n className=\"square-car\"\n x=\"2.5\"\n y=\"2.5\"\n fill=\"none\"\n strokeWidth=\"5px\"\n width=\"32.5\"\n height=\"32.5\"\n pathLength=\"100\"\n />\n </svg>\n );\n case \"squircle\":\n return (\n <svg\n x=\"0px\"\n y=\"0px\"\n viewBox=\"0 0 37 37\"\n height=\"37\"\n width=\"37\"\n preserveAspectRatio=\"xMidYMid meet\"\n className={cn(\"squircle-container\", sizeStyles[size], classNames?.container)}\n >\n <path\n className={cn(\"squircle-track\", classNames?.track)}\n fill=\"none\"\n strokeWidth=\"5\"\n pathLength=\"100\"\n d=\"M0.37 18.5 C0.37 5.772 5.772 0.37 18.5 0.37 S36.63 5.772 36.63 18.5 S31.228 36.63 18.5 36.63 S0.37 31.228 0.37 18.5\"\n ></path>\n <path\n className={cn(\"squircle-car\", classNames?.car)}\n fill=\"none\"\n strokeWidth=\"5\"\n pathLength=\"100\"\n d=\"M0.37 18.5 C0.37 5.772 5.772 0.37 18.5 0.37 S36.63 5.772 36.63 18.5 S31.228 36.63 18.5 36.63 S0.37 31.228 0.37 18.5\"\n ></path>\n </svg>\n );\n case \"progress\":\n return (\n <div\n className={cn(\n \"progress-loading after:hawa-rounded hawa-rounded\",\n progressSizes[size],\n classNames?.container,\n )}\n ></div>\n );\n case \"orbit\":\n return <div className={cn(\"orbit-container\", classNames?.container)}></div>;\n\n default:\n return (\n <svg\n viewBox=\"0 0 40 40\"\n height=\"40\"\n width=\"40\"\n className={cn(\"circle-container\", sizeStyles[size], classNames?.container)}\n >\n <circle\n className={cn(\n \"circle-track\",\n {\n \"hawa-stroke-primary-foreground\": themeMode === \"dark\",\n \"hawa-stroke-primary\": themeMode === \"light\",\n },\n classNames?.track,\n )}\n cx=\"20\"\n cy=\"20\"\n r=\"17.5\"\n fill=\"none\"\n strokeWidth=\"5px\"\n pathLength=\"100\"\n />\n <circle\n className={cn(\n \"circle-car\",\n {\n \"hawa-stroke-primary-foreground\": themeMode === \"dark\",\n \"hawa-stroke-primary\": themeMode === \"light\",\n },\n classNames?.car,\n )}\n cx=\"20\"\n cy=\"20\"\n r=\"17.5\"\n fill=\"none\"\n pathLength=\"100\"\n strokeWidth=\"5px\"\n />\n </svg>\n );\n }\n};\n"],"mappings":"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","names":["React","useEffect","useState","clsx","React","React","React","React","React","React","React","React","useState","acceptedFiles","useEffect","React","clsx"]}
1
+ {"version":3,"sources":["../../elements/fileDropzone/FileDropzone.tsx","../../elements/alert/Alert.tsx","../../util/index.ts","../../elements/button/Button.tsx","../../elements/helperText/HelperText.tsx","../../elements/label/Label.tsx","../../elements/tooltip/Tooltip.tsx","../../elements/loading/Loading.tsx"],"sourcesContent":["import React, { useEffect, useState } from \"react\";\nimport { useDropzone } from \"react-dropzone\";\n\nimport clsx from \"clsx\";\n\nimport { Alert } from \"../alert/Alert\";\nimport { Button } from \"../button\";\n\ntype FileDropzoneTypes = {\n /** The text label above the component. Consistant with the other form input fields */\n label?: string;\n files: [File];\n setFiles: any;\n setDeletedFiles: any;\n maxFiles: number;\n accept: any;\n onAcceptedFiles: any;\n showPreview: any;\n onDeleteFile: any;\n onClearFiles: any;\n maxSize: number;\n errorMessages: string;\n disclaimer?: boolean;\n termsLink?: string;\n privacyLink?: string;\n /** The translation object, use this to replace the default text with any translated text you want.*/\n texts: {\n errorUploading: any;\n clickHereToUpload: any;\n maxFileSize: any;\n tooManyFiles: any;\n fileTooLarge: any;\n acceptedFileTypes: any;\n invalidFileType: any;\n terms?: string;\n privacyPolicy?: string;\n disclaimer?: string;\n and?: string;\n };\n};\n\nexport const FileDropzone: React.FunctionComponent<FileDropzoneTypes> = ({\n texts,\n files,\n setFiles,\n setDeletedFiles,\n onAcceptedFiles,\n errorMessages,\n maxFiles,\n accept,\n showPreview,\n onDeleteFile,\n onClearFiles,\n disclaimer,\n maxSize,\n label,\n termsLink,\n privacyLink,\n}) => {\n const [cmp, setCmp] = useState(0);\n const [max, setMax] = useState<any>(0);\n const [filesAccepted, setFilesAccepted] = useState<any>([]);\n\n const { getRootProps, getInputProps, fileRejections, acceptedFiles, isDragActive } = useDropzone({\n multiple: true,\n accept: accept,\n maxSize: maxSize,\n maxFiles: maxFiles,\n useFsAccessApi: true,\n onDrop: (acceptedFiles) => {\n setFiles(\n acceptedFiles.map((file: any, index: any) =>\n Object.assign(file, {\n preview: URL.createObjectURL(file),\n }),\n ),\n );\n },\n });\n useEffect(\n () => () => {\n files?.forEach((file: any) => {\n URL.revokeObjectURL(file.preview);\n });\n },\n [files],\n );\n useEffect(() => {\n setFiles(acceptedFiles);\n }, [acceptedFiles, cmp, setFiles]);\n\n onClearFiles = () => {\n setFilesAccepted([]);\n setFilesAccepted(filesAccepted.splice(0, filesAccepted.length));\n setFiles([]);\n };\n\n const clearAllFiles = () => {\n setFilesAccepted([]);\n setFiles([]);\n };\n\n useEffect(() => {\n if (maxSize > 0) {\n const k = 1024;\n const sizes = [\"Bytes\", \"KB\", \"MB\", \"GB\", \"TB\", \"PB\", \"EB\", \"ZB\", \"YB\"];\n const i = Math.floor(Math.log(maxSize) / Math.log(1024));\n\n setMax(parseFloat((maxSize / Math.pow(1024, i)).toFixed(2)) + \" \" + sizes[i]);\n }\n }, [maxSize]);\n const errs = fileRejections.map((rej: any, i: any) => {\n switch (rej.errors[0].code) {\n case \"file-too-large\":\n return <Alert key={i} text={rej.file.name} title={texts.fileTooLarge} severity=\"error\" />;\n case \"too-many-files\":\n return <Alert key={i} text={rej.file.name} title={texts.tooManyFiles} severity=\"error\" />;\n case \"file-invalid-type\":\n return (\n <Alert key={i} text={rej.file.name} title={texts.invalidFileType} severity=\"error\" />\n );\n\n default:\n return <Alert key={i} text={rej.file.name} title={rej.errors[0].code} severity=\"error\" />;\n }\n });\n const thumbs = files?.map((file: any, index: any) => (\n <div className=\"hawa-relative hawa-rounded\" key={index}>\n <button\n onClick={(e) => {\n e.stopPropagation();\n setFilesAccepted(filesAccepted.splice(filesAccepted.indexOf(file), 1));\n setCmp(Math.random);\n onDeleteFile(file);\n }}\n type=\"button\"\n className=\"hawa-absolute hawa-left-0 hawa-ml-auto hawa-inline-flex hawa-items-center hawa-rounded-inner hawa-rounded-bl-none hawa-rounded-tr-none hawa-bg-gray-900 hawa-p-1.5 hawa-text-sm hawa-text-gray-400 hawa-transition-all hover:hawa-bg-gray-200 hover:hawa-text-gray-900 dark:hover:hawa-bg-gray-600 dark:hover:hawa-text-white\"\n data-modal-toggle=\"defaultModal\"\n >\n <svg\n aria-hidden=\"true\"\n className=\"hawa-h-5 hawa-w-5\"\n fill=\"currentColor\"\n viewBox=\"0 0 20 20\"\n >\n <path\n fillRule=\"evenodd\"\n d=\"M4.293 4.293a1 1 0 011.414 0L10 8.586l4.293-4.293a1 1 0 111.414 1.414L11.414 10l4.293 4.293a1 1 0 01-1.414 1.414L10 11.414l-4.293 4.293a1 1 0 01-1.414-1.414L8.586 10 4.293 5.707a1 1 0 010-1.414z\"\n clipRule=\"evenodd\"\n ></path>\n </svg>\n <span className=\"hawa-sr-only\">Close modal</span>\n </button>\n\n <div\n style={{\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\",\n overflow: \"hidden\",\n height: 100,\n width: 100,\n backgroundImage: `url(${file.preview})`,\n backgroundSize: \"cover\",\n backgroundPosition: \"center\",\n border: \"1px solid black\",\n }}\n className=\"hawa-rounded\"\n key={file.name}\n />\n </div>\n ));\n\n return (\n <div>\n {label && (\n <div className=\"hawa-mb-2 hawa-block hawa-text-sm hawa-font-medium hawa-text-gray-900 dark:hawa-text-gray-300\">\n {label}\n </div>\n )}\n <div\n className={clsx(\n \"hawa-flex hawa-flex-col hawa-justify-center hawa-rounded hawa-border hawa-border-dashed hawa-p-6 hawa-transition-all\",\n isDragActive ? \"hawa-bg-muted\" : \"hawa-bg-muted/20 hover:hawa-bg-muted/50\",\n )}\n >\n <div {...getRootProps({})}>\n <p {...getInputProps()} />\n <div className=\"hawa-flex hawa-flex-col hawa-items-center hawa-justify-center hawa-gap-2 hawa-pt-4 hawa-text-center\">\n <svg\n stroke=\"currentColor\"\n fill=\"none\"\n strokeWidth=\"2\"\n viewBox=\"0 0 24 24\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n height=\"1.5em\"\n width=\"1.5em\"\n >\n <path stroke=\"none\" d=\"M0 0h24v24H0z\" fill=\"none\"></path>\n <path d=\"M19 11v-2a2 2 0 0 0 -2 -2h-8a2 2 0 0 0 -2 2v8a2 2 0 0 0 2 2h2\"></path>\n <path d=\"M13 13l9 3l-4 2l-2 4l-3 -9\"></path>\n <path d=\"M3 3l0 .01\"></path>\n <path d=\"M7 3l0 .01\"></path>\n <path d=\"M11 3l0 .01\"></path>\n <path d=\"M15 3l0 .01\"></path>\n <path d=\"M3 7l0 .01\"></path>\n <path d=\"M3 11l0 .01\"></path>\n <path d=\"M3 15l0 .01\"></path>\n </svg>\n {typeof texts.clickHereToUpload === \"function\"\n ? texts.clickHereToUpload()\n : texts.clickHereToUpload}\n </div>\n <div className=\"hawa-select-none hawa-pt-2 hawa-text-center hawa-text-xs\">\n {texts.acceptedFileTypes} {accept.split(\",\")}\n </div>\n <div className=\"hawa-select-none hawa-pb-2 hawa-pt-1 hawa-text-center hawa-text-xs\">\n {texts.maxFileSize} {max}\n </div>\n </div>\n {acceptedFiles.length > 0 && (\n <div className=\"hawa-flex hawa-justify-center hawa-rounded-lg hawa-p-2\">\n <Button onClick={clearAllFiles}>Clear All</Button>\n </div>\n )}\n {acceptedFiles.length > 0 && thumbs && showPreview ? (\n <aside className=\"hawa-flex hawa-flex-row hawa-flex-wrap hawa-justify-center hawa-gap-2 hawa-rounded-lg hawa-p-2\">\n {thumbs}\n </aside>\n ) : null}\n <div className=\"px-4\">{fileRejections[0]?.errors[0]?.code && errs}</div>\n </div>\n {disclaimer && (\n <div className=\"hawa-mt-2 hawa-text-sm hawa-text-muted-foreground/50\">\n {texts.disclaimer ?? \"By uploading a file you agree to our\"}{\" \"}\n <a href={termsLink} className=\"clickable-link hawa-text-muted-foreground/50\">\n {texts.terms ?? \"Terms\"}\n </a>{\" \"}\n {texts.and ?? \"and\"}{\" \"}\n <a href={privacyLink} className=\"clickable-link hawa-text-muted-foreground/50\">\n {texts.privacyPolicy ?? \"Privacy Policy\"}\n </a>\n </div>\n )}\n </div>\n );\n};\n","import React, { useRef, useState, useEffect } from \"react\";\n\nimport { cn } from \"@util/index\";\n\nimport { DirectionType, SeverityType } from \"@_types/commonTypes\";\n\nimport { Button } from \"../button\";\n\ntype AlertTypes = {\n severity?: SeverityType | \"hyper\" | \"oceanic\";\n /** The title of the alert placed above the text of the alert. Can be used alone */\n title?: React.ReactNode;\n /** The text of the alert placed below the title of the alert. Can be used alone */\n text: React.ReactNode;\n /** The duration for the alert to stay on the screen */\n duration?: number;\n direction?: DirectionType;\n actions?: [\n {\n label: string;\n onClick: any;\n variant: \"outline\" | \"link\" | \"default\" | \"destructive\" | \"secondary\" | \"ghost\";\n },\n ];\n /** Removes the close button */\n persistent?: boolean;\n icon?: any;\n classNames?: {\n root?: string;\n content?: string;\n title?: string;\n text?: string;\n actions?: string;\n icon?: string;\n closeButton?: string;\n };\n onAlertClosed?: () => void;\n noDestroy?: boolean;\n};\n\nexport const Alert: React.FunctionComponent<AlertTypes> = ({\n direction = \"ltr\",\n severity = \"none\",\n duration,\n icon,\n classNames,\n ...props\n}) => {\n const alertRef = useRef<HTMLDivElement>(null);\n const [closed, setClosed] = useState(false);\n\n useEffect(() => {\n if (duration) {\n //To change opacity and hide the component\n const timeoutHide = setTimeout(() => {\n setClosed(true);\n }, duration);\n //To destroy the component after hiding it\n const timeoutDestroy = setTimeout(() => {\n setClosed(true);\n if (alertRef?.current) {\n alertRef?.current.removeChild(alertRef?.current.children[0]);\n }\n }, duration + 1000);\n\n return () => {\n clearTimeout(timeoutHide);\n clearTimeout(timeoutDestroy);\n };\n }\n }, [duration]);\n\n let closeButtonStyle = {\n none: \"\",\n info: \"\",\n warning: \"\",\n error: \"\",\n success: \"\",\n hyper: \"\",\n oceanic: \"\",\n };\n let styleVariant = {\n none: \"hawa-bg-background hawa-border\",\n info: \"hawa-text-info-foreground hawa-bg-info/90\",\n warning: \"hawa-text-warning-foreground hawa-bg-warning/90\",\n error: \"hawa-text-destructive-foreground hawa-bg-destructive/90\",\n success: \"hawa-text-success-foreground hawa-bg-success/90\",\n hyper:\n \"hawa-text-white hawa-bg-gradient-to-tl hawa-from-pink-700 hawa-via-red-500 hawa-to-yellow-600 \",\n oceanic:\n \"hawa-text-white hawa-bg-gradient-to-bl hawa-from-green-500 hawa-via-blue-700 hawa-to-purple-500\",\n };\n\n return (\n <div ref={alertRef}>\n <div\n data-testid=\"alert\"\n aria-label=\"Alert\"\n role=\"alert\"\n dir={direction}\n className={cn(\n \"hawa-relative hawa-mb-4 hawa-flex hawa-flex-col hawa-rounded hawa-p-4 hawa-text-sm hawa-transition-all\",\n styleVariant[severity],\n closed ? \"hawa-opacity-0\" : \"hawa-opacity-100\",\n classNames?.root,\n )}\n >\n <div className=\"hawa-flex hawa-flex-row\">\n {icon && (\n <div\n className={cn(\n direction === \"rtl\" ? \"hawa-pl-2 hawa-pt-1\" : \"hawa-pr-2 hawa-pt-1\",\n classNames?.icon,\n )}\n >\n {icon}\n </div>\n )}\n <div className={cn(\"hawa-flex hawa-flex-col\", classNames?.content)}>\n <span\n className={cn(\n \"hawa-font-bold\",\n direction === \"rtl\" ? \"hawa-ml-8\" : \"hawa-mr-8\",\n classNames?.title,\n )}\n >\n {props.title}\n </span>\n <span\n className={cn(\n direction === \"rtl\" ? \"hawa-ml-8\" : \"hawa-mr-8\",\n props.persistent ? \"hawa-w-full\" : \"hawa-w-[calc(100% - 40px)]\",\n classNames?.text,\n )}\n >\n {props.text}\n </span>\n {props.actions && (\n <div\n className={cn(\"hawa-mt-2 hawa-flex hawa-flex-row hawa-gap-2\", classNames?.actions)}\n >\n {props.actions.map((act, index) => (\n <Button key={index} variant={act.variant} onClick={act.onClick()}>\n {act.label}\n </Button>\n ))}\n </div>\n )}\n </div>\n </div>\n {!props.persistent && (\n <button\n type=\"button\"\n data-dismiss-target=\"#alert-default\"\n aria-label=\"Close\"\n className={cn(\n \"hawa-absolute hawa-top-2 hawa-inline-flex hawa-h-9 hawa-w-9 hawa-items-center hawa-justify-center hawa-rounded-inner hawa-p-1.5 hawa-transition-all hover:hawa-text-gray-900\",\n closeButtonStyle[severity],\n direction === \"rtl\" ? \"hawa-left-2\" : \"hawa-right-2\",\n classNames?.closeButton,\n )}\n onClick={() => {\n if (props.onAlertClosed) {\n props.onAlertClosed();\n }\n if (!props.noDestroy) {\n setClosed(true);\n setTimeout(() => {\n if (alertRef?.current) {\n alertRef?.current.removeChild(alertRef?.current.children[0]);\n }\n }, 200);\n }\n }}\n >\n <span className=\"hawa-sr-only\">Close</span>\n <svg\n aria-label=\"Close Icon\"\n aria-hidden=\"true\"\n className=\"hawa-h-5 hawa-w-5\"\n fill=\"currentColor\"\n viewBox=\"0 0 20 20\"\n >\n <path\n fillRule=\"evenodd\"\n d=\"M4.293 4.293a1 1 0 011.414 0L10 8.586l4.293-4.293a1 1 0 111.414 1.414L11.414 10l4.293 4.293a1 1 0 01-1.414 1.414L10 11.414l-4.293 4.293a1 1 0 01-1.414-1.414L8.586 10 4.293 5.707a1 1 0 010-1.414z\"\n clipRule=\"evenodd\"\n ></path>\n </svg>\n </button>\n )}\n </div>\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(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 * as React from \"react\";\n\nimport { cn } from \"@util/index\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\n\nimport { HelperText } from \"../helperText\";\nimport { Label, LabelProps } from \"../label\";\nimport { Loading } from \"../loading/Loading\";\n\nconst buttonVariants = cva(\n \"hawa-inline-flex hawa-items-center hawa-select-none hawa-rounded-md hawa-text-sm hawa-font-medium hawa-ring-offset-background hawa-transition-colors focus-visible:hawa-outline-none focus-visible:hawa-ring-2 focus-visible:hawa-ring-ring focus-visible:hawa-ring-offset-2 disabled:hawa-pointer-events-none disabled:hawa-opacity-50\",\n {\n variants: {\n variant: {\n default: \"hawa-bg-primary hawa-text-primary-foreground hover:hawa-bg-primary/90\",\n light: \"hawa-bg-primary/20 hawa-text-primary hover:hawa-bg-primary/40\",\n destructive:\n \"hawa-bg-destructive hawa-text-destructive-foreground hover:hawa-bg-destructive/90\",\n outline:\n \"hawa-border hawa-border-input hawa-bg-transparent hover:hawa-bg-accent hover:hawa-text-accent-foreground\",\n secondary: \"hawa-bg-secondary hawa-text-secondary-foreground hover:hawa-bg-secondary/80\",\n ghost: \"hover:hawa-bg-accent hover:hawa-text-accent-foreground\",\n link: \"hawa-text-primary hawa-underline-offset-4 hover:hawa-underline\",\n combobox: \"hawa-bg-background hawa-border\",\n neoBrutalism: \"neo-brutalism\",\n // \"hawa-cursor-pointer hawa-transition-all hawa-uppercase hawa-font-mono dark:hawa-bg-black hawa-font-bold hawa-py-2 hawa-px-4 hawa-rounded hawa-border-2 hawa-border-primary hawa-shadow-color-primary hawa-transition-[hawa-transform_50ms, hawa-box-shadow_50ms] active:hawa-translate-x-0.5 active:hawa-translate-y-0.5 active:hawa-shadow-color-primary-active shadow-color-primary active:shadow-color-primary-active\",\n },\n size: {\n default: \"hawa-h-10 hawa-px-4 hawa-py-2\",\n heightless: \"hawa-px-4 hawa-py-4\",\n xs: \"hawa-h-fit hawa-min-h-[25px] hawa-py-1 hawa-text-[10px] hawa-px-2 \",\n sm: \"hawa-h-9 hawa-text-[11px] hawa-rounded-md hawa-px-3\",\n lg: \"hawa-h-11 hawa-rounded-md hawa-px-8\",\n xl: \"hawa-h-14 hawa-rounded-md hawa-px-10\",\n icon: \"hawa-h-10 hawa-w-10\",\n smallIcon: \"hawa-h-7 hawa-w-7\",\n },\n },\n defaultVariants: { variant: \"default\", size: \"default\" },\n },\n);\n\nexport interface ButtonProps\n extends React.ButtonHTMLAttributes<HTMLButtonElement>,\n VariantProps<typeof buttonVariants> {\n asChild?: boolean;\n centered?: boolean;\n isLoading?: boolean;\n label?: string;\n labelProps?: LabelProps;\n /** The small red text under the input field to show validation. */\n helperText?: any;\n showHelperText?: boolean;\n /**\n * If true, the button will include a label and helper text. This is useful for forms where the button is part of the form.\n */\n asInput?: boolean;\n}\n\nconst Button = React.forwardRef<HTMLButtonElement, ButtonProps>(\n (\n {\n className,\n label,\n variant,\n size,\n asChild = false,\n centered = true,\n isLoading,\n children,\n labelProps,\n showHelperText = false,\n asInput = false,\n ...props\n },\n ref,\n ) => {\n const Comp = \"button\";\n\n // Determine the color for the Loading component based on the variant\n const loadingColor =\n variant === \"outline\" || variant === \"ghost\" || variant === \"neoBrutalism\"\n ? \"hawa-bg-primary\"\n : \"hawa-bg-primary-foreground\";\n\n if (asInput) {\n return (\n <div className=\"hawa-flex hawa-flex-col hawa-gap-2\">\n {label && <Label {...labelProps}>{label}</Label>}\n <Comp\n className={cn(\n buttonVariants({ variant, size, className }),\n centered && \"hawa-justify-center\",\n )}\n ref={ref}\n {...props}\n >\n {isLoading ? (\n <Loading\n design={size === \"icon\" || size === \"smallIcon\" ? \"spinner\" : \"dots-pulse\"}\n themeMode={variant === \"outline\" ? \"light\" : \"dark\"}\n color={loadingColor}\n size={size === \"sm\" || size === \"xs\" ? \"xs\" : \"button\"}\n />\n ) : (\n children\n )}\n </Comp>\n {showHelperText && <HelperText helperText={props.helperText} />}\n </div>\n );\n } else {\n return (\n <Comp\n className={cn(\n buttonVariants({ variant, size, className }),\n centered && \"hawa-justify-center\",\n )}\n ref={ref}\n {...props}\n >\n {isLoading ? (\n <Loading\n design={size === \"icon\" || size === \"smallIcon\" ? \"spinner\" : \"dots-pulse\"}\n themeMode={variant === \"outline\" ? \"light\" : \"dark\"}\n color={loadingColor}\n size={size === \"sm\" || size === \"xs\" ? \"xs\" : \"button\"}\n />\n ) : (\n children\n )}\n </Comp>\n );\n }\n },\n);\n\nButton.displayName = \"Button\";\n\nexport { Button, buttonVariants };\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 React, { FC } from \"react\";\n\nimport { cn } from \"@util/index\";\n\ntype LoadingTypes = {\n /** Specifies the size of the loading component.*/\n size?: \"button\" | \"xs\" | \"sm\" | \"normal\" | \"lg\" | \"xl\";\n /** Determines the design of the loading animation.*/\n design?:\n | \"spinner\"\n | \"dots-bounce\"\n | \"dots-pulse\"\n | \"pulse\"\n | \"spinner-dots\"\n | \"squircle\"\n | \"square\"\n | \"progress\"\n | \"orbit\";\n /** Specifies the color of the loading component. By default it will inherit the value of --primary global CSS variable*/\n color?: string;\n classNames?: {\n container?: string;\n track?: string;\n car?: string;\n };\n themeMode?: \"dark\" | \"light\";\n};\n\nexport const Loading: FC<LoadingTypes> = ({\n design = \"spinner\",\n size = \"normal\",\n themeMode = \"light\",\n classNames,\n color,\n ...props\n}) => {\n let sizeStyles = {\n button: \"hawa-h-4 hawa-w-4\",\n xs: \"hawa-h-1 hawa-w-1\",\n sm: \"hawa-h-6 hawa-w-6\",\n normal: \"hawa-h-8 hawa-w-8\",\n lg: \"hawa-h-14 hawa-w-14\",\n xl: \"hawa-h-24 hawa-w-24\",\n };\n let progressSizes = {\n button: \"hawa-h-1\",\n xs: \"hawa-h-1 hawa-w-1\",\n sm: \"hawa-h-6 hawa-w-6\",\n normal: \"\",\n lg: \"hawa-h-6\",\n xl: \"hawa-h-10 hawa-w-64\",\n };\n\n let animationStyles: any = {\n pulse: \"hawa-animate-in hawa-fade-in hawa-duration-1000\",\n bounce: \"hawa-animate-bounce\",\n };\n switch (design.split(\"-\")[0]) {\n case \"dots\":\n return (\n <div className={cn(\"hawa-flex hawa-flex-row hawa-gap-2\", classNames?.container)}>\n <div\n className={cn(\n \"hawa-animate-bounce hawa-rounded-full hawa-delay-100 hawa-repeat-infinite\",\n size === \"button\" ? \"hawa-h-2 hawa-w-2\" : sizeStyles[size],\n animationStyles[design.split(\"-\")[1]],\n color ? color : \"hawa-bg-primary\",\n )}\n ></div>\n <div\n className={cn(\n \"hawa-animate-bounce hawa-rounded-full hawa-delay-200 hawa-repeat-infinite\",\n size === \"button\" ? \"hawa-h-2 hawa-w-2\" : sizeStyles[size],\n animationStyles[design.split(\"-\")[1]],\n color ? color : \"hawa-bg-primary\",\n )}\n ></div>\n <div\n className={cn(\n \"hawa-animate-bounce hawa-rounded-full hawa-delay-300 hawa-repeat-infinite\",\n size === \"button\" ? \"hawa-h-2 hawa-w-2\" : sizeStyles[size],\n animationStyles[design.split(\"-\")[1]],\n color ? color : \"hawa-bg-primary\",\n )}\n ></div>\n </div>\n );\n case \"square\":\n return (\n <svg\n className={cn(\"squircle-container\", sizeStyles[size], classNames?.container)}\n viewBox=\"0 0 35 35\"\n height=\"35\"\n width=\"35\"\n >\n <rect\n className=\"squircle-track\"\n x=\"2.5\"\n y=\"2.5\"\n fill=\"none\"\n strokeWidth=\"5px\"\n width=\"32.5\"\n height=\"32.5\"\n />\n <rect\n className=\"square-car\"\n x=\"2.5\"\n y=\"2.5\"\n fill=\"none\"\n strokeWidth=\"5px\"\n width=\"32.5\"\n height=\"32.5\"\n pathLength=\"100\"\n />\n </svg>\n );\n case \"squircle\":\n return (\n <svg\n x=\"0px\"\n y=\"0px\"\n viewBox=\"0 0 37 37\"\n height=\"37\"\n width=\"37\"\n preserveAspectRatio=\"xMidYMid meet\"\n className={cn(\"squircle-container\", sizeStyles[size], classNames?.container)}\n >\n <path\n className={cn(\"squircle-track\", classNames?.track)}\n fill=\"none\"\n strokeWidth=\"5\"\n pathLength=\"100\"\n d=\"M0.37 18.5 C0.37 5.772 5.772 0.37 18.5 0.37 S36.63 5.772 36.63 18.5 S31.228 36.63 18.5 36.63 S0.37 31.228 0.37 18.5\"\n ></path>\n <path\n className={cn(\"squircle-car\", classNames?.car)}\n fill=\"none\"\n strokeWidth=\"5\"\n pathLength=\"100\"\n d=\"M0.37 18.5 C0.37 5.772 5.772 0.37 18.5 0.37 S36.63 5.772 36.63 18.5 S31.228 36.63 18.5 36.63 S0.37 31.228 0.37 18.5\"\n ></path>\n </svg>\n );\n case \"progress\":\n return (\n <div\n className={cn(\n \"progress-loading after:hawa-rounded hawa-rounded\",\n progressSizes[size],\n classNames?.container,\n )}\n ></div>\n );\n case \"orbit\":\n return <div className={cn(\"orbit-container\", classNames?.container)}></div>;\n\n default:\n return (\n <svg\n viewBox=\"0 0 40 40\"\n height=\"40\"\n width=\"40\"\n className={cn(\"circle-container\", sizeStyles[size], classNames?.container)}\n >\n <circle\n className={cn(\n \"circle-track\",\n {\n \"hawa-stroke-primary-foreground\": themeMode === \"dark\",\n \"hawa-stroke-primary\": themeMode === \"light\",\n },\n classNames?.track,\n )}\n cx=\"20\"\n cy=\"20\"\n r=\"17.5\"\n fill=\"none\"\n strokeWidth=\"5px\"\n pathLength=\"100\"\n />\n <circle\n className={cn(\n \"circle-car\",\n {\n \"hawa-stroke-primary-foreground\": themeMode === \"dark\",\n \"hawa-stroke-primary\": themeMode === \"light\",\n },\n classNames?.car,\n )}\n cx=\"20\"\n cy=\"20\"\n r=\"17.5\"\n fill=\"none\"\n pathLength=\"100\"\n strokeWidth=\"5px\"\n />\n </svg>\n );\n }\n};\n"],"mappings":"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","names":["React","useEffect","useState","clsx","React","React","React","React","React","React","React","React","useState","acceptedFiles","useEffect","React","clsx"]}
@@ -56,7 +56,7 @@ declare const useDialogCarousel: (options?: any) => DialogCarouselType;
56
56
  declare const useMultiStepDialog: (initialStep: any, stepIds: any[], setOpenDialog: any) => {
57
57
  currentStep: any;
58
58
  dialogHeight: null;
59
- visibleStepRef: React__default.MutableRefObject<any>;
59
+ visibleStepRef: React__default.RefObject<any>;
60
60
  handleNext: () => void;
61
61
  handleBack: () => void;
62
62
  };
@@ -107,7 +107,7 @@ interface ContentRect {
107
107
  }
108
108
  declare const useMeasureDirty: (ref: RefObject<HTMLElement>) => ContentRect;
109
109
 
110
- declare function useClickOutside<T extends HTMLElement = any>(handler: () => void, events?: string[] | null, nodes?: (HTMLElement | null)[]): React$1.MutableRefObject<T | undefined>;
110
+ declare function useClickOutside<T extends HTMLElement = any>(handler: () => void, events?: string[] | null, nodes?: (HTMLElement | null)[]): React$1.RefObject<T | null>;
111
111
 
112
112
  type KeyboardModifiers = {
113
113
  alt: boolean;
@@ -56,7 +56,7 @@ declare const useDialogCarousel: (options?: any) => DialogCarouselType;
56
56
  declare const useMultiStepDialog: (initialStep: any, stepIds: any[], setOpenDialog: any) => {
57
57
  currentStep: any;
58
58
  dialogHeight: null;
59
- visibleStepRef: React__default.MutableRefObject<any>;
59
+ visibleStepRef: React__default.RefObject<any>;
60
60
  handleNext: () => void;
61
61
  handleBack: () => void;
62
62
  };
@@ -107,7 +107,7 @@ interface ContentRect {
107
107
  }
108
108
  declare const useMeasureDirty: (ref: RefObject<HTMLElement>) => ContentRect;
109
109
 
110
- declare function useClickOutside<T extends HTMLElement = any>(handler: () => void, events?: string[] | null, nodes?: (HTMLElement | null)[]): React$1.MutableRefObject<T | undefined>;
110
+ declare function useClickOutside<T extends HTMLElement = any>(handler: () => void, events?: string[] | null, nodes?: (HTMLElement | null)[]): React$1.RefObject<T | null>;
111
111
 
112
112
  type KeyboardModifiers = {
113
113
  alt: boolean;
@@ -383,7 +383,7 @@ function useMediaQuery(query, initialValue, { getInitialValueInEffect } = {
383
383
  const [matches, setMatches] = (0, import_react11.useState)(
384
384
  getInitialValueInEffect ? initialValue : getInitialValue(query, initialValue)
385
385
  );
386
- const queryRef = (0, import_react11.useRef)();
386
+ const queryRef = (0, import_react11.useRef)(null);
387
387
  (0, import_react11.useEffect)(() => {
388
388
  if ("matchMedia" in window) {
389
389
  queryRef.current = window.matchMedia(query);
@@ -464,7 +464,7 @@ var useMeasureDirty = (ref) => {
464
464
  var import_react16 = require("react");
465
465
  var DEFAULT_EVENTS = ["mousedown", "touchstart"];
466
466
  function useClickOutside(handler, events, nodes) {
467
- const ref = (0, import_react16.useRef)();
467
+ const ref = (0, import_react16.useRef)(null);
468
468
  (0, import_react16.useEffect)(() => {
469
469
  const listener = (event) => {
470
470
  const { target } = event != null ? event : {};
@@ -18,11 +18,11 @@ import {
18
18
  useViewportSize,
19
19
  useWindowEvent,
20
20
  useWindowSize
21
- } from "../chunk-3AANFRLZ.mjs";
21
+ } from "../chunk-Z3ZL22XB.mjs";
22
22
  import {
23
23
  useBreakpoint,
24
24
  useClickOutside
25
- } from "../chunk-5SQBJRWE.mjs";
25
+ } from "../chunk-OWMN44TT.mjs";
26
26
  export {
27
27
  getHotkeyHandler,
28
28
  getHotkeyMatcher,