@sikka/hawa 0.40.1-next → 0.41.1-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 (242) hide show
  1. package/dist/accordion/index.js.map +1 -1
  2. package/dist/accordion/index.mjs.map +1 -1
  3. package/dist/alert/index.js +1 -1
  4. package/dist/alert/index.js.map +1 -1
  5. package/dist/alert/index.mjs +1 -1
  6. package/dist/alert/index.mjs.map +1 -1
  7. package/dist/appLayout/index.js +15 -15
  8. package/dist/appLayout/index.js.map +1 -1
  9. package/dist/appLayout/index.mjs +15 -15
  10. package/dist/appLayout/index.mjs.map +1 -1
  11. package/dist/appMenubar/index.js.map +1 -1
  12. package/dist/appMenubar/index.mjs.map +1 -1
  13. package/dist/appTabs/index.js +2 -2
  14. package/dist/appTabs/index.js.map +1 -1
  15. package/dist/appTabs/index.mjs +2 -2
  16. package/dist/appTabs/index.mjs.map +1 -1
  17. package/dist/appTopbar/index.js +5 -5
  18. package/dist/appTopbar/index.js.map +1 -1
  19. package/dist/appTopbar/index.mjs +5 -5
  20. package/dist/appTopbar/index.mjs.map +1 -1
  21. package/dist/avatar/index.js +1 -1
  22. package/dist/avatar/index.js.map +1 -1
  23. package/dist/avatar/index.mjs +1 -1
  24. package/dist/avatar/index.mjs.map +1 -1
  25. package/dist/backToTop/index.js +1 -1
  26. package/dist/backToTop/index.js.map +1 -1
  27. package/dist/backToTop/index.mjs +1 -1
  28. package/dist/backToTop/index.mjs.map +1 -1
  29. package/dist/badge/index.d.mts +1 -1
  30. package/dist/badge/index.d.ts +1 -1
  31. package/dist/badge/index.js +1 -1
  32. package/dist/badge/index.js.map +1 -1
  33. package/dist/badge/index.mjs +1 -1
  34. package/dist/badge/index.mjs.map +1 -1
  35. package/dist/blocks/auth/index.js +102 -17
  36. package/dist/blocks/auth/index.mjs +100 -15
  37. package/dist/blocks/feedback/index.js +20 -21
  38. package/dist/blocks/feedback/index.mjs +18 -20
  39. package/dist/blocks/index.js +150 -66
  40. package/dist/blocks/index.mjs +47 -49
  41. package/dist/blocks/misc/index.js +17 -19
  42. package/dist/blocks/misc/index.mjs +11 -11
  43. package/dist/blocks/pricing/index.js +23 -23
  44. package/dist/blocks/pricing/index.mjs +21 -21
  45. package/dist/button/index.js.map +1 -1
  46. package/dist/button/index.mjs.map +1 -1
  47. package/dist/calendar/index.js.map +1 -1
  48. package/dist/calendar/index.mjs.map +1 -1
  49. package/dist/card/index.js +1 -1
  50. package/dist/card/index.js.map +1 -1
  51. package/dist/card/index.mjs +1 -1
  52. package/dist/card/index.mjs.map +1 -1
  53. package/dist/carousel/index.d.mts +1 -1
  54. package/dist/carousel/index.d.ts +1 -1
  55. package/dist/carousel/index.js +7 -7
  56. package/dist/carousel/index.js.map +1 -1
  57. package/dist/carousel/index.mjs +7 -7
  58. package/dist/carousel/index.mjs.map +1 -1
  59. package/dist/checkbox/index.js +2 -2
  60. package/dist/checkbox/index.js.map +1 -1
  61. package/dist/checkbox/index.mjs +2 -2
  62. package/dist/checkbox/index.mjs.map +1 -1
  63. package/dist/{chunk-27G5FKOP.mjs → chunk-2GEXJLRC.mjs} +1 -1
  64. package/dist/{chunk-QSEQS7DS.mjs → chunk-7R25FOBM.mjs} +17 -17
  65. package/dist/{chunk-AJTYKC5R.mjs → chunk-CQYG77SY.mjs} +1 -1
  66. package/dist/{chunk-QZIENYTE.mjs → chunk-D7HDVJFT.mjs} +3 -3
  67. package/dist/{chunk-DYPGZ2IP.mjs → chunk-EBZECS2Z.mjs} +4 -4
  68. package/dist/{chunk-CTNKKP2O.mjs → chunk-FLMCWOQQ.mjs} +62 -62
  69. package/dist/{chunk-GU2DOJ7Q.mjs → chunk-FP6763YO.mjs} +89 -4
  70. package/dist/{chunk-RT2Q3SH7.mjs → chunk-I3AK6DXN.mjs} +3 -3
  71. package/dist/{chunk-CTZRVSTI.mjs → chunk-K5S7P5ZO.mjs} +4 -4
  72. package/dist/{chunk-GN7EIDTE.mjs → chunk-QNLA5TSV.mjs} +2 -2
  73. package/dist/codeBlock/index.js +5 -5
  74. package/dist/codeBlock/index.js.map +1 -1
  75. package/dist/codeBlock/index.mjs +5 -5
  76. package/dist/codeBlock/index.mjs.map +1 -1
  77. package/dist/colorPicker/index.js.map +1 -1
  78. package/dist/colorPicker/index.mjs.map +1 -1
  79. package/dist/combobox/index.js +7 -7
  80. package/dist/combobox/index.js.map +1 -1
  81. package/dist/combobox/index.mjs +7 -7
  82. package/dist/combobox/index.mjs.map +1 -1
  83. package/dist/command/index.js +5 -5
  84. package/dist/command/index.js.map +1 -1
  85. package/dist/command/index.mjs +5 -5
  86. package/dist/command/index.mjs.map +1 -1
  87. package/dist/dataTable/index.d.mts +6 -1
  88. package/dist/dataTable/index.d.ts +6 -1
  89. package/dist/dataTable/index.js +459 -245
  90. package/dist/dataTable/index.js.map +1 -1
  91. package/dist/dataTable/index.mjs +476 -262
  92. package/dist/dataTable/index.mjs.map +1 -1
  93. package/dist/datePicker/index.js.map +1 -1
  94. package/dist/datePicker/index.mjs.map +1 -1
  95. package/dist/destroyableCard/index.js +1 -1
  96. package/dist/destroyableCard/index.js.map +1 -1
  97. package/dist/destroyableCard/index.mjs +1 -1
  98. package/dist/destroyableCard/index.mjs.map +1 -1
  99. package/dist/dialog/index.js +4 -4
  100. package/dist/dialog/index.js.map +1 -1
  101. package/dist/dialog/index.mjs +4 -4
  102. package/dist/dialog/index.mjs.map +1 -1
  103. package/dist/docsLayout/index.js +92 -9
  104. package/dist/docsLayout/index.js.map +1 -1
  105. package/dist/docsLayout/index.mjs +92 -9
  106. package/dist/docsLayout/index.mjs.map +1 -1
  107. package/dist/docsSidebar/index.js +1 -1
  108. package/dist/docsSidebar/index.js.map +1 -1
  109. package/dist/docsSidebar/index.mjs +1 -1
  110. package/dist/docsSidebar/index.mjs.map +1 -1
  111. package/dist/dropdownMenu/index.js +3 -3
  112. package/dist/dropdownMenu/index.js.map +1 -1
  113. package/dist/dropdownMenu/index.mjs +3 -3
  114. package/dist/dropdownMenu/index.mjs.map +1 -1
  115. package/dist/elements/index.d.mts +12 -2
  116. package/dist/elements/index.d.ts +12 -2
  117. package/dist/elements/index.js +656 -493
  118. package/dist/elements/index.mjs +288 -210
  119. package/dist/fileDropzone/index.js +5 -5
  120. package/dist/fileDropzone/index.js.map +1 -1
  121. package/dist/fileDropzone/index.mjs +5 -5
  122. package/dist/fileDropzone/index.mjs.map +1 -1
  123. package/dist/glow/index.js.map +1 -1
  124. package/dist/glow/index.mjs.map +1 -1
  125. package/dist/hooks/index.d.mts +1 -1
  126. package/dist/hooks/index.d.ts +1 -1
  127. package/dist/index.css +27 -127
  128. package/dist/index.d.mts +13 -3
  129. package/dist/index.d.ts +13 -3
  130. package/dist/index.js +732 -570
  131. package/dist/index.mjs +822 -660
  132. package/dist/input/index.js +3 -3
  133. package/dist/input/index.js.map +1 -1
  134. package/dist/input/index.mjs +3 -3
  135. package/dist/input/index.mjs.map +1 -1
  136. package/dist/interfaceSettings/index.js +4 -4
  137. package/dist/interfaceSettings/index.js.map +1 -1
  138. package/dist/interfaceSettings/index.mjs +4 -4
  139. package/dist/interfaceSettings/index.mjs.map +1 -1
  140. package/dist/label/index.js.map +1 -1
  141. package/dist/label/index.mjs.map +1 -1
  142. package/dist/layout/index.js +119 -36
  143. package/dist/layout/index.mjs +31 -31
  144. package/dist/loading/index.js.map +1 -1
  145. package/dist/loading/index.mjs.map +1 -1
  146. package/dist/logos/index.d.mts +5 -0
  147. package/dist/logos/index.d.ts +5 -0
  148. package/dist/logos/index.js +85 -0
  149. package/dist/logos/index.js.map +1 -1
  150. package/dist/logos/index.mjs +85 -0
  151. package/dist/logos/index.mjs.map +1 -1
  152. package/dist/navbar/index.js +12 -12
  153. package/dist/navbar/index.js.map +1 -1
  154. package/dist/navbar/index.mjs +12 -12
  155. package/dist/navbar/index.mjs.map +1 -1
  156. package/dist/navigationMenu/index.js +5 -5
  157. package/dist/navigationMenu/index.js.map +1 -1
  158. package/dist/navigationMenu/index.mjs +5 -5
  159. package/dist/navigationMenu/index.mjs.map +1 -1
  160. package/dist/pagination/index.js.map +1 -1
  161. package/dist/pagination/index.mjs.map +1 -1
  162. package/dist/passwordInput/index.js +3 -3
  163. package/dist/passwordInput/index.js.map +1 -1
  164. package/dist/passwordInput/index.mjs +3 -3
  165. package/dist/passwordInput/index.mjs.map +1 -1
  166. package/dist/phoneInput/index.js +4 -4
  167. package/dist/phoneInput/index.js.map +1 -1
  168. package/dist/phoneInput/index.mjs +4 -4
  169. package/dist/phoneInput/index.mjs.map +1 -1
  170. package/dist/progress/index.js.map +1 -1
  171. package/dist/progress/index.mjs.map +1 -1
  172. package/dist/progressCircle/index.js +1 -1
  173. package/dist/progressCircle/index.js.map +1 -1
  174. package/dist/progressCircle/index.mjs +1 -1
  175. package/dist/progressCircle/index.mjs.map +1 -1
  176. package/dist/radio/index.js +3 -3
  177. package/dist/radio/index.js.map +1 -1
  178. package/dist/radio/index.mjs +3 -3
  179. package/dist/radio/index.mjs.map +1 -1
  180. package/dist/scrollArea/index.js +2 -2
  181. package/dist/scrollArea/index.js.map +1 -1
  182. package/dist/scrollArea/index.mjs +2 -2
  183. package/dist/scrollArea/index.mjs.map +1 -1
  184. package/dist/scrollIndicator/index.js.map +1 -1
  185. package/dist/scrollIndicator/index.mjs.map +1 -1
  186. package/dist/select/index.js +2 -2
  187. package/dist/select/index.js.map +1 -1
  188. package/dist/select/index.mjs +2 -2
  189. package/dist/select/index.mjs.map +1 -1
  190. package/dist/separator/index.js.map +1 -1
  191. package/dist/separator/index.mjs.map +1 -1
  192. package/dist/sheet/index.js +1 -1
  193. package/dist/sheet/index.js.map +1 -1
  194. package/dist/sheet/index.mjs +1 -1
  195. package/dist/sheet/index.mjs.map +1 -1
  196. package/dist/sidebar/index.js +5 -5
  197. package/dist/sidebar/index.js.map +1 -1
  198. package/dist/sidebar/index.mjs +5 -5
  199. package/dist/sidebar/index.mjs.map +1 -1
  200. package/dist/signature/index.js.map +1 -1
  201. package/dist/signature/index.mjs.map +1 -1
  202. package/dist/simpleTable/index.js +5 -5
  203. package/dist/simpleTable/index.js.map +1 -1
  204. package/dist/simpleTable/index.mjs +5 -5
  205. package/dist/simpleTable/index.mjs.map +1 -1
  206. package/dist/slider/index.js.map +1 -1
  207. package/dist/slider/index.mjs.map +1 -1
  208. package/dist/sortButton/index.js.map +1 -1
  209. package/dist/sortButton/index.mjs.map +1 -1
  210. package/dist/splitButton/index.d.mts +27 -27
  211. package/dist/splitButton/index.d.ts +27 -27
  212. package/dist/splitButton/index.js +750 -750
  213. package/dist/splitButton/index.js.map +1 -1
  214. package/dist/splitButton/index.mjs +752 -752
  215. package/dist/splitButton/index.mjs.map +1 -1
  216. package/dist/stats/index.js +3 -5
  217. package/dist/stats/index.js.map +1 -1
  218. package/dist/stats/index.mjs +3 -5
  219. package/dist/stats/index.mjs.map +1 -1
  220. package/dist/switch/index.js +1 -1
  221. package/dist/switch/index.js.map +1 -1
  222. package/dist/switch/index.mjs +1 -1
  223. package/dist/switch/index.mjs.map +1 -1
  224. package/dist/table/index.js +4 -4
  225. package/dist/table/index.js.map +1 -1
  226. package/dist/table/index.mjs +4 -4
  227. package/dist/table/index.mjs.map +1 -1
  228. package/dist/tabs/index.js +2 -2
  229. package/dist/tabs/index.js.map +1 -1
  230. package/dist/tabs/index.mjs +2 -2
  231. package/dist/tabs/index.mjs.map +1 -1
  232. package/dist/textarea/index.js +1 -1
  233. package/dist/textarea/index.js.map +1 -1
  234. package/dist/textarea/index.mjs +1 -1
  235. package/dist/textarea/index.mjs.map +1 -1
  236. package/dist/toaster/index.js +1 -1
  237. package/dist/toaster/index.js.map +1 -1
  238. package/dist/toaster/index.mjs +1 -1
  239. package/dist/toaster/index.mjs.map +1 -1
  240. package/dist/tooltip/index.js.map +1 -1
  241. package/dist/tooltip/index.mjs.map +1 -1
  242. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["../../elements/navigationMenu/index.ts","../../elements/navigationMenu/NavigationMenu.tsx","../../util/index.ts"],"sourcesContent":["export * from \"./NavigationMenu\";\n","import * as React from \"react\";\n\nimport * as NavigationMenuPrimitive from \"@radix-ui/react-navigation-menu\";\nimport { cva } from \"class-variance-authority\";\n\nimport { DirectionType } from \"@_types/commonTypes\";\n\nimport { cn } from \"@util/index\";\n\nconst navigationMenuTriggerStyle = cva(\n \"hawa-group hawa-inline-flex hawa-h-10 hawa-w-max hawa-items-center hawa-gap-1 hawa-justify-center hawa-rounded-md hawa-bg-background hawa-px-4 hawa-py-2 hawa-text-sm hawa-font-medium hawa-transition-colors hover:hawa-bg-accent hover:hawa-text-accent-foreground focus:hawa-bg-accent focus:hawa-text-accent-foreground focus:hawa-outline-none disabled:hawa-pointer-events-none disabled:hawa-opacity-50 data-[active]:hawa-bg-accent/50 \"\n);\n\ntype StandardNavigationMenuItemProps = {\n icon?: React.ReactNode;\n title: string;\n subtitle?: string;\n};\ntype NavigationMenuRootProps = React.ComponentPropsWithoutRef<\n typeof NavigationMenuPrimitive.Root\n> & {\n viewportClassNames?: string;\n};\ntype NavigationMenuItemProps = {\n trigger: any;\n content?: any;\n action?: any;\n path?: string;\n};\ntype NavigationMenuTypes = {\n items: NavigationMenuItemProps[];\n rootClassNames?: string;\n viewportClassNames?: string;\n triggerClassNames?: string;\n actionFirst?: boolean;\n direction?: DirectionType;\n};\n\nconst NavigationMenuRoot = React.forwardRef<\n React.ElementRef<typeof NavigationMenuPrimitive.Root>,\n NavigationMenuRootProps\n>(({ className, children, viewportClassNames, ...props }, ref) => (\n <NavigationMenuPrimitive.Root\n ref={ref}\n className={cn(\n \"hawa-relative hawa-z-10 hawa-flex hawa-flex-1 hawa-items-center hawa-justify-center\",\n // \"hawa-max-w-max\",\n className\n )}\n {...props}\n >\n {children}\n <NavigationMenuViewport className={viewportClassNames} />\n </NavigationMenuPrimitive.Root>\n));\nconst NavigationMenuList = React.forwardRef<\n React.ElementRef<typeof NavigationMenuPrimitive.List>,\n React.ComponentPropsWithoutRef<typeof NavigationMenuPrimitive.List>\n>(({ className, ...props }, ref) => (\n <NavigationMenuPrimitive.List\n ref={ref}\n className={cn(\n \"hawa-group hawa-flex hawa-flex-1 hawa-list-none hawa-items-center hawa-justify-center hawa-gap-1\",\n className\n )}\n {...props}\n />\n));\nconst NavigationMenuTrigger = React.forwardRef<\n React.ElementRef<typeof NavigationMenuPrimitive.Trigger>,\n React.ComponentPropsWithoutRef<typeof NavigationMenuPrimitive.Trigger>\n>(({ className, children, ...props }, ref) => (\n <NavigationMenuPrimitive.Trigger\n ref={ref}\n className={cn(navigationMenuTriggerStyle(), \"hawa-group\", className)}\n {...props}\n >\n {children}\n <svg\n aria-label=\"Chevron Icon\"\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n className=\"hawa-icon hawa-relative hawa-top-[1px] hawa-transition hawa-duration-200 group-data-[state=open]:hawa-rotate-180\"\n >\n <path d=\"m6 9 6 6 6-6\" />\n </svg>\n </NavigationMenuPrimitive.Trigger>\n));\nconst NavigationMenuContent = React.forwardRef<\n React.ElementRef<typeof NavigationMenuPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof NavigationMenuPrimitive.Content>\n>(({ className, ...props }, ref) => (\n <NavigationMenuPrimitive.Content\n ref={ref}\n className={cn(\n \"hawa-absolute hawa-left-0 hawa-top-0 hawa-w-full hawa-rounded \",\n // \"md:hawa-absolute md:hawa-w-auto hawa-left-0 hawa-top-0 \",\n // animation\n \"data-[motion^=from-]:hawa-animate-in data-[motion^=to-]:hawa-animate-out data-[motion^=from-]:hawa-fade-in data-[motion^=to-]:hawa-fade-out data-[motion=from-end]:hawa-slide-in-from-right-52 data-[motion=from-start]:hawa-slide-in-from-left-52 data-[motion=to-end]:hawa-slide-out-to-right-52 data-[motion=to-start]:hawa-slide-out-to-left-52\",\n className\n )}\n {...props}\n />\n));\nconst StandardNavigationMenuItem: React.FC<\n StandardNavigationMenuItemProps &\n React.ComponentProps<typeof NavigationMenuPrimitive.Link>\n> = ({ icon, title, subtitle, ...linkProps }) => (\n <NavigationMenuLink {...linkProps}>\n <div className=\"hawa-flex hawa-max-w-md hawa-cursor-pointer hawa-flex-row hawa-items-center hawa-gap-4 hawa-rounded-inner hawa-p-4 hawa-py-2 hawa-transition-all hover:hawa-bg-muted\">\n {icon && icon}\n <div className=\"hawa-flex hawa-flex-col\">\n <h1 className=\"hawa-text-xl hawa-font-bold\">{title}</h1>\n <p className=\"hawa-text-sm\">{subtitle}</p>\n </div>\n </div>\n </NavigationMenuLink>\n);\nconst NavigationMenuViewport = React.forwardRef<\n React.ElementRef<typeof NavigationMenuPrimitive.Viewport>,\n React.ComponentPropsWithoutRef<typeof NavigationMenuPrimitive.Viewport>\n>(({ className, ...props }, ref) => (\n <div\n className={cn(\n \"hawa-absolute hawa-top-full hawa-flex hawa-w-full hawa-justify-center\"\n )}\n >\n <NavigationMenuPrimitive.Viewport\n className={cn(\n \"hawa-origin-top-center hawa-relative hawa-mt-1.5 hawa-w-full hawa-overflow-hidden hawa-rounded-md hawa-border hawa-bg-popover hawa-text-popover-foreground hawa-shadow-lg data-[state=open]:hawa-animate-in data-[state=closed]:hawa-animate-out data-[state=closed]:hawa-zoom-out-95 data-[state=open]:hawa-zoom-in-90 \",\n // hawa-h-[var(--radix-navigation-menu-viewport-height)]\n // \"md:hawa-w-[var(--radix-navigation-menu-viewport-width)]\",\n className\n )}\n style={{\n height: \"calc(var(--radix-navigation-menu-viewport-height) + 1px)\"\n }}\n ref={ref}\n {...props}\n />\n </div>\n));\nconst NavigationMenuIndicator = React.forwardRef<\n React.ElementRef<typeof NavigationMenuPrimitive.Indicator>,\n React.ComponentPropsWithoutRef<typeof NavigationMenuPrimitive.Indicator>\n>(({ className, ...props }, ref) => (\n <NavigationMenuPrimitive.Indicator\n ref={ref}\n className={cn(\n \"hawa-top-full hawa-z-[1] hawa-flex hawa-h-1.5 hawa-items-end hawa-justify-center hawa-overflow-hidden data-[state=visible]:hawa-animate-in data-[state=hidden]:hawa-animate-out data-[state=hidden]:hawa-fade-out data-[state=visible]:hawa-fade-in\",\n className\n )}\n {...props}\n >\n <div className=\"hawa-relative hawa-top-[60%] hawa-h-2 hawa-w-2 hawa-rotate-45 hawa-rounded-tl-sm hawa-bg-border hawa-shadow-md\" />\n </NavigationMenuPrimitive.Indicator>\n));\n\nconst NavigationMenu: React.FC<NavigationMenuTypes> = ({\n viewportClassNames,\n rootClassNames,\n triggerClassNames,\n actionFirst,\n ...props\n}) => {\n return (\n <NavigationMenuRoot\n dir={props.direction}\n delayDuration={0}\n className={rootClassNames}\n viewportClassNames={viewportClassNames}\n >\n <NavigationMenuList>\n {props.items.map((item, i) => (\n <NavigationMenuItem key={i}>\n {item.content ? (\n <>\n <NavigationMenuTrigger className={cn(triggerClassNames)}>\n {item.trigger}\n </NavigationMenuTrigger>\n <NavigationMenuContent>{item.content}</NavigationMenuContent>\n </>\n ) : (\n <NavigationMenuLink\n href={actionFirst ? undefined : item.path}\n onClick={() => {\n if (item.action) {\n item.action();\n }\n }}\n className={cn(\n navigationMenuTriggerStyle(),\n \"hawa-cursor-pointer hawa-select-none\",\n triggerClassNames\n )}\n >\n {item.trigger}\n </NavigationMenuLink>\n )}\n </NavigationMenuItem>\n ))}\n </NavigationMenuList>\n </NavigationMenuRoot>\n );\n};\n\nconst NavigationMenuItem = NavigationMenuPrimitive.Item;\nconst NavigationMenuLink = NavigationMenuPrimitive.Link;\n\nNavigationMenuContent.displayName = NavigationMenuPrimitive.Content.displayName;\nNavigationMenuTrigger.displayName = NavigationMenuPrimitive.Trigger.displayName;\nNavigationMenuList.displayName = NavigationMenuPrimitive.List.displayName;\nNavigationMenuRoot.displayName = NavigationMenuPrimitive.Root.displayName;\nNavigationMenuIndicator.displayName =\n NavigationMenuPrimitive.Indicator.displayName;\nNavigationMenuViewport.displayName =\n NavigationMenuPrimitive.Viewport.displayName;\n\nexport {\n NavigationMenuLink,\n NavigationMenuItem,\n NavigationMenu,\n NavigationMenuIndicator,\n NavigationMenuContent,\n NavigationMenuList,\n navigationMenuTriggerStyle,\n NavigationMenuRoot,\n NavigationMenuTrigger,\n NavigationMenuViewport,\n StandardNavigationMenuItem\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
+ {"version":3,"sources":["../../elements/navigationMenu/index.ts","../../elements/navigationMenu/NavigationMenu.tsx","../../util/index.ts"],"sourcesContent":["export * from \"./NavigationMenu\";\n","import * as React from \"react\";\n\nimport * as NavigationMenuPrimitive from \"@radix-ui/react-navigation-menu\";\nimport { cn } from \"@util/index\";\nimport { cva } from \"class-variance-authority\";\n\nimport { DirectionType } from \"@_types/commonTypes\";\n\nconst navigationMenuTriggerStyle = cva(\n \"hawa-group hawa-inline-flex hawa-h-10 hawa-w-max hawa-items-center hawa-gap-1 hawa-justify-center hawa-rounded-md hawa-bg-background hawa-px-4 hawa-py-2 hawa-text-sm hawa-font-medium hawa-transition-colors hover:hawa-bg-accent hover:hawa-text-accent-foreground focus:hawa-bg-accent focus:hawa-text-accent-foreground focus:hawa-outline-none disabled:hawa-pointer-events-none disabled:hawa-opacity-50 data-[active]:hawa-bg-accent/50 \",\n);\n\ntype StandardNavigationMenuItemProps = {\n icon?: React.ReactNode;\n title: string;\n subtitle?: string;\n};\ntype NavigationMenuRootProps = React.ComponentPropsWithoutRef<\n typeof NavigationMenuPrimitive.Root\n> & {\n viewportClassNames?: string;\n};\ntype NavigationMenuItemProps = {\n trigger: any;\n content?: any;\n action?: any;\n path?: string;\n};\ntype NavigationMenuTypes = {\n items: NavigationMenuItemProps[];\n rootClassNames?: string;\n viewportClassNames?: string;\n triggerClassNames?: string;\n actionFirst?: boolean;\n direction?: DirectionType;\n};\n\nconst NavigationMenuRoot = React.forwardRef<\n React.ElementRef<typeof NavigationMenuPrimitive.Root>,\n NavigationMenuRootProps\n>(({ className, children, viewportClassNames, ...props }, ref) => (\n <NavigationMenuPrimitive.Root\n ref={ref}\n className={cn(\n \"hawa-relative hawa-z-10 hawa-flex hawa-flex-1 hawa-items-center hawa-justify-center\",\n // \"hawa-max-w-max\",\n className,\n )}\n {...props}\n >\n {children}\n <NavigationMenuViewport className={viewportClassNames} />\n </NavigationMenuPrimitive.Root>\n));\nconst NavigationMenuList = React.forwardRef<\n React.ElementRef<typeof NavigationMenuPrimitive.List>,\n React.ComponentPropsWithoutRef<typeof NavigationMenuPrimitive.List>\n>(({ className, ...props }, ref) => (\n <NavigationMenuPrimitive.List\n ref={ref}\n className={cn(\n \"hawa-group hawa-flex hawa-flex-1 hawa-list-none hawa-items-center hawa-justify-center hawa-gap-1\",\n className,\n )}\n {...props}\n />\n));\nconst NavigationMenuTrigger = React.forwardRef<\n React.ElementRef<typeof NavigationMenuPrimitive.Trigger>,\n React.ComponentPropsWithoutRef<typeof NavigationMenuPrimitive.Trigger>\n>(({ className, children, ...props }, ref) => (\n <NavigationMenuPrimitive.Trigger\n ref={ref}\n className={cn(navigationMenuTriggerStyle(), \"hawa-group\", className)}\n {...props}\n >\n {children}\n <svg\n aria-label=\"Chevron Icon\"\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n className=\"hawa-icon hawa-relative hawa-top-[1px] hawa-transition hawa-duration-200 group-data-[state=open]:hawa-rotate-180\"\n >\n <path d=\"m6 9 6 6 6-6\" />\n </svg>\n </NavigationMenuPrimitive.Trigger>\n));\nconst NavigationMenuContent = React.forwardRef<\n React.ElementRef<typeof NavigationMenuPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof NavigationMenuPrimitive.Content>\n>(({ className, ...props }, ref) => (\n <NavigationMenuPrimitive.Content\n ref={ref}\n className={cn(\n \"hawa-absolute hawa-left-0 hawa-top-0 hawa-w-full hawa-rounded\",\n // \"md:hawa-absolute md:hawa-w-auto hawa-left-0 hawa-top-0 \",\n // animation\n \"data-[motion^=from-]:hawa-animate-in data-[motion^=to-]:hawa-animate-out data-[motion^=from-]:hawa-fade-in data-[motion^=to-]:hawa-fade-out data-[motion=from-end]:hawa-slide-in-from-right-52 data-[motion=from-start]:hawa-slide-in-from-left-52 data-[motion=to-end]:hawa-slide-out-to-right-52 data-[motion=to-start]:hawa-slide-out-to-left-52\",\n className,\n )}\n {...props}\n />\n));\nconst StandardNavigationMenuItem: React.FC<\n StandardNavigationMenuItemProps &\n React.ComponentProps<typeof NavigationMenuPrimitive.Link>\n> = ({ icon, title, subtitle, ...linkProps }) => (\n <NavigationMenuLink {...linkProps}>\n <div className=\"hawa-flex hawa-max-w-md hawa-cursor-pointer hawa-flex-row hawa-items-center hawa-gap-4 hawa-rounded-inner hawa-p-4 hawa-py-2 hawa-transition-all hover:hawa-bg-muted\">\n {icon && icon}\n <div className=\"hawa-flex hawa-flex-col\">\n <h1 className=\"hawa-text-xl hawa-font-bold\">{title}</h1>\n <p className=\"hawa-text-sm\">{subtitle}</p>\n </div>\n </div>\n </NavigationMenuLink>\n);\nconst NavigationMenuViewport = React.forwardRef<\n React.ElementRef<typeof NavigationMenuPrimitive.Viewport>,\n React.ComponentPropsWithoutRef<typeof NavigationMenuPrimitive.Viewport>\n>(({ className, ...props }, ref) => (\n <div\n className={cn(\n \"hawa-absolute hawa-top-full hawa-flex hawa-w-full hawa-justify-center\",\n )}\n >\n <NavigationMenuPrimitive.Viewport\n className={cn(\n \"hawa-origin-top-center hawa-relative hawa-mt-1.5 hawa-w-full hawa-overflow-hidden hawa-rounded-md hawa-border hawa-bg-popover hawa-text-popover-foreground hawa-shadow-lg data-[state=open]:hawa-animate-in data-[state=closed]:hawa-animate-out data-[state=closed]:hawa-zoom-out-95 data-[state=open]:hawa-zoom-in-90\",\n // hawa-h-[var(--radix-navigation-menu-viewport-height)]\n // \"md:hawa-w-[var(--radix-navigation-menu-viewport-width)]\",\n className,\n )}\n style={{\n height: \"calc(var(--radix-navigation-menu-viewport-height) + 1px)\",\n }}\n ref={ref}\n {...props}\n />\n </div>\n));\nconst NavigationMenuIndicator = React.forwardRef<\n React.ElementRef<typeof NavigationMenuPrimitive.Indicator>,\n React.ComponentPropsWithoutRef<typeof NavigationMenuPrimitive.Indicator>\n>(({ className, ...props }, ref) => (\n <NavigationMenuPrimitive.Indicator\n ref={ref}\n className={cn(\n \"hawa-top-full hawa-z-[1] hawa-flex hawa-h-1.5 hawa-items-end hawa-justify-center hawa-overflow-hidden data-[state=visible]:hawa-animate-in data-[state=hidden]:hawa-animate-out data-[state=hidden]:hawa-fade-out data-[state=visible]:hawa-fade-in\",\n className,\n )}\n {...props}\n >\n <div className=\"hawa-relative hawa-top-[60%] hawa-h-2 hawa-w-2 hawa-rotate-45 hawa-rounded-tl-sm hawa-bg-border hawa-shadow-md\" />\n </NavigationMenuPrimitive.Indicator>\n));\n\nconst NavigationMenu: React.FC<NavigationMenuTypes> = ({\n viewportClassNames,\n rootClassNames,\n triggerClassNames,\n actionFirst,\n ...props\n}) => {\n return (\n <NavigationMenuRoot\n dir={props.direction}\n delayDuration={0}\n className={rootClassNames}\n viewportClassNames={viewportClassNames}\n >\n <NavigationMenuList>\n {props.items.map((item, i) => (\n <NavigationMenuItem key={i}>\n {item.content ? (\n <>\n <NavigationMenuTrigger className={cn(triggerClassNames)}>\n {item.trigger}\n </NavigationMenuTrigger>\n <NavigationMenuContent>{item.content}</NavigationMenuContent>\n </>\n ) : (\n <NavigationMenuLink\n href={actionFirst ? undefined : item.path}\n onClick={() => {\n if (item.action) {\n item.action();\n }\n }}\n className={cn(\n navigationMenuTriggerStyle(),\n \"hawa-cursor-pointer hawa-select-none\",\n triggerClassNames,\n )}\n >\n {item.trigger}\n </NavigationMenuLink>\n )}\n </NavigationMenuItem>\n ))}\n </NavigationMenuList>\n </NavigationMenuRoot>\n );\n};\n\nconst NavigationMenuItem = NavigationMenuPrimitive.Item;\nconst NavigationMenuLink = NavigationMenuPrimitive.Link;\n\nNavigationMenuContent.displayName = NavigationMenuPrimitive.Content.displayName;\nNavigationMenuTrigger.displayName = NavigationMenuPrimitive.Trigger.displayName;\nNavigationMenuList.displayName = NavigationMenuPrimitive.List.displayName;\nNavigationMenuRoot.displayName = NavigationMenuPrimitive.Root.displayName;\nNavigationMenuIndicator.displayName =\n NavigationMenuPrimitive.Indicator.displayName;\nNavigationMenuViewport.displayName =\n NavigationMenuPrimitive.Viewport.displayName;\n\nexport {\n NavigationMenuLink,\n NavigationMenuItem,\n NavigationMenu,\n NavigationMenuIndicator,\n NavigationMenuContent,\n NavigationMenuList,\n navigationMenuTriggerStyle,\n NavigationMenuRoot,\n NavigationMenuTrigger,\n NavigationMenuViewport,\n StandardNavigationMenuItem,\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":[]}
@@ -3,7 +3,6 @@
3
3
  // elements/navigationMenu/NavigationMenu.tsx
4
4
  import * as React from "react";
5
5
  import * as NavigationMenuPrimitive from "@radix-ui/react-navigation-menu";
6
- import { cva } from "class-variance-authority";
7
6
 
8
7
  // util/index.ts
9
8
  import { clsx } from "clsx";
@@ -13,6 +12,7 @@ function cn(...inputs) {
13
12
  }
14
13
 
15
14
  // elements/navigationMenu/NavigationMenu.tsx
15
+ import { cva } from "class-variance-authority";
16
16
  var navigationMenuTriggerStyle = cva(
17
17
  "hawa-group hawa-inline-flex hawa-h-10 hawa-w-max hawa-items-center hawa-gap-1 hawa-justify-center hawa-rounded-md hawa-bg-background hawa-px-4 hawa-py-2 hawa-text-sm hawa-font-medium hawa-transition-colors hover:hawa-bg-accent hover:hawa-text-accent-foreground focus:hawa-bg-accent focus:hawa-text-accent-foreground focus:hawa-outline-none disabled:hawa-pointer-events-none disabled:hawa-opacity-50 data-[active]:hawa-bg-accent/50 "
18
18
  );
@@ -21,7 +21,7 @@ var NavigationMenuRoot = React.forwardRef(({ className, children, viewportClassN
21
21
  {
22
22
  ref,
23
23
  className: cn(
24
- "hawa-relative hawa-z-10 hawa-flex hawa-flex-1 hawa-items-center hawa-justify-center",
24
+ "hawa-relative hawa-z-10 hawa-flex hawa-flex-1 hawa-items-center hawa-justify-center",
25
25
  // "hawa-max-w-max",
26
26
  className
27
27
  ),
@@ -73,7 +73,7 @@ var NavigationMenuContent = React.forwardRef(({ className, ...props }, ref) => /
73
73
  {
74
74
  ref,
75
75
  className: cn(
76
- "hawa-absolute hawa-left-0 hawa-top-0 hawa-w-full hawa-rounded ",
76
+ "hawa-absolute hawa-left-0 hawa-top-0 hawa-w-full hawa-rounded",
77
77
  // "md:hawa-absolute md:hawa-w-auto hawa-left-0 hawa-top-0 ",
78
78
  // animation
79
79
  "data-[motion^=from-]:hawa-animate-in data-[motion^=to-]:hawa-animate-out data-[motion^=from-]:hawa-fade-in data-[motion^=to-]:hawa-fade-out data-[motion=from-end]:hawa-slide-in-from-right-52 data-[motion=from-start]:hawa-slide-in-from-left-52 data-[motion=to-end]:hawa-slide-out-to-right-52 data-[motion=to-start]:hawa-slide-out-to-left-52",
@@ -82,7 +82,7 @@ var NavigationMenuContent = React.forwardRef(({ className, ...props }, ref) => /
82
82
  ...props
83
83
  }
84
84
  ));
85
- var StandardNavigationMenuItem = ({ icon, title, subtitle, ...linkProps }) => /* @__PURE__ */ React.createElement(NavigationMenuLink, { ...linkProps }, /* @__PURE__ */ React.createElement("div", { className: "hawa-flex hawa-max-w-md hawa-cursor-pointer hawa-flex-row hawa-items-center hawa-gap-4 hawa-rounded-inner hawa-p-4 hawa-py-2 hawa-transition-all hover:hawa-bg-muted" }, icon && icon, /* @__PURE__ */ React.createElement("div", { className: "hawa-flex hawa-flex-col" }, /* @__PURE__ */ React.createElement("h1", { className: "hawa-text-xl hawa-font-bold" }, title), /* @__PURE__ */ React.createElement("p", { className: "hawa-text-sm" }, subtitle))));
85
+ var StandardNavigationMenuItem = ({ icon, title, subtitle, ...linkProps }) => /* @__PURE__ */ React.createElement(NavigationMenuLink, { ...linkProps }, /* @__PURE__ */ React.createElement("div", { className: "hawa-flex hawa-max-w-md hawa-cursor-pointer hawa-flex-row hawa-items-center hawa-gap-4 hawa-rounded-inner hawa-p-4 hawa-py-2 hawa-transition-all hover:hawa-bg-muted" }, icon && icon, /* @__PURE__ */ React.createElement("div", { className: "hawa-flex hawa-flex-col" }, /* @__PURE__ */ React.createElement("h1", { className: "hawa-text-xl hawa-font-bold" }, title), /* @__PURE__ */ React.createElement("p", { className: "hawa-text-sm" }, subtitle))));
86
86
  var NavigationMenuViewport = React.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ React.createElement(
87
87
  "div",
88
88
  {
@@ -94,7 +94,7 @@ var NavigationMenuViewport = React.forwardRef(({ className, ...props }, ref) =>
94
94
  NavigationMenuPrimitive.Viewport,
95
95
  {
96
96
  className: cn(
97
- "hawa-origin-top-center hawa-relative hawa-mt-1.5 hawa-w-full hawa-overflow-hidden hawa-rounded-md hawa-border hawa-bg-popover hawa-text-popover-foreground hawa-shadow-lg data-[state=open]:hawa-animate-in data-[state=closed]:hawa-animate-out data-[state=closed]:hawa-zoom-out-95 data-[state=open]:hawa-zoom-in-90 ",
97
+ "hawa-origin-top-center hawa-relative hawa-mt-1.5 hawa-w-full hawa-overflow-hidden hawa-rounded-md hawa-border hawa-bg-popover hawa-text-popover-foreground hawa-shadow-lg data-[state=open]:hawa-animate-in data-[state=closed]:hawa-animate-out data-[state=closed]:hawa-zoom-out-95 data-[state=open]:hawa-zoom-in-90",
98
98
  // hawa-h-[var(--radix-navigation-menu-viewport-height)]
99
99
  // "md:hawa-w-[var(--radix-navigation-menu-viewport-width)]",
100
100
  className
@@ -1 +1 @@
1
- {"version":3,"sources":["../../elements/navigationMenu/NavigationMenu.tsx","../../util/index.ts"],"sourcesContent":["import * as React from \"react\";\n\nimport * as NavigationMenuPrimitive from \"@radix-ui/react-navigation-menu\";\nimport { cva } from \"class-variance-authority\";\n\nimport { DirectionType } from \"@_types/commonTypes\";\n\nimport { cn } from \"@util/index\";\n\nconst navigationMenuTriggerStyle = cva(\n \"hawa-group hawa-inline-flex hawa-h-10 hawa-w-max hawa-items-center hawa-gap-1 hawa-justify-center hawa-rounded-md hawa-bg-background hawa-px-4 hawa-py-2 hawa-text-sm hawa-font-medium hawa-transition-colors hover:hawa-bg-accent hover:hawa-text-accent-foreground focus:hawa-bg-accent focus:hawa-text-accent-foreground focus:hawa-outline-none disabled:hawa-pointer-events-none disabled:hawa-opacity-50 data-[active]:hawa-bg-accent/50 \"\n);\n\ntype StandardNavigationMenuItemProps = {\n icon?: React.ReactNode;\n title: string;\n subtitle?: string;\n};\ntype NavigationMenuRootProps = React.ComponentPropsWithoutRef<\n typeof NavigationMenuPrimitive.Root\n> & {\n viewportClassNames?: string;\n};\ntype NavigationMenuItemProps = {\n trigger: any;\n content?: any;\n action?: any;\n path?: string;\n};\ntype NavigationMenuTypes = {\n items: NavigationMenuItemProps[];\n rootClassNames?: string;\n viewportClassNames?: string;\n triggerClassNames?: string;\n actionFirst?: boolean;\n direction?: DirectionType;\n};\n\nconst NavigationMenuRoot = React.forwardRef<\n React.ElementRef<typeof NavigationMenuPrimitive.Root>,\n NavigationMenuRootProps\n>(({ className, children, viewportClassNames, ...props }, ref) => (\n <NavigationMenuPrimitive.Root\n ref={ref}\n className={cn(\n \"hawa-relative hawa-z-10 hawa-flex hawa-flex-1 hawa-items-center hawa-justify-center\",\n // \"hawa-max-w-max\",\n className\n )}\n {...props}\n >\n {children}\n <NavigationMenuViewport className={viewportClassNames} />\n </NavigationMenuPrimitive.Root>\n));\nconst NavigationMenuList = React.forwardRef<\n React.ElementRef<typeof NavigationMenuPrimitive.List>,\n React.ComponentPropsWithoutRef<typeof NavigationMenuPrimitive.List>\n>(({ className, ...props }, ref) => (\n <NavigationMenuPrimitive.List\n ref={ref}\n className={cn(\n \"hawa-group hawa-flex hawa-flex-1 hawa-list-none hawa-items-center hawa-justify-center hawa-gap-1\",\n className\n )}\n {...props}\n />\n));\nconst NavigationMenuTrigger = React.forwardRef<\n React.ElementRef<typeof NavigationMenuPrimitive.Trigger>,\n React.ComponentPropsWithoutRef<typeof NavigationMenuPrimitive.Trigger>\n>(({ className, children, ...props }, ref) => (\n <NavigationMenuPrimitive.Trigger\n ref={ref}\n className={cn(navigationMenuTriggerStyle(), \"hawa-group\", className)}\n {...props}\n >\n {children}\n <svg\n aria-label=\"Chevron Icon\"\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n className=\"hawa-icon hawa-relative hawa-top-[1px] hawa-transition hawa-duration-200 group-data-[state=open]:hawa-rotate-180\"\n >\n <path d=\"m6 9 6 6 6-6\" />\n </svg>\n </NavigationMenuPrimitive.Trigger>\n));\nconst NavigationMenuContent = React.forwardRef<\n React.ElementRef<typeof NavigationMenuPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof NavigationMenuPrimitive.Content>\n>(({ className, ...props }, ref) => (\n <NavigationMenuPrimitive.Content\n ref={ref}\n className={cn(\n \"hawa-absolute hawa-left-0 hawa-top-0 hawa-w-full hawa-rounded \",\n // \"md:hawa-absolute md:hawa-w-auto hawa-left-0 hawa-top-0 \",\n // animation\n \"data-[motion^=from-]:hawa-animate-in data-[motion^=to-]:hawa-animate-out data-[motion^=from-]:hawa-fade-in data-[motion^=to-]:hawa-fade-out data-[motion=from-end]:hawa-slide-in-from-right-52 data-[motion=from-start]:hawa-slide-in-from-left-52 data-[motion=to-end]:hawa-slide-out-to-right-52 data-[motion=to-start]:hawa-slide-out-to-left-52\",\n className\n )}\n {...props}\n />\n));\nconst StandardNavigationMenuItem: React.FC<\n StandardNavigationMenuItemProps &\n React.ComponentProps<typeof NavigationMenuPrimitive.Link>\n> = ({ icon, title, subtitle, ...linkProps }) => (\n <NavigationMenuLink {...linkProps}>\n <div className=\"hawa-flex hawa-max-w-md hawa-cursor-pointer hawa-flex-row hawa-items-center hawa-gap-4 hawa-rounded-inner hawa-p-4 hawa-py-2 hawa-transition-all hover:hawa-bg-muted\">\n {icon && icon}\n <div className=\"hawa-flex hawa-flex-col\">\n <h1 className=\"hawa-text-xl hawa-font-bold\">{title}</h1>\n <p className=\"hawa-text-sm\">{subtitle}</p>\n </div>\n </div>\n </NavigationMenuLink>\n);\nconst NavigationMenuViewport = React.forwardRef<\n React.ElementRef<typeof NavigationMenuPrimitive.Viewport>,\n React.ComponentPropsWithoutRef<typeof NavigationMenuPrimitive.Viewport>\n>(({ className, ...props }, ref) => (\n <div\n className={cn(\n \"hawa-absolute hawa-top-full hawa-flex hawa-w-full hawa-justify-center\"\n )}\n >\n <NavigationMenuPrimitive.Viewport\n className={cn(\n \"hawa-origin-top-center hawa-relative hawa-mt-1.5 hawa-w-full hawa-overflow-hidden hawa-rounded-md hawa-border hawa-bg-popover hawa-text-popover-foreground hawa-shadow-lg data-[state=open]:hawa-animate-in data-[state=closed]:hawa-animate-out data-[state=closed]:hawa-zoom-out-95 data-[state=open]:hawa-zoom-in-90 \",\n // hawa-h-[var(--radix-navigation-menu-viewport-height)]\n // \"md:hawa-w-[var(--radix-navigation-menu-viewport-width)]\",\n className\n )}\n style={{\n height: \"calc(var(--radix-navigation-menu-viewport-height) + 1px)\"\n }}\n ref={ref}\n {...props}\n />\n </div>\n));\nconst NavigationMenuIndicator = React.forwardRef<\n React.ElementRef<typeof NavigationMenuPrimitive.Indicator>,\n React.ComponentPropsWithoutRef<typeof NavigationMenuPrimitive.Indicator>\n>(({ className, ...props }, ref) => (\n <NavigationMenuPrimitive.Indicator\n ref={ref}\n className={cn(\n \"hawa-top-full hawa-z-[1] hawa-flex hawa-h-1.5 hawa-items-end hawa-justify-center hawa-overflow-hidden data-[state=visible]:hawa-animate-in data-[state=hidden]:hawa-animate-out data-[state=hidden]:hawa-fade-out data-[state=visible]:hawa-fade-in\",\n className\n )}\n {...props}\n >\n <div className=\"hawa-relative hawa-top-[60%] hawa-h-2 hawa-w-2 hawa-rotate-45 hawa-rounded-tl-sm hawa-bg-border hawa-shadow-md\" />\n </NavigationMenuPrimitive.Indicator>\n));\n\nconst NavigationMenu: React.FC<NavigationMenuTypes> = ({\n viewportClassNames,\n rootClassNames,\n triggerClassNames,\n actionFirst,\n ...props\n}) => {\n return (\n <NavigationMenuRoot\n dir={props.direction}\n delayDuration={0}\n className={rootClassNames}\n viewportClassNames={viewportClassNames}\n >\n <NavigationMenuList>\n {props.items.map((item, i) => (\n <NavigationMenuItem key={i}>\n {item.content ? (\n <>\n <NavigationMenuTrigger className={cn(triggerClassNames)}>\n {item.trigger}\n </NavigationMenuTrigger>\n <NavigationMenuContent>{item.content}</NavigationMenuContent>\n </>\n ) : (\n <NavigationMenuLink\n href={actionFirst ? undefined : item.path}\n onClick={() => {\n if (item.action) {\n item.action();\n }\n }}\n className={cn(\n navigationMenuTriggerStyle(),\n \"hawa-cursor-pointer hawa-select-none\",\n triggerClassNames\n )}\n >\n {item.trigger}\n </NavigationMenuLink>\n )}\n </NavigationMenuItem>\n ))}\n </NavigationMenuList>\n </NavigationMenuRoot>\n );\n};\n\nconst NavigationMenuItem = NavigationMenuPrimitive.Item;\nconst NavigationMenuLink = NavigationMenuPrimitive.Link;\n\nNavigationMenuContent.displayName = NavigationMenuPrimitive.Content.displayName;\nNavigationMenuTrigger.displayName = NavigationMenuPrimitive.Trigger.displayName;\nNavigationMenuList.displayName = NavigationMenuPrimitive.List.displayName;\nNavigationMenuRoot.displayName = NavigationMenuPrimitive.Root.displayName;\nNavigationMenuIndicator.displayName =\n NavigationMenuPrimitive.Indicator.displayName;\nNavigationMenuViewport.displayName =\n NavigationMenuPrimitive.Viewport.displayName;\n\nexport {\n NavigationMenuLink,\n NavigationMenuItem,\n NavigationMenu,\n NavigationMenuIndicator,\n NavigationMenuContent,\n NavigationMenuList,\n navigationMenuTriggerStyle,\n NavigationMenuRoot,\n NavigationMenuTrigger,\n NavigationMenuViewport,\n StandardNavigationMenuItem\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
+ {"version":3,"sources":["../../elements/navigationMenu/NavigationMenu.tsx","../../util/index.ts"],"sourcesContent":["import * as React from \"react\";\n\nimport * as NavigationMenuPrimitive from \"@radix-ui/react-navigation-menu\";\nimport { cn } from \"@util/index\";\nimport { cva } from \"class-variance-authority\";\n\nimport { DirectionType } from \"@_types/commonTypes\";\n\nconst navigationMenuTriggerStyle = cva(\n \"hawa-group hawa-inline-flex hawa-h-10 hawa-w-max hawa-items-center hawa-gap-1 hawa-justify-center hawa-rounded-md hawa-bg-background hawa-px-4 hawa-py-2 hawa-text-sm hawa-font-medium hawa-transition-colors hover:hawa-bg-accent hover:hawa-text-accent-foreground focus:hawa-bg-accent focus:hawa-text-accent-foreground focus:hawa-outline-none disabled:hawa-pointer-events-none disabled:hawa-opacity-50 data-[active]:hawa-bg-accent/50 \",\n);\n\ntype StandardNavigationMenuItemProps = {\n icon?: React.ReactNode;\n title: string;\n subtitle?: string;\n};\ntype NavigationMenuRootProps = React.ComponentPropsWithoutRef<\n typeof NavigationMenuPrimitive.Root\n> & {\n viewportClassNames?: string;\n};\ntype NavigationMenuItemProps = {\n trigger: any;\n content?: any;\n action?: any;\n path?: string;\n};\ntype NavigationMenuTypes = {\n items: NavigationMenuItemProps[];\n rootClassNames?: string;\n viewportClassNames?: string;\n triggerClassNames?: string;\n actionFirst?: boolean;\n direction?: DirectionType;\n};\n\nconst NavigationMenuRoot = React.forwardRef<\n React.ElementRef<typeof NavigationMenuPrimitive.Root>,\n NavigationMenuRootProps\n>(({ className, children, viewportClassNames, ...props }, ref) => (\n <NavigationMenuPrimitive.Root\n ref={ref}\n className={cn(\n \"hawa-relative hawa-z-10 hawa-flex hawa-flex-1 hawa-items-center hawa-justify-center\",\n // \"hawa-max-w-max\",\n className,\n )}\n {...props}\n >\n {children}\n <NavigationMenuViewport className={viewportClassNames} />\n </NavigationMenuPrimitive.Root>\n));\nconst NavigationMenuList = React.forwardRef<\n React.ElementRef<typeof NavigationMenuPrimitive.List>,\n React.ComponentPropsWithoutRef<typeof NavigationMenuPrimitive.List>\n>(({ className, ...props }, ref) => (\n <NavigationMenuPrimitive.List\n ref={ref}\n className={cn(\n \"hawa-group hawa-flex hawa-flex-1 hawa-list-none hawa-items-center hawa-justify-center hawa-gap-1\",\n className,\n )}\n {...props}\n />\n));\nconst NavigationMenuTrigger = React.forwardRef<\n React.ElementRef<typeof NavigationMenuPrimitive.Trigger>,\n React.ComponentPropsWithoutRef<typeof NavigationMenuPrimitive.Trigger>\n>(({ className, children, ...props }, ref) => (\n <NavigationMenuPrimitive.Trigger\n ref={ref}\n className={cn(navigationMenuTriggerStyle(), \"hawa-group\", className)}\n {...props}\n >\n {children}\n <svg\n aria-label=\"Chevron Icon\"\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n className=\"hawa-icon hawa-relative hawa-top-[1px] hawa-transition hawa-duration-200 group-data-[state=open]:hawa-rotate-180\"\n >\n <path d=\"m6 9 6 6 6-6\" />\n </svg>\n </NavigationMenuPrimitive.Trigger>\n));\nconst NavigationMenuContent = React.forwardRef<\n React.ElementRef<typeof NavigationMenuPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof NavigationMenuPrimitive.Content>\n>(({ className, ...props }, ref) => (\n <NavigationMenuPrimitive.Content\n ref={ref}\n className={cn(\n \"hawa-absolute hawa-left-0 hawa-top-0 hawa-w-full hawa-rounded\",\n // \"md:hawa-absolute md:hawa-w-auto hawa-left-0 hawa-top-0 \",\n // animation\n \"data-[motion^=from-]:hawa-animate-in data-[motion^=to-]:hawa-animate-out data-[motion^=from-]:hawa-fade-in data-[motion^=to-]:hawa-fade-out data-[motion=from-end]:hawa-slide-in-from-right-52 data-[motion=from-start]:hawa-slide-in-from-left-52 data-[motion=to-end]:hawa-slide-out-to-right-52 data-[motion=to-start]:hawa-slide-out-to-left-52\",\n className,\n )}\n {...props}\n />\n));\nconst StandardNavigationMenuItem: React.FC<\n StandardNavigationMenuItemProps &\n React.ComponentProps<typeof NavigationMenuPrimitive.Link>\n> = ({ icon, title, subtitle, ...linkProps }) => (\n <NavigationMenuLink {...linkProps}>\n <div className=\"hawa-flex hawa-max-w-md hawa-cursor-pointer hawa-flex-row hawa-items-center hawa-gap-4 hawa-rounded-inner hawa-p-4 hawa-py-2 hawa-transition-all hover:hawa-bg-muted\">\n {icon && icon}\n <div className=\"hawa-flex hawa-flex-col\">\n <h1 className=\"hawa-text-xl hawa-font-bold\">{title}</h1>\n <p className=\"hawa-text-sm\">{subtitle}</p>\n </div>\n </div>\n </NavigationMenuLink>\n);\nconst NavigationMenuViewport = React.forwardRef<\n React.ElementRef<typeof NavigationMenuPrimitive.Viewport>,\n React.ComponentPropsWithoutRef<typeof NavigationMenuPrimitive.Viewport>\n>(({ className, ...props }, ref) => (\n <div\n className={cn(\n \"hawa-absolute hawa-top-full hawa-flex hawa-w-full hawa-justify-center\",\n )}\n >\n <NavigationMenuPrimitive.Viewport\n className={cn(\n \"hawa-origin-top-center hawa-relative hawa-mt-1.5 hawa-w-full hawa-overflow-hidden hawa-rounded-md hawa-border hawa-bg-popover hawa-text-popover-foreground hawa-shadow-lg data-[state=open]:hawa-animate-in data-[state=closed]:hawa-animate-out data-[state=closed]:hawa-zoom-out-95 data-[state=open]:hawa-zoom-in-90\",\n // hawa-h-[var(--radix-navigation-menu-viewport-height)]\n // \"md:hawa-w-[var(--radix-navigation-menu-viewport-width)]\",\n className,\n )}\n style={{\n height: \"calc(var(--radix-navigation-menu-viewport-height) + 1px)\",\n }}\n ref={ref}\n {...props}\n />\n </div>\n));\nconst NavigationMenuIndicator = React.forwardRef<\n React.ElementRef<typeof NavigationMenuPrimitive.Indicator>,\n React.ComponentPropsWithoutRef<typeof NavigationMenuPrimitive.Indicator>\n>(({ className, ...props }, ref) => (\n <NavigationMenuPrimitive.Indicator\n ref={ref}\n className={cn(\n \"hawa-top-full hawa-z-[1] hawa-flex hawa-h-1.5 hawa-items-end hawa-justify-center hawa-overflow-hidden data-[state=visible]:hawa-animate-in data-[state=hidden]:hawa-animate-out data-[state=hidden]:hawa-fade-out data-[state=visible]:hawa-fade-in\",\n className,\n )}\n {...props}\n >\n <div className=\"hawa-relative hawa-top-[60%] hawa-h-2 hawa-w-2 hawa-rotate-45 hawa-rounded-tl-sm hawa-bg-border hawa-shadow-md\" />\n </NavigationMenuPrimitive.Indicator>\n));\n\nconst NavigationMenu: React.FC<NavigationMenuTypes> = ({\n viewportClassNames,\n rootClassNames,\n triggerClassNames,\n actionFirst,\n ...props\n}) => {\n return (\n <NavigationMenuRoot\n dir={props.direction}\n delayDuration={0}\n className={rootClassNames}\n viewportClassNames={viewportClassNames}\n >\n <NavigationMenuList>\n {props.items.map((item, i) => (\n <NavigationMenuItem key={i}>\n {item.content ? (\n <>\n <NavigationMenuTrigger className={cn(triggerClassNames)}>\n {item.trigger}\n </NavigationMenuTrigger>\n <NavigationMenuContent>{item.content}</NavigationMenuContent>\n </>\n ) : (\n <NavigationMenuLink\n href={actionFirst ? undefined : item.path}\n onClick={() => {\n if (item.action) {\n item.action();\n }\n }}\n className={cn(\n navigationMenuTriggerStyle(),\n \"hawa-cursor-pointer hawa-select-none\",\n triggerClassNames,\n )}\n >\n {item.trigger}\n </NavigationMenuLink>\n )}\n </NavigationMenuItem>\n ))}\n </NavigationMenuList>\n </NavigationMenuRoot>\n );\n};\n\nconst NavigationMenuItem = NavigationMenuPrimitive.Item;\nconst NavigationMenuLink = NavigationMenuPrimitive.Link;\n\nNavigationMenuContent.displayName = NavigationMenuPrimitive.Content.displayName;\nNavigationMenuTrigger.displayName = NavigationMenuPrimitive.Trigger.displayName;\nNavigationMenuList.displayName = NavigationMenuPrimitive.List.displayName;\nNavigationMenuRoot.displayName = NavigationMenuPrimitive.Root.displayName;\nNavigationMenuIndicator.displayName =\n NavigationMenuPrimitive.Indicator.displayName;\nNavigationMenuViewport.displayName =\n NavigationMenuPrimitive.Viewport.displayName;\n\nexport {\n NavigationMenuLink,\n NavigationMenuItem,\n NavigationMenu,\n NavigationMenuIndicator,\n NavigationMenuContent,\n NavigationMenuList,\n navigationMenuTriggerStyle,\n NavigationMenuRoot,\n NavigationMenuTrigger,\n NavigationMenuViewport,\n StandardNavigationMenuItem,\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 +1 @@
1
- {"version":3,"sources":["../../elements/pagination/index.ts","../../elements/pagination/Pagination.tsx","../../util/index.ts"],"sourcesContent":["export * from \"./Pagination\";\n","import React from \"react\";\nimport { Pagination as PaginationPrimitive } from \"react-headless-pagination\";\n\nimport { DirectionType } from \"../../types/commonTypes\";\nimport { cn } from \"@util/index\";\n\ntype PaginationProps = {\n direction?: DirectionType;\n totalPages: number;\n currentPage?: number;\n};\n\nexport const Pagination: React.FC<PaginationProps> = ({\n direction,\n totalPages,\n currentPage\n}) => {\n const [page, setPage] = React.useState<number>(currentPage || 0);\n const handlePageChange = (page: number) => {\n setPage(page);\n };\n // let totalPages = 123;\n return (\n <PaginationPrimitive\n totalPages={totalPages}\n edgePageCount={2}\n middlePagesSiblingCount={1}\n // truncableClassName={\"w-10 px-0.5\"}\n\n currentPage={page}\n setCurrentPage={handlePageChange}\n className=\"hawa-flex hawa-h-9 hawa-w-full hawa-select-none hawa-items-center hawa-text-sm hawa-transition-all\"\n truncableText=\"...\"\n truncableClassName=\"hawa-w-10 hawa-px-0.5 hawa-text-center\"\n >\n <PaginationPrimitive.PrevButton\n as={\n <button\n aria-label=\"Previous Table Page\"\n className={cn(\n \"hawa-min-w-9 hawa-flex hawa-h-9 hawa-w-9 hawa-items-center hawa-justify-center hawa-rounded hawa-border hawa-bg-card\",\n direction === \"rtl\" && \"hawa-rotate-180\"\n )}\n style={{ minWidth: 36 }}\n >\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n >\n <path d=\"m15 18-6-6 6-6\" />\n </svg>\n </button>\n }\n className={cn(\n \"hawa-mr-2 hawa-flex hawa-items-center hawa-text-gray-500 hover:hawa-text-gray-600 dark:hover:hawa-text-gray-200\",\n {\n \"hawa-cursor-pointer\": page !== 0,\n \"hawa-opacity-50\": page === 0\n }\n )}\n >\n Previous\n </PaginationPrimitive.PrevButton>\n\n <nav className=\"hawa-flex hawa-flex-grow hawa-justify-center\">\n <ul className=\"hawa-flex hawa-items-center hawa-gap-1\">\n <PaginationPrimitive.PageButton\n className={\n \"hawa-tap-highlight-transparent hawa-text-default-foreground data-[focus-visible=true]:hawa-outline-focus data-[disabled=true]:hawa-text-default-300 hawa-min-w-9 hawa-text-small hawa-box-border hawa-flex hawa-h-9 hawa-w-9 hawa-cursor-pointer hawa-touch-none hawa-select-none hawa-flex-wrap hawa-items-center hawa-justify-center hawa-truncate hawa-rounded hawa-border hawa-bg-card hawa-outline-none hawa-transition-all hover:hawa-scale-[1.1] data-[disabled=true]:hawa-pointer-events-none data-[focus-visible=true]:hawa-z-10 data-[pressed=true]:hawa-scale-[0.97] data-[focus-visible=true]:hawa-outline-2 data-[focus-visible=true]:hawa-outline-offset-2\"\n }\n activeClassName=\"hawa-bg-primary hawa-text-primary-foreground hawa-transition-all\"\n // activeClassName=\"hawa-bg-primary/80 hawa-text-primary-foreground hawa-font-extrabold\"\n // inactiveClassName=\"hawa-text-gray-500\"\n // className={\n // \"hawa-flex hawa-bg-muted hawa-rounded hawa-items-center hawa-justify-center hover:hawa-text-primary-600 focus:hawa-font-bold focus:hawa-text-primary-600 focus:hawa-outline-none hawa-h-7 hawa-w-7 hawa-cursor-pointer\"\n // }\n />\n </ul>\n </nav>\n\n <PaginationPrimitive.NextButton\n as={\n <button\n aria-label=\"Previous Table Page\"\n className={cn(\n \"hawa-min-w-9 hawa-flex hawa-h-9 hawa-w-9 hawa-items-center hawa-justify-center hawa-rounded hawa-border hawa-bg-card\",\n direction === \"ltr\" && \"hawa-rotate-180\"\n )}\n style={{ minWidth: 36 }}\n >\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n >\n <path d=\"m15 18-6-6 6-6\" />\n </svg>\n </button>\n }\n className={cn(\n \"hawa-mr-2 hawa-flex hawa-items-center hawa-text-gray-500 hover:hawa-text-gray-600 dark:hover:hawa-text-gray-200\",\n {\n \"hawa-cursor-pointer\": page !== totalPages - 1,\n \"hawa-opacity-50\": page === totalPages - 1\n }\n )}\n >\n Next\n {/* <FiArrowRight size={20} className=\"ml-3\" /> */}\n </PaginationPrimitive.NextButton>\n </PaginationPrimitive>\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;AAAA;AAAA;AAAA;AAAA;;;ACAA,mBAAkB;AAClB,uCAAkD;;;ACDlD,kBAAsC;AACtC,4BAAwB;AAEjB,SAAS,MAAM,QAAsB;AAC1C,aAAO,mCAAQ,kBAAK,MAAM,CAAC;AAC7B;;;ADOO,IAAM,aAAwC,CAAC;AAAA,EACpD;AAAA,EACA;AAAA,EACA;AACF,MAAM;AACJ,QAAM,CAAC,MAAM,OAAO,IAAI,aAAAA,QAAM,SAAiB,eAAe,CAAC;AAC/D,QAAM,mBAAmB,CAACC,UAAiB;AACzC,YAAQA,KAAI;AAAA,EACd;AAEA,SACE,6BAAAD,QAAA;AAAA,IAAC,iCAAAE;AAAA,IAAA;AAAA,MACC;AAAA,MACA,eAAe;AAAA,MACf,yBAAyB;AAAA,MAGzB,aAAa;AAAA,MACb,gBAAgB;AAAA,MAChB,WAAU;AAAA,MACV,eAAc;AAAA,MACd,oBAAmB;AAAA;AAAA,IAEnB,6BAAAF,QAAA;AAAA,MAAC,iCAAAE,WAAoB;AAAA,MAApB;AAAA,QACC,IACE,6BAAAF,QAAA;AAAA,UAAC;AAAA;AAAA,YACC,cAAW;AAAA,YACX,WAAW;AAAA,cACT;AAAA,cACA,cAAc,SAAS;AAAA,YACzB;AAAA,YACA,OAAO,EAAE,UAAU,GAAG;AAAA;AAAA,UAEtB,6BAAAA,QAAA;AAAA,YAAC;AAAA;AAAA,cACC,OAAM;AAAA,cACN,OAAM;AAAA,cACN,QAAO;AAAA,cACP,SAAQ;AAAA,cACR,MAAK;AAAA,cACL,QAAO;AAAA,cACP,aAAY;AAAA,cACZ,eAAc;AAAA,cACd,gBAAe;AAAA;AAAA,YAEf,6BAAAA,QAAA,cAAC,UAAK,GAAE,kBAAiB;AAAA,UAC3B;AAAA,QACF;AAAA,QAEF,WAAW;AAAA,UACT;AAAA,UACA;AAAA,YACE,uBAAuB,SAAS;AAAA,YAChC,mBAAmB,SAAS;AAAA,UAC9B;AAAA,QACF;AAAA;AAAA,MACD;AAAA,IAED;AAAA,IAEA,6BAAAA,QAAA,cAAC,SAAI,WAAU,kDACb,6BAAAA,QAAA,cAAC,QAAG,WAAU,4CACZ,6BAAAA,QAAA;AAAA,MAAC,iCAAAE,WAAoB;AAAA,MAApB;AAAA,QACC,WACE;AAAA,QAEF,iBAAgB;AAAA;AAAA,IAMlB,CACF,CACF;AAAA,IAEA,6BAAAF,QAAA;AAAA,MAAC,iCAAAE,WAAoB;AAAA,MAApB;AAAA,QACC,IACE,6BAAAF,QAAA;AAAA,UAAC;AAAA;AAAA,YACC,cAAW;AAAA,YACX,WAAW;AAAA,cACT;AAAA,cACA,cAAc,SAAS;AAAA,YACzB;AAAA,YACA,OAAO,EAAE,UAAU,GAAG;AAAA;AAAA,UAEtB,6BAAAA,QAAA;AAAA,YAAC;AAAA;AAAA,cACC,OAAM;AAAA,cACN,OAAM;AAAA,cACN,QAAO;AAAA,cACP,SAAQ;AAAA,cACR,MAAK;AAAA,cACL,QAAO;AAAA,cACP,aAAY;AAAA,cACZ,eAAc;AAAA,cACd,gBAAe;AAAA;AAAA,YAEf,6BAAAA,QAAA,cAAC,UAAK,GAAE,kBAAiB;AAAA,UAC3B;AAAA,QACF;AAAA,QAEF,WAAW;AAAA,UACT;AAAA,UACA;AAAA,YACE,uBAAuB,SAAS,aAAa;AAAA,YAC7C,mBAAmB,SAAS,aAAa;AAAA,UAC3C;AAAA,QACF;AAAA;AAAA,MACD;AAAA,IAGD;AAAA,EACF;AAEJ;","names":["React","page","PaginationPrimitive"]}
1
+ {"version":3,"sources":["../../elements/pagination/index.ts","../../elements/pagination/Pagination.tsx","../../util/index.ts"],"sourcesContent":["export * from \"./Pagination\";\n","import React from \"react\";\nimport { Pagination as PaginationPrimitive } from \"react-headless-pagination\";\n\nimport { cn } from \"@util/index\";\n\nimport { DirectionType } from \"../../types/commonTypes\";\n\ntype PaginationProps = {\n direction?: DirectionType;\n totalPages: number;\n currentPage?: number;\n};\n\nexport const Pagination: React.FC<PaginationProps> = ({\n direction,\n totalPages,\n currentPage,\n}) => {\n const [page, setPage] = React.useState<number>(currentPage || 0);\n const handlePageChange = (page: number) => {\n setPage(page);\n };\n return (\n <PaginationPrimitive\n totalPages={totalPages}\n edgePageCount={2}\n middlePagesSiblingCount={1}\n currentPage={page}\n setCurrentPage={handlePageChange}\n className=\"hawa-flex hawa-h-9 hawa-w-full hawa-select-none hawa-items-center hawa-text-sm hawa-transition-all\"\n truncableText=\"...\"\n truncableClassName=\"hawa-w-10 hawa-px-0.5 hawa-text-center\"\n >\n <PaginationPrimitive.PrevButton\n as={\n <button\n aria-label=\"Previous Table Page\"\n className={cn(\n \"hawa-min-w-9 hawa-flex hawa-h-9 hawa-w-9 hawa-items-center hawa-justify-center hawa-rounded hawa-border hawa-bg-card\",\n direction === \"rtl\" && \"hawa-rotate-180\",\n )}\n style={{ minWidth: 36 }}\n >\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n >\n <path d=\"m15 18-6-6 6-6\" />\n </svg>\n </button>\n }\n className={cn(\n \"hawa-mr-2 hawa-flex hawa-items-center hawa-text-gray-500 hover:hawa-text-gray-600 dark:hover:hawa-text-gray-200\",\n {\n \"hawa-cursor-pointer\": page !== 0,\n \"hawa-opacity-50\": page === 0,\n },\n )}\n >\n Previous\n </PaginationPrimitive.PrevButton>\n\n <nav className=\"hawa-flex hawa-flex-grow hawa-justify-center\">\n <ul className=\"hawa-flex hawa-items-center hawa-gap-1\">\n <PaginationPrimitive.PageButton\n className={\n \"hawa-tap-highlight-transparent hawa-text-default-foreground data-[focus-visible=true]:hawa-outline-focus data-[disabled=true]:hawa-text-default-300 hawa-min-w-9 hawa-text-small hawa-box-border hawa-flex hawa-h-9 hawa-w-9 hawa-cursor-pointer hawa-touch-none hawa-select-none hawa-flex-wrap hawa-items-center hawa-justify-center hawa-truncate hawa-rounded hawa-border hawa-bg-card hawa-outline-none hawa-transition-all hover:hawa-scale-[1.1] data-[disabled=true]:hawa-pointer-events-none data-[focus-visible=true]:hawa-z-10 data-[pressed=true]:hawa-scale-[0.97] data-[focus-visible=true]:hawa-outline-2 data-[focus-visible=true]:hawa-outline-offset-2\"\n }\n activeClassName=\"hawa-bg-primary hawa-text-primary-foreground hawa-transition-all\"\n // activeClassName=\"hawa-bg-primary/80 hawa-text-primary-foreground hawa-font-extrabold\"\n // inactiveClassName=\"hawa-text-gray-500\"\n // className={\n // \"hawa-flex hawa-bg-muted hawa-rounded hawa-items-center hawa-justify-center hover:hawa-text-primary-600 focus:hawa-font-bold focus:hawa-text-primary-600 focus:hawa-outline-none hawa-h-7 hawa-w-7 hawa-cursor-pointer\"\n // }\n />\n </ul>\n </nav>\n\n <PaginationPrimitive.NextButton\n as={\n <button\n aria-label=\"Previous Table Page\"\n className={cn(\n \"hawa-min-w-9 hawa-flex hawa-h-9 hawa-w-9 hawa-items-center hawa-justify-center hawa-rounded hawa-border hawa-bg-card\",\n direction === \"ltr\" && \"hawa-rotate-180\",\n )}\n style={{ minWidth: 36 }}\n >\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n >\n <path d=\"m15 18-6-6 6-6\" />\n </svg>\n </button>\n }\n className={cn(\n \"hawa-mr-2 hawa-flex hawa-items-center hawa-text-gray-500 hover:hawa-text-gray-600 dark:hover:hawa-text-gray-200\",\n {\n \"hawa-cursor-pointer\": page !== totalPages - 1,\n \"hawa-opacity-50\": page === totalPages - 1,\n },\n )}\n >\n Next\n {/* <FiArrowRight size={20} className=\"ml-3\" /> */}\n </PaginationPrimitive.NextButton>\n </PaginationPrimitive>\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;AAAA;AAAA;AAAA;AAAA;;;ACAA,mBAAkB;AAClB,uCAAkD;;;ACDlD,kBAAsC;AACtC,4BAAwB;AAEjB,SAAS,MAAM,QAAsB;AAC1C,aAAO,mCAAQ,kBAAK,MAAM,CAAC;AAC7B;;;ADQO,IAAM,aAAwC,CAAC;AAAA,EACpD;AAAA,EACA;AAAA,EACA;AACF,MAAM;AACJ,QAAM,CAAC,MAAM,OAAO,IAAI,aAAAA,QAAM,SAAiB,eAAe,CAAC;AAC/D,QAAM,mBAAmB,CAACC,UAAiB;AACzC,YAAQA,KAAI;AAAA,EACd;AACA,SACE,6BAAAD,QAAA;AAAA,IAAC,iCAAAE;AAAA,IAAA;AAAA,MACC;AAAA,MACA,eAAe;AAAA,MACf,yBAAyB;AAAA,MACzB,aAAa;AAAA,MACb,gBAAgB;AAAA,MAChB,WAAU;AAAA,MACV,eAAc;AAAA,MACd,oBAAmB;AAAA;AAAA,IAEnB,6BAAAF,QAAA;AAAA,MAAC,iCAAAE,WAAoB;AAAA,MAApB;AAAA,QACC,IACE,6BAAAF,QAAA;AAAA,UAAC;AAAA;AAAA,YACC,cAAW;AAAA,YACX,WAAW;AAAA,cACT;AAAA,cACA,cAAc,SAAS;AAAA,YACzB;AAAA,YACA,OAAO,EAAE,UAAU,GAAG;AAAA;AAAA,UAEtB,6BAAAA,QAAA;AAAA,YAAC;AAAA;AAAA,cACC,OAAM;AAAA,cACN,OAAM;AAAA,cACN,QAAO;AAAA,cACP,SAAQ;AAAA,cACR,MAAK;AAAA,cACL,QAAO;AAAA,cACP,aAAY;AAAA,cACZ,eAAc;AAAA,cACd,gBAAe;AAAA;AAAA,YAEf,6BAAAA,QAAA,cAAC,UAAK,GAAE,kBAAiB;AAAA,UAC3B;AAAA,QACF;AAAA,QAEF,WAAW;AAAA,UACT;AAAA,UACA;AAAA,YACE,uBAAuB,SAAS;AAAA,YAChC,mBAAmB,SAAS;AAAA,UAC9B;AAAA,QACF;AAAA;AAAA,MACD;AAAA,IAED;AAAA,IAEA,6BAAAA,QAAA,cAAC,SAAI,WAAU,kDACb,6BAAAA,QAAA,cAAC,QAAG,WAAU,4CACZ,6BAAAA,QAAA;AAAA,MAAC,iCAAAE,WAAoB;AAAA,MAApB;AAAA,QACC,WACE;AAAA,QAEF,iBAAgB;AAAA;AAAA,IAMlB,CACF,CACF;AAAA,IAEA,6BAAAF,QAAA;AAAA,MAAC,iCAAAE,WAAoB;AAAA,MAApB;AAAA,QACC,IACE,6BAAAF,QAAA;AAAA,UAAC;AAAA;AAAA,YACC,cAAW;AAAA,YACX,WAAW;AAAA,cACT;AAAA,cACA,cAAc,SAAS;AAAA,YACzB;AAAA,YACA,OAAO,EAAE,UAAU,GAAG;AAAA;AAAA,UAEtB,6BAAAA,QAAA;AAAA,YAAC;AAAA;AAAA,cACC,OAAM;AAAA,cACN,OAAM;AAAA,cACN,QAAO;AAAA,cACP,SAAQ;AAAA,cACR,MAAK;AAAA,cACL,QAAO;AAAA,cACP,aAAY;AAAA,cACZ,eAAc;AAAA,cACd,gBAAe;AAAA;AAAA,YAEf,6BAAAA,QAAA,cAAC,UAAK,GAAE,kBAAiB;AAAA,UAC3B;AAAA,QACF;AAAA,QAEF,WAAW;AAAA,UACT;AAAA,UACA;AAAA,YACE,uBAAuB,SAAS,aAAa;AAAA,YAC7C,mBAAmB,SAAS,aAAa;AAAA,UAC3C;AAAA,QACF;AAAA;AAAA,MACD;AAAA,IAGD;AAAA,EACF;AAEJ;","names":["React","page","PaginationPrimitive"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../elements/pagination/Pagination.tsx","../../util/index.ts"],"sourcesContent":["import React from \"react\";\nimport { Pagination as PaginationPrimitive } from \"react-headless-pagination\";\n\nimport { DirectionType } from \"../../types/commonTypes\";\nimport { cn } from \"@util/index\";\n\ntype PaginationProps = {\n direction?: DirectionType;\n totalPages: number;\n currentPage?: number;\n};\n\nexport const Pagination: React.FC<PaginationProps> = ({\n direction,\n totalPages,\n currentPage\n}) => {\n const [page, setPage] = React.useState<number>(currentPage || 0);\n const handlePageChange = (page: number) => {\n setPage(page);\n };\n // let totalPages = 123;\n return (\n <PaginationPrimitive\n totalPages={totalPages}\n edgePageCount={2}\n middlePagesSiblingCount={1}\n // truncableClassName={\"w-10 px-0.5\"}\n\n currentPage={page}\n setCurrentPage={handlePageChange}\n className=\"hawa-flex hawa-h-9 hawa-w-full hawa-select-none hawa-items-center hawa-text-sm hawa-transition-all\"\n truncableText=\"...\"\n truncableClassName=\"hawa-w-10 hawa-px-0.5 hawa-text-center\"\n >\n <PaginationPrimitive.PrevButton\n as={\n <button\n aria-label=\"Previous Table Page\"\n className={cn(\n \"hawa-min-w-9 hawa-flex hawa-h-9 hawa-w-9 hawa-items-center hawa-justify-center hawa-rounded hawa-border hawa-bg-card\",\n direction === \"rtl\" && \"hawa-rotate-180\"\n )}\n style={{ minWidth: 36 }}\n >\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n >\n <path d=\"m15 18-6-6 6-6\" />\n </svg>\n </button>\n }\n className={cn(\n \"hawa-mr-2 hawa-flex hawa-items-center hawa-text-gray-500 hover:hawa-text-gray-600 dark:hover:hawa-text-gray-200\",\n {\n \"hawa-cursor-pointer\": page !== 0,\n \"hawa-opacity-50\": page === 0\n }\n )}\n >\n Previous\n </PaginationPrimitive.PrevButton>\n\n <nav className=\"hawa-flex hawa-flex-grow hawa-justify-center\">\n <ul className=\"hawa-flex hawa-items-center hawa-gap-1\">\n <PaginationPrimitive.PageButton\n className={\n \"hawa-tap-highlight-transparent hawa-text-default-foreground data-[focus-visible=true]:hawa-outline-focus data-[disabled=true]:hawa-text-default-300 hawa-min-w-9 hawa-text-small hawa-box-border hawa-flex hawa-h-9 hawa-w-9 hawa-cursor-pointer hawa-touch-none hawa-select-none hawa-flex-wrap hawa-items-center hawa-justify-center hawa-truncate hawa-rounded hawa-border hawa-bg-card hawa-outline-none hawa-transition-all hover:hawa-scale-[1.1] data-[disabled=true]:hawa-pointer-events-none data-[focus-visible=true]:hawa-z-10 data-[pressed=true]:hawa-scale-[0.97] data-[focus-visible=true]:hawa-outline-2 data-[focus-visible=true]:hawa-outline-offset-2\"\n }\n activeClassName=\"hawa-bg-primary hawa-text-primary-foreground hawa-transition-all\"\n // activeClassName=\"hawa-bg-primary/80 hawa-text-primary-foreground hawa-font-extrabold\"\n // inactiveClassName=\"hawa-text-gray-500\"\n // className={\n // \"hawa-flex hawa-bg-muted hawa-rounded hawa-items-center hawa-justify-center hover:hawa-text-primary-600 focus:hawa-font-bold focus:hawa-text-primary-600 focus:hawa-outline-none hawa-h-7 hawa-w-7 hawa-cursor-pointer\"\n // }\n />\n </ul>\n </nav>\n\n <PaginationPrimitive.NextButton\n as={\n <button\n aria-label=\"Previous Table Page\"\n className={cn(\n \"hawa-min-w-9 hawa-flex hawa-h-9 hawa-w-9 hawa-items-center hawa-justify-center hawa-rounded hawa-border hawa-bg-card\",\n direction === \"ltr\" && \"hawa-rotate-180\"\n )}\n style={{ minWidth: 36 }}\n >\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n >\n <path d=\"m15 18-6-6 6-6\" />\n </svg>\n </button>\n }\n className={cn(\n \"hawa-mr-2 hawa-flex hawa-items-center hawa-text-gray-500 hover:hawa-text-gray-600 dark:hover:hawa-text-gray-200\",\n {\n \"hawa-cursor-pointer\": page !== totalPages - 1,\n \"hawa-opacity-50\": page === totalPages - 1\n }\n )}\n >\n Next\n {/* <FiArrowRight size={20} className=\"ml-3\" /> */}\n </PaginationPrimitive.NextButton>\n </PaginationPrimitive>\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;AAClB,SAAS,cAAc,2BAA2B;;;ACDlD,SAAS,YAA6B;AACtC,SAAS,eAAe;AAEjB,SAAS,MAAM,QAAsB;AAC1C,SAAO,QAAQ,KAAK,MAAM,CAAC;AAC7B;;;ADOO,IAAM,aAAwC,CAAC;AAAA,EACpD;AAAA,EACA;AAAA,EACA;AACF,MAAM;AACJ,QAAM,CAAC,MAAM,OAAO,IAAI,MAAM,SAAiB,eAAe,CAAC;AAC/D,QAAM,mBAAmB,CAACA,UAAiB;AACzC,YAAQA,KAAI;AAAA,EACd;AAEA,SACE;AAAA,IAAC;AAAA;AAAA,MACC;AAAA,MACA,eAAe;AAAA,MACf,yBAAyB;AAAA,MAGzB,aAAa;AAAA,MACb,gBAAgB;AAAA,MAChB,WAAU;AAAA,MACV,eAAc;AAAA,MACd,oBAAmB;AAAA;AAAA,IAEnB;AAAA,MAAC,oBAAoB;AAAA,MAApB;AAAA,QACC,IACE;AAAA,UAAC;AAAA;AAAA,YACC,cAAW;AAAA,YACX,WAAW;AAAA,cACT;AAAA,cACA,cAAc,SAAS;AAAA,YACzB;AAAA,YACA,OAAO,EAAE,UAAU,GAAG;AAAA;AAAA,UAEtB;AAAA,YAAC;AAAA;AAAA,cACC,OAAM;AAAA,cACN,OAAM;AAAA,cACN,QAAO;AAAA,cACP,SAAQ;AAAA,cACR,MAAK;AAAA,cACL,QAAO;AAAA,cACP,aAAY;AAAA,cACZ,eAAc;AAAA,cACd,gBAAe;AAAA;AAAA,YAEf,oCAAC,UAAK,GAAE,kBAAiB;AAAA,UAC3B;AAAA,QACF;AAAA,QAEF,WAAW;AAAA,UACT;AAAA,UACA;AAAA,YACE,uBAAuB,SAAS;AAAA,YAChC,mBAAmB,SAAS;AAAA,UAC9B;AAAA,QACF;AAAA;AAAA,MACD;AAAA,IAED;AAAA,IAEA,oCAAC,SAAI,WAAU,kDACb,oCAAC,QAAG,WAAU,4CACZ;AAAA,MAAC,oBAAoB;AAAA,MAApB;AAAA,QACC,WACE;AAAA,QAEF,iBAAgB;AAAA;AAAA,IAMlB,CACF,CACF;AAAA,IAEA;AAAA,MAAC,oBAAoB;AAAA,MAApB;AAAA,QACC,IACE;AAAA,UAAC;AAAA;AAAA,YACC,cAAW;AAAA,YACX,WAAW;AAAA,cACT;AAAA,cACA,cAAc,SAAS;AAAA,YACzB;AAAA,YACA,OAAO,EAAE,UAAU,GAAG;AAAA;AAAA,UAEtB;AAAA,YAAC;AAAA;AAAA,cACC,OAAM;AAAA,cACN,OAAM;AAAA,cACN,QAAO;AAAA,cACP,SAAQ;AAAA,cACR,MAAK;AAAA,cACL,QAAO;AAAA,cACP,aAAY;AAAA,cACZ,eAAc;AAAA,cACd,gBAAe;AAAA;AAAA,YAEf,oCAAC,UAAK,GAAE,kBAAiB;AAAA,UAC3B;AAAA,QACF;AAAA,QAEF,WAAW;AAAA,UACT;AAAA,UACA;AAAA,YACE,uBAAuB,SAAS,aAAa;AAAA,YAC7C,mBAAmB,SAAS,aAAa;AAAA,UAC3C;AAAA,QACF;AAAA;AAAA,MACD;AAAA,IAGD;AAAA,EACF;AAEJ;","names":["page"]}
1
+ {"version":3,"sources":["../../elements/pagination/Pagination.tsx","../../util/index.ts"],"sourcesContent":["import React from \"react\";\nimport { Pagination as PaginationPrimitive } from \"react-headless-pagination\";\n\nimport { cn } from \"@util/index\";\n\nimport { DirectionType } from \"../../types/commonTypes\";\n\ntype PaginationProps = {\n direction?: DirectionType;\n totalPages: number;\n currentPage?: number;\n};\n\nexport const Pagination: React.FC<PaginationProps> = ({\n direction,\n totalPages,\n currentPage,\n}) => {\n const [page, setPage] = React.useState<number>(currentPage || 0);\n const handlePageChange = (page: number) => {\n setPage(page);\n };\n return (\n <PaginationPrimitive\n totalPages={totalPages}\n edgePageCount={2}\n middlePagesSiblingCount={1}\n currentPage={page}\n setCurrentPage={handlePageChange}\n className=\"hawa-flex hawa-h-9 hawa-w-full hawa-select-none hawa-items-center hawa-text-sm hawa-transition-all\"\n truncableText=\"...\"\n truncableClassName=\"hawa-w-10 hawa-px-0.5 hawa-text-center\"\n >\n <PaginationPrimitive.PrevButton\n as={\n <button\n aria-label=\"Previous Table Page\"\n className={cn(\n \"hawa-min-w-9 hawa-flex hawa-h-9 hawa-w-9 hawa-items-center hawa-justify-center hawa-rounded hawa-border hawa-bg-card\",\n direction === \"rtl\" && \"hawa-rotate-180\",\n )}\n style={{ minWidth: 36 }}\n >\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n >\n <path d=\"m15 18-6-6 6-6\" />\n </svg>\n </button>\n }\n className={cn(\n \"hawa-mr-2 hawa-flex hawa-items-center hawa-text-gray-500 hover:hawa-text-gray-600 dark:hover:hawa-text-gray-200\",\n {\n \"hawa-cursor-pointer\": page !== 0,\n \"hawa-opacity-50\": page === 0,\n },\n )}\n >\n Previous\n </PaginationPrimitive.PrevButton>\n\n <nav className=\"hawa-flex hawa-flex-grow hawa-justify-center\">\n <ul className=\"hawa-flex hawa-items-center hawa-gap-1\">\n <PaginationPrimitive.PageButton\n className={\n \"hawa-tap-highlight-transparent hawa-text-default-foreground data-[focus-visible=true]:hawa-outline-focus data-[disabled=true]:hawa-text-default-300 hawa-min-w-9 hawa-text-small hawa-box-border hawa-flex hawa-h-9 hawa-w-9 hawa-cursor-pointer hawa-touch-none hawa-select-none hawa-flex-wrap hawa-items-center hawa-justify-center hawa-truncate hawa-rounded hawa-border hawa-bg-card hawa-outline-none hawa-transition-all hover:hawa-scale-[1.1] data-[disabled=true]:hawa-pointer-events-none data-[focus-visible=true]:hawa-z-10 data-[pressed=true]:hawa-scale-[0.97] data-[focus-visible=true]:hawa-outline-2 data-[focus-visible=true]:hawa-outline-offset-2\"\n }\n activeClassName=\"hawa-bg-primary hawa-text-primary-foreground hawa-transition-all\"\n // activeClassName=\"hawa-bg-primary/80 hawa-text-primary-foreground hawa-font-extrabold\"\n // inactiveClassName=\"hawa-text-gray-500\"\n // className={\n // \"hawa-flex hawa-bg-muted hawa-rounded hawa-items-center hawa-justify-center hover:hawa-text-primary-600 focus:hawa-font-bold focus:hawa-text-primary-600 focus:hawa-outline-none hawa-h-7 hawa-w-7 hawa-cursor-pointer\"\n // }\n />\n </ul>\n </nav>\n\n <PaginationPrimitive.NextButton\n as={\n <button\n aria-label=\"Previous Table Page\"\n className={cn(\n \"hawa-min-w-9 hawa-flex hawa-h-9 hawa-w-9 hawa-items-center hawa-justify-center hawa-rounded hawa-border hawa-bg-card\",\n direction === \"ltr\" && \"hawa-rotate-180\",\n )}\n style={{ minWidth: 36 }}\n >\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n >\n <path d=\"m15 18-6-6 6-6\" />\n </svg>\n </button>\n }\n className={cn(\n \"hawa-mr-2 hawa-flex hawa-items-center hawa-text-gray-500 hover:hawa-text-gray-600 dark:hover:hawa-text-gray-200\",\n {\n \"hawa-cursor-pointer\": page !== totalPages - 1,\n \"hawa-opacity-50\": page === totalPages - 1,\n },\n )}\n >\n Next\n {/* <FiArrowRight size={20} className=\"ml-3\" /> */}\n </PaginationPrimitive.NextButton>\n </PaginationPrimitive>\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;AAClB,SAAS,cAAc,2BAA2B;;;ACDlD,SAAS,YAA6B;AACtC,SAAS,eAAe;AAEjB,SAAS,MAAM,QAAsB;AAC1C,SAAO,QAAQ,KAAK,MAAM,CAAC;AAC7B;;;ADQO,IAAM,aAAwC,CAAC;AAAA,EACpD;AAAA,EACA;AAAA,EACA;AACF,MAAM;AACJ,QAAM,CAAC,MAAM,OAAO,IAAI,MAAM,SAAiB,eAAe,CAAC;AAC/D,QAAM,mBAAmB,CAACA,UAAiB;AACzC,YAAQA,KAAI;AAAA,EACd;AACA,SACE;AAAA,IAAC;AAAA;AAAA,MACC;AAAA,MACA,eAAe;AAAA,MACf,yBAAyB;AAAA,MACzB,aAAa;AAAA,MACb,gBAAgB;AAAA,MAChB,WAAU;AAAA,MACV,eAAc;AAAA,MACd,oBAAmB;AAAA;AAAA,IAEnB;AAAA,MAAC,oBAAoB;AAAA,MAApB;AAAA,QACC,IACE;AAAA,UAAC;AAAA;AAAA,YACC,cAAW;AAAA,YACX,WAAW;AAAA,cACT;AAAA,cACA,cAAc,SAAS;AAAA,YACzB;AAAA,YACA,OAAO,EAAE,UAAU,GAAG;AAAA;AAAA,UAEtB;AAAA,YAAC;AAAA;AAAA,cACC,OAAM;AAAA,cACN,OAAM;AAAA,cACN,QAAO;AAAA,cACP,SAAQ;AAAA,cACR,MAAK;AAAA,cACL,QAAO;AAAA,cACP,aAAY;AAAA,cACZ,eAAc;AAAA,cACd,gBAAe;AAAA;AAAA,YAEf,oCAAC,UAAK,GAAE,kBAAiB;AAAA,UAC3B;AAAA,QACF;AAAA,QAEF,WAAW;AAAA,UACT;AAAA,UACA;AAAA,YACE,uBAAuB,SAAS;AAAA,YAChC,mBAAmB,SAAS;AAAA,UAC9B;AAAA,QACF;AAAA;AAAA,MACD;AAAA,IAED;AAAA,IAEA,oCAAC,SAAI,WAAU,kDACb,oCAAC,QAAG,WAAU,4CACZ;AAAA,MAAC,oBAAoB;AAAA,MAApB;AAAA,QACC,WACE;AAAA,QAEF,iBAAgB;AAAA;AAAA,IAMlB,CACF,CACF;AAAA,IAEA;AAAA,MAAC,oBAAoB;AAAA,MAApB;AAAA,QACC,IACE;AAAA,UAAC;AAAA;AAAA,YACC,cAAW;AAAA,YACX,WAAW;AAAA,cACT;AAAA,cACA,cAAc,SAAS;AAAA,YACzB;AAAA,YACA,OAAO,EAAE,UAAU,GAAG;AAAA;AAAA,UAEtB;AAAA,YAAC;AAAA;AAAA,cACC,OAAM;AAAA,cACN,OAAM;AAAA,cACN,QAAO;AAAA,cACP,SAAQ;AAAA,cACR,MAAK;AAAA,cACL,QAAO;AAAA,cACP,aAAY;AAAA,cACZ,eAAc;AAAA,cACd,gBAAe;AAAA;AAAA,YAEf,oCAAC,UAAK,GAAE,kBAAiB;AAAA,UAC3B;AAAA,QACF;AAAA,QAEF,WAAW;AAAA,UACT;AAAA,UACA;AAAA,YACE,uBAAuB,SAAS,aAAa;AAAA,YAC7C,mBAAmB,SAAS,aAAa;AAAA,UAC3C;AAAA,QACF;AAAA;AAAA,MACD;AAAA,IAGD;AAAA,EACF;AAEJ;","names":["page"]}
@@ -357,7 +357,7 @@ var Input = (0, import_react7.forwardRef)(
357
357
  )
358
358
  },
359
359
  props.label && /* @__PURE__ */ import_react7.default.createElement(Label, { ...labelProps }, props.label),
360
- /* @__PURE__ */ import_react7.default.createElement("div", { className: "hawa-flex hawa-flex-row hawa-w-full hawa-items-center " }, props.outsidePrefix && /* @__PURE__ */ import_react7.default.createElement(
360
+ /* @__PURE__ */ import_react7.default.createElement("div", { className: "hawa-flex hawa-flex-row hawa-w-full hawa-items-center" }, props.outsidePrefix && /* @__PURE__ */ import_react7.default.createElement(
361
361
  "span",
362
362
  {
363
363
  className: cn(
@@ -423,7 +423,7 @@ var Input = (0, import_react7.forwardRef)(
423
423
  ...inputProps,
424
424
  className: cn(
425
425
  defaultInputStyle,
426
- " focus-visible:hawa-outline-none focus-visible:hawa-ring-2 focus-visible:hawa-ring-ring focus-visible:hawa-ring-offset-0 dark:hawa-text-white",
426
+ "focus-visible:hawa-outline-none focus-visible:hawa-ring-2 focus-visible:hawa-ring-ring focus-visible:hawa-ring-offset-0 dark:hawa-text-white",
427
427
  {
428
428
  "hawa-pe-9": props.endIcon,
429
429
  "hawa-ps-9": props.startIcon,
@@ -437,7 +437,7 @@ var Input = (0, import_react7.forwardRef)(
437
437
  "div",
438
438
  {
439
439
  className: cn(
440
- "hawa-absolute hawa-end-0 hawa-top-[47px] hawa-z-20 hawa-translate-y-1/2 hawa-rounded hawa-bg-background hawa-text-start hawa-text-xs hawa-text-helper-color hawa-drop-shadow-md hawa-transition-all",
440
+ "hawa-absolute hawa-end-0 hawa-top-[47px] hawa-z-20 hawa-translate-y-1/2 hawa-rounded hawa-bg-background hawa-text-start hawa-text-xs hawa-text-helper-color hawa-drop-shadow-md hawa-transition-all",
441
441
  props.helperText ? "hawa-border hawa-p-1" : "hawa-border-none hawa-p-0"
442
442
  )
443
443
  },