@sikka/hawa 0.43.5-next → 0.43.6-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 (127) hide show
  1. package/dist/alert/index.d.mts +9 -1
  2. package/dist/alert/index.d.ts +9 -1
  3. package/dist/alert/index.js +40 -36
  4. package/dist/alert/index.js.map +1 -1
  5. package/dist/alert/index.mjs +40 -36
  6. package/dist/alert/index.mjs.map +1 -1
  7. package/dist/appLayout/index.js +11 -22
  8. package/dist/appLayout/index.js.map +1 -1
  9. package/dist/appLayout/index.mjs +11 -22
  10. package/dist/appLayout/index.mjs.map +1 -1
  11. package/dist/backToTop/index.js +11 -22
  12. package/dist/backToTop/index.js.map +1 -1
  13. package/dist/backToTop/index.mjs +11 -22
  14. package/dist/backToTop/index.mjs.map +1 -1
  15. package/dist/blocks/auth/index.js +40 -36
  16. package/dist/blocks/auth/index.mjs +33 -18
  17. package/dist/blocks/feedback/index.js +11 -22
  18. package/dist/blocks/feedback/index.mjs +5 -5
  19. package/dist/blocks/index.js +40 -36
  20. package/dist/blocks/index.mjs +2 -2
  21. package/dist/blocks/misc/index.js +11 -22
  22. package/dist/blocks/misc/index.mjs +5 -5
  23. package/dist/blocks/pricing/index.js +11 -22
  24. package/dist/blocks/pricing/index.mjs +4 -4
  25. package/dist/button/index.d.mts +1 -1
  26. package/dist/button/index.d.ts +1 -1
  27. package/dist/button/index.js +11 -22
  28. package/dist/button/index.js.map +1 -1
  29. package/dist/button/index.mjs +11 -22
  30. package/dist/button/index.mjs.map +1 -1
  31. package/dist/calendar/index.js +12 -23
  32. package/dist/calendar/index.js.map +1 -1
  33. package/dist/calendar/index.mjs +12 -23
  34. package/dist/calendar/index.mjs.map +1 -1
  35. package/dist/{chunk-RPJYSE6Y.mjs → chunk-3B7UZCET.mjs} +11 -22
  36. package/dist/{chunk-ZPNZUWM5.mjs → chunk-6LI35F6L.mjs} +11 -22
  37. package/dist/{chunk-QDZMNVKS.mjs → chunk-A6PONMZ6.mjs} +1 -1
  38. package/dist/{chunk-PORTGNAK.mjs → chunk-DYYINLRJ.mjs} +1 -1
  39. package/dist/{chunk-WJ6XCEUI.mjs → chunk-FIUKVRL5.mjs} +1 -1
  40. package/dist/{chunk-VWJIORNH.mjs → chunk-FUYMZP4J.mjs} +1 -1
  41. package/dist/{chunk-P7TMXOPP.mjs → chunk-JDCQLGWW.mjs} +1 -1
  42. package/dist/{chunk-QBPDB7E2.mjs → chunk-JKZQWCAQ.mjs} +1 -1
  43. package/dist/{chunk-3MJGVWY2.mjs → chunk-VVUNGE7V.mjs} +30 -15
  44. package/dist/{chunk-ZWQWYHT4.mjs → chunk-XC6FSDW7.mjs} +1 -1
  45. package/dist/codeBlock/index.js +11 -22
  46. package/dist/codeBlock/index.js.map +1 -1
  47. package/dist/codeBlock/index.mjs +11 -22
  48. package/dist/codeBlock/index.mjs.map +1 -1
  49. package/dist/colorPicker/index.js +11 -22
  50. package/dist/colorPicker/index.js.map +1 -1
  51. package/dist/colorPicker/index.mjs +11 -22
  52. package/dist/colorPicker/index.mjs.map +1 -1
  53. package/dist/combobox/index.js +11 -22
  54. package/dist/combobox/index.js.map +1 -1
  55. package/dist/combobox/index.mjs +11 -22
  56. package/dist/combobox/index.mjs.map +1 -1
  57. package/dist/dataTable/index.js +11 -22
  58. package/dist/dataTable/index.js.map +1 -1
  59. package/dist/dataTable/index.mjs +11 -22
  60. package/dist/dataTable/index.mjs.map +1 -1
  61. package/dist/datePicker/index.d.mts +1 -1
  62. package/dist/datePicker/index.d.ts +1 -1
  63. package/dist/datePicker/index.js +12 -23
  64. package/dist/datePicker/index.js.map +1 -1
  65. package/dist/datePicker/index.mjs +12 -23
  66. package/dist/datePicker/index.mjs.map +1 -1
  67. package/dist/docsLayout/index.js +11 -22
  68. package/dist/docsLayout/index.js.map +1 -1
  69. package/dist/docsLayout/index.mjs +11 -22
  70. package/dist/docsLayout/index.mjs.map +1 -1
  71. package/dist/elements/index.d.mts +10 -2
  72. package/dist/elements/index.d.ts +10 -2
  73. package/dist/elements/index.js +40 -36
  74. package/dist/elements/index.mjs +3 -3
  75. package/dist/fileDropzone/index.js +40 -36
  76. package/dist/fileDropzone/index.js.map +1 -1
  77. package/dist/fileDropzone/index.mjs +40 -36
  78. package/dist/fileDropzone/index.mjs.map +1 -1
  79. package/dist/index.d.mts +9 -1
  80. package/dist/index.d.ts +9 -1
  81. package/dist/index.js +40 -36
  82. package/dist/index.mjs +40 -36
  83. package/dist/input/index.js +11 -22
  84. package/dist/input/index.js.map +1 -1
  85. package/dist/input/index.mjs +11 -22
  86. package/dist/input/index.mjs.map +1 -1
  87. package/dist/interfaceSettings/index.js +11 -22
  88. package/dist/interfaceSettings/index.js.map +1 -1
  89. package/dist/interfaceSettings/index.mjs +11 -22
  90. package/dist/interfaceSettings/index.mjs.map +1 -1
  91. package/dist/layout/index.js +11 -22
  92. package/dist/layout/index.mjs +2 -2
  93. package/dist/passwordInput/index.js +11 -22
  94. package/dist/passwordInput/index.js.map +1 -1
  95. package/dist/passwordInput/index.mjs +11 -22
  96. package/dist/passwordInput/index.mjs.map +1 -1
  97. package/dist/phoneInput/index.js +11 -22
  98. package/dist/phoneInput/index.js.map +1 -1
  99. package/dist/phoneInput/index.mjs +11 -22
  100. package/dist/phoneInput/index.mjs.map +1 -1
  101. package/dist/pinInput/index.js +11 -22
  102. package/dist/pinInput/index.js.map +1 -1
  103. package/dist/pinInput/index.mjs +11 -22
  104. package/dist/pinInput/index.mjs.map +1 -1
  105. package/dist/radio/index.js +11 -22
  106. package/dist/radio/index.js.map +1 -1
  107. package/dist/radio/index.mjs +11 -22
  108. package/dist/radio/index.mjs.map +1 -1
  109. package/dist/select/index.js +11 -22
  110. package/dist/select/index.js.map +1 -1
  111. package/dist/select/index.mjs +11 -22
  112. package/dist/select/index.mjs.map +1 -1
  113. package/dist/sortButton/index.js +11 -22
  114. package/dist/sortButton/index.js.map +1 -1
  115. package/dist/sortButton/index.mjs +11 -22
  116. package/dist/sortButton/index.mjs.map +1 -1
  117. package/dist/splitButton/index.d.mts +1 -1
  118. package/dist/splitButton/index.d.ts +1 -1
  119. package/dist/splitButton/index.js +11 -22
  120. package/dist/splitButton/index.js.map +1 -1
  121. package/dist/splitButton/index.mjs +11 -22
  122. package/dist/splitButton/index.mjs.map +1 -1
  123. package/dist/textarea/index.js +11 -22
  124. package/dist/textarea/index.js.map +1 -1
  125. package/dist/textarea/index.mjs +11 -22
  126. package/dist/textarea/index.mjs.map +1 -1
  127. package/package.json +1 -1
@@ -22,28 +22,17 @@ import { cva } from "class-variance-authority";
22
22
  // elements/helperText/HelperText.tsx
23
23
  import React from "react";
24
24
  var HelperText = ({
25
- helperText,
26
- size = "xs"
27
- }) => {
28
- let sizes = {
29
- xs: "hawa-text-xs hawa-h-4",
30
- sm: "hawa-text-sm",
31
- md: "hawa-text-md",
32
- lg: "hawa-text-lg",
33
- xl: "hawa-text-xl"
34
- };
35
- return /* @__PURE__ */ React.createElement(
36
- "p",
37
- {
38
- className: cn(
39
- "hawa-my-0 hawa-text-start hawa-text-helper-color hawa-transition-all",
40
- helperText ? "hawa-opacity-100" : "hawa-h-0 hawa-opacity-0",
41
- sizes[size]
42
- )
43
- },
44
- helperText
45
- );
46
- };
25
+ helperText
26
+ }) => /* @__PURE__ */ React.createElement(
27
+ "p",
28
+ {
29
+ className: cn(
30
+ "hawa-my-0 hawa-text-start hawa-text-helper-color hawa-transition-all hawa-text-xs",
31
+ helperText ? "hawa-opacity-100 hawa-h-4" : "hawa-h-0 hawa-opacity-0"
32
+ )
33
+ },
34
+ helperText
35
+ );
47
36
 
48
37
  // elements/label/Label.tsx
49
38
  import * as React3 from "react";
@@ -480,7 +469,7 @@ var Alert = ({
480
469
  severity = "none",
481
470
  duration,
482
471
  icon,
483
- className,
472
+ classNames,
484
473
  ...props
485
474
  }) => {
486
475
  const alertRef = useRef(null);
@@ -531,21 +520,25 @@ var Alert = ({
531
520
  "hawa-relative hawa-mb-4 hawa-flex hawa-flex-col hawa-rounded hawa-p-4 hawa-text-sm hawa-transition-all",
532
521
  styleVariant[severity],
533
522
  closed ? "hawa-opacity-0" : "hawa-opacity-100",
534
- className
523
+ classNames == null ? void 0 : classNames.root
535
524
  )
536
525
  },
537
526
  /* @__PURE__ */ React6.createElement("div", { className: "hawa-flex hawa-flex-row" }, icon && /* @__PURE__ */ React6.createElement(
538
527
  "div",
539
528
  {
540
- className: direction === "rtl" ? "hawa-pl-2 hawa-pt-1" : "hawa-pr-2 hawa-pt-1"
529
+ className: cn(
530
+ direction === "rtl" ? "hawa-pl-2 hawa-pt-1" : "hawa-pr-2 hawa-pt-1",
531
+ classNames == null ? void 0 : classNames.icon
532
+ )
541
533
  },
542
534
  icon
543
- ), /* @__PURE__ */ React6.createElement("div", { className: "hawa-flex hawa-flex-col" }, /* @__PURE__ */ React6.createElement(
535
+ ), /* @__PURE__ */ React6.createElement("div", { className: cn("hawa-flex hawa-flex-col", classNames == null ? void 0 : classNames.content) }, /* @__PURE__ */ React6.createElement(
544
536
  "span",
545
537
  {
546
538
  className: cn(
547
539
  "hawa-font-bold",
548
- direction === "rtl" ? "hawa-ml-8" : "hawa-mr-8"
540
+ direction === "rtl" ? "hawa-ml-8" : "hawa-mr-8",
541
+ classNames == null ? void 0 : classNames.title
549
542
  )
550
543
  },
551
544
  props.title
@@ -554,19 +547,29 @@ var Alert = ({
554
547
  {
555
548
  className: cn(
556
549
  direction === "rtl" ? "hawa-ml-8" : "hawa-mr-8",
557
- props.persistent ? "hawa-w-full" : "hawa-w-[calc(100% - 40px)]"
550
+ props.persistent ? "hawa-w-full" : "hawa-w-[calc(100% - 40px)]",
551
+ classNames == null ? void 0 : classNames.text
558
552
  )
559
553
  },
560
554
  props.text
561
- ), props.actions && /* @__PURE__ */ React6.createElement("div", { className: "hawa-mt-2 hawa-flex hawa-flex-row hawa-gap-2" }, props.actions.map((act, index) => /* @__PURE__ */ React6.createElement(
562
- Button,
555
+ ), props.actions && /* @__PURE__ */ React6.createElement(
556
+ "div",
563
557
  {
564
- key: index,
565
- variant: act.variant,
566
- onClick: act.onClick()
558
+ className: cn(
559
+ "hawa-mt-2 hawa-flex hawa-flex-row hawa-gap-2",
560
+ classNames == null ? void 0 : classNames.actions
561
+ )
567
562
  },
568
- act.label
569
- ))))),
563
+ props.actions.map((act, index) => /* @__PURE__ */ React6.createElement(
564
+ Button,
565
+ {
566
+ key: index,
567
+ variant: act.variant,
568
+ onClick: act.onClick()
569
+ },
570
+ act.label
571
+ ))
572
+ ))),
570
573
  !props.persistent && /* @__PURE__ */ React6.createElement(
571
574
  "button",
572
575
  {
@@ -576,7 +579,8 @@ var Alert = ({
576
579
  className: cn(
577
580
  "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",
578
581
  closeButtonStyle[severity],
579
- direction === "rtl" ? "hawa-left-2" : "hawa-right-2"
582
+ direction === "rtl" ? "hawa-left-2" : "hawa-right-2",
583
+ classNames == null ? void 0 : classNames.closeButton
580
584
  ),
581
585
  onClick: () => {
582
586
  if (props.onAlertClosed) {
@@ -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 {\n getRootProps,\n getInputProps,\n fileRejections,\n acceptedFiles,\n isDragActive,\n } = 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(\n parseFloat((maxSize / Math.pow(1024, i)).toFixed(2)) + \" \" + sizes[i],\n );\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 (\n <Alert\n key={i}\n text={rej.file.name}\n title={texts.fileTooLarge}\n severity=\"error\"\n />\n );\n case \"too-many-files\":\n return (\n <Alert\n key={i}\n text={rej.file.name}\n title={texts.tooManyFiles}\n severity=\"error\"\n />\n );\n case \"file-invalid-type\":\n return (\n <Alert\n key={i}\n text={rej.file.name}\n title={texts.invalidFileType}\n severity=\"error\"\n />\n );\n\n default:\n return (\n <Alert\n key={i}\n text={rej.file.name}\n title={rej.errors[0].code}\n severity=\"error\"\n />\n );\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\n ? \"hawa-bg-muted\"\n : \"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\n href={termsLink}\n className=\"clickable-link hawa-text-muted-foreground/50\"\n >\n {texts.terms ?? \"Terms\"}\n </a>{\" \"}\n {texts.and ?? \"and\"}{\" \"}\n <a\n href={privacyLink}\n className=\"clickable-link hawa-text-muted-foreground/50\"\n >\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:\n | \"outline\"\n | \"link\"\n | \"default\"\n | \"destructive\"\n | \"secondary\"\n | \"ghost\";\n },\n ];\n /** Removes the close button */\n persistent?: boolean;\n icon?: any;\n className?: string;\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 className,\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 className,\n )}\n >\n <div className=\"hawa-flex hawa-flex-row\">\n {icon && (\n <div\n className={\n direction === \"rtl\"\n ? \"hawa-pl-2 hawa-pt-1\"\n : \"hawa-pr-2 hawa-pt-1\"\n }\n >\n {icon}\n </div>\n )}\n <div className=\"hawa-flex hawa-flex-col\">\n <span\n className={cn(\n \"hawa-font-bold\",\n direction === \"rtl\" ? \"hawa-ml-8\" : \"hawa-mr-8\",\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 )}\n >\n {props.text}\n </span>\n {props.actions && (\n <div className=\"hawa-mt-2 hawa-flex hawa-flex-row hawa-gap-2\">\n {props.actions.map((act, index) => (\n <Button\n key={index}\n variant={act.variant}\n onClick={act.onClick()}\n >\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 )}\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(\n alertRef?.current.children[0],\n );\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(\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 * 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:\n \"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:\n \"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={\n size === \"icon\" || size === \"smallIcon\"\n ? \"spinner\"\n : \"dots-pulse\"\n }\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={\n size === \"icon\" || size === \"smallIcon\"\n ? \"spinner\"\n : \"dots-pulse\"\n }\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 = ({\n helperText,\n size = \"xs\",\n}: {\n helperText?: any;\n size?: \"xs\" | \"sm\" | \"md\" | \"lg\" | \"xl\";\n}) => {\n let sizes = {\n xs: \"hawa-text-xs hawa-h-4\",\n sm: \"hawa-text-sm\",\n md: \"hawa-text-md\",\n lg: \"hawa-text-lg\",\n xl: \"hawa-text-xl\",\n };\n\n return (\n <p\n className={cn(\n \"hawa-my-0 hawa-text-start hawa-text-helper-color hawa-transition-all\",\n helperText ? \"hawa-opacity-100\" : \"hawa-h-0 hawa-opacity-0\",\n sizes[size],\n )}\n >\n {helperText}\n </p>\n );\n};\n","import * as React from \"react\";\n\nimport { cn } from \"@util/index\";\n\nimport { PositionType } from \"@_types/commonTypes\";\n\nimport { Tooltip } from \"../tooltip\";\n\nexport type LabelProps = {\n hint?: React.ReactNode;\n hintSide?: PositionType;\n htmlFor?: string;\n required?: boolean;\n};\n\nconst Label = React.forwardRef<\n HTMLLabelElement,\n React.LabelHTMLAttributes<HTMLLabelElement> & LabelProps\n>(({ className, hint, hintSide, required, children, ...props }, ref) => (\n <div className=\"hawa-flex hawa-flex-row hawa-items-center hawa-gap-1 hawa-transition-all\">\n <label\n ref={ref}\n className={cn(\n \"hawa-text-sm hawa-font-medium hawa-leading-none peer-disabled:hawa-cursor-not-allowed peer-disabled:hawa-opacity-70\",\n className,\n )}\n {...props}\n >\n {children}\n {required && <span className=\"hawa-mx-0.5 hawa-text-red-500\">*</span>}\n </label>\n {hint && (\n <Tooltip\n content={hint}\n side={hintSide}\n triggerProps={{\n tabIndex: -1,\n onClick: (event) => event.preventDefault(),\n }}\n >\n <div>\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n className=\"hawa-h-[14px] hawa-w-[14px] hawa-cursor-help\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n >\n <circle cx=\"12\" cy=\"12\" r=\"10\" />\n <path d=\"M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3\" />\n <path d=\"M12 17h.01\" />\n </svg>\n </div>\n </Tooltip>\n )}\n </div>\n));\n\nLabel.displayName = \"Label\";\n\nexport { Label };\n","import React from \"react\";\n\nimport * as TooltipPrimitive from \"@radix-ui/react-tooltip\";\nimport { cn } from \"@util/index\";\n\nimport { PositionType } from \"@_types/commonTypes\";\n\nconst TooltipContent = React.forwardRef<\n React.ElementRef<typeof TooltipPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof TooltipPrimitive.Content> & {\n size?: \"default\" | \"small\" | \"large\";\n }\n>(({ className, sideOffset = 4, size = \"default\", ...props }, ref) => (\n <TooltipPrimitive.Content\n ref={ref}\n sideOffset={sideOffset}\n className={cn(\n \"hawa-z-50 hawa-overflow-hidden hawa-rounded-md hawa-border hawa-bg-popover hawa-px-3 hawa-py-1.5 hawa-text-sm hawa-text-popover-foreground hawa-shadow-md hawa-animate-in hawa-fade-in-0 hawa-zoom-in-95 data-[state=closed]:hawa-animate-out data-[state=closed]:hawa-fade-out-0 data-[state=closed]:hawa-zoom-out-95 data-[side=bottom]:hawa-slide-in-from-top-2 data-[side=left]:hawa-slide-in-from-right-2 data-[side=right]:hawa-slide-in-from-left-2 data-[side=top]:hawa-slide-in-from-bottom-2\",\n {\n \"hawa-text-xs\": size === \"small\",\n \"hawa-text-xl\": size === \"large\",\n },\n className,\n )}\n {...props}\n />\n));\nTooltipContent.displayName = TooltipPrimitive.Content.displayName;\n\nconst TooltipArrow = React.forwardRef<\n React.ElementRef<typeof TooltipPrimitive.Arrow>,\n React.ComponentPropsWithoutRef<typeof TooltipPrimitive.Arrow>\n>(({ className, ...props }, ref) => (\n <TooltipPrimitive.Arrow ref={ref} className={cn(className)} {...props} />\n));\nTooltipArrow.displayName = TooltipPrimitive.Arrow.displayName;\n\ntype TooltipTypes = {\n /** Controls the open state of the tooltip. */\n open?: any;\n /** Specifies the side where the tooltip will appear. */\n side?: PositionType;\n /** Content to be displayed within the tooltip. */\n content?: any;\n /** Elements to which the tooltip is anchored. */\n children?: any;\n /** Sets the default open state of the tooltip. */\n defaultOpen?: any;\n /** Event handler for open state changes. */\n onOpenChange?: any;\n /** Duration of the delay before the tooltip appears. */\n delayDuration?: any;\n /** Size of the tooltip. */\n size?: \"default\" | \"small\" | \"large\";\n /** Disables the tooltip. */\n disabled?: boolean;\n triggerProps?: TooltipPrimitive.TooltipTriggerProps;\n contentProps?: TooltipPrimitive.TooltipContentProps;\n providerProps?: TooltipPrimitive.TooltipProps;\n};\n\nconst Tooltip: React.FunctionComponent<TooltipTypes> = ({\n side,\n size,\n open,\n content,\n children,\n disabled,\n defaultOpen,\n onOpenChange,\n triggerProps,\n contentProps,\n providerProps,\n delayDuration = 300,\n ...props\n}) => {\n return (\n <TooltipPrimitive.TooltipProvider\n delayDuration={delayDuration}\n {...providerProps}\n >\n <TooltipPrimitive.Root\n open={!disabled && open}\n defaultOpen={defaultOpen}\n onOpenChange={onOpenChange}\n {...props}\n >\n <TooltipPrimitive.Trigger {...triggerProps}>\n {children}\n </TooltipPrimitive.Trigger>\n <TooltipContent\n size={size}\n side={side}\n align=\"center\"\n {...contentProps}\n style={{\n ...contentProps?.style,\n maxWidth: \"var(--radix-tooltip-content-available-width)\",\n maxHeight: \"var(--radix-tooltip-content-available-height)\",\n }}\n >\n {content}\n </TooltipContent>\n </TooltipPrimitive.Root>\n </TooltipPrimitive.TooltipProvider>\n );\n};\n\nexport { Tooltip };\n","import 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\n className={cn(\n \"hawa-flex hawa-flex-row hawa-gap-2\",\n classNames?.container,\n )}\n >\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(\n \"squircle-container\",\n sizeStyles[size],\n classNames?.container,\n )}\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(\n \"squircle-container\",\n sizeStyles[size],\n classNames?.container,\n )}\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 (\n <div className={cn(\"orbit-container\", classNames?.container)}></div>\n );\n\n default:\n return (\n <svg\n viewBox=\"0 0 40 40\"\n height=\"40\"\n width=\"40\"\n className={cn(\n \"circle-container\",\n sizeStyles[size],\n classNames?.container,\n )}\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\n const {\n getRootProps,\n getInputProps,\n fileRejections,\n acceptedFiles,\n isDragActive,\n } = 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(\n parseFloat((maxSize / Math.pow(1024, i)).toFixed(2)) + \" \" + sizes[i],\n );\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 (\n <Alert\n key={i}\n text={rej.file.name}\n title={texts.fileTooLarge}\n severity=\"error\"\n />\n );\n case \"too-many-files\":\n return (\n <Alert\n key={i}\n text={rej.file.name}\n title={texts.tooManyFiles}\n severity=\"error\"\n />\n );\n case \"file-invalid-type\":\n return (\n <Alert\n key={i}\n text={rej.file.name}\n title={texts.invalidFileType}\n severity=\"error\"\n />\n );\n\n default:\n return (\n <Alert\n key={i}\n text={rej.file.name}\n title={rej.errors[0].code}\n severity=\"error\"\n />\n );\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\n ? \"hawa-bg-muted\"\n : \"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\n href={termsLink}\n className=\"clickable-link hawa-text-muted-foreground/50\"\n >\n {texts.terms ?? \"Terms\"}\n </a>{\" \"}\n {texts.and ?? \"and\"}{\" \"}\n <a\n href={privacyLink}\n className=\"clickable-link hawa-text-muted-foreground/50\"\n >\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:\n | \"outline\"\n | \"link\"\n | \"default\"\n | \"destructive\"\n | \"secondary\"\n | \"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\"\n ? \"hawa-pl-2 hawa-pt-1\"\n : \"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(\n \"hawa-mt-2 hawa-flex hawa-flex-row hawa-gap-2\",\n classNames?.actions,\n )}\n >\n {props.actions.map((act, index) => (\n <Button\n key={index}\n variant={act.variant}\n onClick={act.onClick()}\n >\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(\n alertRef?.current.children[0],\n );\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(\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 * 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:\n \"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:\n \"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={\n size === \"icon\" || size === \"smallIcon\"\n ? \"spinner\"\n : \"dots-pulse\"\n }\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={\n size === \"icon\" || size === \"smallIcon\"\n ? \"spinner\"\n : \"dots-pulse\"\n }\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 = ({\n helperText,\n}: {\n helperText?: string | React.ReactNode;\n}) => (\n <p\n className={cn(\n \"hawa-my-0 hawa-text-start hawa-text-helper-color hawa-transition-all hawa-text-xs\",\n helperText ? \"hawa-opacity-100 hawa-h-4\" : \"hawa-h-0 hawa-opacity-0\",\n )}\n >\n {helperText}\n </p>\n);\n","import * as React from \"react\";\n\nimport { cn } from \"@util/index\";\n\nimport { PositionType } from \"@_types/commonTypes\";\n\nimport { Tooltip } from \"../tooltip\";\n\nexport type LabelProps = {\n hint?: React.ReactNode;\n hintSide?: PositionType;\n htmlFor?: string;\n required?: boolean;\n};\n\nconst Label = React.forwardRef<\n HTMLLabelElement,\n React.LabelHTMLAttributes<HTMLLabelElement> & LabelProps\n>(({ className, hint, hintSide, required, children, ...props }, ref) => (\n <div className=\"hawa-flex hawa-flex-row hawa-items-center hawa-gap-1 hawa-transition-all\">\n <label\n ref={ref}\n className={cn(\n \"hawa-text-sm hawa-font-medium hawa-leading-none peer-disabled:hawa-cursor-not-allowed peer-disabled:hawa-opacity-70\",\n className,\n )}\n {...props}\n >\n {children}\n {required && <span className=\"hawa-mx-0.5 hawa-text-red-500\">*</span>}\n </label>\n {hint && (\n <Tooltip\n content={hint}\n side={hintSide}\n triggerProps={{\n tabIndex: -1,\n onClick: (event) => event.preventDefault(),\n }}\n >\n <div>\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n className=\"hawa-h-[14px] hawa-w-[14px] hawa-cursor-help\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n >\n <circle cx=\"12\" cy=\"12\" r=\"10\" />\n <path d=\"M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3\" />\n <path d=\"M12 17h.01\" />\n </svg>\n </div>\n </Tooltip>\n )}\n </div>\n));\n\nLabel.displayName = \"Label\";\n\nexport { Label };\n","import React from \"react\";\n\nimport * as TooltipPrimitive from \"@radix-ui/react-tooltip\";\nimport { cn } from \"@util/index\";\n\nimport { PositionType } from \"@_types/commonTypes\";\n\nconst TooltipContent = React.forwardRef<\n React.ElementRef<typeof TooltipPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof TooltipPrimitive.Content> & {\n size?: \"default\" | \"small\" | \"large\";\n }\n>(({ className, sideOffset = 4, size = \"default\", ...props }, ref) => (\n <TooltipPrimitive.Content\n ref={ref}\n sideOffset={sideOffset}\n className={cn(\n \"hawa-z-50 hawa-overflow-hidden hawa-rounded-md hawa-border hawa-bg-popover hawa-px-3 hawa-py-1.5 hawa-text-sm hawa-text-popover-foreground hawa-shadow-md hawa-animate-in hawa-fade-in-0 hawa-zoom-in-95 data-[state=closed]:hawa-animate-out data-[state=closed]:hawa-fade-out-0 data-[state=closed]:hawa-zoom-out-95 data-[side=bottom]:hawa-slide-in-from-top-2 data-[side=left]:hawa-slide-in-from-right-2 data-[side=right]:hawa-slide-in-from-left-2 data-[side=top]:hawa-slide-in-from-bottom-2\",\n {\n \"hawa-text-xs\": size === \"small\",\n \"hawa-text-xl\": size === \"large\",\n },\n className,\n )}\n {...props}\n />\n));\nTooltipContent.displayName = TooltipPrimitive.Content.displayName;\n\nconst TooltipArrow = React.forwardRef<\n React.ElementRef<typeof TooltipPrimitive.Arrow>,\n React.ComponentPropsWithoutRef<typeof TooltipPrimitive.Arrow>\n>(({ className, ...props }, ref) => (\n <TooltipPrimitive.Arrow ref={ref} className={cn(className)} {...props} />\n));\nTooltipArrow.displayName = TooltipPrimitive.Arrow.displayName;\n\ntype TooltipTypes = {\n /** Controls the open state of the tooltip. */\n open?: any;\n /** Specifies the side where the tooltip will appear. */\n side?: PositionType;\n /** Content to be displayed within the tooltip. */\n content?: any;\n /** Elements to which the tooltip is anchored. */\n children?: any;\n /** Sets the default open state of the tooltip. */\n defaultOpen?: any;\n /** Event handler for open state changes. */\n onOpenChange?: any;\n /** Duration of the delay before the tooltip appears. */\n delayDuration?: any;\n /** Size of the tooltip. */\n size?: \"default\" | \"small\" | \"large\";\n /** Disables the tooltip. */\n disabled?: boolean;\n triggerProps?: TooltipPrimitive.TooltipTriggerProps;\n contentProps?: TooltipPrimitive.TooltipContentProps;\n providerProps?: TooltipPrimitive.TooltipProps;\n};\n\nconst Tooltip: React.FunctionComponent<TooltipTypes> = ({\n side,\n size,\n open,\n content,\n children,\n disabled,\n defaultOpen,\n onOpenChange,\n triggerProps,\n contentProps,\n providerProps,\n delayDuration = 300,\n ...props\n}) => {\n return (\n <TooltipPrimitive.TooltipProvider\n delayDuration={delayDuration}\n {...providerProps}\n >\n <TooltipPrimitive.Root\n open={!disabled && open}\n defaultOpen={defaultOpen}\n onOpenChange={onOpenChange}\n {...props}\n >\n <TooltipPrimitive.Trigger {...triggerProps}>\n {children}\n </TooltipPrimitive.Trigger>\n <TooltipContent\n size={size}\n side={side}\n align=\"center\"\n {...contentProps}\n style={{\n ...contentProps?.style,\n maxWidth: \"var(--radix-tooltip-content-available-width)\",\n maxHeight: \"var(--radix-tooltip-content-available-height)\",\n }}\n >\n {content}\n </TooltipContent>\n </TooltipPrimitive.Root>\n </TooltipPrimitive.TooltipProvider>\n );\n};\n\nexport { Tooltip };\n","import 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\n className={cn(\n \"hawa-flex hawa-flex-row hawa-gap-2\",\n classNames?.container,\n )}\n >\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(\n \"squircle-container\",\n sizeStyles[size],\n classNames?.container,\n )}\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(\n \"squircle-container\",\n sizeStyles[size],\n classNames?.container,\n )}\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 (\n <div className={cn(\"orbit-container\", classNames?.container)}></div>\n );\n\n default:\n return (\n <svg\n viewBox=\"0 0 40 40\"\n height=\"40\"\n width=\"40\"\n className={cn(\n \"circle-container\",\n sizeStyles[size],\n classNames?.container,\n )}\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"]}
package/dist/index.d.mts CHANGED
@@ -449,7 +449,15 @@ type AlertTypes = {
449
449
  /** Removes the close button */
450
450
  persistent?: boolean;
451
451
  icon?: any;
452
- className?: string;
452
+ classNames?: {
453
+ root?: string;
454
+ content?: string;
455
+ title?: string;
456
+ text?: string;
457
+ actions?: string;
458
+ icon?: string;
459
+ closeButton?: string;
460
+ };
453
461
  onAlertClosed?: () => void;
454
462
  noDestroy?: boolean;
455
463
  };
package/dist/index.d.ts CHANGED
@@ -449,7 +449,15 @@ type AlertTypes = {
449
449
  /** Removes the close button */
450
450
  persistent?: boolean;
451
451
  icon?: any;
452
- className?: string;
452
+ classNames?: {
453
+ root?: string;
454
+ content?: string;
455
+ title?: string;
456
+ text?: string;
457
+ actions?: string;
458
+ icon?: string;
459
+ closeButton?: string;
460
+ };
453
461
  onAlertClosed?: () => void;
454
462
  noDestroy?: boolean;
455
463
  };
package/dist/index.js CHANGED
@@ -2479,28 +2479,17 @@ var import_class_variance_authority3 = require("class-variance-authority");
2479
2479
  // elements/helperText/HelperText.tsx
2480
2480
  var import_react7 = __toESM(require("react"));
2481
2481
  var HelperText = ({
2482
- helperText,
2483
- size = "xs"
2484
- }) => {
2485
- let sizes = {
2486
- xs: "hawa-text-xs hawa-h-4",
2487
- sm: "hawa-text-sm",
2488
- md: "hawa-text-md",
2489
- lg: "hawa-text-lg",
2490
- xl: "hawa-text-xl"
2491
- };
2492
- return /* @__PURE__ */ import_react7.default.createElement(
2493
- "p",
2494
- {
2495
- className: cn(
2496
- "hawa-my-0 hawa-text-start hawa-text-helper-color hawa-transition-all",
2497
- helperText ? "hawa-opacity-100" : "hawa-h-0 hawa-opacity-0",
2498
- sizes[size]
2499
- )
2500
- },
2501
- helperText
2502
- );
2503
- };
2482
+ helperText
2483
+ }) => /* @__PURE__ */ import_react7.default.createElement(
2484
+ "p",
2485
+ {
2486
+ className: cn(
2487
+ "hawa-my-0 hawa-text-start hawa-text-helper-color hawa-transition-all hawa-text-xs",
2488
+ helperText ? "hawa-opacity-100 hawa-h-4" : "hawa-h-0 hawa-opacity-0"
2489
+ )
2490
+ },
2491
+ helperText
2492
+ );
2504
2493
 
2505
2494
  // elements/label/Label.tsx
2506
2495
  var React16 = __toESM(require("react"));
@@ -2646,7 +2635,7 @@ var Alert = ({
2646
2635
  severity = "none",
2647
2636
  duration,
2648
2637
  icon,
2649
- className,
2638
+ classNames,
2650
2639
  ...props
2651
2640
  }) => {
2652
2641
  const alertRef = (0, import_react8.useRef)(null);
@@ -2697,21 +2686,25 @@ var Alert = ({
2697
2686
  "hawa-relative hawa-mb-4 hawa-flex hawa-flex-col hawa-rounded hawa-p-4 hawa-text-sm hawa-transition-all",
2698
2687
  styleVariant[severity],
2699
2688
  closed ? "hawa-opacity-0" : "hawa-opacity-100",
2700
- className
2689
+ classNames == null ? void 0 : classNames.root
2701
2690
  )
2702
2691
  },
2703
2692
  /* @__PURE__ */ import_react8.default.createElement("div", { className: "hawa-flex hawa-flex-row" }, icon && /* @__PURE__ */ import_react8.default.createElement(
2704
2693
  "div",
2705
2694
  {
2706
- className: direction === "rtl" ? "hawa-pl-2 hawa-pt-1" : "hawa-pr-2 hawa-pt-1"
2695
+ className: cn(
2696
+ direction === "rtl" ? "hawa-pl-2 hawa-pt-1" : "hawa-pr-2 hawa-pt-1",
2697
+ classNames == null ? void 0 : classNames.icon
2698
+ )
2707
2699
  },
2708
2700
  icon
2709
- ), /* @__PURE__ */ import_react8.default.createElement("div", { className: "hawa-flex hawa-flex-col" }, /* @__PURE__ */ import_react8.default.createElement(
2701
+ ), /* @__PURE__ */ import_react8.default.createElement("div", { className: cn("hawa-flex hawa-flex-col", classNames == null ? void 0 : classNames.content) }, /* @__PURE__ */ import_react8.default.createElement(
2710
2702
  "span",
2711
2703
  {
2712
2704
  className: cn(
2713
2705
  "hawa-font-bold",
2714
- direction === "rtl" ? "hawa-ml-8" : "hawa-mr-8"
2706
+ direction === "rtl" ? "hawa-ml-8" : "hawa-mr-8",
2707
+ classNames == null ? void 0 : classNames.title
2715
2708
  )
2716
2709
  },
2717
2710
  props.title
@@ -2720,19 +2713,29 @@ var Alert = ({
2720
2713
  {
2721
2714
  className: cn(
2722
2715
  direction === "rtl" ? "hawa-ml-8" : "hawa-mr-8",
2723
- props.persistent ? "hawa-w-full" : "hawa-w-[calc(100% - 40px)]"
2716
+ props.persistent ? "hawa-w-full" : "hawa-w-[calc(100% - 40px)]",
2717
+ classNames == null ? void 0 : classNames.text
2724
2718
  )
2725
2719
  },
2726
2720
  props.text
2727
- ), props.actions && /* @__PURE__ */ import_react8.default.createElement("div", { className: "hawa-mt-2 hawa-flex hawa-flex-row hawa-gap-2" }, props.actions.map((act, index) => /* @__PURE__ */ import_react8.default.createElement(
2728
- Button,
2721
+ ), props.actions && /* @__PURE__ */ import_react8.default.createElement(
2722
+ "div",
2729
2723
  {
2730
- key: index,
2731
- variant: act.variant,
2732
- onClick: act.onClick()
2724
+ className: cn(
2725
+ "hawa-mt-2 hawa-flex hawa-flex-row hawa-gap-2",
2726
+ classNames == null ? void 0 : classNames.actions
2727
+ )
2733
2728
  },
2734
- act.label
2735
- ))))),
2729
+ props.actions.map((act, index) => /* @__PURE__ */ import_react8.default.createElement(
2730
+ Button,
2731
+ {
2732
+ key: index,
2733
+ variant: act.variant,
2734
+ onClick: act.onClick()
2735
+ },
2736
+ act.label
2737
+ ))
2738
+ ))),
2736
2739
  !props.persistent && /* @__PURE__ */ import_react8.default.createElement(
2737
2740
  "button",
2738
2741
  {
@@ -2742,7 +2745,8 @@ var Alert = ({
2742
2745
  className: cn(
2743
2746
  "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",
2744
2747
  closeButtonStyle[severity],
2745
- direction === "rtl" ? "hawa-left-2" : "hawa-right-2"
2748
+ direction === "rtl" ? "hawa-left-2" : "hawa-right-2",
2749
+ classNames == null ? void 0 : classNames.closeButton
2746
2750
  ),
2747
2751
  onClick: () => {
2748
2752
  if (props.onAlertClosed) {