@sikka/hawa 0.30.24-next → 0.30.26-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 (83) hide show
  1. package/dist/blocks/index.js +100 -72
  2. package/dist/blocks/index.mjs +1 -1
  3. package/dist/blocks/misc/index.js +88 -60
  4. package/dist/blocks/misc/index.mjs +105 -75
  5. package/dist/blocks/pricing/index.mjs +1 -1
  6. package/dist/breadcrumb/index.d.mts +7 -5
  7. package/dist/breadcrumb/index.d.ts +7 -5
  8. package/dist/breadcrumb/index.js +36 -12
  9. package/dist/breadcrumb/index.js.map +1 -1
  10. package/dist/breadcrumb/index.mjs +36 -12
  11. package/dist/breadcrumb/index.mjs.map +1 -1
  12. package/dist/{chunk-7LAUVLVZ.mjs → chunk-QDRFTC7W.mjs} +96 -62
  13. package/dist/combobox/index.js.map +1 -1
  14. package/dist/combobox/index.mjs.map +1 -1
  15. package/dist/commonTypes-LrR8QrYP.d.mts +5 -0
  16. package/dist/commonTypes-LrR8QrYP.d.ts +5 -0
  17. package/dist/commonTypes-MeUyaBib.d.mts +5 -0
  18. package/dist/commonTypes-MeUyaBib.d.ts +5 -0
  19. package/dist/elements/index.d.mts +11 -5
  20. package/dist/elements/index.d.ts +11 -5
  21. package/dist/elements/index.js +149 -98
  22. package/dist/elements/index.mjs +32 -13
  23. package/dist/floatBox/index.d.mts +12 -0
  24. package/dist/floatBox/index.d.ts +12 -0
  25. package/dist/floatBox/index.js +85 -0
  26. package/dist/floatBox/index.js.map +1 -0
  27. package/dist/floatBox/index.mjs +49 -0
  28. package/dist/floatBox/index.mjs.map +1 -0
  29. package/dist/index.css +101 -56
  30. package/dist/index.d.mts +11 -5
  31. package/dist/index.d.ts +11 -5
  32. package/dist/index.js +189 -138
  33. package/dist/index.mjs +706 -657
  34. package/dist/input/index.d.mts +2 -1
  35. package/dist/input/index.d.ts +2 -1
  36. package/dist/label/index.d.mts +1 -2
  37. package/dist/label/index.d.ts +1 -2
  38. package/dist/passwordInput/index.js.map +1 -1
  39. package/dist/passwordInput/index.mjs.map +1 -1
  40. package/dist/phoneInput/index.d.mts +2 -1
  41. package/dist/phoneInput/index.d.ts +2 -1
  42. package/dist/popover/index.d.mts +3 -1
  43. package/dist/popover/index.d.ts +3 -1
  44. package/dist/popover/index.js +6 -0
  45. package/dist/popover/index.js.map +1 -1
  46. package/dist/popover/index.mjs +4 -0
  47. package/dist/popover/index.mjs.map +1 -1
  48. package/dist/progress/index.d.mts +8 -1
  49. package/dist/progress/index.d.ts +8 -1
  50. package/dist/radio/index.d.mts +9 -1
  51. package/dist/radio/index.d.ts +9 -1
  52. package/dist/scrollArea/index.d.mts +1 -1
  53. package/dist/scrollArea/index.d.ts +1 -1
  54. package/dist/separator/index.d.mts +1 -1
  55. package/dist/separator/index.d.ts +1 -1
  56. package/dist/signature/index.d.mts +1 -2
  57. package/dist/signature/index.d.ts +1 -2
  58. package/dist/simpleTable/index.d.mts +1 -1
  59. package/dist/simpleTable/index.d.ts +1 -1
  60. package/dist/switch/index.d.mts +2 -1
  61. package/dist/switch/index.d.ts +2 -1
  62. package/dist/tabs/index.d.mts +3 -1
  63. package/dist/tabs/index.d.ts +3 -1
  64. package/dist/tabs/index.js +60 -32
  65. package/dist/tabs/index.js.map +1 -1
  66. package/dist/tabs/index.mjs +60 -32
  67. package/dist/tabs/index.mjs.map +1 -1
  68. package/dist/textarea/index.d.mts +1 -1
  69. package/dist/textarea/index.d.ts +1 -1
  70. package/dist/toast/index.d.mts +1 -1
  71. package/dist/toast/index.d.ts +1 -1
  72. package/dist/toaster/index.d.mts +22 -4
  73. package/dist/toaster/index.d.ts +22 -4
  74. package/dist/tooltip/index.d.mts +3 -4
  75. package/dist/tooltip/index.d.ts +3 -4
  76. package/package.json +8 -8
  77. package/dist/Label-9FHRF7Ex.d.mts +0 -14
  78. package/dist/Label-9FHRF7Ex.d.ts +0 -14
  79. package/dist/commonTypes-3k5cNB1s.d.mts +0 -4
  80. package/dist/commonTypes-3k5cNB1s.d.ts +0 -4
  81. package/dist/commonTypes-PBumfOBg.d.mts +0 -3
  82. package/dist/commonTypes-PBumfOBg.d.ts +0 -3
  83. /package/dist/{chunk-CVOMHXJK.mjs → chunk-BXGDHNAY.mjs} +0 -0
@@ -2,26 +2,50 @@
2
2
 
3
3
  // elements/breadcrumb/Breadcrumb.tsx
4
4
  import React from "react";
5
+
6
+ // util/index.ts
7
+ import { clsx } from "clsx";
8
+ import { twMerge } from "tailwind-merge";
9
+ function cn(...inputs) {
10
+ return twMerge(clsx(inputs));
11
+ }
12
+
13
+ // elements/breadcrumb/Breadcrumb.tsx
5
14
  var Breadcrumb = ({
6
15
  breadcrumbLinks,
7
- separator = ">"
16
+ separator = ">",
17
+ size = "normal"
8
18
  }) => {
9
- return /* @__PURE__ */ React.createElement("div", { className: "hawa-flex hawa-flex-row hawa-items-center hawa-gap-2 hawa-text-sm" }, breadcrumbLinks.map((singleBreadcrumbLink, index) => /* @__PURE__ */ React.createElement(
19
+ const textStyles = {
20
+ normal: "",
21
+ small: "hawa-text-sm",
22
+ xs: "hawa-text-xs"
23
+ };
24
+ return /* @__PURE__ */ React.createElement(
10
25
  "div",
11
26
  {
12
- key: index,
13
- className: "hawa-flex hawa-flex-row hawa-items-center hawa-justify-center hawa-gap-2"
27
+ className: cn(
28
+ "hawa-flex hawa-flex-row hawa-items-center hawa-gap-2 hawa-text-sm",
29
+ textStyles[size]
30
+ )
14
31
  },
15
- /* @__PURE__ */ React.createElement(
16
- "a",
32
+ breadcrumbLinks.map((singleBreadcrumbLink, index) => /* @__PURE__ */ React.createElement(
33
+ "div",
17
34
  {
18
- href: singleBreadcrumbLink.href,
19
- className: index + 1 === breadcrumbLinks.length ? "hawa-pointer-events-none" : "hawa-underline-offset-4 hawa-transition-all hover:hawa-text-primary hover:hawa-underline hover:hawa-decoration-2"
35
+ key: index,
36
+ className: "hawa-flex hawa-flex-row hawa-items-center hawa-justify-center hawa-gap-2"
20
37
  },
21
- singleBreadcrumbLink.label
22
- ),
23
- index != breadcrumbLinks.length - 1 ? typeof separator == "string" ? /* @__PURE__ */ React.createElement("div", null, separator) : /* @__PURE__ */ React.createElement("div", null, separator) : null
24
- )));
38
+ /* @__PURE__ */ React.createElement(
39
+ "a",
40
+ {
41
+ href: singleBreadcrumbLink.href,
42
+ className: index + 1 === breadcrumbLinks.length ? "hawa-pointer-events-none" : "hawa-underline-offset-4 hawa-transition-all hover:hawa-text-primary hover:hawa-underline hover:hawa-decoration-2"
43
+ },
44
+ singleBreadcrumbLink.label
45
+ ),
46
+ index != breadcrumbLinks.length - 1 ? typeof separator == "string" ? /* @__PURE__ */ React.createElement("div", null, separator) : /* @__PURE__ */ React.createElement("div", null, separator) : null
47
+ ))
48
+ );
25
49
  };
26
50
  export {
27
51
  Breadcrumb
@@ -1 +1 @@
1
- {"version":3,"sources":["../../elements/breadcrumb/Breadcrumb.tsx"],"sourcesContent":["import React, { FC, ReactNode } from \"react\";\n\ninterface BCTypes {\n /** The array of crumbs, each one with a label and a href link */\n breadcrumbLinks: { label: string; href: string }[];\n /** The separator between each crumb, can be character or React Node. The default is \">\" */\n separator?: string | ReactNode;\n}\n\nexport const Breadcrumb: FC<BCTypes> = ({\n breadcrumbLinks,\n separator = \">\"\n}) => {\n return (\n <div className=\"hawa-flex hawa-flex-row hawa-items-center hawa-gap-2 hawa-text-sm\">\n {breadcrumbLinks.map((singleBreadcrumbLink, index) => (\n <div\n key={index}\n className=\"hawa-flex hawa-flex-row hawa-items-center hawa-justify-center hawa-gap-2\"\n >\n <a\n href={singleBreadcrumbLink.href}\n className={\n index + 1 === breadcrumbLinks.length\n ? \"hawa-pointer-events-none\"\n : \"hawa-underline-offset-4 hawa-transition-all hover:hawa-text-primary hover:hawa-underline hover:hawa-decoration-2\"\n }\n >\n {singleBreadcrumbLink.label}\n </a>\n {index != breadcrumbLinks.length - 1 ? (\n typeof separator == \"string\" ? (\n <div>{separator}</div>\n ) : (\n <div>{separator}</div>\n )\n ) : null}\n </div>\n ))}\n </div>\n );\n};\n"],"mappings":";;;AAAA,OAAO,WAA8B;AAS9B,IAAM,aAA0B,CAAC;AAAA,EACtC;AAAA,EACA,YAAY;AACd,MAAM;AACJ,SACE,oCAAC,SAAI,WAAU,uEACZ,gBAAgB,IAAI,CAAC,sBAAsB,UAC1C;AAAA,IAAC;AAAA;AAAA,MACC,KAAK;AAAA,MACL,WAAU;AAAA;AAAA,IAEV;AAAA,MAAC;AAAA;AAAA,QACC,MAAM,qBAAqB;AAAA,QAC3B,WACE,QAAQ,MAAM,gBAAgB,SAC1B,6BACA;AAAA;AAAA,MAGL,qBAAqB;AAAA,IACxB;AAAA,IACC,SAAS,gBAAgB,SAAS,IACjC,OAAO,aAAa,WAClB,oCAAC,aAAK,SAAU,IAEhB,oCAAC,aAAK,SAAU,IAEhB;AAAA,EACN,CACD,CACH;AAEJ;","names":[]}
1
+ {"version":3,"sources":["../../elements/breadcrumb/Breadcrumb.tsx","../../util/index.ts"],"sourcesContent":["import React, { FC, ReactNode } from \"react\";\n\nimport { cn } from \"@util/index\";\n\nexport type BreadcrumbItemProps = {\n label: string;\n href: string;\n};\ninterface BCTypes {\n /** The array of crumbs, each one with a label and a href link */\n breadcrumbLinks: BreadcrumbItemProps[];\n /** The separator between each crumb, can be character or React Node. The default is \">\" */\n separator?: string | ReactNode;\n size?: \"normal\" | \"small\" | \"xs\";\n}\n\nexport const Breadcrumb: FC<BCTypes> = ({\n breadcrumbLinks,\n separator = \">\",\n size = \"normal\",\n}) => {\n const textStyles = {\n normal: \"\",\n small: \"hawa-text-sm\",\n xs: \"hawa-text-xs\",\n };\n return (\n <div\n className={cn(\n \"hawa-flex hawa-flex-row hawa-items-center hawa-gap-2 hawa-text-sm\",\n textStyles[size],\n )}\n >\n {breadcrumbLinks.map((singleBreadcrumbLink, index) => (\n <div\n key={index}\n className=\"hawa-flex hawa-flex-row hawa-items-center hawa-justify-center hawa-gap-2\"\n >\n <a\n href={singleBreadcrumbLink.href}\n className={\n index + 1 === breadcrumbLinks.length\n ? \"hawa-pointer-events-none\"\n : \"hawa-underline-offset-4 hawa-transition-all hover:hawa-text-primary hover:hawa-underline hover:hawa-decoration-2\"\n }\n >\n {singleBreadcrumbLink.label}\n </a>\n {index != breadcrumbLinks.length - 1 ? (\n typeof separator == \"string\" ? (\n <div>{separator}</div>\n ) : (\n <div>{separator}</div>\n )\n ) : null}\n </div>\n ))}\n </div>\n );\n};\n","import { clsx, type ClassValue } from \"clsx\";\nimport { twMerge } from \"tailwind-merge\";\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs));\n}\n\ntype Palette = {\n name: string;\n colors: {\n [key: number]: string;\n };\n};\ntype Rgb = {\n r: number;\n g: number;\n b: number;\n};\nfunction hexToRgb(hex: string): Rgb | null {\n const sanitizedHex = hex.replaceAll(\"##\", \"#\");\n const colorParts = /^#?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})$/i.exec(\n sanitizedHex\n );\n\n if (!colorParts) {\n return null;\n }\n\n const [, r, g, b] = colorParts;\n\n return {\n r: parseInt(r, 16),\n g: parseInt(g, 16),\n b: parseInt(b, 16)\n } as Rgb;\n}\n\nfunction rgbToHex(r: number, g: number, b: number): string {\n const toHex = (c: number) => `0${c.toString(16)}`.slice(-2);\n return `#${toHex(r)}${toHex(g)}${toHex(b)}`;\n}\n\nexport function getTextColor(color: string): \"#FFF\" | \"#333\" {\n const rgbColor = hexToRgb(color);\n\n if (!rgbColor) {\n return \"#333\";\n }\n\n const { r, g, b } = rgbColor;\n const luma = 0.2126 * r + 0.7152 * g + 0.0722 * b;\n\n return luma < 120 ? \"#FFF\" : \"#333\";\n}\n\nfunction lighten(hex: string, intensity: number): string {\n const color = hexToRgb(`#${hex}`);\n\n if (!color) {\n return \"\";\n }\n\n const r = Math.round(color.r + (255 - color.r) * intensity);\n const g = Math.round(color.g + (255 - color.g) * intensity);\n const b = Math.round(color.b + (255 - color.b) * intensity);\n\n return rgbToHex(r, g, b);\n}\n\nfunction darken(hex: string, intensity: number): string {\n const color = hexToRgb(hex);\n\n if (!color) {\n return \"\";\n }\n\n const r = Math.round(color.r * intensity);\n const g = Math.round(color.g * intensity);\n const b = Math.round(color.b * intensity);\n\n return rgbToHex(r, g, b);\n}\nconst parseColor = (color: any) => {\n if (color.startsWith(\"#\")) {\n // Convert hex to RGB\n let r = parseInt(color.slice(1, 3), 16);\n let g = parseInt(color.slice(3, 5), 16);\n let b = parseInt(color.slice(5, 7), 16);\n return [r, g, b];\n } else if (color.startsWith(\"rgb\")) {\n // Extract RGB values from rgb() format\n return color.match(/\\d+/g).map(Number);\n }\n // Default to white if format is unrecognized\n return [255, 255, 255];\n};\nexport const calculateLuminance = (color: any) => {\n const [r, g, b] = parseColor(color)?.map((c: any) => {\n c /= 255;\n return c <= 0.03928 ? c / 12.92 : ((c + 0.055) / 1.055) ** 2.4;\n });\n return 0.2126 * r + 0.7152 * g + 0.0722 * b;\n};\n\nfunction getPallette(baseColor: string): Palette {\n const name = baseColor;\n\n const response: Palette = {\n name,\n colors: {\n 500: `#${baseColor}`.replace(\"##\", \"#\")\n }\n };\n\n const intensityMap: {\n [key: number]: number;\n } = {\n 50: 0.95,\n 100: 0.9,\n 200: 0.75,\n 300: 0.6,\n 400: 0.3,\n 600: 0.9,\n 700: 0.75,\n 800: 0.6,\n 900: 0.49\n };\n\n [50, 100, 200, 300, 400].forEach((level) => {\n response.colors[level] = lighten(baseColor, intensityMap[level]);\n });\n [600, 700, 800, 900].forEach((level) => {\n response.colors[level] = darken(baseColor, intensityMap[level]);\n });\n\n return response as Palette;\n}\n\nexport { getPallette };\n\n// const hexToRgb = (hex) => {\n// let d = hex?.split(\"#\")[1];\n// var aRgbHex = d?.match(/.{1,2}/g);\n// var aRgb = [\n// parseInt(aRgbHex[0], 16),\n// parseInt(aRgbHex[1], 16),\n// parseInt(aRgbHex[2], 16)\n// ];\n// return aRgb;\n// };\n// const getTextColor = (backColor) => {\n// let rgbArray = hexToRgb(backColor);\n// if (rgbArray[0] * 0.299 + rgbArray[1] * 0.587 + rgbArray[2] * 0.114 > 186) {\n// return \"#000000\";\n// } else {\n// return \"#ffffff\";\n// }\n// };\n// const replaceAt = function (string, index, replacement) {\n// // if (replacement == \"\" || replacement == \" \") {\n// // return (\n// // string.substring(0, index) +\n// // string.substring(index + replacement.length )\n// // );\n// // }\n// const replaced = string.substring(0, index) + replacement + string.substring(index + 1)\n// return replaced\n// };\n\n// export { hexToRgb, getTextColor, replaceAt };\n"],"mappings":";;;AAAA,OAAO,WAA8B;;;ACArC,SAAS,YAA6B;AACtC,SAAS,eAAe;AAEjB,SAAS,MAAM,QAAsB;AAC1C,SAAO,QAAQ,KAAK,MAAM,CAAC;AAC7B;;;ADWO,IAAM,aAA0B,CAAC;AAAA,EACtC;AAAA,EACA,YAAY;AAAA,EACZ,OAAO;AACT,MAAM;AACJ,QAAM,aAAa;AAAA,IACjB,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,IAAI;AAAA,EACN;AACA,SACE;AAAA,IAAC;AAAA;AAAA,MACC,WAAW;AAAA,QACT;AAAA,QACA,WAAW,IAAI;AAAA,MACjB;AAAA;AAAA,IAEC,gBAAgB,IAAI,CAAC,sBAAsB,UAC1C;AAAA,MAAC;AAAA;AAAA,QACC,KAAK;AAAA,QACL,WAAU;AAAA;AAAA,MAEV;AAAA,QAAC;AAAA;AAAA,UACC,MAAM,qBAAqB;AAAA,UAC3B,WACE,QAAQ,MAAM,gBAAgB,SAC1B,6BACA;AAAA;AAAA,QAGL,qBAAqB;AAAA,MACxB;AAAA,MACC,SAAS,gBAAgB,SAAS,IACjC,OAAO,aAAa,WAClB,oCAAC,aAAK,SAAU,IAEhB,oCAAC,aAAK,SAAU,IAEhB;AAAA,IACN,CACD;AAAA,EACH;AAEJ;","names":[]}
@@ -2811,6 +2811,8 @@ var Popover = ({
2811
2811
  ));
2812
2812
  };
2813
2813
  var PopoverTrigger = PopoverPrimitive.Trigger;
2814
+ var PopoverPortal = PopoverPrimitive.Portal;
2815
+ var PopoverRoot = PopoverPrimitive.Root;
2814
2816
 
2815
2817
  // elements/scrollArea/ScrollArea.tsx
2816
2818
  import * as React12 from "react";
@@ -2853,9 +2855,46 @@ var ScrollBar = React12.forwardRef(({ className, orientation = "vertical", ...pr
2853
2855
  ScrollBar.displayName = ScrollAreaPrimitive.ScrollAreaScrollbar.displayName;
2854
2856
 
2855
2857
  // elements/tabs/Tabs.tsx
2856
- import * as React13 from "react";
2858
+ import * as React14 from "react";
2857
2859
  import * as TabsPrimitive from "@radix-ui/react-tabs";
2858
2860
  import { tv } from "tailwind-variants";
2861
+
2862
+ // elements/floatBox/FloatBox.tsx
2863
+ import * as React13 from "react";
2864
+ var FloatBox = ({
2865
+ className,
2866
+ open,
2867
+ side = "bottom",
2868
+ sideOffset = 40,
2869
+ ...props
2870
+ }) => {
2871
+ let widthStyles = {
2872
+ trigger: "var(--radix-popover-trigger-width)",
2873
+ default: "auto"
2874
+ };
2875
+ let sideOffsetStyles = {
2876
+ bottom: { top: sideOffset },
2877
+ top: { bottom: sideOffset },
2878
+ right: { left: sideOffset },
2879
+ left: { right: sideOffset }
2880
+ };
2881
+ return /* @__PURE__ */ React13.createElement(
2882
+ "div",
2883
+ {
2884
+ className: cn(
2885
+ "data-[floatbox-state=closed]:hawa-invisible data-[floatbox-state=open]:hawa-visible hawa-absolute dark:dark-shadow hawa-z-50 hawa-rounded hawa-border hawa-bg-popover hawa-text-popover-foreground hawa-shadow-md hawa-outline-none data-[floatbox-state=open]:hawa-animate-in data-[floatbox-state=closed]:hawa-animate-out data-[floatbox-state=closed]:hawa-fade-out-0 data-[floatbox-state=open]:hawa-fade-in-0 data-[floatbox-state=closed]:hawa-zoom-out-95 data-[floatbox-state=open]:hawa-zoom-in-95 data-[side=bottom]:hawa-slide-in-from-top-2 data-[side=left]:hawa-slide-in-from-right-2 data-[side=right]:hawa-slide-in-from-left-2 data-[side=top]:hawa-slide-in-from-bottom-2",
2886
+ sideOffsetStyles[side],
2887
+ className
2888
+ ),
2889
+ style: { ...sideOffsetStyles[side] },
2890
+ "data-side": side,
2891
+ "data-floatbox-state": open ? "open" : "closed"
2892
+ },
2893
+ props.children
2894
+ );
2895
+ };
2896
+
2897
+ // elements/tabs/Tabs.tsx
2859
2898
  var tabsListVariant = tv({
2860
2899
  base: "",
2861
2900
  variants: {
@@ -2864,10 +2903,7 @@ var tabsListVariant = tv({
2864
2903
  underlined: "hawa-flex hawa-w-fit hawa-flex-wrap hawa-items-center hawa-justify-start hawa-gap-1 hawa-rounded hawa-p-1 hawa-text-muted-foreground dark:hawa-border-primary/10",
2865
2904
  underlined_tabs: "hawa-flex hawa-w-fit hawa-flex-wrap hawa-items-center hawa-justify-start hawa-gap-1 hawa-text-muted-foreground"
2866
2905
  },
2867
- orientation: {
2868
- horizontal: "",
2869
- vertical: ""
2870
- }
2906
+ orientation: { horizontal: "", vertical: "" }
2871
2907
  },
2872
2908
  compoundVariants: [
2873
2909
  {
@@ -2881,10 +2917,7 @@ var tabsListVariant = tv({
2881
2917
  class: "hawa-border-b-2 hawa-border-b-primary"
2882
2918
  }
2883
2919
  ],
2884
- defaultVariants: {
2885
- variant: "default",
2886
- orientation: "horizontal"
2887
- }
2920
+ defaultVariants: { variant: "default", orientation: "horizontal" }
2888
2921
  });
2889
2922
  var tabsTriggerVariant = tv({
2890
2923
  base: "",
@@ -2894,10 +2927,7 @@ var tabsTriggerVariant = tv({
2894
2927
  underlined: "hawa-inline-flex hawa-w-full hawa-flex-1 hawa-select-none hawa-items-center hawa-justify-center hawa-gap-2 hawa-whitespace-nowrap hawa-rounded hawa-rounded-none hawa-px-3 hawa-py-1.5 hawa-text-sm hawa-font-medium hawa-ring-offset-background hawa-transition-all 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",
2895
2928
  underlined_tabs: "hawa-inline-flex hawa-w-full hawa-flex-1 hawa-select-none hawa-items-center hawa-justify-center hawa-gap-2 hawa-whitespace-nowrap hawa-rounded hawa-px-3 hawa-py-1.5 hawa-text-sm hawa-font-medium hawa-ring-offset-background hawa-transition-all 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 hawa-bg-primary/10 data-[state=active]:hawa-bg-primary data-[state=active]:hawa-text-primary-foreground dark:hawa-border-primary/10"
2896
2929
  },
2897
- orientation: {
2898
- horizontal: "",
2899
- vertical: ""
2900
- }
2930
+ orientation: { horizontal: "", vertical: "" }
2901
2931
  },
2902
2932
  compoundVariants: [
2903
2933
  {
@@ -2921,13 +2951,10 @@ var tabsTriggerVariant = tv({
2921
2951
  class: "hawa-rounded-e-none"
2922
2952
  }
2923
2953
  ],
2924
- defaultVariants: {
2925
- variant: "default",
2926
- orientation: "horizontal"
2927
- }
2954
+ defaultVariants: { variant: "default", orientation: "horizontal" }
2928
2955
  });
2929
- var TabsContext = React13.createContext({ orientation: "horizontal", variant: "default" });
2930
- var Tabs = React13.forwardRef(({ className, orientation, variant = "default", ...props }, ref) => /* @__PURE__ */ React13.createElement(
2956
+ var TabsContext = React14.createContext({ orientation: "horizontal", variant: "default" });
2957
+ var Tabs = React14.forwardRef(({ className, orientation, variant = "default", ...props }, ref) => /* @__PURE__ */ React14.createElement(
2931
2958
  TabsPrimitive.Root,
2932
2959
  {
2933
2960
  ref,
@@ -2938,12 +2965,11 @@ var Tabs = React13.forwardRef(({ className, orientation, variant = "default", ..
2938
2965
  ),
2939
2966
  ...props
2940
2967
  },
2941
- /* @__PURE__ */ React13.createElement(TabsContext.Provider, { value: { orientation, variant } }, props.children)
2968
+ /* @__PURE__ */ React14.createElement(TabsContext.Provider, { value: { orientation, variant } }, props.children)
2942
2969
  ));
2943
- Tabs.displayName = TabsPrimitive.Root.displayName;
2944
- var TabsList = React13.forwardRef(({ className, ...props }, ref) => {
2945
- const { orientation, variant } = React13.useContext(TabsContext);
2946
- return /* @__PURE__ */ React13.createElement(
2970
+ var TabsList = React14.forwardRef(({ className, ...props }, ref) => {
2971
+ const { orientation, variant } = React14.useContext(TabsContext);
2972
+ return /* @__PURE__ */ React14.createElement(
2947
2973
  TabsPrimitive.List,
2948
2974
  {
2949
2975
  ref,
@@ -2956,22 +2982,25 @@ var TabsList = React13.forwardRef(({ className, ...props }, ref) => {
2956
2982
  }
2957
2983
  );
2958
2984
  });
2959
- TabsList.displayName = TabsPrimitive.List.displayName;
2960
- var TabsTrigger = React13.forwardRef(({ className, chipProps, ...props }, ref) => {
2961
- const { orientation, variant } = React13.useContext(TabsContext);
2962
- return /* @__PURE__ */ React13.createElement(
2985
+ var TabsTrigger = React14.forwardRef(({ className, chipProps, ...props }, ref) => {
2986
+ const { orientation, variant } = React14.useContext(TabsContext);
2987
+ return /* @__PURE__ */ React14.createElement(
2963
2988
  TabsPrimitive.Trigger,
2964
2989
  {
2965
2990
  ref,
2966
- className: cn(tabsTriggerVariant({ variant, orientation }), className),
2991
+ className: cn(
2992
+ tabsTriggerVariant({ variant, orientation }),
2993
+ "hawa-relative",
2994
+ className
2995
+ ),
2967
2996
  ...props
2968
2997
  },
2969
2998
  props.children,
2970
- chipProps && /* @__PURE__ */ React13.createElement(Chip, { ...chipProps })
2999
+ chipProps && /* @__PURE__ */ React14.createElement(Chip, { ...chipProps }),
3000
+ /* @__PURE__ */ React14.createElement(FloatBox, { open: props.showPopover }, props.popoverContent)
2971
3001
  );
2972
3002
  });
2973
- TabsTrigger.displayName = TabsPrimitive.Trigger.displayName;
2974
- var TabsContent = React13.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ React13.createElement(
3003
+ var TabsContent = React14.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ React14.createElement(
2975
3004
  TabsPrimitive.Content,
2976
3005
  {
2977
3006
  ref,
@@ -2982,15 +3011,18 @@ var TabsContent = React13.forwardRef(({ className, ...props }, ref) => /* @__PUR
2982
3011
  ...props
2983
3012
  }
2984
3013
  ));
3014
+ Tabs.displayName = TabsPrimitive.Root.displayName;
3015
+ TabsList.displayName = TabsPrimitive.List.displayName;
3016
+ TabsTrigger.displayName = TabsPrimitive.Trigger.displayName;
2985
3017
  TabsContent.displayName = TabsPrimitive.Content.displayName;
2986
3018
 
2987
3019
  // elements/separator/Separator.tsx
2988
- import * as React14 from "react";
3020
+ import * as React15 from "react";
2989
3021
  var Separator = ({
2990
3022
  className,
2991
3023
  orientation = "horizontal",
2992
3024
  ...props
2993
- }) => /* @__PURE__ */ React14.createElement(
3025
+ }) => /* @__PURE__ */ React15.createElement(
2994
3026
  "div",
2995
3027
  {
2996
3028
  className: cn(
@@ -3003,9 +3035,9 @@ var Separator = ({
3003
3035
  );
3004
3036
 
3005
3037
  // elements/progress/Progress.tsx
3006
- import * as React15 from "react";
3038
+ import * as React16 from "react";
3007
3039
  import * as ProgressPrimitive from "@radix-ui/react-progress";
3008
- var Progress = React15.forwardRef(({ className, value, ...props }, ref) => /* @__PURE__ */ React15.createElement("div", { className: "hawa-flex hawa-flex-col hawa-gap-2" }, props.label && /* @__PURE__ */ React15.createElement(Label, { ...props.labelProps }, props.label), /* @__PURE__ */ React15.createElement(
3040
+ var Progress = React16.forwardRef(({ className, value, ...props }, ref) => /* @__PURE__ */ React16.createElement("div", { className: "hawa-flex hawa-flex-col hawa-gap-2" }, props.label && /* @__PURE__ */ React16.createElement(Label, { ...props.labelProps }, props.label), /* @__PURE__ */ React16.createElement(
3009
3041
  ProgressPrimitive.Root,
3010
3042
  {
3011
3043
  ref,
@@ -3015,7 +3047,7 @@ var Progress = React15.forwardRef(({ className, value, ...props }, ref) => /* @_
3015
3047
  ),
3016
3048
  ...props
3017
3049
  },
3018
- /* @__PURE__ */ React15.createElement(
3050
+ /* @__PURE__ */ React16.createElement(
3019
3051
  ProgressPrimitive.Indicator,
3020
3052
  {
3021
3053
  className: "hawa-h-full hawa-w-full hawa-flex-1 hawa-bg-primary hawa-transition-all",
@@ -3026,8 +3058,8 @@ var Progress = React15.forwardRef(({ className, value, ...props }, ref) => /* @_
3026
3058
  Progress.displayName = ProgressPrimitive.Root.displayName;
3027
3059
 
3028
3060
  // icons/Emojis.tsx
3029
- import React16 from "react";
3030
- var VeryGoodEmoji = () => /* @__PURE__ */ React16.createElement(
3061
+ import React17 from "react";
3062
+ var VeryGoodEmoji = () => /* @__PURE__ */ React17.createElement(
3031
3063
  "svg",
3032
3064
  {
3033
3065
  fill: "none",
@@ -3036,7 +3068,7 @@ var VeryGoodEmoji = () => /* @__PURE__ */ React16.createElement(
3036
3068
  width: "16",
3037
3069
  xmlns: "http://www.w3.org/2000/svg"
3038
3070
  },
3039
- /* @__PURE__ */ React16.createElement("g", { clipPath: "url(#clip0_53_166)" }, /* @__PURE__ */ React16.createElement(
3071
+ /* @__PURE__ */ React17.createElement("g", { clipPath: "url(#clip0_53_166)" }, /* @__PURE__ */ React17.createElement(
3040
3072
  "path",
3041
3073
  {
3042
3074
  clipRule: "evenodd",
@@ -3044,7 +3076,7 @@ var VeryGoodEmoji = () => /* @__PURE__ */ React16.createElement(
3044
3076
  fill: "currentColor",
3045
3077
  fillRule: "evenodd"
3046
3078
  }
3047
- ), /* @__PURE__ */ React16.createElement(
3079
+ ), /* @__PURE__ */ React17.createElement(
3048
3080
  "path",
3049
3081
  {
3050
3082
  clipRule: "evenodd",
@@ -3054,7 +3086,7 @@ var VeryGoodEmoji = () => /* @__PURE__ */ React16.createElement(
3054
3086
  }
3055
3087
  ))
3056
3088
  );
3057
- var GoodEmoji = () => /* @__PURE__ */ React16.createElement(
3089
+ var GoodEmoji = () => /* @__PURE__ */ React17.createElement(
3058
3090
  "svg",
3059
3091
  {
3060
3092
  fill: "none",
@@ -3063,7 +3095,7 @@ var GoodEmoji = () => /* @__PURE__ */ React16.createElement(
3063
3095
  width: "16",
3064
3096
  xmlns: "http://www.w3.org/2000/svg"
3065
3097
  },
3066
- /* @__PURE__ */ React16.createElement("g", { clipPath: "url(#clip0_53_167)" }, /* @__PURE__ */ React16.createElement(
3098
+ /* @__PURE__ */ React17.createElement("g", { clipPath: "url(#clip0_53_167)" }, /* @__PURE__ */ React17.createElement(
3067
3099
  "path",
3068
3100
  {
3069
3101
  clipRule: "evenodd",
@@ -3073,7 +3105,7 @@ var GoodEmoji = () => /* @__PURE__ */ React16.createElement(
3073
3105
  }
3074
3106
  ))
3075
3107
  );
3076
- var BadEmoji = () => /* @__PURE__ */ React16.createElement(
3108
+ var BadEmoji = () => /* @__PURE__ */ React17.createElement(
3077
3109
  "svg",
3078
3110
  {
3079
3111
  fill: "none",
@@ -3082,7 +3114,7 @@ var BadEmoji = () => /* @__PURE__ */ React16.createElement(
3082
3114
  width: "16",
3083
3115
  xmlns: "http://www.w3.org/2000/svg"
3084
3116
  },
3085
- /* @__PURE__ */ React16.createElement("g", { clipPath: "url(#clip0_53_152)" }, /* @__PURE__ */ React16.createElement(
3117
+ /* @__PURE__ */ React17.createElement("g", { clipPath: "url(#clip0_53_152)" }, /* @__PURE__ */ React17.createElement(
3086
3118
  "path",
3087
3119
  {
3088
3120
  clipRule: "evenodd",
@@ -3092,7 +3124,7 @@ var BadEmoji = () => /* @__PURE__ */ React16.createElement(
3092
3124
  }
3093
3125
  ))
3094
3126
  );
3095
- var VeryBadEmoji = () => /* @__PURE__ */ React16.createElement(
3127
+ var VeryBadEmoji = () => /* @__PURE__ */ React17.createElement(
3096
3128
  "svg",
3097
3129
  {
3098
3130
  fill: "none",
@@ -3101,13 +3133,13 @@ var VeryBadEmoji = () => /* @__PURE__ */ React16.createElement(
3101
3133
  width: "16",
3102
3134
  xmlns: "http://www.w3.org/2000/svg"
3103
3135
  },
3104
- /* @__PURE__ */ React16.createElement("g", { clipPath: "url(#clip0_53_151)" }, /* @__PURE__ */ React16.createElement(
3136
+ /* @__PURE__ */ React17.createElement("g", { clipPath: "url(#clip0_53_151)" }, /* @__PURE__ */ React17.createElement(
3105
3137
  "path",
3106
3138
  {
3107
3139
  d: "M11.841 12.0225C12.7197 12.9324 12.7197 14.4077 11.841 15.3176C10.9623 16.2275 9.53769 16.2275 8.65901 15.3176C7.78033 14.4077 7.78033 12.9324 8.65901 12.0225L10.25 10.375L11.841 12.0225Z",
3108
3140
  fill: "#0070F3"
3109
3141
  }
3110
- ), /* @__PURE__ */ React16.createElement(
3142
+ ), /* @__PURE__ */ React17.createElement(
3111
3143
  "path",
3112
3144
  {
3113
3145
  clipRule: "evenodd",
@@ -3119,8 +3151,8 @@ var VeryBadEmoji = () => /* @__PURE__ */ React16.createElement(
3119
3151
  );
3120
3152
 
3121
3153
  // icons/InputIcons.tsx
3122
- import React17 from "react";
3123
- var EyeIcon = (props) => /* @__PURE__ */ React17.createElement("div", { className: cn("hawa-h-5 hawa-w-5", props.className) }, /* @__PURE__ */ React17.createElement(
3154
+ import React18 from "react";
3155
+ var EyeIcon = (props) => /* @__PURE__ */ React18.createElement("div", { className: cn("hawa-h-5 hawa-w-5", props.className) }, /* @__PURE__ */ React18.createElement(
3124
3156
  "svg",
3125
3157
  {
3126
3158
  xmlns: "http://www.w3.org/2000/svg",
@@ -3131,10 +3163,10 @@ var EyeIcon = (props) => /* @__PURE__ */ React17.createElement("div", { classNam
3131
3163
  strokeLinecap: "round",
3132
3164
  strokeLinejoin: "round"
3133
3165
  },
3134
- /* @__PURE__ */ React17.createElement("path", { d: "M2 12s3-7 10-7 10 7 10 7-3 7-10 7-10-7-10-7Z" }),
3135
- /* @__PURE__ */ React17.createElement("circle", { cx: "12", cy: "12", r: "3" })
3166
+ /* @__PURE__ */ React18.createElement("path", { d: "M2 12s3-7 10-7 10 7 10 7-3 7-10 7-10-7-10-7Z" }),
3167
+ /* @__PURE__ */ React18.createElement("circle", { cx: "12", cy: "12", r: "3" })
3136
3168
  ));
3137
- var HiddenEyeIcon = (props) => /* @__PURE__ */ React17.createElement("div", { className: cn("hawa-h-5 hawa-w-5", props.className) }, /* @__PURE__ */ React17.createElement(
3169
+ var HiddenEyeIcon = (props) => /* @__PURE__ */ React18.createElement("div", { className: cn("hawa-h-5 hawa-w-5", props.className) }, /* @__PURE__ */ React18.createElement(
3138
3170
  "svg",
3139
3171
  {
3140
3172
  xmlns: "http://www.w3.org/2000/svg",
@@ -3145,20 +3177,20 @@ var HiddenEyeIcon = (props) => /* @__PURE__ */ React17.createElement("div", { cl
3145
3177
  strokeLinecap: "round",
3146
3178
  strokeLinejoin: "round"
3147
3179
  },
3148
- /* @__PURE__ */ React17.createElement("path", { d: "M9.88 9.88a3 3 0 1 0 4.24 4.24" }),
3149
- /* @__PURE__ */ React17.createElement("path", { d: "M10.73 5.08A10.43 10.43 0 0 1 12 5c7 0 10 7 10 7a13.16 13.16 0 0 1-1.67 2.68" }),
3150
- /* @__PURE__ */ React17.createElement("path", { d: "M6.61 6.61A13.526 13.526 0 0 0 2 12s3 7 10 7a9.74 9.74 0 0 0 5.39-1.61" }),
3151
- /* @__PURE__ */ React17.createElement("line", { x1: "2", x2: "22", y1: "2", y2: "22" })
3180
+ /* @__PURE__ */ React18.createElement("path", { d: "M9.88 9.88a3 3 0 1 0 4.24 4.24" }),
3181
+ /* @__PURE__ */ React18.createElement("path", { d: "M10.73 5.08A10.43 10.43 0 0 1 12 5c7 0 10 7 10 7a13.16 13.16 0 0 1-1.67 2.68" }),
3182
+ /* @__PURE__ */ React18.createElement("path", { d: "M6.61 6.61A13.526 13.526 0 0 0 2 12s3 7 10 7a9.74 9.74 0 0 0 5.39-1.61" }),
3183
+ /* @__PURE__ */ React18.createElement("line", { x1: "2", x2: "22", y1: "2", y2: "22" })
3152
3184
  ));
3153
3185
 
3154
3186
  // icons/CommonIcons.tsx
3155
- import React18 from "react";
3187
+ import React19 from "react";
3156
3188
  var CheckMark = ({ size = "default", className }) => {
3157
3189
  let sizeStyles = {
3158
3190
  default: "hawa-h-5 hawa-w-5",
3159
3191
  sm: "hawa-h-3 hawa-w-3"
3160
3192
  };
3161
- return /* @__PURE__ */ React18.createElement(
3193
+ return /* @__PURE__ */ React19.createElement(
3162
3194
  "svg",
3163
3195
  {
3164
3196
  className: cn(sizeStyles[size], className),
@@ -3166,7 +3198,7 @@ var CheckMark = ({ size = "default", className }) => {
3166
3198
  fill: "currentColor",
3167
3199
  viewBox: "0 0 20 20"
3168
3200
  },
3169
- /* @__PURE__ */ React18.createElement(
3201
+ /* @__PURE__ */ React19.createElement(
3170
3202
  "path",
3171
3203
  {
3172
3204
  fillRule: "evenodd",
@@ -3181,7 +3213,7 @@ var UncheckMark = ({ size = "default", className }) => {
3181
3213
  default: "hawa-h-5 hawa-w-5",
3182
3214
  sm: "hawa-h-3 hawa-w-3"
3183
3215
  };
3184
- return /* @__PURE__ */ React18.createElement(
3216
+ return /* @__PURE__ */ React19.createElement(
3185
3217
  "svg",
3186
3218
  {
3187
3219
  className: cn(sizeStyles[size], className),
@@ -3189,7 +3221,7 @@ var UncheckMark = ({ size = "default", className }) => {
3189
3221
  fill: "currentColor",
3190
3222
  viewBox: "0 0 20 20"
3191
3223
  },
3192
- /* @__PURE__ */ React18.createElement(
3224
+ /* @__PURE__ */ React19.createElement(
3193
3225
  "path",
3194
3226
  {
3195
3227
  fillRule: "evenodd",
@@ -3222,6 +3254,8 @@ export {
3222
3254
  PopoverContent,
3223
3255
  Popover,
3224
3256
  PopoverTrigger,
3257
+ PopoverPortal,
3258
+ PopoverRoot,
3225
3259
  ScrollArea,
3226
3260
  ScrollBar,
3227
3261
  Tabs,