@mastra/playground-ui 57.0.0-alpha.4 → 57.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/dist/components/DisabledFeatureButton.cjs.js +44 -0
- package/dist/components/DisabledFeatureButton.cjs.js.map +1 -0
- package/dist/components/DisabledFeatureButton.d.ts +2 -0
- package/dist/components/DisabledFeatureButton.es.js +40 -0
- package/dist/components/DisabledFeatureButton.es.js.map +1 -0
- package/dist/components/LogsDataList.cjs.js +2 -0
- package/dist/components/LogsDataList.cjs.js.map +1 -1
- package/dist/components/LogsDataList.es.js +2 -0
- package/dist/components/LogsDataList.es.js.map +1 -1
- package/dist/components/MainSidebar.cjs.js +11 -125
- package/dist/components/MainSidebar.cjs.js.map +1 -1
- package/dist/components/MainSidebar.es.js +1 -120
- package/dist/components/MainSidebar.es.js.map +1 -1
- package/dist/domains/traces/components/traces-page-skeleton.cjs.js +2 -0
- package/dist/domains/traces/components/traces-page-skeleton.cjs.js.map +1 -1
- package/dist/domains/traces/components/traces-page-skeleton.es.js +2 -0
- package/dist/domains/traces/components/traces-page-skeleton.es.js.map +1 -1
- package/dist/ee/signals/components/entity-index-list.cjs.js +2 -0
- package/dist/ee/signals/components/entity-index-list.cjs.js.map +1 -1
- package/dist/ee/signals/components/entity-index-list.es.js +2 -0
- package/dist/ee/signals/components/entity-index-list.es.js.map +1 -1
- package/dist/ee/signals/components/trace-intelligence-entity-index.cjs.js +1 -0
- package/dist/ee/signals/components/trace-intelligence-entity-index.cjs.js.map +1 -1
- package/dist/ee/signals/components/trace-intelligence-entity-index.es.js +1 -0
- package/dist/ee/signals/components/trace-intelligence-entity-index.es.js.map +1 -1
- package/dist/{main-sidebar-link-active-cFZ7oAVi.js → main-sidebar-Cf5G9iaC.js} +118 -6
- package/dist/main-sidebar-Cf5G9iaC.js.map +1 -0
- package/dist/{main-sidebar-link-active-DMPiqFak.cjs → main-sidebar-DYfRxFn4.cjs} +117 -4
- package/dist/main-sidebar-DYfRxFn4.cjs.map +1 -0
- package/dist/new/sidebar.cjs.js +32 -32
- package/dist/new/sidebar.cjs.js.map +1 -1
- package/dist/new/sidebar.es.js +2 -2
- package/dist/src/ds/components/DisabledFeatureButton/disabled-feature-button.d.ts +13 -0
- package/dist/src/ds/components/DisabledFeatureButton/index.d.ts +1 -0
- package/dist/style.css +4 -0
- package/package.json +7 -7
- package/dist/main-sidebar-link-active-DMPiqFak.cjs.map +0 -1
- package/dist/main-sidebar-link-active-cFZ7oAVi.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sidebar.cjs.js","sources":["../../src/ds/new/sidebar/sidebar-new-brand.tsx","../../src/ds/new/sidebar/sidebar-new-command-header.tsx","../../src/ds/new/sidebar/sidebar-new-footer.tsx","../../src/ds/new/sidebar/sidebar-new-footer-meta.tsx","../../src/ds/new/sidebar/sidebar-new-header.tsx","../../src/ds/new/sidebar/sidebar-new-meter.tsx","../../src/ds/new/sidebar/sidebar-new-nav.tsx","../../src/ds/new/sidebar/sidebar-new-nav-header.tsx","../../src/ds/new/sidebar/sidebar-new-nav-stack-context.ts","../../src/ds/new/sidebar/sidebar-new-nav-stack-root.tsx","../../src/ds/new/sidebar/sidebar-new-nav-stack-page-classes.ts","../../src/ds/new/sidebar/sidebar-new-nav-stack-root-view.tsx","../../src/ds/new/sidebar/sidebar-new-nav-stack-view.tsx","../../src/ds/new/sidebar/sidebar-new-nav-stack.ts","../../src/ds/new/sidebar/sidebar-new-root.tsx","../../src/ds/new/sidebar/sidebar-new-search-trigger.tsx","../../src/ds/new/sidebar/sidebar-new-section-link.tsx","../../src/ds/new/sidebar/sidebar-new-more-links.tsx","../../src/ds/new/sidebar/sidebar-new-sections.tsx","../../src/ds/new/sidebar/sidebar-new-trigger.tsx","../../src/ds/new/sidebar/sidebar-new.ts"],"sourcesContent":["import type { ComponentPropsWithoutRef, ReactNode } from 'react';\nimport { useMainSidebar } from '@/ds/components/MainSidebar/main-sidebar-context';\nimport { VisuallyHidden } from '@/ds/primitives/visually-hidden';\nimport { cn } from '@/lib/utils';\n\nexport type SidebarNewBrandProps = Omit<ComponentPropsWithoutRef<'div'>, 'title'> & {\n logo?: ReactNode;\n title: ReactNode;\n};\n\nexport function SidebarNewBrand({ logo, title, className, ...props }: SidebarNewBrandProps) {\n const { state } = useMainSidebar();\n\n return (\n <div data-slot=\"sidebar-new-brand\" className={cn('flex min-w-0 flex-1 items-center gap-2', className)} {...props}>\n {logo ? <span className=\"shrink-0\">{logo}</span> : null}\n {state === 'collapsed' ? (\n <VisuallyHidden>{title}</VisuallyHidden>\n ) : (\n <span className=\"truncate font-body text-subheading tracking-tight text-foreground\">{title}</span>\n )}\n </div>\n );\n}\n","import { forwardRef } from 'react';\nimport type { ComponentPropsWithoutRef } from 'react';\nimport { useMainSidebar } from '@/ds/components/MainSidebar/main-sidebar-context';\nimport { cn } from '@/lib/utils';\n\nexport type SidebarNewCommandHeaderProps = ComponentPropsWithoutRef<'header'>;\n\nexport const SidebarNewCommandHeader = forwardRef<HTMLElement, SidebarNewCommandHeaderProps>(\n function SidebarNewCommandHeader({ className, children, ...props }, ref) {\n const { state } = useMainSidebar();\n\n return (\n <header\n ref={ref}\n data-slot=\"sidebar-new-command-header\"\n data-state={state}\n className={cn(\n 'flex h-header-default shrink-0 items-center gap-1 overflow-hidden px-3',\n state === 'collapsed' && '[&_[data-slot=sidebar-new-search-trigger]]:hidden',\n className,\n )}\n {...props}\n >\n {children}\n </header>\n );\n },\n);\n","import type { ComponentPropsWithoutRef } from 'react';\nimport { cn } from '@/lib/utils';\n\nexport type SidebarNewFooterProps = ComponentPropsWithoutRef<'footer'>;\n\nexport function SidebarNewFooter({ className, children, ...props }: SidebarNewFooterProps) {\n return (\n <footer data-slot=\"sidebar-new-footer\" className={cn('mt-auto shrink-0', className)} {...props}>\n {children}\n </footer>\n );\n}\n","import { forwardRef } from 'react';\nimport type { ComponentPropsWithoutRef, ReactNode } from 'react';\nimport { useMainSidebar } from '@/ds/components/MainSidebar/main-sidebar-context';\nimport { cn } from '@/lib/utils';\n\nexport type SidebarNewFooterMetaProps = ComponentPropsWithoutRef<'div'> & {\n action?: ReactNode;\n};\n\nexport const SidebarNewFooterMeta = forwardRef<HTMLDivElement, SidebarNewFooterMetaProps>(function SidebarNewFooterMeta(\n { className, children, action, ...props },\n ref,\n) {\n const { state } = useMainSidebar();\n\n return (\n <div\n ref={ref}\n data-slot=\"sidebar-new-footer-meta\"\n data-state={state}\n className={cn(\n 'grid min-h-10 grid-cols-[minmax(0,1fr)_auto_0fr] items-center border-t border-border px-2 py-1 text-meta text-muted-foreground',\n 'transition-[grid-template-columns] duration-slow ease-out-custom motion-reduce:transition-none',\n state === 'collapsed' && 'grid-cols-[minmax(0,1fr)_auto_minmax(0,1fr)] px-0',\n className,\n )}\n {...props}\n >\n <div\n aria-hidden={state === 'collapsed'}\n className={cn(\n 'min-w-0 truncate transition-opacity duration-normal ease-out-custom motion-reduce:transition-none',\n state === 'collapsed' && 'opacity-0',\n )}\n >\n {children}\n </div>\n {action}\n <span aria-hidden />\n </div>\n );\n});\n","import type { ComponentPropsWithoutRef } from 'react';\nimport { cn } from '@/lib/utils';\n\nexport type SidebarNewHeaderProps = ComponentPropsWithoutRef<'header'>;\n\nexport function SidebarNewHeader({ className, children, ...props }: SidebarNewHeaderProps) {\n return (\n <header\n data-slot=\"sidebar-new-header\"\n className={cn('flex h-header-default shrink-0 items-center gap-2 px-1', className)}\n {...props}\n >\n {children}\n </header>\n );\n}\n","import type { ComponentPropsWithoutRef, ReactNode } from 'react';\nimport { forwardRef } from 'react';\nimport { useMaybeSidebarState } from '@/ds/components/MainSidebar/main-sidebar-context';\nimport type { SidebarState } from '@/ds/components/MainSidebar/main-sidebar-context';\nimport { surfaceStateLayerStyle } from '@/ds/primitives/raised-surface';\nimport type { LinkComponent } from '@/ds/types/link-component';\nimport { cn } from '@/lib/utils';\n\nexport type SidebarNewMeterTone = 'neutral' | 'warning' | 'danger';\n\nconst NOISE =\n \"url(\\\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E\\\")\";\n\nconst CARD_HEIGHT = 76;\nconst BLOOM_HEIGHT = 100;\nconst BLOOM_HOLD_Y = 60;\nconst BLOOM_HOLD_X = 22.5;\nconst GRAIN_OPACITY = 0.18;\nconst GRAIN_SIZE = 110;\n\nconst FALLOFF_RAMP = [0, 0.08, 0.16, 0.25, 0.34, 0.44, 0.55, 0.66, 0.78, 0.89, 1];\n\nconst TONES = {\n neutral: { colorVar: '--foreground', peak: 0.08, grain: true, text: 'text-muted-foreground' },\n warning: {\n colorVar: '--notice-warning',\n peak: 0.16,\n grain: false,\n text: 'text-notice-warning-fg',\n },\n danger: {\n colorVar: '--notice-destructive',\n peak: 0.16,\n grain: false,\n text: 'text-notice-destructive-fg',\n },\n};\n\nfunction cubicFalloff(position: number) {\n const inverse = 1 - position;\n return inverse * inverse * inverse;\n}\n\nfunction easedBloom(colorVar: string, peak: number) {\n const stops = FALLOFF_RAMP.map(position => {\n const alpha = (peak * cubicFalloff(position) * 100).toFixed(2);\n return `color-mix(in oklch, var(${colorVar}) ${alpha}%, transparent) ${(position * 100).toFixed(0)}%`;\n });\n return `linear-gradient(to right, ${stops.join(', ')})`;\n}\n\nfunction easedMask(direction: string, hold: number) {\n const stops = FALLOFF_RAMP.map(position => {\n const offset = (hold + (100 - hold) * position).toFixed(2);\n return `rgb(0 0 0 / ${cubicFalloff(position).toFixed(3)}) ${offset}%`;\n });\n return `linear-gradient(${direction}, rgb(0 0 0 / 1) 0%, ${stops.join(', ')})`;\n}\n\nconst BLOOM_MASK = `${easedMask('to bottom', BLOOM_HOLD_Y)}, ${easedMask('to right', BLOOM_HOLD_X)}`;\n\nfunction Bloom({ tone }: { tone: SidebarNewMeterTone }) {\n const current = TONES[tone];\n return (\n <span\n aria-hidden\n data-slot=\"sidebar-new-meter-bloom\"\n className=\"pointer-events-none absolute inset-x-0 top-0 -z-10\"\n style={{\n height: BLOOM_HEIGHT,\n backgroundImage: easedBloom(current.colorVar, current.peak),\n maskImage: BLOOM_MASK,\n maskComposite: 'intersect',\n }}\n >\n {current.grain ? (\n <span\n aria-hidden\n className=\"absolute inset-0\"\n style={{\n backgroundImage: NOISE,\n backgroundRepeat: 'repeat',\n backgroundSize: `${GRAIN_SIZE}px ${GRAIN_SIZE}px`,\n opacity: GRAIN_OPACITY,\n }}\n />\n ) : null}\n </span>\n );\n}\n\ninterface SidebarNewMeterBaseProps extends Omit<ComponentPropsWithoutRef<'div'>, 'children'> {\n label: ReactNode;\n value: ReactNode;\n status?: ReactNode;\n tone?: SidebarNewMeterTone;\n icon?: ReactNode;\n action?: ReactNode;\n LinkComponent?: LinkComponent;\n state?: SidebarState;\n}\n\ntype SidebarNewMeterLinkProps =\n | {\n href: string;\n linkLabel: string;\n }\n | { href?: never; linkLabel?: never };\nexport type SidebarNewMeterProps = SidebarNewMeterBaseProps & SidebarNewMeterLinkProps;\n\nexport const SidebarNewMeter = forwardRef<HTMLDivElement, SidebarNewMeterProps>(function SidebarNewMeter(\n {\n label,\n value,\n status,\n tone = 'neutral',\n icon,\n action,\n href,\n linkLabel,\n LinkComponent: LinkProp,\n state: stateProp,\n className,\n ...props\n },\n ref,\n) {\n const ctx = useMaybeSidebarState();\n const state: SidebarState = stateProp ?? ctx?.state ?? 'default';\n const Link: LinkComponent = LinkProp ?? ctx?.LinkComponent ?? 'a';\n const isCollapsed = state === 'collapsed';\n const current = TONES[tone];\n\n if (isCollapsed) {\n return (\n <div\n ref={ref}\n data-slot=\"sidebar-new-meter\"\n data-tone={tone}\n data-state={state}\n className={cn(\n 'relative isolate flex items-center justify-center overflow-hidden rounded-lg border border-border bg-background px-1 py-2',\n className,\n )}\n {...props}\n >\n <Bloom tone={tone} />\n {href ? <Link href={href} className=\"absolute inset-0 rounded-lg\" aria-label={linkLabel} /> : null}\n <span className=\"pointer-events-none relative text-meta text-foreground tabular-nums\">{value}</span>\n </div>\n );\n }\n\n return (\n <div\n ref={ref}\n data-slot=\"sidebar-new-meter\"\n data-tone={tone}\n data-state={state}\n className={cn(\n 'relative isolate flex flex-col justify-center overflow-hidden rounded-lg border border-border bg-background px-3',\n href && surfaceStateLayerStyle,\n className,\n )}\n style={{ height: CARD_HEIGHT }}\n {...props}\n >\n <Bloom tone={tone} />\n {href ? <Link href={href} className=\"absolute inset-0 rounded-lg\" aria-label={linkLabel} /> : null}\n\n <div className=\"pointer-events-none relative\">\n <div className=\"flex items-center gap-1.5\">\n {tone === 'neutral' ? null : icon}\n <span className=\"text-column text-muted-foreground\">{label}</span>\n {action ? <span className=\"pointer-events-auto\">{action}</span> : null}\n </div>\n\n <p className=\"mt-0.5 text-heading leading-tight text-foreground tabular-nums\">{value}</p>\n\n {status ? (\n <div className=\"mt-1 text-meta\">\n <p className={cn('truncate', current.text)}>{status}</p>\n </div>\n ) : null}\n </div>\n </div>\n );\n});\n","import { useMaybeSidebarState } from '@/ds/components/MainSidebar/main-sidebar-context';\nimport type { MainSidebarNavProps } from '@/ds/components/MainSidebar/main-sidebar-nav';\nimport { MainSidebarNav } from '@/ds/components/MainSidebar/main-sidebar-nav';\nimport { cn } from '@/lib/utils';\n\nexport type SidebarNewNavProps = MainSidebarNavProps;\n\nexport function SidebarNewNav({ children, className, ...props }: SidebarNewNavProps) {\n const isMobile = useMaybeSidebarState()?.isMobile ?? false;\n\n return (\n <MainSidebarNav\n className={cn(\n '-mr-1.5',\n '[&_[data-orientation=vertical]]:w-1 [&_[data-orientation=vertical]]:p-0',\n 'focus-within:[&_[data-orientation=vertical][data-has-overflow-y]]:opacity-100',\n isMobile && '[&_a]:min-h-11 [&_a]:touch-manipulation [&_button]:min-h-11 [&_button]:touch-manipulation',\n className,\n )}\n {...props}\n >\n <div className=\"pr-1.5\">{children}</div>\n </MainSidebarNav>\n );\n}\n","import type { ComponentPropsWithoutRef } from 'react';\nimport type { SidebarState } from '@/ds/components/MainSidebar/main-sidebar-context';\nimport { useMaybeSidebarState } from '@/ds/components/MainSidebar/main-sidebar-context';\nimport { VisuallyHidden } from '@/ds/primitives/visually-hidden';\nimport type { LinkComponent } from '@/ds/types/link-component';\nimport { cn } from '@/lib/utils';\n\nexport type SidebarNewNavHeaderProps = Omit<ComponentPropsWithoutRef<'header'>, 'children'> & {\n children?: React.ReactNode;\n state?: SidebarState;\n href?: string;\n isActive?: boolean;\n LinkComponent?: LinkComponent;\n};\n\nexport function SidebarNewNavHeader({\n children,\n className,\n state: stateProp,\n href,\n isActive,\n LinkComponent: LinkProp,\n ...props\n}: SidebarNewNavHeaderProps) {\n const context = useMaybeSidebarState();\n const state = stateProp ?? context?.state ?? 'default';\n const showTitle = state === 'default';\n const Link = LinkProp ?? context?.LinkComponent ?? 'a';\n\n return (\n <div className={cn('mt-3 flex min-h-7 min-w-0 items-center', className)}>\n {showTitle ? (\n <header\n {...props}\n className={cn('max-w-full min-w-0 truncate pl-3 text-column', {\n 'text-foreground': isActive,\n 'text-muted-foreground': !isActive,\n })}\n >\n {href ? (\n <Link\n href={href}\n className={cn('block min-w-0 truncate transition-colors duration-normal', {\n 'hover:text-foreground': !isActive,\n 'text-foreground': isActive,\n })}\n >\n {children}\n </Link>\n ) : (\n children\n )}\n </header>\n ) : (\n <>\n <VisuallyHidden asChild>\n <header {...props}>{children}</header>\n </VisuallyHidden>\n <div aria-hidden=\"true\" className=\"mx-3 h-px flex-1 bg-border\" />\n </>\n )}\n </div>\n );\n}\n","import React from 'react';\n\nexport type SidebarNewNavStackContextValue = {\n activeValue: string;\n rootValue: string;\n closeView: (returnFocusRef?: React.RefObject<HTMLElement | null>) => void;\n};\n\nexport const SidebarNewNavStackContext = React.createContext<SidebarNewNavStackContextValue | undefined>(undefined);\n\nexport function useSidebarNewNavStack() {\n const context = React.useContext(SidebarNewNavStackContext);\n if (!context) throw new Error('SidebarNew.NavStack components must be used within SidebarNew.NavStack.');\n return context;\n}\n","import React from 'react';\nimport type { ComponentPropsWithoutRef } from 'react';\nimport { SidebarNewNavStackContext } from './sidebar-new-nav-stack-context';\nimport { cn } from '@/lib/utils';\n\nexport type SidebarNewNavStackProps = ComponentPropsWithoutRef<'div'> & {\n value: string;\n rootValue?: string;\n onValueChange: (value: string) => void;\n};\n\nexport function SidebarNewNavStackRoot({\n value,\n rootValue = 'root',\n onValueChange,\n children,\n className,\n ...props\n}: SidebarNewNavStackProps) {\n function closeView(returnFocusRef?: React.RefObject<HTMLElement | null>) {\n onValueChange(rootValue);\n requestAnimationFrame(() => {\n const target = returnFocusRef?.current;\n if (target && !target.closest('[inert]')) target.focus();\n });\n }\n\n return (\n <SidebarNewNavStackContext.Provider value={{ activeValue: value, rootValue, closeView }}>\n <div\n data-slot=\"sidebar-new-nav-stack\"\n data-value={value}\n className={cn('relative grid min-w-0 overflow-hidden', className)}\n {...props}\n >\n {children}\n </div>\n </SidebarNewNavStackContext.Provider>\n );\n}\n","import { cn } from '@/lib/utils';\n\nexport function sidebarNewNavStackPageClasses(active: boolean, page: 'root' | 'view', className?: string) {\n return cn(\n 'col-start-1 row-start-1 min-w-0 transition-[opacity,translate] duration-normal ease-out-custom will-change-[opacity,translate] motion-reduce:transition-none',\n active && 'relative translate-x-0 opacity-100',\n !active && 'pointer-events-none absolute inset-0 opacity-0',\n !active && page === 'root' && '-translate-x-2',\n !active && page === 'view' && 'translate-x-2',\n className,\n );\n}\n","import type { ComponentPropsWithoutRef } from 'react';\nimport { useSidebarNewNavStack } from './sidebar-new-nav-stack-context';\nimport { sidebarNewNavStackPageClasses } from './sidebar-new-nav-stack-page-classes';\nimport { useMainSidebar } from '@/ds/components/MainSidebar/main-sidebar-context';\n\nexport type SidebarNewNavStackRootViewProps = ComponentPropsWithoutRef<'div'>;\n\nexport function SidebarNewNavStackRootView({ children, className, ...props }: SidebarNewNavStackRootViewProps) {\n const { state } = useMainSidebar();\n const { activeValue, rootValue } = useSidebarNewNavStack();\n const active = state === 'collapsed' || activeValue === rootValue;\n\n return (\n <div\n {...props}\n data-slot=\"sidebar-new-nav-stack-root\"\n aria-hidden={!active}\n inert={!active}\n className={sidebarNewNavStackPageClasses(active, 'root', className)}\n >\n {children}\n </div>\n );\n}\n","import { ArrowLeftIcon } from 'lucide-react';\nimport React from 'react';\nimport type { ComponentPropsWithoutRef } from 'react';\nimport { useSidebarNewNavStack } from './sidebar-new-nav-stack-context';\nimport { sidebarNewNavStackPageClasses } from './sidebar-new-nav-stack-page-classes';\nimport { useMainSidebar } from '@/ds/components/MainSidebar/main-sidebar-context';\nimport { navItemClasses } from '@/ds/components/MainSidebar/main-sidebar-nav-item-classes';\nimport { cn } from '@/lib/utils';\n\nexport type SidebarNewNavStackViewProps = ComponentPropsWithoutRef<'div'> & {\n value: string;\n title: string;\n backLabel?: string;\n returnFocusRef?: React.RefObject<HTMLElement | null>;\n onBack?: () => void;\n};\n\nexport function SidebarNewNavStackView({\n value,\n title,\n backLabel = 'Back to main navigation',\n returnFocusRef,\n onBack,\n children,\n className,\n ...props\n}: SidebarNewNavStackViewProps) {\n const { state } = useMainSidebar();\n const { activeValue, closeView } = useSidebarNewNavStack();\n const active = state !== 'collapsed' && activeValue === value;\n const backRef = React.useRef<HTMLButtonElement>(null);\n const wasActiveRef = React.useRef(active);\n\n React.useEffect(() => {\n if (active && !wasActiveRef.current) backRef.current?.focus();\n wasActiveRef.current = active;\n }, [active]);\n\n React.useEffect(() => {\n if (!active) return;\n\n function handleKeyDown(event: KeyboardEvent) {\n if (event.key !== 'Escape' || event.defaultPrevented) return;\n event.preventDefault();\n closeView(returnFocusRef);\n onBack?.();\n }\n\n document.addEventListener('keydown', handleKeyDown);\n return () => document.removeEventListener('keydown', handleKeyDown);\n }, [active, closeView, onBack, returnFocusRef]);\n\n function handleBack() {\n closeView(returnFocusRef);\n onBack?.();\n }\n\n return (\n <div\n {...props}\n data-slot=\"sidebar-new-nav-stack-view\"\n data-value={value}\n aria-hidden={!active}\n inert={!active}\n className={sidebarNewNavStackPageClasses(active, 'view', className)}\n >\n <button\n ref={backRef}\n type=\"button\"\n aria-label={`${backLabel}: ${title}`}\n onClick={handleBack}\n className={cn(navItemClasses(), 'mb-2 grid grid-cols-[2rem_1fr_2rem] px-1')}\n >\n <ArrowLeftIcon className=\"justify-self-center\" aria-hidden=\"true\" />\n <span className=\"min-w-0 truncate text-center\">{title}</span>\n <span aria-hidden=\"true\" />\n </button>\n {children}\n </div>\n );\n}\n","import { SidebarNewNavStackRoot } from './sidebar-new-nav-stack-root';\nimport { SidebarNewNavStackRootView } from './sidebar-new-nav-stack-root-view';\nimport { SidebarNewNavStackView } from './sidebar-new-nav-stack-view';\n\nexport type { SidebarNewNavStackProps } from './sidebar-new-nav-stack-root';\nexport type { SidebarNewNavStackRootViewProps } from './sidebar-new-nav-stack-root-view';\nexport type { SidebarNewNavStackViewProps } from './sidebar-new-nav-stack-view';\n\nexport const SidebarNewNavStack = Object.assign(SidebarNewNavStackRoot, {\n Root: SidebarNewNavStackRootView,\n View: SidebarNewNavStackView,\n});\n","import type { MainSidebarRootProps } from '@/ds/components/MainSidebar/main-sidebar-root';\nimport { MainSidebarRoot } from '@/ds/components/MainSidebar/main-sidebar-root';\n\nexport type SidebarNewRootProps = MainSidebarRootProps & {\n 'aria-label'?: string;\n};\n\nexport function SidebarNewRoot({\n 'aria-label': ariaLabel = 'Sidebar',\n mobileMode = 'takeover',\n ...props\n}: SidebarNewRootProps) {\n return (\n <aside aria-label={ariaLabel} className=\"contents\">\n <MainSidebarRoot mobileMode={mobileMode} {...props} />\n </aside>\n );\n}\n","import { forwardRef } from 'react';\nimport type { ComponentPropsWithoutRef, ReactNode } from 'react';\nimport { Kbd } from '@/ds/components/Kbd';\nimport { controlStateColorTransition, focusRing } from '@/ds/primitives/transitions';\nimport { quietTextHover, quietTextHoverInGroup } from '@/ds/primitives/typography';\nimport { cn } from '@/lib/utils';\n\nexport type SidebarNewSearchTriggerProps = ComponentPropsWithoutRef<'button'> & {\n shortcut?: ReactNode;\n};\n\nexport const SidebarNewSearchTrigger = forwardRef<HTMLButtonElement, SidebarNewSearchTriggerProps>(\n function SidebarNewSearchTrigger({ className, children, shortcut, type = 'button', ...props }, ref) {\n return (\n <button\n ref={ref}\n data-slot=\"sidebar-new-search-trigger\"\n type={type}\n className={cn(\n 'group inline-flex size-control-md shrink-0 items-center justify-center gap-1.5 rounded-full border border-transparent hover:bg-fill-subtle',\n quietTextHover,\n controlStateColorTransition,\n focusRing.visible,\n '[&_svg]:size-4 [&_svg]:shrink-0',\n shortcut && 'w-auto px-2',\n className,\n )}\n {...props}\n >\n {children}\n {shortcut ? (\n <Kbd size=\"xs\" className={cn('bg-surface-overlay-soft active:scale-100', quietTextHoverInGroup)}>\n {shortcut}\n </Kbd>\n ) : null}\n </button>\n );\n },\n);\n","import type { NavLink } from '@/ds/components/MainSidebar/main-sidebar-nav-link';\nimport { MainSidebarNavLink } from '@/ds/components/MainSidebar/main-sidebar-nav-link';\nimport { MainSidebarNavList } from '@/ds/components/MainSidebar/main-sidebar-nav-list';\n\nexport type SidebarNewSectionLinkProps = {\n link: NavLink;\n activeCandidates: NavLink[];\n level?: number;\n isActive?: (link: NavLink, activeCandidates: NavLink[]) => boolean;\n onSelect?: (link: NavLink) => void;\n};\n\nfunction getSidebarNewLinkKey(link: NavLink) {\n return `${link.url}:${link.name}`;\n}\n\nexport function SidebarNewSectionLink({\n link,\n activeCandidates,\n level = 0,\n isActive,\n onSelect,\n}: SidebarNewSectionLinkProps) {\n const childLinks = link.children ?? [];\n\n return (\n <MainSidebarNavLink\n link={link}\n isActive={isActive?.(link, activeCandidates) ?? link.isActive}\n level={level}\n onClick={event => {\n if (event.target instanceof Element && event.target.closest('li') !== event.currentTarget) return;\n onSelect?.(link);\n }}\n subItems={\n childLinks.length > 0 ? (\n <MainSidebarNavList className=\"mt-0.5\">\n {childLinks.map(child => (\n <SidebarNewSectionLink\n key={getSidebarNewLinkKey(child)}\n link={child}\n activeCandidates={activeCandidates}\n level={level + 1}\n isActive={isActive}\n onSelect={onSelect}\n />\n ))}\n </MainSidebarNavList>\n ) : null\n }\n />\n );\n}\n","import { ChevronDownIcon, MoreHorizontalIcon } from 'lucide-react';\nimport { useState } from 'react';\nimport { SidebarNewSectionLink } from './sidebar-new-section-link';\nimport { MainSidebarNavLabel } from '@/ds/components/MainSidebar/main-sidebar-nav-label';\nimport type { NavLink } from '@/ds/components/MainSidebar/main-sidebar-nav-link';\nimport { MainSidebarNavLink } from '@/ds/components/MainSidebar/main-sidebar-nav-link';\nimport { cn } from '@/lib/utils';\n\nexport type SidebarNewMoreLinksProps = {\n links: NavLink[];\n activeCandidates: NavLink[];\n isActive?: (link: NavLink, activeCandidates: NavLink[]) => boolean;\n recentLinks: Record<string, number>;\n recentCutoff: number;\n onSelect: (link: NavLink) => void;\n};\n\nexport function SidebarNewMoreLinks({\n links,\n activeCandidates,\n isActive,\n recentLinks,\n recentCutoff,\n onSelect,\n}: SidebarNewMoreLinksProps) {\n const [expanded, setExpanded] = useState(false);\n const linkIsActive = (link: NavLink) => isActive?.(link, activeCandidates) ?? link.isActive ?? false;\n const surfacedLinks =\n links.length < 2\n ? links\n : links.filter(link => linkIsActive(link) || (recentLinks[`${link.url}:${link.name}`] ?? 0) >= recentCutoff);\n const foldedLinks = links.filter(link => !surfacedLinks.includes(link));\n\n function renderLink(link: NavLink) {\n return (\n <SidebarNewSectionLink\n key={`${link.url}:${link.name}`}\n link={link}\n activeCandidates={activeCandidates}\n isActive={isActive}\n onSelect={onSelect}\n />\n );\n }\n\n return (\n <>\n {surfacedLinks.map(renderLink)}\n {foldedLinks.length > 0 ? (\n <MainSidebarNavLink\n link={{ name: 'More', url: '', icon: <MoreHorizontalIcon /> }}\n render={\n <button\n type=\"button\"\n aria-label=\"More\"\n aria-expanded={expanded}\n onClick={() => setExpanded(current => !current)}\n >\n <MoreHorizontalIcon aria-hidden=\"true\" />\n <MainSidebarNavLabel>More</MainSidebarNavLabel>\n </button>\n }\n action={\n <ChevronDownIcon\n aria-hidden=\"true\"\n className={cn(\n 'size-3.5 transition-transform duration-normal ease-out-custom motion-reduce:transition-none',\n expanded && 'rotate-180',\n )}\n />\n }\n />\n ) : null}\n {expanded ? foldedLinks.map(renderLink) : null}\n </>\n );\n}\n","import { useId, useState } from 'react';\nimport { z } from 'zod/v4';\nimport { SidebarNewMoreLinks } from './sidebar-new-more-links';\nimport { SidebarNewNavHeader } from './sidebar-new-nav-header';\nimport { SidebarNewSectionLink } from './sidebar-new-section-link';\nimport type { NavLink } from '@/ds/components/MainSidebar/main-sidebar-nav-link';\nimport { MainSidebarNavList } from '@/ds/components/MainSidebar/main-sidebar-nav-list';\nimport type { NavSection } from '@/ds/components/MainSidebar/main-sidebar-nav-section';\nimport { MainSidebarNavSection } from '@/ds/components/MainSidebar/main-sidebar-nav-section';\nimport { MainSidebarNavSeparator } from '@/ds/components/MainSidebar/main-sidebar-nav-separator';\nimport { useLocalStorageState } from '@/hooks/use-local-storage-state';\n\nconst recentLinkRetentionMs = 7 * 24 * 60 * 60 * 1000;\nconst recentLinksSchema = z.record(z.string(), z.number());\nconst defaultRecentItemsStorageKey = 'mastra:sidebar-new:recent-more-items';\n\nexport type SidebarNewSection = NavSection & {\n moreLinks?: NavLink[];\n};\n\nexport type SidebarNewSectionsProps = {\n sections: SidebarNewSection[];\n isActive?: (link: NavLink, activeCandidates: NavLink[]) => boolean;\n className?: string;\n recentItemsStorageKey?: string;\n};\n\nfunction getLinkKey(link: NavLink) {\n return `${link.url}:${link.name}`;\n}\n\nexport function SidebarNewSections({\n sections,\n isActive,\n className,\n recentItemsStorageKey = defaultRecentItemsStorageKey,\n}: SidebarNewSectionsProps) {\n const baseId = useId();\n const [renderedAt] = useState(Date.now);\n const [recentLinks, setRecentLinks] = useLocalStorageState({\n initialKey: recentItemsStorageKey,\n defaultValue: {},\n schema: recentLinksSchema,\n });\n const recentCutoff = renderedAt - recentLinkRetentionMs;\n\n function rememberLink(link: NavLink) {\n setRecentLinks(current => ({ ...current, [getLinkKey(link)]: Date.now() }));\n }\n\n return (\n <>\n {sections.map(section => {\n const showSeparator = section.links.length > 0 && section.separator;\n const headerId = section.title ? `${baseId}-${section.key}` : undefined;\n const activeCandidates = [...section.links, ...(section.moreLinks ?? [])];\n\n return (\n <MainSidebarNavSection\n key={section.key}\n className={className}\n aria-labelledby={headerId}\n aria-label={!headerId ? section.key : undefined}\n >\n {showSeparator ? <MainSidebarNavSeparator className=\"[&:after]:border-border\" /> : null}\n {section.title ? (\n <SidebarNewNavHeader id={headerId} href={section.href} isActive={section.isHeaderActive}>\n {section.title}\n </SidebarNewNavHeader>\n ) : null}\n <MainSidebarNavList>\n {section.links.map(link => (\n <SidebarNewSectionLink\n key={getLinkKey(link)}\n link={link}\n activeCandidates={activeCandidates}\n isActive={isActive}\n />\n ))}\n {section.moreLinks?.length ? (\n <SidebarNewMoreLinks\n links={section.moreLinks}\n activeCandidates={activeCandidates}\n isActive={isActive}\n recentLinks={recentLinks}\n recentCutoff={recentCutoff}\n onSelect={rememberLink}\n />\n ) : null}\n </MainSidebarNavList>\n </MainSidebarNavSection>\n );\n })}\n </>\n );\n}\n","import { useMaybeSidebarState } from '@/ds/components/MainSidebar/main-sidebar-context';\nimport type { MainSidebarTriggerProps } from '@/ds/components/MainSidebar/main-sidebar-trigger';\nimport { MainSidebarTrigger } from '@/ds/components/MainSidebar/main-sidebar-trigger';\n\nexport type SidebarNewTriggerProps = MainSidebarTriggerProps;\n\nexport function SidebarNewTrigger(props: SidebarNewTriggerProps) {\n const context = useMaybeSidebarState();\n if (context?.isMobile) return null;\n return <MainSidebarTrigger {...props} />;\n}\n","import { SidebarNewBrand } from './sidebar-new-brand';\nimport { SidebarNewCommandHeader } from './sidebar-new-command-header';\nimport { SidebarNewFooter } from './sidebar-new-footer';\nimport { SidebarNewFooterMeta } from './sidebar-new-footer-meta';\nimport { SidebarNewHeader } from './sidebar-new-header';\nimport { SidebarNewMeter } from './sidebar-new-meter';\nimport { SidebarNewNav } from './sidebar-new-nav';\nimport { SidebarNewNavHeader } from './sidebar-new-nav-header';\nimport { SidebarNewNavStack } from './sidebar-new-nav-stack';\nimport { SidebarNewRoot } from './sidebar-new-root';\nimport { SidebarNewSearchTrigger } from './sidebar-new-search-trigger';\nimport { SidebarNewSections } from './sidebar-new-sections';\nimport { SidebarNewTrigger } from './sidebar-new-trigger';\nimport { MainSidebarMobileTrigger } from '@/ds/components/MainSidebar/main-sidebar-mobile-trigger';\nimport { MainSidebarNavLabel } from '@/ds/components/MainSidebar/main-sidebar-nav-label';\nimport { MainSidebarNavLink } from '@/ds/components/MainSidebar/main-sidebar-nav-link';\nimport { MainSidebarNavList } from '@/ds/components/MainSidebar/main-sidebar-nav-list';\nimport { MainSidebarNavSection } from '@/ds/components/MainSidebar/main-sidebar-nav-section';\nimport { MainSidebarNavSeparator } from '@/ds/components/MainSidebar/main-sidebar-nav-separator';\nimport { MainSidebarProvider } from '@/ds/components/MainSidebar/main-sidebar-provider';\n\nexport const SidebarNew = Object.assign(SidebarNewRoot, {\n Brand: SidebarNewBrand,\n CommandHeader: SidebarNewCommandHeader,\n Footer: SidebarNewFooter,\n FooterMeta: SidebarNewFooterMeta,\n Header: SidebarNewHeader,\n Meter: SidebarNewMeter,\n MobileTrigger: MainSidebarMobileTrigger,\n Nav: SidebarNewNav,\n NavHeader: SidebarNewNavHeader,\n NavLabel: MainSidebarNavLabel,\n NavLink: MainSidebarNavLink,\n NavList: MainSidebarNavList,\n NavSection: MainSidebarNavSection,\n NavSeparator: MainSidebarNavSeparator,\n NavStack: SidebarNewNavStack,\n Provider: MainSidebarProvider,\n SearchTrigger: SidebarNewSearchTrigger,\n Sections: SidebarNewSections,\n Trigger: SidebarNewTrigger,\n});\n"],"names":["useMainSidebar","jsxs","cn","jsx","VisuallyHidden","forwardRef","SidebarNewCommandHeader","SidebarNewFooterMeta","SidebarNewMeter","useMaybeSidebarState","surfaceStateLayerStyle","MainSidebarNav","Fragment","navItemClasses","ArrowLeftIcon","MainSidebarRoot","SidebarNewSearchTrigger","quietTextHover","controlStateColorTransition","focusRing","Kbd","quietTextHoverInGroup","MainSidebarNavLink","MainSidebarNavList","useState","MoreHorizontalIcon","MainSidebarNavLabel","ChevronDownIcon","z","useId","useLocalStorageState","MainSidebarNavSection","MainSidebarNavSeparator","MainSidebarTrigger","MainSidebarMobileTrigger","MainSidebarProvider"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"sidebar.cjs.js","sources":["../../src/ds/new/sidebar/sidebar-new-brand.tsx","../../src/ds/new/sidebar/sidebar-new-command-header.tsx","../../src/ds/new/sidebar/sidebar-new-footer.tsx","../../src/ds/new/sidebar/sidebar-new-footer-meta.tsx","../../src/ds/new/sidebar/sidebar-new-header.tsx","../../src/ds/new/sidebar/sidebar-new-meter.tsx","../../src/ds/new/sidebar/sidebar-new-nav.tsx","../../src/ds/new/sidebar/sidebar-new-nav-header.tsx","../../src/ds/new/sidebar/sidebar-new-nav-stack-context.ts","../../src/ds/new/sidebar/sidebar-new-nav-stack-root.tsx","../../src/ds/new/sidebar/sidebar-new-nav-stack-page-classes.ts","../../src/ds/new/sidebar/sidebar-new-nav-stack-root-view.tsx","../../src/ds/new/sidebar/sidebar-new-nav-stack-view.tsx","../../src/ds/new/sidebar/sidebar-new-nav-stack.ts","../../src/ds/new/sidebar/sidebar-new-root.tsx","../../src/ds/new/sidebar/sidebar-new-search-trigger.tsx","../../src/ds/new/sidebar/sidebar-new-section-link.tsx","../../src/ds/new/sidebar/sidebar-new-more-links.tsx","../../src/ds/new/sidebar/sidebar-new-sections.tsx","../../src/ds/new/sidebar/sidebar-new-trigger.tsx","../../src/ds/new/sidebar/sidebar-new.ts"],"sourcesContent":["import type { ComponentPropsWithoutRef, ReactNode } from 'react';\nimport { useMainSidebar } from '@/ds/components/MainSidebar/main-sidebar-context';\nimport { VisuallyHidden } from '@/ds/primitives/visually-hidden';\nimport { cn } from '@/lib/utils';\n\nexport type SidebarNewBrandProps = Omit<ComponentPropsWithoutRef<'div'>, 'title'> & {\n logo?: ReactNode;\n title: ReactNode;\n};\n\nexport function SidebarNewBrand({ logo, title, className, ...props }: SidebarNewBrandProps) {\n const { state } = useMainSidebar();\n\n return (\n <div data-slot=\"sidebar-new-brand\" className={cn('flex min-w-0 flex-1 items-center gap-2', className)} {...props}>\n {logo ? <span className=\"shrink-0\">{logo}</span> : null}\n {state === 'collapsed' ? (\n <VisuallyHidden>{title}</VisuallyHidden>\n ) : (\n <span className=\"truncate font-body text-subheading tracking-tight text-foreground\">{title}</span>\n )}\n </div>\n );\n}\n","import { forwardRef } from 'react';\nimport type { ComponentPropsWithoutRef } from 'react';\nimport { useMainSidebar } from '@/ds/components/MainSidebar/main-sidebar-context';\nimport { cn } from '@/lib/utils';\n\nexport type SidebarNewCommandHeaderProps = ComponentPropsWithoutRef<'header'>;\n\nexport const SidebarNewCommandHeader = forwardRef<HTMLElement, SidebarNewCommandHeaderProps>(\n function SidebarNewCommandHeader({ className, children, ...props }, ref) {\n const { state } = useMainSidebar();\n\n return (\n <header\n ref={ref}\n data-slot=\"sidebar-new-command-header\"\n data-state={state}\n className={cn(\n 'flex h-header-default shrink-0 items-center gap-1 overflow-hidden px-3',\n state === 'collapsed' && '[&_[data-slot=sidebar-new-search-trigger]]:hidden',\n className,\n )}\n {...props}\n >\n {children}\n </header>\n );\n },\n);\n","import type { ComponentPropsWithoutRef } from 'react';\nimport { cn } from '@/lib/utils';\n\nexport type SidebarNewFooterProps = ComponentPropsWithoutRef<'footer'>;\n\nexport function SidebarNewFooter({ className, children, ...props }: SidebarNewFooterProps) {\n return (\n <footer data-slot=\"sidebar-new-footer\" className={cn('mt-auto shrink-0', className)} {...props}>\n {children}\n </footer>\n );\n}\n","import { forwardRef } from 'react';\nimport type { ComponentPropsWithoutRef, ReactNode } from 'react';\nimport { useMainSidebar } from '@/ds/components/MainSidebar/main-sidebar-context';\nimport { cn } from '@/lib/utils';\n\nexport type SidebarNewFooterMetaProps = ComponentPropsWithoutRef<'div'> & {\n action?: ReactNode;\n};\n\nexport const SidebarNewFooterMeta = forwardRef<HTMLDivElement, SidebarNewFooterMetaProps>(function SidebarNewFooterMeta(\n { className, children, action, ...props },\n ref,\n) {\n const { state } = useMainSidebar();\n\n return (\n <div\n ref={ref}\n data-slot=\"sidebar-new-footer-meta\"\n data-state={state}\n className={cn(\n 'grid min-h-10 grid-cols-[minmax(0,1fr)_auto_0fr] items-center border-t border-border px-2 py-1 text-meta text-muted-foreground',\n 'transition-[grid-template-columns] duration-slow ease-out-custom motion-reduce:transition-none',\n state === 'collapsed' && 'grid-cols-[minmax(0,1fr)_auto_minmax(0,1fr)] px-0',\n className,\n )}\n {...props}\n >\n <div\n aria-hidden={state === 'collapsed'}\n className={cn(\n 'min-w-0 truncate transition-opacity duration-normal ease-out-custom motion-reduce:transition-none',\n state === 'collapsed' && 'opacity-0',\n )}\n >\n {children}\n </div>\n {action}\n <span aria-hidden />\n </div>\n );\n});\n","import type { ComponentPropsWithoutRef } from 'react';\nimport { cn } from '@/lib/utils';\n\nexport type SidebarNewHeaderProps = ComponentPropsWithoutRef<'header'>;\n\nexport function SidebarNewHeader({ className, children, ...props }: SidebarNewHeaderProps) {\n return (\n <header\n data-slot=\"sidebar-new-header\"\n className={cn('flex h-header-default shrink-0 items-center gap-2 px-1', className)}\n {...props}\n >\n {children}\n </header>\n );\n}\n","import type { ComponentPropsWithoutRef, ReactNode } from 'react';\nimport { forwardRef } from 'react';\nimport { useMaybeSidebarState } from '@/ds/components/MainSidebar/main-sidebar-context';\nimport type { SidebarState } from '@/ds/components/MainSidebar/main-sidebar-context';\nimport { surfaceStateLayerStyle } from '@/ds/primitives/raised-surface';\nimport type { LinkComponent } from '@/ds/types/link-component';\nimport { cn } from '@/lib/utils';\n\nexport type SidebarNewMeterTone = 'neutral' | 'warning' | 'danger';\n\nconst NOISE =\n \"url(\\\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E\\\")\";\n\nconst CARD_HEIGHT = 76;\nconst BLOOM_HEIGHT = 100;\nconst BLOOM_HOLD_Y = 60;\nconst BLOOM_HOLD_X = 22.5;\nconst GRAIN_OPACITY = 0.18;\nconst GRAIN_SIZE = 110;\n\nconst FALLOFF_RAMP = [0, 0.08, 0.16, 0.25, 0.34, 0.44, 0.55, 0.66, 0.78, 0.89, 1];\n\nconst TONES = {\n neutral: { colorVar: '--foreground', peak: 0.08, grain: true, text: 'text-muted-foreground' },\n warning: {\n colorVar: '--notice-warning',\n peak: 0.16,\n grain: false,\n text: 'text-notice-warning-fg',\n },\n danger: {\n colorVar: '--notice-destructive',\n peak: 0.16,\n grain: false,\n text: 'text-notice-destructive-fg',\n },\n};\n\nfunction cubicFalloff(position: number) {\n const inverse = 1 - position;\n return inverse * inverse * inverse;\n}\n\nfunction easedBloom(colorVar: string, peak: number) {\n const stops = FALLOFF_RAMP.map(position => {\n const alpha = (peak * cubicFalloff(position) * 100).toFixed(2);\n return `color-mix(in oklch, var(${colorVar}) ${alpha}%, transparent) ${(position * 100).toFixed(0)}%`;\n });\n return `linear-gradient(to right, ${stops.join(', ')})`;\n}\n\nfunction easedMask(direction: string, hold: number) {\n const stops = FALLOFF_RAMP.map(position => {\n const offset = (hold + (100 - hold) * position).toFixed(2);\n return `rgb(0 0 0 / ${cubicFalloff(position).toFixed(3)}) ${offset}%`;\n });\n return `linear-gradient(${direction}, rgb(0 0 0 / 1) 0%, ${stops.join(', ')})`;\n}\n\nconst BLOOM_MASK = `${easedMask('to bottom', BLOOM_HOLD_Y)}, ${easedMask('to right', BLOOM_HOLD_X)}`;\n\nfunction Bloom({ tone }: { tone: SidebarNewMeterTone }) {\n const current = TONES[tone];\n return (\n <span\n aria-hidden\n data-slot=\"sidebar-new-meter-bloom\"\n className=\"pointer-events-none absolute inset-x-0 top-0 -z-10\"\n style={{\n height: BLOOM_HEIGHT,\n backgroundImage: easedBloom(current.colorVar, current.peak),\n maskImage: BLOOM_MASK,\n maskComposite: 'intersect',\n }}\n >\n {current.grain ? (\n <span\n aria-hidden\n className=\"absolute inset-0\"\n style={{\n backgroundImage: NOISE,\n backgroundRepeat: 'repeat',\n backgroundSize: `${GRAIN_SIZE}px ${GRAIN_SIZE}px`,\n opacity: GRAIN_OPACITY,\n }}\n />\n ) : null}\n </span>\n );\n}\n\ninterface SidebarNewMeterBaseProps extends Omit<ComponentPropsWithoutRef<'div'>, 'children'> {\n label: ReactNode;\n value: ReactNode;\n status?: ReactNode;\n tone?: SidebarNewMeterTone;\n icon?: ReactNode;\n action?: ReactNode;\n LinkComponent?: LinkComponent;\n state?: SidebarState;\n}\n\ntype SidebarNewMeterLinkProps =\n | {\n href: string;\n linkLabel: string;\n }\n | { href?: never; linkLabel?: never };\nexport type SidebarNewMeterProps = SidebarNewMeterBaseProps & SidebarNewMeterLinkProps;\n\nexport const SidebarNewMeter = forwardRef<HTMLDivElement, SidebarNewMeterProps>(function SidebarNewMeter(\n {\n label,\n value,\n status,\n tone = 'neutral',\n icon,\n action,\n href,\n linkLabel,\n LinkComponent: LinkProp,\n state: stateProp,\n className,\n ...props\n },\n ref,\n) {\n const ctx = useMaybeSidebarState();\n const state: SidebarState = stateProp ?? ctx?.state ?? 'default';\n const Link: LinkComponent = LinkProp ?? ctx?.LinkComponent ?? 'a';\n const isCollapsed = state === 'collapsed';\n const current = TONES[tone];\n\n if (isCollapsed) {\n return (\n <div\n ref={ref}\n data-slot=\"sidebar-new-meter\"\n data-tone={tone}\n data-state={state}\n className={cn(\n 'relative isolate flex items-center justify-center overflow-hidden rounded-lg border border-border bg-background px-1 py-2',\n className,\n )}\n {...props}\n >\n <Bloom tone={tone} />\n {href ? <Link href={href} className=\"absolute inset-0 rounded-lg\" aria-label={linkLabel} /> : null}\n <span className=\"pointer-events-none relative text-meta text-foreground tabular-nums\">{value}</span>\n </div>\n );\n }\n\n return (\n <div\n ref={ref}\n data-slot=\"sidebar-new-meter\"\n data-tone={tone}\n data-state={state}\n className={cn(\n 'relative isolate flex flex-col justify-center overflow-hidden rounded-lg border border-border bg-background px-3',\n href && surfaceStateLayerStyle,\n className,\n )}\n style={{ height: CARD_HEIGHT }}\n {...props}\n >\n <Bloom tone={tone} />\n {href ? <Link href={href} className=\"absolute inset-0 rounded-lg\" aria-label={linkLabel} /> : null}\n\n <div className=\"pointer-events-none relative\">\n <div className=\"flex items-center gap-1.5\">\n {tone === 'neutral' ? null : icon}\n <span className=\"text-column text-muted-foreground\">{label}</span>\n {action ? <span className=\"pointer-events-auto\">{action}</span> : null}\n </div>\n\n <p className=\"mt-0.5 text-heading leading-tight text-foreground tabular-nums\">{value}</p>\n\n {status ? (\n <div className=\"mt-1 text-meta\">\n <p className={cn('truncate', current.text)}>{status}</p>\n </div>\n ) : null}\n </div>\n </div>\n );\n});\n","import { useMaybeSidebarState } from '@/ds/components/MainSidebar/main-sidebar-context';\nimport type { MainSidebarNavProps } from '@/ds/components/MainSidebar/main-sidebar-nav';\nimport { MainSidebarNav } from '@/ds/components/MainSidebar/main-sidebar-nav';\nimport { cn } from '@/lib/utils';\n\nexport type SidebarNewNavProps = MainSidebarNavProps;\n\nexport function SidebarNewNav({ children, className, ...props }: SidebarNewNavProps) {\n const isMobile = useMaybeSidebarState()?.isMobile ?? false;\n\n return (\n <MainSidebarNav\n className={cn(\n '-mr-1.5',\n '[&_[data-orientation=vertical]]:w-1 [&_[data-orientation=vertical]]:p-0',\n 'focus-within:[&_[data-orientation=vertical][data-has-overflow-y]]:opacity-100',\n isMobile && '[&_a]:min-h-11 [&_a]:touch-manipulation [&_button]:min-h-11 [&_button]:touch-manipulation',\n className,\n )}\n {...props}\n >\n <div className=\"pr-1.5\">{children}</div>\n </MainSidebarNav>\n );\n}\n","import type { ComponentPropsWithoutRef } from 'react';\nimport type { SidebarState } from '@/ds/components/MainSidebar/main-sidebar-context';\nimport { useMaybeSidebarState } from '@/ds/components/MainSidebar/main-sidebar-context';\nimport { VisuallyHidden } from '@/ds/primitives/visually-hidden';\nimport type { LinkComponent } from '@/ds/types/link-component';\nimport { cn } from '@/lib/utils';\n\nexport type SidebarNewNavHeaderProps = Omit<ComponentPropsWithoutRef<'header'>, 'children'> & {\n children?: React.ReactNode;\n state?: SidebarState;\n href?: string;\n isActive?: boolean;\n LinkComponent?: LinkComponent;\n};\n\nexport function SidebarNewNavHeader({\n children,\n className,\n state: stateProp,\n href,\n isActive,\n LinkComponent: LinkProp,\n ...props\n}: SidebarNewNavHeaderProps) {\n const context = useMaybeSidebarState();\n const state = stateProp ?? context?.state ?? 'default';\n const showTitle = state === 'default';\n const Link = LinkProp ?? context?.LinkComponent ?? 'a';\n\n return (\n <div className={cn('mt-3 flex min-h-7 min-w-0 items-center', className)}>\n {showTitle ? (\n <header\n {...props}\n className={cn('max-w-full min-w-0 truncate pl-3 text-column', {\n 'text-foreground': isActive,\n 'text-muted-foreground': !isActive,\n })}\n >\n {href ? (\n <Link\n href={href}\n className={cn('block min-w-0 truncate transition-colors duration-normal', {\n 'hover:text-foreground': !isActive,\n 'text-foreground': isActive,\n })}\n >\n {children}\n </Link>\n ) : (\n children\n )}\n </header>\n ) : (\n <>\n <VisuallyHidden asChild>\n <header {...props}>{children}</header>\n </VisuallyHidden>\n <div aria-hidden=\"true\" className=\"mx-3 h-px flex-1 bg-border\" />\n </>\n )}\n </div>\n );\n}\n","import React from 'react';\n\nexport type SidebarNewNavStackContextValue = {\n activeValue: string;\n rootValue: string;\n closeView: (returnFocusRef?: React.RefObject<HTMLElement | null>) => void;\n};\n\nexport const SidebarNewNavStackContext = React.createContext<SidebarNewNavStackContextValue | undefined>(undefined);\n\nexport function useSidebarNewNavStack() {\n const context = React.useContext(SidebarNewNavStackContext);\n if (!context) throw new Error('SidebarNew.NavStack components must be used within SidebarNew.NavStack.');\n return context;\n}\n","import React from 'react';\nimport type { ComponentPropsWithoutRef } from 'react';\nimport { SidebarNewNavStackContext } from './sidebar-new-nav-stack-context';\nimport { cn } from '@/lib/utils';\n\nexport type SidebarNewNavStackProps = ComponentPropsWithoutRef<'div'> & {\n value: string;\n rootValue?: string;\n onValueChange: (value: string) => void;\n};\n\nexport function SidebarNewNavStackRoot({\n value,\n rootValue = 'root',\n onValueChange,\n children,\n className,\n ...props\n}: SidebarNewNavStackProps) {\n function closeView(returnFocusRef?: React.RefObject<HTMLElement | null>) {\n onValueChange(rootValue);\n requestAnimationFrame(() => {\n const target = returnFocusRef?.current;\n if (target && !target.closest('[inert]')) target.focus();\n });\n }\n\n return (\n <SidebarNewNavStackContext.Provider value={{ activeValue: value, rootValue, closeView }}>\n <div\n data-slot=\"sidebar-new-nav-stack\"\n data-value={value}\n className={cn('relative grid min-w-0 overflow-hidden', className)}\n {...props}\n >\n {children}\n </div>\n </SidebarNewNavStackContext.Provider>\n );\n}\n","import { cn } from '@/lib/utils';\n\nexport function sidebarNewNavStackPageClasses(active: boolean, page: 'root' | 'view', className?: string) {\n return cn(\n 'col-start-1 row-start-1 min-w-0 transition-[opacity,translate] duration-normal ease-out-custom will-change-[opacity,translate] motion-reduce:transition-none',\n active && 'relative translate-x-0 opacity-100',\n !active && 'pointer-events-none absolute inset-0 opacity-0',\n !active && page === 'root' && '-translate-x-2',\n !active && page === 'view' && 'translate-x-2',\n className,\n );\n}\n","import type { ComponentPropsWithoutRef } from 'react';\nimport { useSidebarNewNavStack } from './sidebar-new-nav-stack-context';\nimport { sidebarNewNavStackPageClasses } from './sidebar-new-nav-stack-page-classes';\nimport { useMainSidebar } from '@/ds/components/MainSidebar/main-sidebar-context';\n\nexport type SidebarNewNavStackRootViewProps = ComponentPropsWithoutRef<'div'>;\n\nexport function SidebarNewNavStackRootView({ children, className, ...props }: SidebarNewNavStackRootViewProps) {\n const { state } = useMainSidebar();\n const { activeValue, rootValue } = useSidebarNewNavStack();\n const active = state === 'collapsed' || activeValue === rootValue;\n\n return (\n <div\n {...props}\n data-slot=\"sidebar-new-nav-stack-root\"\n aria-hidden={!active}\n inert={!active}\n className={sidebarNewNavStackPageClasses(active, 'root', className)}\n >\n {children}\n </div>\n );\n}\n","import { ArrowLeftIcon } from 'lucide-react';\nimport React from 'react';\nimport type { ComponentPropsWithoutRef } from 'react';\nimport { useSidebarNewNavStack } from './sidebar-new-nav-stack-context';\nimport { sidebarNewNavStackPageClasses } from './sidebar-new-nav-stack-page-classes';\nimport { useMainSidebar } from '@/ds/components/MainSidebar/main-sidebar-context';\nimport { navItemClasses } from '@/ds/components/MainSidebar/main-sidebar-nav-item-classes';\nimport { cn } from '@/lib/utils';\n\nexport type SidebarNewNavStackViewProps = ComponentPropsWithoutRef<'div'> & {\n value: string;\n title: string;\n backLabel?: string;\n returnFocusRef?: React.RefObject<HTMLElement | null>;\n onBack?: () => void;\n};\n\nexport function SidebarNewNavStackView({\n value,\n title,\n backLabel = 'Back to main navigation',\n returnFocusRef,\n onBack,\n children,\n className,\n ...props\n}: SidebarNewNavStackViewProps) {\n const { state } = useMainSidebar();\n const { activeValue, closeView } = useSidebarNewNavStack();\n const active = state !== 'collapsed' && activeValue === value;\n const backRef = React.useRef<HTMLButtonElement>(null);\n const wasActiveRef = React.useRef(active);\n\n React.useEffect(() => {\n if (active && !wasActiveRef.current) backRef.current?.focus();\n wasActiveRef.current = active;\n }, [active]);\n\n React.useEffect(() => {\n if (!active) return;\n\n function handleKeyDown(event: KeyboardEvent) {\n if (event.key !== 'Escape' || event.defaultPrevented) return;\n event.preventDefault();\n closeView(returnFocusRef);\n onBack?.();\n }\n\n document.addEventListener('keydown', handleKeyDown);\n return () => document.removeEventListener('keydown', handleKeyDown);\n }, [active, closeView, onBack, returnFocusRef]);\n\n function handleBack() {\n closeView(returnFocusRef);\n onBack?.();\n }\n\n return (\n <div\n {...props}\n data-slot=\"sidebar-new-nav-stack-view\"\n data-value={value}\n aria-hidden={!active}\n inert={!active}\n className={sidebarNewNavStackPageClasses(active, 'view', className)}\n >\n <button\n ref={backRef}\n type=\"button\"\n aria-label={`${backLabel}: ${title}`}\n onClick={handleBack}\n className={cn(navItemClasses(), 'mb-2 grid grid-cols-[2rem_1fr_2rem] px-1')}\n >\n <ArrowLeftIcon className=\"justify-self-center\" aria-hidden=\"true\" />\n <span className=\"min-w-0 truncate text-center\">{title}</span>\n <span aria-hidden=\"true\" />\n </button>\n {children}\n </div>\n );\n}\n","import { SidebarNewNavStackRoot } from './sidebar-new-nav-stack-root';\nimport { SidebarNewNavStackRootView } from './sidebar-new-nav-stack-root-view';\nimport { SidebarNewNavStackView } from './sidebar-new-nav-stack-view';\n\nexport type { SidebarNewNavStackProps } from './sidebar-new-nav-stack-root';\nexport type { SidebarNewNavStackRootViewProps } from './sidebar-new-nav-stack-root-view';\nexport type { SidebarNewNavStackViewProps } from './sidebar-new-nav-stack-view';\n\nexport const SidebarNewNavStack = Object.assign(SidebarNewNavStackRoot, {\n Root: SidebarNewNavStackRootView,\n View: SidebarNewNavStackView,\n});\n","import type { MainSidebarRootProps } from '@/ds/components/MainSidebar/main-sidebar-root';\nimport { MainSidebarRoot } from '@/ds/components/MainSidebar/main-sidebar-root';\n\nexport type SidebarNewRootProps = MainSidebarRootProps & {\n 'aria-label'?: string;\n};\n\nexport function SidebarNewRoot({\n 'aria-label': ariaLabel = 'Sidebar',\n mobileMode = 'takeover',\n ...props\n}: SidebarNewRootProps) {\n return (\n <aside aria-label={ariaLabel} className=\"contents\">\n <MainSidebarRoot mobileMode={mobileMode} {...props} />\n </aside>\n );\n}\n","import { forwardRef } from 'react';\nimport type { ComponentPropsWithoutRef, ReactNode } from 'react';\nimport { Kbd } from '@/ds/components/Kbd';\nimport { controlStateColorTransition, focusRing } from '@/ds/primitives/transitions';\nimport { quietTextHover, quietTextHoverInGroup } from '@/ds/primitives/typography';\nimport { cn } from '@/lib/utils';\n\nexport type SidebarNewSearchTriggerProps = ComponentPropsWithoutRef<'button'> & {\n shortcut?: ReactNode;\n};\n\nexport const SidebarNewSearchTrigger = forwardRef<HTMLButtonElement, SidebarNewSearchTriggerProps>(\n function SidebarNewSearchTrigger({ className, children, shortcut, type = 'button', ...props }, ref) {\n return (\n <button\n ref={ref}\n data-slot=\"sidebar-new-search-trigger\"\n type={type}\n className={cn(\n 'group inline-flex size-control-md shrink-0 items-center justify-center gap-1.5 rounded-full border border-transparent hover:bg-fill-subtle',\n quietTextHover,\n controlStateColorTransition,\n focusRing.visible,\n '[&_svg]:size-4 [&_svg]:shrink-0',\n shortcut && 'w-auto px-2',\n className,\n )}\n {...props}\n >\n {children}\n {shortcut ? (\n <Kbd size=\"xs\" className={cn('bg-surface-overlay-soft active:scale-100', quietTextHoverInGroup)}>\n {shortcut}\n </Kbd>\n ) : null}\n </button>\n );\n },\n);\n","import type { NavLink } from '@/ds/components/MainSidebar/main-sidebar-nav-link';\nimport { MainSidebarNavLink } from '@/ds/components/MainSidebar/main-sidebar-nav-link';\nimport { MainSidebarNavList } from '@/ds/components/MainSidebar/main-sidebar-nav-list';\n\nexport type SidebarNewSectionLinkProps = {\n link: NavLink;\n activeCandidates: NavLink[];\n level?: number;\n isActive?: (link: NavLink, activeCandidates: NavLink[]) => boolean;\n onSelect?: (link: NavLink) => void;\n};\n\nfunction getSidebarNewLinkKey(link: NavLink) {\n return `${link.url}:${link.name}`;\n}\n\nexport function SidebarNewSectionLink({\n link,\n activeCandidates,\n level = 0,\n isActive,\n onSelect,\n}: SidebarNewSectionLinkProps) {\n const childLinks = link.children ?? [];\n\n return (\n <MainSidebarNavLink\n link={link}\n isActive={isActive?.(link, activeCandidates) ?? link.isActive}\n level={level}\n onClick={event => {\n if (event.target instanceof Element && event.target.closest('li') !== event.currentTarget) return;\n onSelect?.(link);\n }}\n subItems={\n childLinks.length > 0 ? (\n <MainSidebarNavList className=\"mt-0.5\">\n {childLinks.map(child => (\n <SidebarNewSectionLink\n key={getSidebarNewLinkKey(child)}\n link={child}\n activeCandidates={activeCandidates}\n level={level + 1}\n isActive={isActive}\n onSelect={onSelect}\n />\n ))}\n </MainSidebarNavList>\n ) : null\n }\n />\n );\n}\n","import { ChevronDownIcon, MoreHorizontalIcon } from 'lucide-react';\nimport { useState } from 'react';\nimport { SidebarNewSectionLink } from './sidebar-new-section-link';\nimport { MainSidebarNavLabel } from '@/ds/components/MainSidebar/main-sidebar-nav-label';\nimport type { NavLink } from '@/ds/components/MainSidebar/main-sidebar-nav-link';\nimport { MainSidebarNavLink } from '@/ds/components/MainSidebar/main-sidebar-nav-link';\nimport { cn } from '@/lib/utils';\n\nexport type SidebarNewMoreLinksProps = {\n links: NavLink[];\n activeCandidates: NavLink[];\n isActive?: (link: NavLink, activeCandidates: NavLink[]) => boolean;\n recentLinks: Record<string, number>;\n recentCutoff: number;\n onSelect: (link: NavLink) => void;\n};\n\nexport function SidebarNewMoreLinks({\n links,\n activeCandidates,\n isActive,\n recentLinks,\n recentCutoff,\n onSelect,\n}: SidebarNewMoreLinksProps) {\n const [expanded, setExpanded] = useState(false);\n const linkIsActive = (link: NavLink) => isActive?.(link, activeCandidates) ?? link.isActive ?? false;\n const surfacedLinks =\n links.length < 2\n ? links\n : links.filter(link => linkIsActive(link) || (recentLinks[`${link.url}:${link.name}`] ?? 0) >= recentCutoff);\n const foldedLinks = links.filter(link => !surfacedLinks.includes(link));\n\n function renderLink(link: NavLink) {\n return (\n <SidebarNewSectionLink\n key={`${link.url}:${link.name}`}\n link={link}\n activeCandidates={activeCandidates}\n isActive={isActive}\n onSelect={onSelect}\n />\n );\n }\n\n return (\n <>\n {surfacedLinks.map(renderLink)}\n {foldedLinks.length > 0 ? (\n <MainSidebarNavLink\n link={{ name: 'More', url: '', icon: <MoreHorizontalIcon /> }}\n render={\n <button\n type=\"button\"\n aria-label=\"More\"\n aria-expanded={expanded}\n onClick={() => setExpanded(current => !current)}\n >\n <MoreHorizontalIcon aria-hidden=\"true\" />\n <MainSidebarNavLabel>More</MainSidebarNavLabel>\n </button>\n }\n action={\n <ChevronDownIcon\n aria-hidden=\"true\"\n className={cn(\n 'size-3.5 transition-transform duration-normal ease-out-custom motion-reduce:transition-none',\n expanded && 'rotate-180',\n )}\n />\n }\n />\n ) : null}\n {expanded ? foldedLinks.map(renderLink) : null}\n </>\n );\n}\n","import { useId, useState } from 'react';\nimport { z } from 'zod/v4';\nimport { SidebarNewMoreLinks } from './sidebar-new-more-links';\nimport { SidebarNewNavHeader } from './sidebar-new-nav-header';\nimport { SidebarNewSectionLink } from './sidebar-new-section-link';\nimport type { NavLink } from '@/ds/components/MainSidebar/main-sidebar-nav-link';\nimport { MainSidebarNavList } from '@/ds/components/MainSidebar/main-sidebar-nav-list';\nimport type { NavSection } from '@/ds/components/MainSidebar/main-sidebar-nav-section';\nimport { MainSidebarNavSection } from '@/ds/components/MainSidebar/main-sidebar-nav-section';\nimport { MainSidebarNavSeparator } from '@/ds/components/MainSidebar/main-sidebar-nav-separator';\nimport { useLocalStorageState } from '@/hooks/use-local-storage-state';\n\nconst recentLinkRetentionMs = 7 * 24 * 60 * 60 * 1000;\nconst recentLinksSchema = z.record(z.string(), z.number());\nconst defaultRecentItemsStorageKey = 'mastra:sidebar-new:recent-more-items';\n\nexport type SidebarNewSection = NavSection & {\n moreLinks?: NavLink[];\n};\n\nexport type SidebarNewSectionsProps = {\n sections: SidebarNewSection[];\n isActive?: (link: NavLink, activeCandidates: NavLink[]) => boolean;\n className?: string;\n recentItemsStorageKey?: string;\n};\n\nfunction getLinkKey(link: NavLink) {\n return `${link.url}:${link.name}`;\n}\n\nexport function SidebarNewSections({\n sections,\n isActive,\n className,\n recentItemsStorageKey = defaultRecentItemsStorageKey,\n}: SidebarNewSectionsProps) {\n const baseId = useId();\n const [renderedAt] = useState(Date.now);\n const [recentLinks, setRecentLinks] = useLocalStorageState({\n initialKey: recentItemsStorageKey,\n defaultValue: {},\n schema: recentLinksSchema,\n });\n const recentCutoff = renderedAt - recentLinkRetentionMs;\n\n function rememberLink(link: NavLink) {\n setRecentLinks(current => ({ ...current, [getLinkKey(link)]: Date.now() }));\n }\n\n return (\n <>\n {sections.map(section => {\n const showSeparator = section.links.length > 0 && section.separator;\n const headerId = section.title ? `${baseId}-${section.key}` : undefined;\n const activeCandidates = [...section.links, ...(section.moreLinks ?? [])];\n\n return (\n <MainSidebarNavSection\n key={section.key}\n className={className}\n aria-labelledby={headerId}\n aria-label={!headerId ? section.key : undefined}\n >\n {showSeparator ? <MainSidebarNavSeparator className=\"[&:after]:border-border\" /> : null}\n {section.title ? (\n <SidebarNewNavHeader id={headerId} href={section.href} isActive={section.isHeaderActive}>\n {section.title}\n </SidebarNewNavHeader>\n ) : null}\n <MainSidebarNavList>\n {section.links.map(link => (\n <SidebarNewSectionLink\n key={getLinkKey(link)}\n link={link}\n activeCandidates={activeCandidates}\n isActive={isActive}\n />\n ))}\n {section.moreLinks?.length ? (\n <SidebarNewMoreLinks\n links={section.moreLinks}\n activeCandidates={activeCandidates}\n isActive={isActive}\n recentLinks={recentLinks}\n recentCutoff={recentCutoff}\n onSelect={rememberLink}\n />\n ) : null}\n </MainSidebarNavList>\n </MainSidebarNavSection>\n );\n })}\n </>\n );\n}\n","import { useMaybeSidebarState } from '@/ds/components/MainSidebar/main-sidebar-context';\nimport type { MainSidebarTriggerProps } from '@/ds/components/MainSidebar/main-sidebar-trigger';\nimport { MainSidebarTrigger } from '@/ds/components/MainSidebar/main-sidebar-trigger';\n\nexport type SidebarNewTriggerProps = MainSidebarTriggerProps;\n\nexport function SidebarNewTrigger(props: SidebarNewTriggerProps) {\n const context = useMaybeSidebarState();\n if (context?.isMobile) return null;\n return <MainSidebarTrigger {...props} />;\n}\n","import { SidebarNewBrand } from './sidebar-new-brand';\nimport { SidebarNewCommandHeader } from './sidebar-new-command-header';\nimport { SidebarNewFooter } from './sidebar-new-footer';\nimport { SidebarNewFooterMeta } from './sidebar-new-footer-meta';\nimport { SidebarNewHeader } from './sidebar-new-header';\nimport { SidebarNewMeter } from './sidebar-new-meter';\nimport { SidebarNewNav } from './sidebar-new-nav';\nimport { SidebarNewNavHeader } from './sidebar-new-nav-header';\nimport { SidebarNewNavStack } from './sidebar-new-nav-stack';\nimport { SidebarNewRoot } from './sidebar-new-root';\nimport { SidebarNewSearchTrigger } from './sidebar-new-search-trigger';\nimport { SidebarNewSections } from './sidebar-new-sections';\nimport { SidebarNewTrigger } from './sidebar-new-trigger';\nimport { MainSidebarMobileTrigger } from '@/ds/components/MainSidebar/main-sidebar-mobile-trigger';\nimport { MainSidebarNavLabel } from '@/ds/components/MainSidebar/main-sidebar-nav-label';\nimport { MainSidebarNavLink } from '@/ds/components/MainSidebar/main-sidebar-nav-link';\nimport { MainSidebarNavList } from '@/ds/components/MainSidebar/main-sidebar-nav-list';\nimport { MainSidebarNavSection } from '@/ds/components/MainSidebar/main-sidebar-nav-section';\nimport { MainSidebarNavSeparator } from '@/ds/components/MainSidebar/main-sidebar-nav-separator';\nimport { MainSidebarProvider } from '@/ds/components/MainSidebar/main-sidebar-provider';\n\nexport const SidebarNew = Object.assign(SidebarNewRoot, {\n Brand: SidebarNewBrand,\n CommandHeader: SidebarNewCommandHeader,\n Footer: SidebarNewFooter,\n FooterMeta: SidebarNewFooterMeta,\n Header: SidebarNewHeader,\n Meter: SidebarNewMeter,\n MobileTrigger: MainSidebarMobileTrigger,\n Nav: SidebarNewNav,\n NavHeader: SidebarNewNavHeader,\n NavLabel: MainSidebarNavLabel,\n NavLink: MainSidebarNavLink,\n NavList: MainSidebarNavList,\n NavSection: MainSidebarNavSection,\n NavSeparator: MainSidebarNavSeparator,\n NavStack: SidebarNewNavStack,\n Provider: MainSidebarProvider,\n SearchTrigger: SidebarNewSearchTrigger,\n Sections: SidebarNewSections,\n Trigger: SidebarNewTrigger,\n});\n"],"names":["useMainSidebar","jsxs","cn","jsx","VisuallyHidden","forwardRef","SidebarNewCommandHeader","SidebarNewFooterMeta","SidebarNewMeter","useMaybeSidebarState","surfaceStateLayerStyle","MainSidebarNav","Fragment","navItemClasses","ArrowLeftIcon","MainSidebarRoot","SidebarNewSearchTrigger","quietTextHover","controlStateColorTransition","focusRing","Kbd","quietTextHoverInGroup","MainSidebarNavLink","MainSidebarNavList","useState","MoreHorizontalIcon","MainSidebarNavLabel","ChevronDownIcon","z","useId","useLocalStorageState","MainSidebarNavSection","MainSidebarNavSeparator","MainSidebarTrigger","MainSidebarMobileTrigger","MainSidebarProvider"],"mappings":"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"}
|
package/dist/new/sidebar.es.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
|
|
2
|
-
import {
|
|
3
|
-
export {
|
|
2
|
+
import { u as useMainSidebar, e as useMaybeSidebarState, h as MainSidebarNav, n as navItemClasses, i as MainSidebarRoot, j as MainSidebarNavLink, k as MainSidebarNavList, l as MainSidebarNavLabel, m as MainSidebarNavSection, o as MainSidebarNavSeparator, c as MainSidebarTrigger, b as MainSidebarProvider, a as MainSidebarMobileTrigger } from '../main-sidebar-Cf5G9iaC.js';
|
|
3
|
+
export { g as getIsLinkActive } from '../main-sidebar-Cf5G9iaC.js';
|
|
4
4
|
import { VisuallyHidden } from '@radix-ui/react-visually-hidden';
|
|
5
5
|
import { c as cn } from '../cn-65Adrsfj.js';
|
|
6
6
|
import React__default, { forwardRef, useState, useId } from 'react';
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { ReactNode } from 'react';
|
|
2
|
+
export type DisabledFeatureButtonProps = {
|
|
3
|
+
icon: ReactNode;
|
|
4
|
+
label: string;
|
|
5
|
+
tooltipContent: ReactNode;
|
|
6
|
+
docsHref: `https://${string}`;
|
|
7
|
+
};
|
|
8
|
+
/**
|
|
9
|
+
* Icon-only, disabled control for a feature that is not available yet.
|
|
10
|
+
* The focusable wrapper carries the accessible name and disabled state so the
|
|
11
|
+
* tooltip stays reachable by keyboard while the visual button remains inert.
|
|
12
|
+
*/
|
|
13
|
+
export declare function DisabledFeatureButton({ icon, label, tooltipContent, docsHref }: DisabledFeatureButtonProps): import("react").JSX.Element;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './disabled-feature-button';
|
package/dist/style.css
CHANGED
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mastra/playground-ui",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "57.0.0
|
|
4
|
+
"version": "57.0.0",
|
|
5
5
|
"description": "Mastra Playground components",
|
|
6
6
|
"sideEffects": [
|
|
7
7
|
"**/*.css"
|
|
@@ -210,8 +210,8 @@
|
|
|
210
210
|
"react": ">=19.0.0",
|
|
211
211
|
"react-dom": ">=19.0.0",
|
|
212
212
|
"tailwindcss": "^4.0.0",
|
|
213
|
-
"@mastra/client-js": "^1.48.0
|
|
214
|
-
"@mastra/react": "1.6.1
|
|
213
|
+
"@mastra/client-js": "^1.48.0",
|
|
214
|
+
"@mastra/react": "1.6.1"
|
|
215
215
|
},
|
|
216
216
|
"devDependencies": {
|
|
217
217
|
"@storybook/addon-a11y": "^10.4.1",
|
|
@@ -253,11 +253,11 @@
|
|
|
253
253
|
"vite-plugin-dts": "^4.5.4",
|
|
254
254
|
"vite-plugin-lib-inject-css": "^2.2.2",
|
|
255
255
|
"vitest": "4.1.11",
|
|
256
|
-
"@internal/lint": "0.0.
|
|
257
|
-
"@mastra/client-js": "^1.48.0-alpha.4",
|
|
258
|
-
"@mastra/react": "1.6.1-alpha.4",
|
|
256
|
+
"@internal/lint": "0.0.135",
|
|
259
257
|
"@mastra/memory": "1.31.0",
|
|
260
|
-
"@mastra/
|
|
258
|
+
"@mastra/react": "1.6.1",
|
|
259
|
+
"@mastra/client-js": "^1.48.0",
|
|
260
|
+
"@mastra/core": "1.69.0"
|
|
261
261
|
},
|
|
262
262
|
"homepage": "https://mastra.ai",
|
|
263
263
|
"repository": {
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"main-sidebar-link-active-DMPiqFak.cjs","sources":["../src/ds/components/MainSidebar/main-sidebar-context.ts","../src/ds/components/MainSidebar/main-sidebar-mobile-trigger.tsx","../src/ds/components/MainSidebar/main-sidebar-nav.tsx","../src/ds/components/MainSidebar/main-sidebar-nav-label.tsx","../src/ds/components/MainSidebar/main-sidebar-nav-item-classes.ts","../src/ds/components/MainSidebar/main-sidebar-nav-link.tsx","../src/ds/components/MainSidebar/main-sidebar-nav-list.tsx","../src/ds/components/MainSidebar/main-sidebar-nav-section.tsx","../src/ds/components/MainSidebar/main-sidebar-nav-separator.tsx","../src/ds/components/MainSidebar/main-sidebar-root.tsx","../src/ds/components/MainSidebar/main-sidebar-trigger.tsx","../src/ds/components/MainSidebar/main-sidebar-provider.tsx","../src/ds/components/MainSidebar/main-sidebar-link-active.ts"],"sourcesContent":["import React from 'react';\nimport type { LinkComponent } from '@/ds/types/link-component';\n\nexport type SidebarState = 'default' | 'collapsed';\n\ntype MainSidebarContextValue = {\n state: SidebarState;\n desktopState: SidebarState;\n width: number;\n minWidth: number;\n maxWidth: number;\n collapseBelow: number;\n collapsedWidth: number;\n isMobile: boolean;\n openMobile: boolean;\n mobileTriggerRef: React.RefObject<HTMLButtonElement | null>;\n setOpenMobile: (open: boolean) => void;\n setMobileDrawerPresent: (present: boolean) => void;\n toggleSidebar: () => void;\n setWidth: (width: number) => void;\n collapse: () => void;\n expand: () => void;\n commit: () => void;\n setGestureActive: (active: boolean) => void;\n LinkComponent?: LinkComponent;\n};\n\n// Split: drawer open-state lives in its own context so navigation rows\n// do not re-render when the mobile drawer toggles.\nexport type MobileDrawerContextValue = {\n openMobile: boolean;\n mobileTriggerRef: React.RefObject<HTMLButtonElement | null>;\n setOpenMobile: (open: boolean) => void;\n setMobileDrawerPresent: (present: boolean) => void;\n};\n\nexport type MainSidebarStateContextValue = Omit<\n MainSidebarContextValue,\n 'openMobile' | 'mobileTriggerRef' | 'setOpenMobile' | 'setMobileDrawerPresent'\n>;\n\nexport const MainSidebarContext = React.createContext<MainSidebarStateContextValue | null>(null);\nexport const MobileDrawerContext = React.createContext<MobileDrawerContextValue | null>(null);\n\n/** Reads sidebar state and actions without subscribing to mobile drawer state. */\nexport function useMaybeSidebarState(): MainSidebarStateContextValue | null {\n return React.useContext(MainSidebarContext);\n}\n\nexport function useMainSidebar(): MainSidebarContextValue {\n const ctx = React.useContext(MainSidebarContext);\n const drawer = React.useContext(MobileDrawerContext);\n if (!ctx || !drawer) {\n throw new Error('useMainSidebar must be used within a MainSidebarProvider.');\n }\n return { ...ctx, ...drawer };\n}\n\nexport function useMaybeSidebar(): MainSidebarContextValue | null {\n const ctx = React.useContext(MainSidebarContext);\n const drawer = React.useContext(MobileDrawerContext);\n if (!ctx || !drawer) return null;\n return { ...ctx, ...drawer };\n}\n\n/** Reads only mobile drawer state. Cheap — no re-renders on sidebar resize. */\nexport function useMobileDrawer(): MobileDrawerContextValue {\n const drawer = React.useContext(MobileDrawerContext);\n if (!drawer) throw new Error('useMobileDrawer must be used within a MainSidebarProvider.');\n return drawer;\n}\n","import { MenuIcon } from 'lucide-react';\nimport type { ComponentPropsWithoutRef } from 'react';\nimport { useMainSidebar } from './main-sidebar-context';\nimport { quietTextHover } from '@/ds/primitives/typography';\nimport { cn } from '@/lib/utils';\n\nexport type MainSidebarMobileTriggerProps = ComponentPropsWithoutRef<'button'> & {\n icon?: React.ReactNode;\n};\n\nexport function MainSidebarMobileTrigger({\n className,\n icon,\n 'aria-label': ariaLabel = 'Open navigation menu',\n onClick,\n ...props\n}: MainSidebarMobileTriggerProps) {\n const { isMobile, mobileTriggerRef, setOpenMobile } = useMainSidebar();\n return (\n <button\n ref={mobileTriggerRef}\n type=\"button\"\n aria-label={ariaLabel}\n aria-hidden={!isMobile}\n tabIndex={isMobile ? 0 : -1}\n data-mobile-only\n {...props}\n onClick={event => {\n onClick?.(event);\n if (!event.defaultPrevented) setOpenMobile(true);\n }}\n className={cn(\n 'inline-flex size-10 items-center justify-center rounded-md',\n // compound selector, not `in-*` — its `:where()` ties with a consumer's later `.inline-flex`\n \"[[data-sidebar-mobile='false']_&]:hidden\",\n \"[[data-sidebar-mobile-present='true']_&]:invisible\",\n quietTextHover,\n 'hover:bg-fill-subtle',\n 'focus-visible:ring-1 focus-visible:ring-accent1 focus-visible:outline-hidden',\n className,\n )}\n >\n {icon ?? <MenuIcon className=\"size-5\" />}\n </button>\n );\n}\n","import type { ComponentPropsWithoutRef } from 'react';\nimport { ScrollArea } from '@/ds/components/ScrollArea';\nimport { cn } from '@/lib/utils';\n\nexport type MainSidebarNavProps = ComponentPropsWithoutRef<'nav'>;\n\nexport function MainSidebarNav({\n 'aria-label': ariaLabel = 'Main',\n children,\n className,\n ...props\n}: MainSidebarNavProps) {\n return (\n <nav aria-label={ariaLabel} className={cn('flex min-h-0 flex-1 flex-col', className)} {...props}>\n <ScrollArea className=\"min-h-0 flex-1\" viewPortClassName=\"px-0.5\">\n {children}\n </ScrollArea>\n </nav>\n );\n}\n","import type { ComponentPropsWithoutRef } from 'react';\nimport type { SidebarState } from './main-sidebar-context';\nimport { useMaybeSidebarState } from './main-sidebar-context';\nimport { VisuallyHidden } from '@/ds/primitives/visually-hidden';\nimport { cn } from '@/lib/utils';\n\nexport type MainSidebarNavLabelProps = ComponentPropsWithoutRef<'span'> & {\n /** Override sidebar state. Defaults to context, then `'default'`. */\n state?: SidebarState;\n};\n\n/**\n * Label slot for `MainSidebar.NavLink` rows.\n *\n * Auto-hides via `VisuallyHidden` when the sidebar is collapsed (icon-only row),\n * so screen readers still announce the label without it leaking outside the\n * 28px collapsed item. Handles single-line truncation when expanded.\n *\n * Required for custom `render` and legacy `asChild` consumers — the default\n * `link={...}` path wraps the name internally, but custom elements bring their\n * own children, so the label needs to opt into the collapse-aware rendering.\n */\nexport function MainSidebarNavLabel({ children, className, state: stateProp, ...rest }: MainSidebarNavLabelProps) {\n const ctx = useMaybeSidebarState();\n const state: SidebarState = stateProp ?? ctx?.state ?? 'default';\n if (state === 'collapsed') {\n return <VisuallyHidden>{children}</VisuallyHidden>;\n }\n return (\n <span {...rest} className={cn('min-w-0 flex-1 truncate text-left', className)}>\n {children}\n </span>\n );\n}\n","import { cva } from 'class-variance-authority';\nimport type { VariantProps } from 'class-variance-authority';\nimport { controlHeight } from '@/ds/primitives/control-size';\nimport { surfaceStateLayerStyle } from '@/ds/primitives/raised-surface';\nimport { controlStateColorTransition, focusRing } from '@/ds/primitives/transitions';\nimport { cn } from '@/lib/utils';\n\n// A nav row is a control: same rhythm as a button or a field, from the same rungs, so a\n// sidebar row and a toolbar button in the same app are never 2px apart. A nav label is a\n// label at every row height, so only the box grows — 12px reads too small for a primary\n// navigation target, and 400 weight makes the label recede below its icon.\nconst navItemVariants = cva('flex min-w-0 cursor-pointer items-center rounded-lg text-label whitespace-nowrap', {\n variants: {\n size: {\n sm: controlHeight.sm,\n md: controlHeight.md,\n lg: controlHeight.lg,\n },\n },\n defaultVariants: {\n size: 'md',\n },\n});\n\ntype NavItemVariantProps = VariantProps<typeof navItemVariants>;\n\nexport type MainSidebarNavItemSize = NonNullable<NavItemVariantProps['size']>;\n\ntype NavRowSurfaceOptions = {\n isActive?: boolean;\n isFeatured?: boolean;\n};\n\ntype NavItemLayoutOptions = {\n isCollapsed?: boolean;\n level?: number;\n size?: MainSidebarNavItemSize;\n};\n\ntype ItemStyleOptions = NavRowSurfaceOptions & NavItemLayoutOptions;\n\nconst nestedExpandedItemClasses = (level: number) => {\n if (level <= 0) return 'gap-2 py-1 px-3';\n if (level === 1) return `gap-2 py-1 pr-3 pl-8 ${controlHeight.md}`;\n if (level === 2) return `gap-2 py-1 pr-3 pl-10 ${controlHeight.md}`;\n return `gap-2 py-1 pr-3 pl-12 ${controlHeight.md}`;\n};\n\n// Two neutral tones, never more: a row is either quiet (`muted-foreground`) or\n// current (`foreground`). Icons inherit that colour — lucide strokes with\n// `currentColor` — so there is nothing to restate per state.\nconst idleSurface = cn('rounded-lg text-muted-foreground hover:text-foreground', surfaceStateLayerStyle);\n\nconst activeSurface = 'bg-fill text-foreground';\n\nconst featuredSurface = cn(\n 'my-2 border border-accent1/30 bg-accent1Dark text-accent1 hover:bg-accent1Darker hover:text-accent1',\n 'dark:border-transparent dark:bg-accent1 dark:text-black dark:hover:bg-accent1/90 dark:hover:text-black',\n '[&_svg]:text-accent1 dark:[&_svg]:text-black/75 [&:hover_svg]:text-accent1 dark:[&:hover_svg]:text-black',\n);\n\nexport const navRowSurfaceClasses = ({ isActive, isFeatured }: NavRowSurfaceOptions) =>\n cn(idleSurface, isActive && activeSurface, isFeatured && featuredSurface);\n\nexport const navItemLayoutClasses = ({ isCollapsed, level = 0, size }: NavItemLayoutOptions) =>\n cn(\n navItemVariants({ size }),\n 'w-full justify-start',\n controlStateColorTransition,\n '[&_svg]:size-4 [&_svg]:shrink-0',\n focusRing.visible,\n !isCollapsed && nestedExpandedItemClasses(level),\n isCollapsed && 'gap-0 px-[13.5px] py-0',\n );\n\nexport const navItemClasses = ({ isActive, isCollapsed, isFeatured, level, size }: ItemStyleOptions = {}) =>\n cn(navItemLayoutClasses({ isCollapsed, level, size }), navRowSurfaceClasses({ isActive, isFeatured }));\n","import React from 'react';\nimport type { ComponentProps } from 'react';\nimport type { SidebarState } from './main-sidebar-context';\nimport { useMaybeSidebarState } from './main-sidebar-context';\nimport { navItemClasses, navItemLayoutClasses, navRowSurfaceClasses } from './main-sidebar-nav-item-classes';\nimport type { MainSidebarNavItemSize } from './main-sidebar-nav-item-classes';\nimport { MainSidebarNavLabel } from './main-sidebar-nav-label';\nimport { Tooltip, TooltipContent, TooltipTrigger } from '@/ds/components/Tooltip';\nimport type { LinkComponent } from '@/ds/types/link-component';\nimport { cn } from '@/lib/utils';\n\nexport type NavLink = {\n name: string;\n url: string;\n icon?: React.ReactNode;\n children?: NavLink[];\n isActive?: boolean;\n variant?: 'default' | 'featured';\n tooltipMsg?: string;\n /** @deprecated Prefer nested `children`; accepted for callers still rendering manual sublinks. */\n indent?: boolean;\n};\n\nexport type MainSidebarNavLinkProps = Omit<ComponentProps<'li'>, 'children'> & {\n link?: NavLink;\n isActive?: boolean;\n state?: SidebarState;\n children?: React.ReactNode;\n size?: MainSidebarNavItemSize;\n render?: React.ReactElement<SlottedNavChildProps>;\n action?: React.ReactNode;\n LinkComponent?: LinkComponent;\n level?: number;\n subItems?: React.ReactNode;\n /**\n * When true, render `children` as the interactive element.\n * Use for `<button>` items or custom router Links. Item classes are forwarded\n * to the slotted element. `link.url` and `LinkComponent` are ignored; other\n * `link` presentation fields still apply when supplied.\n *\n * @deprecated Prefer typed render composition for new APIs; this legacy\n * slotted prop will be migrated separately.\n */\n asChild?: boolean;\n};\n\ntype SlottedNavChildProps = {\n className?: string;\n 'aria-current'?: 'page';\n};\n\nexport function MainSidebarNavLink({\n link,\n state: stateProp,\n children,\n isActive,\n size,\n render,\n action,\n className,\n LinkComponent: LinkProp,\n level: levelProp,\n subItems,\n asChild = false,\n ...props\n}: MainSidebarNavLinkProps) {\n if (render && asChild) {\n throw new Error('MainSidebarNavLink accepts either `render` or `asChild`, not both.');\n }\n\n const ctx = useMaybeSidebarState();\n const state: SidebarState = stateProp ?? ctx?.state ?? 'default';\n const Link: LinkComponent = LinkProp ?? ctx?.LinkComponent ?? 'a';\n const isCollapsed = state === 'collapsed';\n const isFeatured = link?.variant === 'featured';\n const level = levelProp ?? (link?.indent ? 1 : 0);\n const rowAction = isCollapsed ? undefined : action;\n\n const itemClassName = rowAction\n ? cn(navItemLayoutClasses({ level, size }), 'flex-1 pr-1')\n : navItemClasses({ isActive, isCollapsed, isFeatured, level, size });\n\n return (\n <li {...props} className={cn('relative flex min-w-0 flex-col', className)}>\n <NavRowBody action={rowAction} surfaceClassName={navRowSurfaceClasses({ isActive, isFeatured })}>\n <NavRowTooltip label={navTooltipLabel(link, isCollapsed)}>\n {navInteractiveRow({ render, asChild, children, link, state, Link, isActive, className: itemClassName })}\n </NavRowTooltip>\n </NavRowBody>\n {!isCollapsed && subItems}\n </li>\n );\n}\n\nfunction navInteractiveRow({\n render,\n asChild,\n children,\n link,\n state,\n Link,\n isActive,\n className,\n}: {\n render?: React.ReactElement<SlottedNavChildProps>;\n asChild: boolean;\n children?: React.ReactNode;\n link?: NavLink;\n state: SidebarState;\n Link: LinkComponent;\n isActive?: boolean;\n className: string;\n}) {\n // The current row is announced, not merely tinted: its fill is the only thing that says\n // \"you are here\", and a fill says nothing to a screen reader.\n const current = isActive ? ('page' as const) : undefined;\n if (render) {\n return React.cloneElement(render, { className: cn(className, render.props.className), 'aria-current': current });\n }\n\n if (asChild) {\n if (!React.isValidElement<SlottedNavChildProps>(children)) {\n throw new Error(\n 'MainSidebarNavLink requires a valid React element child when `asChild` is true so it can apply `SlottedNavChildProps` and merge `itemClassName`.',\n );\n }\n\n return React.cloneElement(children, {\n className: cn(className, children.props.className),\n 'aria-current': current,\n });\n }\n\n if (!link) return children;\n\n const externalParams = /^(https?:)?\\/\\//.test(link.url) ? { target: '_blank', rel: 'noreferrer' } : {};\n\n return (\n <Link href={link.url} {...externalParams} aria-current={current} className={className}>\n {link.icon}\n <MainSidebarNavLabel state={state}>{link.name}</MainSidebarNavLabel>\n {children}\n </Link>\n );\n}\n\nfunction navTooltipLabel(link: NavLink | undefined, isCollapsed: boolean) {\n if (!link) return undefined;\n if (link.tooltipMsg) return isCollapsed ? `${link.name} | ${link.tooltipMsg}` : link.tooltipMsg;\n return isCollapsed ? link.name : undefined;\n}\n\nfunction NavRowTooltip({ label, children }: { label?: string; children: React.ReactNode }) {\n if (!React.isValidElement(children)) return children;\n\n return (\n <Tooltip disabled={!label}>\n <TooltipTrigger render={children} />\n {label ? (\n <TooltipContent side=\"right\" align=\"center\" sideOffset={16}>\n {label}\n </TooltipContent>\n ) : null}\n </Tooltip>\n );\n}\n\nfunction NavRowBody({\n action,\n surfaceClassName,\n children,\n}: {\n action?: React.ReactNode;\n surfaceClassName: string;\n children: React.ReactNode;\n}) {\n if (!action) return children;\n\n return (\n <div className={cn('flex min-w-0 items-center pr-1', surfaceClassName)}>\n {children}\n {action}\n </div>\n );\n}\n","import type { ComponentPropsWithoutRef } from 'react';\nimport { cn } from '@/lib/utils';\n\nexport type MainSidebarNavListProps = ComponentPropsWithoutRef<'ul'>;\n\nexport function MainSidebarNavList({ className, children, ...props }: MainSidebarNavListProps) {\n return (\n <ul className={cn('grid grid-cols-[minmax(0,1fr)] content-center items-start gap-0.5', className)} {...props}>\n {children}\n </ul>\n );\n}\n","import type { ComponentPropsWithoutRef } from 'react';\nimport type { NavLink } from './main-sidebar-nav-link';\nimport { cn } from '@/lib/utils';\n\nexport type NavSection = {\n key: string;\n title?: string;\n href?: string;\n links: NavLink[];\n separator?: boolean;\n isHeaderActive?: boolean;\n};\n\nexport type MainSidebarNavSectionProps = ComponentPropsWithoutRef<'section'>;\n\nexport function MainSidebarNavSection({ className, children, ...props }: MainSidebarNavSectionProps) {\n return (\n <section className={cn('relative grid grid-cols-[minmax(0,1fr)] content-center items-start', className)} {...props}>\n {children}\n </section>\n );\n}\n","import type { ComponentPropsWithoutRef } from 'react';\nimport { cn } from '@/lib/utils';\n\nexport type MainSidebarNavSeparatorProps = ComponentPropsWithoutRef<'div'>;\n\nexport function MainSidebarNavSeparator({ className, ...props }: MainSidebarNavSeparatorProps) {\n return (\n <div\n role=\"separator\"\n aria-orientation=\"horizontal\"\n className={cn(\n 'relative min-h-5',\n '[&:after]:absolute [&:after]:inset-x-3 [&:after]:top-1/2 [&:after]:block [&:after]:h-0 [&:after]:border-t [&:after]:border-border [&:after]:content-[\"\"]',\n className,\n )}\n {...props}\n />\n );\n}\n","import { MenuIcon } from 'lucide-react';\nimport { useCallback, useEffect, useRef } from 'react';\nimport type { KeyboardEvent as ReactKeyboardEvent, PointerEvent as ReactPointerEvent } from 'react';\nimport { useMainSidebar } from './main-sidebar-context';\nimport { Drawer, DrawerClose, DrawerContent, DrawerDescription, DrawerTitle } from '@/ds/components/Drawer';\nimport { overlaySurfaceStyle, surfaceGroupStateLayerStyle } from '@/ds/primitives/raised-surface';\nimport { ResizeHandleIndicator } from '@/ds/primitives/resize-handle-indicator';\nimport { quietTextHoverInGroup } from '@/ds/primitives/typography';\nimport { VisuallyHidden } from '@/ds/primitives/visually-hidden';\nimport { cn } from '@/lib/utils';\n\nexport type MainSidebarRootProps = {\n children: React.ReactNode;\n className?: string;\n mobileMode?: 'drawer' | 'takeover';\n};\n\nconst KEYBOARD_STEP = 10;\nconst DRAG_THRESHOLD = 5;\n\nexport function MainSidebarRoot({ children, className, mobileMode = 'drawer' }: MainSidebarRootProps) {\n const {\n state,\n width,\n minWidth,\n maxWidth,\n collapseBelow,\n collapsedWidth,\n isMobile,\n openMobile,\n mobileTriggerRef,\n setOpenMobile,\n setMobileDrawerPresent,\n setWidth,\n collapse,\n expand,\n commit,\n toggleSidebar,\n setGestureActive,\n } = useMainSidebar();\n const isCollapsed = state === 'collapsed';\n const isHidden = isCollapsed && collapsedWidth === 0;\n\n const draggedRef = useRef(false);\n const dragCleanupRef = useRef<(() => void) | null>(null);\n\n useEffect(() => {\n return () => {\n dragCleanupRef.current?.();\n dragCleanupRef.current = null;\n };\n }, []);\n\n const onPointerDown = useCallback(\n (event: ReactPointerEvent<HTMLDivElement>) => {\n if (event.button !== 0) return;\n event.preventDefault();\n\n draggedRef.current = false;\n setGestureActive(true);\n\n const startX = event.clientX;\n const handle = event.currentTarget;\n const pointerId = event.pointerId;\n\n try {\n handle.setPointerCapture(pointerId);\n } catch {\n // The pointer may have ended before capture.\n }\n\n const sidebarEl = handle.parentElement;\n const sidebarLeft = sidebarEl ? sidebarEl.getBoundingClientRect().left : 0;\n\n const prevCursor = document.body.style.cursor;\n const prevUserSelect = document.body.style.userSelect;\n\n const onMove = (ev: PointerEvent) => {\n if (ev.pointerId !== pointerId) return;\n const dx = ev.clientX - startX;\n if (!draggedRef.current) {\n if (Math.abs(dx) <= DRAG_THRESHOLD) return;\n draggedRef.current = true;\n document.body.style.cursor = 'col-resize';\n document.body.style.userSelect = 'none';\n }\n\n const cursorWidth = ev.clientX - sidebarLeft;\n\n if (collapseBelow > 0 && cursorWidth < collapseBelow) {\n collapse();\n return;\n }\n expand();\n setWidth(cursorWidth);\n };\n const cleanup = (ev?: PointerEvent) => {\n if (ev && ev.pointerId !== pointerId) return;\n window.removeEventListener('pointermove', onMove);\n window.removeEventListener('pointerup', cleanup);\n window.removeEventListener('pointercancel', cleanup);\n document.body.style.cursor = prevCursor;\n document.body.style.userSelect = prevUserSelect;\n setGestureActive(false);\n commit();\n dragCleanupRef.current = null;\n };\n dragCleanupRef.current = () => cleanup();\n window.addEventListener('pointermove', onMove);\n window.addEventListener('pointerup', cleanup);\n window.addEventListener('pointercancel', cleanup);\n },\n [collapseBelow, setWidth, expand, collapse, commit, setGestureActive],\n );\n\n const onClick = useCallback(() => {\n if (draggedRef.current) {\n draggedRef.current = false;\n return;\n }\n toggleSidebar();\n }, [toggleSidebar]);\n\n const onKeyDown = useCallback(\n (event: ReactKeyboardEvent<HTMLDivElement>) => {\n switch (event.key) {\n case 'Enter':\n case ' ': {\n event.preventDefault();\n toggleSidebar();\n return;\n }\n case 'ArrowLeft': {\n event.preventDefault();\n if (isCollapsed) return;\n setWidth(width - KEYBOARD_STEP);\n commit();\n return;\n }\n case 'ArrowRight': {\n event.preventDefault();\n if (isCollapsed) {\n expand();\n commit();\n return;\n }\n setWidth(width + KEYBOARD_STEP);\n commit();\n return;\n }\n case 'Home': {\n event.preventDefault();\n expand();\n setWidth(minWidth);\n commit();\n return;\n }\n case 'End': {\n event.preventDefault();\n expand();\n setWidth(maxWidth);\n commit();\n return;\n }\n }\n },\n [isCollapsed, width, minWidth, maxWidth, setWidth, expand, commit, toggleSidebar],\n );\n\n // Client-side routers preventDefault but should still close the drawer.\n const closeOnAnchor = useCallback(\n (event: React.MouseEvent<HTMLDivElement>) => {\n if (!(event.target instanceof Element)) return;\n const anchor = event.target.closest<HTMLAnchorElement>('a');\n if (!anchor || !anchor.hasAttribute('href')) return;\n\n if (event.button !== 0 || event.metaKey || event.ctrlKey || event.shiftKey || event.altKey) return;\n\n if (anchor.target === '_blank' || anchor.hasAttribute('download')) return;\n setOpenMobile(false);\n },\n [setOpenMobile],\n );\n\n if (isMobile) {\n return (\n <Drawer\n side=\"left\"\n open={openMobile}\n onOpenChange={setOpenMobile}\n onOpenChangeComplete={open => {\n if (!open) setMobileDrawerPresent(false);\n }}\n >\n <DrawerContent\n data-mobile-mode={mobileMode}\n finalFocus={mobileTriggerRef}\n showCloseButton={mobileMode === 'drawer'}\n className={cn(\n 'border-0 bg-sidebar text-foreground',\n mobileMode === 'takeover'\n ? 'w-[calc(100%-3.5rem)] max-w-none overflow-visible rounded-l-none rounded-r-3xl pt-[env(safe-area-inset-top)] pb-[env(safe-area-inset-bottom)]'\n : 'w-3/4 max-w-(--sidebar-width-mobile) overflow-hidden rounded-none',\n className,\n )}\n >\n {mobileMode === 'takeover' ? (\n <DrawerClose asChild>\n <button\n type=\"button\"\n aria-label=\"Close\"\n className=\"group absolute top-2 -right-12 z-10 inline-flex size-11 touch-manipulation items-center justify-center transition-opacity duration-fast group-data-[ending-style]/popup:opacity-0 focus-visible:outline-hidden motion-reduce:duration-0\"\n >\n <span\n className={cn(\n overlaySurfaceStyle,\n quietTextHoverInGroup,\n surfaceGroupStateLayerStyle,\n 'inline-flex size-9 items-center justify-center rounded-full backdrop-blur-sm group-focus-visible:ring-1 group-focus-visible:ring-accent1',\n )}\n >\n <MenuIcon className=\"size-4\" />\n </span>\n </button>\n </DrawerClose>\n ) : null}\n <VisuallyHidden asChild>\n <DrawerTitle>Navigation</DrawerTitle>\n </VisuallyHidden>\n <VisuallyHidden asChild>\n <DrawerDescription>Primary site navigation drawer</DrawerDescription>\n </VisuallyHidden>\n <div\n onClick={closeOnAnchor}\n className={cn(\n 'flex h-full min-h-0 flex-col overflow-hidden py-2',\n mobileMode === 'takeover' ? 'px-4' : 'px-3',\n )}\n >\n {children}\n </div>\n </DrawerContent>\n </Drawer>\n );\n }\n\n const currentWidth = isCollapsed ? collapsedWidth : width;\n return (\n <div\n className={cn(\n 'sidebar-layout group/sidebar t-resize relative min-h-0 shrink-0 self-stretch bg-sidebar text-foreground',\n 'w-(--sidebar-width)',\n 'in-data-[sidebar-gesture=active]:transition-none',\n className,\n\n isHidden && 'border-r-0 border-transparent',\n )}\n >\n <div\n className={cn(\n 'flex h-full min-h-0 flex-col overflow-hidden',\n 'transition-opacity duration-200 motion-reduce:transition-none',\n 'px-2',\n isHidden && 'pointer-events-none px-0 opacity-0',\n )}\n >\n {children}\n </div>\n\n <div\n role=\"separator\"\n aria-orientation=\"vertical\"\n\n aria-valuenow={isCollapsed ? undefined : currentWidth}\n aria-valuemin={isCollapsed ? undefined : minWidth}\n aria-valuemax={isCollapsed ? undefined : maxWidth}\n aria-valuetext={isCollapsed ? 'collapsed' : `${currentWidth} pixels`}\n aria-label={`Resize sidebar. Arrow keys to resize, Enter to ${isCollapsed ? 'expand' : 'collapse'}.`}\n tabIndex={0}\n onPointerDown={onPointerDown}\n onClick={onClick}\n onKeyDown={onKeyDown}\n className={cn(\n 'group absolute top-0 -right-1 z-10 h-full w-2 cursor-col-resize touch-none',\n 'flex items-center justify-center',\n 'focus-visible:outline-hidden',\n )}\n >\n <ResizeHandleIndicator\n className={cn(\n 'via-foreground/30 group-hover:opacity-100',\n 'group-focus-visible:via-accent1 group-focus-visible:opacity-100',\n 'in-data-[sidebar-gesture=active]:via-foreground/45 in-data-[sidebar-gesture=active]:opacity-100',\n )}\n />\n </div>\n </div>\n );\n}\n","import { PanelRightIcon } from 'lucide-react';\nimport type { ComponentPropsWithoutRef } from 'react';\nimport { useMainSidebar } from './main-sidebar-context';\nimport { Kbd } from '@/ds/components/Kbd';\nimport { Tooltip, TooltipContent, TooltipTrigger } from '@/ds/components/Tooltip';\nimport { focusRing } from '@/ds/primitives/transitions';\nimport { cn } from '@/lib/utils';\n\nexport type MainSidebarTriggerProps = ComponentPropsWithoutRef<'button'>;\n\nexport function MainSidebarTrigger({ className, onClick, ...props }: MainSidebarTriggerProps) {\n const { desktopState, toggleSidebar } = useMainSidebar();\n const isCollapsed = desktopState === 'collapsed';\n\n return (\n <Tooltip>\n <TooltipTrigger\n render={\n <button\n type=\"button\"\n aria-label=\"Toggle sidebar\"\n aria-expanded={!isCollapsed}\n {...props}\n onClick={event => {\n onClick?.(event);\n if (!event.defaultPrevented) toggleSidebar();\n }}\n className={cn(\n 'flex items-center justify-center rounded-md text-muted-foreground',\n 'size-7',\n isCollapsed ? 'mx-auto' : 'ml-auto',\n 'hover:bg-fill-subtle hover:text-foreground',\n 'transition-colors duration-normal ease-out-custom motion-reduce:transition-none',\n focusRing.visible,\n '[&_svg]:size-4 [&_svg]:text-muted-foreground [&_svg]:transition-transform [&_svg]:duration-slow [&_svg]:ease-out-custom motion-reduce:[&_svg]:transition-none [&:hover_svg]:text-foreground',\n className,\n )}\n >\n <PanelRightIcon\n className={cn({\n 'rotate-180': isCollapsed,\n })}\n />\n </button>\n }\n />\n\n <TooltipContent>\n <span className=\"inline-flex items-center gap-1.5\">\n Toggle Sidebar\n <Kbd size=\"xs\" className=\"bg-muted text-muted-foreground\">\n [\n </Kbd>\n </span>\n </TooltipContent>\n </Tooltip>\n );\n}\n","import React from 'react';\nimport type { CSSProperties } from 'react';\nimport {\n MainSidebarContext,\n MobileDrawerContext,\n type MobileDrawerContextValue,\n type SidebarState,\n} from './main-sidebar-context';\nimport type { LinkComponent } from '@/ds/types/link-component';\n\nconst SIDEBAR_STATE_KEY = 'sidebar:state';\nconst SIDEBAR_WIDTH_KEY = 'sidebar:width';\n\nconst SIDEBAR_WIDTH_VAR = '--sidebar-width';\n\ntype InitialSidebarState = {\n state: SidebarState;\n width: number;\n};\n\ntype SidebarScopeStyle = CSSProperties & {\n '--sidebar-width': string;\n '--sidebar-width-mobile': string;\n};\n\nexport type MainSidebarProviderProps = {\n children: React.ReactNode;\n /** Initial state before localStorage hydrates. Defaults to `'default'`. */\n defaultState?: SidebarState;\n /** Default expanded width in px. Defaults to `240`. */\n defaultWidth?: number;\n /** Minimum draggable width in px. Defaults to `200`. */\n minWidth?: number;\n /** Maximum draggable width in px. Defaults to `480`. */\n maxWidth?: number;\n /** Drag below this value snaps the sidebar closed. Defaults to `minWidth` (snap to collapsed when dragged below the expanded minimum). Pass `0` to disable snap. */\n collapseBelow?: number;\n /** Width in px when collapsed. Defaults to `64`. Set to `0` for fully hidden. */\n collapsedWidth?: number;\n /** Disable the global ⌘B / Ctrl+B toggle shortcut. Defaults to `true` so browser shortcuts are preserved. */\n disableKeyboardShortcut?: boolean;\n /** Scope-key for localStorage. Allows multiple independent sidebars per app. */\n storageKey?: string;\n /** Mobile breakpoint in px (max-width). Below this, sidebar renders as a drawer. Defaults to `1024`. */\n mobileBreakpoint?: number;\n /** Drawer max-width on mobile in px. Actual width is `min(75vw, mobileWidth)`. Defaults to `360`. */\n mobileWidth?: number;\n /** Default LinkComponent injected into NavLink/NavHeader. Falls back to plain `<a>` if omitted. */\n LinkComponent?: LinkComponent;\n};\n\nconst clamp = (v: number, lo: number, hi: number) => Math.min(hi, Math.max(lo, v));\n\nconst useIsoLayoutEffect = typeof window !== 'undefined' ? React.useLayoutEffect : React.useEffect;\n\nexport function MainSidebarProvider({\n children,\n defaultState = 'default',\n defaultWidth = 240,\n minWidth = 200,\n maxWidth = 480,\n collapseBelow,\n collapsedWidth = 64,\n disableKeyboardShortcut = true,\n storageKey,\n mobileBreakpoint = 1024,\n mobileWidth = 360,\n LinkComponent,\n}: MainSidebarProviderProps) {\n // Normalize props so bad inputs (defaultWidth < minWidth, min > max, etc.) never produce a broken layout.\n const safeMin = Math.max(0, Math.min(minWidth, maxWidth));\n const safeMax = Math.max(safeMin, maxWidth);\n const safeCollapsed = Math.max(0, Math.min(collapsedWidth, safeMax));\n const safeDefault = clamp(defaultWidth, safeMin, safeMax);\n // Default snap-zone = minWidth: dragging below the expanded min snaps to collapsed,\n // since below min the sidebar cannot render its expanded layout anyway.\n // Pass `collapseBelow={0}` to disable snap.\n const safeCollapseBelow = collapseBelow ?? safeMin;\n\n const stateStorageKey = storageKey ? `${storageKey}:${SIDEBAR_STATE_KEY}` : SIDEBAR_STATE_KEY;\n const widthStorageKey = storageKey ? `${storageKey}:${SIDEBAR_WIDTH_KEY}` : SIDEBAR_WIDTH_KEY;\n\n // Hydrate synchronously from localStorage so first paint is already at the correct width.\n // Falls back to clamped defaults during SSR or when storage is unavailable.\n const readInitial = (): InitialSidebarState => {\n if (typeof window === 'undefined') return { state: defaultState, width: safeDefault };\n try {\n let nextState: SidebarState = defaultState;\n let nextWidth = safeDefault;\n const storedState = window.localStorage.getItem(stateStorageKey);\n if (storedState === 'collapsed' || storedState === 'default') nextState = storedState;\n const storedWidth = window.localStorage.getItem(widthStorageKey);\n if (storedWidth !== null) {\n const parsed = Number(storedWidth);\n if (Number.isFinite(parsed)) nextWidth = clamp(parsed, safeMin, safeMax);\n }\n return { state: nextState, width: nextWidth };\n } catch {\n return { state: defaultState, width: safeDefault };\n }\n };\n const initialRef = React.useRef<InitialSidebarState | null>(null);\n if (initialRef.current === null) initialRef.current = readInitial();\n const initial = initialRef.current;\n\n const [state, setState] = React.useState<SidebarState>(initial.state);\n const [width, setWidthState] = React.useState<number>(initial.width);\n const [isMobile, setIsMobile] = React.useState(false);\n const [openMobile, setOpenMobileState] = React.useState(false);\n const [mobileDrawerPresent, setMobileDrawerPresent] = React.useState(false);\n const openMobileRef = React.useRef(false);\n const mobileTriggerRef = React.useRef<HTMLButtonElement | null>(null);\n const widthRef = React.useRef<number>(initial.width);\n const stateRef = React.useRef<SidebarState>(initial.state);\n stateRef.current = state;\n\n const scopeRef = React.useRef<HTMLDivElement | null>(null);\n\n // Watch viewport for mobile breakpoint.\n React.useEffect(() => {\n if (typeof window === 'undefined') return;\n const mq = window.matchMedia(`(max-width: ${mobileBreakpoint - 1}px)`);\n const update = () => setIsMobile(mq.matches);\n update();\n mq.addEventListener('change', update);\n return () => mq.removeEventListener('change', update);\n }, [mobileBreakpoint]);\n\n const setOpenMobile = React.useCallback((open: boolean) => {\n openMobileRef.current = open;\n if (open) setMobileDrawerPresent(true);\n setOpenMobileState(open);\n }, []);\n\n // Close mobile drawer when crossing back to desktop.\n React.useEffect(() => {\n if (!isMobile && openMobile) {\n setOpenMobile(false);\n setMobileDrawerPresent(false);\n }\n }, [isMobile, openMobile, setOpenMobile]);\n\n const writeCssVar = React.useCallback((px: number) => {\n const el = scopeRef.current;\n if (el) el.style.setProperty(SIDEBAR_WIDTH_VAR, `${px}px`);\n }, []);\n\n // Keep the CSS var in sync with collapsed state transitions.\n useIsoLayoutEffect(() => {\n writeCssVar(state === 'collapsed' ? safeCollapsed : widthRef.current);\n }, [state, safeCollapsed, writeCssVar]);\n\n const persistState = React.useCallback(\n (next: SidebarState) => {\n try {\n window.localStorage.setItem(stateStorageKey, next);\n } catch {}\n },\n [stateStorageKey],\n );\n\n const toggleSidebar = React.useCallback(() => {\n if (isMobile) {\n setOpenMobile(!openMobileRef.current);\n return;\n }\n setState(prev => {\n const next = prev === 'default' ? 'collapsed' : 'default';\n // Sync ref so a synchronous follow-up `commit()` (e.g. keyboard handler)\n // persists the new state instead of the stale render-time value.\n stateRef.current = next;\n persistState(next);\n return next;\n });\n }, [isMobile, persistState, setOpenMobile]);\n\n const setWidth = React.useCallback(\n (next: number) => {\n const clamped = clamp(next, safeMin, safeMax);\n widthRef.current = clamped;\n writeCssVar(clamped);\n },\n [safeMin, safeMax, writeCssVar],\n );\n\n const collapse = React.useCallback(() => {\n stateRef.current = 'collapsed';\n persistState('collapsed');\n setState('collapsed');\n }, [persistState]);\n const expand = React.useCallback(() => {\n stateRef.current = 'default';\n persistState('default');\n setState('default');\n }, [persistState]);\n\n const commit = React.useCallback(() => {\n setWidthState(widthRef.current);\n try {\n window.localStorage.setItem(stateStorageKey, stateRef.current);\n window.localStorage.setItem(widthStorageKey, String(widthRef.current));\n } catch {}\n }, [stateStorageKey, widthStorageKey]);\n\n const setGestureActive = React.useCallback((active: boolean) => {\n const el = scopeRef.current;\n if (!el) return;\n if (active) el.setAttribute('data-sidebar-gesture', 'active');\n else el.removeAttribute('data-sidebar-gesture');\n }, []);\n\n // Global ⌘B / Ctrl+B toggle. Skip when typing.\n React.useEffect(() => {\n if (disableKeyboardShortcut) return;\n const onKeyDown = (ev: KeyboardEvent) => {\n // `code` is layout-independent — works on non-Latin keyboards.\n if (ev.code !== 'KeyB') return;\n if (!(ev.metaKey || ev.ctrlKey)) return;\n if (ev.altKey || ev.shiftKey) return;\n if (ev.target instanceof HTMLElement) {\n const tag = ev.target.tagName;\n if (tag === 'INPUT' || tag === 'TEXTAREA' || tag === 'SELECT') return;\n if (ev.target.isContentEditable) return;\n }\n ev.preventDefault();\n toggleSidebar();\n };\n window.addEventListener('keydown', onKeyDown);\n return () => window.removeEventListener('keydown', onKeyDown);\n }, [disableKeyboardShortcut, toggleSidebar]);\n\n const effectiveState: SidebarState = isMobile ? 'default' : state;\n\n const contextValue = React.useMemo(\n () => ({\n state: effectiveState,\n desktopState: state,\n width,\n minWidth: safeMin,\n maxWidth: safeMax,\n collapseBelow: safeCollapseBelow,\n collapsedWidth: safeCollapsed,\n isMobile,\n toggleSidebar,\n setWidth,\n collapse,\n expand,\n commit,\n setGestureActive,\n LinkComponent,\n }),\n [\n effectiveState,\n state,\n width,\n safeMin,\n safeMax,\n safeCollapseBelow,\n safeCollapsed,\n isMobile,\n toggleSidebar,\n setWidth,\n collapse,\n expand,\n commit,\n setGestureActive,\n LinkComponent,\n ],\n );\n\n const drawerValue = React.useMemo<MobileDrawerContextValue>(\n () => ({ openMobile, mobileTriggerRef, setOpenMobile, setMobileDrawerPresent }),\n [openMobile, setOpenMobile],\n );\n\n // CSS var owned exclusively by writeCssVar (single source of truth).\n // SSR seeds the initial value here; post-mount writeCssVar takes over.\n const scopeStyle: SidebarScopeStyle = {\n [SIDEBAR_WIDTH_VAR]: `${initial.state === 'collapsed' ? safeCollapsed : initial.width}px`,\n '--sidebar-width-mobile': `${mobileWidth}px`,\n display: 'contents',\n };\n\n return (\n <div\n ref={scopeRef}\n data-sidebar-scope\n data-sidebar-state={state}\n data-sidebar-mobile={isMobile ? 'true' : 'false'}\n data-sidebar-mobile-present={mobileDrawerPresent ? 'true' : 'false'}\n style={scopeStyle}\n suppressHydrationWarning\n >\n <MainSidebarContext.Provider value={contextValue}>\n <MobileDrawerContext.Provider value={drawerValue}>{children}</MobileDrawerContext.Provider>\n </MainSidebarContext.Provider>\n </div>\n );\n}\n","import type { NavLink } from './main-sidebar-nav-link';\n\n/**\n * Strict active-path match with sibling-exclusion.\n * - `pathname === link.url` or starts with `link.url + '/'`\n * - Not active if any sibling link has a longer matching url (prevents `/a` lighting while `/a/b` matches).\n */\nexport function getIsLinkActive(link: NavLink, pathname: string, siblings: NavLink[] = []): boolean {\n const matches = (url: string) => pathname === url || pathname.startsWith(url + '/');\n const flattenLinks = (links: NavLink[]): NavLink[] =>\n links.flatMap(item => [item, ...flattenLinks(item.children ?? [])]);\n\n if (!matches(link.url)) return false;\n const competingLinks = [...flattenLinks(link.children ?? []), ...flattenLinks(siblings)];\n return !competingLinks.some(\n other => other.url !== link.url && other.url.length > link.url.length && matches(other.url),\n );\n}\n"],"names":["jsx","cn","quietTextHover","MenuIcon","ScrollArea","VisuallyHidden","cva","controlHeight","surfaceStateLayerStyle","controlStateColorTransition","focusRing","jsxs","Tooltip","TooltipTrigger","TooltipContent","useRef","useEffect","useCallback","Drawer","DrawerContent","DrawerClose","overlaySurfaceStyle","quietTextHoverInGroup","surfaceGroupStateLayerStyle","DrawerTitle","DrawerDescription","ResizeHandleIndicator","PanelRightIcon","Kbd"],"mappings":"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"}
|