@sikka/hawa 0.48.1-next → 0.49.0-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.
- package/dist/accordion/index.js +3 -28
- package/dist/accordion/index.js.map +1 -1
- package/dist/accordion/index.mjs +3 -28
- package/dist/accordion/index.mjs.map +1 -1
- package/dist/alert/index.js +53 -98
- package/dist/alert/index.js.map +1 -1
- package/dist/alert/index.mjs +53 -98
- package/dist/alert/index.mjs.map +1 -1
- package/dist/appLayout/index.d.mts +2 -0
- package/dist/appLayout/index.d.ts +2 -0
- package/dist/appLayout/index.js +263 -409
- package/dist/appLayout/index.js.map +1 -1
- package/dist/appLayout/index.mjs +263 -409
- package/dist/appLayout/index.mjs.map +1 -1
- package/dist/appMenubar/index.js +15 -20
- package/dist/appMenubar/index.js.map +1 -1
- package/dist/appMenubar/index.mjs +15 -20
- package/dist/appMenubar/index.mjs.map +1 -1
- package/dist/appTabs/index.js +28 -37
- package/dist/appTabs/index.js.map +1 -1
- package/dist/appTabs/index.mjs +28 -37
- package/dist/appTabs/index.mjs.map +1 -1
- package/dist/appTopbar/index.js +125 -173
- package/dist/appTopbar/index.js.map +1 -1
- package/dist/appTopbar/index.mjs +125 -173
- package/dist/appTopbar/index.mjs.map +1 -1
- package/dist/avatar/index.js.map +1 -1
- package/dist/avatar/index.mjs.map +1 -1
- package/dist/backToTop/index.js +50 -82
- package/dist/backToTop/index.js.map +1 -1
- package/dist/backToTop/index.mjs +50 -82
- package/dist/backToTop/index.mjs.map +1 -1
- package/dist/badge/index.d.mts +1 -1
- package/dist/badge/index.d.ts +1 -1
- package/dist/badge/index.js +2 -18
- package/dist/badge/index.js.map +1 -1
- package/dist/badge/index.mjs +2 -18
- package/dist/badge/index.mjs.map +1 -1
- package/dist/blocks/auth/index.js +202 -468
- package/dist/blocks/auth/index.mjs +96 -280
- package/dist/blocks/feedback/index.js +214 -375
- package/dist/blocks/feedback/index.mjs +12 -25
- package/dist/blocks/index.js +604 -1122
- package/dist/blocks/index.mjs +132 -291
- package/dist/blocks/misc/index.js +136 -251
- package/dist/blocks/misc/index.mjs +29 -54
- package/dist/blocks/pricing/index.js +220 -397
- package/dist/blocks/pricing/index.mjs +63 -134
- package/dist/breadcrumb/index.js +1 -5
- package/dist/breadcrumb/index.js.map +1 -1
- package/dist/breadcrumb/index.mjs +1 -5
- package/dist/breadcrumb/index.mjs.map +1 -1
- package/dist/button/index.js +50 -82
- package/dist/button/index.js.map +1 -1
- package/dist/button/index.mjs +50 -82
- package/dist/button/index.mjs.map +1 -1
- package/dist/calendar/index.js +50 -82
- package/dist/calendar/index.js.map +1 -1
- package/dist/calendar/index.mjs +50 -82
- package/dist/calendar/index.mjs.map +1 -1
- package/dist/card/index.js +7 -35
- package/dist/card/index.js.map +1 -1
- package/dist/card/index.mjs +7 -35
- package/dist/card/index.mjs.map +1 -1
- package/dist/carousel/index.js +15 -27
- package/dist/carousel/index.js.map +1 -1
- package/dist/carousel/index.mjs +15 -27
- package/dist/carousel/index.mjs.map +1 -1
- package/dist/checkbox/index.js +2 -13
- package/dist/checkbox/index.js.map +1 -1
- package/dist/checkbox/index.mjs +2 -13
- package/dist/checkbox/index.mjs.map +1 -1
- package/dist/chip/index.js +2 -16
- package/dist/chip/index.js.map +1 -1
- package/dist/chip/index.mjs +2 -16
- package/dist/chip/index.mjs.map +1 -1
- package/dist/{chunk-WUMDFBEK.mjs → chunk-3CHFVHTW.mjs} +43 -54
- package/dist/{chunk-2LUXOXAL.mjs → chunk-5SQBJRWE.mjs} +3 -9
- package/dist/{chunk-C2UOOH4X.mjs → chunk-B53SP2WZ.mjs} +3 -17
- package/dist/chunk-GHGWQVTM.mjs +150 -0
- package/dist/{chunk-5S5DR7KF.mjs → chunk-I23ONEDJ.mjs} +2 -10
- package/dist/{chunk-JFWD2ICY.mjs → chunk-JT7R3L5O.mjs} +54 -62
- package/dist/{chunk-6SJUUJOV.mjs → chunk-KDGJZPWK.mjs} +295 -574
- package/dist/{chunk-AWJSHOYU.mjs → chunk-KSJGXQTE.mjs} +1 -1
- package/dist/{chunk-NMW4GM4G.mjs → chunk-SE2JMXYG.mjs} +104 -144
- package/dist/{chunk-GBLWUEYN.mjs → chunk-ULRL4WI6.mjs} +176 -256
- package/dist/{chunk-IFWYR5W2.mjs → chunk-VUELRPUL.mjs} +57 -117
- package/dist/{chunk-WL7C2A5D.mjs → chunk-WQR4XZGL.mjs} +8 -15
- package/dist/codeBlock/index.js +50 -82
- package/dist/codeBlock/index.js.map +1 -1
- package/dist/codeBlock/index.mjs +50 -82
- package/dist/codeBlock/index.mjs.map +1 -1
- package/dist/colorPicker/index.js +21 -33
- package/dist/colorPicker/index.js.map +1 -1
- package/dist/colorPicker/index.mjs +22 -37
- package/dist/colorPicker/index.mjs.map +1 -1
- package/dist/combobox/index.d.mts +1 -1
- package/dist/combobox/index.d.ts +1 -1
- package/dist/combobox/index.js +141 -223
- package/dist/combobox/index.js.map +1 -1
- package/dist/combobox/index.mjs +141 -223
- package/dist/combobox/index.mjs.map +1 -1
- package/dist/command/index.d.mts +1 -1
- package/dist/command/index.d.ts +1 -1
- package/dist/command/index.js +129 -212
- package/dist/command/index.js.map +1 -1
- package/dist/command/index.mjs +129 -212
- package/dist/command/index.mjs.map +1 -1
- package/dist/dataTable/index.js +254 -394
- package/dist/dataTable/index.js.map +1 -1
- package/dist/dataTable/index.mjs +254 -394
- package/dist/dataTable/index.mjs.map +1 -1
- package/dist/datePicker/index.js +64 -105
- package/dist/datePicker/index.js.map +1 -1
- package/dist/datePicker/index.mjs +64 -105
- package/dist/datePicker/index.mjs.map +1 -1
- package/dist/destroyableCard/index.js +8 -39
- package/dist/destroyableCard/index.js.map +1 -1
- package/dist/destroyableCard/index.mjs +8 -39
- package/dist/destroyableCard/index.mjs.map +1 -1
- package/dist/dialog/index.js +70 -122
- package/dist/dialog/index.js.map +1 -1
- package/dist/dialog/index.mjs +70 -122
- package/dist/dialog/index.mjs.map +1 -1
- package/dist/docsLayout/index.js +169 -358
- package/dist/docsLayout/index.js.map +1 -1
- package/dist/docsLayout/index.mjs +169 -358
- package/dist/docsLayout/index.mjs.map +1 -1
- package/dist/docsSidebar/index.js +9 -16
- package/dist/docsSidebar/index.js.map +1 -1
- package/dist/docsSidebar/index.mjs +9 -16
- package/dist/docsSidebar/index.mjs.map +1 -1
- package/dist/dropdownMenu/index.js +124 -164
- package/dist/dropdownMenu/index.js.map +1 -1
- package/dist/dropdownMenu/index.mjs +124 -164
- package/dist/dropdownMenu/index.mjs.map +1 -1
- package/dist/elements/index.d.mts +3 -3
- package/dist/elements/index.d.ts +3 -3
- package/dist/elements/index.js +841 -1505
- package/dist/elements/index.mjs +381 -718
- package/dist/fileDropzone/index.js +60 -159
- package/dist/fileDropzone/index.js.map +1 -1
- package/dist/fileDropzone/index.mjs +60 -159
- package/dist/fileDropzone/index.mjs.map +1 -1
- package/dist/glow/index.js +4 -16
- package/dist/glow/index.js.map +1 -1
- package/dist/glow/index.mjs +4 -16
- package/dist/glow/index.mjs.map +1 -1
- package/dist/hooks/index.d.mts +1 -5
- package/dist/hooks/index.d.ts +1 -5
- package/dist/hooks/index.js +11 -24
- package/dist/hooks/index.mjs +2 -2
- package/dist/{index-B0aJcA6d.d.ts → index-BgNycocQ.d.mts} +2 -2
- package/dist/{index-B0aJcA6d.d.mts → index-BgNycocQ.d.ts} +2 -2
- package/dist/index.css +1 -2
- package/dist/index.d.mts +6 -8
- package/dist/index.d.ts +6 -8
- package/dist/index.js +1194 -2170
- package/dist/index.mjs +1195 -2174
- package/dist/input/index.js +20 -29
- package/dist/input/index.js.map +1 -1
- package/dist/input/index.mjs +20 -29
- package/dist/input/index.mjs.map +1 -1
- package/dist/interfaceSettings/index.js +122 -163
- package/dist/interfaceSettings/index.js.map +1 -1
- package/dist/interfaceSettings/index.mjs +122 -163
- package/dist/interfaceSettings/index.mjs.map +1 -1
- package/dist/label/index.js +19 -26
- package/dist/label/index.js.map +1 -1
- package/dist/label/index.mjs +19 -26
- package/dist/label/index.mjs.map +1 -1
- package/dist/layout/index.d.mts +2 -0
- package/dist/layout/index.d.ts +2 -0
- package/dist/layout/index.js +434 -790
- package/dist/layout/index.mjs +143 -243
- package/dist/loading/index.js +30 -53
- package/dist/loading/index.js.map +1 -1
- package/dist/loading/index.mjs +30 -53
- package/dist/loading/index.mjs.map +1 -1
- package/dist/logos/index.js +66 -191
- package/dist/logos/index.js.map +1 -1
- package/dist/logos/index.mjs +66 -191
- package/dist/logos/index.mjs.map +1 -1
- package/dist/navbar/index.js +1 -4
- package/dist/navbar/index.js.map +1 -1
- package/dist/navbar/index.mjs +1 -4
- package/dist/navbar/index.mjs.map +1 -1
- package/dist/navigationMenu/index.js +14 -22
- package/dist/navigationMenu/index.js.map +1 -1
- package/dist/navigationMenu/index.mjs +14 -22
- package/dist/navigationMenu/index.mjs.map +1 -1
- package/dist/pagination/index.js +1 -5
- package/dist/pagination/index.js.map +1 -1
- package/dist/pagination/index.mjs +1 -5
- package/dist/pagination/index.mjs.map +1 -1
- package/dist/passwordInput/index.js +36 -65
- package/dist/passwordInput/index.js.map +1 -1
- package/dist/passwordInput/index.mjs +36 -65
- package/dist/passwordInput/index.mjs.map +1 -1
- package/dist/phoneInput/index.js +20 -29
- package/dist/phoneInput/index.js.map +1 -1
- package/dist/phoneInput/index.mjs +20 -29
- package/dist/phoneInput/index.mjs.map +1 -1
- package/dist/pinInput/index.js +14 -16
- package/dist/pinInput/index.js.map +1 -1
- package/dist/pinInput/index.mjs +14 -16
- package/dist/pinInput/index.mjs.map +1 -1
- package/dist/popover/index.js +14 -24
- package/dist/popover/index.js.map +1 -1
- package/dist/popover/index.mjs +14 -24
- package/dist/popover/index.mjs.map +1 -1
- package/dist/progress/index.js +19 -26
- package/dist/progress/index.js.map +1 -1
- package/dist/progress/index.mjs +19 -26
- package/dist/progress/index.mjs.map +1 -1
- package/dist/progressCircle/index.js +67 -71
- package/dist/progressCircle/index.js.map +1 -1
- package/dist/progressCircle/index.mjs +67 -71
- package/dist/progressCircle/index.mjs.map +1 -1
- package/dist/radio/index.js +122 -163
- package/dist/radio/index.js.map +1 -1
- package/dist/radio/index.mjs +122 -163
- package/dist/radio/index.mjs.map +1 -1
- package/dist/scrollArea/index.js.map +1 -1
- package/dist/scrollArea/index.mjs.map +1 -1
- package/dist/scrollIndicator/index.js +1 -4
- package/dist/scrollIndicator/index.js.map +1 -1
- package/dist/scrollIndicator/index.mjs +1 -4
- package/dist/scrollIndicator/index.mjs.map +1 -1
- package/dist/select/index.js +20 -29
- package/dist/select/index.js.map +1 -1
- package/dist/select/index.mjs +20 -29
- package/dist/select/index.mjs.map +1 -1
- package/dist/separator/index.js.map +1 -1
- package/dist/separator/index.mjs.map +1 -1
- package/dist/sheet/index.js +42 -53
- package/dist/sheet/index.js.map +1 -1
- package/dist/sheet/index.mjs +42 -53
- package/dist/sheet/index.mjs.map +1 -1
- package/dist/sidebar/index.js +66 -133
- package/dist/sidebar/index.js.map +1 -1
- package/dist/sidebar/index.mjs +66 -133
- package/dist/sidebar/index.mjs.map +1 -1
- package/dist/signature/index.js +19 -26
- package/dist/signature/index.js.map +1 -1
- package/dist/signature/index.mjs +19 -26
- package/dist/signature/index.mjs.map +1 -1
- package/dist/simpleTable/index.js +50 -81
- package/dist/simpleTable/index.js.map +1 -1
- package/dist/simpleTable/index.mjs +50 -81
- package/dist/simpleTable/index.mjs.map +1 -1
- package/dist/skeleton/index.js.map +1 -1
- package/dist/skeleton/index.mjs.map +1 -1
- package/dist/slider/index.js.map +1 -1
- package/dist/slider/index.mjs.map +1 -1
- package/dist/sonner/index.js.map +1 -1
- package/dist/sonner/index.mjs.map +1 -1
- package/dist/sortButton/index.js +50 -82
- package/dist/sortButton/index.js.map +1 -1
- package/dist/sortButton/index.mjs +50 -82
- package/dist/sortButton/index.mjs.map +1 -1
- package/dist/splitButton/index.js +214 -294
- package/dist/splitButton/index.js.map +1 -1
- package/dist/splitButton/index.mjs +214 -294
- package/dist/splitButton/index.mjs.map +1 -1
- package/dist/stats/index.js +7 -35
- package/dist/stats/index.js.map +1 -1
- package/dist/stats/index.mjs +7 -35
- package/dist/stats/index.mjs.map +1 -1
- package/dist/switch/index.js +24 -34
- package/dist/switch/index.js.map +1 -1
- package/dist/switch/index.mjs +24 -34
- package/dist/switch/index.mjs.map +1 -1
- package/dist/table/index.js +27 -29
- package/dist/table/index.js.map +1 -1
- package/dist/table/index.mjs +27 -29
- package/dist/table/index.mjs.map +1 -1
- package/dist/tabs/index.js +54 -76
- package/dist/tabs/index.js.map +1 -1
- package/dist/tabs/index.mjs +54 -76
- package/dist/tabs/index.mjs.map +1 -1
- package/dist/textarea/index.js +21 -38
- package/dist/textarea/index.js.map +1 -1
- package/dist/textarea/index.mjs +21 -38
- package/dist/textarea/index.mjs.map +1 -1
- package/dist/toast/index.js +2 -10
- package/dist/toast/index.js.map +1 -1
- package/dist/toast/index.mjs +2 -10
- package/dist/toast/index.mjs.map +1 -1
- package/dist/toaster/index.js +3 -16
- package/dist/toaster/index.js.map +1 -1
- package/dist/toaster/index.mjs +3 -16
- package/dist/toaster/index.mjs.map +1 -1
- package/dist/tooltip/index.js +19 -26
- package/dist/tooltip/index.js.map +1 -1
- package/dist/tooltip/index.mjs +19 -26
- package/dist/tooltip/index.mjs.map +1 -1
- package/package.json +12 -12
- package/dist/chunk-JP2N5WKD.mjs +0 -190
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"sources":["../../layout/sidebar/index.ts","../../layout/sidebar/Sidebar.tsx","../../util/index.ts","../../elements/chip/Chip.tsx"],"sourcesContent":["export * from \"./Sidebar\";\n","import * as React from \"react\";\n\nimport * as AccordionPrimitive from \"@radix-ui/react-accordion\";\nimport { cn } from \"@util/index\";\n\nimport { DirectionType } from \"@_types/commonTypes\";\n\nimport { Chip, ChipColors } from \"../../elements/chip\";\n\nconst Accordion = AccordionPrimitive.Root;\n\nlet triggerStyles =\n \"hawa-flex hawa-flex-1 hawa-items-center hawa-duration-75 hawa-select-none hawa-cursor-pointer hawa-rounded hawa-justify-between hawa-p-2 hawa-px-3 hawa-font-medium hawa-transition-all [&[data-state=open]>svg]:hawa--rotate-90\";\nconst AccordionItem = React.forwardRef<\n React.ElementRef<typeof AccordionPrimitive.Item>,\n React.ComponentPropsWithoutRef<typeof AccordionPrimitive.Item>\n>(({ className, ...props }, ref) => (\n <AccordionPrimitive.Item ref={ref} className={cn(className)} {...props} />\n));\nAccordionItem.displayName = \"AccordionItem\";\n\ntype AccordionTriggerProps = React.ComponentPropsWithoutRef<\n typeof AccordionPrimitive.Trigger\n> & {\n showArrow?: any;\n};\n\nconst AccordionTrigger = React.forwardRef<\n React.ElementRef<typeof AccordionPrimitive.Trigger>,\n AccordionTriggerProps\n>(({ className, showArrow, children, ...props }, ref) => (\n <AccordionPrimitive.Header className=\"flex\">\n <AccordionPrimitive.Trigger\n ref={ref}\n className={cn(triggerStyles, className)}\n {...props}\n >\n {children}\n {showArrow && (\n <svg\n aria-label=\"Chevron Right Icon\"\n stroke=\"currentColor\"\n fill=\"currentColor\"\n viewBox=\"0 0 16 16\"\n height=\"1em\"\n width=\"1em\"\n className=\"hawa-icon hawa-shrink-0 hawa-rotate-90 hawa-transition-transform hawa-duration-200\"\n >\n <path d=\"M4.646 1.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708-.708L10.293 8 4.646 2.354a.5.5 0 0 1 0-.708z\"></path>\n </svg>\n )}\n </AccordionPrimitive.Trigger>\n </AccordionPrimitive.Header>\n));\nAccordionTrigger.displayName = AccordionPrimitive.Trigger.displayName;\n\nconst AccordionContent = React.forwardRef<\n React.ElementRef<typeof AccordionPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof AccordionPrimitive.Content>\n>(({ className, children, ...props }, ref) => (\n <AccordionPrimitive.Content\n ref={ref}\n className={cn(\n \"hawa-overflow-hidden hawa-text-sm hawa-transition-all data-[state=closed]:hawa-animate-accordion-up data-[state=open]:hawa-animate-accordion-down\",\n className,\n )}\n {...props}\n >\n <div>{children}</div>\n </AccordionPrimitive.Content>\n));\nAccordionContent.displayName = AccordionPrimitive.Content.displayName;\n\nexport type AppSidebarItemProps = {\n value: string;\n slug?: string;\n label: string;\n badge?: { label: string; color?: ChipColors };\n icon?: any;\n subitems?: SubItem[];\n onClick?: (e: React.MouseEvent) => void;\n onMouseDown?: (e: React.MouseEvent) => void;\n};\ntype SubItem = {\n value: string;\n label: string;\n slug?: string;\n badge?: { label: string; color?: ChipColors };\n icon?: any;\n onMouseDown?: (e: React.MouseEvent) => void;\n onClick?: (e: React.MouseEvent) => void;\n};\ninterface SidebarGroupProps {\n title?: string;\n items: AppSidebarItemProps[];\n openedItem?: any;\n setOpenedItem?: any;\n selectedItem?: any;\n isOpen?: boolean;\n onItemClick?: (value: string[]) => void;\n onSubItemClick?: (values: string[]) => void;\n direction?: DirectionType;\n LinkComponent?: any;\n}\n\nconst SidebarGroup: React.FC<SidebarGroupProps> = ({\n title,\n items,\n selectedItem,\n openedItem,\n setOpenedItem,\n onItemClick,\n onSubItemClick,\n direction,\n isOpen,\n ...props\n}) => {\n const LinkComponent = props.LinkComponent || \"a\"; // Use the provided LinkComponent or 'a' as a fallback\n\n return (\n <div className=\"hawa-m-2\">\n {title && <h3 className=\"hawa-mb-1 hawa-font-bold\">{title}</h3>}\n <ul className=\"hawa-flex hawa-flex-col hawa-gap-2\">\n <Accordion\n value={openedItem}\n type=\"single\"\n onValueChange={(e) => {\n setOpenedItem(e);\n }}\n collapsible\n className=\"hawa-flex hawa-flex-col hawa-gap-1\"\n >\n {items.map((item, idx) => (\n <SidebarItem\n isOpen={isOpen}\n selectedItem={selectedItem}\n key={idx}\n direction={direction}\n item={item}\n onItemClick={onItemClick}\n onSubItemClick={onSubItemClick}\n LinkComponent={LinkComponent}\n />\n ))}\n </Accordion>\n </ul>\n </div>\n );\n};\nconst SidebarItem: React.FC<{\n item: AppSidebarItemProps;\n selectedItem?: any;\n direction?: DirectionType;\n onItemClick?: (value: string[]) => void;\n onSubItemClick?: (values: string[]) => void;\n isOpen?: boolean;\n LinkComponent?: any;\n}> = ({\n item,\n onItemClick,\n onSubItemClick,\n direction,\n isOpen = true,\n LinkComponent,\n ...props\n}) => {\n const getSelectedStyle = (value: string) => {\n return props.selectedItem === value\n ? \"hawa-bg-primary/90 hawa-text-primary-foreground hawa-cursor-default\"\n : \"hover:hawa-bg-primary/10\";\n };\n if (item.subitems) {\n return (\n <AccordionItem\n value={item.value}\n className=\"hawa-overflow-x-clip\"\n dir={direction}\n >\n <AccordionTrigger\n className={cn(\n \"hawa-w-full hawa-overflow-x-clip\",\n props.selectedItem === item.value\n ? \"hawa-cursor-default hawa-bg-primary hawa-text-primary-foreground\"\n : \"hawa-h-10 hover:hawa-bg-primary/10\",\n item.subitems &&\n item.subitems.some(\n (subitem) => props.selectedItem === subitem.value,\n )\n ? \"hawa-bg-primary/80 hawa-text-primary-foreground hover:hawa-bg-primary/80\"\n : \"\",\n )}\n showArrow={isOpen}\n >\n <div\n className={cn(\n \"hawa-flex hawa-h-fit hawa-w-fit hawa-flex-row hawa-items-center hawa-gap-2\",\n )}\n >\n {item.icon && item.icon}\n <span\n className={cn(\n \"hawa-transition-all hawa-flex hawa-flex-row hawa-items-center hawa-gap-2 hawa-whitespace-nowrap\",\n isOpen ? \"hawa-opacity-100\" : \"hawa-opacity-0\",\n )}\n >\n {item.label}\n {item.badge && (\n <Chip\n label={item.badge.label}\n color={item.badge.color}\n size=\"small\"\n />\n )}\n </span>\n </div>\n </AccordionTrigger>\n {item.subitems && (\n <AccordionContent className=\"hawa-mt-1 hawa-h-full hawa-rounded\">\n <div\n className={cn(\n \"hawa-flex hawa-h-full hawa-flex-col hawa-gap-2 hawa-bg-foreground/5 hawa-p-1\",\n )}\n >\n {item.subitems.map((subitem, idx) => (\n <LinkComponent\n href={subitem.slug}\n key={idx}\n onMouseDown={(e: any) => {\n if (subitem.onMouseDown) {\n subitem.onMouseDown(e);\n }\n }}\n onClick={(e: any) => {\n e.stopPropagation();\n if (subitem.onClick) {\n subitem.onClick(e);\n }\n if (onSubItemClick) {\n onSubItemClick([item.value, subitem.value]);\n }\n }}\n className={cn(\n \"hawa-flex hawa-h-full hawa-cursor-pointer hawa-flex-row hawa-items-center hawa-gap-2 hawa-overflow-x-clip hawa-whitespace-nowrap hawa-rounded hawa-p-2 hawa-transition-all\",\n // bg-foreground/10\n getSelectedStyle(subitem.value),\n )}\n >\n {subitem.icon && subitem.icon}\n {subitem.label}\n {subitem.badge && (\n <Chip\n label={subitem.badge.label}\n color={subitem.badge.color}\n size=\"small\"\n />\n )}\n </LinkComponent>\n ))}\n </div>\n </AccordionContent>\n )}\n </AccordionItem>\n );\n } else {\n return (\n <LinkComponent\n href={item.slug}\n dir={direction}\n onMouseDown={(e: React.MouseEvent) => {\n if (item.onMouseDown) {\n item.onMouseDown(e);\n }\n }}\n onClick={(e: React.MouseEvent) => {\n if (item.onClick) {\n item.onClick(e);\n }\n if (onItemClick) {\n onItemClick([item.value]);\n }\n }}\n className={cn(\n triggerStyles,\n getSelectedStyle(item.value),\n \"hawa-overflow-x-clip\",\n )}\n >\n <div className={\"hawa-flex hawa-flex-row hawa-items-center hawa-gap-2\"}>\n {item.icon && item.icon}\n <span\n className={cn(\n \"hawa-flex hawa-flex-row hawa-items-center hawa-gap-2 hawa-whitespace-nowrap hawa-transition-all\",\n isOpen ? \"hawa-opacity-100\" : \"hawa-opacity-0\",\n )}\n >\n {item.label}{\" \"}\n {item.badge && (\n <Chip\n label={item.badge.label}\n color={item.badge.color}\n size=\"small\"\n />\n )}\n </span>\n </div>\n </LinkComponent>\n );\n }\n};\nexport { SidebarGroup, SidebarItem };\n","import { clsx, type ClassValue } from \"clsx\";\nimport { twMerge } from \"tailwind-merge\";\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs));\n}\n\ntype Palette = {\n name: string;\n colors: {\n [key: number]: string;\n };\n};\ntype Rgb = {\n r: number;\n g: number;\n b: number;\n};\nfunction hexToRgb(hex: string): Rgb | null {\n const sanitizedHex = hex.replaceAll(\"##\", \"#\");\n const colorParts = /^#?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})$/i.exec(\n sanitizedHex\n );\n\n if (!colorParts) {\n return null;\n }\n\n const [, r, g, b] = colorParts;\n\n return {\n r: parseInt(r, 16),\n g: parseInt(g, 16),\n b: parseInt(b, 16)\n } as Rgb;\n}\n\nfunction rgbToHex(r: number, g: number, b: number): string {\n const toHex = (c: number) => `0${c.toString(16)}`.slice(-2);\n return `#${toHex(r)}${toHex(g)}${toHex(b)}`;\n}\n\nexport function getTextColor(color: string): \"#FFF\" | \"#333\" {\n const rgbColor = hexToRgb(color);\n\n if (!rgbColor) {\n return \"#333\";\n }\n\n const { r, g, b } = rgbColor;\n const luma = 0.2126 * r + 0.7152 * g + 0.0722 * b;\n\n return luma < 120 ? \"#FFF\" : \"#333\";\n}\n\nfunction lighten(hex: string, intensity: number): string {\n const color = hexToRgb(`#${hex}`);\n\n if (!color) {\n return \"\";\n }\n\n const r = Math.round(color.r + (255 - color.r) * intensity);\n const g = Math.round(color.g + (255 - color.g) * intensity);\n const b = Math.round(color.b + (255 - color.b) * intensity);\n\n return rgbToHex(r, g, b);\n}\n\nfunction darken(hex: string, intensity: number): string {\n const color = hexToRgb(hex);\n\n if (!color) {\n return \"\";\n }\n\n const r = Math.round(color.r * intensity);\n const g = Math.round(color.g * intensity);\n const b = Math.round(color.b * intensity);\n\n return rgbToHex(r, g, b);\n}\nconst parseColor = (color: any) => {\n if (color.startsWith(\"#\")) {\n // Convert hex to RGB\n let r = parseInt(color.slice(1, 3), 16);\n let g = parseInt(color.slice(3, 5), 16);\n let b = parseInt(color.slice(5, 7), 16);\n return [r, g, b];\n } else if (color.startsWith(\"rgb\")) {\n // Extract RGB values from rgb() format\n return color.match(/\\d+/g).map(Number);\n }\n // Default to white if format is unrecognized\n return [255, 255, 255];\n};\nexport const calculateLuminance = (color: any) => {\n const [r, g, b] = parseColor(color)?.map((c: any) => {\n c /= 255;\n return c <= 0.03928 ? c / 12.92 : ((c + 0.055) / 1.055) ** 2.4;\n });\n return 0.2126 * r + 0.7152 * g + 0.0722 * b;\n};\n\nfunction getPallette(baseColor: string): Palette {\n const name = baseColor;\n\n const response: Palette = {\n name,\n colors: {\n 500: `#${baseColor}`.replace(\"##\", \"#\")\n }\n };\n\n const intensityMap: {\n [key: number]: number;\n } = {\n 50: 0.95,\n 100: 0.9,\n 200: 0.75,\n 300: 0.6,\n 400: 0.3,\n 600: 0.9,\n 700: 0.75,\n 800: 0.6,\n 900: 0.49\n };\n\n [50, 100, 200, 300, 400].forEach((level) => {\n response.colors[level] = lighten(baseColor, intensityMap[level]);\n });\n [600, 700, 800, 900].forEach((level) => {\n response.colors[level] = darken(baseColor, intensityMap[level]);\n });\n\n return response as Palette;\n}\n\nexport { getPallette };\n\n// const hexToRgb = (hex) => {\n// let d = hex?.split(\"#\")[1];\n// var aRgbHex = d?.match(/.{1,2}/g);\n// var aRgb = [\n// parseInt(aRgbHex[0], 16),\n// parseInt(aRgbHex[1], 16),\n// parseInt(aRgbHex[2], 16)\n// ];\n// return aRgb;\n// };\n// const getTextColor = (backColor) => {\n// let rgbArray = hexToRgb(backColor);\n// if (rgbArray[0] * 0.299 + rgbArray[1] * 0.587 + rgbArray[2] * 0.114 > 186) {\n// return \"#000000\";\n// } else {\n// return \"#ffffff\";\n// }\n// };\n// const replaceAt = function (string, index, replacement) {\n// // if (replacement == \"\" || replacement == \" \") {\n// // return (\n// // string.substring(0, index) +\n// // string.substring(index + replacement.length )\n// // );\n// // }\n// const replaced = string.substring(0, index) + replacement + string.substring(index + 1)\n// return replaced\n// };\n\n// export { hexToRgb, getTextColor, replaceAt };\n","import React from \"react\";\n\nimport { cn } from \"@util/index\";\n\nimport { RadiusType } from \"@_types/commonTypes\";\n\nexport type ChipColors =\n | \"green\"\n | \"blue\"\n | \"red\"\n | \"yellow\"\n | \"orange\"\n | \"purple\"\n | \"cyan\"\n | \"hyper\"\n | \"oceanic\";\n\nexport type ChipTypes = React.HTMLAttributes<HTMLSpanElement> & {\n /** The text inside the chip */\n label: string;\n /** The small icon before the chip label */\n icon?: JSX.Element;\n /** The color of the chip, must be a tailwind color */\n color?: ChipColors;\n /** The size of the chip */\n size?: \"small\" | \"normal\" | \"large\";\n /** Enable/Disable the dot before the label of the chip */\n dot?: boolean;\n /** Red/Green dot next to the label of the chip indicating online/offline or available/unavailable */\n dotStatus?: \"available\" | \"unavailable\" | \"none\";\n radius?: RadiusType;\n};\n\nexport const Chip = React.forwardRef<HTMLSpanElement, ChipTypes>(\n (\n {\n label,\n size = \"normal\",\n icon,\n color,\n radius = \"inherit\",\n dot,\n dotStatus = \"none\",\n ...rest\n },\n ref,\n ) => {\n let defaultStyles =\n \"hawa-flex hawa-flex-row hawa-w-fit hawa-gap-1 hawa-items-center hawa-px-2.5 hawa-py-1 hawa-font-bold \";\n let radiusStyles = {\n inherit: \" hawa-rounded\",\n full: \"hawa-rounded-full\",\n none: \"hawa-rounded-none\",\n };\n let sizeStyles = {\n small:\n \"hawa-h-[15px] hawa-leading-4 hawa-px-0 hawa-py-0 hawa-text-[9px] hawa-gap-0.5 \",\n normal: \"hawa-h-fit hawa-text-xs\",\n large: \"hawa-text-base\",\n };\n let dotStyles = {\n small: \"hawa-flex hawa-h-1 hawa-w-1 hawa-rounded-full\",\n normal: \"hawa-flex hawa-h-2 hawa-w-2 hawa-rounded-full\",\n large: \"hawa-flex hawa-h-3 hawa-w-3 hawa-rounded-full\",\n };\n let dotStatusStyles = {\n none: \"hawa-bg-gray-500 dark:hawa-bg-gray-800\",\n available: \"hawa-bg-green-500\",\n unavailable: \"hawa-bg-red-500\",\n };\n let colorStyles: any = {\n green:\n \"hawa-bg-green-200 hawa-text-green-700 dark:hawa-bg-green-700 dark:hawa-text-green-200\",\n blue: \"hawa-bg-blue-200 hawa-text-blue-700 dark:hawa-bg-blue-700 dark:hawa-text-blue-100\",\n red: \"hawa-bg-red-200 hawa-text-red-700 dark:hawa-bg-red-700 dark:hawa-text-red-100\",\n yellow:\n \"hawa-bg-yellow-200 hawa-text-yellow-700 dark:hawa-bg-yellow-600 dark:hawa-text-black\",\n orange:\n \"hawa-bg-orange-200 hawa-text-orange-700 dark:hawa-bg-orange-700 dark:hawa-text-orange-100\",\n purple:\n \"hawa-bg-purple-200 hawa-text-purple-700 dark:hawa-bg-purple-700 dark:hawa-text-purple-100\",\n cyan: \"hawa-bg-cyan-200 hawa-text-cyan-700 dark:hawa-bg-cyan-700 dark:hawa-text-cyan-100\",\n hyper:\n \"hawa-text-white dark:hawa-text-black hawa-bg-gradient-to-tl hawa-from-pink-500 hawa-via-red-500 hawa-to-yellow-500 \",\n oceanic:\n \"hawa-text-white dark:hawa-text-black hawa-bg-gradient-to-bl hawa-from-green-300 hawa-via-blue-500 hawa-to-purple-600\",\n };\n if (label) {\n return (\n <span\n {...rest}\n ref={ref}\n className={cn(\n defaultStyles,\n sizeStyles[size],\n radiusStyles[radius],\n color ? colorStyles[color] : \"hawa-border hawa-bg-none\",\n rest.className,\n )}\n >\n {dot && (\n <span\n className={cn(dotStyles[size], dotStatusStyles[dotStatus])}\n ></span>\n )}\n {icon && icon}\n {label}\n </span>\n );\n } else {\n return (\n <span\n {...rest}\n ref={ref}\n className={cn(\n \"hawa-h-2 hawa-w-2 hawa-rounded-full\",\n color ? colorStyles[color] : \"hawa-border hawa-bg-none\",\n )}\n ></span>\n );\n }\n },\n);\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACAA,IAAAA,SAAuB;AAEvB,yBAAoC;;;ACFpC,kBAAsC;AACtC,4BAAwB;AAEjB,SAAS,MAAM,QAAsB;AAC1C,aAAO,mCAAQ,kBAAK,MAAM,CAAC;AAC7B;;;ACLA,mBAAkB;AAiCX,IAAM,OAAO,aAAAC,QAAM;AAAA,EACxB,CACE;AAAA,IACE;AAAA,IACA,OAAO;AAAA,IACP;AAAA,IACA;AAAA,IACA,SAAS;AAAA,IACT;AAAA,IACA,YAAY;AAAA,IACZ,GAAG;AAAA,EACL,GACA,QACG;AACH,QAAI,gBACF;AACF,QAAI,eAAe;AAAA,MACjB,SAAS;AAAA,MACT,MAAM;AAAA,MACN,MAAM;AAAA,IACR;AACA,QAAI,aAAa;AAAA,MACf,OACE;AAAA,MACF,QAAQ;AAAA,MACR,OAAO;AAAA,IACT;AACA,QAAI,YAAY;AAAA,MACd,OAAO;AAAA,MACP,QAAQ;AAAA,MACR,OAAO;AAAA,IACT;AACA,QAAI,kBAAkB;AAAA,MACpB,MAAM;AAAA,MACN,WAAW;AAAA,MACX,aAAa;AAAA,IACf;AACA,QAAI,cAAmB;AAAA,MACrB,OACE;AAAA,MACF,MAAM;AAAA,MACN,KAAK;AAAA,MACL,QACE;AAAA,MACF,QACE;AAAA,MACF,QACE;AAAA,MACF,MAAM;AAAA,MACN,OACE;AAAA,MACF,SACE;AAAA,IACJ;AACA,QAAI,OAAO;AACT,aACE,6BAAAA,QAAA;AAAA,QAAC;AAAA;AAAA,UACE,GAAG;AAAA,UACJ;AAAA,UACA,WAAW;AAAA,YACT;AAAA,YACA,WAAW,IAAI;AAAA,YACf,aAAa,MAAM;AAAA,YACnB,QAAQ,YAAY,KAAK,IAAI;AAAA,YAC7B,KAAK;AAAA,UACP;AAAA;AAAA,QAEC,OACC,6BAAAA,QAAA;AAAA,UAAC;AAAA;AAAA,YACC,WAAW,GAAG,UAAU,IAAI,GAAG,gBAAgB,SAAS,CAAC;AAAA;AAAA,QAC1D;AAAA,QAEF,QAAQ;AAAA,QACR;AAAA,MACH;AAAA,IAEJ,OAAO;AACL,aACE,6BAAAA,QAAA;AAAA,QAAC;AAAA;AAAA,UACE,GAAG;AAAA,UACJ;AAAA,UACA,WAAW;AAAA,YACT;AAAA,YACA,QAAQ,YAAY,KAAK,IAAI;AAAA,UAC/B;AAAA;AAAA,MACD;AAAA,IAEL;AAAA,EACF;AACF;;;AFjHA,IAAM,YAA+B;AAErC,IAAI,gBACF;AACF,IAAM,gBAAsB,kBAG1B,CAAC,EAAE,WAAW,GAAG,MAAM,GAAG,QAC1B,qCAAoB,yBAAnB,EAAwB,KAAU,WAAW,GAAG,SAAS,GAAI,GAAG,OAAO,CACzE;AACD,cAAc,cAAc;AAQ5B,IAAM,mBAAyB,kBAG7B,CAAC,EAAE,WAAW,WAAW,UAAU,GAAG,MAAM,GAAG,QAC/C,qCAAoB,2BAAnB,EAA0B,WAAU,UACnC;AAAA,EAAoB;AAAA,EAAnB;AAAA,IACC;AAAA,IACA,WAAW,GAAG,eAAe,SAAS;AAAA,IACrC,GAAG;AAAA;AAAA,EAEH;AAAA,EACA,aACC;AAAA,IAAC;AAAA;AAAA,MACC,cAAW;AAAA,MACX,QAAO;AAAA,MACP,MAAK;AAAA,MACL,SAAQ;AAAA,MACR,QAAO;AAAA,MACP,OAAM;AAAA,MACN,WAAU;AAAA;AAAA,IAEV,qCAAC,UAAK,GAAE,0HAAyH;AAAA,EACnI;AAEJ,CACF,CACD;AACD,iBAAiB,cAAiC,2BAAQ;AAE1D,IAAM,mBAAyB,kBAG7B,CAAC,EAAE,WAAW,UAAU,GAAG,MAAM,GAAG,QACpC;AAAA,EAAoB;AAAA,EAAnB;AAAA,IACC;AAAA,IACA,WAAW;AAAA,MACT;AAAA,MACA;AAAA,IACF;AAAA,IACC,GAAG;AAAA;AAAA,EAEJ,qCAAC,aAAK,QAAS;AACjB,CACD;AACD,iBAAiB,cAAiC,2BAAQ;AAkC1D,IAAM,eAA4C,CAAC;AAAA,EACjD;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,GAAG;AACL,MAAM;AACJ,QAAM,gBAAgB,MAAM,iBAAiB;AAE7C,SACE,qCAAC,SAAI,WAAU,cACZ,SAAS,qCAAC,QAAG,WAAU,8BAA4B,KAAM,GAC1D,qCAAC,QAAG,WAAU,wCACZ;AAAA,IAAC;AAAA;AAAA,MACC,OAAO;AAAA,MACP,MAAK;AAAA,MACL,eAAe,CAAC,MAAM;AACpB,sBAAc,CAAC;AAAA,MACjB;AAAA,MACA,aAAW;AAAA,MACX,WAAU;AAAA;AAAA,IAET,MAAM,IAAI,CAAC,MAAM,QAChB;AAAA,MAAC;AAAA;AAAA,QACC;AAAA,QACA;AAAA,QACA,KAAK;AAAA,QACL;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA;AAAA,IACF,CACD;AAAA,EACH,CACF,CACF;AAEJ;AACA,IAAM,cAQD,CAAC;AAAA,EACJ;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,SAAS;AAAA,EACT;AAAA,EACA,GAAG;AACL,MAAM;AACJ,QAAM,mBAAmB,CAAC,UAAkB;AAC1C,WAAO,MAAM,iBAAiB,QAC1B,yEACA;AAAA,EACN;AACA,MAAI,KAAK,UAAU;AACjB,WACE;AAAA,MAAC;AAAA;AAAA,QACC,OAAO,KAAK;AAAA,QACZ,WAAU;AAAA,QACV,KAAK;AAAA;AAAA,MAEL;AAAA,QAAC;AAAA;AAAA,UACC,WAAW;AAAA,YACT;AAAA,YACA,MAAM,iBAAiB,KAAK,QACxB,qEACA;AAAA,YACJ,KAAK,YACH,KAAK,SAAS;AAAA,cACZ,CAAC,YAAY,MAAM,iBAAiB,QAAQ;AAAA,YAC9C,IACE,6EACA;AAAA,UACN;AAAA,UACA,WAAW;AAAA;AAAA,QAEX;AAAA,UAAC;AAAA;AAAA,YACC,WAAW;AAAA,cACT;AAAA,YACF;AAAA;AAAA,UAEC,KAAK,QAAQ,KAAK;AAAA,UACnB;AAAA,YAAC;AAAA;AAAA,cACC,WAAW;AAAA,gBACT;AAAA,gBACA,SAAS,qBAAqB;AAAA,cAChC;AAAA;AAAA,YAEC,KAAK;AAAA,YACL,KAAK,SACJ;AAAA,cAAC;AAAA;AAAA,gBACC,OAAO,KAAK,MAAM;AAAA,gBAClB,OAAO,KAAK,MAAM;AAAA,gBAClB,MAAK;AAAA;AAAA,YACP;AAAA,UAEJ;AAAA,QACF;AAAA,MACF;AAAA,MACC,KAAK,YACJ,qCAAC,oBAAiB,WAAU,wCAC1B;AAAA,QAAC;AAAA;AAAA,UACC,WAAW;AAAA,YACT;AAAA,UACF;AAAA;AAAA,QAEC,KAAK,SAAS,IAAI,CAAC,SAAS,QAC3B;AAAA,UAAC;AAAA;AAAA,YACC,MAAM,QAAQ;AAAA,YACd,KAAK;AAAA,YACL,aAAa,CAAC,MAAW;AACvB,kBAAI,QAAQ,aAAa;AACvB,wBAAQ,YAAY,CAAC;AAAA,cACvB;AAAA,YACF;AAAA,YACA,SAAS,CAAC,MAAW;AACnB,gBAAE,gBAAgB;AAClB,kBAAI,QAAQ,SAAS;AACnB,wBAAQ,QAAQ,CAAC;AAAA,cACnB;AACA,kBAAI,gBAAgB;AAClB,+BAAe,CAAC,KAAK,OAAO,QAAQ,KAAK,CAAC;AAAA,cAC5C;AAAA,YACF;AAAA,YACA,WAAW;AAAA,cACT;AAAA;AAAA,cAEA,iBAAiB,QAAQ,KAAK;AAAA,YAChC;AAAA;AAAA,UAEC,QAAQ,QAAQ,QAAQ;AAAA,UACxB,QAAQ;AAAA,UACR,QAAQ,SACP;AAAA,YAAC;AAAA;AAAA,cACC,OAAO,QAAQ,MAAM;AAAA,cACrB,OAAO,QAAQ,MAAM;AAAA,cACrB,MAAK;AAAA;AAAA,UACP;AAAA,QAEJ,CACD;AAAA,MACH,CACF;AAAA,IAEJ;AAAA,EAEJ,OAAO;AACL,WACE;AAAA,MAAC;AAAA;AAAA,QACC,MAAM,KAAK;AAAA,QACX,KAAK;AAAA,QACL,aAAa,CAAC,MAAwB;AACpC,cAAI,KAAK,aAAa;AACpB,iBAAK,YAAY,CAAC;AAAA,UACpB;AAAA,QACF;AAAA,QACA,SAAS,CAAC,MAAwB;AAChC,cAAI,KAAK,SAAS;AAChB,iBAAK,QAAQ,CAAC;AAAA,UAChB;AACA,cAAI,aAAa;AACf,wBAAY,CAAC,KAAK,KAAK,CAAC;AAAA,UAC1B;AAAA,QACF;AAAA,QACA,WAAW;AAAA,UACT;AAAA,UACA,iBAAiB,KAAK,KAAK;AAAA,UAC3B;AAAA,QACF;AAAA;AAAA,MAEA,qCAAC,SAAI,WAAW,0DACb,KAAK,QAAQ,KAAK,MACnB;AAAA,QAAC;AAAA;AAAA,UACC,WAAW;AAAA,YACT;AAAA,YACA,SAAS,qBAAqB;AAAA,UAChC;AAAA;AAAA,QAEC,KAAK;AAAA,QAAO;AAAA,QACZ,KAAK,SACJ;AAAA,UAAC;AAAA;AAAA,YACC,OAAO,KAAK,MAAM;AAAA,YAClB,OAAO,KAAK,MAAM;AAAA,YAClB,MAAK;AAAA;AAAA,QACP;AAAA,MAEJ,CACF;AAAA,IACF;AAAA,EAEJ;AACF;","names":["React","React"]}
|
1
|
+
{"version":3,"sources":["../../layout/sidebar/index.ts","../../layout/sidebar/Sidebar.tsx","../../util/index.ts","../../elements/chip/Chip.tsx"],"sourcesContent":["export * from \"./Sidebar\";\n","import * as React from \"react\";\n\nimport * as AccordionPrimitive from \"@radix-ui/react-accordion\";\nimport { cn } from \"@util/index\";\n\nimport { DirectionType } from \"@_types/commonTypes\";\n\nimport { Chip, ChipColors } from \"../../elements/chip\";\n\nconst Accordion = AccordionPrimitive.Root;\n\nlet triggerStyles =\n \"hawa-flex hawa-flex-1 hawa-items-center hawa-duration-75 hawa-select-none hawa-cursor-pointer hawa-rounded hawa-justify-between hawa-p-2 hawa-px-3 hawa-font-medium hawa-transition-all [&[data-state=open]>svg]:hawa--rotate-90\";\nconst AccordionItem = React.forwardRef<\n React.ElementRef<typeof AccordionPrimitive.Item>,\n React.ComponentPropsWithoutRef<typeof AccordionPrimitive.Item>\n>(({ className, ...props }, ref) => (\n <AccordionPrimitive.Item ref={ref} className={cn(className)} {...props} />\n));\nAccordionItem.displayName = \"AccordionItem\";\n\ntype AccordionTriggerProps = React.ComponentPropsWithoutRef<typeof AccordionPrimitive.Trigger> & {\n showArrow?: any;\n};\n\nconst AccordionTrigger = React.forwardRef<\n React.ElementRef<typeof AccordionPrimitive.Trigger>,\n AccordionTriggerProps\n>(({ className, showArrow, children, ...props }, ref) => (\n <AccordionPrimitive.Header className=\"flex\">\n <AccordionPrimitive.Trigger ref={ref} className={cn(triggerStyles, className)} {...props}>\n {children}\n {showArrow && (\n <svg\n aria-label=\"Chevron Right Icon\"\n stroke=\"currentColor\"\n fill=\"currentColor\"\n viewBox=\"0 0 16 16\"\n height=\"1em\"\n width=\"1em\"\n className=\"hawa-icon hawa-shrink-0 hawa-rotate-90 hawa-transition-transform hawa-duration-200\"\n >\n <path d=\"M4.646 1.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708-.708L10.293 8 4.646 2.354a.5.5 0 0 1 0-.708z\"></path>\n </svg>\n )}\n </AccordionPrimitive.Trigger>\n </AccordionPrimitive.Header>\n));\nAccordionTrigger.displayName = AccordionPrimitive.Trigger.displayName;\n\nconst AccordionContent = React.forwardRef<\n React.ElementRef<typeof AccordionPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof AccordionPrimitive.Content>\n>(({ className, children, ...props }, ref) => (\n <AccordionPrimitive.Content\n ref={ref}\n className={cn(\n \"hawa-overflow-hidden hawa-text-sm hawa-transition-all data-[state=closed]:hawa-animate-accordion-up data-[state=open]:hawa-animate-accordion-down\",\n className,\n )}\n {...props}\n >\n <div>{children}</div>\n </AccordionPrimitive.Content>\n));\nAccordionContent.displayName = AccordionPrimitive.Content.displayName;\n\nexport type AppSidebarItemProps = {\n value: string;\n slug?: string;\n label: string;\n badge?: { label: string; color?: ChipColors };\n icon?: any;\n subitems?: SubItem[];\n onClick?: (e: React.MouseEvent) => void;\n onMouseDown?: (e: React.MouseEvent) => void;\n};\ntype SubItem = {\n value: string;\n label: string;\n slug?: string;\n badge?: { label: string; color?: ChipColors };\n icon?: any;\n onMouseDown?: (e: React.MouseEvent) => void;\n onClick?: (e: React.MouseEvent) => void;\n};\ninterface SidebarGroupProps {\n title?: string;\n items: AppSidebarItemProps[];\n openedItem?: any;\n setOpenedItem?: any;\n selectedItem?: any;\n isOpen?: boolean;\n onItemClick?: (value: string[]) => void;\n onSubItemClick?: (values: string[]) => void;\n direction?: DirectionType;\n LinkComponent?: any;\n}\n\nconst SidebarGroup: React.FC<SidebarGroupProps> = ({\n title,\n items,\n selectedItem,\n openedItem,\n setOpenedItem,\n onItemClick,\n onSubItemClick,\n direction,\n isOpen,\n ...props\n}) => {\n const LinkComponent = props.LinkComponent || \"a\"; // Use the provided LinkComponent or 'a' as a fallback\n\n return (\n <div className=\"hawa-m-2\">\n {title && <h3 className=\"hawa-mb-1 hawa-font-bold\">{title}</h3>}\n <ul className=\"hawa-flex hawa-flex-col hawa-gap-2\">\n <Accordion\n value={openedItem}\n type=\"single\"\n onValueChange={(e) => {\n setOpenedItem(e);\n }}\n collapsible\n className=\"hawa-flex hawa-flex-col hawa-gap-1\"\n >\n {items.map((item, idx) => (\n <SidebarItem\n isOpen={isOpen}\n selectedItem={selectedItem}\n key={idx}\n direction={direction}\n item={item}\n onItemClick={onItemClick}\n onSubItemClick={onSubItemClick}\n LinkComponent={LinkComponent}\n />\n ))}\n </Accordion>\n </ul>\n </div>\n );\n};\nconst SidebarItem: React.FC<{\n item: AppSidebarItemProps;\n selectedItem?: any;\n direction?: DirectionType;\n onItemClick?: (value: string[]) => void;\n onSubItemClick?: (values: string[]) => void;\n isOpen?: boolean;\n LinkComponent?: any;\n}> = ({ item, onItemClick, onSubItemClick, direction, isOpen = true, LinkComponent, ...props }) => {\n const getSelectedStyle = (value: string) => {\n return props.selectedItem === value\n ? \"hawa-bg-primary/90 hawa-text-primary-foreground hawa-cursor-default\"\n : \"hover:hawa-bg-primary/10\";\n };\n if (item.subitems) {\n return (\n <AccordionItem value={item.value} className=\"hawa-overflow-x-clip\" dir={direction}>\n <AccordionTrigger\n className={cn(\n \"hawa-w-full hawa-overflow-x-clip\",\n props.selectedItem === item.value\n ? \"hawa-cursor-default hawa-bg-primary hawa-text-primary-foreground\"\n : \"hawa-h-10 hover:hawa-bg-primary/10\",\n item.subitems && item.subitems.some((subitem) => props.selectedItem === subitem.value)\n ? \"hawa-bg-primary/80 hawa-text-primary-foreground hover:hawa-bg-primary/80\"\n : \"\",\n )}\n showArrow={isOpen}\n >\n <div\n className={cn(\n \"hawa-flex hawa-h-fit hawa-w-fit hawa-flex-row hawa-items-center hawa-gap-2\",\n )}\n >\n {item.icon && item.icon}\n <span\n className={cn(\n \"hawa-transition-all hawa-flex hawa-flex-row hawa-items-center hawa-gap-2 hawa-whitespace-nowrap\",\n isOpen ? \"hawa-opacity-100\" : \"hawa-opacity-0\",\n )}\n >\n {item.label}\n {item.badge && (\n <Chip label={item.badge.label} color={item.badge.color} size=\"small\" />\n )}\n </span>\n </div>\n </AccordionTrigger>\n {item.subitems && (\n <AccordionContent className=\"hawa-mt-1 hawa-h-full hawa-rounded\">\n <div\n className={cn(\n \"hawa-flex hawa-h-full hawa-flex-col hawa-gap-2 hawa-bg-foreground/5 hawa-p-1\",\n )}\n >\n {item.subitems.map((subitem, idx) => (\n <LinkComponent\n href={subitem.slug}\n key={idx}\n onMouseDown={(e: any) => {\n if (subitem.onMouseDown) {\n subitem.onMouseDown(e);\n }\n }}\n onClick={(e: any) => {\n e.stopPropagation();\n if (subitem.onClick) {\n subitem.onClick(e);\n }\n if (onSubItemClick) {\n onSubItemClick([item.value, subitem.value]);\n }\n }}\n className={cn(\n \"hawa-flex hawa-h-full hawa-cursor-pointer hawa-flex-row hawa-items-center hawa-gap-2 hawa-overflow-x-clip hawa-whitespace-nowrap hawa-rounded hawa-p-2 hawa-transition-all\",\n // bg-foreground/10\n getSelectedStyle(subitem.value),\n )}\n >\n {subitem.icon && subitem.icon}\n {subitem.label}\n {subitem.badge && (\n <Chip label={subitem.badge.label} color={subitem.badge.color} size=\"small\" />\n )}\n </LinkComponent>\n ))}\n </div>\n </AccordionContent>\n )}\n </AccordionItem>\n );\n } else {\n return (\n <LinkComponent\n href={item.slug}\n dir={direction}\n onMouseDown={(e: React.MouseEvent) => {\n if (item.onMouseDown) {\n item.onMouseDown(e);\n }\n }}\n onClick={(e: React.MouseEvent) => {\n if (item.onClick) {\n item.onClick(e);\n }\n if (onItemClick) {\n onItemClick([item.value]);\n }\n }}\n className={cn(triggerStyles, getSelectedStyle(item.value), \"hawa-overflow-x-clip\")}\n >\n <div className={\"hawa-flex hawa-flex-row hawa-items-center hawa-gap-2\"}>\n {item.icon && item.icon}\n <span\n className={cn(\n \"hawa-flex hawa-flex-row hawa-items-center hawa-gap-2 hawa-whitespace-nowrap hawa-transition-all\",\n isOpen ? \"hawa-opacity-100\" : \"hawa-opacity-0\",\n )}\n >\n {item.label}{\" \"}\n {item.badge && <Chip label={item.badge.label} color={item.badge.color} size=\"small\" />}\n </span>\n </div>\n </LinkComponent>\n );\n }\n};\nexport { SidebarGroup, SidebarItem };\n","import { clsx, type ClassValue } from \"clsx\";\nimport { twMerge } from \"tailwind-merge\";\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs));\n}\n\ntype Palette = {\n name: string;\n colors: {\n [key: number]: string;\n };\n};\ntype Rgb = {\n r: number;\n g: number;\n b: number;\n};\nfunction hexToRgb(hex: string): Rgb | null {\n const sanitizedHex = hex.replaceAll(\"##\", \"#\");\n const colorParts = /^#?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})$/i.exec(sanitizedHex);\n\n if (!colorParts) {\n return null;\n }\n\n const [, r, g, b] = colorParts;\n\n return {\n r: parseInt(r, 16),\n g: parseInt(g, 16),\n b: parseInt(b, 16),\n } as Rgb;\n}\n\nfunction rgbToHex(r: number, g: number, b: number): string {\n const toHex = (c: number) => `0${c.toString(16)}`.slice(-2);\n return `#${toHex(r)}${toHex(g)}${toHex(b)}`;\n}\n\nexport function getTextColor(color: string): \"#FFF\" | \"#333\" {\n const rgbColor = hexToRgb(color);\n\n if (!rgbColor) {\n return \"#333\";\n }\n\n const { r, g, b } = rgbColor;\n const luma = 0.2126 * r + 0.7152 * g + 0.0722 * b;\n\n return luma < 120 ? \"#FFF\" : \"#333\";\n}\n\nfunction lighten(hex: string, intensity: number): string {\n const color = hexToRgb(`#${hex}`);\n\n if (!color) {\n return \"\";\n }\n\n const r = Math.round(color.r + (255 - color.r) * intensity);\n const g = Math.round(color.g + (255 - color.g) * intensity);\n const b = Math.round(color.b + (255 - color.b) * intensity);\n\n return rgbToHex(r, g, b);\n}\n\nfunction darken(hex: string, intensity: number): string {\n const color = hexToRgb(hex);\n\n if (!color) {\n return \"\";\n }\n\n const r = Math.round(color.r * intensity);\n const g = Math.round(color.g * intensity);\n const b = Math.round(color.b * intensity);\n\n return rgbToHex(r, g, b);\n}\nconst parseColor = (color: any) => {\n if (color.startsWith(\"#\")) {\n // Convert hex to RGB\n let r = parseInt(color.slice(1, 3), 16);\n let g = parseInt(color.slice(3, 5), 16);\n let b = parseInt(color.slice(5, 7), 16);\n return [r, g, b];\n } else if (color.startsWith(\"rgb\")) {\n // Extract RGB values from rgb() format\n return color.match(/\\d+/g).map(Number);\n }\n // Default to white if format is unrecognized\n return [255, 255, 255];\n};\nexport const calculateLuminance = (color: any) => {\n const [r, g, b] = parseColor(color)?.map((c: any) => {\n c /= 255;\n return c <= 0.03928 ? c / 12.92 : ((c + 0.055) / 1.055) ** 2.4;\n });\n return 0.2126 * r + 0.7152 * g + 0.0722 * b;\n};\n\nfunction getPallette(baseColor: string): Palette {\n const name = baseColor;\n\n const response: Palette = {\n name,\n colors: {\n 500: `#${baseColor}`.replace(\"##\", \"#\"),\n },\n };\n\n const intensityMap: {\n [key: number]: number;\n } = {\n 50: 0.95,\n 100: 0.9,\n 200: 0.75,\n 300: 0.6,\n 400: 0.3,\n 600: 0.9,\n 700: 0.75,\n 800: 0.6,\n 900: 0.49,\n };\n\n [50, 100, 200, 300, 400].forEach((level) => {\n response.colors[level] = lighten(baseColor, intensityMap[level]);\n });\n [600, 700, 800, 900].forEach((level) => {\n response.colors[level] = darken(baseColor, intensityMap[level]);\n });\n\n return response as Palette;\n}\n\nexport { getPallette };\n\n// const hexToRgb = (hex) => {\n// let d = hex?.split(\"#\")[1];\n// var aRgbHex = d?.match(/.{1,2}/g);\n// var aRgb = [\n// parseInt(aRgbHex[0], 16),\n// parseInt(aRgbHex[1], 16),\n// parseInt(aRgbHex[2], 16)\n// ];\n// return aRgb;\n// };\n// const getTextColor = (backColor) => {\n// let rgbArray = hexToRgb(backColor);\n// if (rgbArray[0] * 0.299 + rgbArray[1] * 0.587 + rgbArray[2] * 0.114 > 186) {\n// return \"#000000\";\n// } else {\n// return \"#ffffff\";\n// }\n// };\n// const replaceAt = function (string, index, replacement) {\n// // if (replacement == \"\" || replacement == \" \") {\n// // return (\n// // string.substring(0, index) +\n// // string.substring(index + replacement.length )\n// // );\n// // }\n// const replaced = string.substring(0, index) + replacement + string.substring(index + 1)\n// return replaced\n// };\n\n// export { hexToRgb, getTextColor, replaceAt };\n","import React from \"react\";\n\nimport { cn } from \"@util/index\";\n\nimport { RadiusType } from \"@_types/commonTypes\";\n\nexport type ChipColors =\n | \"green\"\n | \"blue\"\n | \"red\"\n | \"yellow\"\n | \"orange\"\n | \"purple\"\n | \"cyan\"\n | \"hyper\"\n | \"oceanic\";\n\nexport type ChipTypes = React.HTMLAttributes<HTMLSpanElement> & {\n /** The text inside the chip */\n label: string;\n /** The small icon before the chip label */\n icon?: JSX.Element;\n /** The color of the chip, must be a tailwind color */\n color?: ChipColors;\n /** The size of the chip */\n size?: \"small\" | \"normal\" | \"large\";\n /** Enable/Disable the dot before the label of the chip */\n dot?: boolean;\n /** Red/Green dot next to the label of the chip indicating online/offline or available/unavailable */\n dotStatus?: \"available\" | \"unavailable\" | \"none\";\n radius?: RadiusType;\n};\n\nexport const Chip = React.forwardRef<HTMLSpanElement, ChipTypes>(\n (\n { label, size = \"normal\", icon, color, radius = \"inherit\", dot, dotStatus = \"none\", ...rest },\n ref,\n ) => {\n let defaultStyles =\n \"hawa-flex hawa-flex-row hawa-w-fit hawa-gap-1 hawa-items-center hawa-px-2.5 hawa-py-1 hawa-font-bold \";\n let radiusStyles = {\n inherit: \" hawa-rounded\",\n full: \"hawa-rounded-full\",\n none: \"hawa-rounded-none\",\n };\n let sizeStyles = {\n small: \"hawa-h-[15px] hawa-leading-4 hawa-px-0 hawa-py-0 hawa-text-[9px] hawa-gap-0.5 \",\n normal: \"hawa-h-fit hawa-text-xs\",\n large: \"hawa-text-base\",\n };\n let dotStyles = {\n small: \"hawa-flex hawa-h-1 hawa-w-1 hawa-rounded-full\",\n normal: \"hawa-flex hawa-h-2 hawa-w-2 hawa-rounded-full\",\n large: \"hawa-flex hawa-h-3 hawa-w-3 hawa-rounded-full\",\n };\n let dotStatusStyles = {\n none: \"hawa-bg-gray-500 dark:hawa-bg-gray-800\",\n available: \"hawa-bg-green-500\",\n unavailable: \"hawa-bg-red-500\",\n };\n let colorStyles: any = {\n green:\n \"hawa-bg-green-200 hawa-text-green-700 dark:hawa-bg-green-700 dark:hawa-text-green-200\",\n blue: \"hawa-bg-blue-200 hawa-text-blue-700 dark:hawa-bg-blue-700 dark:hawa-text-blue-100\",\n red: \"hawa-bg-red-200 hawa-text-red-700 dark:hawa-bg-red-700 dark:hawa-text-red-100\",\n yellow:\n \"hawa-bg-yellow-200 hawa-text-yellow-700 dark:hawa-bg-yellow-600 dark:hawa-text-black\",\n orange:\n \"hawa-bg-orange-200 hawa-text-orange-700 dark:hawa-bg-orange-700 dark:hawa-text-orange-100\",\n purple:\n \"hawa-bg-purple-200 hawa-text-purple-700 dark:hawa-bg-purple-700 dark:hawa-text-purple-100\",\n cyan: \"hawa-bg-cyan-200 hawa-text-cyan-700 dark:hawa-bg-cyan-700 dark:hawa-text-cyan-100\",\n hyper:\n \"hawa-text-white dark:hawa-text-black hawa-bg-gradient-to-tl hawa-from-pink-500 hawa-via-red-500 hawa-to-yellow-500 \",\n oceanic:\n \"hawa-text-white dark:hawa-text-black hawa-bg-gradient-to-bl hawa-from-green-300 hawa-via-blue-500 hawa-to-purple-600\",\n };\n if (label) {\n return (\n <span\n {...rest}\n ref={ref}\n className={cn(\n defaultStyles,\n sizeStyles[size],\n radiusStyles[radius],\n color ? colorStyles[color] : \"hawa-border hawa-bg-none\",\n rest.className,\n )}\n >\n {dot && <span className={cn(dotStyles[size], dotStatusStyles[dotStatus])}></span>}\n {icon && icon}\n {label}\n </span>\n );\n } else {\n return (\n <span\n {...rest}\n ref={ref}\n className={cn(\n \"hawa-h-2 hawa-w-2 hawa-rounded-full\",\n color ? colorStyles[color] : \"hawa-border hawa-bg-none\",\n )}\n ></span>\n );\n }\n },\n);\n"],"mappings":"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","names":["React","React"]}
|
package/dist/sidebar/index.mjs
CHANGED
@@ -14,16 +14,7 @@ function cn(...inputs) {
|
|
14
14
|
// elements/chip/Chip.tsx
|
15
15
|
import React from "react";
|
16
16
|
var Chip = React.forwardRef(
|
17
|
-
({
|
18
|
-
label,
|
19
|
-
size = "normal",
|
20
|
-
icon,
|
21
|
-
color,
|
22
|
-
radius = "inherit",
|
23
|
-
dot,
|
24
|
-
dotStatus = "none",
|
25
|
-
...rest
|
26
|
-
}, ref) => {
|
17
|
+
({ label, size = "normal", icon, color, radius = "inherit", dot, dotStatus = "none", ...rest }, ref) => {
|
27
18
|
let defaultStyles = "hawa-flex hawa-flex-row hawa-w-fit hawa-gap-1 hawa-items-center hawa-px-2.5 hawa-py-1 hawa-font-bold ";
|
28
19
|
let radiusStyles = {
|
29
20
|
inherit: " hawa-rounded",
|
@@ -70,12 +61,7 @@ var Chip = React.forwardRef(
|
|
70
61
|
rest.className
|
71
62
|
)
|
72
63
|
},
|
73
|
-
dot && /* @__PURE__ */ React.createElement(
|
74
|
-
"span",
|
75
|
-
{
|
76
|
-
className: cn(dotStyles[size], dotStatusStyles[dotStatus])
|
77
|
-
}
|
78
|
-
),
|
64
|
+
dot && /* @__PURE__ */ React.createElement("span", { className: cn(dotStyles[size], dotStatusStyles[dotStatus]) }),
|
79
65
|
icon && icon,
|
80
66
|
label
|
81
67
|
);
|
@@ -100,28 +86,19 @@ var Accordion = AccordionPrimitive.Root;
|
|
100
86
|
var triggerStyles = "hawa-flex hawa-flex-1 hawa-items-center hawa-duration-75 hawa-select-none hawa-cursor-pointer hawa-rounded hawa-justify-between hawa-p-2 hawa-px-3 hawa-font-medium hawa-transition-all [&[data-state=open]>svg]:hawa--rotate-90";
|
101
87
|
var AccordionItem = React2.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ React2.createElement(AccordionPrimitive.Item, { ref, className: cn(className), ...props }));
|
102
88
|
AccordionItem.displayName = "AccordionItem";
|
103
|
-
var AccordionTrigger = React2.forwardRef(({ className, showArrow, children, ...props }, ref) => /* @__PURE__ */ React2.createElement(AccordionPrimitive.Header, { className: "flex" }, /* @__PURE__ */ React2.createElement(
|
104
|
-
|
89
|
+
var AccordionTrigger = React2.forwardRef(({ className, showArrow, children, ...props }, ref) => /* @__PURE__ */ React2.createElement(AccordionPrimitive.Header, { className: "flex" }, /* @__PURE__ */ React2.createElement(AccordionPrimitive.Trigger, { ref, className: cn(triggerStyles, className), ...props }, children, showArrow && /* @__PURE__ */ React2.createElement(
|
90
|
+
"svg",
|
105
91
|
{
|
106
|
-
|
107
|
-
|
108
|
-
|
92
|
+
"aria-label": "Chevron Right Icon",
|
93
|
+
stroke: "currentColor",
|
94
|
+
fill: "currentColor",
|
95
|
+
viewBox: "0 0 16 16",
|
96
|
+
height: "1em",
|
97
|
+
width: "1em",
|
98
|
+
className: "hawa-icon hawa-shrink-0 hawa-rotate-90 hawa-transition-transform hawa-duration-200"
|
109
99
|
},
|
110
|
-
|
111
|
-
|
112
|
-
"svg",
|
113
|
-
{
|
114
|
-
"aria-label": "Chevron Right Icon",
|
115
|
-
stroke: "currentColor",
|
116
|
-
fill: "currentColor",
|
117
|
-
viewBox: "0 0 16 16",
|
118
|
-
height: "1em",
|
119
|
-
width: "1em",
|
120
|
-
className: "hawa-icon hawa-shrink-0 hawa-rotate-90 hawa-transition-transform hawa-duration-200"
|
121
|
-
},
|
122
|
-
/* @__PURE__ */ React2.createElement("path", { d: "M4.646 1.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708-.708L10.293 8 4.646 2.354a.5.5 0 0 1 0-.708z" })
|
123
|
-
)
|
124
|
-
)));
|
100
|
+
/* @__PURE__ */ React2.createElement("path", { d: "M4.646 1.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708-.708L10.293 8 4.646 2.354a.5.5 0 0 1 0-.708z" })
|
101
|
+
))));
|
125
102
|
AccordionTrigger.displayName = AccordionPrimitive.Trigger.displayName;
|
126
103
|
var AccordionContent = React2.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ React2.createElement(
|
127
104
|
AccordionPrimitive.Content,
|
@@ -175,111 +152,78 @@ var SidebarGroup = ({
|
|
175
152
|
))
|
176
153
|
)));
|
177
154
|
};
|
178
|
-
var SidebarItem = ({
|
179
|
-
item,
|
180
|
-
onItemClick,
|
181
|
-
onSubItemClick,
|
182
|
-
direction,
|
183
|
-
isOpen = true,
|
184
|
-
LinkComponent,
|
185
|
-
...props
|
186
|
-
}) => {
|
155
|
+
var SidebarItem = ({ item, onItemClick, onSubItemClick, direction, isOpen = true, LinkComponent, ...props }) => {
|
187
156
|
const getSelectedStyle = (value) => {
|
188
157
|
return props.selectedItem === value ? "hawa-bg-primary/90 hawa-text-primary-foreground hawa-cursor-default" : "hover:hawa-bg-primary/10";
|
189
158
|
};
|
190
159
|
if (item.subitems) {
|
191
|
-
return /* @__PURE__ */ React2.createElement(
|
192
|
-
|
160
|
+
return /* @__PURE__ */ React2.createElement(AccordionItem, { value: item.value, className: "hawa-overflow-x-clip", dir: direction }, /* @__PURE__ */ React2.createElement(
|
161
|
+
AccordionTrigger,
|
193
162
|
{
|
194
|
-
|
195
|
-
|
196
|
-
|
163
|
+
className: cn(
|
164
|
+
"hawa-w-full hawa-overflow-x-clip",
|
165
|
+
props.selectedItem === item.value ? "hawa-cursor-default hawa-bg-primary hawa-text-primary-foreground" : "hawa-h-10 hover:hawa-bg-primary/10",
|
166
|
+
item.subitems && item.subitems.some((subitem) => props.selectedItem === subitem.value) ? "hawa-bg-primary/80 hawa-text-primary-foreground hover:hawa-bg-primary/80" : ""
|
167
|
+
),
|
168
|
+
showArrow: isOpen
|
197
169
|
},
|
198
170
|
/* @__PURE__ */ React2.createElement(
|
199
|
-
|
171
|
+
"div",
|
200
172
|
{
|
201
173
|
className: cn(
|
202
|
-
"hawa-w-
|
203
|
-
|
204
|
-
item.subitems && item.subitems.some(
|
205
|
-
(subitem) => props.selectedItem === subitem.value
|
206
|
-
) ? "hawa-bg-primary/80 hawa-text-primary-foreground hover:hawa-bg-primary/80" : ""
|
207
|
-
),
|
208
|
-
showArrow: isOpen
|
174
|
+
"hawa-flex hawa-h-fit hawa-w-fit hawa-flex-row hawa-items-center hawa-gap-2"
|
175
|
+
)
|
209
176
|
},
|
177
|
+
item.icon && item.icon,
|
210
178
|
/* @__PURE__ */ React2.createElement(
|
211
|
-
"
|
179
|
+
"span",
|
212
180
|
{
|
213
181
|
className: cn(
|
214
|
-
"hawa-
|
182
|
+
"hawa-transition-all hawa-flex hawa-flex-row hawa-items-center hawa-gap-2 hawa-whitespace-nowrap",
|
183
|
+
isOpen ? "hawa-opacity-100" : "hawa-opacity-0"
|
215
184
|
)
|
216
185
|
},
|
217
|
-
item.
|
218
|
-
/* @__PURE__ */ React2.createElement(
|
219
|
-
"span",
|
220
|
-
{
|
221
|
-
className: cn(
|
222
|
-
"hawa-transition-all hawa-flex hawa-flex-row hawa-items-center hawa-gap-2 hawa-whitespace-nowrap",
|
223
|
-
isOpen ? "hawa-opacity-100" : "hawa-opacity-0"
|
224
|
-
)
|
225
|
-
},
|
226
|
-
item.label,
|
227
|
-
item.badge && /* @__PURE__ */ React2.createElement(
|
228
|
-
Chip,
|
229
|
-
{
|
230
|
-
label: item.badge.label,
|
231
|
-
color: item.badge.color,
|
232
|
-
size: "small"
|
233
|
-
}
|
234
|
-
)
|
235
|
-
)
|
186
|
+
item.label,
|
187
|
+
item.badge && /* @__PURE__ */ React2.createElement(Chip, { label: item.badge.label, color: item.badge.color, size: "small" })
|
236
188
|
)
|
237
|
-
)
|
238
|
-
|
239
|
-
|
189
|
+
)
|
190
|
+
), item.subitems && /* @__PURE__ */ React2.createElement(AccordionContent, { className: "hawa-mt-1 hawa-h-full hawa-rounded" }, /* @__PURE__ */ React2.createElement(
|
191
|
+
"div",
|
192
|
+
{
|
193
|
+
className: cn(
|
194
|
+
"hawa-flex hawa-h-full hawa-flex-col hawa-gap-2 hawa-bg-foreground/5 hawa-p-1"
|
195
|
+
)
|
196
|
+
},
|
197
|
+
item.subitems.map((subitem, idx) => /* @__PURE__ */ React2.createElement(
|
198
|
+
LinkComponent,
|
240
199
|
{
|
241
|
-
|
242
|
-
|
243
|
-
)
|
244
|
-
|
245
|
-
|
246
|
-
|
247
|
-
{
|
248
|
-
href: subitem.slug,
|
249
|
-
key: idx,
|
250
|
-
onMouseDown: (e) => {
|
251
|
-
if (subitem.onMouseDown) {
|
252
|
-
subitem.onMouseDown(e);
|
253
|
-
}
|
254
|
-
},
|
255
|
-
onClick: (e) => {
|
256
|
-
e.stopPropagation();
|
257
|
-
if (subitem.onClick) {
|
258
|
-
subitem.onClick(e);
|
259
|
-
}
|
260
|
-
if (onSubItemClick) {
|
261
|
-
onSubItemClick([item.value, subitem.value]);
|
262
|
-
}
|
263
|
-
},
|
264
|
-
className: cn(
|
265
|
-
"hawa-flex hawa-h-full hawa-cursor-pointer hawa-flex-row hawa-items-center hawa-gap-2 hawa-overflow-x-clip hawa-whitespace-nowrap hawa-rounded hawa-p-2 hawa-transition-all",
|
266
|
-
// bg-foreground/10
|
267
|
-
getSelectedStyle(subitem.value)
|
268
|
-
)
|
200
|
+
href: subitem.slug,
|
201
|
+
key: idx,
|
202
|
+
onMouseDown: (e) => {
|
203
|
+
if (subitem.onMouseDown) {
|
204
|
+
subitem.onMouseDown(e);
|
205
|
+
}
|
269
206
|
},
|
270
|
-
|
271
|
-
|
272
|
-
|
273
|
-
|
274
|
-
{
|
275
|
-
label: subitem.badge.label,
|
276
|
-
color: subitem.badge.color,
|
277
|
-
size: "small"
|
207
|
+
onClick: (e) => {
|
208
|
+
e.stopPropagation();
|
209
|
+
if (subitem.onClick) {
|
210
|
+
subitem.onClick(e);
|
278
211
|
}
|
212
|
+
if (onSubItemClick) {
|
213
|
+
onSubItemClick([item.value, subitem.value]);
|
214
|
+
}
|
215
|
+
},
|
216
|
+
className: cn(
|
217
|
+
"hawa-flex hawa-h-full hawa-cursor-pointer hawa-flex-row hawa-items-center hawa-gap-2 hawa-overflow-x-clip hawa-whitespace-nowrap hawa-rounded hawa-p-2 hawa-transition-all",
|
218
|
+
// bg-foreground/10
|
219
|
+
getSelectedStyle(subitem.value)
|
279
220
|
)
|
280
|
-
|
221
|
+
},
|
222
|
+
subitem.icon && subitem.icon,
|
223
|
+
subitem.label,
|
224
|
+
subitem.badge && /* @__PURE__ */ React2.createElement(Chip, { label: subitem.badge.label, color: subitem.badge.color, size: "small" })
|
281
225
|
))
|
282
|
-
);
|
226
|
+
)));
|
283
227
|
} else {
|
284
228
|
return /* @__PURE__ */ React2.createElement(
|
285
229
|
LinkComponent,
|
@@ -299,11 +243,7 @@ var SidebarItem = ({
|
|
299
243
|
onItemClick([item.value]);
|
300
244
|
}
|
301
245
|
},
|
302
|
-
className: cn(
|
303
|
-
triggerStyles,
|
304
|
-
getSelectedStyle(item.value),
|
305
|
-
"hawa-overflow-x-clip"
|
306
|
-
)
|
246
|
+
className: cn(triggerStyles, getSelectedStyle(item.value), "hawa-overflow-x-clip")
|
307
247
|
},
|
308
248
|
/* @__PURE__ */ React2.createElement("div", { className: "hawa-flex hawa-flex-row hawa-items-center hawa-gap-2" }, item.icon && item.icon, /* @__PURE__ */ React2.createElement(
|
309
249
|
"span",
|
@@ -315,14 +255,7 @@ var SidebarItem = ({
|
|
315
255
|
},
|
316
256
|
item.label,
|
317
257
|
" ",
|
318
|
-
item.badge && /* @__PURE__ */ React2.createElement(
|
319
|
-
Chip,
|
320
|
-
{
|
321
|
-
label: item.badge.label,
|
322
|
-
color: item.badge.color,
|
323
|
-
size: "small"
|
324
|
-
}
|
325
|
-
)
|
258
|
+
item.badge && /* @__PURE__ */ React2.createElement(Chip, { label: item.badge.label, color: item.badge.color, size: "small" })
|
326
259
|
))
|
327
260
|
);
|
328
261
|
}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"sources":["../../layout/sidebar/Sidebar.tsx","../../util/index.ts","../../elements/chip/Chip.tsx"],"sourcesContent":["import * as React from \"react\";\n\nimport * as AccordionPrimitive from \"@radix-ui/react-accordion\";\nimport { cn } from \"@util/index\";\n\nimport { DirectionType } from \"@_types/commonTypes\";\n\nimport { Chip, ChipColors } from \"../../elements/chip\";\n\nconst Accordion = AccordionPrimitive.Root;\n\nlet triggerStyles =\n \"hawa-flex hawa-flex-1 hawa-items-center hawa-duration-75 hawa-select-none hawa-cursor-pointer hawa-rounded hawa-justify-between hawa-p-2 hawa-px-3 hawa-font-medium hawa-transition-all [&[data-state=open]>svg]:hawa--rotate-90\";\nconst AccordionItem = React.forwardRef<\n React.ElementRef<typeof AccordionPrimitive.Item>,\n React.ComponentPropsWithoutRef<typeof AccordionPrimitive.Item>\n>(({ className, ...props }, ref) => (\n <AccordionPrimitive.Item ref={ref} className={cn(className)} {...props} />\n));\nAccordionItem.displayName = \"AccordionItem\";\n\ntype AccordionTriggerProps = React.ComponentPropsWithoutRef<\n typeof AccordionPrimitive.Trigger\n> & {\n showArrow?: any;\n};\n\nconst AccordionTrigger = React.forwardRef<\n React.ElementRef<typeof AccordionPrimitive.Trigger>,\n AccordionTriggerProps\n>(({ className, showArrow, children, ...props }, ref) => (\n <AccordionPrimitive.Header className=\"flex\">\n <AccordionPrimitive.Trigger\n ref={ref}\n className={cn(triggerStyles, className)}\n {...props}\n >\n {children}\n {showArrow && (\n <svg\n aria-label=\"Chevron Right Icon\"\n stroke=\"currentColor\"\n fill=\"currentColor\"\n viewBox=\"0 0 16 16\"\n height=\"1em\"\n width=\"1em\"\n className=\"hawa-icon hawa-shrink-0 hawa-rotate-90 hawa-transition-transform hawa-duration-200\"\n >\n <path d=\"M4.646 1.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708-.708L10.293 8 4.646 2.354a.5.5 0 0 1 0-.708z\"></path>\n </svg>\n )}\n </AccordionPrimitive.Trigger>\n </AccordionPrimitive.Header>\n));\nAccordionTrigger.displayName = AccordionPrimitive.Trigger.displayName;\n\nconst AccordionContent = React.forwardRef<\n React.ElementRef<typeof AccordionPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof AccordionPrimitive.Content>\n>(({ className, children, ...props }, ref) => (\n <AccordionPrimitive.Content\n ref={ref}\n className={cn(\n \"hawa-overflow-hidden hawa-text-sm hawa-transition-all data-[state=closed]:hawa-animate-accordion-up data-[state=open]:hawa-animate-accordion-down\",\n className,\n )}\n {...props}\n >\n <div>{children}</div>\n </AccordionPrimitive.Content>\n));\nAccordionContent.displayName = AccordionPrimitive.Content.displayName;\n\nexport type AppSidebarItemProps = {\n value: string;\n slug?: string;\n label: string;\n badge?: { label: string; color?: ChipColors };\n icon?: any;\n subitems?: SubItem[];\n onClick?: (e: React.MouseEvent) => void;\n onMouseDown?: (e: React.MouseEvent) => void;\n};\ntype SubItem = {\n value: string;\n label: string;\n slug?: string;\n badge?: { label: string; color?: ChipColors };\n icon?: any;\n onMouseDown?: (e: React.MouseEvent) => void;\n onClick?: (e: React.MouseEvent) => void;\n};\ninterface SidebarGroupProps {\n title?: string;\n items: AppSidebarItemProps[];\n openedItem?: any;\n setOpenedItem?: any;\n selectedItem?: any;\n isOpen?: boolean;\n onItemClick?: (value: string[]) => void;\n onSubItemClick?: (values: string[]) => void;\n direction?: DirectionType;\n LinkComponent?: any;\n}\n\nconst SidebarGroup: React.FC<SidebarGroupProps> = ({\n title,\n items,\n selectedItem,\n openedItem,\n setOpenedItem,\n onItemClick,\n onSubItemClick,\n direction,\n isOpen,\n ...props\n}) => {\n const LinkComponent = props.LinkComponent || \"a\"; // Use the provided LinkComponent or 'a' as a fallback\n\n return (\n <div className=\"hawa-m-2\">\n {title && <h3 className=\"hawa-mb-1 hawa-font-bold\">{title}</h3>}\n <ul className=\"hawa-flex hawa-flex-col hawa-gap-2\">\n <Accordion\n value={openedItem}\n type=\"single\"\n onValueChange={(e) => {\n setOpenedItem(e);\n }}\n collapsible\n className=\"hawa-flex hawa-flex-col hawa-gap-1\"\n >\n {items.map((item, idx) => (\n <SidebarItem\n isOpen={isOpen}\n selectedItem={selectedItem}\n key={idx}\n direction={direction}\n item={item}\n onItemClick={onItemClick}\n onSubItemClick={onSubItemClick}\n LinkComponent={LinkComponent}\n />\n ))}\n </Accordion>\n </ul>\n </div>\n );\n};\nconst SidebarItem: React.FC<{\n item: AppSidebarItemProps;\n selectedItem?: any;\n direction?: DirectionType;\n onItemClick?: (value: string[]) => void;\n onSubItemClick?: (values: string[]) => void;\n isOpen?: boolean;\n LinkComponent?: any;\n}> = ({\n item,\n onItemClick,\n onSubItemClick,\n direction,\n isOpen = true,\n LinkComponent,\n ...props\n}) => {\n const getSelectedStyle = (value: string) => {\n return props.selectedItem === value\n ? \"hawa-bg-primary/90 hawa-text-primary-foreground hawa-cursor-default\"\n : \"hover:hawa-bg-primary/10\";\n };\n if (item.subitems) {\n return (\n <AccordionItem\n value={item.value}\n className=\"hawa-overflow-x-clip\"\n dir={direction}\n >\n <AccordionTrigger\n className={cn(\n \"hawa-w-full hawa-overflow-x-clip\",\n props.selectedItem === item.value\n ? \"hawa-cursor-default hawa-bg-primary hawa-text-primary-foreground\"\n : \"hawa-h-10 hover:hawa-bg-primary/10\",\n item.subitems &&\n item.subitems.some(\n (subitem) => props.selectedItem === subitem.value,\n )\n ? \"hawa-bg-primary/80 hawa-text-primary-foreground hover:hawa-bg-primary/80\"\n : \"\",\n )}\n showArrow={isOpen}\n >\n <div\n className={cn(\n \"hawa-flex hawa-h-fit hawa-w-fit hawa-flex-row hawa-items-center hawa-gap-2\",\n )}\n >\n {item.icon && item.icon}\n <span\n className={cn(\n \"hawa-transition-all hawa-flex hawa-flex-row hawa-items-center hawa-gap-2 hawa-whitespace-nowrap\",\n isOpen ? \"hawa-opacity-100\" : \"hawa-opacity-0\",\n )}\n >\n {item.label}\n {item.badge && (\n <Chip\n label={item.badge.label}\n color={item.badge.color}\n size=\"small\"\n />\n )}\n </span>\n </div>\n </AccordionTrigger>\n {item.subitems && (\n <AccordionContent className=\"hawa-mt-1 hawa-h-full hawa-rounded\">\n <div\n className={cn(\n \"hawa-flex hawa-h-full hawa-flex-col hawa-gap-2 hawa-bg-foreground/5 hawa-p-1\",\n )}\n >\n {item.subitems.map((subitem, idx) => (\n <LinkComponent\n href={subitem.slug}\n key={idx}\n onMouseDown={(e: any) => {\n if (subitem.onMouseDown) {\n subitem.onMouseDown(e);\n }\n }}\n onClick={(e: any) => {\n e.stopPropagation();\n if (subitem.onClick) {\n subitem.onClick(e);\n }\n if (onSubItemClick) {\n onSubItemClick([item.value, subitem.value]);\n }\n }}\n className={cn(\n \"hawa-flex hawa-h-full hawa-cursor-pointer hawa-flex-row hawa-items-center hawa-gap-2 hawa-overflow-x-clip hawa-whitespace-nowrap hawa-rounded hawa-p-2 hawa-transition-all\",\n // bg-foreground/10\n getSelectedStyle(subitem.value),\n )}\n >\n {subitem.icon && subitem.icon}\n {subitem.label}\n {subitem.badge && (\n <Chip\n label={subitem.badge.label}\n color={subitem.badge.color}\n size=\"small\"\n />\n )}\n </LinkComponent>\n ))}\n </div>\n </AccordionContent>\n )}\n </AccordionItem>\n );\n } else {\n return (\n <LinkComponent\n href={item.slug}\n dir={direction}\n onMouseDown={(e: React.MouseEvent) => {\n if (item.onMouseDown) {\n item.onMouseDown(e);\n }\n }}\n onClick={(e: React.MouseEvent) => {\n if (item.onClick) {\n item.onClick(e);\n }\n if (onItemClick) {\n onItemClick([item.value]);\n }\n }}\n className={cn(\n triggerStyles,\n getSelectedStyle(item.value),\n \"hawa-overflow-x-clip\",\n )}\n >\n <div className={\"hawa-flex hawa-flex-row hawa-items-center hawa-gap-2\"}>\n {item.icon && item.icon}\n <span\n className={cn(\n \"hawa-flex hawa-flex-row hawa-items-center hawa-gap-2 hawa-whitespace-nowrap hawa-transition-all\",\n isOpen ? \"hawa-opacity-100\" : \"hawa-opacity-0\",\n )}\n >\n {item.label}{\" \"}\n {item.badge && (\n <Chip\n label={item.badge.label}\n color={item.badge.color}\n size=\"small\"\n />\n )}\n </span>\n </div>\n </LinkComponent>\n );\n }\n};\nexport { SidebarGroup, SidebarItem };\n","import { clsx, type ClassValue } from \"clsx\";\nimport { twMerge } from \"tailwind-merge\";\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs));\n}\n\ntype Palette = {\n name: string;\n colors: {\n [key: number]: string;\n };\n};\ntype Rgb = {\n r: number;\n g: number;\n b: number;\n};\nfunction hexToRgb(hex: string): Rgb | null {\n const sanitizedHex = hex.replaceAll(\"##\", \"#\");\n const colorParts = /^#?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})$/i.exec(\n sanitizedHex\n );\n\n if (!colorParts) {\n return null;\n }\n\n const [, r, g, b] = colorParts;\n\n return {\n r: parseInt(r, 16),\n g: parseInt(g, 16),\n b: parseInt(b, 16)\n } as Rgb;\n}\n\nfunction rgbToHex(r: number, g: number, b: number): string {\n const toHex = (c: number) => `0${c.toString(16)}`.slice(-2);\n return `#${toHex(r)}${toHex(g)}${toHex(b)}`;\n}\n\nexport function getTextColor(color: string): \"#FFF\" | \"#333\" {\n const rgbColor = hexToRgb(color);\n\n if (!rgbColor) {\n return \"#333\";\n }\n\n const { r, g, b } = rgbColor;\n const luma = 0.2126 * r + 0.7152 * g + 0.0722 * b;\n\n return luma < 120 ? \"#FFF\" : \"#333\";\n}\n\nfunction lighten(hex: string, intensity: number): string {\n const color = hexToRgb(`#${hex}`);\n\n if (!color) {\n return \"\";\n }\n\n const r = Math.round(color.r + (255 - color.r) * intensity);\n const g = Math.round(color.g + (255 - color.g) * intensity);\n const b = Math.round(color.b + (255 - color.b) * intensity);\n\n return rgbToHex(r, g, b);\n}\n\nfunction darken(hex: string, intensity: number): string {\n const color = hexToRgb(hex);\n\n if (!color) {\n return \"\";\n }\n\n const r = Math.round(color.r * intensity);\n const g = Math.round(color.g * intensity);\n const b = Math.round(color.b * intensity);\n\n return rgbToHex(r, g, b);\n}\nconst parseColor = (color: any) => {\n if (color.startsWith(\"#\")) {\n // Convert hex to RGB\n let r = parseInt(color.slice(1, 3), 16);\n let g = parseInt(color.slice(3, 5), 16);\n let b = parseInt(color.slice(5, 7), 16);\n return [r, g, b];\n } else if (color.startsWith(\"rgb\")) {\n // Extract RGB values from rgb() format\n return color.match(/\\d+/g).map(Number);\n }\n // Default to white if format is unrecognized\n return [255, 255, 255];\n};\nexport const calculateLuminance = (color: any) => {\n const [r, g, b] = parseColor(color)?.map((c: any) => {\n c /= 255;\n return c <= 0.03928 ? c / 12.92 : ((c + 0.055) / 1.055) ** 2.4;\n });\n return 0.2126 * r + 0.7152 * g + 0.0722 * b;\n};\n\nfunction getPallette(baseColor: string): Palette {\n const name = baseColor;\n\n const response: Palette = {\n name,\n colors: {\n 500: `#${baseColor}`.replace(\"##\", \"#\")\n }\n };\n\n const intensityMap: {\n [key: number]: number;\n } = {\n 50: 0.95,\n 100: 0.9,\n 200: 0.75,\n 300: 0.6,\n 400: 0.3,\n 600: 0.9,\n 700: 0.75,\n 800: 0.6,\n 900: 0.49\n };\n\n [50, 100, 200, 300, 400].forEach((level) => {\n response.colors[level] = lighten(baseColor, intensityMap[level]);\n });\n [600, 700, 800, 900].forEach((level) => {\n response.colors[level] = darken(baseColor, intensityMap[level]);\n });\n\n return response as Palette;\n}\n\nexport { getPallette };\n\n// const hexToRgb = (hex) => {\n// let d = hex?.split(\"#\")[1];\n// var aRgbHex = d?.match(/.{1,2}/g);\n// var aRgb = [\n// parseInt(aRgbHex[0], 16),\n// parseInt(aRgbHex[1], 16),\n// parseInt(aRgbHex[2], 16)\n// ];\n// return aRgb;\n// };\n// const getTextColor = (backColor) => {\n// let rgbArray = hexToRgb(backColor);\n// if (rgbArray[0] * 0.299 + rgbArray[1] * 0.587 + rgbArray[2] * 0.114 > 186) {\n// return \"#000000\";\n// } else {\n// return \"#ffffff\";\n// }\n// };\n// const replaceAt = function (string, index, replacement) {\n// // if (replacement == \"\" || replacement == \" \") {\n// // return (\n// // string.substring(0, index) +\n// // string.substring(index + replacement.length )\n// // );\n// // }\n// const replaced = string.substring(0, index) + replacement + string.substring(index + 1)\n// return replaced\n// };\n\n// export { hexToRgb, getTextColor, replaceAt };\n","import React from \"react\";\n\nimport { cn } from \"@util/index\";\n\nimport { RadiusType } from \"@_types/commonTypes\";\n\nexport type ChipColors =\n | \"green\"\n | \"blue\"\n | \"red\"\n | \"yellow\"\n | \"orange\"\n | \"purple\"\n | \"cyan\"\n | \"hyper\"\n | \"oceanic\";\n\nexport type ChipTypes = React.HTMLAttributes<HTMLSpanElement> & {\n /** The text inside the chip */\n label: string;\n /** The small icon before the chip label */\n icon?: JSX.Element;\n /** The color of the chip, must be a tailwind color */\n color?: ChipColors;\n /** The size of the chip */\n size?: \"small\" | \"normal\" | \"large\";\n /** Enable/Disable the dot before the label of the chip */\n dot?: boolean;\n /** Red/Green dot next to the label of the chip indicating online/offline or available/unavailable */\n dotStatus?: \"available\" | \"unavailable\" | \"none\";\n radius?: RadiusType;\n};\n\nexport const Chip = React.forwardRef<HTMLSpanElement, ChipTypes>(\n (\n {\n label,\n size = \"normal\",\n icon,\n color,\n radius = \"inherit\",\n dot,\n dotStatus = \"none\",\n ...rest\n },\n ref,\n ) => {\n let defaultStyles =\n \"hawa-flex hawa-flex-row hawa-w-fit hawa-gap-1 hawa-items-center hawa-px-2.5 hawa-py-1 hawa-font-bold \";\n let radiusStyles = {\n inherit: \" hawa-rounded\",\n full: \"hawa-rounded-full\",\n none: \"hawa-rounded-none\",\n };\n let sizeStyles = {\n small:\n \"hawa-h-[15px] hawa-leading-4 hawa-px-0 hawa-py-0 hawa-text-[9px] hawa-gap-0.5 \",\n normal: \"hawa-h-fit hawa-text-xs\",\n large: \"hawa-text-base\",\n };\n let dotStyles = {\n small: \"hawa-flex hawa-h-1 hawa-w-1 hawa-rounded-full\",\n normal: \"hawa-flex hawa-h-2 hawa-w-2 hawa-rounded-full\",\n large: \"hawa-flex hawa-h-3 hawa-w-3 hawa-rounded-full\",\n };\n let dotStatusStyles = {\n none: \"hawa-bg-gray-500 dark:hawa-bg-gray-800\",\n available: \"hawa-bg-green-500\",\n unavailable: \"hawa-bg-red-500\",\n };\n let colorStyles: any = {\n green:\n \"hawa-bg-green-200 hawa-text-green-700 dark:hawa-bg-green-700 dark:hawa-text-green-200\",\n blue: \"hawa-bg-blue-200 hawa-text-blue-700 dark:hawa-bg-blue-700 dark:hawa-text-blue-100\",\n red: \"hawa-bg-red-200 hawa-text-red-700 dark:hawa-bg-red-700 dark:hawa-text-red-100\",\n yellow:\n \"hawa-bg-yellow-200 hawa-text-yellow-700 dark:hawa-bg-yellow-600 dark:hawa-text-black\",\n orange:\n \"hawa-bg-orange-200 hawa-text-orange-700 dark:hawa-bg-orange-700 dark:hawa-text-orange-100\",\n purple:\n \"hawa-bg-purple-200 hawa-text-purple-700 dark:hawa-bg-purple-700 dark:hawa-text-purple-100\",\n cyan: \"hawa-bg-cyan-200 hawa-text-cyan-700 dark:hawa-bg-cyan-700 dark:hawa-text-cyan-100\",\n hyper:\n \"hawa-text-white dark:hawa-text-black hawa-bg-gradient-to-tl hawa-from-pink-500 hawa-via-red-500 hawa-to-yellow-500 \",\n oceanic:\n \"hawa-text-white dark:hawa-text-black hawa-bg-gradient-to-bl hawa-from-green-300 hawa-via-blue-500 hawa-to-purple-600\",\n };\n if (label) {\n return (\n <span\n {...rest}\n ref={ref}\n className={cn(\n defaultStyles,\n sizeStyles[size],\n radiusStyles[radius],\n color ? colorStyles[color] : \"hawa-border hawa-bg-none\",\n rest.className,\n )}\n >\n {dot && (\n <span\n className={cn(dotStyles[size], dotStatusStyles[dotStatus])}\n ></span>\n )}\n {icon && icon}\n {label}\n </span>\n );\n } else {\n return (\n <span\n {...rest}\n ref={ref}\n className={cn(\n \"hawa-h-2 hawa-w-2 hawa-rounded-full\",\n color ? colorStyles[color] : \"hawa-border hawa-bg-none\",\n )}\n ></span>\n );\n }\n },\n);\n"],"mappings":"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","names":["React"]}
|
1
|
+
{"version":3,"sources":["../../layout/sidebar/Sidebar.tsx","../../util/index.ts","../../elements/chip/Chip.tsx"],"sourcesContent":["import * as React from \"react\";\n\nimport * as AccordionPrimitive from \"@radix-ui/react-accordion\";\nimport { cn } from \"@util/index\";\n\nimport { DirectionType } from \"@_types/commonTypes\";\n\nimport { Chip, ChipColors } from \"../../elements/chip\";\n\nconst Accordion = AccordionPrimitive.Root;\n\nlet triggerStyles =\n \"hawa-flex hawa-flex-1 hawa-items-center hawa-duration-75 hawa-select-none hawa-cursor-pointer hawa-rounded hawa-justify-between hawa-p-2 hawa-px-3 hawa-font-medium hawa-transition-all [&[data-state=open]>svg]:hawa--rotate-90\";\nconst AccordionItem = React.forwardRef<\n React.ElementRef<typeof AccordionPrimitive.Item>,\n React.ComponentPropsWithoutRef<typeof AccordionPrimitive.Item>\n>(({ className, ...props }, ref) => (\n <AccordionPrimitive.Item ref={ref} className={cn(className)} {...props} />\n));\nAccordionItem.displayName = \"AccordionItem\";\n\ntype AccordionTriggerProps = React.ComponentPropsWithoutRef<typeof AccordionPrimitive.Trigger> & {\n showArrow?: any;\n};\n\nconst AccordionTrigger = React.forwardRef<\n React.ElementRef<typeof AccordionPrimitive.Trigger>,\n AccordionTriggerProps\n>(({ className, showArrow, children, ...props }, ref) => (\n <AccordionPrimitive.Header className=\"flex\">\n <AccordionPrimitive.Trigger ref={ref} className={cn(triggerStyles, className)} {...props}>\n {children}\n {showArrow && (\n <svg\n aria-label=\"Chevron Right Icon\"\n stroke=\"currentColor\"\n fill=\"currentColor\"\n viewBox=\"0 0 16 16\"\n height=\"1em\"\n width=\"1em\"\n className=\"hawa-icon hawa-shrink-0 hawa-rotate-90 hawa-transition-transform hawa-duration-200\"\n >\n <path d=\"M4.646 1.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708-.708L10.293 8 4.646 2.354a.5.5 0 0 1 0-.708z\"></path>\n </svg>\n )}\n </AccordionPrimitive.Trigger>\n </AccordionPrimitive.Header>\n));\nAccordionTrigger.displayName = AccordionPrimitive.Trigger.displayName;\n\nconst AccordionContent = React.forwardRef<\n React.ElementRef<typeof AccordionPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof AccordionPrimitive.Content>\n>(({ className, children, ...props }, ref) => (\n <AccordionPrimitive.Content\n ref={ref}\n className={cn(\n \"hawa-overflow-hidden hawa-text-sm hawa-transition-all data-[state=closed]:hawa-animate-accordion-up data-[state=open]:hawa-animate-accordion-down\",\n className,\n )}\n {...props}\n >\n <div>{children}</div>\n </AccordionPrimitive.Content>\n));\nAccordionContent.displayName = AccordionPrimitive.Content.displayName;\n\nexport type AppSidebarItemProps = {\n value: string;\n slug?: string;\n label: string;\n badge?: { label: string; color?: ChipColors };\n icon?: any;\n subitems?: SubItem[];\n onClick?: (e: React.MouseEvent) => void;\n onMouseDown?: (e: React.MouseEvent) => void;\n};\ntype SubItem = {\n value: string;\n label: string;\n slug?: string;\n badge?: { label: string; color?: ChipColors };\n icon?: any;\n onMouseDown?: (e: React.MouseEvent) => void;\n onClick?: (e: React.MouseEvent) => void;\n};\ninterface SidebarGroupProps {\n title?: string;\n items: AppSidebarItemProps[];\n openedItem?: any;\n setOpenedItem?: any;\n selectedItem?: any;\n isOpen?: boolean;\n onItemClick?: (value: string[]) => void;\n onSubItemClick?: (values: string[]) => void;\n direction?: DirectionType;\n LinkComponent?: any;\n}\n\nconst SidebarGroup: React.FC<SidebarGroupProps> = ({\n title,\n items,\n selectedItem,\n openedItem,\n setOpenedItem,\n onItemClick,\n onSubItemClick,\n direction,\n isOpen,\n ...props\n}) => {\n const LinkComponent = props.LinkComponent || \"a\"; // Use the provided LinkComponent or 'a' as a fallback\n\n return (\n <div className=\"hawa-m-2\">\n {title && <h3 className=\"hawa-mb-1 hawa-font-bold\">{title}</h3>}\n <ul className=\"hawa-flex hawa-flex-col hawa-gap-2\">\n <Accordion\n value={openedItem}\n type=\"single\"\n onValueChange={(e) => {\n setOpenedItem(e);\n }}\n collapsible\n className=\"hawa-flex hawa-flex-col hawa-gap-1\"\n >\n {items.map((item, idx) => (\n <SidebarItem\n isOpen={isOpen}\n selectedItem={selectedItem}\n key={idx}\n direction={direction}\n item={item}\n onItemClick={onItemClick}\n onSubItemClick={onSubItemClick}\n LinkComponent={LinkComponent}\n />\n ))}\n </Accordion>\n </ul>\n </div>\n );\n};\nconst SidebarItem: React.FC<{\n item: AppSidebarItemProps;\n selectedItem?: any;\n direction?: DirectionType;\n onItemClick?: (value: string[]) => void;\n onSubItemClick?: (values: string[]) => void;\n isOpen?: boolean;\n LinkComponent?: any;\n}> = ({ item, onItemClick, onSubItemClick, direction, isOpen = true, LinkComponent, ...props }) => {\n const getSelectedStyle = (value: string) => {\n return props.selectedItem === value\n ? \"hawa-bg-primary/90 hawa-text-primary-foreground hawa-cursor-default\"\n : \"hover:hawa-bg-primary/10\";\n };\n if (item.subitems) {\n return (\n <AccordionItem value={item.value} className=\"hawa-overflow-x-clip\" dir={direction}>\n <AccordionTrigger\n className={cn(\n \"hawa-w-full hawa-overflow-x-clip\",\n props.selectedItem === item.value\n ? \"hawa-cursor-default hawa-bg-primary hawa-text-primary-foreground\"\n : \"hawa-h-10 hover:hawa-bg-primary/10\",\n item.subitems && item.subitems.some((subitem) => props.selectedItem === subitem.value)\n ? \"hawa-bg-primary/80 hawa-text-primary-foreground hover:hawa-bg-primary/80\"\n : \"\",\n )}\n showArrow={isOpen}\n >\n <div\n className={cn(\n \"hawa-flex hawa-h-fit hawa-w-fit hawa-flex-row hawa-items-center hawa-gap-2\",\n )}\n >\n {item.icon && item.icon}\n <span\n className={cn(\n \"hawa-transition-all hawa-flex hawa-flex-row hawa-items-center hawa-gap-2 hawa-whitespace-nowrap\",\n isOpen ? \"hawa-opacity-100\" : \"hawa-opacity-0\",\n )}\n >\n {item.label}\n {item.badge && (\n <Chip label={item.badge.label} color={item.badge.color} size=\"small\" />\n )}\n </span>\n </div>\n </AccordionTrigger>\n {item.subitems && (\n <AccordionContent className=\"hawa-mt-1 hawa-h-full hawa-rounded\">\n <div\n className={cn(\n \"hawa-flex hawa-h-full hawa-flex-col hawa-gap-2 hawa-bg-foreground/5 hawa-p-1\",\n )}\n >\n {item.subitems.map((subitem, idx) => (\n <LinkComponent\n href={subitem.slug}\n key={idx}\n onMouseDown={(e: any) => {\n if (subitem.onMouseDown) {\n subitem.onMouseDown(e);\n }\n }}\n onClick={(e: any) => {\n e.stopPropagation();\n if (subitem.onClick) {\n subitem.onClick(e);\n }\n if (onSubItemClick) {\n onSubItemClick([item.value, subitem.value]);\n }\n }}\n className={cn(\n \"hawa-flex hawa-h-full hawa-cursor-pointer hawa-flex-row hawa-items-center hawa-gap-2 hawa-overflow-x-clip hawa-whitespace-nowrap hawa-rounded hawa-p-2 hawa-transition-all\",\n // bg-foreground/10\n getSelectedStyle(subitem.value),\n )}\n >\n {subitem.icon && subitem.icon}\n {subitem.label}\n {subitem.badge && (\n <Chip label={subitem.badge.label} color={subitem.badge.color} size=\"small\" />\n )}\n </LinkComponent>\n ))}\n </div>\n </AccordionContent>\n )}\n </AccordionItem>\n );\n } else {\n return (\n <LinkComponent\n href={item.slug}\n dir={direction}\n onMouseDown={(e: React.MouseEvent) => {\n if (item.onMouseDown) {\n item.onMouseDown(e);\n }\n }}\n onClick={(e: React.MouseEvent) => {\n if (item.onClick) {\n item.onClick(e);\n }\n if (onItemClick) {\n onItemClick([item.value]);\n }\n }}\n className={cn(triggerStyles, getSelectedStyle(item.value), \"hawa-overflow-x-clip\")}\n >\n <div className={\"hawa-flex hawa-flex-row hawa-items-center hawa-gap-2\"}>\n {item.icon && item.icon}\n <span\n className={cn(\n \"hawa-flex hawa-flex-row hawa-items-center hawa-gap-2 hawa-whitespace-nowrap hawa-transition-all\",\n isOpen ? \"hawa-opacity-100\" : \"hawa-opacity-0\",\n )}\n >\n {item.label}{\" \"}\n {item.badge && <Chip label={item.badge.label} color={item.badge.color} size=\"small\" />}\n </span>\n </div>\n </LinkComponent>\n );\n }\n};\nexport { SidebarGroup, SidebarItem };\n","import { clsx, type ClassValue } from \"clsx\";\nimport { twMerge } from \"tailwind-merge\";\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs));\n}\n\ntype Palette = {\n name: string;\n colors: {\n [key: number]: string;\n };\n};\ntype Rgb = {\n r: number;\n g: number;\n b: number;\n};\nfunction hexToRgb(hex: string): Rgb | null {\n const sanitizedHex = hex.replaceAll(\"##\", \"#\");\n const colorParts = /^#?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})$/i.exec(sanitizedHex);\n\n if (!colorParts) {\n return null;\n }\n\n const [, r, g, b] = colorParts;\n\n return {\n r: parseInt(r, 16),\n g: parseInt(g, 16),\n b: parseInt(b, 16),\n } as Rgb;\n}\n\nfunction rgbToHex(r: number, g: number, b: number): string {\n const toHex = (c: number) => `0${c.toString(16)}`.slice(-2);\n return `#${toHex(r)}${toHex(g)}${toHex(b)}`;\n}\n\nexport function getTextColor(color: string): \"#FFF\" | \"#333\" {\n const rgbColor = hexToRgb(color);\n\n if (!rgbColor) {\n return \"#333\";\n }\n\n const { r, g, b } = rgbColor;\n const luma = 0.2126 * r + 0.7152 * g + 0.0722 * b;\n\n return luma < 120 ? \"#FFF\" : \"#333\";\n}\n\nfunction lighten(hex: string, intensity: number): string {\n const color = hexToRgb(`#${hex}`);\n\n if (!color) {\n return \"\";\n }\n\n const r = Math.round(color.r + (255 - color.r) * intensity);\n const g = Math.round(color.g + (255 - color.g) * intensity);\n const b = Math.round(color.b + (255 - color.b) * intensity);\n\n return rgbToHex(r, g, b);\n}\n\nfunction darken(hex: string, intensity: number): string {\n const color = hexToRgb(hex);\n\n if (!color) {\n return \"\";\n }\n\n const r = Math.round(color.r * intensity);\n const g = Math.round(color.g * intensity);\n const b = Math.round(color.b * intensity);\n\n return rgbToHex(r, g, b);\n}\nconst parseColor = (color: any) => {\n if (color.startsWith(\"#\")) {\n // Convert hex to RGB\n let r = parseInt(color.slice(1, 3), 16);\n let g = parseInt(color.slice(3, 5), 16);\n let b = parseInt(color.slice(5, 7), 16);\n return [r, g, b];\n } else if (color.startsWith(\"rgb\")) {\n // Extract RGB values from rgb() format\n return color.match(/\\d+/g).map(Number);\n }\n // Default to white if format is unrecognized\n return [255, 255, 255];\n};\nexport const calculateLuminance = (color: any) => {\n const [r, g, b] = parseColor(color)?.map((c: any) => {\n c /= 255;\n return c <= 0.03928 ? c / 12.92 : ((c + 0.055) / 1.055) ** 2.4;\n });\n return 0.2126 * r + 0.7152 * g + 0.0722 * b;\n};\n\nfunction getPallette(baseColor: string): Palette {\n const name = baseColor;\n\n const response: Palette = {\n name,\n colors: {\n 500: `#${baseColor}`.replace(\"##\", \"#\"),\n },\n };\n\n const intensityMap: {\n [key: number]: number;\n } = {\n 50: 0.95,\n 100: 0.9,\n 200: 0.75,\n 300: 0.6,\n 400: 0.3,\n 600: 0.9,\n 700: 0.75,\n 800: 0.6,\n 900: 0.49,\n };\n\n [50, 100, 200, 300, 400].forEach((level) => {\n response.colors[level] = lighten(baseColor, intensityMap[level]);\n });\n [600, 700, 800, 900].forEach((level) => {\n response.colors[level] = darken(baseColor, intensityMap[level]);\n });\n\n return response as Palette;\n}\n\nexport { getPallette };\n\n// const hexToRgb = (hex) => {\n// let d = hex?.split(\"#\")[1];\n// var aRgbHex = d?.match(/.{1,2}/g);\n// var aRgb = [\n// parseInt(aRgbHex[0], 16),\n// parseInt(aRgbHex[1], 16),\n// parseInt(aRgbHex[2], 16)\n// ];\n// return aRgb;\n// };\n// const getTextColor = (backColor) => {\n// let rgbArray = hexToRgb(backColor);\n// if (rgbArray[0] * 0.299 + rgbArray[1] * 0.587 + rgbArray[2] * 0.114 > 186) {\n// return \"#000000\";\n// } else {\n// return \"#ffffff\";\n// }\n// };\n// const replaceAt = function (string, index, replacement) {\n// // if (replacement == \"\" || replacement == \" \") {\n// // return (\n// // string.substring(0, index) +\n// // string.substring(index + replacement.length )\n// // );\n// // }\n// const replaced = string.substring(0, index) + replacement + string.substring(index + 1)\n// return replaced\n// };\n\n// export { hexToRgb, getTextColor, replaceAt };\n","import React from \"react\";\n\nimport { cn } from \"@util/index\";\n\nimport { RadiusType } from \"@_types/commonTypes\";\n\nexport type ChipColors =\n | \"green\"\n | \"blue\"\n | \"red\"\n | \"yellow\"\n | \"orange\"\n | \"purple\"\n | \"cyan\"\n | \"hyper\"\n | \"oceanic\";\n\nexport type ChipTypes = React.HTMLAttributes<HTMLSpanElement> & {\n /** The text inside the chip */\n label: string;\n /** The small icon before the chip label */\n icon?: JSX.Element;\n /** The color of the chip, must be a tailwind color */\n color?: ChipColors;\n /** The size of the chip */\n size?: \"small\" | \"normal\" | \"large\";\n /** Enable/Disable the dot before the label of the chip */\n dot?: boolean;\n /** Red/Green dot next to the label of the chip indicating online/offline or available/unavailable */\n dotStatus?: \"available\" | \"unavailable\" | \"none\";\n radius?: RadiusType;\n};\n\nexport const Chip = React.forwardRef<HTMLSpanElement, ChipTypes>(\n (\n { label, size = \"normal\", icon, color, radius = \"inherit\", dot, dotStatus = \"none\", ...rest },\n ref,\n ) => {\n let defaultStyles =\n \"hawa-flex hawa-flex-row hawa-w-fit hawa-gap-1 hawa-items-center hawa-px-2.5 hawa-py-1 hawa-font-bold \";\n let radiusStyles = {\n inherit: \" hawa-rounded\",\n full: \"hawa-rounded-full\",\n none: \"hawa-rounded-none\",\n };\n let sizeStyles = {\n small: \"hawa-h-[15px] hawa-leading-4 hawa-px-0 hawa-py-0 hawa-text-[9px] hawa-gap-0.5 \",\n normal: \"hawa-h-fit hawa-text-xs\",\n large: \"hawa-text-base\",\n };\n let dotStyles = {\n small: \"hawa-flex hawa-h-1 hawa-w-1 hawa-rounded-full\",\n normal: \"hawa-flex hawa-h-2 hawa-w-2 hawa-rounded-full\",\n large: \"hawa-flex hawa-h-3 hawa-w-3 hawa-rounded-full\",\n };\n let dotStatusStyles = {\n none: \"hawa-bg-gray-500 dark:hawa-bg-gray-800\",\n available: \"hawa-bg-green-500\",\n unavailable: \"hawa-bg-red-500\",\n };\n let colorStyles: any = {\n green:\n \"hawa-bg-green-200 hawa-text-green-700 dark:hawa-bg-green-700 dark:hawa-text-green-200\",\n blue: \"hawa-bg-blue-200 hawa-text-blue-700 dark:hawa-bg-blue-700 dark:hawa-text-blue-100\",\n red: \"hawa-bg-red-200 hawa-text-red-700 dark:hawa-bg-red-700 dark:hawa-text-red-100\",\n yellow:\n \"hawa-bg-yellow-200 hawa-text-yellow-700 dark:hawa-bg-yellow-600 dark:hawa-text-black\",\n orange:\n \"hawa-bg-orange-200 hawa-text-orange-700 dark:hawa-bg-orange-700 dark:hawa-text-orange-100\",\n purple:\n \"hawa-bg-purple-200 hawa-text-purple-700 dark:hawa-bg-purple-700 dark:hawa-text-purple-100\",\n cyan: \"hawa-bg-cyan-200 hawa-text-cyan-700 dark:hawa-bg-cyan-700 dark:hawa-text-cyan-100\",\n hyper:\n \"hawa-text-white dark:hawa-text-black hawa-bg-gradient-to-tl hawa-from-pink-500 hawa-via-red-500 hawa-to-yellow-500 \",\n oceanic:\n \"hawa-text-white dark:hawa-text-black hawa-bg-gradient-to-bl hawa-from-green-300 hawa-via-blue-500 hawa-to-purple-600\",\n };\n if (label) {\n return (\n <span\n {...rest}\n ref={ref}\n className={cn(\n defaultStyles,\n sizeStyles[size],\n radiusStyles[radius],\n color ? colorStyles[color] : \"hawa-border hawa-bg-none\",\n rest.className,\n )}\n >\n {dot && <span className={cn(dotStyles[size], dotStatusStyles[dotStatus])}></span>}\n {icon && icon}\n {label}\n </span>\n );\n } else {\n return (\n <span\n {...rest}\n ref={ref}\n className={cn(\n \"hawa-h-2 hawa-w-2 hawa-rounded-full\",\n color ? colorStyles[color] : \"hawa-border hawa-bg-none\",\n )}\n ></span>\n );\n }\n },\n);\n"],"mappings":"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","names":["React"]}
|
package/dist/signature/index.js
CHANGED
@@ -89,38 +89,31 @@ var Tooltip = ({
|
|
89
89
|
delayDuration = 300,
|
90
90
|
...props
|
91
91
|
}) => {
|
92
|
-
return /* @__PURE__ */ import_react.default.createElement(
|
93
|
-
TooltipPrimitive.
|
92
|
+
return /* @__PURE__ */ import_react.default.createElement(TooltipPrimitive.TooltipProvider, { delayDuration, ...providerProps }, /* @__PURE__ */ import_react.default.createElement(
|
93
|
+
TooltipPrimitive.Root,
|
94
94
|
{
|
95
|
-
|
96
|
-
|
95
|
+
open: !disabled && open,
|
96
|
+
defaultOpen,
|
97
|
+
onOpenChange,
|
98
|
+
...props
|
97
99
|
},
|
100
|
+
/* @__PURE__ */ import_react.default.createElement(TooltipPrimitive.Trigger, { ...triggerProps }, children),
|
98
101
|
/* @__PURE__ */ import_react.default.createElement(
|
99
|
-
|
102
|
+
TooltipContent,
|
100
103
|
{
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
...
|
104
|
+
size,
|
105
|
+
side,
|
106
|
+
align: "center",
|
107
|
+
...contentProps,
|
108
|
+
style: {
|
109
|
+
...contentProps == null ? void 0 : contentProps.style,
|
110
|
+
maxWidth: "var(--radix-tooltip-content-available-width)",
|
111
|
+
maxHeight: "var(--radix-tooltip-content-available-height)"
|
112
|
+
}
|
105
113
|
},
|
106
|
-
|
107
|
-
/* @__PURE__ */ import_react.default.createElement(
|
108
|
-
TooltipContent,
|
109
|
-
{
|
110
|
-
size,
|
111
|
-
side,
|
112
|
-
align: "center",
|
113
|
-
...contentProps,
|
114
|
-
style: {
|
115
|
-
...contentProps == null ? void 0 : contentProps.style,
|
116
|
-
maxWidth: "var(--radix-tooltip-content-available-width)",
|
117
|
-
maxHeight: "var(--radix-tooltip-content-available-height)"
|
118
|
-
}
|
119
|
-
},
|
120
|
-
content
|
121
|
-
)
|
114
|
+
content
|
122
115
|
)
|
123
|
-
);
|
116
|
+
));
|
124
117
|
};
|
125
118
|
|
126
119
|
// elements/label/Label.tsx
|