@mastra/playground-ui 55.0.0 → 55.1.0-alpha.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.
Files changed (64) hide show
  1. package/dist/components/DataPanel.cjs.js +1 -1
  2. package/dist/components/DataPanel.es.js +1 -1
  3. package/dist/components/MainSidebar.cjs.js +26 -737
  4. package/dist/components/MainSidebar.cjs.js.map +1 -1
  5. package/dist/components/MainSidebar.es.js +4 -714
  6. package/dist/components/MainSidebar.es.js.map +1 -1
  7. package/dist/{data-panel-tSErqolu.cjs → data-panel-Bzws5n5c.cjs} +25 -8
  8. package/dist/data-panel-Bzws5n5c.cjs.map +1 -0
  9. package/dist/{data-panel-5iuux0r_.js → data-panel-C-H4tAEw.js} +25 -8
  10. package/dist/data-panel-C-H4tAEw.js.map +1 -0
  11. package/dist/domains/traces/components/span-data-panel-view.cjs.js +3 -2
  12. package/dist/domains/traces/components/span-data-panel-view.cjs.js.map +1 -1
  13. package/dist/domains/traces/components/span-data-panel-view.es.js +3 -2
  14. package/dist/domains/traces/components/span-data-panel-view.es.js.map +1 -1
  15. package/dist/domains/traces/components/thread-trace/thread-trace-details.cjs.js +1 -1
  16. package/dist/domains/traces/components/thread-trace/thread-trace-details.es.js +1 -1
  17. package/dist/domains/traces/components/trace-data-panel-view.cjs.js +12 -11
  18. package/dist/domains/traces/components/trace-data-panel-view.cjs.js.map +1 -1
  19. package/dist/domains/traces/components/trace-data-panel-view.es.js +13 -12
  20. package/dist/domains/traces/components/trace-data-panel-view.es.js.map +1 -1
  21. package/dist/domains/traces/components/trace-span-timeline.cjs.js +1 -1
  22. package/dist/domains/traces/components/trace-span-timeline.cjs.js.map +1 -1
  23. package/dist/domains/traces/components/trace-span-timeline.es.js +1 -1
  24. package/dist/domains/traces/components/trace-span-timeline.es.js.map +1 -1
  25. package/dist/domains/traces/components/trace-span-tree.cjs.js +1 -1
  26. package/dist/domains/traces/components/trace-span-tree.cjs.js.map +1 -1
  27. package/dist/domains/traces/components/trace-span-tree.es.js +1 -1
  28. package/dist/domains/traces/components/trace-span-tree.es.js.map +1 -1
  29. package/dist/main-sidebar-link-active-BK4RR4Az.js +719 -0
  30. package/dist/main-sidebar-link-active-BK4RR4Az.js.map +1 -0
  31. package/dist/main-sidebar-link-active-DLGDYeTJ.cjs +736 -0
  32. package/dist/main-sidebar-link-active-DLGDYeTJ.cjs.map +1 -0
  33. package/dist/new/sidebar.cjs.js +457 -0
  34. package/dist/new/sidebar.cjs.js.map +1 -0
  35. package/dist/new/sidebar.d.ts +2 -0
  36. package/dist/new/sidebar.es.js +440 -0
  37. package/dist/new/sidebar.es.js.map +1 -0
  38. package/dist/src/ds/components/DataPanel/data-panel-close-button.d.ts +3 -1
  39. package/dist/src/ds/components/DataPanel/data-panel-content.d.ts +3 -1
  40. package/dist/src/ds/components/DataPanel/data-panel-next-prev-nav.d.ts +3 -1
  41. package/dist/src/ds/new/sidebar/index.d.ts +12 -0
  42. package/dist/src/ds/new/sidebar/sidebar-new-brand.d.ts +6 -0
  43. package/dist/src/ds/new/sidebar/sidebar-new-footer.d.ts +3 -0
  44. package/dist/src/ds/new/sidebar/sidebar-new-header.d.ts +3 -0
  45. package/dist/src/ds/new/sidebar/sidebar-new-meter.d.ts +34 -0
  46. package/dist/src/ds/new/sidebar/sidebar-new-nav-header.d.ts +11 -0
  47. package/dist/src/ds/new/sidebar/sidebar-new-nav-stack-context.d.ts +8 -0
  48. package/dist/src/ds/new/sidebar/sidebar-new-nav-stack-page-classes.d.ts +1 -0
  49. package/dist/src/ds/new/sidebar/sidebar-new-nav-stack-root-view.d.ts +3 -0
  50. package/dist/src/ds/new/sidebar/sidebar-new-nav-stack-root.d.ts +7 -0
  51. package/dist/src/ds/new/sidebar/sidebar-new-nav-stack-view.d.ts +9 -0
  52. package/dist/src/ds/new/sidebar/sidebar-new-nav-stack.d.ts +10 -0
  53. package/dist/src/ds/new/sidebar/sidebar-new-nav.d.ts +3 -0
  54. package/dist/src/ds/new/sidebar/sidebar-new-root.d.ts +5 -0
  55. package/dist/src/ds/new/sidebar/sidebar-new-section-link.d.ts +8 -0
  56. package/dist/src/ds/new/sidebar/sidebar-new-sections.d.ts +8 -0
  57. package/dist/src/ds/new/sidebar/sidebar-new-trigger.d.ts +3 -0
  58. package/dist/src/ds/new/sidebar/sidebar-new.d.ts +36 -0
  59. package/dist/src/ds/new/sidebar/sidebar-new.stories.d.ts +6 -0
  60. package/dist/style.css +118 -0
  61. package/package.json +13 -7
  62. package/theme.css +48 -0
  63. package/dist/data-panel-5iuux0r_.js.map +0 -1
  64. package/dist/data-panel-tSErqolu.cjs.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sidebar.cjs.js","sources":["../../src/ds/new/sidebar/sidebar-new-brand.tsx","../../src/ds/new/sidebar/sidebar-new-footer.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-section-link.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=\"text-ui-md text-neutral6 truncate font-sans font-semibold tracking-tight\">{title}</span>\n )}\n </div>\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 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 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: '--neutral6', peak: 0.08, grain: true, text: 'text-neutral4' },\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 /** Short name for the measured thing, e.g. `Credits`. Hidden on a collapsed rail. */\n label: ReactNode;\n /** The figure itself. Rendered with tabular figures so it cannot shift width. */\n value: ReactNode;\n /** One line under the value. Truncates; the card height never changes. */\n status?: ReactNode;\n /** Drives the bloom hue. `neutral` is the only tone that carries grain. */\n tone?: SidebarNewMeterTone;\n /** Leading icon beside the label, shown only when the tone is not neutral. */\n icon?: ReactNode;\n /** Trailing control beside the label, kept outside the card link. */\n action?: ReactNode;\n /** Overrides the Provider-level LinkComponent. Defaults to `<a>` when neither is set. */\n LinkComponent?: LinkComponent;\n /** Defaults to the Provider's state; pass to override. */\n state?: SidebarState;\n}\n\ntype SidebarNewMeterLinkProps =\n | {\n /** Makes the whole card navigate. The link covers the card as an overlay. */\n href: string;\n /** Accessible name for the card link. Required whenever `href` is set. */\n linkLabel: string;\n }\n | { href?: never; linkLabel?: never };\n\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-border1 bg-surface2 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=\"text-ui-xs text-neutral3 pointer-events-none relative font-semibold tabular-nums\">\n {value}\n </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-border1 bg-surface2 px-3',\n href && 'transition-colors hover:bg-surface3',\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-ui-sm text-neutral3 font-medium\">{label}</span>\n {action ? <span className=\"pointer-events-auto\">{action}</span> : null}\n </div>\n\n <p className=\"text-ui-lg text-neutral6 mt-0.5 leading-tight font-semibold tabular-nums\">{value}</p>\n\n {status ? (\n <div className=\"text-ui-xs mt-1\">\n <p className={cn('truncate', current.text)}>{status}</p>\n </div>\n ) : null}\n </div>\n </div>\n );\n});\n","import 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 return (\n <MainSidebarNav\n className={cn(\n '-mr-1.5',\n '[&_[data-orientation=vertical]]:w-1 [&_[data-orientation=vertical]]:p-0',\n '[&_[data-orientation=vertical][data-has-overflow-y]]:opacity-100',\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-2 mb-0.5 flex min-h-8 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-ui-sm font-medium', {\n 'text-neutral5': isActive,\n 'text-neutral3': !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-neutral5': !isActive,\n 'text-neutral5': 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=\"bg-neutral4/40 mx-3 h-px flex-1\" />\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 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 text-neutral5 hover:text-neutral6')}\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({ 'aria-label': ariaLabel = 'Sidebar', ...props }: SidebarNewRootProps) {\n return (\n <aside aria-label={ariaLabel} className=\"contents\">\n <MainSidebarRoot {...props} />\n </aside>\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};\n\nfunction getSidebarNewLinkKey(link: NavLink) {\n return `${link.url}:${link.name}`;\n}\n\nexport function SidebarNewSectionLink({ link, activeCandidates, level = 0, isActive }: 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 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 />\n ))}\n </MainSidebarNavList>\n ) : null\n }\n />\n );\n}\n","import { useId } from 'react';\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';\n\nexport type SidebarNewSectionsProps = {\n sections: NavSection[];\n isActive?: (link: NavLink, activeCandidates: NavLink[]) => boolean;\n className?: string;\n};\n\nfunction getLinkKey(link: NavLink) {\n return `${link.url}:${link.name}`;\n}\n\nexport function SidebarNewSections({ sections, isActive, className }: SidebarNewSectionsProps) {\n const baseId = useId();\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\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 /> : 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={section.links}\n isActive={isActive}\n />\n ))}\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 { SidebarNewFooter } from './sidebar-new-footer';\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 { 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 Footer: SidebarNewFooter,\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 Sections: SidebarNewSections,\n Trigger: SidebarNewTrigger,\n});\n"],"names":["useMainSidebar","jsxs","cn","jsx","VisuallyHidden","forwardRef","SidebarNewMeter","useMaybeSidebarState","MainSidebarNav","Fragment","navItemClasses","ArrowLeftIcon","MainSidebarRoot","MainSidebarNavLink","MainSidebarNavList","useId","MainSidebarNavSection","MainSidebarNavSeparator","MainSidebarTrigger","MainSidebarMobileTrigger","MainSidebarNavLabel","MainSidebarProvider"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export * from '../src/ds/new/sidebar/index'
2
+ export {}
@@ -0,0 +1,440 @@
1
+ import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
2
+ import { k as useMainSidebar, u as useMaybeSidebarState, h as MainSidebarNav, n as navItemClasses, d as MainSidebarRoot, c as MainSidebarNavLink, b as MainSidebarNavList, M as MainSidebarNavSection, a as MainSidebarNavSeparator, f as MainSidebarTrigger, i as MainSidebarProvider, g as MainSidebarNavLabel, e as MainSidebarMobileTrigger } from '../main-sidebar-link-active-BK4RR4Az.js';
3
+ export { j as getIsLinkActive } from '../main-sidebar-link-active-BK4RR4Az.js';
4
+ import { VisuallyHidden } from '@radix-ui/react-visually-hidden';
5
+ import { c as cn } from '../cn-ByEbywDh.js';
6
+ import React__default, { forwardRef, useId } from 'react';
7
+ import { ArrowLeftIcon } from 'lucide-react';
8
+
9
+ function SidebarNewBrand({ logo, title, className, ...props }) {
10
+ const { state } = useMainSidebar();
11
+ return /* @__PURE__ */ jsxs("div", { "data-slot": "sidebar-new-brand", className: cn("flex min-w-0 flex-1 items-center gap-2", className), ...props, children: [
12
+ logo ? /* @__PURE__ */ jsx("span", { className: "shrink-0", children: logo }) : null,
13
+ state === "collapsed" ? /* @__PURE__ */ jsx(VisuallyHidden, { children: title }) : /* @__PURE__ */ jsx("span", { className: "text-ui-md text-neutral6 truncate font-sans font-semibold tracking-tight", children: title })
14
+ ] });
15
+ }
16
+
17
+ function SidebarNewFooter({ className, children, ...props }) {
18
+ return /* @__PURE__ */ jsx("footer", { "data-slot": "sidebar-new-footer", className: cn("mt-auto shrink-0", className), ...props, children });
19
+ }
20
+
21
+ function SidebarNewHeader({ className, children, ...props }) {
22
+ return /* @__PURE__ */ jsx(
23
+ "header",
24
+ {
25
+ "data-slot": "sidebar-new-header",
26
+ className: cn("flex h-header-default shrink-0 items-center gap-2 px-1", className),
27
+ ...props,
28
+ children
29
+ }
30
+ );
31
+ }
32
+
33
+ const NOISE = `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")`;
34
+ const CARD_HEIGHT = 76;
35
+ const BLOOM_HEIGHT = 100;
36
+ const BLOOM_HOLD_Y = 60;
37
+ const BLOOM_HOLD_X = 22.5;
38
+ const GRAIN_OPACITY = 0.18;
39
+ const GRAIN_SIZE = 110;
40
+ const FALLOFF_RAMP = [0, 0.08, 0.16, 0.25, 0.34, 0.44, 0.55, 0.66, 0.78, 0.89, 1];
41
+ const TONES = {
42
+ neutral: { colorVar: "--neutral6", peak: 0.08, grain: true, text: "text-neutral4" },
43
+ warning: {
44
+ colorVar: "--notice-warning",
45
+ peak: 0.16,
46
+ grain: false,
47
+ text: "text-notice-warning-fg"
48
+ },
49
+ danger: {
50
+ colorVar: "--notice-destructive",
51
+ peak: 0.16,
52
+ grain: false,
53
+ text: "text-notice-destructive-fg"
54
+ }
55
+ };
56
+ function cubicFalloff(position) {
57
+ const inverse = 1 - position;
58
+ return inverse * inverse * inverse;
59
+ }
60
+ function easedBloom(colorVar, peak) {
61
+ const stops = FALLOFF_RAMP.map((position) => {
62
+ const alpha = (peak * cubicFalloff(position) * 100).toFixed(2);
63
+ return `color-mix(in oklch, var(${colorVar}) ${alpha}%, transparent) ${(position * 100).toFixed(0)}%`;
64
+ });
65
+ return `linear-gradient(to right, ${stops.join(", ")})`;
66
+ }
67
+ function easedMask(direction, hold) {
68
+ const stops = FALLOFF_RAMP.map((position) => {
69
+ const offset = (hold + (100 - hold) * position).toFixed(2);
70
+ return `rgb(0 0 0 / ${cubicFalloff(position).toFixed(3)}) ${offset}%`;
71
+ });
72
+ return `linear-gradient(${direction}, rgb(0 0 0 / 1) 0%, ${stops.join(", ")})`;
73
+ }
74
+ const BLOOM_MASK = `${easedMask("to bottom", BLOOM_HOLD_Y)}, ${easedMask("to right", BLOOM_HOLD_X)}`;
75
+ function Bloom({ tone }) {
76
+ const current = TONES[tone];
77
+ return /* @__PURE__ */ jsx(
78
+ "span",
79
+ {
80
+ "aria-hidden": true,
81
+ "data-slot": "sidebar-new-meter-bloom",
82
+ className: "pointer-events-none absolute inset-x-0 top-0 -z-10",
83
+ style: {
84
+ height: BLOOM_HEIGHT,
85
+ backgroundImage: easedBloom(current.colorVar, current.peak),
86
+ maskImage: BLOOM_MASK,
87
+ maskComposite: "intersect"
88
+ },
89
+ children: current.grain ? /* @__PURE__ */ jsx(
90
+ "span",
91
+ {
92
+ "aria-hidden": true,
93
+ className: "absolute inset-0",
94
+ style: {
95
+ backgroundImage: NOISE,
96
+ backgroundRepeat: "repeat",
97
+ backgroundSize: `${GRAIN_SIZE}px ${GRAIN_SIZE}px`,
98
+ opacity: GRAIN_OPACITY
99
+ }
100
+ }
101
+ ) : null
102
+ }
103
+ );
104
+ }
105
+ const SidebarNewMeter = forwardRef(function SidebarNewMeter2({
106
+ label,
107
+ value,
108
+ status,
109
+ tone = "neutral",
110
+ icon,
111
+ action,
112
+ href,
113
+ linkLabel,
114
+ LinkComponent: LinkProp,
115
+ state: stateProp,
116
+ className,
117
+ ...props
118
+ }, ref) {
119
+ const ctx = useMaybeSidebarState();
120
+ const state = stateProp ?? ctx?.state ?? "default";
121
+ const Link = LinkProp ?? ctx?.LinkComponent ?? "a";
122
+ const isCollapsed = state === "collapsed";
123
+ const current = TONES[tone];
124
+ if (isCollapsed) {
125
+ return /* @__PURE__ */ jsxs(
126
+ "div",
127
+ {
128
+ ref,
129
+ "data-slot": "sidebar-new-meter",
130
+ "data-tone": tone,
131
+ "data-state": state,
132
+ className: cn(
133
+ "relative isolate flex items-center justify-center overflow-hidden rounded-lg border border-border1 bg-surface2 px-1 py-2",
134
+ className
135
+ ),
136
+ ...props,
137
+ children: [
138
+ /* @__PURE__ */ jsx(Bloom, { tone }),
139
+ href ? /* @__PURE__ */ jsx(Link, { href, className: "absolute inset-0 rounded-lg", "aria-label": linkLabel }) : null,
140
+ /* @__PURE__ */ jsx("span", { className: "text-ui-xs text-neutral3 pointer-events-none relative font-semibold tabular-nums", children: value })
141
+ ]
142
+ }
143
+ );
144
+ }
145
+ return /* @__PURE__ */ jsxs(
146
+ "div",
147
+ {
148
+ ref,
149
+ "data-slot": "sidebar-new-meter",
150
+ "data-tone": tone,
151
+ "data-state": state,
152
+ className: cn(
153
+ "relative isolate flex flex-col justify-center overflow-hidden rounded-lg border border-border1 bg-surface2 px-3",
154
+ href && "transition-colors hover:bg-surface3",
155
+ className
156
+ ),
157
+ style: { height: CARD_HEIGHT },
158
+ ...props,
159
+ children: [
160
+ /* @__PURE__ */ jsx(Bloom, { tone }),
161
+ href ? /* @__PURE__ */ jsx(Link, { href, className: "absolute inset-0 rounded-lg", "aria-label": linkLabel }) : null,
162
+ /* @__PURE__ */ jsxs("div", { className: "pointer-events-none relative", children: [
163
+ /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-1.5", children: [
164
+ tone === "neutral" ? null : icon,
165
+ /* @__PURE__ */ jsx("span", { className: "text-ui-sm text-neutral3 font-medium", children: label }),
166
+ action ? /* @__PURE__ */ jsx("span", { className: "pointer-events-auto", children: action }) : null
167
+ ] }),
168
+ /* @__PURE__ */ jsx("p", { className: "text-ui-lg text-neutral6 mt-0.5 leading-tight font-semibold tabular-nums", children: value }),
169
+ status ? /* @__PURE__ */ jsx("div", { className: "text-ui-xs mt-1", children: /* @__PURE__ */ jsx("p", { className: cn("truncate", current.text), children: status }) }) : null
170
+ ] })
171
+ ]
172
+ }
173
+ );
174
+ });
175
+
176
+ function SidebarNewNav({ children, className, ...props }) {
177
+ return /* @__PURE__ */ jsx(
178
+ MainSidebarNav,
179
+ {
180
+ className: cn(
181
+ "-mr-1.5",
182
+ "[&_[data-orientation=vertical]]:w-1 [&_[data-orientation=vertical]]:p-0",
183
+ "[&_[data-orientation=vertical][data-has-overflow-y]]:opacity-100",
184
+ className
185
+ ),
186
+ ...props,
187
+ children: /* @__PURE__ */ jsx("div", { className: "pr-1.5", children })
188
+ }
189
+ );
190
+ }
191
+
192
+ function SidebarNewNavHeader({
193
+ children,
194
+ className,
195
+ state: stateProp,
196
+ href,
197
+ isActive,
198
+ LinkComponent: LinkProp,
199
+ ...props
200
+ }) {
201
+ const context = useMaybeSidebarState();
202
+ const state = stateProp ?? context?.state ?? "default";
203
+ const showTitle = state === "default";
204
+ const Link = LinkProp ?? context?.LinkComponent ?? "a";
205
+ return /* @__PURE__ */ jsx("div", { className: cn("mt-2 mb-0.5 flex min-h-8 min-w-0 items-center", className), children: showTitle ? /* @__PURE__ */ jsx(
206
+ "header",
207
+ {
208
+ ...props,
209
+ className: cn("max-w-full min-w-0 truncate pl-3 text-ui-sm font-medium", {
210
+ "text-neutral5": isActive,
211
+ "text-neutral3": !isActive
212
+ }),
213
+ children: href ? /* @__PURE__ */ jsx(
214
+ Link,
215
+ {
216
+ href,
217
+ className: cn("block min-w-0 truncate transition-colors duration-normal", {
218
+ "hover:text-neutral5": !isActive,
219
+ "text-neutral5": isActive
220
+ }),
221
+ children
222
+ }
223
+ ) : children
224
+ }
225
+ ) : /* @__PURE__ */ jsxs(Fragment, { children: [
226
+ /* @__PURE__ */ jsx(VisuallyHidden, { asChild: true, children: /* @__PURE__ */ jsx("header", { ...props, children }) }),
227
+ /* @__PURE__ */ jsx("div", { "aria-hidden": "true", className: "bg-neutral4/40 mx-3 h-px flex-1" })
228
+ ] }) });
229
+ }
230
+
231
+ const SidebarNewNavStackContext = React__default.createContext(void 0);
232
+ function useSidebarNewNavStack() {
233
+ const context = React__default.useContext(SidebarNewNavStackContext);
234
+ if (!context) throw new Error("SidebarNew.NavStack components must be used within SidebarNew.NavStack.");
235
+ return context;
236
+ }
237
+
238
+ function SidebarNewNavStackRoot({
239
+ value,
240
+ rootValue = "root",
241
+ onValueChange,
242
+ children,
243
+ className,
244
+ ...props
245
+ }) {
246
+ function closeView(returnFocusRef) {
247
+ onValueChange(rootValue);
248
+ requestAnimationFrame(() => {
249
+ const target = returnFocusRef?.current;
250
+ if (target && !target.closest("[inert]")) target.focus();
251
+ });
252
+ }
253
+ return /* @__PURE__ */ jsx(SidebarNewNavStackContext.Provider, { value: { activeValue: value, rootValue, closeView }, children: /* @__PURE__ */ jsx(
254
+ "div",
255
+ {
256
+ "data-slot": "sidebar-new-nav-stack",
257
+ "data-value": value,
258
+ className: cn("relative grid min-w-0 overflow-hidden", className),
259
+ ...props,
260
+ children
261
+ }
262
+ ) });
263
+ }
264
+
265
+ function sidebarNewNavStackPageClasses(active, page, className) {
266
+ return cn(
267
+ "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",
268
+ active && "relative translate-x-0 opacity-100",
269
+ !active && "pointer-events-none absolute inset-0 opacity-0",
270
+ !active && page === "root" && "-translate-x-2",
271
+ !active && page === "view" && "translate-x-2",
272
+ className
273
+ );
274
+ }
275
+
276
+ function SidebarNewNavStackRootView({ children, className, ...props }) {
277
+ const { state } = useMainSidebar();
278
+ const { activeValue, rootValue } = useSidebarNewNavStack();
279
+ const active = state === "collapsed" || activeValue === rootValue;
280
+ return /* @__PURE__ */ jsx(
281
+ "div",
282
+ {
283
+ ...props,
284
+ "data-slot": "sidebar-new-nav-stack-root",
285
+ "aria-hidden": !active,
286
+ inert: !active,
287
+ className: sidebarNewNavStackPageClasses(active, "root", className),
288
+ children
289
+ }
290
+ );
291
+ }
292
+
293
+ function SidebarNewNavStackView({
294
+ value,
295
+ title,
296
+ backLabel = "Back to main navigation",
297
+ returnFocusRef,
298
+ onBack,
299
+ children,
300
+ className,
301
+ ...props
302
+ }) {
303
+ const { state } = useMainSidebar();
304
+ const { activeValue, closeView } = useSidebarNewNavStack();
305
+ const active = state !== "collapsed" && activeValue === value;
306
+ const backRef = React__default.useRef(null);
307
+ const wasActiveRef = React__default.useRef(active);
308
+ React__default.useEffect(() => {
309
+ if (active && !wasActiveRef.current) backRef.current?.focus();
310
+ wasActiveRef.current = active;
311
+ }, [active]);
312
+ function handleBack() {
313
+ closeView(returnFocusRef);
314
+ onBack?.();
315
+ }
316
+ return /* @__PURE__ */ jsxs(
317
+ "div",
318
+ {
319
+ ...props,
320
+ "data-slot": "sidebar-new-nav-stack-view",
321
+ "data-value": value,
322
+ "aria-hidden": !active,
323
+ inert: !active,
324
+ className: sidebarNewNavStackPageClasses(active, "view", className),
325
+ children: [
326
+ /* @__PURE__ */ jsxs(
327
+ "button",
328
+ {
329
+ ref: backRef,
330
+ type: "button",
331
+ "aria-label": `${backLabel}: ${title}`,
332
+ onClick: handleBack,
333
+ className: cn(navItemClasses(), "mb-2 grid grid-cols-[2rem_1fr_2rem] px-1 text-neutral5 hover:text-neutral6"),
334
+ children: [
335
+ /* @__PURE__ */ jsx(ArrowLeftIcon, { className: "justify-self-center", "aria-hidden": "true" }),
336
+ /* @__PURE__ */ jsx("span", { className: "min-w-0 truncate text-center", children: title }),
337
+ /* @__PURE__ */ jsx("span", { "aria-hidden": "true" })
338
+ ]
339
+ }
340
+ ),
341
+ children
342
+ ]
343
+ }
344
+ );
345
+ }
346
+
347
+ const SidebarNewNavStack = Object.assign(SidebarNewNavStackRoot, {
348
+ Root: SidebarNewNavStackRootView,
349
+ View: SidebarNewNavStackView
350
+ });
351
+
352
+ function SidebarNewRoot({ "aria-label": ariaLabel = "Sidebar", ...props }) {
353
+ return /* @__PURE__ */ jsx("aside", { "aria-label": ariaLabel, className: "contents", children: /* @__PURE__ */ jsx(MainSidebarRoot, { ...props }) });
354
+ }
355
+
356
+ function getSidebarNewLinkKey(link) {
357
+ return `${link.url}:${link.name}`;
358
+ }
359
+ function SidebarNewSectionLink({ link, activeCandidates, level = 0, isActive }) {
360
+ const childLinks = link.children ?? [];
361
+ return /* @__PURE__ */ jsx(
362
+ MainSidebarNavLink,
363
+ {
364
+ link,
365
+ isActive: isActive?.(link, activeCandidates) ?? link.isActive,
366
+ level,
367
+ subItems: childLinks.length > 0 ? /* @__PURE__ */ jsx(MainSidebarNavList, { className: "mt-0.5", children: childLinks.map((child) => /* @__PURE__ */ jsx(
368
+ SidebarNewSectionLink,
369
+ {
370
+ link: child,
371
+ activeCandidates,
372
+ level: level + 1,
373
+ isActive
374
+ },
375
+ getSidebarNewLinkKey(child)
376
+ )) }) : null
377
+ }
378
+ );
379
+ }
380
+
381
+ function getLinkKey(link) {
382
+ return `${link.url}:${link.name}`;
383
+ }
384
+ function SidebarNewSections({ sections, isActive, className }) {
385
+ const baseId = useId();
386
+ return /* @__PURE__ */ jsx(Fragment, { children: sections.map((section) => {
387
+ const showSeparator = section.links.length > 0 && section.separator;
388
+ const headerId = section.title ? `${baseId}-${section.key}` : void 0;
389
+ return /* @__PURE__ */ jsxs(
390
+ MainSidebarNavSection,
391
+ {
392
+ className,
393
+ "aria-labelledby": headerId,
394
+ "aria-label": !headerId ? section.key : void 0,
395
+ children: [
396
+ showSeparator ? /* @__PURE__ */ jsx(MainSidebarNavSeparator, {}) : null,
397
+ section.title ? /* @__PURE__ */ jsx(SidebarNewNavHeader, { id: headerId, href: section.href, isActive: section.isHeaderActive, children: section.title }) : null,
398
+ /* @__PURE__ */ jsx(MainSidebarNavList, { children: section.links.map((link) => /* @__PURE__ */ jsx(
399
+ SidebarNewSectionLink,
400
+ {
401
+ link,
402
+ activeCandidates: section.links,
403
+ isActive
404
+ },
405
+ getLinkKey(link)
406
+ )) })
407
+ ]
408
+ },
409
+ section.key
410
+ );
411
+ }) });
412
+ }
413
+
414
+ function SidebarNewTrigger(props) {
415
+ const context = useMaybeSidebarState();
416
+ if (context?.isMobile) return null;
417
+ return /* @__PURE__ */ jsx(MainSidebarTrigger, { ...props });
418
+ }
419
+
420
+ const SidebarNew = Object.assign(SidebarNewRoot, {
421
+ Brand: SidebarNewBrand,
422
+ Footer: SidebarNewFooter,
423
+ Header: SidebarNewHeader,
424
+ Meter: SidebarNewMeter,
425
+ MobileTrigger: MainSidebarMobileTrigger,
426
+ Nav: SidebarNewNav,
427
+ NavHeader: SidebarNewNavHeader,
428
+ NavLabel: MainSidebarNavLabel,
429
+ NavLink: MainSidebarNavLink,
430
+ NavList: MainSidebarNavList,
431
+ NavSection: MainSidebarNavSection,
432
+ NavSeparator: MainSidebarNavSeparator,
433
+ NavStack: SidebarNewNavStack,
434
+ Provider: MainSidebarProvider,
435
+ Sections: SidebarNewSections,
436
+ Trigger: SidebarNewTrigger
437
+ });
438
+
439
+ export { SidebarNew, SidebarNewBrand, SidebarNewFooter, SidebarNewHeader, SidebarNewMeter, SidebarNewNav, SidebarNewNavHeader, SidebarNewNavStack, MainSidebarProvider as SidebarNewProvider, SidebarNewRoot, SidebarNewSections, SidebarNewTrigger, navItemClasses, useMainSidebar as useSidebarNew };
440
+ //# sourceMappingURL=sidebar.es.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sidebar.es.js","sources":["../../src/ds/new/sidebar/sidebar-new-brand.tsx","../../src/ds/new/sidebar/sidebar-new-footer.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-section-link.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=\"text-ui-md text-neutral6 truncate font-sans font-semibold tracking-tight\">{title}</span>\n )}\n </div>\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 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 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: '--neutral6', peak: 0.08, grain: true, text: 'text-neutral4' },\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 /** Short name for the measured thing, e.g. `Credits`. Hidden on a collapsed rail. */\n label: ReactNode;\n /** The figure itself. Rendered with tabular figures so it cannot shift width. */\n value: ReactNode;\n /** One line under the value. Truncates; the card height never changes. */\n status?: ReactNode;\n /** Drives the bloom hue. `neutral` is the only tone that carries grain. */\n tone?: SidebarNewMeterTone;\n /** Leading icon beside the label, shown only when the tone is not neutral. */\n icon?: ReactNode;\n /** Trailing control beside the label, kept outside the card link. */\n action?: ReactNode;\n /** Overrides the Provider-level LinkComponent. Defaults to `<a>` when neither is set. */\n LinkComponent?: LinkComponent;\n /** Defaults to the Provider's state; pass to override. */\n state?: SidebarState;\n}\n\ntype SidebarNewMeterLinkProps =\n | {\n /** Makes the whole card navigate. The link covers the card as an overlay. */\n href: string;\n /** Accessible name for the card link. Required whenever `href` is set. */\n linkLabel: string;\n }\n | { href?: never; linkLabel?: never };\n\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-border1 bg-surface2 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=\"text-ui-xs text-neutral3 pointer-events-none relative font-semibold tabular-nums\">\n {value}\n </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-border1 bg-surface2 px-3',\n href && 'transition-colors hover:bg-surface3',\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-ui-sm text-neutral3 font-medium\">{label}</span>\n {action ? <span className=\"pointer-events-auto\">{action}</span> : null}\n </div>\n\n <p className=\"text-ui-lg text-neutral6 mt-0.5 leading-tight font-semibold tabular-nums\">{value}</p>\n\n {status ? (\n <div className=\"text-ui-xs mt-1\">\n <p className={cn('truncate', current.text)}>{status}</p>\n </div>\n ) : null}\n </div>\n </div>\n );\n});\n","import 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 return (\n <MainSidebarNav\n className={cn(\n '-mr-1.5',\n '[&_[data-orientation=vertical]]:w-1 [&_[data-orientation=vertical]]:p-0',\n '[&_[data-orientation=vertical][data-has-overflow-y]]:opacity-100',\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-2 mb-0.5 flex min-h-8 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-ui-sm font-medium', {\n 'text-neutral5': isActive,\n 'text-neutral3': !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-neutral5': !isActive,\n 'text-neutral5': 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=\"bg-neutral4/40 mx-3 h-px flex-1\" />\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 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 text-neutral5 hover:text-neutral6')}\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({ 'aria-label': ariaLabel = 'Sidebar', ...props }: SidebarNewRootProps) {\n return (\n <aside aria-label={ariaLabel} className=\"contents\">\n <MainSidebarRoot {...props} />\n </aside>\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};\n\nfunction getSidebarNewLinkKey(link: NavLink) {\n return `${link.url}:${link.name}`;\n}\n\nexport function SidebarNewSectionLink({ link, activeCandidates, level = 0, isActive }: 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 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 />\n ))}\n </MainSidebarNavList>\n ) : null\n }\n />\n );\n}\n","import { useId } from 'react';\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';\n\nexport type SidebarNewSectionsProps = {\n sections: NavSection[];\n isActive?: (link: NavLink, activeCandidates: NavLink[]) => boolean;\n className?: string;\n};\n\nfunction getLinkKey(link: NavLink) {\n return `${link.url}:${link.name}`;\n}\n\nexport function SidebarNewSections({ sections, isActive, className }: SidebarNewSectionsProps) {\n const baseId = useId();\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\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 /> : 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={section.links}\n isActive={isActive}\n />\n ))}\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 { SidebarNewFooter } from './sidebar-new-footer';\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 { 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 Footer: SidebarNewFooter,\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 Sections: SidebarNewSections,\n Trigger: SidebarNewTrigger,\n});\n"],"names":["SidebarNewMeter","React"],"mappings":"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"}
@@ -1,6 +1,8 @@
1
+ import { ButtonProps } from '../Button';
1
2
  export interface DataPanelCloseButtonProps {
2
3
  onClick: () => void;
3
4
  tooltip?: string;
4
5
  className?: string;
6
+ variant?: ButtonProps['variant'];
5
7
  }
6
- export declare function DataPanelCloseButton({ onClick, tooltip, className }: DataPanelCloseButtonProps): import("react").JSX.Element;
8
+ export declare function DataPanelCloseButton({ onClick, tooltip, className, variant, }: DataPanelCloseButtonProps): import("react").JSX.Element;