@sikka/hawa 0.26.30 → 0.26.32

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 (216) hide show
  1. package/dist/{Toast-pOd4uGZz.d.ts → Toast-YaClwi7z.d.ts} +9 -1
  2. package/dist/{Toast-VBd4UvlM.d.mts → Toast-ySvjL_-K.d.mts} +9 -1
  3. package/dist/accordion/index.mjs +7 -4
  4. package/dist/accordion/index.mjs.map +1 -1
  5. package/dist/alert/index.js +4 -4
  6. package/dist/alert/index.js.map +1 -1
  7. package/dist/alert/index.mjs +11 -8
  8. package/dist/alert/index.mjs.map +1 -1
  9. package/dist/appLayout/index.js +2 -1
  10. package/dist/appLayout/index.js.map +1 -1
  11. package/dist/appLayout/index.mjs +9 -5
  12. package/dist/appLayout/index.mjs.map +1 -1
  13. package/dist/appMenubar/index.mjs +9 -4
  14. package/dist/appMenubar/index.mjs.map +1 -1
  15. package/dist/appTabs/index.mjs +9 -4
  16. package/dist/appTabs/index.mjs.map +1 -1
  17. package/dist/appTopbar/index.mjs +9 -4
  18. package/dist/appTopbar/index.mjs.map +1 -1
  19. package/dist/avatar/index.js +2 -1
  20. package/dist/avatar/index.js.map +1 -1
  21. package/dist/avatar/index.mjs +9 -5
  22. package/dist/avatar/index.mjs.map +1 -1
  23. package/dist/backToTop/index.js +6 -3
  24. package/dist/backToTop/index.js.map +1 -1
  25. package/dist/backToTop/index.mjs +13 -7
  26. package/dist/backToTop/index.mjs.map +1 -1
  27. package/dist/badge/index.js +4 -3
  28. package/dist/badge/index.js.map +1 -1
  29. package/dist/badge/index.mjs +13 -7
  30. package/dist/badge/index.mjs.map +1 -1
  31. package/dist/button/index.mjs +7 -4
  32. package/dist/button/index.mjs.map +1 -1
  33. package/dist/card/index.mjs +9 -4
  34. package/dist/card/index.mjs.map +1 -1
  35. package/dist/carousel/index.js +10 -10
  36. package/dist/carousel/index.js.map +1 -1
  37. package/dist/carousel/index.mjs +19 -14
  38. package/dist/carousel/index.mjs.map +1 -1
  39. package/dist/checkbox/index.mjs +9 -4
  40. package/dist/checkbox/index.mjs.map +1 -1
  41. package/dist/chip/index.mjs +9 -4
  42. package/dist/chip/index.mjs.map +1 -1
  43. package/dist/chunk-A3ERTYS4.mjs +29 -0
  44. package/dist/codeBlock/index.mjs +83 -23
  45. package/dist/codeBlock/index.mjs.map +1 -1
  46. package/dist/collapsible/index.mjs +0 -2
  47. package/dist/collapsible/index.mjs.map +1 -1
  48. package/dist/colorPicker/index.js +2 -1
  49. package/dist/colorPicker/index.js.map +1 -1
  50. package/dist/colorPicker/index.mjs +92 -20
  51. package/dist/colorPicker/index.mjs.map +1 -1
  52. package/dist/combobox/index.js +4 -3
  53. package/dist/combobox/index.js.map +1 -1
  54. package/dist/combobox/index.mjs +445 -27
  55. package/dist/combobox/index.mjs.map +1 -1
  56. package/dist/command/index.mjs +429 -11
  57. package/dist/command/index.mjs.map +1 -1
  58. package/dist/dataTable/index.js +36 -27
  59. package/dist/dataTable/index.js.map +1 -1
  60. package/dist/dataTable/index.mjs +43 -31
  61. package/dist/dataTable/index.mjs.map +1 -1
  62. package/dist/destroyableCard/index.js +2 -2
  63. package/dist/destroyableCard/index.js.map +1 -1
  64. package/dist/destroyableCard/index.mjs +9 -6
  65. package/dist/destroyableCard/index.mjs.map +1 -1
  66. package/dist/dialog/index.mjs +9 -4
  67. package/dist/dialog/index.mjs.map +1 -1
  68. package/dist/docsLayout/index.js +2 -2
  69. package/dist/docsLayout/index.js.map +1 -1
  70. package/dist/docsLayout/index.mjs +9 -6
  71. package/dist/docsLayout/index.mjs.map +1 -1
  72. package/dist/docsSidebar/index.js +2 -2
  73. package/dist/docsSidebar/index.js.map +1 -1
  74. package/dist/docsSidebar/index.mjs +11 -6
  75. package/dist/docsSidebar/index.mjs.map +1 -1
  76. package/dist/dropdownMenu/index.mjs +9 -4
  77. package/dist/dropdownMenu/index.mjs.map +1 -1
  78. package/dist/elements/index.d.mts +4 -2
  79. package/dist/elements/index.d.ts +4 -2
  80. package/dist/elements/index.js +7 -134
  81. package/dist/elements/index.mjs +9 -13
  82. package/dist/fileDropzone/index.js +12 -11
  83. package/dist/fileDropzone/index.js.map +1 -1
  84. package/dist/fileDropzone/index.mjs +21 -17
  85. package/dist/fileDropzone/index.mjs.map +1 -1
  86. package/dist/fileUploader/index.js +2 -1
  87. package/dist/fileUploader/index.js.map +1 -1
  88. package/dist/fileUploader/index.mjs +2 -1
  89. package/dist/fileUploader/index.mjs.map +1 -1
  90. package/dist/glow/index.js +24 -17
  91. package/dist/glow/index.js.map +1 -1
  92. package/dist/glow/index.mjs +24 -17
  93. package/dist/glow/index.mjs.map +1 -1
  94. package/dist/hooks/index.d.mts +9 -18
  95. package/dist/hooks/index.d.ts +9 -18
  96. package/dist/hooks/index.mjs +146 -27
  97. package/dist/index.d.mts +18 -17
  98. package/dist/index.d.ts +18 -17
  99. package/dist/index.js +166 -171
  100. package/dist/index.mjs +588 -593
  101. package/dist/input/index.js +3 -2
  102. package/dist/input/index.js.map +1 -1
  103. package/dist/input/index.mjs +118 -19
  104. package/dist/input/index.mjs.map +1 -1
  105. package/dist/interfaceSettings/index.js +6 -4
  106. package/dist/interfaceSettings/index.js.map +1 -1
  107. package/dist/interfaceSettings/index.mjs +130 -28
  108. package/dist/interfaceSettings/index.mjs.map +1 -1
  109. package/dist/label/index.mjs +7 -4
  110. package/dist/label/index.mjs.map +1 -1
  111. package/dist/loading/index.mjs +9 -4
  112. package/dist/loading/index.mjs.map +1 -1
  113. package/dist/navbar/index.js +3 -2
  114. package/dist/navbar/index.js.map +1 -1
  115. package/dist/navbar/index.mjs +10 -6
  116. package/dist/navbar/index.mjs.map +1 -1
  117. package/dist/navigationMenu/index.mjs +9 -4
  118. package/dist/navigationMenu/index.mjs.map +1 -1
  119. package/dist/pagination/index.mjs +9 -4
  120. package/dist/pagination/index.mjs.map +1 -1
  121. package/dist/passwordInput/index.js +3 -2
  122. package/dist/passwordInput/index.js.map +1 -1
  123. package/dist/passwordInput/index.mjs +12 -6
  124. package/dist/passwordInput/index.mjs.map +1 -1
  125. package/dist/phoneInput/index.js +10 -5
  126. package/dist/phoneInput/index.js.map +1 -1
  127. package/dist/phoneInput/index.mjs +19 -11
  128. package/dist/phoneInput/index.mjs.map +1 -1
  129. package/dist/pinInput/index.js +3 -3
  130. package/dist/pinInput/index.js.map +1 -1
  131. package/dist/pinInput/index.mjs +12 -7
  132. package/dist/pinInput/index.mjs.map +1 -1
  133. package/dist/popover/index.mjs +9 -4
  134. package/dist/popover/index.mjs.map +1 -1
  135. package/dist/progress/index.mjs +9 -4
  136. package/dist/progress/index.mjs.map +1 -1
  137. package/dist/progressCircle/index.js +2 -2
  138. package/dist/progressCircle/index.js.map +1 -1
  139. package/dist/progressCircle/index.mjs +11 -6
  140. package/dist/progressCircle/index.mjs.map +1 -1
  141. package/dist/radio/index.js +6 -4
  142. package/dist/radio/index.js.map +1 -1
  143. package/dist/radio/index.mjs +13 -8
  144. package/dist/radio/index.mjs.map +1 -1
  145. package/dist/scrollArea/index.mjs +9 -4
  146. package/dist/scrollArea/index.mjs.map +1 -1
  147. package/dist/scrollIndicator/index.js +2 -1
  148. package/dist/scrollIndicator/index.js.map +1 -1
  149. package/dist/scrollIndicator/index.mjs +2 -1
  150. package/dist/scrollIndicator/index.mjs.map +1 -1
  151. package/dist/select/index.js +6 -2
  152. package/dist/select/index.js.map +1 -1
  153. package/dist/select/index.mjs +15 -8
  154. package/dist/select/index.mjs.map +1 -1
  155. package/dist/separator/index.mjs +9 -4
  156. package/dist/separator/index.mjs.map +1 -1
  157. package/dist/sheet/index.mjs +9 -4
  158. package/dist/sheet/index.mjs.map +1 -1
  159. package/dist/sidebar/index.mjs +9 -4
  160. package/dist/sidebar/index.mjs.map +1 -1
  161. package/dist/signature/index.js +31 -11
  162. package/dist/signature/index.js.map +1 -1
  163. package/dist/signature/index.mjs +40 -15
  164. package/dist/signature/index.mjs.map +1 -1
  165. package/dist/simpleTable/index.js +18 -14
  166. package/dist/simpleTable/index.js.map +1 -1
  167. package/dist/simpleTable/index.mjs +25 -18
  168. package/dist/simpleTable/index.mjs.map +1 -1
  169. package/dist/skeleton/index.mjs +9 -4
  170. package/dist/skeleton/index.mjs.map +1 -1
  171. package/dist/slider/index.mjs +9 -4
  172. package/dist/slider/index.mjs.map +1 -1
  173. package/dist/sortButton/index.mjs +268 -11
  174. package/dist/sortButton/index.mjs.map +1 -1
  175. package/dist/splitButton/index.mjs +267 -12
  176. package/dist/splitButton/index.mjs.map +1 -1
  177. package/dist/switch/index.js +2 -1
  178. package/dist/switch/index.js.map +1 -1
  179. package/dist/switch/index.mjs +11 -5
  180. package/dist/switch/index.mjs.map +1 -1
  181. package/dist/table/index.mjs +9 -4
  182. package/dist/table/index.mjs.map +1 -1
  183. package/dist/tabs/index.mjs +7 -4
  184. package/dist/tabs/index.mjs.map +1 -1
  185. package/dist/textarea/index.js +4 -4
  186. package/dist/textarea/index.js.map +1 -1
  187. package/dist/textarea/index.mjs +11 -8
  188. package/dist/textarea/index.mjs.map +1 -1
  189. package/dist/toast/index.d.mts +9 -1
  190. package/dist/toast/index.d.ts +9 -1
  191. package/dist/toast/index.js +3 -3
  192. package/dist/toast/index.js.map +1 -1
  193. package/dist/toast/index.mjs +145 -10
  194. package/dist/toast/index.mjs.map +1 -1
  195. package/dist/toaster/index.d.mts +5 -0
  196. package/dist/toaster/index.d.ts +5 -0
  197. package/dist/toaster/index.js +17 -142
  198. package/dist/toaster/index.js.map +1 -1
  199. package/dist/toaster/index.mjs +142 -135
  200. package/dist/toaster/index.mjs.map +1 -1
  201. package/package.json +5 -5
  202. package/dist/chunk-3ODWQVIA.mjs +0 -12
  203. package/dist/chunk-3ODWQVIA.mjs.map +0 -1
  204. package/dist/chunk-53OZVR57.mjs +0 -108
  205. package/dist/chunk-53OZVR57.mjs.map +0 -1
  206. package/dist/chunk-CBRGWUZG.mjs +0 -11
  207. package/dist/chunk-CBRGWUZG.mjs.map +0 -1
  208. package/dist/chunk-HYXZRCZW.mjs +0 -265
  209. package/dist/chunk-HYXZRCZW.mjs.map +0 -1
  210. package/dist/chunk-JNUGOUYJ.mjs +0 -154
  211. package/dist/chunk-JX5YLRCU.mjs +0 -443
  212. package/dist/chunk-JX5YLRCU.mjs.map +0 -1
  213. package/dist/chunk-NV3KR5Y7.mjs +0 -82
  214. package/dist/chunk-NV3KR5Y7.mjs.map +0 -1
  215. package/dist/chunk-OQ7MNEYW.mjs +0 -151
  216. package/dist/chunk-OQ7MNEYW.mjs.map +0 -1
@@ -1,9 +1,14 @@
1
- import {
2
- cn
3
- } from "../chunk-CBRGWUZG.mjs";
4
-
5
1
  // elements/carousel/Carousel.tsx
6
2
  import React, { useEffect, useState } from "react";
3
+
4
+ // util/index.ts
5
+ import { clsx } from "clsx";
6
+ import { twMerge } from "tailwind-merge";
7
+ function cn(...inputs) {
8
+ return twMerge(clsx(inputs));
9
+ }
10
+
11
+ // elements/carousel/Carousel.tsx
7
12
  import useEmblaCarousel from "embla-carousel-react";
8
13
  var Carousel = ({
9
14
  items,
@@ -17,17 +22,17 @@ var Carousel = ({
17
22
  const [emblaRef, emblaApi] = useEmblaCarousel({
18
23
  ...options,
19
24
  direction,
20
- loop: autoplay ? true : options?.loop || false
25
+ loop: autoplay ? true : (options == null ? void 0 : options.loop) || false
21
26
  });
22
27
  const [selectedIndex, setSelectedIndex] = useState(0);
23
28
  useEffect(() => {
24
29
  function selectHandler() {
25
- const index = emblaApi?.selectedScrollSnap();
30
+ const index = emblaApi == null ? void 0 : emblaApi.selectedScrollSnap();
26
31
  setSelectedIndex(index || 0);
27
32
  }
28
- emblaApi?.on("select", selectHandler);
33
+ emblaApi == null ? void 0 : emblaApi.on("select", selectHandler);
29
34
  return () => {
30
- emblaApi?.off("select", selectHandler);
35
+ emblaApi == null ? void 0 : emblaApi.off("select", selectHandler);
31
36
  };
32
37
  }, [emblaApi]);
33
38
  useEffect(() => {
@@ -43,9 +48,9 @@ var Carousel = ({
43
48
  };
44
49
  }, [emblaApi, autoplay, autoplayInterval]);
45
50
  const length = React.Children.count(items);
46
- const canScrollNext = !!emblaApi?.canScrollNext();
47
- const canScrollPrev = !!emblaApi?.canScrollPrev();
48
- return /* @__PURE__ */ React.createElement("div", { className: " hawa-relative hawa-h-full" }, /* @__PURE__ */ React.createElement("div", { className: "hawa-h-full hawa-overflow-hidden" }, /* @__PURE__ */ React.createElement("div", { className: "hawa-h-full", ref: emblaRef }, /* @__PURE__ */ React.createElement("div", { className: "hawa-flex hawa-h-full" }, items?.map((item, i) => /* @__PURE__ */ React.createElement(
51
+ const canScrollNext = !!(emblaApi == null ? void 0 : emblaApi.canScrollNext());
52
+ const canScrollPrev = !!(emblaApi == null ? void 0 : emblaApi.canScrollPrev());
53
+ return /* @__PURE__ */ React.createElement("div", { className: " hawa-relative hawa-h-full" }, /* @__PURE__ */ React.createElement("div", { className: "hawa-h-full hawa-overflow-hidden" }, /* @__PURE__ */ React.createElement("div", { className: "hawa-h-full", ref: emblaRef }, /* @__PURE__ */ React.createElement("div", { className: "hawa-flex hawa-h-full" }, items == null ? void 0 : items.map((item, i) => /* @__PURE__ */ React.createElement(
49
54
  "div",
50
55
  {
51
56
  key: i,
@@ -58,15 +63,15 @@ var Carousel = ({
58
63
  direction,
59
64
  itemsLength: length,
60
65
  selectedIndex,
61
- onDotClick: (index) => emblaApi?.scrollTo(index)
66
+ onDotClick: (index) => emblaApi == null ? void 0 : emblaApi.scrollTo(index)
62
67
  }
63
68
  ), showArrows && /* @__PURE__ */ React.createElement(
64
69
  CarouselControls,
65
70
  {
66
71
  canScrollNext,
67
72
  canScrollPrev,
68
- onNext: () => emblaApi?.scrollNext(),
69
- onPrev: () => emblaApi?.scrollPrev()
73
+ onNext: () => emblaApi == null ? void 0 : emblaApi.scrollNext(),
74
+ onPrev: () => emblaApi == null ? void 0 : emblaApi.scrollPrev()
70
75
  }
71
76
  ));
72
77
  };
@@ -1 +1 @@
1
- {"version":3,"sources":["../../elements/carousel/Carousel.tsx"],"sourcesContent":["import React, { useEffect, useState } from \"react\";\n\nimport { DirectionType } from \"@_types/commonTypes\";\n// import useEmblaCarousel, { EmblaOptionsType } from \"embla-carousel-react\";\nimport { cn } from \"@util/index\";\nimport { EmblaOptionsType } from \"embla-carousel\";\nimport useEmblaCarousel from \"embla-carousel-react\";\n\ntype CarouselProps = {\n items: React.ReactNode[];\n showArrows?: boolean;\n autoplay?: boolean;\n autoplayInterval?: number;\n options?: EmblaOptionsType;\n direction?: DirectionType;\n};\ntype DotsProps = {\n itemsLength: number;\n selectedIndex: number;\n direction: DirectionType;\n onDotClick: (index: number) => void;\n};\ntype ControlsProps = {\n canScrollPrev: boolean;\n canScrollNext: boolean;\n onPrev(): void;\n onNext(): void;\n};\n\nexport const Carousel: React.FC<CarouselProps> = ({\n items,\n showArrows,\n options,\n autoplay,\n direction = \"ltr\",\n autoplayInterval = 3000,\n ...props\n}) => {\n const [emblaRef, emblaApi] = useEmblaCarousel({\n ...options,\n direction,\n loop: autoplay ? true : options?.loop || false\n });\n const [selectedIndex, setSelectedIndex] = useState(0);\n\n useEffect(() => {\n function selectHandler() {\n const index = emblaApi?.selectedScrollSnap();\n setSelectedIndex(index || 0);\n }\n\n emblaApi?.on(\"select\", selectHandler);\n return () => {\n emblaApi?.off(\"select\", selectHandler);\n };\n }, [emblaApi]);\n\n useEffect(() => {\n let autoplayTimer: ReturnType<typeof setTimeout>;\n if (autoplay && emblaApi) {\n autoplayTimer = setInterval(() => {\n emblaApi.scrollNext();\n }, autoplayInterval);\n }\n\n return () => {\n if (autoplayTimer) clearInterval(autoplayTimer);\n };\n }, [emblaApi, autoplay, autoplayInterval]);\n\n const length = React.Children.count(items);\n const canScrollNext = !!emblaApi?.canScrollNext();\n const canScrollPrev = !!emblaApi?.canScrollPrev();\n return (\n <div className=\" hawa-relative hawa-h-full\">\n <div className=\"hawa-h-full hawa-overflow-hidden\">\n <div className=\"hawa-h-full\" ref={emblaRef}>\n <div className=\"hawa-flex hawa-h-full\">\n {items?.map((item: any, i: any) => (\n <div\n key={i}\n className=\"hawa-flex hawa-h-full hawa-min-w-0 hawa-flex-[0_0_100%] hawa-items-center hawa-justify-center\"\n >\n {item}\n </div>\n ))}\n </div>\n </div>\n </div>\n\n <Dots\n direction={direction}\n itemsLength={length}\n selectedIndex={selectedIndex}\n onDotClick={(index) => emblaApi?.scrollTo(index)}\n />\n\n {showArrows && (\n <CarouselControls\n canScrollNext={canScrollNext}\n canScrollPrev={canScrollPrev}\n onNext={() => emblaApi?.scrollNext()}\n onPrev={() => emblaApi?.scrollPrev()}\n />\n )}\n </div>\n );\n};\n\nconst Dots = ({\n onDotClick,\n itemsLength,\n selectedIndex,\n direction\n}: DotsProps) => {\n const arr = new Array(itemsLength).fill(0);\n return (\n <div\n dir={direction}\n className=\"hawa-z-50 hawa-my-2 hawa-flex hawa-justify-center hawa-gap-1\"\n >\n {arr.map((_, index) => {\n const selected = index === selectedIndex;\n return (\n <div\n key={index}\n onClick={() => onDotClick(index)}\n className={cn(\n \"hawa-h-2 hawa-rounded-full hawa-bg-primary hawa-transition-all hawa-duration-300 hover:hawa-cursor-pointer\",\n !selected\n ? \"hawa-w-2 hawa-opacity-50\"\n : \"hawa-w-6 hawa-opacity-100\"\n )}\n ></div>\n );\n })}\n </div>\n );\n};\n\nconst CarouselControls = (props: ControlsProps) => {\n return (\n <div className=\"hawa-flex hawa-justify-end hawa-gap-2 \">\n <button\n onClick={() => props.canScrollPrev && props.onPrev()}\n disabled={!props.canScrollPrev}\n className={cn(\n \"hawa-absolute hawa-start-0 hawa-top-1/2 -hawa-translate-y-2 hawa-rounded-full hawa-p-2 hawa-text-white \",\n !props.canScrollPrev && \"hawa-bg-primary/50\",\n props.canScrollPrev && \"hawa-bg-primary\"\n )}\n >\n <svg\n aria-label=\"Chevron Right Icon\"\n stroke=\"currentColor\"\n fill=\"currentColor\"\n viewBox=\"0 0 16 16\"\n className=\"hawa-h-2 hawa-w-2 hawa-shrink-0 hawa-rotate-180 hawa-transition-transform hawa-duration-200 \"\n >\n <path d=\"M4.646 1.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708-.708L10.293 8 4.646 2.354a.5.5 0 0 1 0-.708z\"></path>\n </svg>\n </button>\n <button\n onClick={() => props.canScrollNext && props.onNext()}\n disabled={!props.canScrollNext}\n className={cn(\n \"hawa-absolute hawa-end-0 hawa-top-1/2 -hawa-translate-y-2 hawa-rounded-full hawa-p-2 hawa-text-white \",\n !props.canScrollNext && \"hawa-bg-primary/50\",\n props.canScrollNext && \"hawa-bg-primary\"\n )}\n >\n <svg\n aria-label=\"Chevron Right Icon\"\n stroke=\"currentColor\"\n fill=\"currentColor\"\n viewBox=\"0 0 16 16\"\n className=\"hawa-h-2 hawa-w-2 hawa-shrink-0 hawa-transition-transform hawa-duration-200 \"\n >\n <path d=\"M4.646 1.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708-.708L10.293 8 4.646 2.354a.5.5 0 0 1 0-.708z\"></path>\n </svg>\n </button>\n </div>\n );\n};\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../../elements/carousel/Carousel.tsx","../../util/index.ts"],"sourcesContent":["import React, { useEffect, useState } from \"react\";\n\nimport { DirectionType } from \"@_types/commonTypes\";\n// import useEmblaCarousel, { EmblaOptionsType } from \"embla-carousel-react\";\nimport { cn } from \"@util/index\";\nimport { EmblaOptionsType } from \"embla-carousel\";\nimport useEmblaCarousel from \"embla-carousel-react\";\n\ntype CarouselProps = {\n items: React.ReactNode[];\n showArrows?: boolean;\n autoplay?: boolean;\n autoplayInterval?: number;\n options?: EmblaOptionsType;\n direction?: DirectionType;\n};\ntype DotsProps = {\n itemsLength: number;\n selectedIndex: number;\n direction: DirectionType;\n onDotClick: (index: number) => void;\n};\ntype ControlsProps = {\n canScrollPrev: boolean;\n canScrollNext: boolean;\n onPrev(): void;\n onNext(): void;\n};\n\nexport const Carousel: React.FC<CarouselProps> = ({\n items,\n showArrows,\n options,\n autoplay,\n direction = \"ltr\",\n autoplayInterval = 3000,\n ...props\n}) => {\n const [emblaRef, emblaApi] = useEmblaCarousel({\n ...options,\n direction,\n loop: autoplay ? true : options?.loop || false\n });\n const [selectedIndex, setSelectedIndex] = useState(0);\n\n useEffect(() => {\n function selectHandler() {\n const index = emblaApi?.selectedScrollSnap();\n setSelectedIndex(index || 0);\n }\n\n emblaApi?.on(\"select\", selectHandler);\n return () => {\n emblaApi?.off(\"select\", selectHandler);\n };\n }, [emblaApi]);\n\n useEffect(() => {\n let autoplayTimer: ReturnType<typeof setTimeout>;\n if (autoplay && emblaApi) {\n autoplayTimer = setInterval(() => {\n emblaApi.scrollNext();\n }, autoplayInterval);\n }\n\n return () => {\n if (autoplayTimer) clearInterval(autoplayTimer);\n };\n }, [emblaApi, autoplay, autoplayInterval]);\n\n const length = React.Children.count(items);\n const canScrollNext = !!emblaApi?.canScrollNext();\n const canScrollPrev = !!emblaApi?.canScrollPrev();\n return (\n <div className=\" hawa-relative hawa-h-full\">\n <div className=\"hawa-h-full hawa-overflow-hidden\">\n <div className=\"hawa-h-full\" ref={emblaRef}>\n <div className=\"hawa-flex hawa-h-full\">\n {items?.map((item: any, i: any) => (\n <div\n key={i}\n className=\"hawa-flex hawa-h-full hawa-min-w-0 hawa-flex-[0_0_100%] hawa-items-center hawa-justify-center\"\n >\n {item}\n </div>\n ))}\n </div>\n </div>\n </div>\n\n <Dots\n direction={direction}\n itemsLength={length}\n selectedIndex={selectedIndex}\n onDotClick={(index) => emblaApi?.scrollTo(index)}\n />\n\n {showArrows && (\n <CarouselControls\n canScrollNext={canScrollNext}\n canScrollPrev={canScrollPrev}\n onNext={() => emblaApi?.scrollNext()}\n onPrev={() => emblaApi?.scrollPrev()}\n />\n )}\n </div>\n );\n};\n\nconst Dots = ({\n onDotClick,\n itemsLength,\n selectedIndex,\n direction\n}: DotsProps) => {\n const arr = new Array(itemsLength).fill(0);\n return (\n <div\n dir={direction}\n className=\"hawa-z-50 hawa-my-2 hawa-flex hawa-justify-center hawa-gap-1\"\n >\n {arr.map((_, index) => {\n const selected = index === selectedIndex;\n return (\n <div\n key={index}\n onClick={() => onDotClick(index)}\n className={cn(\n \"hawa-h-2 hawa-rounded-full hawa-bg-primary hawa-transition-all hawa-duration-300 hover:hawa-cursor-pointer\",\n !selected\n ? \"hawa-w-2 hawa-opacity-50\"\n : \"hawa-w-6 hawa-opacity-100\"\n )}\n ></div>\n );\n })}\n </div>\n );\n};\n\nconst CarouselControls = (props: ControlsProps) => {\n return (\n <div className=\"hawa-flex hawa-justify-end hawa-gap-2 \">\n <button\n onClick={() => props.canScrollPrev && props.onPrev()}\n disabled={!props.canScrollPrev}\n className={cn(\n \"hawa-absolute hawa-start-0 hawa-top-1/2 -hawa-translate-y-2 hawa-rounded-full hawa-p-2 hawa-text-white \",\n !props.canScrollPrev && \"hawa-bg-primary/50\",\n props.canScrollPrev && \"hawa-bg-primary\"\n )}\n >\n <svg\n aria-label=\"Chevron Right Icon\"\n stroke=\"currentColor\"\n fill=\"currentColor\"\n viewBox=\"0 0 16 16\"\n className=\"hawa-h-2 hawa-w-2 hawa-shrink-0 hawa-rotate-180 hawa-transition-transform hawa-duration-200 \"\n >\n <path d=\"M4.646 1.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708-.708L10.293 8 4.646 2.354a.5.5 0 0 1 0-.708z\"></path>\n </svg>\n </button>\n <button\n onClick={() => props.canScrollNext && props.onNext()}\n disabled={!props.canScrollNext}\n className={cn(\n \"hawa-absolute hawa-end-0 hawa-top-1/2 -hawa-translate-y-2 hawa-rounded-full hawa-p-2 hawa-text-white \",\n !props.canScrollNext && \"hawa-bg-primary/50\",\n props.canScrollNext && \"hawa-bg-primary\"\n )}\n >\n <svg\n aria-label=\"Chevron Right Icon\"\n stroke=\"currentColor\"\n fill=\"currentColor\"\n viewBox=\"0 0 16 16\"\n className=\"hawa-h-2 hawa-w-2 hawa-shrink-0 hawa-transition-transform hawa-duration-200 \"\n >\n <path d=\"M4.646 1.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708-.708L10.293 8 4.646 2.354a.5.5 0 0 1 0-.708z\"></path>\n </svg>\n </button>\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":"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","names":[]}
@@ -1,10 +1,15 @@
1
- import {
2
- cn
3
- } from "../chunk-CBRGWUZG.mjs";
4
-
5
1
  // elements/checkbox/Checkbox.tsx
6
2
  import * as React from "react";
7
3
  import * as CheckboxPrimitive from "@radix-ui/react-checkbox";
4
+
5
+ // util/index.ts
6
+ import { clsx } from "clsx";
7
+ import { twMerge } from "tailwind-merge";
8
+ function cn(...inputs) {
9
+ return twMerge(clsx(inputs));
10
+ }
11
+
12
+ // elements/checkbox/Checkbox.tsx
8
13
  var Checkbox = ({
9
14
  id,
10
15
  label,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../elements/checkbox/Checkbox.tsx"],"sourcesContent":["import * as React from \"react\";\n\nimport * as CheckboxPrimitive from \"@radix-ui/react-checkbox\";\n\nimport { RadiusType } from \"@_types/commonTypes\";\n\nimport { cn } from \"@util/index\";\n\ntype CheckBoxTypes = {\n id: string;\n label?: React.ReactNode;\n sublabel?: React.ReactNode;\n helperText?: string;\n size?: \"xs\" | \"sm\" | \"default\" | \"md\" | \"lg\" | \"xl\";\n radius?: RadiusType;\n};\n\ntype CheckboxProps = CheckBoxTypes &\n React.ComponentProps<typeof CheckboxElement>;\n\nexport const Checkbox: React.FC<CheckboxProps> = ({\n id,\n label,\n sublabel,\n helperText,\n disabled,\n size = \"default\",\n radius = \"inherit\",\n ...props\n}) => {\n let labelLineHeightStyles = {\n xs: sublabel || helperText ? 0.5 : 0.1,\n sm: 0.6,\n default: 1,\n md: 0.8,\n lg: 0.9,\n xl: 1\n };\n return (\n <div\n className={cn(\n \"hawa-flex hawa-gap-2\",\n size === \"default\" ? \"hawa-items-top\" : \"hawa-items-center\"\n )}\n >\n <CheckboxElement\n {...props}\n size={size}\n radius={radius}\n disabled={disabled}\n id={id}\n />\n {(label || helperText) && (\n <div className={\"hawa-grid hawa-gap-1.5\"}>\n {label && (\n <label\n htmlFor={id}\n className={cn(\n \"hawa-w-fit hawa-select-none hawa-pt-0.5 hawa-text-sm hawa-font-medium\",\n disabled\n ? \"hawa-cursor-not-allowed hawa-text-muted-foreground hawa-opacity-70 \"\n : \"hawa-cursor-pointer\"\n )}\n style={{\n // lineHeight: labelLineHeightStyles[size]\n\n lineHeight: 1\n }}\n >\n {label}\n </label>\n )}\n {sublabel && (\n <label\n htmlFor={id}\n className={cn(\n \"hawa-w-fit hawa-select-none hawa-text-sm hawa-text-muted-foreground\",\n disabled\n ? \"hawa-cursor-not-allowed hawa-text-muted-foreground hawa-opacity-70\"\n : \"hawa-cursor-pointer\"\n )}\n >\n {sublabel}\n </label>\n )}\n {helperText && !disabled && (\n <label\n htmlFor={id}\n className={cn(\n \"hawa-w-fit hawa-select-none hawa-text-xs hawa-text-helper-color\",\n disabled && \"hawa-cursor-not-allowed hawa-opacity-70\"\n )}\n >\n {helperText}\n </label>\n )}\n </div>\n )}\n </div>\n );\n};\n\nconst CheckboxElement = React.forwardRef<\n React.ElementRef<typeof CheckboxPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof CheckboxPrimitive.Root> & {\n size?: \"xs\" | \"sm\" | \"default\" | \"md\" | \"lg\" | \"xl\";\n radius?: RadiusType;\n }\n>(({ radius = \"inherit\", size = \"default\", className, ...props }, ref) => {\n let checkboxRadius = {\n none: \"hawa-rounded-none\",\n inherit: \"hawa-rounded-sm\",\n full: \"hawa-rounded-full\"\n };\n let checkboxSizes = {\n xs: \"hawa-w-3 hawa-h-3\",\n sm: \"hawa-w-6 hawa-h-6\",\n default: \"hawa-icon\",\n md: \"hawa-w-8 hawa-h-8\",\n lg: \"hawa-w-10 hawa-h-10\",\n xl: \"hawa-w-12 hawa-h-12\"\n };\n let checkboxIndicatorSizes = {\n xs: \"0.5em\",\n default: \"0.60em\",\n sm: \"0.75em\",\n md: \"0.875em\",\n lg: \"1em\",\n xl: \"1.25em\"\n };\n return (\n <CheckboxPrimitive.Root\n ref={ref}\n className={cn(\n \"hawa-peer hawa-shrink-0 hawa-border hawa-border-primary hawa-ring-offset-background focus-visible:hawa-outline-none focus-visible:hawa-ring-2 focus-visible:hawa-ring-ring focus-visible:hawa-ring-offset-2 disabled:hawa-cursor-not-allowed disabled:hawa-opacity-50 data-[state=checked]:hawa-bg-primary data-[state=checked]:hawa-text-primary-foreground\",\n checkboxSizes[size],\n checkboxRadius[radius],\n className\n )}\n {...props}\n >\n <CheckboxPrimitive.Indicator\n className={cn(\n \"hawa-flex hawa-items-center hawa-justify-center hawa-text-current\"\n )}\n >\n <svg\n aria-label=\"Check Mark\"\n stroke=\"currentColor\"\n fill=\"currentColor\"\n strokeWidth=\"0\"\n viewBox=\"0 0 512 512\"\n height={checkboxIndicatorSizes[size]}\n width={checkboxIndicatorSizes[size]}\n // height=\"0.60em\"\n // width=\"0.60em\"\n >\n <path d=\"M173.898 439.404l-166.4-166.4c-9.997-9.997-9.997-26.206 0-36.204l36.203-36.204c9.997-9.998 26.207-9.998 36.204 0L192 312.69 432.095 72.596c9.997-9.997 26.207-9.997 36.204 0l36.203 36.204c9.997 9.997 9.997 26.206 0 36.204l-294.4 294.401c-9.998 9.997-26.207 9.997-36.204-.001z\"></path>\n </svg>{\" \"}\n </CheckboxPrimitive.Indicator>\n </CheckboxPrimitive.Root>\n );\n});\nCheckboxElement.displayName = CheckboxPrimitive.Root.displayName;\n"],"mappings":";;;;;AAAA,YAAY,WAAW;AAEvB,YAAY,uBAAuB;AAkB5B,IAAM,WAAoC,CAAC;AAAA,EAChD;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,OAAO;AAAA,EACP,SAAS;AAAA,EACT,GAAG;AACL,MAAM;AACJ,MAAI,wBAAwB;AAAA,IAC1B,IAAI,YAAY,aAAa,MAAM;AAAA,IACnC,IAAI;AAAA,IACJ,SAAS;AAAA,IACT,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,EACN;AACA,SACE;AAAA,IAAC;AAAA;AAAA,MACC,WAAW;AAAA,QACT;AAAA,QACA,SAAS,YAAY,mBAAmB;AAAA,MAC1C;AAAA;AAAA,IAEA;AAAA,MAAC;AAAA;AAAA,QACE,GAAG;AAAA,QACJ;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA;AAAA,IACF;AAAA,KACE,SAAS,eACT,oCAAC,SAAI,WAAW,4BACb,SACC;AAAA,MAAC;AAAA;AAAA,QACC,SAAS;AAAA,QACT,WAAW;AAAA,UACT;AAAA,UACA,WACI,yEACA;AAAA,QACN;AAAA,QACA,OAAO;AAAA;AAAA,UAGL,YAAY;AAAA,QACd;AAAA;AAAA,MAEC;AAAA,IACH,GAED,YACC;AAAA,MAAC;AAAA;AAAA,QACC,SAAS;AAAA,QACT,WAAW;AAAA,UACT;AAAA,UACA,WACI,uEACA;AAAA,QACN;AAAA;AAAA,MAEC;AAAA,IACH,GAED,cAAc,CAAC,YACd;AAAA,MAAC;AAAA;AAAA,QACC,SAAS;AAAA,QACT,WAAW;AAAA,UACT;AAAA,UACA,YAAY;AAAA,QACd;AAAA;AAAA,MAEC;AAAA,IACH,CAEJ;AAAA,EAEJ;AAEJ;AAEA,IAAM,kBAAwB,iBAM5B,CAAC,EAAE,SAAS,WAAW,OAAO,WAAW,WAAW,GAAG,MAAM,GAAG,QAAQ;AACxE,MAAI,iBAAiB;AAAA,IACnB,MAAM;AAAA,IACN,SAAS;AAAA,IACT,MAAM;AAAA,EACR;AACA,MAAI,gBAAgB;AAAA,IAClB,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,SAAS;AAAA,IACT,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,EACN;AACA,MAAI,yBAAyB;AAAA,IAC3B,IAAI;AAAA,IACJ,SAAS;AAAA,IACT,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,EACN;AACA,SACE;AAAA,IAAmB;AAAA,IAAlB;AAAA,MACC;AAAA,MACA,WAAW;AAAA,QACT;AAAA,QACA,cAAc,IAAI;AAAA,QAClB,eAAe,MAAM;AAAA,QACrB;AAAA,MACF;AAAA,MACC,GAAG;AAAA;AAAA,IAEJ;AAAA,MAAmB;AAAA,MAAlB;AAAA,QACC,WAAW;AAAA,UACT;AAAA,QACF;AAAA;AAAA,MAEA;AAAA,QAAC;AAAA;AAAA,UACC,cAAW;AAAA,UACX,QAAO;AAAA,UACP,MAAK;AAAA,UACL,aAAY;AAAA,UACZ,SAAQ;AAAA,UACR,QAAQ,uBAAuB,IAAI;AAAA,UACnC,OAAO,uBAAuB,IAAI;AAAA;AAAA,QAIlC,oCAAC,UAAK,GAAE,sRAAqR;AAAA,MAC/R;AAAA,MAAO;AAAA,IACT;AAAA,EACF;AAEJ,CAAC;AACD,gBAAgB,cAAgC,uBAAK;","names":[]}
1
+ {"version":3,"sources":["../../elements/checkbox/Checkbox.tsx","../../util/index.ts"],"sourcesContent":["import * as React from \"react\";\n\nimport * as CheckboxPrimitive from \"@radix-ui/react-checkbox\";\n\nimport { RadiusType } from \"@_types/commonTypes\";\n\nimport { cn } from \"@util/index\";\n\ntype CheckBoxTypes = {\n id: string;\n label?: React.ReactNode;\n sublabel?: React.ReactNode;\n helperText?: string;\n size?: \"xs\" | \"sm\" | \"default\" | \"md\" | \"lg\" | \"xl\";\n radius?: RadiusType;\n};\n\ntype CheckboxProps = CheckBoxTypes &\n React.ComponentProps<typeof CheckboxElement>;\n\nexport const Checkbox: React.FC<CheckboxProps> = ({\n id,\n label,\n sublabel,\n helperText,\n disabled,\n size = \"default\",\n radius = \"inherit\",\n ...props\n}) => {\n let labelLineHeightStyles = {\n xs: sublabel || helperText ? 0.5 : 0.1,\n sm: 0.6,\n default: 1,\n md: 0.8,\n lg: 0.9,\n xl: 1\n };\n return (\n <div\n className={cn(\n \"hawa-flex hawa-gap-2\",\n size === \"default\" ? \"hawa-items-top\" : \"hawa-items-center\"\n )}\n >\n <CheckboxElement\n {...props}\n size={size}\n radius={radius}\n disabled={disabled}\n id={id}\n />\n {(label || helperText) && (\n <div className={\"hawa-grid hawa-gap-1.5\"}>\n {label && (\n <label\n htmlFor={id}\n className={cn(\n \"hawa-w-fit hawa-select-none hawa-pt-0.5 hawa-text-sm hawa-font-medium\",\n disabled\n ? \"hawa-cursor-not-allowed hawa-text-muted-foreground hawa-opacity-70 \"\n : \"hawa-cursor-pointer\"\n )}\n style={{\n // lineHeight: labelLineHeightStyles[size]\n\n lineHeight: 1\n }}\n >\n {label}\n </label>\n )}\n {sublabel && (\n <label\n htmlFor={id}\n className={cn(\n \"hawa-w-fit hawa-select-none hawa-text-sm hawa-text-muted-foreground\",\n disabled\n ? \"hawa-cursor-not-allowed hawa-text-muted-foreground hawa-opacity-70\"\n : \"hawa-cursor-pointer\"\n )}\n >\n {sublabel}\n </label>\n )}\n {helperText && !disabled && (\n <label\n htmlFor={id}\n className={cn(\n \"hawa-w-fit hawa-select-none hawa-text-xs hawa-text-helper-color\",\n disabled && \"hawa-cursor-not-allowed hawa-opacity-70\"\n )}\n >\n {helperText}\n </label>\n )}\n </div>\n )}\n </div>\n );\n};\n\nconst CheckboxElement = React.forwardRef<\n React.ElementRef<typeof CheckboxPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof CheckboxPrimitive.Root> & {\n size?: \"xs\" | \"sm\" | \"default\" | \"md\" | \"lg\" | \"xl\";\n radius?: RadiusType;\n }\n>(({ radius = \"inherit\", size = \"default\", className, ...props }, ref) => {\n let checkboxRadius = {\n none: \"hawa-rounded-none\",\n inherit: \"hawa-rounded-sm\",\n full: \"hawa-rounded-full\"\n };\n let checkboxSizes = {\n xs: \"hawa-w-3 hawa-h-3\",\n sm: \"hawa-w-6 hawa-h-6\",\n default: \"hawa-icon\",\n md: \"hawa-w-8 hawa-h-8\",\n lg: \"hawa-w-10 hawa-h-10\",\n xl: \"hawa-w-12 hawa-h-12\"\n };\n let checkboxIndicatorSizes = {\n xs: \"0.5em\",\n default: \"0.60em\",\n sm: \"0.75em\",\n md: \"0.875em\",\n lg: \"1em\",\n xl: \"1.25em\"\n };\n return (\n <CheckboxPrimitive.Root\n ref={ref}\n className={cn(\n \"hawa-peer hawa-shrink-0 hawa-border hawa-border-primary hawa-ring-offset-background focus-visible:hawa-outline-none focus-visible:hawa-ring-2 focus-visible:hawa-ring-ring focus-visible:hawa-ring-offset-2 disabled:hawa-cursor-not-allowed disabled:hawa-opacity-50 data-[state=checked]:hawa-bg-primary data-[state=checked]:hawa-text-primary-foreground\",\n checkboxSizes[size],\n checkboxRadius[radius],\n className\n )}\n {...props}\n >\n <CheckboxPrimitive.Indicator\n className={cn(\n \"hawa-flex hawa-items-center hawa-justify-center hawa-text-current\"\n )}\n >\n <svg\n aria-label=\"Check Mark\"\n stroke=\"currentColor\"\n fill=\"currentColor\"\n strokeWidth=\"0\"\n viewBox=\"0 0 512 512\"\n height={checkboxIndicatorSizes[size]}\n width={checkboxIndicatorSizes[size]}\n // height=\"0.60em\"\n // width=\"0.60em\"\n >\n <path d=\"M173.898 439.404l-166.4-166.4c-9.997-9.997-9.997-26.206 0-36.204l36.203-36.204c9.997-9.998 26.207-9.998 36.204 0L192 312.69 432.095 72.596c9.997-9.997 26.207-9.997 36.204 0l36.203 36.204c9.997 9.997 9.997 26.206 0 36.204l-294.4 294.401c-9.998 9.997-26.207 9.997-36.204-.001z\"></path>\n </svg>{\" \"}\n </CheckboxPrimitive.Indicator>\n </CheckboxPrimitive.Root>\n );\n});\nCheckboxElement.displayName = CheckboxPrimitive.Root.displayName;\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,YAAY,WAAW;AAEvB,YAAY,uBAAuB;;;ACFnC,SAAS,YAA6B;AACtC,SAAS,eAAe;AAEjB,SAAS,MAAM,QAAsB;AAC1C,SAAO,QAAQ,KAAK,MAAM,CAAC;AAC7B;;;ADeO,IAAM,WAAoC,CAAC;AAAA,EAChD;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,OAAO;AAAA,EACP,SAAS;AAAA,EACT,GAAG;AACL,MAAM;AACJ,MAAI,wBAAwB;AAAA,IAC1B,IAAI,YAAY,aAAa,MAAM;AAAA,IACnC,IAAI;AAAA,IACJ,SAAS;AAAA,IACT,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,EACN;AACA,SACE;AAAA,IAAC;AAAA;AAAA,MACC,WAAW;AAAA,QACT;AAAA,QACA,SAAS,YAAY,mBAAmB;AAAA,MAC1C;AAAA;AAAA,IAEA;AAAA,MAAC;AAAA;AAAA,QACE,GAAG;AAAA,QACJ;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA;AAAA,IACF;AAAA,KACE,SAAS,eACT,oCAAC,SAAI,WAAW,4BACb,SACC;AAAA,MAAC;AAAA;AAAA,QACC,SAAS;AAAA,QACT,WAAW;AAAA,UACT;AAAA,UACA,WACI,yEACA;AAAA,QACN;AAAA,QACA,OAAO;AAAA;AAAA,UAGL,YAAY;AAAA,QACd;AAAA;AAAA,MAEC;AAAA,IACH,GAED,YACC;AAAA,MAAC;AAAA;AAAA,QACC,SAAS;AAAA,QACT,WAAW;AAAA,UACT;AAAA,UACA,WACI,uEACA;AAAA,QACN;AAAA;AAAA,MAEC;AAAA,IACH,GAED,cAAc,CAAC,YACd;AAAA,MAAC;AAAA;AAAA,QACC,SAAS;AAAA,QACT,WAAW;AAAA,UACT;AAAA,UACA,YAAY;AAAA,QACd;AAAA;AAAA,MAEC;AAAA,IACH,CAEJ;AAAA,EAEJ;AAEJ;AAEA,IAAM,kBAAwB,iBAM5B,CAAC,EAAE,SAAS,WAAW,OAAO,WAAW,WAAW,GAAG,MAAM,GAAG,QAAQ;AACxE,MAAI,iBAAiB;AAAA,IACnB,MAAM;AAAA,IACN,SAAS;AAAA,IACT,MAAM;AAAA,EACR;AACA,MAAI,gBAAgB;AAAA,IAClB,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,SAAS;AAAA,IACT,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,EACN;AACA,MAAI,yBAAyB;AAAA,IAC3B,IAAI;AAAA,IACJ,SAAS;AAAA,IACT,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,EACN;AACA,SACE;AAAA,IAAmB;AAAA,IAAlB;AAAA,MACC;AAAA,MACA,WAAW;AAAA,QACT;AAAA,QACA,cAAc,IAAI;AAAA,QAClB,eAAe,MAAM;AAAA,QACrB;AAAA,MACF;AAAA,MACC,GAAG;AAAA;AAAA,IAEJ;AAAA,MAAmB;AAAA,MAAlB;AAAA,QACC,WAAW;AAAA,UACT;AAAA,QACF;AAAA;AAAA,MAEA;AAAA,QAAC;AAAA;AAAA,UACC,cAAW;AAAA,UACX,QAAO;AAAA,UACP,MAAK;AAAA,UACL,aAAY;AAAA,UACZ,SAAQ;AAAA,UACR,QAAQ,uBAAuB,IAAI;AAAA,UACnC,OAAO,uBAAuB,IAAI;AAAA;AAAA,QAIlC,oCAAC,UAAK,GAAE,sRAAqR;AAAA,MAC/R;AAAA,MAAO;AAAA,IACT;AAAA,EACF;AAEJ,CAAC;AACD,gBAAgB,cAAgC,uBAAK;","names":[]}
@@ -1,9 +1,14 @@
1
- import {
2
- cn
3
- } from "../chunk-CBRGWUZG.mjs";
4
-
5
1
  // elements/chip/Chip.tsx
6
2
  import React from "react";
3
+
4
+ // util/index.ts
5
+ import { clsx } from "clsx";
6
+ import { twMerge } from "tailwind-merge";
7
+ function cn(...inputs) {
8
+ return twMerge(clsx(inputs));
9
+ }
10
+
11
+ // elements/chip/Chip.tsx
7
12
  var Chip = React.forwardRef(
8
13
  ({
9
14
  label,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../elements/chip/Chip.tsx"],"sourcesContent":["import React from \"react\";\n\nimport { RadiusType } from \"@_types/commonTypes\";\n\nimport { cn } from \"@util/index\";\n\nexport type ChipColors =\n | \"green\"\n | \"blue\"\n | \"red\"\n | \"yellow\"\n | \"orange\"\n | \"purple\"\n | \"cyan\"\n | \"hyper\"\n | \"oceanic\";\n\nexport type ChipTypes = React.HTMLAttributes<HTMLSpanElement> & {\n /** The text inside the chip */\n label: string;\n /** The small icon before the chip label */\n icon?: JSX.Element;\n /** The color of the chip, must be a tailwind color */\n color?: ChipColors;\n /** The size of the chip */\n size?: \"small\" | \"normal\" | \"large\";\n /** Enable/Disable the dot before the label of the chip */\n dot?: boolean;\n /** Red/Green dot next to the label of the chip indicating online/offline or available/unavailable */\n dotType?: \"available\" | \"unavailable\";\n radius?: RadiusType;\n};\n\nexport const Chip = React.forwardRef<HTMLSpanElement, ChipTypes>(\n (\n {\n label,\n size = \"normal\",\n icon,\n color,\n radius = \"inherit\",\n dotType,\n ...rest\n },\n ref\n ) => {\n let defaultStyles =\n \"hawa-flex hawa-flex-row hawa-w-fit hawa-gap-1 hawa-items-center hawa-px-2.5 hawa-py-1 hawa-font-bold \";\n let radiusStyles = {\n inherit: \" hawa-rounded\",\n full: \"hawa-rounded-full\",\n none: \"hawa-rounded-none\"\n };\n let sizeStyles = {\n small:\n \"hawa-h-[15px] hawa-leading-4 hawa-px-0 hawa-py-0 hawa-text-[9px] hawa-gap-0.5 \",\n normal: \"hawa-h-fit hawa-text-xs\",\n large: \"hawa-text-base\"\n };\n let dotStyles = {\n small: \"hawa-flex hawa-h-1 hawa-w-1 hawa-rounded-full\",\n normal: \"hawa-flex hawa-h-2 hawa-w-2 hawa-rounded-full\",\n large: \"hawa-flex hawa-h-3 hawa-w-3 hawa-rounded-full\"\n };\n let dotTypeStyles = {\n available: \"hawa-bg-green-500\",\n unavailable: \"hawa-bg-red-500\"\n };\n let colorStyles: any = {\n green:\n \"hawa-bg-green-100 hawa-text-green-500 dark:hawa-bg-green-400 dark:hawa-text-green-800\",\n blue: \"hawa-bg-blue-100 hawa-text-blue-500 dark:hawa-bg-blue-400 dark:hawa-text-blue-100\",\n red: \"hawa-bg-red-100 hawa-text-red-500 dark:hawa-bg-red-400 dark:hawa-text-red-100\",\n yellow:\n \"hawa-bg-yellow-100 hawa-text-yellow-600 dark:hawa-bg-yellow-400 dark:hawa-text-yellow-800\",\n orange:\n \"hawa-bg-orange-100 hawa-text-orange-500 dark:hawa-bg-orange-400 dark:hawa-text-orange-100\",\n purple:\n \"hawa-bg-purple-100 hawa-text-purple-500 dark:hawa-bg-purple-400 dark:hawa-text-purple-100\",\n cyan: \"hawa-bg-cyan-100 hawa-text-cyan-800 dark:hawa-bg-cyan-400 dark:hawa-text-cyan-800\",\n hyper:\n \"hawa-text-white hawa-bg-gradient-to-tl hawa-from-pink-500 hawa-via-red-500 hawa-to-yellow-500 \",\n oceanic:\n \"hawa-text-white hawa-bg-gradient-to-bl hawa-from-green-300 hawa-via-blue-500 hawa-to-purple-600\"\n };\n if (label) {\n return (\n <span\n {...rest}\n ref={ref}\n className={cn(\n defaultStyles,\n sizeStyles[size],\n radiusStyles[radius],\n color ? colorStyles[color] : \"hawa-border hawa-bg-none\"\n )}\n >\n {dotType && (\n <span\n className={cn(dotStyles[size], dotTypeStyles[dotType])}\n ></span>\n )}\n {icon && icon}\n {label}\n </span>\n );\n } else {\n return (\n <span\n {...rest}\n ref={ref}\n className={cn(\n \"hawa-h-2 hawa-w-2 hawa-rounded-full\",\n color ? colorStyles[color] : \"hawa-border hawa-bg-none\"\n )}\n ></span>\n );\n }\n }\n);\n"],"mappings":";;;;;AAAA,OAAO,WAAW;AAiCX,IAAM,OAAO,MAAM;AAAA,EACxB,CACE;AAAA,IACE;AAAA,IACA,OAAO;AAAA,IACP;AAAA,IACA;AAAA,IACA,SAAS;AAAA,IACT;AAAA,IACA,GAAG;AAAA,EACL,GACA,QACG;AACH,QAAI,gBACF;AACF,QAAI,eAAe;AAAA,MACjB,SAAS;AAAA,MACT,MAAM;AAAA,MACN,MAAM;AAAA,IACR;AACA,QAAI,aAAa;AAAA,MACf,OACE;AAAA,MACF,QAAQ;AAAA,MACR,OAAO;AAAA,IACT;AACA,QAAI,YAAY;AAAA,MACd,OAAO;AAAA,MACP,QAAQ;AAAA,MACR,OAAO;AAAA,IACT;AACA,QAAI,gBAAgB;AAAA,MAClB,WAAW;AAAA,MACX,aAAa;AAAA,IACf;AACA,QAAI,cAAmB;AAAA,MACrB,OACE;AAAA,MACF,MAAM;AAAA,MACN,KAAK;AAAA,MACL,QACE;AAAA,MACF,QACE;AAAA,MACF,QACE;AAAA,MACF,MAAM;AAAA,MACN,OACE;AAAA,MACF,SACE;AAAA,IACJ;AACA,QAAI,OAAO;AACT,aACE;AAAA,QAAC;AAAA;AAAA,UACE,GAAG;AAAA,UACJ;AAAA,UACA,WAAW;AAAA,YACT;AAAA,YACA,WAAW,IAAI;AAAA,YACf,aAAa,MAAM;AAAA,YACnB,QAAQ,YAAY,KAAK,IAAI;AAAA,UAC/B;AAAA;AAAA,QAEC,WACC;AAAA,UAAC;AAAA;AAAA,YACC,WAAW,GAAG,UAAU,IAAI,GAAG,cAAc,OAAO,CAAC;AAAA;AAAA,QACtD;AAAA,QAEF,QAAQ;AAAA,QACR;AAAA,MACH;AAAA,IAEJ,OAAO;AACL,aACE;AAAA,QAAC;AAAA;AAAA,UACE,GAAG;AAAA,UACJ;AAAA,UACA,WAAW;AAAA,YACT;AAAA,YACA,QAAQ,YAAY,KAAK,IAAI;AAAA,UAC/B;AAAA;AAAA,MACD;AAAA,IAEL;AAAA,EACF;AACF;","names":[]}
1
+ {"version":3,"sources":["../../elements/chip/Chip.tsx","../../util/index.ts"],"sourcesContent":["import React from \"react\";\n\nimport { RadiusType } from \"@_types/commonTypes\";\n\nimport { cn } from \"@util/index\";\n\nexport type ChipColors =\n | \"green\"\n | \"blue\"\n | \"red\"\n | \"yellow\"\n | \"orange\"\n | \"purple\"\n | \"cyan\"\n | \"hyper\"\n | \"oceanic\";\n\nexport type ChipTypes = React.HTMLAttributes<HTMLSpanElement> & {\n /** The text inside the chip */\n label: string;\n /** The small icon before the chip label */\n icon?: JSX.Element;\n /** The color of the chip, must be a tailwind color */\n color?: ChipColors;\n /** The size of the chip */\n size?: \"small\" | \"normal\" | \"large\";\n /** Enable/Disable the dot before the label of the chip */\n dot?: boolean;\n /** Red/Green dot next to the label of the chip indicating online/offline or available/unavailable */\n dotType?: \"available\" | \"unavailable\";\n radius?: RadiusType;\n};\n\nexport const Chip = React.forwardRef<HTMLSpanElement, ChipTypes>(\n (\n {\n label,\n size = \"normal\",\n icon,\n color,\n radius = \"inherit\",\n dotType,\n ...rest\n },\n ref\n ) => {\n let defaultStyles =\n \"hawa-flex hawa-flex-row hawa-w-fit hawa-gap-1 hawa-items-center hawa-px-2.5 hawa-py-1 hawa-font-bold \";\n let radiusStyles = {\n inherit: \" hawa-rounded\",\n full: \"hawa-rounded-full\",\n none: \"hawa-rounded-none\"\n };\n let sizeStyles = {\n small:\n \"hawa-h-[15px] hawa-leading-4 hawa-px-0 hawa-py-0 hawa-text-[9px] hawa-gap-0.5 \",\n normal: \"hawa-h-fit hawa-text-xs\",\n large: \"hawa-text-base\"\n };\n let dotStyles = {\n small: \"hawa-flex hawa-h-1 hawa-w-1 hawa-rounded-full\",\n normal: \"hawa-flex hawa-h-2 hawa-w-2 hawa-rounded-full\",\n large: \"hawa-flex hawa-h-3 hawa-w-3 hawa-rounded-full\"\n };\n let dotTypeStyles = {\n available: \"hawa-bg-green-500\",\n unavailable: \"hawa-bg-red-500\"\n };\n let colorStyles: any = {\n green:\n \"hawa-bg-green-100 hawa-text-green-500 dark:hawa-bg-green-400 dark:hawa-text-green-800\",\n blue: \"hawa-bg-blue-100 hawa-text-blue-500 dark:hawa-bg-blue-400 dark:hawa-text-blue-100\",\n red: \"hawa-bg-red-100 hawa-text-red-500 dark:hawa-bg-red-400 dark:hawa-text-red-100\",\n yellow:\n \"hawa-bg-yellow-100 hawa-text-yellow-600 dark:hawa-bg-yellow-400 dark:hawa-text-yellow-800\",\n orange:\n \"hawa-bg-orange-100 hawa-text-orange-500 dark:hawa-bg-orange-400 dark:hawa-text-orange-100\",\n purple:\n \"hawa-bg-purple-100 hawa-text-purple-500 dark:hawa-bg-purple-400 dark:hawa-text-purple-100\",\n cyan: \"hawa-bg-cyan-100 hawa-text-cyan-800 dark:hawa-bg-cyan-400 dark:hawa-text-cyan-800\",\n hyper:\n \"hawa-text-white hawa-bg-gradient-to-tl hawa-from-pink-500 hawa-via-red-500 hawa-to-yellow-500 \",\n oceanic:\n \"hawa-text-white hawa-bg-gradient-to-bl hawa-from-green-300 hawa-via-blue-500 hawa-to-purple-600\"\n };\n if (label) {\n return (\n <span\n {...rest}\n ref={ref}\n className={cn(\n defaultStyles,\n sizeStyles[size],\n radiusStyles[radius],\n color ? colorStyles[color] : \"hawa-border hawa-bg-none\"\n )}\n >\n {dotType && (\n <span\n className={cn(dotStyles[size], dotTypeStyles[dotType])}\n ></span>\n )}\n {icon && icon}\n {label}\n </span>\n );\n } else {\n return (\n <span\n {...rest}\n ref={ref}\n className={cn(\n \"hawa-h-2 hawa-w-2 hawa-rounded-full\",\n color ? colorStyles[color] : \"hawa-border hawa-bg-none\"\n )}\n ></span>\n );\n }\n }\n);\n","import { clsx, type ClassValue } from \"clsx\";\nimport { twMerge } from \"tailwind-merge\";\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs));\n}\n\ntype Palette = {\n name: string;\n colors: {\n [key: number]: string;\n };\n};\ntype Rgb = {\n r: number;\n g: number;\n b: number;\n};\nfunction hexToRgb(hex: string): Rgb | null {\n const sanitizedHex = hex.replaceAll(\"##\", \"#\");\n const colorParts = /^#?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})$/i.exec(\n sanitizedHex\n );\n\n if (!colorParts) {\n return null;\n }\n\n const [, r, g, b] = colorParts;\n\n return {\n r: parseInt(r, 16),\n g: parseInt(g, 16),\n b: parseInt(b, 16)\n } as Rgb;\n}\n\nfunction rgbToHex(r: number, g: number, b: number): string {\n const toHex = (c: number) => `0${c.toString(16)}`.slice(-2);\n return `#${toHex(r)}${toHex(g)}${toHex(b)}`;\n}\n\nexport function getTextColor(color: string): \"#FFF\" | \"#333\" {\n const rgbColor = hexToRgb(color);\n\n if (!rgbColor) {\n return \"#333\";\n }\n\n const { r, g, b } = rgbColor;\n const luma = 0.2126 * r + 0.7152 * g + 0.0722 * b;\n\n return luma < 120 ? \"#FFF\" : \"#333\";\n}\n\nfunction lighten(hex: string, intensity: number): string {\n const color = hexToRgb(`#${hex}`);\n\n if (!color) {\n return \"\";\n }\n\n const r = Math.round(color.r + (255 - color.r) * intensity);\n const g = Math.round(color.g + (255 - color.g) * intensity);\n const b = Math.round(color.b + (255 - color.b) * intensity);\n\n return rgbToHex(r, g, b);\n}\n\nfunction darken(hex: string, intensity: number): string {\n const color = hexToRgb(hex);\n\n if (!color) {\n return \"\";\n }\n\n const r = Math.round(color.r * intensity);\n const g = Math.round(color.g * intensity);\n const b = Math.round(color.b * intensity);\n\n return rgbToHex(r, g, b);\n}\nconst parseColor = (color: any) => {\n if (color.startsWith(\"#\")) {\n // Convert hex to RGB\n let r = parseInt(color.slice(1, 3), 16);\n let g = parseInt(color.slice(3, 5), 16);\n let b = parseInt(color.slice(5, 7), 16);\n return [r, g, b];\n } else if (color.startsWith(\"rgb\")) {\n // Extract RGB values from rgb() format\n return color.match(/\\d+/g).map(Number);\n }\n // Default to white if format is unrecognized\n return [255, 255, 255];\n};\nexport const calculateLuminance = (color: any) => {\n const [r, g, b] = parseColor(color)?.map((c: any) => {\n c /= 255;\n return c <= 0.03928 ? c / 12.92 : ((c + 0.055) / 1.055) ** 2.4;\n });\n return 0.2126 * r + 0.7152 * g + 0.0722 * b;\n};\n\nfunction getPallette(baseColor: string): Palette {\n const name = baseColor;\n\n const response: Palette = {\n name,\n colors: {\n 500: `#${baseColor}`.replace(\"##\", \"#\")\n }\n };\n\n const intensityMap: {\n [key: number]: number;\n } = {\n 50: 0.95,\n 100: 0.9,\n 200: 0.75,\n 300: 0.6,\n 400: 0.3,\n 600: 0.9,\n 700: 0.75,\n 800: 0.6,\n 900: 0.49\n };\n\n [50, 100, 200, 300, 400].forEach((level) => {\n response.colors[level] = lighten(baseColor, intensityMap[level]);\n });\n [600, 700, 800, 900].forEach((level) => {\n response.colors[level] = darken(baseColor, intensityMap[level]);\n });\n\n return response as Palette;\n}\n\nexport { getPallette };\n\n// const hexToRgb = (hex) => {\n// let d = hex?.split(\"#\")[1];\n// var aRgbHex = d?.match(/.{1,2}/g);\n// var aRgb = [\n// parseInt(aRgbHex[0], 16),\n// parseInt(aRgbHex[1], 16),\n// parseInt(aRgbHex[2], 16)\n// ];\n// return aRgb;\n// };\n// const getTextColor = (backColor) => {\n// let rgbArray = hexToRgb(backColor);\n// if (rgbArray[0] * 0.299 + rgbArray[1] * 0.587 + rgbArray[2] * 0.114 > 186) {\n// return \"#000000\";\n// } else {\n// return \"#ffffff\";\n// }\n// };\n// const replaceAt = function (string, index, replacement) {\n// // if (replacement == \"\" || replacement == \" \") {\n// // return (\n// // string.substring(0, index) +\n// // string.substring(index + replacement.length )\n// // );\n// // }\n// const replaced = string.substring(0, index) + replacement + string.substring(index + 1)\n// return replaced\n// };\n\n// export { hexToRgb, getTextColor, replaceAt };\n"],"mappings":";AAAA,OAAO,WAAW;;;ACAlB,SAAS,YAA6B;AACtC,SAAS,eAAe;AAEjB,SAAS,MAAM,QAAsB;AAC1C,SAAO,QAAQ,KAAK,MAAM,CAAC;AAC7B;;;AD4BO,IAAM,OAAO,MAAM;AAAA,EACxB,CACE;AAAA,IACE;AAAA,IACA,OAAO;AAAA,IACP;AAAA,IACA;AAAA,IACA,SAAS;AAAA,IACT;AAAA,IACA,GAAG;AAAA,EACL,GACA,QACG;AACH,QAAI,gBACF;AACF,QAAI,eAAe;AAAA,MACjB,SAAS;AAAA,MACT,MAAM;AAAA,MACN,MAAM;AAAA,IACR;AACA,QAAI,aAAa;AAAA,MACf,OACE;AAAA,MACF,QAAQ;AAAA,MACR,OAAO;AAAA,IACT;AACA,QAAI,YAAY;AAAA,MACd,OAAO;AAAA,MACP,QAAQ;AAAA,MACR,OAAO;AAAA,IACT;AACA,QAAI,gBAAgB;AAAA,MAClB,WAAW;AAAA,MACX,aAAa;AAAA,IACf;AACA,QAAI,cAAmB;AAAA,MACrB,OACE;AAAA,MACF,MAAM;AAAA,MACN,KAAK;AAAA,MACL,QACE;AAAA,MACF,QACE;AAAA,MACF,QACE;AAAA,MACF,MAAM;AAAA,MACN,OACE;AAAA,MACF,SACE;AAAA,IACJ;AACA,QAAI,OAAO;AACT,aACE;AAAA,QAAC;AAAA;AAAA,UACE,GAAG;AAAA,UACJ;AAAA,UACA,WAAW;AAAA,YACT;AAAA,YACA,WAAW,IAAI;AAAA,YACf,aAAa,MAAM;AAAA,YACnB,QAAQ,YAAY,KAAK,IAAI;AAAA,UAC/B;AAAA;AAAA,QAEC,WACC;AAAA,UAAC;AAAA;AAAA,YACC,WAAW,GAAG,UAAU,IAAI,GAAG,cAAc,OAAO,CAAC;AAAA;AAAA,QACtD;AAAA,QAEF,QAAQ;AAAA,QACR;AAAA,MACH;AAAA,IAEJ,OAAO;AACL,aACE;AAAA,QAAC;AAAA;AAAA,UACE,GAAG;AAAA,UACJ;AAAA,UACA,WAAW;AAAA,YACT;AAAA,YACA,QAAQ,YAAY,KAAK,IAAI;AAAA,UAC/B;AAAA;AAAA,MACD;AAAA,IAEL;AAAA,EACF;AACF;","names":[]}
@@ -0,0 +1,29 @@
1
+ // hooks/useClipboard.ts
2
+ import { useState } from "react";
3
+ function useClipboard({ timeout = 2e3 } = {}) {
4
+ const [error, setError] = useState(null);
5
+ const [copied, setCopied] = useState(false);
6
+ const [copyTimeout, setCopyTimeout] = useState(null);
7
+ const handleCopyResult = (value) => {
8
+ clearTimeout(copyTimeout);
9
+ setCopyTimeout(setTimeout(() => setCopied(false), timeout));
10
+ setCopied(value);
11
+ };
12
+ const copy = (valueToCopy) => {
13
+ if ("clipboard" in navigator) {
14
+ navigator.clipboard.writeText(valueToCopy).then(() => handleCopyResult(true)).catch((err) => setError(err));
15
+ } else {
16
+ setError(new Error("useClipboard: navigator.clipboard is not supported"));
17
+ }
18
+ };
19
+ const reset = () => {
20
+ setCopied(false);
21
+ setError(null);
22
+ clearTimeout(copyTimeout);
23
+ };
24
+ return { copy, reset, error, copied };
25
+ }
26
+
27
+ export {
28
+ useClipboard
29
+ };
@@ -1,13 +1,22 @@
1
- import {
2
- Tooltip,
3
- cn
4
- } from "../chunk-NV3KR5Y7.mjs";
5
- import {
6
- __require
7
- } from "../chunk-3ODWQVIA.mjs";
1
+ var __require = /* @__PURE__ */ ((x) => typeof require !== "undefined" ? require : typeof Proxy !== "undefined" ? new Proxy(x, {
2
+ get: (a, b) => (typeof require !== "undefined" ? require : a)[b]
3
+ }) : x)(function(x) {
4
+ if (typeof require !== "undefined")
5
+ return require.apply(this, arguments);
6
+ throw Error('Dynamic require of "' + x + '" is not supported');
7
+ });
8
+
9
+ // elements/codeBlock/CodeBlock.tsx
10
+ import React4, { useState as useState2 } from "react";
11
+
12
+ // util/index.ts
13
+ import { clsx } from "clsx";
14
+ import { twMerge } from "tailwind-merge";
15
+ function cn(...inputs) {
16
+ return twMerge(clsx(inputs));
17
+ }
8
18
 
9
19
  // elements/codeBlock/CodeBlock.tsx
10
- import React3, { useState as useState2 } from "react";
11
20
  import {
12
21
  Highlight,
13
22
  themes,
@@ -293,6 +302,57 @@ var Button = React2.forwardRef(
293
302
  );
294
303
  Button.displayName = "Button";
295
304
 
305
+ // elements/tooltip/Tooltip.tsx
306
+ import React3 from "react";
307
+ import * as TooltipPrimitive from "@radix-ui/react-tooltip";
308
+ var TooltipContent = React3.forwardRef(({ className, sideOffset = 4, ...props }, ref) => /* @__PURE__ */ React3.createElement(
309
+ TooltipPrimitive.Content,
310
+ {
311
+ ref,
312
+ sideOffset,
313
+ className: cn(
314
+ "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",
315
+ className
316
+ ),
317
+ ...props
318
+ }
319
+ ));
320
+ TooltipContent.displayName = TooltipPrimitive.Content.displayName;
321
+ var TooltipArrow = React3.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ React3.createElement(TooltipPrimitive.Arrow, { ref, className: cn(className), ...props }));
322
+ TooltipArrow.displayName = TooltipPrimitive.Arrow.displayName;
323
+ var Tooltip = ({
324
+ side,
325
+ open,
326
+ content,
327
+ children,
328
+ defaultOpen,
329
+ onOpenChange,
330
+ triggerProps,
331
+ contentProps,
332
+ providerProps,
333
+ delayDuration = 300,
334
+ ...props
335
+ }) => {
336
+ return /* @__PURE__ */ React3.createElement(
337
+ TooltipPrimitive.TooltipProvider,
338
+ {
339
+ delayDuration,
340
+ ...providerProps
341
+ },
342
+ /* @__PURE__ */ React3.createElement(
343
+ TooltipPrimitive.Root,
344
+ {
345
+ open,
346
+ defaultOpen,
347
+ onOpenChange,
348
+ ...props
349
+ },
350
+ /* @__PURE__ */ React3.createElement(TooltipPrimitive.Trigger, { ...triggerProps }, children),
351
+ /* @__PURE__ */ React3.createElement(TooltipContent, { side, align: "center", ...contentProps }, content)
352
+ )
353
+ );
354
+ };
355
+
296
356
  // elements/codeBlock/CodeBlock.tsx
297
357
  (typeof global !== "undefined" ? global : window).Prism = Prism;
298
358
  __require("prismjs/components/prism-bash");
@@ -315,7 +375,7 @@ var CodeBlock = ({
315
375
  sm: "hawa-w-full hawa-max-w-sm",
316
376
  xs: "hawa-w-full hawa-max-w-xs"
317
377
  };
318
- return /* @__PURE__ */ React3.createElement(
378
+ return /* @__PURE__ */ React4.createElement(
319
379
  "div",
320
380
  {
321
381
  className: cn(
@@ -324,7 +384,7 @@ var CodeBlock = ({
324
384
  className
325
385
  )
326
386
  },
327
- fileName && /* @__PURE__ */ React3.createElement(
387
+ fileName && /* @__PURE__ */ React4.createElement(
328
388
  "div",
329
389
  {
330
390
  className: cn(
@@ -332,7 +392,7 @@ var CodeBlock = ({
332
392
  fileName && tabs ? "hawa-bg-primary/10" : "hawa-bg-primary/15"
333
393
  )
334
394
  },
335
- /* @__PURE__ */ React3.createElement(
395
+ /* @__PURE__ */ React4.createElement(
336
396
  "div",
337
397
  {
338
398
  className: cn(
@@ -342,7 +402,7 @@ var CodeBlock = ({
342
402
  fileName
343
403
  )
344
404
  ),
345
- tabs && /* @__PURE__ */ React3.createElement(
405
+ tabs && /* @__PURE__ */ React4.createElement(
346
406
  "div",
347
407
  {
348
408
  className: cn(
@@ -351,7 +411,7 @@ var CodeBlock = ({
351
411
  tabs && fileName && "hawa-rounded-t-none"
352
412
  )
353
413
  },
354
- tabs.map((tab, i) => /* @__PURE__ */ React3.createElement(
414
+ tabs.map((tab, i) => /* @__PURE__ */ React4.createElement(
355
415
  "div",
356
416
  {
357
417
  key: i,
@@ -359,7 +419,7 @@ var CodeBlock = ({
359
419
  selectedTab === i ? " hawa-border-b-2 hawa-border-primary" : "hawa-bg-transparent"
360
420
  )
361
421
  },
362
- /* @__PURE__ */ React3.createElement(
422
+ /* @__PURE__ */ React4.createElement(
363
423
  "div",
364
424
  {
365
425
  onClick: () => setSelectedTab(i),
@@ -371,7 +431,7 @@ var CodeBlock = ({
371
431
  )
372
432
  ))
373
433
  ),
374
- /* @__PURE__ */ React3.createElement(
434
+ /* @__PURE__ */ React4.createElement(
375
435
  "div",
376
436
  {
377
437
  className: cn(
@@ -379,26 +439,26 @@ var CodeBlock = ({
379
439
  tabs || fileName ? "hawa-rounded-b hawa-rounded-t-none" : "hawa-rounded"
380
440
  )
381
441
  },
382
- /* @__PURE__ */ React3.createElement(
442
+ /* @__PURE__ */ React4.createElement(
383
443
  Highlight,
384
444
  {
385
445
  theme,
386
446
  code: tabs ? tabs[selectedTab].code : code || "",
387
447
  language
388
448
  },
389
- ({ className: className2, style, tokens, getLineProps, getTokenProps }) => /* @__PURE__ */ React3.createElement("pre", { className: "hawa-min-h-[37.75px] hawa-w-full hawa-overflow-auto hawa-p-4 hawa-font-mono hawa-text-foreground" }, tokens.map((line, i) => /* @__PURE__ */ React3.createElement("div", { key: i, ...getLineProps({ line }) }, props.lineNumbers && /* @__PURE__ */ React3.createElement("span", { className: "hawa-mr-4" }, i + 1), line.map((token, key) => /* @__PURE__ */ React3.createElement("span", { key, ...getTokenProps({ token }) })))))
449
+ ({ className: className2, style, tokens, getLineProps, getTokenProps }) => /* @__PURE__ */ React4.createElement("pre", { className: "hawa-min-h-[37.75px] hawa-w-full hawa-overflow-auto hawa-p-4 hawa-font-mono hawa-text-foreground" }, tokens.map((line, i) => /* @__PURE__ */ React4.createElement("div", { key: i, ...getLineProps({ line }) }, props.lineNumbers && /* @__PURE__ */ React4.createElement("span", { className: "hawa-mr-4" }, i + 1), line.map((token, key) => /* @__PURE__ */ React4.createElement("span", { key, ...getTokenProps({ token }) })))))
390
450
  ),
391
- /* @__PURE__ */ React3.createElement("div", { className: "hawa-flex hawa-w-fit hawa-flex-row hawa-items-center hawa-gap-2 hawa-p-2" }, /* @__PURE__ */ React3.createElement(
451
+ /* @__PURE__ */ React4.createElement("div", { className: "hawa-flex hawa-w-fit hawa-flex-row hawa-items-center hawa-gap-2 hawa-p-2" }, /* @__PURE__ */ React4.createElement(
392
452
  Tooltip,
393
453
  {
394
454
  open: clipboard.copied,
395
455
  side: "left",
396
- content: /* @__PURE__ */ React3.createElement("div", null, "Copied!"),
456
+ content: /* @__PURE__ */ React4.createElement("div", null, "Copied!"),
397
457
  triggerProps: {
398
458
  asChild: true
399
459
  }
400
460
  },
401
- /* @__PURE__ */ React3.createElement(
461
+ /* @__PURE__ */ React4.createElement(
402
462
  Button,
403
463
  {
404
464
  size: "icon",
@@ -406,7 +466,7 @@ var CodeBlock = ({
406
466
  variant: "outline",
407
467
  className: "hawa-text-gray-200 hawa-opacity-50 "
408
468
  },
409
- /* @__PURE__ */ React3.createElement(
469
+ /* @__PURE__ */ React4.createElement(
410
470
  "svg",
411
471
  {
412
472
  "aria-label": "Copy",
@@ -419,8 +479,8 @@ var CodeBlock = ({
419
479
  height: "1em",
420
480
  width: "1em"
421
481
  },
422
- /* @__PURE__ */ React3.createElement("rect", { width: "14", height: "14", x: "8", y: "8", rx: "2", ry: "2" }),
423
- /* @__PURE__ */ React3.createElement("path", { d: "M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2" })
482
+ /* @__PURE__ */ React4.createElement("rect", { width: "14", height: "14", x: "8", y: "8", rx: "2", ry: "2" }),
483
+ /* @__PURE__ */ React4.createElement("path", { d: "M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2" })
424
484
  )
425
485
  )
426
486
  ))