@accelint/design-toolkit 5.1.0 → 6.0.0
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/catalog-info.yaml +44 -0
- package/dist/components/accordion/index.js +1 -1
- package/dist/components/accordion/index.js.map +1 -1
- package/dist/components/accordion/styles.d.ts +3 -3
- package/dist/components/accordion/styles.js +1 -1
- package/dist/components/accordion/styles.js.map +1 -1
- package/dist/components/action-bar/index.d.ts +11 -0
- package/dist/components/action-bar/index.js.map +1 -1
- package/dist/components/breadcrumbs/index.d.ts +27 -0
- package/dist/components/breadcrumbs/index.js +4 -0
- package/dist/components/breadcrumbs/index.js.map +1 -0
- package/dist/components/breadcrumbs/styles.d.ts +48 -0
- package/dist/components/breadcrumbs/styles.js +2 -0
- package/dist/components/breadcrumbs/styles.js.map +1 -0
- package/dist/components/breadcrumbs/types.d.ts +20 -0
- package/dist/components/breadcrumbs/types.js +2 -0
- package/dist/components/breadcrumbs/types.js.map +1 -0
- package/dist/components/button/index.d.ts +2 -2
- package/dist/components/button/index.js +1 -1
- package/dist/components/button/index.js.map +1 -1
- package/dist/components/button/styles.d.ts +15 -15
- package/dist/components/button/styles.js +1 -1
- package/dist/components/button/styles.js.map +1 -1
- package/dist/components/button/types.d.ts +7 -5
- package/dist/components/clock/index.d.ts +39 -0
- package/dist/components/clock/index.js +4 -0
- package/dist/components/clock/index.js.map +1 -0
- package/dist/components/clock/types.d.ts +7 -0
- package/dist/components/clock/types.js +2 -0
- package/dist/components/clock/types.js.map +1 -0
- package/dist/components/color-picker/styles.d.ts +3 -3
- package/dist/components/combobox-field/index.d.ts +11 -0
- package/dist/components/combobox-field/index.js.map +1 -1
- package/dist/components/combobox-field/styles.js +1 -1
- package/dist/components/combobox-field/styles.js.map +1 -1
- package/dist/components/dialog/index.js +1 -1
- package/dist/components/dialog/index.js.map +1 -1
- package/dist/components/divider/index.d.ts +32 -0
- package/dist/components/divider/index.js +4 -0
- package/dist/components/divider/index.js.map +1 -0
- package/dist/components/divider/styles.d.ts +5 -0
- package/dist/components/divider/styles.js +2 -0
- package/dist/components/divider/styles.js.map +1 -0
- package/dist/components/divider/types.d.ts +11 -0
- package/dist/components/divider/types.js +2 -0
- package/dist/components/divider/types.js.map +1 -0
- package/dist/components/drawer/index.d.ts +48 -3
- package/dist/components/drawer/index.js +1 -1
- package/dist/components/drawer/index.js.map +1 -1
- package/dist/components/drawer/styles.js +1 -1
- package/dist/components/drawer/styles.js.map +1 -1
- package/dist/components/drawer/types.d.ts +13 -7
- package/dist/components/input/styles.js +1 -1
- package/dist/components/input/styles.js.map +1 -1
- package/dist/components/lines/index.d.ts +9 -0
- package/dist/components/lines/index.js.map +1 -1
- package/dist/components/link/index.d.ts +9 -0
- package/dist/components/link/index.js.map +1 -1
- package/dist/components/link/styles.js +1 -1
- package/dist/components/link/styles.js.map +1 -1
- package/dist/components/menu/styles.js +1 -1
- package/dist/components/menu/styles.js.map +1 -1
- package/dist/components/notice/events.d.ts +10 -0
- package/dist/components/notice/events.js +2 -0
- package/dist/components/notice/events.js.map +1 -0
- package/dist/components/notice/index.d.ts +20 -0
- package/dist/components/notice/index.js +4 -0
- package/dist/components/notice/index.js.map +1 -0
- package/dist/components/notice/styles.d.ts +60 -0
- package/dist/components/notice/styles.js +2 -0
- package/dist/components/notice/styles.js.map +1 -0
- package/dist/components/notice/types.d.ts +75 -0
- package/dist/components/notice/types.js +2 -0
- package/dist/components/notice/types.js.map +1 -0
- package/dist/components/query-builder/index.js +1 -1
- package/dist/components/query-builder/index.js.map +1 -1
- package/dist/components/search-field/styles.js +1 -1
- package/dist/components/search-field/styles.js.map +1 -1
- package/dist/components/select-field/types.d.ts +0 -1
- package/dist/components/sidenav/index.d.ts +57 -6
- package/dist/components/sidenav/index.js +1 -1
- package/dist/components/sidenav/index.js.map +1 -1
- package/dist/components/sidenav/styles.js +1 -1
- package/dist/components/sidenav/styles.js.map +1 -1
- package/dist/components/slider/index.js +1 -1
- package/dist/components/slider/index.js.map +1 -1
- package/dist/components/slider/styles.js +1 -1
- package/dist/components/slider/styles.js.map +1 -1
- package/dist/components/table/context.d.ts +11 -0
- package/dist/components/table/context.js +2 -0
- package/dist/components/table/context.js.map +1 -0
- package/dist/components/table/index.d.ts +36 -0
- package/dist/components/table/index.js +4 -0
- package/dist/components/table/index.js.map +1 -0
- package/dist/components/table/styles.d.ts +134 -0
- package/dist/components/table/styles.js +2 -0
- package/dist/components/table/styles.js.map +1 -0
- package/dist/components/table/table-body.d.ts +12 -0
- package/dist/components/table/table-body.js +2 -0
- package/dist/components/table/table-body.js.map +1 -0
- package/dist/components/table/table-cell.d.ts +12 -0
- package/dist/components/table/table-cell.js +2 -0
- package/dist/components/table/table-cell.js.map +1 -0
- package/dist/components/table/table-header-cell.d.ts +12 -0
- package/dist/components/table/table-header-cell.js +2 -0
- package/dist/components/table/table-header-cell.js.map +1 -0
- package/dist/components/table/table-header.d.ts +12 -0
- package/dist/components/table/table-header.js +2 -0
- package/dist/components/table/table-header.js.map +1 -0
- package/dist/components/table/table-row.d.ts +12 -0
- package/dist/components/table/table-row.js +2 -0
- package/dist/components/table/table-row.js.map +1 -0
- package/dist/components/table/types.d.ts +185 -0
- package/dist/components/table/types.js +2 -0
- package/dist/components/table/types.js.map +1 -0
- package/dist/components/tabs/styles.js +1 -1
- package/dist/components/tabs/styles.js.map +1 -1
- package/dist/components/time-field/index.d.ts +19 -0
- package/dist/components/time-field/index.js +4 -0
- package/dist/components/time-field/index.js.map +1 -0
- package/dist/components/time-field/styles.d.ts +69 -0
- package/dist/components/time-field/styles.js +2 -0
- package/dist/components/time-field/styles.js.map +1 -0
- package/dist/components/time-field/types.d.ts +23 -0
- package/dist/components/time-field/types.js +2 -0
- package/dist/components/time-field/types.js.map +1 -0
- package/dist/components/tooltip/index.d.ts +23 -34
- package/dist/components/tooltip/index.js +1 -1
- package/dist/components/tooltip/index.js.map +1 -1
- package/dist/components/tooltip/types.d.ts +5 -6
- package/dist/components/tree/index.d.ts +22 -1
- package/dist/components/tree/index.js +1 -1
- package/dist/components/tree/index.js.map +1 -1
- package/dist/components/tree/styles.js +1 -1
- package/dist/components/tree/styles.js.map +1 -1
- package/dist/components/view-stack/index.d.ts +42 -2
- package/dist/components/view-stack/index.js +1 -1
- package/dist/components/view-stack/index.js.map +1 -1
- package/dist/foundation/token-data.js +1 -1
- package/dist/foundation/token-data.js.map +1 -1
- package/dist/index.css +5 -3
- package/dist/index.d.ts +32 -6
- package/dist/index.js +1 -1
- package/dist/metafile-esm.json +1 -1
- package/dist/providers/portal.d.ts +9 -0
- package/dist/providers/portal.js +2 -0
- package/dist/providers/portal.js.map +1 -0
- package/dist/providers/theme-provider.d.ts +6 -6
- package/dist/providers/theme-provider.js +1 -1
- package/dist/providers/theme-provider.js.map +1 -1
- package/dist/styles.css +3355 -974
- package/dist/tokens/themes.css +56 -24
- package/dist/tokens/tokens.css +8 -8
- package/dist/tokens/tokens.d.ts +18 -0
- package/dist/tokens/tokens.js +1 -1
- package/dist/tokens/tokens.js.map +1 -1
- package/dist/tokens/types.d.ts +9 -0
- package/dist/variants/variants.css +3 -0
- package/package.json +39 -17
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/sidenav/index.tsx"],"names":["item","text","transient","avatar","tooltip","menuHeading","menuPanel","SidenavStyles","uuid","id","le","$","className","X","isHiddenWhenClosed","children","rest","Sidenav","SidenavContent","isOpen","setIsOpen","useState","useOn","SidenavEventTypes","data","prev","D","S","Provider","DEFAULT_SLOT","heading","e","T","ee","panelHeading","SidenavContext","sidenav","useContext","jsx","Header","h","header","classNames","oe","Button","composeRenderProps","toggle","v","E","emit","l","ChevronLeft","SidenavHeader","u","Z","SidenavFooter","props","SidenavTrigger","isUUID","useEmit","event","Pressable","re","SidenavItem","q","SidenavAvatar","Icon","ref","useRef","g","IconContext","f","B","TextContext","w","jsxs","Tooltip","H","ToggleButton","SidenavLink","textValue","x","Text","Link","te","ArrowNortheast","Ee","F","SidenavDivider","Heading","me","P","avatarIcon","HeadingContext","avatarHeading","R","avatarText","AvatarContext","SidenavMenu","icon","containsExactChildren","Disclosure","menu","menuButton","ChevronDown","Y","ie","DialogTrigger","ae","se","panelContent","SidenavMenuItem","menuItem","U"],"mappings":"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","file":"index.js","sourcesContent":["/*\n * Copyright 2025 Hypergiant Galactic Systems Inc. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n'use client';\n\nimport 'client-only';\nimport { useEmit, useOn } from '@accelint/bus/react';\nimport { isUUID, type UniqueId, uuid } from '@accelint/core';\nimport { ArrowNortheast, ChevronDown, ChevronLeft } from '@accelint/icons';\nimport { createContext, useContext, useRef, useState } from 'react';\nimport {\n Button,\n composeRenderProps,\n DEFAULT_SLOT,\n DialogTrigger,\n Disclosure,\n DisclosurePanel,\n Header,\n Heading,\n HeadingContext,\n Link,\n Popover,\n Pressable,\n Provider,\n Text,\n TextContext,\n ToggleButton,\n} from 'react-aria-components';\nimport { containsAnyOfExactChildren, containsExactChildren } from '@/lib/react';\nimport { Avatar, AvatarContext } from '../avatar';\nimport { Icon, IconContext } from '../icon';\nimport { Tooltip } from '../tooltip';\nimport { SidenavEventTypes } from './events';\nimport { SidenavStyles } from './styles';\nimport type {\n SidenavAvatarProps,\n SidenavCloseEvent,\n SidenavContentProps,\n SidenavContextValue,\n SidenavDividerProps,\n SidenavEvent,\n SidenavFooterProps,\n SidenavHeaderProps,\n SidenavItemProps,\n SidenavLinkProps,\n SidenavMenuItemProps,\n SidenavMenuProps,\n SidenavOpenEvent,\n SidenavProps,\n SidenavToggleEvent,\n SidenavTriggerProps,\n} from './types';\n\nconst {\n sidenav,\n content,\n header,\n toggle,\n heading,\n divider,\n item,\n text,\n transient,\n avatar,\n avatarHeading,\n avatarIcon,\n avatarText,\n link,\n tooltip,\n menu,\n menuButton,\n menuHeading,\n menuPanel,\n menuItem,\n panelHeading,\n panelContent,\n} = SidenavStyles();\n\nconst SidenavContext = createContext<SidenavContextValue>({\n id: uuid(),\n isOpen: false,\n});\n\nexport function Sidenav({\n id,\n className,\n isHiddenWhenClosed,\n children,\n ...rest\n}: SidenavProps) {\n containsExactChildren({\n children,\n componentName: Sidenav.displayName,\n restrictions: [\n [SidenavHeader, { min: 1, max: 1 }],\n [SidenavContent, { min: 1, max: 1 }],\n [SidenavFooter, { min: 0, max: 1 }],\n ],\n });\n const [isOpen, setIsOpen] = useState(false);\n\n useOn(SidenavEventTypes.toggle, (data: SidenavToggleEvent) => {\n if (data.payload.id === id) {\n setIsOpen((prev) => !prev);\n }\n });\n\n useOn(SidenavEventTypes.open, (data: SidenavOpenEvent) => {\n if (!isOpen && data.payload.id === id) {\n setIsOpen(true);\n }\n });\n\n useOn(SidenavEventTypes.close, (data: SidenavCloseEvent) => {\n if (isOpen && data.payload.id === id) {\n setIsOpen(false);\n }\n });\n\n if (isHiddenWhenClosed && !isOpen) {\n return null;\n }\n\n return (\n <Provider\n values={[\n [\n HeadingContext,\n {\n slots: {\n [DEFAULT_SLOT]: {\n className: heading({ className: transient() }),\n },\n menu: { className: menuHeading({ className: transient() }) },\n panel: { className: panelHeading() },\n },\n },\n ],\n [SidenavContext, { id, isOpen }],\n ]}\n >\n <nav\n {...rest}\n className={sidenav({ className })}\n data-open={isOpen || null}\n >\n {children}\n </nav>\n </Provider>\n );\n}\nSidenav.displayName = 'Sidenav';\n\nfunction SidenavContent({ className, children, ...rest }: SidenavContentProps) {\n return (\n <div {...rest} className={content({ className })}>\n {children}\n </div>\n );\n}\nSidenavContent.displayName = 'Sidenav.Content';\n\nfunction SidenavHeader({ children, classNames, ...rest }: SidenavHeaderProps) {\n const emit = useEmit<SidenavToggleEvent>(SidenavEventTypes.toggle);\n const { id } = useContext(SidenavContext);\n\n return (\n <Header {...rest} className={header({ className: classNames?.header })}>\n <Button\n className={composeRenderProps(classNames?.button, (className) =>\n toggle({ className }),\n )}\n onPress={() => emit({ id })}\n >\n {children}\n <Icon className={transient()}>\n <ChevronLeft />\n </Icon>\n </Button>\n </Header>\n );\n}\nSidenavHeader.displayName = 'Sidenav.Header';\n\nfunction SidenavFooter(props: SidenavFooterProps) {\n return <footer {...props} />;\n}\nSidenavFooter.displayName = 'Sidenav.Footer';\n\nfunction SidenavTrigger({ children, for: type, ...rest }: SidenavTriggerProps) {\n const [event, id] = (isUUID(type) ? ['toggle', type] : type.split(':')) as [\n 'close' | 'open' | 'toggle',\n UniqueId,\n ];\n const emit = useEmit<SidenavEvent>(SidenavEventTypes[event]);\n\n return (\n <Pressable {...rest} onPress={() => emit({ id })}>\n {children}\n </Pressable>\n );\n}\nSidenavTrigger.displayName = 'Sidenav.Trigger';\n\nfunction SidenavItem({\n children,\n classNames,\n textValue,\n ...rest\n}: SidenavItemProps) {\n containsAnyOfExactChildren({\n children,\n componentName: SidenavItem.displayName,\n restrictions: [\n [[SidenavAvatar, { min: 1, max: 1 }]],\n [\n [Icon, { min: 1, max: 1 }],\n [Text, { min: 1, max: 1 }],\n ],\n ],\n });\n\n const { isOpen } = useContext(SidenavContext);\n\n // Implement ref to place tooltip inside Button DOM to enable contextual styling\n const ref = useRef(null);\n\n return (\n <Provider\n values={[\n [IconContext, { size: 'medium' }],\n [TextContext, { className: text({ className: transient() }) }],\n ]}\n >\n <Tooltip isDisabled={isOpen}>\n <Tooltip.Trigger>\n <ToggleButton\n {...rest}\n ref={ref}\n className={composeRenderProps(classNames?.button, (className) =>\n item({ className }),\n )}\n >\n {children}\n </ToggleButton>\n </Tooltip.Trigger>\n <Tooltip.Body parentRef={ref} placement='right' className={tooltip()}>\n {textValue}\n </Tooltip.Body>\n </Tooltip>\n </Provider>\n );\n}\nSidenavItem.displayName = 'Sidenav.Item';\n\nfunction SidenavLink({\n children,\n classNames,\n textValue,\n ...rest\n}: SidenavLinkProps) {\n containsExactChildren({\n children,\n componentName: SidenavLink.displayName,\n restrictions: [\n [Icon, { min: 1, max: 1 }],\n [Text, { min: 1, max: 1 }],\n ],\n });\n\n const { isOpen } = useContext(SidenavContext);\n\n // Implement ref to place tooltip inside Link DOM to enable contextual styling\n const ref = useRef(null);\n\n return (\n <Provider\n values={[[TextContext, { className: text({ className: transient() }) }]]}\n >\n <Tooltip isDisabled={isOpen}>\n <Tooltip.Trigger>\n <Link\n {...rest}\n ref={ref}\n className={composeRenderProps(classNames?.button, (className) =>\n link({ className }),\n )}\n >\n {composeRenderProps(children, (children) => (\n <>\n {children}\n <Icon className={transient()}>\n <ArrowNortheast />\n </Icon>\n </>\n ))}\n </Link>\n </Tooltip.Trigger>\n <Tooltip.Body parentRef={ref} placement='right' className={tooltip()}>\n {textValue}\n <Icon>\n <ArrowNortheast />\n </Icon>\n </Tooltip.Body>\n </Tooltip>\n </Provider>\n );\n}\nSidenavLink.displayName = 'Sidenav.Link';\n\nfunction SidenavDivider({ className, ...rest }: SidenavDividerProps) {\n return <hr {...rest} className={divider({ className })} />;\n}\nSidenavDivider.displayName = 'Sidenav.Divider';\n\nfunction SidenavAvatar({ children, className, ...rest }: SidenavAvatarProps) {\n containsAnyOfExactChildren({\n children,\n componentName: SidenavAvatar.displayName,\n restrictions: [\n [\n [Avatar, { min: 1, max: 1 }],\n [Heading, { min: 1, max: 1 }],\n [Text, { min: 0, max: 1 }],\n ],\n [\n [Icon, { min: 1, max: 1 }],\n [Heading, { min: 1, max: 1 }],\n [Text, { min: 0, max: 1 }],\n ],\n ],\n });\n\n return (\n <Provider\n values={[\n [IconContext, { size: 'large', className: avatarIcon() }],\n [\n HeadingContext,\n { className: avatarHeading({ className: transient() }) },\n ],\n [TextContext, { className: avatarText({ className: transient() }) }],\n [AvatarContext, { classNames: { avatar: avatarIcon() } }],\n ]}\n >\n <div {...rest} className={avatar({ className })}>\n {children}\n </div>\n </Provider>\n );\n}\nSidenavAvatar.displayName = 'Sidenav.Avatar';\n\nfunction SidenavMenu({\n icon,\n title,\n classNames,\n children,\n ...rest\n}: SidenavMenuProps) {\n containsExactChildren({\n children,\n componentName: SidenavMenu.displayName,\n restrictions: [[SidenavMenuItem, { min: 2 }]],\n });\n\n const { isOpen } = useContext(SidenavContext);\n const ref = useRef(null);\n\n return isOpen ? (\n <Disclosure\n className={composeRenderProps(classNames?.menu, (className) =>\n menu({ className }),\n )}\n >\n <Button\n {...rest}\n slot='trigger'\n className={composeRenderProps(classNames?.button, (className) =>\n menuButton({ className }),\n )}\n >\n {icon}\n <Heading slot='menu'>{title}</Heading>\n <Icon className={transient({ className: classNames?.icon })}>\n <ChevronDown className='transform group-expanded/menu:rotate-180' />\n </Icon>\n </Button>\n <DisclosurePanel\n className={composeRenderProps(\n classNames?.disclosurePanel,\n (className) => className ?? '',\n )}\n >\n <div className={panelContent({ className: classNames?.panelContent })}>\n {children}\n </div>\n </DisclosurePanel>\n </Disclosure>\n ) : (\n <DialogTrigger>\n <Tooltip isDisabled={isOpen}>\n <Tooltip.Trigger>\n <Button\n {...rest}\n ref={ref}\n className={composeRenderProps(classNames?.button, (className) =>\n menuButton({ className }),\n )}\n >\n {icon}\n </Button>\n </Tooltip.Trigger>\n <Tooltip.Body parentRef={ref} placement='right' className={tooltip()}>\n {title}\n </Tooltip.Body>\n </Tooltip>\n <Popover\n className={composeRenderProps(classNames?.popoverPanel, (className) =>\n menuPanel({ className }),\n )}\n placement='right top'\n shouldFlip={false}\n >\n <Heading slot='panel'>{title}</Heading>\n <div className={panelContent({ className: classNames?.panelContent })}>\n {children}\n </div>\n </Popover>\n </DialogTrigger>\n );\n}\nSidenavMenu.displayName = 'Sidenav.Menu';\n\nfunction SidenavMenuItem({\n className,\n children,\n ...rest\n}: SidenavMenuItemProps) {\n containsExactChildren({\n children,\n componentName: SidenavMenuItem.displayName,\n restrictions: [[Text, { min: 1, max: 1 }]],\n });\n\n return (\n <ToggleButton\n {...rest}\n className={composeRenderProps(className, (className) =>\n menuItem({ className }),\n )}\n >\n {children}\n </ToggleButton>\n );\n}\nSidenavMenuItem.displayName = 'Sidenav.Menu.Item';\n\nSidenavMenu.Item = SidenavMenuItem;\n\nSidenav.Trigger = SidenavTrigger;\nSidenav.Header = SidenavHeader;\nSidenav.Item = SidenavItem;\nSidenav.Link = SidenavLink;\nSidenav.Divider = SidenavDivider;\nSidenav.Avatar = SidenavAvatar;\nSidenav.Footer = SidenavFooter;\nSidenav.Content = SidenavContent;\nSidenav.Menu = SidenavMenu;\n"]}
|
|
1
|
+
{"version":3,"sources":["../../../src/components/sidenav/index.tsx"],"names":["item","text","transient","avatarIcon","menuPanel","menuItem","panelHeading","panelContent","SidenavStyles","uuid","Sidenav","className","de","Z","W","containsExactChildren","SidenavHeader","setIsOpen","useState","SidenavEventTypes","data","id","prev","useOn","isOpen","isHiddenWhenClosed","jsx","Provider","E","S","HeadingContext","heading","e","g","j","SidenavContext","sidenav","children","SidenavContent","rest","content","le","useContext","F","classNames","P","Button","te","v","D","emit","Icon","ChevronLeft","c","props","Y","SidenavFooter","SidenavTrigger","type","useEmit","event","Pressable","se","SidenavItem","SidenavAvatar","ref","IconContext","TextContext","w","jsxs","Tooltip","O","ToggleButton","composeRenderProps","U","l","tooltip","textValue","u","SidenavLink","useRef","H","oe","De","h","Avatar","Heading","x","Text","N","avatarHeading","R","AvatarContext","me","SidenavMenu","title","SidenavMenuItem","Disclosure","menu","X","ne","icon","ie"],"mappings":"+1BAmEE,CAAA,OACA,CAAA,EAAA,CAAAA,QACAC,EACA,CAAA,MAAA,CAAA,EAAAC,CAAAA,MACA,CAAA,UACA,CAAA,EAAA,CAAA,OACA,CAAA,EAAA,CAAA,IAAA,CAAA,EAAAC,CAAAA,gBAEA,CAAA,CAAA,CAAA,MACA,CAAA,EAAA,CAAA,aAEA,CAAA,EAAA,CAAA,UACA,CAAA,CAAA,CAAA,UACA,CAAA,EAAA,CAAA,IAAA,CAAA,EAAAC,CAAAA,OACA,CAAA,CAAA,CAAAC,kBACAC,CACA,CAAA,CAAA,WAAAC,CACF,EAAIC,UAGF,CAAA,EAAIC,SACJ,CAAA,EAAQ,CACV,YA0DgBC,CAAAA,EACd,CAAA,YACA,CAAA,CAAAC,CAAAA,CACAC,aAAA,EAAA,CAAA,CAAA,CAAAC,aAAA,CAAA,CAAA,EAAA,CAAAC,IAAA,EAAA,CAAA,wBAGe,CACfC,CAAAA,CAAsB,EACpB,CAAA,CAAA,CAAA,8BACuB,CAAA,CAAA,CAAA,QACvB,CAAA,CAAA,CAAA,GAAA,CAAc,CACZ,CAACC,CAAAA,qBAAe,CAAE,CAAA,SAAa,CAAE,CAAC,aACP,CAAA,CAAA,CAAK,YACT,aAG3B,CAAA,CAAA,CAAA,CAAA,CAAM,GAASC,CAAS,CAAA,CAAIC,GAAS,CAAK,EAoB1C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAlBMC,CAAAA,CAAkB,CAAA,GAAA,CAAA,CAAA,CAASC,GAA6B,CACxDA,CAAAA,CAAK,GAAA,CAAA,CAAA,CAAA,GAAQ,CAAA,CAAA,CAAA,CAAOC,GACtBJ,CAAAA,KAAqBK,CAAI,CAE7B,CAAC,CAAA,CAEDC,CAAAA,QAAMJ,CAAAA,KAAkB,CAAA,CAAA,OACjBK,KAAAA,CAAAA,iBAAUJ,CAAAA,UAAa,CAAA,CAAA,CAAA,OAChB,CAAI,EAEjB,GAEDG,CAAMJ,EAAkB,MAAQC,CAAAA,EAAAA,CAA4B,CACtDI,CAAAA,KAAAA,CAAUJ,iBAAAA,CAAK,QAAQ,CAAA,CAAA,CAAA,EAAOC,CAAAA,CAAAA,OAGnC,CAAA,EAEGI,GAAuBD,GAClB,CAAA,CAAA,IAIPE,EAAAA,CAACC,EAAAC,KACC,CAAAC,iBAAA,CAAA,KACE,CACEC,CAAAA,EAEE,CAAA,CAAA,EAAA,CAAA,CAAO,gBAEQC,CAAAA,CAAAA,KAAU,EAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAW7B,IAAa,CAC/C8B,IACAC,QAAA,CAAA,CAAA,8BAAiC,CAAA,CAAA,CAAAC,YAAA,EAAA,CAAA,SAA0B,CAC3D,EAAA,CAAA,CAAA,SAAS,CAAA,CAAA,EAAW5B,CAAAA,CAAAA,CAAa,CAAE,IAGzC,CACA,CAAC6B,SAAsB,CAAA,EAAA,CAAA,CAAA,SAGzB,CAAA,CAAA,EAAA,CAAA,CAAAT,CAAAA,CAAC,KAAA,CAAA,CACE,SACD,CAAA,EAAA,EAAA,CAAWU,CAAAA,CAAAA,CAAQ,CAAE,eACrB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,QAAqB,CAAAJ,GAAA,CAAA,KAEpB,CAAA,CAAA,GAAA,CAAAK,CAAAA,SAKD,CAAA,EAAA,CAAA,CAAA,SAAc,CAAA,CAAA,CAAA,CAAA,CAAA,WAEbC,CAAe,CAAE,EAAA,IAAA,CAAA,cAAWD,CAAAA,CAAU,CAAA,qBAEjC,CAAA,SAA4B,CAAA,CAAA,CAAA,UAAmB,CAAE,CAAC,cACzD,CAAA,CAAA,CAAA,CAAA,OAAQE,GAAM,iBAAWC,CAAAA,CAAAA,CAAQC,cAAE,CAAA,CAAA,SAAW,CAAA,EAC5C,EAAA,CAAA,CAAA,CAAA,CAAA,QAKTH,CAAAA,GAAe,CAAA,KAAA,CAAA,CAAA,GAAA,CAAc,CAAA,SAAA,CAAA,EAAA,CAAA,CAAA,YAEpBtB,CAAAA,CAAc,UAAEqB,CAAAA,CAAU,CAAA,CAAA,CAAA,CAAA,CAAA,WAAeE,CAAK,iBACM,CAAA,SACnDlB,CAAG,CAAA,CAAIqB,QAEf,CAAA,CAAA,CAAA,UACcH,CAAAA,CAAM,CAAA,GAAA,CAAA,CAAA,CAAA,CAAA,MAAoB,CAAA,CAAAI,OAAA,CAAAd,iBAAA,CAAA,MAAWe,CAAY,CAAA,CAAA,EAAA,CAAA,CAAO,CAAC,CAAAC,UACnE,CAAA,CAAA,CAAA,CAAA,OAACC,GAAAA,CAAAC,MACC,CAAA,CAAA,GAAA,CAAA,CAAA,SAA0C,CAAA,EAAA,CAAA,CAASpC,SACxC,CAAA,CAAA,EAAA,MAAW,CACtB,CAAA,CACA,QAAS,CAAAqC,IAAA,CAAAC,MAAMC,CAAAA,CAAK,sCAGpBxB,CAACyB,GAAK,EAAA,CAAA,CAAA,SAAqB,CACzB,CAAA,CAAA,CAAA,CAAA,CAAA,OAACC,CAAA,IACH,CAAA,CAAA,CACF,EACF,CAEJ,CACApC,CAAAA,CAAc,CAAA,QAAA,CAAA,CAAA,CAAc,CAAAgB,GAAA,CAAAqB,IAAA,CAAA,CAAA,SAAA,CAAA,CAE5B,EAAA,CAAA,QAAuBC,CAAAA,GAA2B,CAChDC,iBAAO7B,CAAAA,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,WAEV8B,CAAAA,gBAA4B,CAAA,SAAA,CAAA,CAAA,CAAA,CAE5B,CAAA,OAAAxB,GAASyB,CAAAA,aAA2B,CAAA,CAAA,CAAA,CAAKC,CAAAA,CAAM,WAC7C,CAAM,gBAA+B,CAAA,SAAuB,CAAA,CAAA,CAAA,QAItDR,CAAAA,CAAOS,IAAwCC,CAAK,CAAC,CAAA,GAE3D,CAAA,CAAA,CAAA,CAAA,KACGC,CAAA,CAAW,CAAA,CAAA,CAAGtB,CAAAA,MAAM,aAAeW,CAAK,CAAE,CAAA,CAAA,CAAA7B,CAAG,KAC3C,CAAA,GAAA,CAAA,CAAA,CAAAgB,CAAAA,OACH,CAEJR,iBACA4B,CAAAA,CAAe,cAAcK,SAAA,CAAA,CAAA,GAAA,CAAA,CAAA,OAAA,CAAA,IAE7B,CAAA,CAAA,CAAA,EAAA,CAASC,EAAY,CACnB,CAAA,QAAA1B,CAAAA,CACA,CAAA,CAAA,CAAA,CAAA,CAAA,WACA,CAAA,iBAG2B,CACzB,SAAAA,EACA,CAAA,QAAA,CAAA,CAAA,CAAA,sBACA,CAAA,CAAA,CAAA,GAAA,CAAc,CACZ,CAAC,CAAC2B,0BAAAA,CAAe,CAAE,QAAQ,CAAA,CAAK,CAAE,aAElB,CAAA,CAAG,CAAA,WACR,CAAA,YACX,CACF,CACF,CAAC,CAAA,CAED,CAAA,CAAA,GAAM,CAAE,CAAA,CAAA,GAAA,CAAA,CAAAxC,CAAO,EAAIkB,CAAAA,CAAWP,CAAckB,KAGtCY,CAAAA,GAAa,CAAA,CAAA,CAAA,GAEnB,UACEvC,CAAAA,CAACC,GACC,CAAA,CAAA,CAAA,GAAA,CAAQ,CACN,CAACuC,CAAAA,CAAa,CAAE,CAAA,CAAA,CAAA,YAAgB,CAChC,CAACC,CAAAA,CAAatB,UAAE,iBAAgB,CAAE,CAAA,OAAAb,GAAA,CAAW9B,QAAAA,CAAU,CAAE,MAG3D,CAAA,CAAA,CAAAkE,WAAA,CAAA,CAAA,IAAAC,CAACC,QAAQ,CAAA,CAAR,CAAgB,CAAAC,WAAA,CAAA,CAAA,SACf,aAACC,CAAA,CACE,EAAA,CAAGjC,CAAAA,CACJ,CAAA,CAAA,CAAA,sBACWkC,OAA+B,CAAA,CAAA,UACjC,CAAA,CAAA,CAAA,QAAU,CAAC,CACpBzC,GAAA,CAEC0C,YAAA,CAAA,CAAA,GAAA,CAAA,CAAA,GACH,CAAA,CACAhD,UAAS,CAAAiD,kBAAA,CAAA,CAAA,EAAWV,YAAe,CAAA,CAAA,SAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAWW,aACnDC,GAAAA,CACHC,OAAA,CAAA,CACF,SAIM,CAAA,CAAA,CAAA,2BAEZ,CAAA,CAAA,EAASC,CAAY,QACnB,CAAA,CAAA1C,CAAAA,CACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,0BAIsB,CACpB,SAAAA,CAAAA,CACA,sBAA2B,CAAA,CAAA,CAAA,SAC3B,CAAA,CAAA,CAAA,GAAA,CAAc,CACZ,CAACc,CAAAA,qBAAM,CAAE,CAAA,SAAa,CAAE,CAAC,aACR,CAAA,CAAA,CAAK,YAIpB,aAAwBhB,CAAc,CAAAkB,IAGtCY,CAAAA,CAAMe,MAAW,GAEvB,CAAA,CAAA,CAAA,CAAA,CAAA,CACEtD,IAAAA,CAACC,CAAAA,GACC,CAAA,CAAA,CAAA,GAAQ,CAAC,CAACwC,CAAAA,CAAa,CAAE,CAAA,CAAA,CAAA,KAAA,CAAA,MAAkB,CAAA,CAAA,CAAA,CAAAtB,UAAA,CAAA,CAAA,CAAW3C,EAAU,CAAE+E,MAAC,CAAE,IAErE,CAAA,CAAA,OAAAZ,GAAAA,CAACC,QAAAA,CAAQ,QAAR,CAAgB,CAAAC,WAAA,CAAA,CAAA,SACf,CAAA,CAAA,CAAA,CAAA,WAAC,EACE,CAAA,CAAGhC,CAAAA,CACJ,CAAA,CAAA,QACA,CAAAS,IAAA,CAAA8B,OAAA,CAAA,OAA0C,CAAA,CAAA,UACnC,CAAE,CAAA,CAAA,QAAAnE,CAAU,CAACqB,GACpB,CAAAkD,cAEoB7C,CAAAA,CAAWA,UAE1B,CAAAsC,kBAAA,CAAA,CAAA,EAAA,MACDjD,CAACyB,CAAAA,EAAK,EAAA,CAAA,CAAA,SAAqB,CACzB,CAAA,CAAA,CAAA,CAAA,CAAA,QAAC,mBAAe,CAAA,CAClB,CAAA,CAAA,EAEHH,IAAA,CACHmC,QACAd,EAACC,QAAQ,CAAA,CAAA,CAAA,CAAAtC,GAAWiC,CAAAA,IAAK,WAAU,CAAA,CAAA,EAAA,CAAA,QAAQ,CAAAjC,GAAA,CAAAoD,cAAWR,CAAAA,EAAQ,CAC3D,aAAAC,CAAAA,OACDnD,CAAAA,CAACyB,YACCzB,iBAMZ,CACAqD,SAAY,CAAA,CAAA,EAAA,CAAc,QAAA,CAAA,CAAA,CAAA,CAAA/C,GAAA,CAAAqB,IAE1B,CAAA,CAAA,QAASW,CAAchC,GAAE,CAAAoD,cAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA/C,CAAAA,CAAU,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,WACjC,CAAA,cACE,CAAA,SACA,CAAA,CAAA,CAAA,QAAe2B,CAAc,YAC7B,CAAA,CAAA,GAAA,CAAA,CAAA,CAAA,CAAA,OAEKqB,4BAAQ,QAAU,CAAA,CAAA,CAAK,aACP,CAAG,CAAA,CAAA,WACX,CAAA,aAEX,CACE,CAAClC,OAAQ,CAAA,CAAA,IAAQ,CAAA,CAAA,GAAO,CAAC,CAAA,CACzB,CAACmC,CAAAA,CAASC,OAAE,CAAA,CAAA,GAAK,CAAG,KAAO,CAAC,CAAA,CAC5B,CAACC,EAAMC,IAAE,CAAA,CAAA,GAAK,CAAG,CAAA,CAAA,GAAO,CAAC,CAC3B,CACF,CACF,CAAC,CAAA,CAGC/D,CAAAA,IAACC,CAAAA,CAAA,SAEG,CAACuC,CAAAA,CAAa,CAAE,WAAM,GAAA,CAAA,CAAA,CAAA,GAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAAuB,IAAA,CAAA,CAAWtF,GAAa,CAAC,EACxD,GAEE,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA6B,GAAA,CAAW0D,UAAc,MAAE,CAAA,CAAA,CAAAtB,WAAA,CAAWlE,CAAAA,IAAe,CACzD,OACgB,CAAA,WAAsB,EAAE,CAAA,CAAA,CAAA,CAAAyF,cAAA,CAAA,CAAA,UACxC,EAACC,CAAAA,CAAe,SAAE,CAAA,CAAA,EAAc,CAAA,CAAA,CAAA,CAAA,CAAA,CAAArB,WAAQpE,CAAAA,CAAW,uBAGpD,CAAK,GAAGoC,CAAAA,CAAM,CAAA,CAAA,CAAA,CAAAsD,aAAA,CAAA,CAAA,kBAA+B,CAAA,CAC3C,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,QAKT7B,CAAAA,GAAc,YAAc,CAAA,SAAA,CAAA,EAAA,CAAA,CAAA,SAE5B,CAAA,CAAS8B,CAAAA,CAAY,CACnB,QACA,CAAA,CAAA,CAAA,CAAA,CAAAC,CAAAA,CACA,CAAA,CAAA,WACA,CAAA,gBAEmB,CACnBhF,SACE,CAAA,CAAA,CAAAsB,IACA,CAAA,CAAA,CAAA,KAAA,CAAA,CAAA,CAAA,qBACA,CAAA,CAAA,CAAA,GAAA,CAAc,CAAC,CAAC2D,CAAAA,qBAAiB,CAAE,CAAA,QACpC,CAAA,CAED,cAAe,CAAA,CAAItD,aACI,YAGrB2B,CAAC4B,GAAA,CACC,CAAA,GAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAWxB,CAAAA,CAAmB7B,YAC5BsD,CAAAA,CAAK,CAAE,CAAArD,UAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAAoC,MAAA,CAAAtE,KAGT,CAAA,OAAA,CAAA,CAAA0D,IAAAA,CAACvB,UAAA,CACE,CAAA,SACI,2BACL,CAAA,CAAA,EAAA,EAAA,CAAA,CAAA,SAA0C,CAAA,CAAA,CAAA,CAAA,CAASnC,SACpC,CAAA,CAAAqC,IAAA,CAAAC,MAAA,CAAA,CAAAtC,GACf,CAAA,CAEC,IAAA,CAAA,SACA2E,CAAAA,SAAa,CAAAX,kBAAA,CAAA,CAAA,UAAQoB,EAAM,CAAA,CAC5BrE,CAAAA,SAAM,CAAA,CAAA,CAAA,CAAA,CAAWxB,CAAAA,QAAY,CAAA,CAAA,CAAA,CAAW0C,WAAY,CAAA,CAAA,KAClD,MAAA,CAAA,QAAa,CAAA,CAAA,CAAA,CAAA,CAAAZ,GAAA,CAAAqB,IAAA,CAAU,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA,SAAA,CAAA,CAAA,EAAA,IAAA,CAAA,CAAA,CAAA,QAAA,CAA2CrB,GAAA,CACpEmE,aACF,0DAOEzE,CAAAA,CAACM,GAAA,CAAAoE,eAAA,CAAA,CAAA,4BAAe7F,CAAAA,CAAa,EAAE,wBAAoC,CAAC,CAAA,QACjE,CAAAyB,GAAAK,CAAAA,KAEL,CACF,CAAA,SAGE,CAAA,CAAA,CAAA,CAAA,SAAS,CAAA,CAAA,EAAA,eAAoBb,QAC3B,CAAA,CAAA,CAAA,CAAAE,CAAAA,CAACoB,CAAAA,CAAA,CACE,CAAAE,IAAA,CAAGT,aACJ,CAAA,CAAA,uBACWkC,OAA+B,CAAA,CAAA,UAC3B,CAAA,CAAA,CAAA,QAAW,CAC1B,CAAAzC,GAEC,CAAAiB,MAAA,CAAA,CAAA,GAAA,CAAA,CAAAoD,GACH,CACA3E,EAAC4C,SAAQ,CAAAK,kBAAA,CAAA,CAAWV,EAAK,UAAU,CAAA,CAAA,CAAA,SAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAWW,aACnDmB,GAAAA,CACHjB,OAAA,CAAA,CACF,SAEE,CAAA,CAAA,CAAA,SAA8BlC,CAAAA,OAAY,CAAA,SACxCxC,CAAAA,CAAAA,EAAY,CAAA,QAAA,CAAAO,CAAU,CAAC,CACzB,CAAA,CACA,CAAA,CAAAqC,IAAA,CAAAsD,OAAA,CAAA,CAAA,SAAU,CAAA3B,kBAAA,CAAA,CAAA,cACE,CAEZ,CAAA,EAAA,EAAA,CAAA,CAAA,aAAc,CAAA,CAAA,SAAS,CAAA,WACtB,CAAA,UAAI,CAAA,KAAA,CAAA,uBAAqC/B,IAAY,CAAA,OAAA,CAAA,gBACnDP,CAAAA,OAGP,SAGQ,CAAA,CAAA,CAAA,CAAA,SAAc,CAAA,CAAA,EAAA,YAE1B,CAAA,CAAS2D,CAAAA,QACP,CAAA,CAAA,CAAA,CAAArF,CAAAA,CACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,WAGA,CAAA,cACE,CAAA,SACA,CAAA,CAAA,CAAA,SAA+B,CAAA,CAAA,CAAA,QAAA,CAC/B,CAAA,CAAA,GAAA,CAAA,CAAA,CAAA,CAAA,4BAAsB,CAAE,CAAA,QAAQ,CAAK,CAAE,CAAC,aAKlC4B,CAAAA,CACJ,YAA8B5B,CAAAA,YACjB,CAAA,CAAA,CAAA8E,IAAA,CAAA,CAAA9E,GACb,EAEC,CAAA,GAAA,CAAA,CAAA,CAAA,CAAA,CAAA0B,CAAAA,CACH,CAEJL,GACAgE,aAAgB,CAAA,CAAA,GAAA,CAAA,CAAA,SAAc,CAAArB,kBAAA,CAAA,CAAA,CAAA,CAAA,EAAA,EAAA,CAAA,CAAA,SAElB,CAAA,CAAOqB,CAAAA,CAEnBtF,EAAQ,QAAU+C,CAAAA,CAClB/C,CAAAA,CAAQ,CAAA,CAAA,CAAA,WACA,CAAA,mBAEA,CAAA,CAASsD,CAAAA,IACT,CAAA,CAAA,CAAA,CAAA,CAAA,OACA,CAAA,CAAA,CAAA,CAAA,CAAA,MACA,CAAA,CAAA,CAAA,CAAO8B,CAAAA,IAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,IAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,MAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,MAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,OAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,IAAAA,CAAAA,CAAAA","file":"index.js","sourcesContent":["/*\n * Copyright 2025 Hypergiant Galactic Systems Inc. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n'use client';\n\nimport 'client-only';\nimport { useEmit, useOn } from '@accelint/bus/react';\nimport { isUUID, type UniqueId, uuid } from '@accelint/core';\nimport { ArrowNortheast, ChevronDown, ChevronLeft } from '@accelint/icons';\nimport { createContext, useContext, useRef, useState } from 'react';\nimport {\n Button,\n composeRenderProps,\n DEFAULT_SLOT,\n DialogTrigger,\n Disclosure,\n DisclosurePanel,\n Header,\n Heading,\n HeadingContext,\n Link,\n Popover,\n Pressable,\n Provider,\n Text,\n TextContext,\n ToggleButton,\n} from 'react-aria-components';\nimport { containsAnyOfExactChildren, containsExactChildren } from '@/lib/react';\nimport { Avatar, AvatarContext } from '../avatar';\nimport { DividerContext } from '../divider';\nimport { Icon, IconContext } from '../icon';\nimport { Tooltip } from '../tooltip';\nimport { SidenavEventTypes } from './events';\nimport { SidenavStyles } from './styles';\nimport type {\n SidenavAvatarProps,\n SidenavCloseEvent,\n SidenavContentProps,\n SidenavContextValue,\n SidenavEvent,\n SidenavFooterProps,\n SidenavHeaderProps,\n SidenavItemProps,\n SidenavLinkProps,\n SidenavMenuItemProps,\n SidenavMenuProps,\n SidenavOpenEvent,\n SidenavProps,\n SidenavToggleEvent,\n SidenavTriggerProps,\n} from './types';\n\nconst {\n sidenav,\n content,\n header,\n toggle,\n heading,\n divider,\n item,\n text,\n transient,\n avatar,\n avatarHeading,\n avatarIcon,\n avatarText,\n link,\n tooltip,\n menu,\n menuButton,\n menuHeading,\n menuPanel,\n menuItem,\n panelHeading,\n panelContent,\n} = SidenavStyles();\n\nconst SidenavContext = createContext<SidenavContextValue>({\n id: uuid(),\n isOpen: false,\n});\n\n/**\n * Sidenav - Collapsible side navigation panel\n *\n * Provides a hierarchical collapsible side navigation intended to be used\n * inside a Drawer.Layout. Supports headers, avatars, nested menus, and items.\n *\n * @example\n * <Drawer.Layout push=\"left\">\n * <Drawer.Layout.Main className=\"col-start-2\">\n * <Sidenav.Trigger>\n * <Button variant=\"icon\" size=\"large\">\n * <Icon>\n * <MenuIcon />\n * </Icon>\n * </Button>\n * </Sidenav.Trigger>\n * </Drawer.Layout.Main>\n * <Sidenav>\n * <Sidenav.Header>\n * <Sidenav.Avatar>\n * <Icon><AppLogo /></Icon>\n * <Heading>Application Header</Heading>\n * <Text>subheader</Text>\n * </Sidenav.Avatar>\n * </Sidenav.Header>\n * <Sidenav.Content>\n * <Heading>Navigation</Heading>\n * <Sidenav.Item>\n * <Icon><HomeIcon /></Icon>\n * <Text>Home</Text>\n * </Sidenav.Item>\n * <Divider />\n * <Sidenav.Item isSelected>\n * <Icon><SettingsIcon /></Icon>\n * <Text>Settings</Text>\n * </Sidenav.Item>\n * <Divider />\n * <Sidenav.Menu title=\"More Options\" icon={<Icon><MenuIcon /></Icon>}>\n * <Sidenav.Menu.Item>\n * <Text>Sub Item 1</Text>\n * </Sidenav.Menu.Item>\n * <Sidenav.Menu.Item>\n * <Text>Sub Item 2</Text>\n * </Sidenav.Menu.Item>\n * </Sidenav.Menu>\n * </Sidenav.Content>\n * <Sidenav.Footer>\n * <Sidenav.Avatar>\n * <Icon><UserIcon /></Icon>\n * <Heading>User Name</Heading>\n * <Text>john@example.com</Text>\n * </Sidenav.Avatar>\n * </Sidenav.Footer>\n * </Sidenav>\n * </Drawer.Layout>\n */\nexport function Sidenav({\n id,\n className,\n isHiddenWhenClosed,\n children,\n ...rest\n}: SidenavProps) {\n containsExactChildren({\n children,\n componentName: Sidenav.displayName,\n restrictions: [\n [SidenavHeader, { min: 1, max: 1 }],\n [SidenavContent, { min: 1, max: 1 }],\n [SidenavFooter, { min: 0, max: 1 }],\n ],\n });\n const [isOpen, setIsOpen] = useState(false);\n\n useOn(SidenavEventTypes.toggle, (data: SidenavToggleEvent) => {\n if (data.payload.id === id) {\n setIsOpen((prev) => !prev);\n }\n });\n\n useOn(SidenavEventTypes.open, (data: SidenavOpenEvent) => {\n if (!isOpen && data.payload.id === id) {\n setIsOpen(true);\n }\n });\n\n useOn(SidenavEventTypes.close, (data: SidenavCloseEvent) => {\n if (isOpen && data.payload.id === id) {\n setIsOpen(false);\n }\n });\n\n if (isHiddenWhenClosed && !isOpen) {\n return null;\n }\n\n return (\n <Provider\n values={[\n [\n HeadingContext,\n {\n slots: {\n [DEFAULT_SLOT]: {\n className: heading({ className: transient() }),\n },\n menu: { className: menuHeading({ className: transient() }) },\n panel: { className: panelHeading() },\n },\n },\n ],\n [SidenavContext, { id, isOpen }],\n ]}\n >\n <nav\n {...rest}\n className={sidenav({ className })}\n data-open={isOpen || null}\n >\n {children}\n </nav>\n </Provider>\n );\n}\nSidenav.displayName = 'Sidenav';\n\nfunction SidenavContent({ className, children, ...rest }: SidenavContentProps) {\n return (\n <Provider values={[[DividerContext, { className: divider() }]]}>\n <div {...rest} className={content({ className })}>\n {children}\n </div>\n </Provider>\n );\n}\nSidenavContent.displayName = 'Sidenav.Content';\n\nfunction SidenavHeader({ children, classNames, ...rest }: SidenavHeaderProps) {\n const emit = useEmit<SidenavToggleEvent>(SidenavEventTypes.toggle);\n const { id } = useContext(SidenavContext);\n\n return (\n <Header {...rest} className={header({ className: classNames?.header })}>\n <Button\n className={composeRenderProps(classNames?.button, (className) =>\n toggle({ className }),\n )}\n onPress={() => emit({ id })}\n >\n {children}\n <Icon className={transient()}>\n <ChevronLeft />\n </Icon>\n </Button>\n </Header>\n );\n}\nSidenavHeader.displayName = 'Sidenav.Header';\n\nfunction SidenavFooter(props: SidenavFooterProps) {\n return <footer {...props} />;\n}\nSidenavFooter.displayName = 'Sidenav.Footer';\n\nfunction SidenavTrigger({ children, for: type, ...rest }: SidenavTriggerProps) {\n const [event, id] = (isUUID(type) ? ['toggle', type] : type.split(':')) as [\n 'close' | 'open' | 'toggle',\n UniqueId,\n ];\n const emit = useEmit<SidenavEvent>(SidenavEventTypes[event]);\n\n return (\n <Pressable {...rest} onPress={() => emit({ id })}>\n {children}\n </Pressable>\n );\n}\nSidenavTrigger.displayName = 'Sidenav.Trigger';\n\nfunction SidenavItem({\n children,\n classNames,\n textValue,\n ...rest\n}: SidenavItemProps) {\n containsAnyOfExactChildren({\n children,\n componentName: SidenavItem.displayName,\n restrictions: [\n [[SidenavAvatar, { min: 1, max: 1 }]],\n [\n [Icon, { min: 1, max: 1 }],\n [Text, { min: 1, max: 1 }],\n ],\n ],\n });\n\n const { isOpen } = useContext(SidenavContext);\n\n // Implement ref to place tooltip inside Button DOM to enable contextual styling\n const ref = useRef(null);\n\n return (\n <Provider\n values={[\n [IconContext, { size: 'medium' }],\n [TextContext, { className: text({ className: transient() }) }],\n ]}\n >\n <Tooltip.Trigger isDisabled={isOpen}>\n <ToggleButton\n {...rest}\n ref={ref}\n className={composeRenderProps(classNames?.button, (className) =>\n item({ className }),\n )}\n >\n {children}\n </ToggleButton>\n <Tooltip parentRef={ref} placement='right' className={tooltip()}>\n {textValue}\n </Tooltip>\n </Tooltip.Trigger>\n </Provider>\n );\n}\nSidenavItem.displayName = 'Sidenav.Item';\n\nfunction SidenavLink({\n children,\n classNames,\n textValue,\n ...rest\n}: SidenavLinkProps) {\n containsExactChildren({\n children,\n componentName: SidenavLink.displayName,\n restrictions: [\n [Icon, { min: 1, max: 1 }],\n [Text, { min: 1, max: 1 }],\n ],\n });\n\n const { isOpen } = useContext(SidenavContext);\n\n // Implement ref to place tooltip inside Link DOM to enable contextual styling\n const ref = useRef(null);\n\n return (\n <Provider\n values={[[TextContext, { className: text({ className: transient() }) }]]}\n >\n <Tooltip.Trigger isDisabled={isOpen}>\n <Link\n {...rest}\n ref={ref}\n className={composeRenderProps(classNames?.button, (className) =>\n link({ className }),\n )}\n >\n {composeRenderProps(children, (children) => (\n <>\n {children}\n <Icon className={transient()}>\n <ArrowNortheast />\n </Icon>\n </>\n ))}\n </Link>\n <Tooltip parentRef={ref} placement='right' className={tooltip()}>\n {textValue}\n <Icon>\n <ArrowNortheast />\n </Icon>\n </Tooltip>\n </Tooltip.Trigger>\n </Provider>\n );\n}\nSidenavLink.displayName = 'Sidenav.Link';\n\nfunction SidenavAvatar({ children, className, ...rest }: SidenavAvatarProps) {\n containsAnyOfExactChildren({\n children,\n componentName: SidenavAvatar.displayName,\n restrictions: [\n [\n [Avatar, { min: 1, max: 1 }],\n [Heading, { min: 1, max: 1 }],\n [Text, { min: 0, max: 1 }],\n ],\n [\n [Icon, { min: 1, max: 1 }],\n [Heading, { min: 1, max: 1 }],\n [Text, { min: 0, max: 1 }],\n ],\n ],\n });\n\n return (\n <Provider\n values={[\n [IconContext, { size: 'large', className: avatarIcon() }],\n [\n HeadingContext,\n { className: avatarHeading({ className: transient() }) },\n ],\n [TextContext, { className: avatarText({ className: transient() }) }],\n [AvatarContext, { classNames: { avatar: avatarIcon() } }],\n ]}\n >\n <div {...rest} className={avatar({ className })}>\n {children}\n </div>\n </Provider>\n );\n}\nSidenavAvatar.displayName = 'Sidenav.Avatar';\n\nfunction SidenavMenu({\n icon,\n title,\n classNames,\n children,\n ...rest\n}: SidenavMenuProps) {\n containsExactChildren({\n children,\n componentName: SidenavMenu.displayName,\n restrictions: [[SidenavMenuItem, { min: 2 }]],\n });\n\n const { isOpen } = useContext(SidenavContext);\n const ref = useRef(null);\n\n return isOpen ? (\n <Disclosure\n className={composeRenderProps(classNames?.menu, (className) =>\n menu({ className }),\n )}\n >\n <Button\n {...rest}\n slot='trigger'\n className={composeRenderProps(classNames?.button, (className) =>\n menuButton({ className }),\n )}\n >\n {icon}\n <Heading slot='menu'>{title}</Heading>\n <Icon className={transient({ className: classNames?.icon })}>\n <ChevronDown className='transform group-expanded/menu:rotate-180' />\n </Icon>\n </Button>\n <DisclosurePanel\n className={composeRenderProps(\n classNames?.disclosurePanel,\n (className) => className ?? '',\n )}\n >\n <div className={panelContent({ className: classNames?.panelContent })}>\n {children}\n </div>\n </DisclosurePanel>\n </Disclosure>\n ) : (\n <DialogTrigger>\n <Tooltip.Trigger isDisabled={isOpen}>\n <Button\n {...rest}\n ref={ref}\n className={composeRenderProps(classNames?.button, (className) =>\n menuButton({ className }),\n )}\n >\n {icon}\n </Button>\n <Tooltip parentRef={ref} placement='right' className={tooltip()}>\n {title}\n </Tooltip>\n </Tooltip.Trigger>\n <Popover\n className={composeRenderProps(classNames?.popoverPanel, (className) =>\n menuPanel({ className }),\n )}\n placement='right top'\n shouldFlip={false}\n >\n <Heading slot='panel'>{title}</Heading>\n <div className={panelContent({ className: classNames?.panelContent })}>\n {children}\n </div>\n </Popover>\n </DialogTrigger>\n );\n}\nSidenavMenu.displayName = 'Sidenav.Menu';\n\nfunction SidenavMenuItem({\n className,\n children,\n ...rest\n}: SidenavMenuItemProps) {\n containsExactChildren({\n children,\n componentName: SidenavMenuItem.displayName,\n restrictions: [[Text, { min: 1, max: 1 }]],\n });\n\n return (\n <ToggleButton\n {...rest}\n className={composeRenderProps(className, (className) =>\n menuItem({ className }),\n )}\n >\n {children}\n </ToggleButton>\n );\n}\nSidenavMenuItem.displayName = 'Sidenav.Menu.Item';\n\nSidenavMenu.Item = SidenavMenuItem;\n\nSidenav.Trigger = SidenavTrigger;\nSidenav.Header = SidenavHeader;\nSidenav.Item = SidenavItem;\nSidenav.Link = SidenavLink;\nSidenav.Avatar = SidenavAvatar;\nSidenav.Footer = SidenavFooter;\nSidenav.Content = SidenavContent;\nSidenav.Menu = SidenavMenu;\n"]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import {tv}from'./../../lib/utils.js';const
|
|
1
|
+
import {tv}from'./../../lib/utils.js';const d=tv({slots:{sidenav:["group/sidenav fg-a11y-on-accent absolute left-0 row-span-full flex h-full flex-col gap-xs bg-surface-default p-m","closed:items-center","group-data-[push~=left]/layout:relative"],content:"flex h-full max-h-full w-fit flex-col gap-xs group-open/sidenav:w-full group-closed/sidenav:items-center",header:"mb-m flex justify-center",avatar:['grid w-full grid-cols-[auto_1fr] grid-rows-2 items-center gap-x-m [grid-template-areas:"content_heading"_"content_text"] group-closed/sidenav:flex'],avatarIcon:"[grid-area:content]",avatarHeading:"fg-primary-bold text-left text-body-m [grid-area:heading]",avatarText:"fg-primary-muted grow-1 text-left text-body-s [grid-area:text]",toggle:["flex cursor-pointer items-center gap-s rounded-medium p-xs group-open/sidenav:px-s","enabled:hover:bg-interactive-muted-hover","enabled:focus-visible:bg-interactive-muted-hover enabled:focus-visible:outline-none","enabled:pressed:bg-interactive-muted-pressed"],divider:"my-s",heading:"text-body-xs uppercase",item:["group/item flex w-full cursor-pointer items-center justify-center gap-s rounded-medium p-xs text-body-m","group-open/sidenav:px-s group-closed/sidenav:max-w-fit","enabled:hover:bg-interactive-muted-hover","enabled:focus-visible:bg-interactive-muted-hover enabled:focus-visible:outline-none","enabled:pressed:bg-accent-primary-pressed","enabled:selected:bg-accent-primary-bold","enabled:selected:hover:bg-accent-primary-hover","enabled:selected:focus-visible:bg-accent-primary-hover","enabled:selected:pressed:bg-accent-primary-pressed","disabled:fg-disabled disabled:cursor-not-allowed"],text:"grow-1 text-left text-body-s",transient:"group-closed/sidenav:hidden",link:["group/link flex w-full cursor-pointer items-center justify-center gap-s rounded-medium p-xs text-body-m","group-open/sidenav:w-full group-closed/sidenav:max-w-fit","enabled:hover:bg-interactive-muted-hover","enabled:focus-visible:bg-interactive-muted-hover enabled:focus-visible:outline-none","enabled:pressed:bg-accent-primary-pressed","disabled:fg-disabled disabled:cursor-not-allowed"],tooltip:["absolute flex items-center gap-s whitespace-nowrap text-body-s","group-disabled/item:fg-disabled group-disabled/link:fg-disabled"],menu:"group/menu relative text-body-s",menuButton:["flex w-full cursor-pointer items-center justify-center gap-s rounded-medium p-xs","group-closed/sidenav:max-w-fit","enabled:hover:bg-interactive-muted-hover","enabled:pressed:bg-interactive-muted-hover enabled:focus-visible:bg-interactive-muted-hover enabled:focus-visible:outline-none"],menuHeading:"flex-1 text-left",menuPanel:["fg-primary-bold rounded-medium bg-surface-raised outline outline-static"],menuItem:["flex w-full cursor-pointer items-center gap-s rounded-medium p-s text-left text-body-s","group-expanded/menu:block group-open/sidenav:group-expanded/menu:pl-[32px]","enabled:hover:bg-interactive-muted-hover","enabled:focus-visible:bg-interactive-muted-hover enabled:focus-visible:outline-none","enabled:pressed:bg-accent-primary-pressed","enabled:selected:bg-accent-primary-bold","enabled:selected:hover:bg-accent-primary-hover","enabled:selected:focus-visible:bg-accent-primary-hover","enabled:selected:pressed:bg-accent-primary-pressed","disabled:fg-disabled disabled:cursor-not-allowed"],panelHeading:"min-w-[172px] rounded-t-medium bg-surface-overlay px-m py-s text-body-s",panelContent:"flex flex-col gap-xs bg-surface-default px-xs py-xs"}});export{d as SidenavStyles};//# sourceMappingURL=styles.js.map
|
|
2
2
|
//# sourceMappingURL=styles.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/sidenav/styles.ts"],"names":["e"],"mappings":"sCAeE,MAAA,CAAO,CACLA,EAAA,CAAA,CAAA,KAAS,CACP,4HACA,CAAA,qBACA,CAAA,yCAGA,CAAA,CAAA,OAAA,CAAA,4IAGA,CAAA,MAAA,CAAA,CAAA,oJAEF,CAAA,CAAA,UAAY,CAAA,mCACG,CAAA,2DACf,CAAA,wKAIE,CAAA,0CACA,CAAA,qFACA,CAAA,
|
|
1
|
+
{"version":3,"sources":["../../../src/components/sidenav/styles.ts"],"names":["e"],"mappings":"sCAeE,MAAA,CAAO,CACLA,EAAA,CAAA,CAAA,KAAS,CACP,4HACA,CAAA,qBACA,CAAA,yCAGA,CAAA,CAAA,OAAA,CAAA,4IAGA,CAAA,MAAA,CAAA,CAAA,oJAEF,CAAA,CAAA,UAAY,CAAA,mCACG,CAAA,2DACf,CAAA,wKAIE,CAAA,0CACA,CAAA,qFACA,CAAA,8CAEO,CAAA,CAAA,cACA,CAAA,OAAA,CAAA,wBAEP,CAAA,IAAA,CAAA,CAAA,yGACA,CAAA,wDACA,CAAA,gIAEA,CAAA,2CACA,CAAA,yCACA,CAAA,gDACA,CAAA,wDACA,CAAA,oDACA,CAAA,kDAEI,CAAA,CAAA,IAAA,CAAA,+BACK,SAAA,CAAA,6BAET,CAAA,IAAA,CAAA,CAAA,yGACA,CAAA,0DACA,CAAA,0CACA,CAAA,qFACA,CAAA,2CACA,CAAA,kDAEO,CACP,CAAA,OAAA,CAAA,CAAA,gEACA,CAAA,yGAGF,CAAA,UACE,CAAA,CAAA,kFACA,CAAA,gCACA,CAAA,0CACA,CAAA,gIAEF,CAAA,CAAA,WAAa,CAAA,mBACF,SACT,CAAA,CAAA,yEAEF,CAAU,CACR,QAAA,CAAA,CAAA,wFACA,CAAA,4EACA,CAAA,0CACA,CAAA,iIAEA,CAAA,yCACA,CAAA,gDACA,CAAA,wDACA,CAAA,oDACA,CAAA,gEAGA,CAAA,yEACF,CAAA,YAAc,CAAA,qDAEjB,CAAA,CAAA","file":"styles.js","sourcesContent":["/*\n * Copyright 2025 Hypergiant Galactic Systems Inc. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport { tv } from '@/lib/utils';\n\nexport const SidenavStyles = tv({\n slots: {\n sidenav: [\n 'group/sidenav fg-a11y-on-accent absolute left-0 row-span-full flex h-full flex-col gap-xs bg-surface-default p-m',\n 'closed:items-center',\n 'group-data-[push~=left]/layout:relative',\n ],\n content:\n 'flex h-full max-h-full w-fit flex-col gap-xs group-open/sidenav:w-full group-closed/sidenav:items-center',\n header: 'mb-m flex justify-center',\n avatar: [\n 'grid w-full grid-cols-[auto_1fr] grid-rows-2 items-center gap-x-m [grid-template-areas:\"content_heading\"_\"content_text\"] group-closed/sidenav:flex',\n ],\n avatarIcon: '[grid-area:content]',\n avatarHeading: 'fg-primary-bold text-left text-body-m [grid-area:heading]',\n avatarText:\n 'fg-primary-muted grow-1 text-left text-body-s [grid-area:text]',\n toggle: [\n 'flex cursor-pointer items-center gap-s rounded-medium p-xs group-open/sidenav:px-s',\n 'enabled:hover:bg-interactive-muted-hover',\n 'enabled:focus-visible:bg-interactive-muted-hover enabled:focus-visible:outline-none',\n 'enabled:pressed:bg-interactive-muted-pressed',\n ],\n divider: 'my-s',\n heading: 'text-body-xs uppercase',\n item: [\n 'group/item flex w-full cursor-pointer items-center justify-center gap-s rounded-medium p-xs text-body-m',\n 'group-open/sidenav:px-s group-closed/sidenav:max-w-fit',\n 'enabled:hover:bg-interactive-muted-hover',\n 'enabled:focus-visible:bg-interactive-muted-hover enabled:focus-visible:outline-none',\n 'enabled:pressed:bg-accent-primary-pressed',\n 'enabled:selected:bg-accent-primary-bold',\n 'enabled:selected:hover:bg-accent-primary-hover',\n 'enabled:selected:focus-visible:bg-accent-primary-hover',\n 'enabled:selected:pressed:bg-accent-primary-pressed',\n 'disabled:fg-disabled disabled:cursor-not-allowed',\n ],\n text: 'grow-1 text-left text-body-s',\n transient: 'group-closed/sidenav:hidden',\n link: [\n 'group/link flex w-full cursor-pointer items-center justify-center gap-s rounded-medium p-xs text-body-m',\n 'group-open/sidenav:w-full group-closed/sidenav:max-w-fit',\n 'enabled:hover:bg-interactive-muted-hover',\n 'enabled:focus-visible:bg-interactive-muted-hover enabled:focus-visible:outline-none',\n 'enabled:pressed:bg-accent-primary-pressed',\n 'disabled:fg-disabled disabled:cursor-not-allowed',\n ],\n tooltip: [\n 'absolute flex items-center gap-s whitespace-nowrap text-body-s',\n 'group-disabled/item:fg-disabled group-disabled/link:fg-disabled',\n ],\n menu: 'group/menu relative text-body-s',\n menuButton: [\n 'flex w-full cursor-pointer items-center justify-center gap-s rounded-medium p-xs',\n 'group-closed/sidenav:max-w-fit',\n 'enabled:hover:bg-interactive-muted-hover',\n 'enabled:pressed:bg-interactive-muted-hover enabled:focus-visible:bg-interactive-muted-hover enabled:focus-visible:outline-none',\n ],\n menuHeading: 'flex-1 text-left',\n menuPanel: [\n 'fg-primary-bold rounded-medium bg-surface-raised outline outline-static',\n ],\n menuItem: [\n 'flex w-full cursor-pointer items-center gap-s rounded-medium p-s text-left text-body-s',\n 'group-expanded/menu:block group-open/sidenav:group-expanded/menu:pl-[32px]',\n 'enabled:hover:bg-interactive-muted-hover',\n 'enabled:focus-visible:bg-interactive-muted-hover enabled:focus-visible:outline-none',\n 'enabled:pressed:bg-accent-primary-pressed',\n 'enabled:selected:bg-accent-primary-bold',\n 'enabled:selected:hover:bg-accent-primary-hover',\n 'enabled:selected:focus-visible:bg-accent-primary-hover',\n 'enabled:selected:pressed:bg-accent-primary-pressed',\n 'disabled:fg-disabled disabled:cursor-not-allowed',\n ],\n panelHeading:\n 'min-w-[172px] rounded-t-medium bg-surface-overlay px-m py-s text-body-s',\n panelContent: 'flex flex-col gap-xs bg-surface-default px-xs py-xs',\n },\n});\n"]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
|
|
3
|
-
import {jsx,jsxs,Fragment}from'react/jsx-runtime';import'client-only';import {Fragment as Fragment$1}from'react';import {Slider,composeRenderProps,Label,Input,SliderTrack,SliderThumb,Text}from'react-aria-components';import {Tooltip}from'../tooltip/index.js';import {SliderStyles}from'./styles.js';const {slider:
|
|
3
|
+
import {jsx,jsxs,Fragment}from'react/jsx-runtime';import'client-only';import {Fragment as Fragment$1}from'react';import {Slider,composeRenderProps,Label,Input,SliderTrack,SliderThumb,Text}from'react-aria-components';import {Tooltip}from'../tooltip/index.js';import {SliderStyles}from'./styles.js';const {slider:y,label:A,inputs:F,input:B,thumb:D,track:P,trackBackground:$,trackValue:z,minValue:C,maxValue:L}=SliderStyles(),I=({classNames:e,label:o,layout:T="grid",maxValue:n=100,minValue:d=0,orientation:b="horizontal",showInput:c,showLabel:p=true,...k})=>jsx(Slider,{...k,className:composeRenderProps(e?.slider,a=>y({className:a})),maxValue:n,minValue:d,orientation:b,"aria-label":p?void 0:o,"data-layout":T,children:({state:a})=>jsxs(Fragment,{children:[p&&jsx(Label,{className:A({className:e?.label}),children:o}),c&&jsx("div",{className:F({className:e?.inputs}),children:a.values.map((m,l)=>jsx(Input,{className:composeRenderProps(e?.input,i=>B({className:i})),value:m,onChange:i=>a.setThumbValue(l,Number.parseFloat(i.target.value))},`number-field-${l===0?"min":"max"}`))}),jsxs(SliderTrack,{className:composeRenderProps(e?.track,m=>P({className:m})),children:[jsx("div",{className:$({className:e?.trackBackground})}),a.values.map((m,l)=>jsxs(Fragment$1,{children:[jsx("div",{className:z({className:e?.trackValue}),"data-start":a.values.length===1?0:a.getThumbPercent(0),"data-end":a.getThumbPercent(a.values.length===1?0:1)}),jsxs(Tooltip.Trigger,{isDisabled:!c||a.isThumbDragging(l),children:[jsx(SliderThumb,{index:l,className:composeRenderProps(e?.thumb,i=>D({className:i}))}),jsx(Tooltip,{placement:"top",children:a.getThumbValue(l)})]})]},`slider-${l===0?"min":"max"}`))]}),jsx(Text,{slot:"min",className:C({className:e?.minValue}),children:d}),jsx(Text,{slot:"max",className:L({className:e?.maxValue}),children:n})]})});export{I as Slider};//# sourceMappingURL=index.js.map
|
|
4
4
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/slider/index.tsx"],"names":["thumb","track","trackValue","SliderStyles","
|
|
1
|
+
{"version":3,"sources":["../../../src/components/slider/index.tsx"],"names":["thumb","track","trackValue","SliderStyles","x","classNames","minValueProp","orientation","jsx","AriaSlider","rest","r","h","className","slider","maxValueProp","showLabel","layout","jsxs","Fragment","u","label","showInput","value","index","Input","composeRenderProps","input","event","state","AriaSliderTrack","_","Tooltip","g","SliderThumb","f","s"],"mappings":"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","file":"index.js","sourcesContent":["/*\n * Copyright 2025 Hypergiant Galactic Systems Inc. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n'use client';\n\nimport 'client-only';\nimport { Fragment } from 'react';\nimport {\n Slider as AriaSlider,\n SliderTrack as AriaSliderTrack,\n composeRenderProps,\n Input,\n Label,\n SliderThumb,\n Text,\n} from 'react-aria-components';\nimport { Tooltip } from '../tooltip';\nimport { SliderStyles } from './styles';\nimport type { SliderProps } from './types';\n\nconst {\n slider,\n label,\n inputs,\n input,\n thumb,\n track,\n trackBackground,\n trackValue,\n minValue,\n maxValue,\n} = SliderStyles();\n\n/**\n * Slider - An interactive range input component for numeric value selection\n *\n * Provides accessible slider functionality with optional input field integration,\n * flexible layouts, and comprehensive keyboard and mouse interaction support.\n * Perfect for settings, filters, or any numeric input requiring visual feedback.\n *\n * @example\n * // Basic slider\n * <Slider label=\"Volume\" defaultValue={50} />\n */\nexport const Slider = ({\n classNames,\n label: labelProp,\n layout = 'grid',\n maxValue: maxValueProp = 100,\n minValue: minValueProp = 0,\n orientation = 'horizontal',\n showInput,\n showLabel = true,\n ...rest\n}: SliderProps) => {\n return (\n <AriaSlider\n {...rest}\n className={composeRenderProps(classNames?.slider, (className) =>\n slider({ className }),\n )}\n maxValue={maxValueProp}\n minValue={minValueProp}\n orientation={orientation}\n aria-label={showLabel ? undefined : labelProp}\n data-layout={layout}\n >\n {({ state }) => (\n <>\n {showLabel && (\n <Label className={label({ className: classNames?.label })}>\n {labelProp}\n </Label>\n )}\n {showInput && (\n <div\n className={inputs({\n className: classNames?.inputs,\n })}\n >\n {state.values.map((value, index) => (\n <Input\n key={`number-field-${index === 0 ? 'min' : 'max'}`}\n className={composeRenderProps(\n classNames?.input,\n (className) => input({ className }),\n )}\n value={value}\n onChange={(event) =>\n state.setThumbValue(\n index,\n Number.parseFloat(event.target.value),\n )\n }\n />\n ))}\n </div>\n )}\n <AriaSliderTrack\n className={composeRenderProps(classNames?.track, (className) =>\n track({ className }),\n )}\n >\n <div\n className={trackBackground({\n className: classNames?.trackBackground,\n })}\n />\n {state.values.map((_, index) => (\n <Fragment key={`slider-${index === 0 ? 'min' : 'max'}`}>\n <div\n className={trackValue({\n className: classNames?.trackValue,\n })}\n data-start={\n state.values.length === 1 ? 0 : state.getThumbPercent(0)\n }\n data-end={state.getThumbPercent(\n state.values.length === 1 ? 0 : 1,\n )}\n />\n <Tooltip.Trigger\n isDisabled={!showInput || state.isThumbDragging(index)}\n >\n <SliderThumb\n index={index}\n className={composeRenderProps(\n classNames?.thumb,\n (className) => thumb({ className }),\n )}\n />\n <Tooltip placement='top'>\n {state.getThumbValue(index)}\n </Tooltip>\n </Tooltip.Trigger>\n </Fragment>\n ))}\n </AriaSliderTrack>\n <Text\n slot='min'\n className={minValue({ className: classNames?.minValue })}\n >\n {minValueProp}\n </Text>\n <Text\n slot='max'\n className={maxValue({ className: classNames?.maxValue })}\n >\n {maxValueProp}\n </Text>\n </>\n )}\n </AriaSlider>\n );\n};\n"]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import {tv}from'./../../lib/utils.js';const t=tv({slots:{slider:["group/slider flex gap-s","layout-grid:grid","layout-stack:flex","orientation-vertical:h-full orientation-vertical:w-fit","orientation-vertical:layout-grid:grid-cols-[auto_auto_auto] orientation-vertical:layout-grid:grid-rows-[auto_auto_1fr_auto]","orientation-vertical:layout-stack:flex-col","orientation-horizontal:
|
|
1
|
+
import {tv}from'./../../lib/utils.js';const t=tv({slots:{slider:["group/slider flex gap-s","layout-grid:grid","layout-stack:flex","orientation-vertical:h-full orientation-vertical:w-fit","orientation-vertical:layout-grid:grid-cols-[auto_auto_auto] orientation-vertical:layout-grid:grid-rows-[auto_auto_1fr_auto]","orientation-vertical:layout-stack:flex-col","orientation-horizontal:layout-grid:grid-cols-[auto_1fr_auto] orientation-horizontal:layout-grid:grid-rows-[auto_auto_auto]","orientation-horizontal:layout-stack:w-full orientation-horizontal:layout-stack:items-center"],label:["fg-primary-bold order-1","group-layout-grid/slider:col-start-1","group-orientation-vertical/slider:group-layout-grid/slider:col-span-2"],inputs:["order-5 flex gap-s","group-layout-grid/slider:col-start-3 group-layout-grid/slider:row-start-1","group-orientation-horizontal/slider:flex-row","group-orientation-vertical/slider:flex-col-reverse","group-orientation-vertical/slider:group-layout-grid/slider:row-start-4"],input:"fg-primary-bold w-[50px] rounded-medium px-s py-xs font-display text-body-m outline outline-interactive",track:["relative order-3 h-full","group-orientation-horizontal/slider:h-[20px] group-orientation-horizontal/slider:w-full","group-orientation-horizontal/slider:group-layout-grid/slider:col-span-3 group-orientation-horizontal/slider:group-layout-grid/slider:row-start-2","group-orientation-vertical/slider:h-full group-orientation-vertical/slider:w-[20px]","group-orientation-vertical/slider:group-layout-grid/slider:col-start-2 group-orientation-vertical/slider:group-layout-grid/slider:row-span-3 group-orientation-vertical/slider:group-layout-grid/slider:row-start-2"],trackBackground:["absolute rounded-full bg-surface-muted","group-orientation-horizontal/slider:-translate-y-1/2 group-orientation-horizontal/slider:top-1/2 group-orientation-horizontal/slider:h-xxs group-orientation-horizontal/slider:w-full","group-orientation-vertical/slider:-translate-x-1/2 group-orientation-vertical/slider:left-1/2 group-orientation-vertical/slider:h-full group-orientation-vertical/slider:w-xxs"],trackValue:["absolute rounded-full bg-accent-primary-bold","group-orientation-horizontal/slider:-translate-y-1/2 group-orientation-horizontal/slider:top-1/2 group-orientation-horizontal/slider:right-[calc(100%-attr(data-end_%)*100)] group-orientation-horizontal/slider:left-[calc(attr(data-start_%)*100)] group-orientation-horizontal/slider:h-xxs","group-orientation-vertical/slider:-translate-x-1/2 group-orientation-vertical/slider:top-[calc(100%-attr(data-end_%)*100)] group-orientation-vertical/slider:bottom-[calc(attr(data-start_%)*100)] group-orientation-vertical/slider:left-1/2 group-orientation-vertical/slider:w-xxs"],thumb:["h-m w-m rounded-full bg-accent-primary-bold outline-accent-primary-bold/40","focus-visible:outline-4","hover:outline-4","group-orientation-horizontal/slider:top-1/2","group-orientation-vertical/slider:left-1/2"],minValue:["fg-primary-muted flex items-center font-display text-body-m","group-orientation-vertical/slider:col-start-1 group-orientation-vertical/slider:row-start-4","group-orientation-horizontal/slider:group-layout-grid/slider:col-start-1","group-orientation-horizontal/slider:group-layout-grid/slider:row-start-3","group-orientation-horizontal/slider:order-2","group-orientation-vertical/slider:group-layout-grid/slider:self-end","group-orientation-vertical/slider:group-layout-grid/slider:justify-self-end","group-orientation-vertical/slider:order-4"],maxValue:["fg-primary-muted order-4 flex items-center font-display text-body-m","group-orientation-vertical/slider:order-2","group-orientation-vertical/slider:group-layout-grid/slider:col-start-1 group-orientation-vertical/slider:group-layout-grid/slider:row-start-2","group-orientation-vertical/slider:group-layout-grid/slider:justify-self-end","group-orientation-horizontal/slider:group-layout-grid/slider:col-start-3","group-orientation-horizontal/slider:group-layout-grid/slider:row-start-3","group-orientation-horizontal/slider:group-layout-grid/slider:justify-self-end"]}});export{t as SliderStyles};//# sourceMappingURL=styles.js.map
|
|
2
2
|
//# sourceMappingURL=styles.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/slider/styles.ts"],"names":["r"],"mappings":"sCAcE,MAAA,CAAO,CACLA,EAAA,CAAA,CAAA,KACE,mCACA,CAAA,kBACA,CAAA,4EAEA,CAAA,6HACA,CAAA,
|
|
1
|
+
{"version":3,"sources":["../../../src/components/slider/styles.ts"],"names":["r"],"mappings":"sCAcE,MAAA,CAAO,CACLA,EAAA,CAAA,CAAA,KACE,mCACA,CAAA,kBACA,CAAA,4EAEA,CAAA,6HACA,CAAA,yKAEA,CAAA,+HAIA,CAAA,sCACA,CAAA,uEAGA,8BACA,CAAA,2EACA,CAAA,mGAEA,CAAA,wEAGA,CAAA,CAAA,KAAA,CAAA,yGAEA,CAAA,KAAA,CAAA,CAAA,yBACA,CAAA,4OAEA,CAAA,qFACA,CAAA,qNAEF,CAAA,CAAA,eACE,CAAA,CAAA,wCACA,CAAA,wWAGF,CAAA,CAAA,UACE,CAAA,CAAA,8CACA,CAAA,gSACA,CAAA,uRAGA,CAAA,CAAA,KAAA,CAAA,CAAA,sGAEA,CAAA,iBACA,CAAA,0FAGF,CAAU,CACR,QAAA,CAAA,CAAA,2JAEA,CAAA,0EACA,CAAA,wHAEA,CAAA,qEACA,CAAA,yHAGF,CAAU,CACR,QAAA,CAAA,CAAA,qEACA,CAAA,2LAEA,CAAA,6EACA,CAAA,qJAEA,CAAA,+EAGL,CAAA,CAAA,CAAA","file":"styles.js","sourcesContent":["/*\n * Copyright 2025 Hypergiant Galactic Systems Inc. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\nimport { tv } from '@/lib/utils';\n\nexport const SliderStyles = tv({\n slots: {\n slider: [\n 'group/slider flex gap-s',\n 'layout-grid:grid',\n 'layout-stack:flex',\n 'orientation-vertical:h-full orientation-vertical:w-fit',\n 'orientation-vertical:layout-grid:grid-cols-[auto_auto_auto] orientation-vertical:layout-grid:grid-rows-[auto_auto_1fr_auto]',\n 'orientation-vertical:layout-stack:flex-col',\n 'orientation-horizontal:layout-grid:grid-cols-[auto_1fr_auto] orientation-horizontal:layout-grid:grid-rows-[auto_auto_auto]',\n 'orientation-horizontal:layout-stack:w-full orientation-horizontal:layout-stack:items-center',\n ],\n label: [\n 'fg-primary-bold order-1',\n 'group-layout-grid/slider:col-start-1',\n 'group-orientation-vertical/slider:group-layout-grid/slider:col-span-2',\n ],\n inputs: [\n 'order-5 flex gap-s',\n 'group-layout-grid/slider:col-start-3 group-layout-grid/slider:row-start-1',\n 'group-orientation-horizontal/slider:flex-row',\n 'group-orientation-vertical/slider:flex-col-reverse',\n 'group-orientation-vertical/slider:group-layout-grid/slider:row-start-4',\n ],\n input:\n 'fg-primary-bold w-[50px] rounded-medium px-s py-xs font-display text-body-m outline outline-interactive',\n track: [\n 'relative order-3 h-full',\n 'group-orientation-horizontal/slider:h-[20px] group-orientation-horizontal/slider:w-full',\n 'group-orientation-horizontal/slider:group-layout-grid/slider:col-span-3 group-orientation-horizontal/slider:group-layout-grid/slider:row-start-2',\n 'group-orientation-vertical/slider:h-full group-orientation-vertical/slider:w-[20px]',\n 'group-orientation-vertical/slider:group-layout-grid/slider:col-start-2 group-orientation-vertical/slider:group-layout-grid/slider:row-span-3 group-orientation-vertical/slider:group-layout-grid/slider:row-start-2',\n ],\n trackBackground: [\n 'absolute rounded-full bg-surface-muted',\n 'group-orientation-horizontal/slider:-translate-y-1/2 group-orientation-horizontal/slider:top-1/2 group-orientation-horizontal/slider:h-xxs group-orientation-horizontal/slider:w-full',\n 'group-orientation-vertical/slider:-translate-x-1/2 group-orientation-vertical/slider:left-1/2 group-orientation-vertical/slider:h-full group-orientation-vertical/slider:w-xxs',\n ],\n trackValue: [\n 'absolute rounded-full bg-accent-primary-bold',\n 'group-orientation-horizontal/slider:-translate-y-1/2 group-orientation-horizontal/slider:top-1/2 group-orientation-horizontal/slider:right-[calc(100%-attr(data-end_%)*100)] group-orientation-horizontal/slider:left-[calc(attr(data-start_%)*100)] group-orientation-horizontal/slider:h-xxs',\n 'group-orientation-vertical/slider:-translate-x-1/2 group-orientation-vertical/slider:top-[calc(100%-attr(data-end_%)*100)] group-orientation-vertical/slider:bottom-[calc(attr(data-start_%)*100)] group-orientation-vertical/slider:left-1/2 group-orientation-vertical/slider:w-xxs',\n ],\n thumb: [\n 'h-m w-m rounded-full bg-accent-primary-bold outline-accent-primary-bold/40',\n 'focus-visible:outline-4',\n 'hover:outline-4',\n 'group-orientation-horizontal/slider:top-1/2',\n 'group-orientation-vertical/slider:left-1/2',\n ],\n minValue: [\n 'fg-primary-muted flex items-center font-display text-body-m',\n 'group-orientation-vertical/slider:col-start-1 group-orientation-vertical/slider:row-start-4',\n 'group-orientation-horizontal/slider:group-layout-grid/slider:col-start-1',\n 'group-orientation-horizontal/slider:group-layout-grid/slider:row-start-3',\n 'group-orientation-horizontal/slider:order-2',\n 'group-orientation-vertical/slider:group-layout-grid/slider:self-end',\n 'group-orientation-vertical/slider:group-layout-grid/slider:justify-self-end',\n 'group-orientation-vertical/slider:order-4',\n ],\n maxValue: [\n 'fg-primary-muted order-4 flex items-center font-display text-body-m',\n 'group-orientation-vertical/slider:order-2',\n 'group-orientation-vertical/slider:group-layout-grid/slider:col-start-1 group-orientation-vertical/slider:group-layout-grid/slider:row-start-2',\n 'group-orientation-vertical/slider:group-layout-grid/slider:justify-self-end',\n 'group-orientation-horizontal/slider:group-layout-grid/slider:col-start-3',\n 'group-orientation-horizontal/slider:group-layout-grid/slider:row-start-3',\n 'group-orientation-horizontal/slider:group-layout-grid/slider:justify-self-end',\n ],\n },\n});\n"]}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import * as react from 'react';
|
|
2
|
+
import { TableContextValue } from './types.js';
|
|
3
|
+
import '@react-types/shared';
|
|
4
|
+
import '@tanstack/react-table';
|
|
5
|
+
import 'tailwind-variants';
|
|
6
|
+
import './styles.js';
|
|
7
|
+
import 'tailwind-merge';
|
|
8
|
+
|
|
9
|
+
declare const TableContext: react.Context<TableContextValue>;
|
|
10
|
+
|
|
11
|
+
export { TableContext };
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import {createContext}from'react';const n=createContext({moveColumnLeft:()=>{},moveColumnRight:()=>{},setColumnSelection:()=>null,columnSelection:null,persistRowKebabMenu:true,persistHeaderKebabMenu:true,persistNumerals:true,enableSorting:true,enableColumnReordering:true,enableRowActions:true});export{n as TableContext};//# sourceMappingURL=context.js.map
|
|
2
|
+
//# sourceMappingURL=context.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/components/table/context.tsx"],"names":["TableContext","createContext"],"mappings":"kCAgBO,MAAMA,CAAAA,CAAeC,aAAAA,CAAiC,CAC3D,cAAA,CAAgB,IAAG,CAAA,CAAA,CACnB,eAAA,CAAiB,IAAG,GACpB,kBAAA,CAAoB,IAAM,IAAA,CAC1B,eAAA,CAAiB,IAAA,CACjB,mBAAA,CAAqB,IAAA,CACrB,sBAAA,CAAwB,IAAA,CACxB,eAAA,CAAiB,IAAA,CACjB,aAAA,CAAe,IAAA,CACf,sBAAA,CAAwB,IAAA,CACxB,gBAAA,CAAkB,IACpB,CAAC","file":"context.js","sourcesContent":["/*\n * Copyright 2025 Hypergiant Galactic Systems Inc. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport { createContext } from 'react';\nimport type { TableContextValue } from './types';\n\n// Only keep values in context that are needed across multiple component levels\nexport const TableContext = createContext<TableContextValue>({\n moveColumnLeft: () => undefined,\n moveColumnRight: () => undefined,\n setColumnSelection: () => null,\n columnSelection: null,\n persistRowKebabMenu: true,\n persistHeaderKebabMenu: true,\n persistNumerals: true,\n enableSorting: true,\n enableColumnReordering: true,\n enableRowActions: true,\n});\n"]}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { HeaderCell } from './table-header-cell.js';
|
|
2
|
+
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
3
|
+
import { TableBody } from './table-body.js';
|
|
4
|
+
import { TableCell } from './table-cell.js';
|
|
5
|
+
import { TableHeader } from './table-header.js';
|
|
6
|
+
import { TableRow } from './table-row.js';
|
|
7
|
+
import { Key } from '@react-types/shared';
|
|
8
|
+
import { TableProps } from './types.js';
|
|
9
|
+
import '@tanstack/react-table';
|
|
10
|
+
import 'react';
|
|
11
|
+
import 'tailwind-variants';
|
|
12
|
+
import './styles.js';
|
|
13
|
+
import 'tailwind-merge';
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* Table - Configurable data table with sorting and row actions
|
|
17
|
+
*
|
|
18
|
+
* Standardizes table behavior (sorting, selection, row actions) and can be
|
|
19
|
+
* used with column definitions from TanStack React Table.
|
|
20
|
+
*
|
|
21
|
+
* @example
|
|
22
|
+
* <Table columns={columns} data={data} />
|
|
23
|
+
*/
|
|
24
|
+
declare function Table<T extends {
|
|
25
|
+
id: Key;
|
|
26
|
+
}>({ children, columns: columnsProp, data: dataProp, showCheckbox, kebabPosition, persistRowKebabMenu, persistHeaderKebabMenu, persistNumerals, enableSorting, enableColumnOrdering: enableColumnReordering, enableRowActions, ...rest }: TableProps<T>): react_jsx_runtime.JSX.Element;
|
|
27
|
+
declare namespace Table {
|
|
28
|
+
var displayName: string;
|
|
29
|
+
var Body: typeof TableBody;
|
|
30
|
+
var Cell: typeof TableCell;
|
|
31
|
+
var Header: typeof TableHeader;
|
|
32
|
+
var HeaderCell: typeof HeaderCell;
|
|
33
|
+
var Row: typeof TableRow;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
export { Table };
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
|
|
3
|
+
import {jsx,jsxs}from'react/jsx-runtime';import'client-only';import {Pin,Kebab}from'@accelint/icons';import {useListData}from'@react-stately/data';import {useReactTable,getSortedRowModel,getCoreRowModel}from'@tanstack/react-table';import {useState,useCallback,useMemo,useContext}from'react';import {Button}from'../button/index.js';import {Checkbox}from'../checkbox/index.js';import {Icon}from'../icon/index.js';import {Menu}from'../menu/index.js';import {TableContext}from'./context.js';import {TableStyles}from'./styles.js';import {TableBody}from'./table-body.js';import {TableCell}from'./table-cell.js';import {TableHeader}from'./table-header.js';import {HeaderCell}from'./table-header-cell.js';import {TableRow}from'./table-row.js';const{menuItem:v,notPersistRowKebab:ae}=TableStyles();function ce({moveRowsDown:R,moveRowsUp:g,row:i,rows:a}){const{enableRowActions:p,persistRowKebabMenu:S}=useContext(TableContext),c=!!i.getIsPinned();return p&&jsx("div",{className:S?"":ae(),children:jsxs(Menu.Trigger,{children:[jsx(Button,{variant:"icon","aria-label":"Menu",children:jsx(Icon,{children:jsx(Kebab,{})})}),jsxs(Menu,{children:[jsx(Menu.Item,{classNames:{item:v()},onAction:()=>i.pin(c?false:"top"),children:c?"Unpin":"Pin"}),jsx(Menu.Separator,{}),jsx(Menu.Item,{classNames:{item:v()},onAction:()=>g(i,a),isDisabled:c||i.index===0,children:"Move Up"}),jsx(Menu.Item,{classNames:{item:v()},onAction:()=>R(i,a),isDisabled:c||i.index===a.length-1,children:"Move Down"})]})]})})}function d({children:R,columns:g,data:i,showCheckbox:a,kebabPosition:p="right",persistRowKebabMenu:S=true,persistHeaderKebabMenu:c=true,persistNumerals:L=false,enableSorting:C=true,enableColumnOrdering:z=true,enableRowActions:k=true,...I}){const{items:q,moveAfter:y,moveBefore:P}=useListData({initialItems:i}),[r,E]=useState({}),[h,F]=useState(null),N=useCallback((e,t)=>{const n=r[e.id]?t.filter(({id:m})=>r[m]):[e],l=n[0];if(!l||l.index===0)return;const w=t[l.index-1]?.id;w&&P(w,n.map(({id:m})=>m));},[r,P]),x=useCallback((e,t)=>{const n=r[e.id]?t.filter(({id:m})=>r[m]):[e],l=n[n.length-1];if(!l||l.index===t.length-1)return;const w=t[l.index+1]?.id;w&&y(w,n.map(({id:m})=>m));},[r,y]),b=useMemo(()=>({id:"kebab",cell:({row:e})=>jsx(ce,{moveRowsUp:N,moveRowsDown:x,row:e,rows:X().rows})}),[N,x]),A=useMemo(()=>[{id:"numeral",cell:({row:e})=>e.getIsPinned()?jsx(Icon,{size:"small",children:jsx(Pin,{})}):jsx("span",{"data-testid":"numeral",children:e.index+1})},...a?[{id:"selection",header:({table:e})=>jsx(Checkbox,{isSelected:e.getIsAllRowsSelected(),isIndeterminate:e.getIsSomeRowsSelected(),onChange:e.toggleAllRowsSelected}),cell:({row:e})=>jsx(Checkbox,{isSelected:e.getIsSelected(),isIndeterminate:e.getIsSomeSelected(),onChange:e.toggleSelected})}]:[],...p==="left"?[b]:[],...g??[],...p==="right"?[b]:[]],[a,g,p,b]),{getHeaderGroups:J,getTopRows:Q,getCenterRows:V,getBottomRows:W,getRowModel:X,setColumnOrder:f}=useReactTable({data:q,columns:A,enableSorting:C,initialState:{columnOrder:A.map(({id:e})=>e??"")},state:{rowSelection:r},getRowId:(e,t)=>e.id?e.id.toString():t.toString(),enableRowSelection:true,onRowSelectionChange:E,getCoreRowModel:getCoreRowModel(),getSortedRowModel:getSortedRowModel()}),Y=useCallback(e=>{f(t=>{const s=[...t],n=e-1;return n<0?t:([s[e],s[n]]=[s[n],s[e]],s)});},[f]),Z=useCallback(e=>{f(t=>{const s=[...t],n=e+1;return n>=t.length?t:([s[e],s[n]]=[s[n],s[e]],s)});},[f]);return R?jsx("table",{...I,children:R}):jsx(TableContext.Provider,{value:{persistRowKebabMenu:S,persistHeaderKebabMenu:c,persistNumerals:L,enableSorting:C,enableColumnReordering:z,enableRowActions:k,columnSelection:h,setColumnSelection:F,moveColumnLeft:Y,moveColumnRight:Z},children:jsxs("table",{...I,children:[jsx(TableHeader,{headerGroups:J(),columnSelection:h}),jsx(TableBody,{rows:[...Q(),...V(),...W()]})]})})}d.displayName="Table",d.Body=TableBody,d.Cell=TableCell,d.Header=TableHeader,d.HeaderCell=HeaderCell,d.Row=TableRow;export{d as Table};//# sourceMappingURL=index.js.map
|
|
4
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/components/table/index.tsx"],"names":["moveRowsUp","ie","enableRowActions","TableContext","row","ne","O","jsxs","Menu","o","M","u","Kebab","se","menuItem","K","_","isPinned","jsx","rows","moveRowsDown","persistRowKebabMenu","enableSorting","enableColumnReordering","data","dataProp","rowSelection","useState","columnSelection","rowsToMove","id","firstRowToMove","prevRowId","moveBefore","lastRowToMove","T","nextRowId","actionColumn","RowActionsMenu","columns","Icon","D","showCheckbox","table","H","kebabPosition","getHeaderGroups","getTopRows","getBottomRows","useReactTable","index","setRowSelection","getSortedRowModel","newColumnOrder","ee","newIndex","oe","oldIndex","order","setColumnOrder","children","rest","persistHeaderKebabMenu","TableBody","Table","TableCell","TableHeader","HeaderCell","TableRow"],"mappings":"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","file":"index.js","sourcesContent":["/*\n * Copyright 2025 Hypergiant Galactic Systems Inc. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\n'use client';\n\nimport 'client-only';\nimport { Kebab, Pin } from '@accelint/icons';\nimport { useListData } from '@react-stately/data';\nimport {\n getCoreRowModel,\n getSortedRowModel,\n type Row,\n type RowSelectionState,\n useReactTable,\n} from '@tanstack/react-table';\nimport { useCallback, useContext, useMemo, useState } from 'react';\nimport { Button } from '../button';\nimport { Checkbox } from '../checkbox';\nimport { Icon } from '../icon';\nimport { Menu } from '../menu';\nimport { TableContext } from './context';\nimport { TableStyles } from './styles';\nimport { TableBody } from './table-body';\nimport { TableCell } from './table-cell';\nimport { TableHeader } from './table-header';\nimport { HeaderCell } from './table-header-cell';\nimport { TableRow } from './table-row';\nimport type { Key } from '@react-types/shared';\nimport type { TableProps } from './types';\n\nconst { menuItem, notPersistRowKebab } = TableStyles();\n\ntype RowActionsMenuProps<T> = {\n row: Row<T>;\n rows: Row<T>[];\n moveRowsDown: (row: Row<T>, rows: Row<T>[]) => void;\n moveRowsUp: (row: Row<T>, rows: Row<T>[]) => void;\n};\n\nfunction RowActionsMenu<T>({\n moveRowsDown,\n moveRowsUp,\n row,\n rows,\n}: RowActionsMenuProps<T>) {\n const { enableRowActions, persistRowKebabMenu } = useContext(TableContext);\n const isPinned = !!row.getIsPinned();\n\n return (\n enableRowActions && (\n <div className={persistRowKebabMenu ? '' : notPersistRowKebab()}>\n <Menu.Trigger>\n <Button variant='icon' aria-label='Menu'>\n <Icon>\n <Kebab />\n </Icon>\n </Button>\n <Menu>\n <Menu.Item\n classNames={{ item: menuItem() }}\n onAction={() => row.pin(isPinned ? false : 'top')}\n >\n {isPinned ? 'Unpin' : 'Pin'}\n </Menu.Item>\n <Menu.Separator />\n <Menu.Item\n classNames={{ item: menuItem() }}\n onAction={() => moveRowsUp(row, rows)}\n isDisabled={isPinned || row.index === 0}\n >\n Move Up\n </Menu.Item>\n <Menu.Item\n classNames={{ item: menuItem() }}\n onAction={() => moveRowsDown(row, rows)}\n isDisabled={isPinned || row.index === rows.length - 1}\n >\n Move Down\n </Menu.Item>\n </Menu>\n </Menu.Trigger>\n </div>\n )\n );\n}\n\n/**\n * Table - Configurable data table with sorting and row actions\n *\n * Standardizes table behavior (sorting, selection, row actions) and can be\n * used with column definitions from TanStack React Table.\n *\n * @example\n * <Table columns={columns} data={data} />\n */\nexport function Table<T extends { id: Key }>({\n children,\n columns: columnsProp,\n data: dataProp,\n showCheckbox,\n kebabPosition = 'right',\n persistRowKebabMenu = true,\n persistHeaderKebabMenu = true,\n persistNumerals = false,\n enableSorting = true,\n enableColumnOrdering: enableColumnReordering = true,\n enableRowActions = true,\n ...rest\n}: TableProps<T>) {\n const {\n items: data,\n moveAfter,\n moveBefore,\n } = useListData({\n initialItems: dataProp,\n });\n const [rowSelection, setRowSelection] = useState<RowSelectionState>({});\n const [columnSelection, setColumnSelection] = useState<string | null>(null);\n\n /**\n * moveUpSelectedRows moves the selected rows up in the table.\n * It finds the first selected row, determines its index,\n * and moves it before the previous row if it exists.\n */\n const moveRowsUp = useCallback(\n (row: Row<T>, rows: Row<T>[]) => {\n const isSelected = rowSelection[row.id];\n const rowsToMove = isSelected\n ? rows.filter(({ id }) => rowSelection[id])\n : [row];\n const firstRowToMove = rowsToMove[0];\n\n if (!firstRowToMove || firstRowToMove.index === 0) {\n return;\n }\n\n const prevRowId = rows[firstRowToMove.index - 1]?.id;\n\n if (!prevRowId) {\n return;\n }\n\n moveBefore(\n prevRowId,\n rowsToMove.map(({ id }) => id),\n );\n },\n [rowSelection, moveBefore],\n );\n\n /**\n * moveDownRows moves the selected or active rows down in the table.\n * It finds the last selected row, determines its index,\n * and moves it after the next row if it exists.\n */\n const moveRowsDown = useCallback(\n (row: Row<T>, rows: Row<T>[]) => {\n const isSelected = rowSelection[row.id];\n const rowsToMove = isSelected\n ? rows.filter(({ id }) => rowSelection[id])\n : [row];\n const lastRowToMove = rowsToMove[rowsToMove.length - 1];\n\n if (!lastRowToMove || lastRowToMove.index === rows.length - 1) {\n return;\n }\n\n const nextRowId = rows[lastRowToMove.index + 1]?.id;\n\n if (!nextRowId) {\n return;\n }\n\n moveAfter(\n nextRowId,\n rowsToMove.map(({ id }) => id),\n );\n },\n [rowSelection, moveAfter],\n );\n\n /**\n * actionColumn defines the actions available in the kebab menu for each row.\n * It includes options to move the row up or down in the table.\n */\n // biome-ignore lint/correctness/useExhaustiveDependencies: can of worms to fix ticket added\n const actionColumn: NonNullable<typeof columnsProp>[number] = useMemo(\n () => ({\n id: 'kebab',\n cell: ({ row }) => (\n <RowActionsMenu\n moveRowsUp={moveRowsUp}\n moveRowsDown={moveRowsDown}\n row={row}\n rows={getRowModel().rows}\n />\n ),\n }),\n [moveRowsUp, moveRowsDown],\n );\n\n /**\n * columns defines the structure of the table.\n * It includes the action column and optionally a checkbox column.\n * The kebab menu position can be set to 'left' or 'right'.\n * If showCheckbox is true, a checkbox column is added.\n */\n const columns = useMemo<NonNullable<typeof columnsProp>>(\n () => [\n {\n id: 'numeral',\n cell: ({ row }) =>\n row.getIsPinned() ? (\n <Icon size='small'>\n <Pin />\n </Icon>\n ) : (\n <span data-testid='numeral'>{row.index + 1}</span>\n ),\n },\n ...(showCheckbox\n ? ([\n {\n id: 'selection',\n header: ({ table }) => (\n <Checkbox\n isSelected={table.getIsAllRowsSelected()}\n isIndeterminate={table.getIsSomeRowsSelected()}\n onChange={table.toggleAllRowsSelected}\n />\n ),\n cell: ({ row }) => (\n <Checkbox\n isSelected={row.getIsSelected()}\n isIndeterminate={row.getIsSomeSelected()}\n onChange={row.toggleSelected}\n />\n ),\n },\n ] satisfies NonNullable<typeof columnsProp>)\n : []),\n ...(kebabPosition === 'left' ? [actionColumn] : []),\n ...(columnsProp ?? []),\n ...(kebabPosition === 'right' ? [actionColumn] : []),\n ],\n [showCheckbox, columnsProp, kebabPosition, actionColumn],\n );\n\n const {\n getHeaderGroups,\n getTopRows,\n getCenterRows,\n getBottomRows,\n getRowModel,\n setColumnOrder,\n } = useReactTable<T>({\n data,\n columns,\n enableSorting,\n initialState: {\n columnOrder: columns.map(({ id }) => id ?? ''),\n },\n state: {\n rowSelection,\n },\n getRowId: (row, index) => {\n // Use the index as the row ID if no unique identifier is available\n return row.id ? row.id.toString() : index.toString();\n },\n enableRowSelection: true,\n onRowSelectionChange: setRowSelection,\n getCoreRowModel: getCoreRowModel<T>(),\n getSortedRowModel: getSortedRowModel<T>(),\n });\n\n const moveColumnLeft = useCallback(\n (oldIndex: number) => {\n setColumnOrder((order) => {\n const newColumnOrder = [...order];\n const newIndex = oldIndex - 1;\n\n if (newIndex < 0) {\n return order;\n }\n\n [newColumnOrder[oldIndex], newColumnOrder[newIndex]] = [\n newColumnOrder[newIndex] as string,\n newColumnOrder[oldIndex] as string,\n ];\n\n return newColumnOrder;\n });\n },\n [setColumnOrder],\n );\n\n const moveColumnRight = useCallback(\n (oldIndex: number) => {\n setColumnOrder((order) => {\n const newColumnOrder = [...order];\n const newIndex = oldIndex + 1;\n\n if (newIndex >= order.length) {\n return order;\n }\n\n [newColumnOrder[oldIndex], newColumnOrder[newIndex]] = [\n newColumnOrder[newIndex] as string,\n newColumnOrder[oldIndex] as string,\n ];\n\n return newColumnOrder;\n });\n },\n [setColumnOrder],\n );\n\n if (children) {\n return <table {...rest}>{children}</table>;\n }\n\n return (\n <TableContext.Provider\n value={{\n persistRowKebabMenu,\n persistHeaderKebabMenu,\n persistNumerals,\n enableSorting,\n enableColumnReordering,\n enableRowActions,\n columnSelection,\n setColumnSelection,\n moveColumnLeft,\n moveColumnRight,\n }}\n >\n <table {...rest}>\n <TableHeader\n headerGroups={getHeaderGroups()}\n columnSelection={columnSelection}\n />\n <TableBody\n rows={[...getTopRows(), ...getCenterRows(), ...getBottomRows()]}\n />\n </table>\n </TableContext.Provider>\n );\n}\n\nTable.displayName = 'Table';\nTable.Body = TableBody;\nTable.Cell = TableCell;\nTable.Header = TableHeader;\nTable.HeaderCell = HeaderCell;\nTable.Row = TableRow;\n"]}
|
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
import * as tailwind_merge from 'tailwind-merge';
|
|
2
|
+
import * as tailwind_variants from 'tailwind-variants';
|
|
3
|
+
|
|
4
|
+
declare const TableHeaderStyles: tailwind_variants.TVReturnType<{} | {} | {}, undefined, string[], {} | {}, undefined, tailwind_variants.TVReturnType<unknown, undefined, string[], unknown, unknown>>;
|
|
5
|
+
declare const TableCellStylesDefaults: {
|
|
6
|
+
readonly narrow: false;
|
|
7
|
+
readonly numeral: false;
|
|
8
|
+
readonly kebab: false;
|
|
9
|
+
readonly persistent: true;
|
|
10
|
+
};
|
|
11
|
+
declare const TableCellStyles: tailwind_variants.TVReturnType<{
|
|
12
|
+
narrow: {
|
|
13
|
+
true: string;
|
|
14
|
+
false: string;
|
|
15
|
+
};
|
|
16
|
+
isNumeral: {
|
|
17
|
+
true: string;
|
|
18
|
+
false: string;
|
|
19
|
+
};
|
|
20
|
+
notPersistNums: {
|
|
21
|
+
true: string;
|
|
22
|
+
false: string;
|
|
23
|
+
};
|
|
24
|
+
}, undefined, string[], {
|
|
25
|
+
narrow: {
|
|
26
|
+
true: string;
|
|
27
|
+
false: string;
|
|
28
|
+
};
|
|
29
|
+
isNumeral: {
|
|
30
|
+
true: string;
|
|
31
|
+
false: string;
|
|
32
|
+
};
|
|
33
|
+
notPersistNums: {
|
|
34
|
+
true: string;
|
|
35
|
+
false: string;
|
|
36
|
+
};
|
|
37
|
+
}, undefined, tailwind_variants.TVReturnType<{
|
|
38
|
+
narrow: {
|
|
39
|
+
true: string;
|
|
40
|
+
false: string;
|
|
41
|
+
};
|
|
42
|
+
isNumeral: {
|
|
43
|
+
true: string;
|
|
44
|
+
false: string;
|
|
45
|
+
};
|
|
46
|
+
notPersistNums: {
|
|
47
|
+
true: string;
|
|
48
|
+
false: string;
|
|
49
|
+
};
|
|
50
|
+
}, undefined, string[], unknown, unknown>>;
|
|
51
|
+
declare const TableHeaderCellStylesDefaults: {
|
|
52
|
+
readonly narrow: false;
|
|
53
|
+
};
|
|
54
|
+
declare const TableHeaderCellStyles: tailwind_variants.TVReturnType<{
|
|
55
|
+
narrow: {
|
|
56
|
+
true: string;
|
|
57
|
+
false: string;
|
|
58
|
+
};
|
|
59
|
+
isKebabEnabled: {
|
|
60
|
+
true: string;
|
|
61
|
+
false: string;
|
|
62
|
+
};
|
|
63
|
+
notPersistHeaderKebab: {
|
|
64
|
+
true: string;
|
|
65
|
+
false: string;
|
|
66
|
+
};
|
|
67
|
+
}, undefined, string[], {
|
|
68
|
+
narrow: {
|
|
69
|
+
true: string;
|
|
70
|
+
false: string;
|
|
71
|
+
};
|
|
72
|
+
isKebabEnabled: {
|
|
73
|
+
true: string;
|
|
74
|
+
false: string;
|
|
75
|
+
};
|
|
76
|
+
notPersistHeaderKebab: {
|
|
77
|
+
true: string;
|
|
78
|
+
false: string;
|
|
79
|
+
};
|
|
80
|
+
}, undefined, tailwind_variants.TVReturnType<{
|
|
81
|
+
narrow: {
|
|
82
|
+
true: string;
|
|
83
|
+
false: string;
|
|
84
|
+
};
|
|
85
|
+
isKebabEnabled: {
|
|
86
|
+
true: string;
|
|
87
|
+
false: string;
|
|
88
|
+
};
|
|
89
|
+
notPersistHeaderKebab: {
|
|
90
|
+
true: string;
|
|
91
|
+
false: string;
|
|
92
|
+
};
|
|
93
|
+
}, undefined, string[], unknown, unknown>>;
|
|
94
|
+
declare const TableRowStyles: tailwind_variants.TVReturnType<{} | {} | {}, undefined, string[], {} | {}, undefined, tailwind_variants.TVReturnType<unknown, undefined, string[], unknown, unknown>>;
|
|
95
|
+
declare const TableBodyStyles: tailwind_variants.TVReturnType<{} | {} | {}, undefined, string[], {} | {}, undefined, tailwind_variants.TVReturnType<unknown, undefined, string[], unknown, unknown>>;
|
|
96
|
+
declare const TableStyles: tailwind_variants.TVReturnType<{
|
|
97
|
+
[key: string]: {
|
|
98
|
+
[key: string]: tailwind_merge.ClassNameValue | {
|
|
99
|
+
base?: tailwind_merge.ClassNameValue;
|
|
100
|
+
menuItem?: tailwind_merge.ClassNameValue;
|
|
101
|
+
notPersistRowKebab?: tailwind_merge.ClassNameValue;
|
|
102
|
+
};
|
|
103
|
+
};
|
|
104
|
+
} | {
|
|
105
|
+
[x: string]: {
|
|
106
|
+
[x: string]: tailwind_merge.ClassNameValue | {
|
|
107
|
+
base?: tailwind_merge.ClassNameValue;
|
|
108
|
+
menuItem?: tailwind_merge.ClassNameValue;
|
|
109
|
+
notPersistRowKebab?: tailwind_merge.ClassNameValue;
|
|
110
|
+
};
|
|
111
|
+
};
|
|
112
|
+
} | {}, {
|
|
113
|
+
base: string;
|
|
114
|
+
menuItem: string;
|
|
115
|
+
notPersistRowKebab: string;
|
|
116
|
+
}, undefined, {
|
|
117
|
+
[key: string]: {
|
|
118
|
+
[key: string]: tailwind_merge.ClassNameValue | {
|
|
119
|
+
base?: tailwind_merge.ClassNameValue;
|
|
120
|
+
menuItem?: tailwind_merge.ClassNameValue;
|
|
121
|
+
notPersistRowKebab?: tailwind_merge.ClassNameValue;
|
|
122
|
+
};
|
|
123
|
+
};
|
|
124
|
+
} | {}, {
|
|
125
|
+
base: string;
|
|
126
|
+
menuItem: string;
|
|
127
|
+
notPersistRowKebab: string;
|
|
128
|
+
}, tailwind_variants.TVReturnType<unknown, {
|
|
129
|
+
base: string;
|
|
130
|
+
menuItem: string;
|
|
131
|
+
notPersistRowKebab: string;
|
|
132
|
+
}, undefined, unknown, unknown>>;
|
|
133
|
+
|
|
134
|
+
export { TableBodyStyles, TableCellStyles, TableCellStylesDefaults, TableHeaderCellStyles, TableHeaderCellStylesDefaults, TableHeaderStyles, TableRowStyles, TableStyles };
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import {tv}from'./../../lib/utils.js';const o=tv({base:["group/theader"]}),r={narrow:false,numeral:false,kebab:false,persistent:true},l=tv({base:["fg-primary-bold min-w-l row:bg-surface-raised text-left align-middle font-display text-body-s","selection-end:border-b-1 selection-end:border-b-[var(--outline-accent-primary-bold)]","selected:bg-accent-primary-muted selected:shadow-[1px_1px_0_0_var(--outline-accent-primary-bold),-1px_0_0_0_var(--outline-accent-primary-bold)]"],variants:{narrow:{true:"py-m text-center",false:"p-m"},isNumeral:{true:"fg-primary-muted hover:fg-primary-bold px-s group-not-pinned/row:*:invisible",false:""},notPersistNums:{true:"invisible hover:*:visible group-hover/row:*:visible",false:""}},defaultVariants:r}),t={narrow:false},s=tv({base:["group/header-cell group fg-primary-muted hover:fg-primary-bold flex h-12 items-center justify-between gap-xxs text-left align-middle font-medium text-body-s [&:has([role=checkbox])]:pr-0","selected:bg-accent-primary-muted","selected:shadow-[1px_0_0_0_var(--outline-accent-primary-bold),-1px_-1px_0_0_var(--outline-accent-primary-bold)]"],variants:{narrow:{true:"px-0 py-m",false:"p-m"},isKebabEnabled:{true:"pr-0",false:""},notPersistHeaderKebab:{true:"opacity-0 hover:opacity-100",false:""}},defaultVariants:{narrow:t.narrow}}),i=tv({base:["group/row","border-transparent group-not-selected/tbody:border-1","selected:bg-accent-primary-muted","selected:border-x-[var(--outline-accent-primary-bold)]","has-[+[data-selected]]:not-selected:border-b-[var(--outline-accent-primary-bold)]","not-has-[+[data-selected]]:data-selected:border-b-[var(--outline-accent-primary-bold)]","group-not-selected/tbody:first-of-type:border-t-[var(--outline-static)]","selected:first-of-type:border-t-[var(--outline-accent-primary-bold)]"]}),n=tv({base:["group/tbody"]}),d=tv({slots:{base:"group/table",menuItem:"cursor-pointer disabled:cursor-auto",notPersistRowKebab:"invisible hover:*:visible group-hover/row:*:visible"}});export{n as TableBodyStyles,l as TableCellStyles,r as TableCellStylesDefaults,s as TableHeaderCellStyles,t as TableHeaderCellStylesDefaults,o as TableHeaderStyles,i as TableRowStyles,d as TableStyles};//# sourceMappingURL=styles.js.map
|
|
2
|
+
//# sourceMappingURL=styles.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/components/table/styles.ts"],"names":["e","TableHeaderCellStylesDefaults","TableRowStyles"],"mappings":"sCAeE,MAAM,CAAC,CAAAA,EAAA,CAAA,CAAA,IAAA,CAAA,CAAA,eAIP,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CACR,MAAA,CAAA,KAAS,CAAA,OACF,CAAA,KACP,CAAA,KAAA,CAAA,KAAA,CAAA,UAIA,OAAM,CACJ,CAAAA,EAAA,CAAA,CAAA,IAAA,CAAA,CAAA,+FACA,CAAA,sFACA,CAAA,iJAEF,CAAU,CACR,QACE,CAAA,CAAA,MAAM,CAAA,CAAA,IAAA,CAAA,kBACC,CAAA,KAET,CAAA,KAAA,CAAA,CAAW,SACH,CAAA,CAAA,IAAA,CAAA,8EAER,CACA,KAAA,CAAA,EAAA,CAAA,CAAA,cACQ,CAAA,CAAA,IAAA,CAAA,qDAGV,CAAA,KACA,CAAA,EAAA,CAAA,CAAA,CAAA,eAIA,CAAA,CAAA,CAAA,CAAA,CAAQ,EACV,CAAA,MAGE,QAAM,CACJ,CAAAA,EAAA,CAAA,CAAA,IAAA,CAAA,CAAA,4LACA,CAAA,kCACA,CAAA,iHAEF,CAAU,CACR,QACE,CAAA,CAAA,MAAM,CAAA,CAAA,IAAA,CAAA,WACC,CAAA,KAET,CAAA,KAAA,CAAA,CAAA,oBAEE,CAAA,MACF,CACA,KAAA,CAAA,EAAA,CAAA,CAAA,qBACQ,CAAA,CAAA,IAAA,CAAA,6BAGV,CAAA,KACA,CAAA,EAAA,CAAA,CAAA,CAAA,eACUC,CAA8B,CAAA,MAE1C,CAAC,EAEYC,MACX,CAAA,CAAA,CAAA,CAAM,CACJ,CAAAF,EAAA,CAAA,CAAA,IAAA,CAAA,CAAA,WACA,CAAA,sDACA,CAAA,2FAGA,CAAA,mFACA,CAAA,wFACA,CAAA,yEACA,CAAA,sEAKF,CAAA,CAAA,CAAA,CAAM,CAAC,CAAAA,EAAA,CAAA,CAAA,IAAA,CAAA,CAAA,aAIP,CAAA,CAAA,CAAA,CAAA,CAAO,CACLA,EAAA,CAAA,CAAA,yBACU,CAAA,QAAA,CAAA,qCACV,CAAA,kBAAoB,CAAA,qDAEvB,CAAA,CAAA","file":"styles.js","sourcesContent":["/*\n * Copyright 2025 Hypergiant Galactic Systems Inc. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport { tv } from '@/lib/utils';\n\nexport const TableHeaderStyles = tv({\n base: ['group/theader'],\n});\n\nexport const TableCellStylesDefaults = {\n narrow: false,\n numeral: false,\n kebab: false,\n persistent: true,\n} as const;\n\nexport const TableCellStyles = tv({\n base: [\n 'fg-primary-bold min-w-l row:bg-surface-raised text-left align-middle font-display text-body-s',\n 'selection-end:border-b-1 selection-end:border-b-[var(--outline-accent-primary-bold)]',\n 'selected:bg-accent-primary-muted selected:shadow-[1px_1px_0_0_var(--outline-accent-primary-bold),-1px_0_0_0_var(--outline-accent-primary-bold)]',\n ],\n variants: {\n narrow: {\n true: 'py-m text-center',\n false: 'p-m',\n },\n isNumeral: {\n true: 'fg-primary-muted hover:fg-primary-bold px-s group-not-pinned/row:*:invisible',\n false: '',\n },\n notPersistNums: {\n true: 'invisible hover:*:visible group-hover/row:*:visible',\n false: '',\n },\n },\n defaultVariants: TableCellStylesDefaults,\n});\n\nexport const TableHeaderCellStylesDefaults = {\n narrow: false,\n} as const;\n\nexport const TableHeaderCellStyles = tv({\n base: [\n 'group/header-cell group fg-primary-muted hover:fg-primary-bold flex h-12 items-center justify-between gap-xxs text-left align-middle font-medium text-body-s [&:has([role=checkbox])]:pr-0',\n 'selected:bg-accent-primary-muted',\n 'selected:shadow-[1px_0_0_0_var(--outline-accent-primary-bold),-1px_-1px_0_0_var(--outline-accent-primary-bold)]',\n ],\n variants: {\n narrow: {\n true: 'px-0 py-m',\n false: 'p-m',\n },\n isKebabEnabled: {\n true: 'pr-0',\n false: '',\n },\n notPersistHeaderKebab: {\n true: 'opacity-0 hover:opacity-100',\n false: '',\n },\n },\n defaultVariants: {\n narrow: TableHeaderCellStylesDefaults.narrow,\n },\n});\n\nexport const TableRowStyles = tv({\n base: [\n 'group/row',\n 'border-transparent group-not-selected/tbody:border-1',\n 'selected:bg-accent-primary-muted',\n 'selected:border-x-[var(--outline-accent-primary-bold)]',\n /** Ensure border is applied to first and last selected rows */\n 'has-[+[data-selected]]:not-selected:border-b-[var(--outline-accent-primary-bold)]',\n 'not-has-[+[data-selected]]:data-selected:border-b-[var(--outline-accent-primary-bold)]',\n 'group-not-selected/tbody:first-of-type:border-t-[var(--outline-static)]',\n 'selected:first-of-type:border-t-[var(--outline-accent-primary-bold)]',\n ],\n});\n\nexport const TableBodyStyles = tv({\n base: ['group/tbody'],\n});\n\nexport const TableStyles = tv({\n slots: {\n base: 'group/table',\n menuItem: 'cursor-pointer disabled:cursor-auto',\n notPersistRowKebab: 'invisible hover:*:visible group-hover/row:*:visible',\n },\n});\n"]}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
|
+
import { TableBodyProps } from './types.js';
|
|
3
|
+
import '@react-types/shared';
|
|
4
|
+
import '@tanstack/react-table';
|
|
5
|
+
import 'react';
|
|
6
|
+
import 'tailwind-variants';
|
|
7
|
+
import './styles.js';
|
|
8
|
+
import 'tailwind-merge';
|
|
9
|
+
|
|
10
|
+
declare function TableBody<T>({ children, className, ref, rows, ...rest }: TableBodyProps<T>): react_jsx_runtime.JSX.Element;
|
|
11
|
+
|
|
12
|
+
export { TableBody };
|