@mastra/playground-ui 60.2.0-alpha.1 → 60.2.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/LogsDataList.cjs.js +0 -2
- package/dist/components/LogsDataList.cjs.js.map +1 -1
- package/dist/components/LogsDataList.es.js +0 -2
- 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/chat/tools/badges/workflow-badge.cjs.js +1 -1
- package/dist/domains/chat/tools/badges/workflow-badge.es.js +1 -1
- package/dist/domains/scores/components/trace-scores-tab.cjs.js +0 -1
- package/dist/domains/scores/components/trace-scores-tab.cjs.js.map +1 -1
- package/dist/domains/scores/components/trace-scores-tab.es.js +0 -1
- package/dist/domains/scores/components/trace-scores-tab.es.js.map +1 -1
- package/dist/domains/traces/components/thread-view-by-trace.cjs.js +1 -0
- package/dist/domains/traces/components/thread-view-by-trace.cjs.js.map +1 -1
- package/dist/domains/traces/components/thread-view-by-trace.es.js +1 -0
- package/dist/domains/traces/components/thread-view-by-trace.es.js.map +1 -1
- package/dist/domains/traces/components/trace-data-panel.cjs.js +1 -1
- package/dist/domains/traces/components/trace-data-panel.es.js +1 -1
- package/dist/domains/traces/components/traces-page-skeleton.cjs.js +0 -2
- package/dist/domains/traces/components/traces-page-skeleton.cjs.js.map +1 -1
- package/dist/domains/traces/components/traces-page-skeleton.es.js +0 -2
- package/dist/domains/traces/components/traces-page-skeleton.es.js.map +1 -1
- package/dist/ee/signals/components/entity-index-list.cjs.js +0 -2
- package/dist/ee/signals/components/entity-index-list.cjs.js.map +1 -1
- package/dist/ee/signals/components/entity-index-list.es.js +0 -2
- package/dist/ee/signals/components/entity-index-list.es.js.map +1 -1
- package/dist/ee/signals/components/trace-intelligence-entity-index.cjs.js +0 -1
- 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 +0 -1
- package/dist/ee/signals/components/trace-intelligence-entity-index.es.js.map +1 -1
- package/dist/{main-sidebar-link-active-buZAhlHo.js → main-sidebar-B0ivY7lW.js} +118 -6
- package/dist/main-sidebar-B0ivY7lW.js.map +1 -0
- package/dist/{main-sidebar-link-active-D8VSuJKx.cjs → main-sidebar-BWKVSRoQ.cjs} +117 -4
- package/dist/main-sidebar-BWKVSRoQ.cjs.map +1 -0
- package/dist/new/sidebar.cjs.js +34 -34
- package/dist/new/sidebar.cjs.js.map +1 -1
- package/dist/new/sidebar.es.js +2 -2
- package/package.json +10 -10
- package/dist/main-sidebar-link-active-D8VSuJKx.cjs.map +0 -1
- package/dist/main-sidebar-link-active-buZAhlHo.js.map +0 -1
package/dist/new/sidebar.cjs.js
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
4
4
|
|
|
5
5
|
require('../sidebar.css');const jsxRuntime = require('react/jsx-runtime');
|
|
6
|
-
const
|
|
6
|
+
const mainSidebar = require('../main-sidebar-BWKVSRoQ.cjs');
|
|
7
7
|
const Txt = require('../Txt-DPmEpNbp.cjs');
|
|
8
8
|
const reactVisuallyHidden = require('@radix-ui/react-visually-hidden');
|
|
9
9
|
const utils_cn = require('../cn-DG0X1KEP.cjs');
|
|
@@ -17,7 +17,7 @@ const v4 = require('zod/v4');
|
|
|
17
17
|
const hooks_useLocalStorageState = require('../hooks/use-local-storage-state.cjs.js');
|
|
18
18
|
|
|
19
19
|
function SidebarNewBrand({ logo, title, className, ...props }) {
|
|
20
|
-
const { state } =
|
|
20
|
+
const { state } = mainSidebar.useMainSidebar();
|
|
21
21
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { "data-slot": "sidebar-new-brand", className: utils_cn.cn("flex min-w-0 flex-1 items-center gap-2", className), ...props, children: [
|
|
22
22
|
logo ? /* @__PURE__ */ jsxRuntime.jsx("span", { className: "shrink-0", children: logo }) : null,
|
|
23
23
|
state === "collapsed" ? /* @__PURE__ */ jsxRuntime.jsx(reactVisuallyHidden.VisuallyHidden, { children: title }) : /* @__PURE__ */ jsxRuntime.jsx(Txt.Txt, { as: "span", variant: "subheading", tone: "ink", className: "truncate font-body tracking-tight", children: title })
|
|
@@ -26,7 +26,7 @@ function SidebarNewBrand({ logo, title, className, ...props }) {
|
|
|
26
26
|
|
|
27
27
|
const SidebarNewCommandHeader = React.forwardRef(
|
|
28
28
|
function SidebarNewCommandHeader2({ className, children, ...props }, ref) {
|
|
29
|
-
const { state, isMobile } =
|
|
29
|
+
const { state, isMobile } = mainSidebar.useMainSidebar();
|
|
30
30
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
31
31
|
"header",
|
|
32
32
|
{
|
|
@@ -52,7 +52,7 @@ function SidebarNewFooter({ className, children, ...props }) {
|
|
|
52
52
|
}
|
|
53
53
|
|
|
54
54
|
const SidebarNewFooterMeta = React.forwardRef(function SidebarNewFooterMeta2({ className, children, action, ...props }, ref) {
|
|
55
|
-
const { state } =
|
|
55
|
+
const { state } = mainSidebar.useMainSidebar();
|
|
56
56
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
57
57
|
"div",
|
|
58
58
|
{
|
|
@@ -86,14 +86,14 @@ const SidebarNewFooterMeta = React.forwardRef(function SidebarNewFooterMeta2({ c
|
|
|
86
86
|
});
|
|
87
87
|
|
|
88
88
|
function SidebarNewTrigger(props) {
|
|
89
|
-
const context =
|
|
89
|
+
const context = mainSidebar.useMaybeSidebarState();
|
|
90
90
|
if (context?.isMobile) return null;
|
|
91
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
91
|
+
return /* @__PURE__ */ jsxRuntime.jsx(mainSidebar.MainSidebarTrigger, { ...props });
|
|
92
92
|
}
|
|
93
93
|
|
|
94
94
|
const hold = "animate-[sidebar-hold_var(--resize-dur)] motion-reduce:animate-none";
|
|
95
95
|
function SidebarNewHeader({ className, children, collapsedLogo, ...props }) {
|
|
96
|
-
const sidebar =
|
|
96
|
+
const sidebar = mainSidebar.useMaybeSidebarState();
|
|
97
97
|
const collapsed = sidebar?.state === "collapsed";
|
|
98
98
|
const isMobile = sidebar?.isMobile ?? false;
|
|
99
99
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -223,7 +223,7 @@ const SidebarNewMeter = React.forwardRef(function SidebarNewMeter2({
|
|
|
223
223
|
className,
|
|
224
224
|
...props
|
|
225
225
|
}, ref) {
|
|
226
|
-
const ctx =
|
|
226
|
+
const ctx = mainSidebar.useMaybeSidebarState();
|
|
227
227
|
const state = stateProp ?? ctx?.state ?? "default";
|
|
228
228
|
const Link = LinkProp ?? ctx?.LinkComponent ?? "a";
|
|
229
229
|
const isCollapsed = state === "collapsed";
|
|
@@ -281,9 +281,9 @@ const SidebarNewMeter = React.forwardRef(function SidebarNewMeter2({
|
|
|
281
281
|
});
|
|
282
282
|
|
|
283
283
|
function SidebarNewNav({ children, className, ...props }) {
|
|
284
|
-
const isMobile =
|
|
284
|
+
const isMobile = mainSidebar.useMaybeSidebarState()?.isMobile ?? false;
|
|
285
285
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
286
|
-
|
|
286
|
+
mainSidebar.MainSidebarNav,
|
|
287
287
|
{
|
|
288
288
|
className: utils_cn.cn(
|
|
289
289
|
"-mr-1.5",
|
|
@@ -307,7 +307,7 @@ function SidebarNewNavHeader({
|
|
|
307
307
|
LinkComponent: LinkProp,
|
|
308
308
|
...props
|
|
309
309
|
}) {
|
|
310
|
-
const context =
|
|
310
|
+
const context = mainSidebar.useMaybeSidebarState();
|
|
311
311
|
const state = stateProp ?? context?.state ?? "default";
|
|
312
312
|
const showTitle = state === "default";
|
|
313
313
|
const Link = LinkProp ?? context?.LinkComponent ?? "a";
|
|
@@ -386,7 +386,7 @@ function sidebarNewNavStackPageClasses(active, page, className) {
|
|
|
386
386
|
}
|
|
387
387
|
|
|
388
388
|
function SidebarNewNavStackRootView({ children, className, ...props }) {
|
|
389
|
-
const { state } =
|
|
389
|
+
const { state } = mainSidebar.useMainSidebar();
|
|
390
390
|
const { activeValue, rootValue } = useSidebarNewNavStack();
|
|
391
391
|
const active = state === "collapsed" || activeValue === rootValue;
|
|
392
392
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -412,7 +412,7 @@ function SidebarNewNavStackView({
|
|
|
412
412
|
className,
|
|
413
413
|
...props
|
|
414
414
|
}) {
|
|
415
|
-
const { state } =
|
|
415
|
+
const { state } = mainSidebar.useMainSidebar();
|
|
416
416
|
const { activeValue, closeView } = useSidebarNewNavStack();
|
|
417
417
|
const active = state !== "collapsed" && activeValue === value;
|
|
418
418
|
const backRef = React.useRef(null);
|
|
@@ -453,7 +453,7 @@ function SidebarNewNavStackView({
|
|
|
453
453
|
type: "button",
|
|
454
454
|
"aria-label": `${backLabel}: ${title}`,
|
|
455
455
|
onClick: handleBack,
|
|
456
|
-
className: utils_cn.cn(
|
|
456
|
+
className: utils_cn.cn(mainSidebar.navItemClasses(), "mb-2 grid grid-cols-[2rem_1fr_2rem] px-1"),
|
|
457
457
|
children: [
|
|
458
458
|
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.ArrowLeftIcon, { className: "justify-self-center", "aria-hidden": "true" }),
|
|
459
459
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "min-w-0 truncate text-center", children: title }),
|
|
@@ -479,9 +479,9 @@ function SidebarNewRoot({
|
|
|
479
479
|
children,
|
|
480
480
|
...props
|
|
481
481
|
}) {
|
|
482
|
-
const sidebar =
|
|
482
|
+
const sidebar = mainSidebar.useMaybeSidebarState();
|
|
483
483
|
const isRaised = variant === "raised" && !sidebar?.isMobile;
|
|
484
|
-
return /* @__PURE__ */ jsxRuntime.jsx("aside", { "aria-label": ariaLabel, className: "contents", children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
484
|
+
return /* @__PURE__ */ jsxRuntime.jsx("aside", { "aria-label": ariaLabel, className: "contents", children: /* @__PURE__ */ jsxRuntime.jsx(mainSidebar.MainSidebarRoot, { mobileMode, ...props, children: isRaised ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
485
485
|
"div",
|
|
486
486
|
{
|
|
487
487
|
"data-slot": "sidebar-new-surface",
|
|
@@ -534,7 +534,7 @@ function SidebarNewSectionLink({
|
|
|
534
534
|
}) {
|
|
535
535
|
const childLinks = link.children ?? [];
|
|
536
536
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
537
|
-
|
|
537
|
+
mainSidebar.MainSidebarNavLink,
|
|
538
538
|
{
|
|
539
539
|
link,
|
|
540
540
|
isActive: isActive?.(link, activeCandidates) ?? link.isActive,
|
|
@@ -543,7 +543,7 @@ function SidebarNewSectionLink({
|
|
|
543
543
|
if (event.target instanceof Element && event.target.closest("li") !== event.currentTarget) return;
|
|
544
544
|
onSelect?.(link);
|
|
545
545
|
},
|
|
546
|
-
subItems: childLinks.length > 0 ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
546
|
+
subItems: childLinks.length > 0 ? /* @__PURE__ */ jsxRuntime.jsx(mainSidebar.MainSidebarNavList, { className: "mt-0.5", children: childLinks.map((child) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
547
547
|
SidebarNewSectionLink,
|
|
548
548
|
{
|
|
549
549
|
link: child,
|
|
@@ -585,7 +585,7 @@ function SidebarNewMoreLinks({
|
|
|
585
585
|
return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
586
586
|
surfacedLinks.map(renderLink),
|
|
587
587
|
foldedLinks.length > 0 ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
588
|
-
|
|
588
|
+
mainSidebar.MainSidebarNavLink,
|
|
589
589
|
{
|
|
590
590
|
link: { name: "More", url: "", icon: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.MoreHorizontalIcon, {}) },
|
|
591
591
|
render: /* @__PURE__ */ jsxRuntime.jsxs(
|
|
@@ -597,7 +597,7 @@ function SidebarNewMoreLinks({
|
|
|
597
597
|
onClick: () => setExpanded((current) => !current),
|
|
598
598
|
children: [
|
|
599
599
|
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.MoreHorizontalIcon, { "aria-hidden": "true" }),
|
|
600
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
600
|
+
/* @__PURE__ */ jsxRuntime.jsx(mainSidebar.MainSidebarNavLabel, { children: "More" })
|
|
601
601
|
]
|
|
602
602
|
}
|
|
603
603
|
),
|
|
@@ -645,15 +645,15 @@ function SidebarNewSections({
|
|
|
645
645
|
const headerId = section.title ? `${baseId}-${section.key}` : void 0;
|
|
646
646
|
const activeCandidates = [...section.links, ...section.moreLinks ?? []];
|
|
647
647
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
648
|
-
|
|
648
|
+
mainSidebar.MainSidebarNavSection,
|
|
649
649
|
{
|
|
650
650
|
className,
|
|
651
651
|
"aria-labelledby": headerId,
|
|
652
652
|
"aria-label": !headerId ? section.key : void 0,
|
|
653
653
|
children: [
|
|
654
|
-
showSeparator ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
654
|
+
showSeparator ? /* @__PURE__ */ jsxRuntime.jsx(mainSidebar.MainSidebarNavSeparator, { className: "[&:after]:border-border" }) : null,
|
|
655
655
|
section.title ? /* @__PURE__ */ jsxRuntime.jsx(SidebarNewNavHeader, { id: headerId, href: section.href, isActive: section.isHeaderActive, children: section.title }) : null,
|
|
656
|
-
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
656
|
+
/* @__PURE__ */ jsxRuntime.jsxs(mainSidebar.MainSidebarNavList, { children: [
|
|
657
657
|
section.links.map((link) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
658
658
|
SidebarNewSectionLink,
|
|
659
659
|
{
|
|
@@ -689,25 +689,25 @@ const SidebarNew = Object.assign(SidebarNewRoot, {
|
|
|
689
689
|
FooterMeta: SidebarNewFooterMeta,
|
|
690
690
|
Header: SidebarNewHeader,
|
|
691
691
|
Meter: SidebarNewMeter,
|
|
692
|
-
MobileTrigger:
|
|
692
|
+
MobileTrigger: mainSidebar.MainSidebarMobileTrigger,
|
|
693
693
|
Nav: SidebarNewNav,
|
|
694
694
|
NavHeader: SidebarNewNavHeader,
|
|
695
|
-
NavLabel:
|
|
696
|
-
NavLink:
|
|
697
|
-
NavList:
|
|
698
|
-
NavSection:
|
|
699
|
-
NavSeparator:
|
|
695
|
+
NavLabel: mainSidebar.MainSidebarNavLabel,
|
|
696
|
+
NavLink: mainSidebar.MainSidebarNavLink,
|
|
697
|
+
NavList: mainSidebar.MainSidebarNavList,
|
|
698
|
+
NavSection: mainSidebar.MainSidebarNavSection,
|
|
699
|
+
NavSeparator: mainSidebar.MainSidebarNavSeparator,
|
|
700
700
|
NavStack: SidebarNewNavStack,
|
|
701
|
-
Provider:
|
|
701
|
+
Provider: mainSidebar.MainSidebarProvider,
|
|
702
702
|
SearchTrigger: SidebarNewSearchTrigger,
|
|
703
703
|
Sections: SidebarNewSections,
|
|
704
704
|
Trigger: SidebarNewTrigger
|
|
705
705
|
});
|
|
706
706
|
|
|
707
|
-
exports.SidebarNewProvider =
|
|
708
|
-
exports.getIsLinkActive =
|
|
709
|
-
exports.navItemClasses =
|
|
710
|
-
exports.useSidebarNew =
|
|
707
|
+
exports.SidebarNewProvider = mainSidebar.MainSidebarProvider;
|
|
708
|
+
exports.getIsLinkActive = mainSidebar.getIsLinkActive;
|
|
709
|
+
exports.navItemClasses = mainSidebar.navItemClasses;
|
|
710
|
+
exports.useSidebarNew = mainSidebar.useMainSidebar;
|
|
711
711
|
exports.SidebarNew = SidebarNew;
|
|
712
712
|
exports.SidebarNewBrand = SidebarNewBrand;
|
|
713
713
|
exports.SidebarNewCommandHeader = SidebarNewCommandHeader;
|
|
@@ -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-trigger.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.ts"],"sourcesContent":["import type { ComponentPropsWithoutRef, ReactNode } from 'react';\nimport { useMainSidebar } from '@/ds/components/MainSidebar/main-sidebar-context';\nimport { Txt } from '@/ds/components/Txt';\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 <Txt as=\"span\" variant=\"subheading\" tone=\"ink\" className=\"truncate font-body tracking-tight\">\n {title}\n </Txt>\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, isMobile } = 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',\n state === 'collapsed' ? 'px-3' : 'pr-2 pl-3.5',\n state !== 'collapsed' && !isMobile && 'w-[calc(var(--sidebar-width)-1rem)]',\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 space-y-1.5 pb-2', 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 { 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 type { ComponentPropsWithoutRef, ReactNode } from 'react';\nimport { SidebarNewTrigger } from './sidebar-new-trigger';\nimport { useMaybeSidebarState } from '@/ds/components/MainSidebar/main-sidebar-context';\nimport { cn } from '@/lib/utils';\n\nimport './sidebar-new-header.css';\n\nexport type SidebarNewHeaderProps = ComponentPropsWithoutRef<'header'> & {\n /** Logo for the collapsed rail. Replaces the children when collapsed and swaps to the toggle on hover. */\n collapsedLogo?: ReactNode;\n};\n\n// Holds opacity while the sidebar collapses, so leftover hover doesn't flash the toggle.\nconst hold = 'animate-[sidebar-hold_var(--resize-dur)] motion-reduce:animate-none';\n\nexport function SidebarNewHeader({ className, children, collapsedLogo, ...props }: SidebarNewHeaderProps) {\n const sidebar = useMaybeSidebarState();\n const collapsed = sidebar?.state === 'collapsed';\n const isMobile = sidebar?.isMobile ?? false;\n\n return (\n <header\n data-slot=\"sidebar-new-header\"\n className={cn(\n 'flex h-header-default shrink-0 items-center gap-2',\n collapsed ? 'px-1' : 'pr-2 pl-3.5',\n // Target width, not the animating one, so the title doesn't re-truncate while expanding.\n !collapsed && !isMobile && 'w-[calc(var(--sidebar-width)-1rem)]',\n className,\n )}\n {...props}\n >\n {collapsed && collapsedLogo ? (\n // ml-0.5 instead of mx-auto, so it doesn't jump while the sidebar collapses.\n <div className=\"group/collapsed-logo relative ml-0.5 grid size-9 shrink-0 place-items-center\">\n <span\n className={cn(\n hold,\n 'grid place-items-center transition-opacity duration-normal [--sidebar-hold-opacity:1] group-focus-within/collapsed-logo:opacity-0 group-hover/sidebar:opacity-0 motion-reduce:transition-none',\n )}\n >\n {collapsedLogo}\n </span>\n {isMobile ? null : (\n <div\n className={cn(\n hold,\n 'absolute inset-0 grid place-items-center opacity-0 transition-opacity duration-normal [--sidebar-hold-opacity:0] group-hover/sidebar:opacity-100 focus-within:opacity-100 motion-reduce:transition-none',\n )}\n >\n <SidebarNewTrigger />\n </div>\n )}\n </div>\n ) : (\n children\n )}\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 { Txt } from '@/ds/components/Txt';\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: '--warning-indicator',\n peak: 0.16,\n grain: false,\n text: 'text-warning-foreground',\n },\n danger: {\n colorVar: '--destructive-indicator',\n peak: 0.16,\n grain: false,\n text: 'text-destructive-foreground',\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 <Txt as=\"span\" variant=\"meta\" tone=\"ink\" className=\"pointer-events-none relative tabular-nums\">\n {value}\n </Txt>\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 <Txt as=\"span\" variant=\"column\" tone=\"muted\">\n {label}\n </Txt>\n {action ? <span className=\"pointer-events-auto\">{action}</span> : null}\n </div>\n\n <Txt variant=\"heading\" tone=\"ink\" className=\"mt-0.5 leading-tight tabular-nums\">\n {value}\n </Txt>\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 // Same 40px slot in both states, so rows don't shift when collapsing; the divider is centered in it.\n <div className={cn('flex min-w-0 items-center', showTitle ? 'mt-3 min-h-7' : 'h-10', 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 { useMaybeSidebarState } from '@/ds/components/MainSidebar/main-sidebar-context';\nimport type { MainSidebarRootProps } from '@/ds/components/MainSidebar/main-sidebar-root';\nimport { MainSidebarRoot } from '@/ds/components/MainSidebar/main-sidebar-root';\nimport { frameSurfaceStyle } from '@/ds/primitives/raised-surface';\nimport { cn } from '@/lib/utils';\n\nexport type SidebarNewRootProps = MainSidebarRootProps & {\n 'aria-label'?: string;\n variant?: 'default' | 'raised';\n};\n\nexport function SidebarNewRoot({\n 'aria-label': ariaLabel = 'Sidebar',\n mobileMode = 'takeover',\n variant = 'default',\n children,\n ...props\n}: SidebarNewRootProps) {\n const sidebar = useMaybeSidebarState();\n const isRaised = variant === 'raised' && !sidebar?.isMobile;\n\n return (\n <aside aria-label={ariaLabel} className=\"contents\">\n <MainSidebarRoot mobileMode={mobileMode} {...props}>\n {isRaised ? (\n <div\n data-slot=\"sidebar-new-surface\"\n className={cn(\n 'my-2 -mr-2 -ml-4 flex min-h-0 flex-1 flex-col overflow-hidden rounded-r-xl py-1.5',\n sidebar?.state === 'collapsed' ? 'pr-2 pl-4' : 'pr-3.5 pl-5.5',\n frameSurfaceStyle,\n )}\n >\n {children}\n </div>\n ) : (\n children\n )}\n </MainSidebarRoot>\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,\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 { 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","Txt","forwardRef","SidebarNewCommandHeader","SidebarNewFooterMeta","useMaybeSidebarState","MainSidebarTrigger","SidebarNewMeter","surfaceStateLayerStyle","MainSidebarNav","Fragment","navItemClasses","ArrowLeftIcon","MainSidebarRoot","frameSurfaceStyle","SidebarNewSearchTrigger","quietTextHover","controlStateColorTransition","focusRing","Kbd","quietTextHoverInGroup","MainSidebarNavLink","MainSidebarNavList","useState","MoreHorizontalIcon","MainSidebarNavLabel","ChevronDownIcon","z","useId","useLocalStorageState","MainSidebarNavSection","MainSidebarNavSeparator","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-trigger.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.ts"],"sourcesContent":["import type { ComponentPropsWithoutRef, ReactNode } from 'react';\nimport { useMainSidebar } from '@/ds/components/MainSidebar/main-sidebar-context';\nimport { Txt } from '@/ds/components/Txt';\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 <Txt as=\"span\" variant=\"subheading\" tone=\"ink\" className=\"truncate font-body tracking-tight\">\n {title}\n </Txt>\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, isMobile } = 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',\n state === 'collapsed' ? 'px-3' : 'pr-2 pl-3.5',\n state !== 'collapsed' && !isMobile && 'w-[calc(var(--sidebar-width)-1rem)]',\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 space-y-1.5 pb-2', 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 { 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 type { ComponentPropsWithoutRef, ReactNode } from 'react';\nimport { SidebarNewTrigger } from './sidebar-new-trigger';\nimport { useMaybeSidebarState } from '@/ds/components/MainSidebar/main-sidebar-context';\nimport { cn } from '@/lib/utils';\n\nimport './sidebar-new-header.css';\n\nexport type SidebarNewHeaderProps = ComponentPropsWithoutRef<'header'> & {\n /** Logo for the collapsed rail. Replaces the children when collapsed and swaps to the toggle on hover. */\n collapsedLogo?: ReactNode;\n};\n\n// Holds opacity while the sidebar collapses, so leftover hover doesn't flash the toggle.\nconst hold = 'animate-[sidebar-hold_var(--resize-dur)] motion-reduce:animate-none';\n\nexport function SidebarNewHeader({ className, children, collapsedLogo, ...props }: SidebarNewHeaderProps) {\n const sidebar = useMaybeSidebarState();\n const collapsed = sidebar?.state === 'collapsed';\n const isMobile = sidebar?.isMobile ?? false;\n\n return (\n <header\n data-slot=\"sidebar-new-header\"\n className={cn(\n 'flex h-header-default shrink-0 items-center gap-2',\n collapsed ? 'px-1' : 'pr-2 pl-3.5',\n // Target width, not the animating one, so the title doesn't re-truncate while expanding.\n !collapsed && !isMobile && 'w-[calc(var(--sidebar-width)-1rem)]',\n className,\n )}\n {...props}\n >\n {collapsed && collapsedLogo ? (\n // ml-0.5 instead of mx-auto, so it doesn't jump while the sidebar collapses.\n <div className=\"group/collapsed-logo relative ml-0.5 grid size-9 shrink-0 place-items-center\">\n <span\n className={cn(\n hold,\n 'grid place-items-center transition-opacity duration-normal [--sidebar-hold-opacity:1] group-focus-within/collapsed-logo:opacity-0 group-hover/sidebar:opacity-0 motion-reduce:transition-none',\n )}\n >\n {collapsedLogo}\n </span>\n {isMobile ? null : (\n <div\n className={cn(\n hold,\n 'absolute inset-0 grid place-items-center opacity-0 transition-opacity duration-normal [--sidebar-hold-opacity:0] group-hover/sidebar:opacity-100 focus-within:opacity-100 motion-reduce:transition-none',\n )}\n >\n <SidebarNewTrigger />\n </div>\n )}\n </div>\n ) : (\n children\n )}\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 { Txt } from '@/ds/components/Txt';\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: '--warning-indicator',\n peak: 0.16,\n grain: false,\n text: 'text-warning-foreground',\n },\n danger: {\n colorVar: '--destructive-indicator',\n peak: 0.16,\n grain: false,\n text: 'text-destructive-foreground',\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 <Txt as=\"span\" variant=\"meta\" tone=\"ink\" className=\"pointer-events-none relative tabular-nums\">\n {value}\n </Txt>\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 <Txt as=\"span\" variant=\"column\" tone=\"muted\">\n {label}\n </Txt>\n {action ? <span className=\"pointer-events-auto\">{action}</span> : null}\n </div>\n\n <Txt variant=\"heading\" tone=\"ink\" className=\"mt-0.5 leading-tight tabular-nums\">\n {value}\n </Txt>\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 // Same 40px slot in both states, so rows don't shift when collapsing; the divider is centered in it.\n <div className={cn('flex min-w-0 items-center', showTitle ? 'mt-3 min-h-7' : 'h-10', 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 { useMaybeSidebarState } from '@/ds/components/MainSidebar/main-sidebar-context';\nimport type { MainSidebarRootProps } from '@/ds/components/MainSidebar/main-sidebar-root';\nimport { MainSidebarRoot } from '@/ds/components/MainSidebar/main-sidebar-root';\nimport { frameSurfaceStyle } from '@/ds/primitives/raised-surface';\nimport { cn } from '@/lib/utils';\n\nexport type SidebarNewRootProps = MainSidebarRootProps & {\n 'aria-label'?: string;\n variant?: 'default' | 'raised';\n};\n\nexport function SidebarNewRoot({\n 'aria-label': ariaLabel = 'Sidebar',\n mobileMode = 'takeover',\n variant = 'default',\n children,\n ...props\n}: SidebarNewRootProps) {\n const sidebar = useMaybeSidebarState();\n const isRaised = variant === 'raised' && !sidebar?.isMobile;\n\n return (\n <aside aria-label={ariaLabel} className=\"contents\">\n <MainSidebarRoot mobileMode={mobileMode} {...props}>\n {isRaised ? (\n <div\n data-slot=\"sidebar-new-surface\"\n className={cn(\n 'my-2 -mr-2 -ml-4 flex min-h-0 flex-1 flex-col overflow-hidden rounded-r-xl py-1.5',\n sidebar?.state === 'collapsed' ? 'pr-2 pl-4' : 'pr-3.5 pl-5.5',\n frameSurfaceStyle,\n )}\n >\n {children}\n </div>\n ) : (\n children\n )}\n </MainSidebarRoot>\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,\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 { 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","Txt","forwardRef","SidebarNewCommandHeader","SidebarNewFooterMeta","useMaybeSidebarState","MainSidebarTrigger","SidebarNewMeter","surfaceStateLayerStyle","MainSidebarNav","Fragment","navItemClasses","ArrowLeftIcon","MainSidebarRoot","frameSurfaceStyle","SidebarNewSearchTrigger","quietTextHover","controlStateColorTransition","focusRing","Kbd","quietTextHoverInGroup","MainSidebarNavLink","MainSidebarNavList","useState","MoreHorizontalIcon","MainSidebarNavLabel","ChevronDownIcon","z","useId","useLocalStorageState","MainSidebarNavSection","MainSidebarNavSeparator","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
|
-
import '../sidebar.css';export {
|
|
2
|
+
import { u as useMainSidebar, e as useMaybeSidebarState, c as MainSidebarTrigger, h as MainSidebarNav, n as navItemClasses, i as MainSidebarRoot, j as MainSidebarNavLink, k as MainSidebarNavList, l as MainSidebarNavLabel, m as MainSidebarNavSection, o as MainSidebarNavSeparator, b as MainSidebarProvider, a as MainSidebarMobileTrigger } from '../main-sidebar-B0ivY7lW.js';
|
|
3
|
+
import '../sidebar.css';export { g as getIsLinkActive } from '../main-sidebar-B0ivY7lW.js';
|
|
4
4
|
import { T as Txt } from '../Txt-BP1SRHmL.js';
|
|
5
5
|
import { VisuallyHidden } from '@radix-ui/react-visually-hidden';
|
|
6
6
|
import { c as cn } from '../cn-65Adrsfj.js';
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mastra/playground-ui",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "60.2.0
|
|
4
|
+
"version": "60.2.0",
|
|
5
5
|
"description": "Mastra Playground components",
|
|
6
6
|
"sideEffects": [
|
|
7
7
|
"**/*.css"
|
|
@@ -208,9 +208,9 @@
|
|
|
208
208
|
"react": ">=19.0.0",
|
|
209
209
|
"react-dom": ">=19.0.0",
|
|
210
210
|
"tailwindcss": "^4.0.0",
|
|
211
|
+
"@mastra/client-js": "^1.51.2",
|
|
211
212
|
"@mastra/ai-sdk": "^1.10.6",
|
|
212
|
-
"@mastra/
|
|
213
|
-
"@mastra/react": "1.7.2-alpha.1"
|
|
213
|
+
"@mastra/react": "1.7.2"
|
|
214
214
|
},
|
|
215
215
|
"devDependencies": {
|
|
216
216
|
"@modelcontextprotocol/sdk": "^1.29.0",
|
|
@@ -254,13 +254,13 @@
|
|
|
254
254
|
"vite-plugin-dts": "^4.5.4",
|
|
255
255
|
"vite-plugin-lib-inject-css": "^2.2.2",
|
|
256
256
|
"vitest": "4.1.11",
|
|
257
|
-
"@internal/lint": "0.0.
|
|
258
|
-
"@mastra/client-js": "^1.51.2
|
|
259
|
-
"@mastra/
|
|
260
|
-
"@mastra/
|
|
261
|
-
"@mastra/
|
|
262
|
-
"@mastra/
|
|
263
|
-
"@mastra/
|
|
257
|
+
"@internal/lint": "0.0.140",
|
|
258
|
+
"@mastra/client-js": "^1.51.2",
|
|
259
|
+
"@mastra/react": "1.7.2",
|
|
260
|
+
"@mastra/core": "1.74.0",
|
|
261
|
+
"@mastra/schema-compat": "1.3.13",
|
|
262
|
+
"@mastra/memory": "1.35.0",
|
|
263
|
+
"@mastra/ai-sdk": "1.10.6"
|
|
264
264
|
},
|
|
265
265
|
"homepage": "https://mastra.ai",
|
|
266
266
|
"repository": {
|