tembro 2.0.1 → 2.0.3

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 (46) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/dist/components/calendar/calendar.cjs +1 -1
  3. package/dist/components/calendar/calendar.js +5 -5
  4. package/dist/components/inputs/clearable-input.cjs +1 -1
  5. package/dist/components/inputs/clearable-input.js +1 -1
  6. package/dist/components/inputs/input-chrome.cjs +1 -1
  7. package/dist/components/inputs/input-chrome.js +1 -1
  8. package/dist/components/layout/app-sidebar.cjs +1 -1
  9. package/dist/components/layout/app-sidebar.d.ts +19 -1
  10. package/dist/components/layout/app-sidebar.js +253 -126
  11. package/dist/components/ui/button/index.cjs +1 -1
  12. package/dist/components/ui/button/index.js +2 -2
  13. package/dist/components/ui/input/primitive.cjs +1 -1
  14. package/dist/components/ui/input/primitive.js +1 -1
  15. package/dist/components/ui/select/index.cjs +1 -1
  16. package/dist/components/ui/select/index.js +3 -3
  17. package/dist/hooks/index.cjs +1 -1
  18. package/dist/hooks/index.js +4 -4
  19. package/dist/index.cjs +1 -1
  20. package/dist/index.js +134 -134
  21. package/dist/showcase/package-meta.cjs +1 -1
  22. package/dist/showcase/package-meta.d.ts +3 -3
  23. package/dist/showcase/package-meta.js +1 -1
  24. package/dist/showcase/premium/app-shell/showcase.cjs +1 -1
  25. package/dist/showcase/premium/app-shell/showcase.js +5 -1
  26. package/dist/showcase/premium/app-sidebar/showcase.cjs +1 -1
  27. package/dist/showcase/premium/app-sidebar/showcase.js +91 -70
  28. package/dist/showcase/site-data.cjs +1 -1
  29. package/dist/showcase/site-data.js +1 -1
  30. package/dist/showcase/tembro-registry.json.cjs +1 -1
  31. package/dist/showcase/tembro-registry.json.js +1 -1
  32. package/package.json +1 -1
  33. package/packages/cli/dist/index.cjs +6 -6
  34. package/packages/cli/vendor/src/components/calendar/calendar.tsx +5 -5
  35. package/packages/cli/vendor/src/components/inputs/clearable-input.tsx +1 -1
  36. package/packages/cli/vendor/src/components/inputs/input-chrome.tsx +1 -1
  37. package/packages/cli/vendor/src/components/layout/app-sidebar.tsx +259 -21
  38. package/packages/cli/vendor/src/components/ui/button/index.tsx +2 -2
  39. package/packages/cli/vendor/src/components/ui/input/primitive.tsx +1 -1
  40. package/packages/cli/vendor/src/components/ui/select/index.tsx +3 -3
  41. package/packages/cli/vendor/src/showcase/package-meta.ts +2 -2
  42. package/packages/cli/vendor/src/showcase/premium/app-shell/showcase.tsx +5 -1
  43. package/packages/cli/vendor/src/showcase/premium/app-sidebar/showcase.tsx +18 -4
  44. package/packages/cli/vendor/src/showcase/tembro-registry.json +1 -1
  45. package/packages/cli/vendor/templates/styles/globals.css +5 -5
  46. package/registry.json +1 -1
@@ -1,4 +1,4 @@
1
1
  //#region src/showcase/package-meta.ts
2
- var e = "2.0.1", t = "July 7, 2026", n = `^${e}`;
2
+ var e = "2.0.3", t = "July 8, 2026", n = `^${e}`;
3
3
  //#endregion
4
4
  export { n as PACKAGE_DEPENDENCY_RANGE, t as PACKAGE_LATEST_RELEASE_DATE, e as PACKAGE_LATEST_VERSION };
@@ -1 +1 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../../../_virtual/_rolldown/runtime.cjs"),t=require("../../../components/ui/button/index.cjs"),n=require("../../../components/ui/badge/index.cjs"),r=require("../../../components/layout/app-sidebar.cjs"),i=require("../../../components/layout/breadcrumbs.cjs"),a=require("../../../components/layout/page-container.cjs"),o=require("../../../components/layout/sidebar-nav.cjs"),s=require("../../../components/display/metric-grid.cjs"),c=require("../../../components/display/smart-card.cjs"),l=require("../../../components/layout/app-header.cjs"),u=require("../../../components/layout/page-header.cjs");let d=require("react");d=e.__toESM(d,1);let f=require("react/jsx-runtime");var p=[{key:`overview`,label:`Overview`,href:`#overview`},{key:`products`,label:`Products`,href:`#products`},{key:`billing`,label:`Billing`,href:`#billing`},{key:`settings`,label:`Settings`,href:`#settings`}],m=[{key:`mrr`,label:`MRR`,value:`$64k`,description:`11% vs last week`,tone:`success`},{key:`users`,label:`Users`,value:`1,020`,description:`3% churn risk`,tone:`warning`},{key:`tasks`,label:`Tasks`,value:`58`,description:`5 in progress`,tone:`info`},{key:`response`,label:`Latency`,value:`1.2s`,description:`P95 API response`,tone:`default`}];function h({mode:e}){let[h,g]=d.useState(`overview`),[_,v]=d.useState(!1),y=p.map(e=>({...e,active:e.key===h,onSelect:()=>g(e.key)})),b=p.find(e=>e.key===h)?.label??`Overview`;return(0,f.jsxs)(`div`,{className:`space-y-5`,children:[(0,f.jsx)(`div`,{className:`rounded-[24px] border border-[color:var(--aui-divider)] bg-[color:var(--aui-page-bg)] p-5`,children:(0,f.jsxs)(`div`,{className:`flex flex-col gap-4 xl:flex-row xl:items-center xl:justify-between`,children:[(0,f.jsxs)(`div`,{className:`max-w-xl`,children:[(0,f.jsx)(`p`,{className:`text-xs font-semibold uppercase tracking-[0.26em] aui-text-muted`,children:`Application frame`}),(0,f.jsx)(`h3`,{className:`mt-3 text-2xl font-semibold tracking-tight aui-text-strong`,children:`Reusable shell preview`}),(0,f.jsx)(`p`,{className:`mt-3 text-sm leading-6 aui-text-muted`,children:`Header, sidebar, main content and aside should feel like one predictable route frame.`})]}),(0,f.jsxs)(`div`,{className:`flex flex-wrap gap-2`,children:[(0,f.jsx)(n.Badge,{variant:`outline`,className:`rounded-full`,children:`Header`}),(0,f.jsx)(n.Badge,{variant:`outline`,className:`rounded-full`,children:`Sidebar`}),(0,f.jsx)(n.Badge,{variant:`outline`,className:`rounded-full`,children:`Aside`})]})]})}),e===`playground`?(0,f.jsx)(`div`,{className:`flex flex-wrap gap-3`,children:(0,f.jsx)(t.Button,{size:`sm`,variant:_?`outline`:`default`,onClick:()=>v(e=>!e),children:_?`Expand sidebar`:`Collapse sidebar`})}):null,(0,f.jsxs)(`div`,{className:`overflow-hidden rounded-[24px] border border-[color:var(--aui-divider)] bg-[color:var(--aui-page-bg)]`,children:[(0,f.jsx)(l.AppHeader,{className:`border-b border-[color:var(--aui-divider)] px-4 py-3`,left:`Product shell`,right:(0,f.jsx)(t.Button,{size:`sm`,variant:`outline`,children:`Profile`})}),(0,f.jsxs)(`div`,{className:`grid min-h-[420px] lg:grid-cols-[250px_minmax(0,1fr)_260px]`,children:[(0,f.jsx)(r.AppSidebar,{className:_?`hidden lg:block`:``,header:(0,f.jsx)(`div`,{className:`px-3 py-2 text-sm font-semibold`,children:`AZA Studio`}),footer:(0,f.jsx)(`div`,{className:`aui-text-muted px-3 py-2 text-xs`,children:`Shell footer`}),children:(0,f.jsx)(o.SidebarNav,{items:y})}),(0,f.jsx)(`div`,{className:`min-w-0 border-x border-[color:var(--aui-divider)] p-4`,children:(0,f.jsxs)(a.PageContainer,{size:`lg`,children:[(0,f.jsx)(u.PageHeader,{eyebrow:`Workspace`,title:b,description:`Use shared shell primitives to keep regions stable across routes.`,breadcrumbs:(0,f.jsx)(i.Breadcrumbs,{items:[{key:`home`,label:`Home`,href:`/`},{key:`components`,label:`Components`,href:`/components`},{key:`active`,label:b,current:!0}]}),actions:(0,f.jsx)(t.Button,{size:`sm`,children:`Manage`})}),(0,f.jsx)(`div`,{className:`mt-4`,children:(0,f.jsx)(s.MetricGrid,{items:m,columns:2,compact:!0})})]})}),(0,f.jsx)(`aside`,{className:`hidden p-4 lg:block`,children:(0,f.jsx)(c.SmartCard,{title:`Quick actions`,description:`Support content can live in the aside.`,compact:!0})})]})]})]})}exports.AppShellShowcase=h;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../../../_virtual/_rolldown/runtime.cjs"),t=require("../../../components/ui/button/index.cjs"),n=require("../../../components/ui/badge/index.cjs"),r=require("../../../components/layout/app-sidebar.cjs"),i=require("../../../components/layout/breadcrumbs.cjs"),a=require("../../../components/layout/page-container.cjs"),o=require("../../../components/layout/sidebar-nav.cjs"),s=require("../../../components/display/metric-grid.cjs"),c=require("../../../components/display/smart-card.cjs"),l=require("../../../components/layout/app-header.cjs"),u=require("../../../components/layout/page-header.cjs");let d=require("react");d=e.__toESM(d,1);let f=require("react/jsx-runtime");var p=[{key:`overview`,label:`Overview`,href:`#overview`},{key:`products`,label:`Products`,href:`#products`},{key:`billing`,label:`Billing`,href:`#billing`},{key:`settings`,label:`Settings`,href:`#settings`}],m=[{key:`mrr`,label:`MRR`,value:`$64k`,description:`11% vs last week`,tone:`success`},{key:`users`,label:`Users`,value:`1,020`,description:`3% churn risk`,tone:`warning`},{key:`tasks`,label:`Tasks`,value:`58`,description:`5 in progress`,tone:`info`},{key:`response`,label:`Latency`,value:`1.2s`,description:`P95 API response`,tone:`default`}];function h({mode:e}){let[h,g]=d.useState(`overview`),[_,v]=d.useState(!1),y=p.map(e=>({...e,active:e.key===h,onSelect:()=>g(e.key)})),b=p.find(e=>e.key===h)?.label??`Overview`;return(0,f.jsxs)(`div`,{className:`space-y-5`,children:[(0,f.jsx)(`div`,{className:`rounded-[24px] border border-[color:var(--aui-divider)] bg-[color:var(--aui-page-bg)] p-5`,children:(0,f.jsxs)(`div`,{className:`flex flex-col gap-4 xl:flex-row xl:items-center xl:justify-between`,children:[(0,f.jsxs)(`div`,{className:`max-w-xl`,children:[(0,f.jsx)(`p`,{className:`text-xs font-semibold uppercase tracking-[0.26em] aui-text-muted`,children:`Application frame`}),(0,f.jsx)(`h3`,{className:`mt-3 text-2xl font-semibold tracking-tight aui-text-strong`,children:`Reusable shell preview`}),(0,f.jsx)(`p`,{className:`mt-3 text-sm leading-6 aui-text-muted`,children:`Header, sidebar, main content and aside should feel like one predictable route frame.`})]}),(0,f.jsxs)(`div`,{className:`flex flex-wrap gap-2`,children:[(0,f.jsx)(n.Badge,{variant:`outline`,className:`rounded-full`,children:`Header`}),(0,f.jsx)(n.Badge,{variant:`outline`,className:`rounded-full`,children:`Sidebar`}),(0,f.jsx)(n.Badge,{variant:`outline`,className:`rounded-full`,children:`Aside`})]})]})}),e===`playground`?(0,f.jsx)(`div`,{className:`flex flex-wrap gap-3`,children:(0,f.jsx)(t.Button,{size:`sm`,variant:_?`outline`:`default`,onClick:()=>v(e=>!e),children:_?`Expand sidebar`:`Collapse sidebar`})}):null,(0,f.jsxs)(`div`,{className:`overflow-hidden rounded-[24px] border border-[color:var(--aui-divider)] bg-[color:var(--aui-page-bg)]`,children:[(0,f.jsx)(l.AppHeader,{className:`border-b border-[color:var(--aui-divider)] px-4 py-3`,left:`Product shell`,right:(0,f.jsx)(t.Button,{size:`sm`,variant:`outline`,children:`Profile`})}),(0,f.jsxs)(`div`,{className:`grid min-h-[420px] lg:grid-cols-[250px_minmax(0,1fr)_260px]`,children:[(0,f.jsx)(r.AppSidebar,{responsive:!0,mobileTitle:`Workspace navigation`,mobileDescription:`Open the shell menu first, then move through app routes without squeezing the main content.`,header:(0,f.jsx)(`div`,{className:`px-3 py-2 text-sm font-semibold`,children:`AZA Studio`}),footer:(0,f.jsx)(`div`,{className:`aui-text-muted px-3 py-2 text-xs`,children:`Shell footer`}),className:_?`lg:w-[92px]`:``,collapsed:_,children:(0,f.jsx)(o.SidebarNav,{items:y})}),(0,f.jsx)(`div`,{className:`min-w-0 border-x border-[color:var(--aui-divider)] p-4`,children:(0,f.jsxs)(a.PageContainer,{size:`lg`,children:[(0,f.jsx)(u.PageHeader,{eyebrow:`Workspace`,title:b,description:`Use shared shell primitives to keep regions stable across routes.`,breadcrumbs:(0,f.jsx)(i.Breadcrumbs,{items:[{key:`home`,label:`Home`,href:`/`},{key:`components`,label:`Components`,href:`/components`},{key:`active`,label:b,current:!0}]}),actions:(0,f.jsx)(t.Button,{size:`sm`,children:`Manage`})}),(0,f.jsx)(`div`,{className:`mt-4`,children:(0,f.jsx)(s.MetricGrid,{items:m,columns:2,compact:!0})})]})}),(0,f.jsx)(`aside`,{className:`hidden p-4 lg:block`,children:(0,f.jsx)(c.SmartCard,{title:`Quick actions`,description:`Support content can live in the aside.`,compact:!0})})]})]})]})}exports.AppShellShowcase=h;
@@ -136,7 +136,9 @@ function h({ mode: h }) {
136
136
  className: "grid min-h-[420px] lg:grid-cols-[250px_minmax(0,1fr)_260px]",
137
137
  children: [
138
138
  /* @__PURE__ */ d(n, {
139
- className: v ? "hidden lg:block" : "",
139
+ responsive: !0,
140
+ mobileTitle: "Workspace navigation",
141
+ mobileDescription: "Open the shell menu first, then move through app routes without squeezing the main content.",
140
142
  header: /* @__PURE__ */ d("div", {
141
143
  className: "px-3 py-2 text-sm font-semibold",
142
144
  children: "AZA Studio"
@@ -145,6 +147,8 @@ function h({ mode: h }) {
145
147
  className: "aui-text-muted px-3 py-2 text-xs",
146
148
  children: "Shell footer"
147
149
  }),
150
+ className: v ? "lg:w-[92px]" : "",
151
+ collapsed: v,
148
152
  children: /* @__PURE__ */ d(a, { items: b })
149
153
  }),
150
154
  /* @__PURE__ */ d("div", {
@@ -1 +1 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../../../_virtual/_rolldown/runtime.cjs"),t=require("../../../components/ui/button/index.cjs"),n=require("../../../components/ui/badge/index.cjs"),r=require("../../../components/layout/app-sidebar.cjs");let i=require("react");i=e.__toESM(i,1);let a=require("lucide-react"),o=require("react/jsx-runtime");var s=[{key:`overview`,label:`Overview`,href:`/overview`,icon:(0,o.jsx)(a.HomeIcon,{className:`size-4`})},{key:`projects`,label:`Projects`,href:`/projects`,icon:(0,o.jsx)(a.FolderIcon,{className:`size-4`}),badge:`8`},{key:`reports`,label:`Reports`,href:`/reports`,icon:(0,o.jsx)(a.BarChart3Icon,{className:`size-4`})},{key:`billing`,label:`Billing`,href:`/billing`,icon:(0,o.jsx)(a.CreditCardIcon,{className:`size-4`}),badge:`2`},{key:`settings`,label:`Settings`,href:`/settings`,icon:(0,o.jsx)(a.SettingsIcon,{className:`size-4`}),disabled:!0}],c=`rounded-[22px] border border-[color:var(--aui-divider)] bg-[color:var(--aui-page-bg)] p-5`;function l({mode:e}){let[a,l]=i.useState(`overview`),[u,d]=i.useState(e===`playground`),f=i.useMemo(()=>s.map(e=>({...e,active:e.key===a,onSelect:()=>l(e.key)})),[a]),p=s.find(e=>e.key===a);return(0,o.jsxs)(`div`,{className:`space-y-5`,children:[(0,o.jsx)(`section`,{className:`rounded-[24px] border border-[color:var(--aui-divider)] bg-[color:var(--aui-page-bg)] p-5 sm:p-6`,children:(0,o.jsxs)(`div`,{className:`flex flex-col gap-6 xl:flex-row xl:items-start xl:justify-between`,children:[(0,o.jsxs)(`div`,{className:`max-w-xl`,children:[(0,o.jsx)(`p`,{className:`text-xs font-semibold uppercase tracking-[0.26em] aui-text-muted`,children:`Navigation shell`}),(0,o.jsx)(`h3`,{className:`mt-3 text-2xl font-semibold tracking-tight aui-text-strong`,children:`Sidebar should feel install-ready on its own`}),(0,o.jsx)(`p`,{className:`mt-3 max-w-lg text-sm leading-6 aui-text-muted`,children:`This preview keeps the focus on one reusable sidebar surface: identity, route items, badges, disabled states and collapsed behavior.`})]}),(0,o.jsxs)(`div`,{className:`flex flex-wrap gap-2`,children:[(0,o.jsx)(n.Badge,{variant:`outline`,className:`rounded-full`,children:`Header slot`}),(0,o.jsx)(n.Badge,{variant:`outline`,className:`rounded-full`,children:`Badges`}),(0,o.jsx)(n.Badge,{variant:`outline`,className:`rounded-full`,children:`Collapsed rail`})]})]})}),e===`playground`?(0,o.jsxs)(`div`,{className:`flex flex-wrap gap-3`,children:[(0,o.jsx)(t.Button,{size:`sm`,variant:u?`outline`:`default`,onClick:()=>d(e=>!e),children:u?`Expand sidebar`:`Collapse sidebar`}),(0,o.jsx)(t.Button,{size:`sm`,variant:`outline`,onClick:()=>l(`reports`),children:`Jump to reports`})]}):null,(0,o.jsxs)(`div`,{className:`grid gap-4 xl:grid-cols-[320px_minmax(0,1fr)]`,children:[(0,o.jsx)(`section`,{className:c,children:(0,o.jsx)(r.AppSidebar,{collapsed:u,items:f,header:(0,o.jsx)(`div`,{className:`px-3 py-2 text-sm font-semibold`,children:`Azamat Workspace`}),footer:(0,o.jsx)(`div`,{className:`aui-text-muted px-3 py-2 text-xs`,children:`Starter plan • 3 editors`}),className:`min-h-[440px] rounded-[22px] border border-[color:var(--aui-surface-border)] bg-[color:var(--aui-surface)]`})}),(0,o.jsxs)(`section`,{className:c,children:[(0,o.jsx)(`p`,{className:`text-sm font-medium aui-text-muted`,children:`Current route`}),(0,o.jsx)(`p`,{className:`mt-3 text-2xl font-semibold tracking-tight aui-text-strong`,children:p?.label??`Overview`}),(0,o.jsx)(`p`,{className:`mt-2 max-w-xl text-sm leading-6 aui-text-muted`,children:`Start with the sidebar itself as a stable navigation contract. Only after this feels right should the app introduce a bigger shell, page header, or route-level statistics around it.`}),(0,o.jsxs)(`div`,{className:`mt-6 grid gap-3 sm:grid-cols-3`,children:[(0,o.jsxs)(`div`,{className:`rounded-[20px] border border-[color:var(--aui-divider)] bg-[color:var(--aui-page-bg-alt)] px-4 py-3`,children:[(0,o.jsx)(`p`,{className:`text-[11px] font-semibold uppercase tracking-[0.24em] aui-text-muted`,children:`Mode`}),(0,o.jsx)(`p`,{className:`mt-2 text-lg font-semibold aui-text-strong`,children:u?`Collapsed`:`Expanded`})]}),(0,o.jsxs)(`div`,{className:`rounded-[20px] border border-[color:var(--aui-divider)] bg-[color:var(--aui-page-bg-alt)] px-4 py-3`,children:[(0,o.jsx)(`p`,{className:`text-[11px] font-semibold uppercase tracking-[0.24em] aui-text-muted`,children:`Visible items`}),(0,o.jsx)(`p`,{className:`mt-2 text-lg font-semibold aui-text-strong`,children:f.length})]}),(0,o.jsxs)(`div`,{className:`rounded-[20px] border border-[color:var(--aui-divider)] bg-[color:var(--aui-page-bg-alt)] px-4 py-3`,children:[(0,o.jsx)(`p`,{className:`text-[11px] font-semibold uppercase tracking-[0.24em] aui-text-muted`,children:`Disabled`}),(0,o.jsx)(`p`,{className:`mt-2 text-lg font-semibold aui-text-strong`,children:`1 route`})]})]})]})]})]})}exports.AppSidebarShowcase=l;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../../../_virtual/_rolldown/runtime.cjs"),t=require("../../../lib/utils.cjs"),n=require("../../../components/ui/button/index.cjs"),r=require("../../../components/ui/badge/index.cjs"),i=require("../../../components/layout/app-sidebar.cjs");let a=require("react");a=e.__toESM(a,1);let o=require("lucide-react"),s=require("react/jsx-runtime");var c=[{key:`overview`,label:`Overview`,href:`/overview`,icon:(0,s.jsx)(o.HomeIcon,{className:`size-4`})},{key:`projects`,label:`Projects`,href:`/projects`,icon:(0,s.jsx)(o.FolderIcon,{className:`size-4`}),badge:`8`},{key:`reports`,label:`Reports`,href:`/reports`,icon:(0,s.jsx)(o.BarChart3Icon,{className:`size-4`})},{key:`billing`,label:`Billing`,href:`/billing`,icon:(0,s.jsx)(o.CreditCardIcon,{className:`size-4`}),badge:`2`},{key:`settings`,label:`Settings`,href:`/settings`,icon:(0,s.jsx)(o.SettingsIcon,{className:`size-4`}),disabled:!0}],l=`rounded-[22px] border border-[color:var(--aui-divider)] bg-[color:var(--aui-page-bg)] p-5`;function u({mode:e}){let[o,u]=a.useState(`overview`),[d,f]=a.useState(e===`playground`),[p,m]=a.useState(`desktop`),h=a.useMemo(()=>c.map(e=>({...e,active:e.key===o,onSelect:()=>u(e.key)})),[o]),g=c.find(e=>e.key===o),_=p===`mobile`;return(0,s.jsxs)(`div`,{className:`space-y-5`,children:[(0,s.jsx)(`section`,{className:`rounded-[24px] border border-[color:var(--aui-divider)] bg-[color:var(--aui-page-bg)] p-5 sm:p-6`,children:(0,s.jsxs)(`div`,{className:`flex flex-col gap-6 xl:flex-row xl:items-start xl:justify-between`,children:[(0,s.jsxs)(`div`,{className:`max-w-xl`,children:[(0,s.jsx)(`p`,{className:`text-xs font-semibold uppercase tracking-[0.26em] aui-text-muted`,children:`Navigation shell`}),(0,s.jsx)(`h3`,{className:`mt-3 text-2xl font-semibold tracking-tight aui-text-strong`,children:`Sidebar should feel install-ready on its own`}),(0,s.jsx)(`p`,{className:`mt-3 max-w-lg text-sm leading-6 aui-text-muted`,children:`This preview keeps the focus on one reusable sidebar surface: identity, route items, badges, disabled states and collapsed behavior.`})]}),(0,s.jsxs)(`div`,{className:`flex flex-wrap gap-2`,children:[(0,s.jsx)(r.Badge,{variant:`outline`,className:`rounded-full`,children:`Header slot`}),(0,s.jsx)(r.Badge,{variant:`outline`,className:`rounded-full`,children:`Badges`}),(0,s.jsx)(r.Badge,{variant:`outline`,className:`rounded-full`,children:`Mobile drawer`})]})]})}),e===`playground`?(0,s.jsxs)(`div`,{className:`flex flex-wrap gap-3`,children:[(0,s.jsx)(n.Button,{size:`sm`,variant:d?`outline`:`default`,onClick:()=>f(e=>!e),children:d?`Expand sidebar`:`Collapse sidebar`}),(0,s.jsx)(n.Button,{size:`sm`,variant:`outline`,onClick:()=>u(`reports`),children:`Jump to reports`}),(0,s.jsx)(n.Button,{size:`sm`,variant:_?`default`:`outline`,onClick:()=>m(`mobile`),children:`Mobile drawer`}),(0,s.jsx)(n.Button,{size:`sm`,variant:_?`outline`:`default`,onClick:()=>m(`desktop`),children:`Desktop rail`})]}):null,(0,s.jsxs)(`div`,{className:`grid gap-4 xl:grid-cols-[320px_minmax(0,1fr)]`,children:[(0,s.jsx)(`section`,{className:t.cn(l,_&&`mx-auto w-full max-w-[420px]`),children:(0,s.jsx)(i.AppSidebar,{collapsed:d,items:h,responsive:!0,mobileBreakpoint:_?1e4:0,mobileTitle:`Workspace navigation`,mobileDescription:`Open routes, check badges, and move between sections from one compact drawer.`,mobileToggleLabel:`Open workspace menu`,header:(0,s.jsx)(`div`,{className:`px-3 py-2 text-sm font-semibold`,children:`Azamat Workspace`}),footer:(0,s.jsx)(`div`,{className:`aui-text-muted px-3 py-2 text-xs`,children:`Starter plan • 3 editors`}),className:`min-h-[440px] rounded-[22px] border border-[color:var(--aui-surface-border)] bg-[color:var(--aui-surface)]`})}),(0,s.jsxs)(`section`,{className:l,children:[(0,s.jsx)(`p`,{className:`text-sm font-medium aui-text-muted`,children:`Current route`}),(0,s.jsx)(`p`,{className:`mt-3 text-2xl font-semibold tracking-tight aui-text-strong`,children:g?.label??`Overview`}),(0,s.jsx)(`p`,{className:`mt-2 max-w-xl text-sm leading-6 aui-text-muted`,children:`Start with the sidebar itself as a stable navigation contract. Only after this feels right should the app introduce a bigger shell, page header, or route-level statistics around it.`}),(0,s.jsxs)(`div`,{className:`mt-6 grid gap-3 sm:grid-cols-3`,children:[(0,s.jsxs)(`div`,{className:`rounded-[20px] border border-[color:var(--aui-divider)] bg-[color:var(--aui-page-bg-alt)] px-4 py-3`,children:[(0,s.jsx)(`p`,{className:`text-[11px] font-semibold uppercase tracking-[0.24em] aui-text-muted`,children:`Shell`}),(0,s.jsx)(`p`,{className:`mt-2 text-lg font-semibold aui-text-strong`,children:_?`Mobile drawer`:d?`Collapsed`:`Expanded`})]}),(0,s.jsxs)(`div`,{className:`rounded-[20px] border border-[color:var(--aui-divider)] bg-[color:var(--aui-page-bg-alt)] px-4 py-3`,children:[(0,s.jsx)(`p`,{className:`text-[11px] font-semibold uppercase tracking-[0.24em] aui-text-muted`,children:`Visible items`}),(0,s.jsx)(`p`,{className:`mt-2 text-lg font-semibold aui-text-strong`,children:h.length})]}),(0,s.jsxs)(`div`,{className:`rounded-[20px] border border-[color:var(--aui-divider)] bg-[color:var(--aui-page-bg-alt)] px-4 py-3`,children:[(0,s.jsx)(`p`,{className:`text-[11px] font-semibold uppercase tracking-[0.24em] aui-text-muted`,children:`Disabled`}),(0,s.jsx)(`p`,{className:`mt-2 text-lg font-semibold aui-text-strong`,children:`1 route`})]})]})]})]})]})}exports.AppSidebarShowcase=u;
@@ -1,171 +1,192 @@
1
- import { Button as e } from "../../../components/ui/button/index.js";
2
- import { Badge as t } from "../../../components/ui/badge/index.js";
3
- import { AppSidebar as n } from "../../../components/layout/app-sidebar.js";
4
- import * as r from "react";
5
- import { BarChart3Icon as i, CreditCardIcon as a, FolderIcon as o, HomeIcon as s, SettingsIcon as c } from "lucide-react";
6
- import { jsx as l, jsxs as u } from "react/jsx-runtime";
1
+ import { cn as e } from "../../../lib/utils.js";
2
+ import { Button as t } from "../../../components/ui/button/index.js";
3
+ import { Badge as n } from "../../../components/ui/badge/index.js";
4
+ import { AppSidebar as r } from "../../../components/layout/app-sidebar.js";
5
+ import * as i from "react";
6
+ import { BarChart3Icon as a, CreditCardIcon as o, FolderIcon as s, HomeIcon as c, SettingsIcon as l } from "lucide-react";
7
+ import { jsx as u, jsxs as d } from "react/jsx-runtime";
7
8
  //#region src/showcase/premium/app-sidebar/showcase.tsx
8
- var d = [
9
+ var f = [
9
10
  {
10
11
  key: "overview",
11
12
  label: "Overview",
12
13
  href: "/overview",
13
- icon: /* @__PURE__ */ l(s, { className: "size-4" })
14
+ icon: /* @__PURE__ */ u(c, { className: "size-4" })
14
15
  },
15
16
  {
16
17
  key: "projects",
17
18
  label: "Projects",
18
19
  href: "/projects",
19
- icon: /* @__PURE__ */ l(o, { className: "size-4" }),
20
+ icon: /* @__PURE__ */ u(s, { className: "size-4" }),
20
21
  badge: "8"
21
22
  },
22
23
  {
23
24
  key: "reports",
24
25
  label: "Reports",
25
26
  href: "/reports",
26
- icon: /* @__PURE__ */ l(i, { className: "size-4" })
27
+ icon: /* @__PURE__ */ u(a, { className: "size-4" })
27
28
  },
28
29
  {
29
30
  key: "billing",
30
31
  label: "Billing",
31
32
  href: "/billing",
32
- icon: /* @__PURE__ */ l(a, { className: "size-4" }),
33
+ icon: /* @__PURE__ */ u(o, { className: "size-4" }),
33
34
  badge: "2"
34
35
  },
35
36
  {
36
37
  key: "settings",
37
38
  label: "Settings",
38
39
  href: "/settings",
39
- icon: /* @__PURE__ */ l(c, { className: "size-4" }),
40
+ icon: /* @__PURE__ */ u(l, { className: "size-4" }),
40
41
  disabled: !0
41
42
  }
42
- ], f = "rounded-[22px] border border-[color:var(--aui-divider)] bg-[color:var(--aui-page-bg)] p-5";
43
- function p({ mode: i }) {
44
- let [a, o] = r.useState("overview"), [s, c] = r.useState(i === "playground"), p = r.useMemo(() => d.map((e) => ({
43
+ ], p = "rounded-[22px] border border-[color:var(--aui-divider)] bg-[color:var(--aui-page-bg)] p-5";
44
+ function m({ mode: a }) {
45
+ let [o, s] = i.useState("overview"), [c, l] = i.useState(a === "playground"), [m, h] = i.useState("desktop"), g = i.useMemo(() => f.map((e) => ({
45
46
  ...e,
46
- active: e.key === a,
47
- onSelect: () => o(e.key)
48
- })), [a]), m = d.find((e) => e.key === a);
49
- return /* @__PURE__ */ u("div", {
47
+ active: e.key === o,
48
+ onSelect: () => s(e.key)
49
+ })), [o]), _ = f.find((e) => e.key === o), v = m === "mobile";
50
+ return /* @__PURE__ */ d("div", {
50
51
  className: "space-y-5",
51
52
  children: [
52
- /* @__PURE__ */ l("section", {
53
+ /* @__PURE__ */ u("section", {
53
54
  className: "rounded-[24px] border border-[color:var(--aui-divider)] bg-[color:var(--aui-page-bg)] p-5 sm:p-6",
54
- children: /* @__PURE__ */ u("div", {
55
+ children: /* @__PURE__ */ d("div", {
55
56
  className: "flex flex-col gap-6 xl:flex-row xl:items-start xl:justify-between",
56
- children: [/* @__PURE__ */ u("div", {
57
+ children: [/* @__PURE__ */ d("div", {
57
58
  className: "max-w-xl",
58
59
  children: [
59
- /* @__PURE__ */ l("p", {
60
+ /* @__PURE__ */ u("p", {
60
61
  className: "text-xs font-semibold uppercase tracking-[0.26em] aui-text-muted",
61
62
  children: "Navigation shell"
62
63
  }),
63
- /* @__PURE__ */ l("h3", {
64
+ /* @__PURE__ */ u("h3", {
64
65
  className: "mt-3 text-2xl font-semibold tracking-tight aui-text-strong",
65
66
  children: "Sidebar should feel install-ready on its own"
66
67
  }),
67
- /* @__PURE__ */ l("p", {
68
+ /* @__PURE__ */ u("p", {
68
69
  className: "mt-3 max-w-lg text-sm leading-6 aui-text-muted",
69
70
  children: "This preview keeps the focus on one reusable sidebar surface: identity, route items, badges, disabled states and collapsed behavior."
70
71
  })
71
72
  ]
72
- }), /* @__PURE__ */ u("div", {
73
+ }), /* @__PURE__ */ d("div", {
73
74
  className: "flex flex-wrap gap-2",
74
75
  children: [
75
- /* @__PURE__ */ l(t, {
76
+ /* @__PURE__ */ u(n, {
76
77
  variant: "outline",
77
78
  className: "rounded-full",
78
79
  children: "Header slot"
79
80
  }),
80
- /* @__PURE__ */ l(t, {
81
+ /* @__PURE__ */ u(n, {
81
82
  variant: "outline",
82
83
  className: "rounded-full",
83
84
  children: "Badges"
84
85
  }),
85
- /* @__PURE__ */ l(t, {
86
+ /* @__PURE__ */ u(n, {
86
87
  variant: "outline",
87
88
  className: "rounded-full",
88
- children: "Collapsed rail"
89
+ children: "Mobile drawer"
89
90
  })
90
91
  ]
91
92
  })]
92
93
  })
93
94
  }),
94
- i === "playground" ? /* @__PURE__ */ u("div", {
95
+ a === "playground" ? /* @__PURE__ */ d("div", {
95
96
  className: "flex flex-wrap gap-3",
96
- children: [/* @__PURE__ */ l(e, {
97
- size: "sm",
98
- variant: s ? "outline" : "default",
99
- onClick: () => c((e) => !e),
100
- children: s ? "Expand sidebar" : "Collapse sidebar"
101
- }), /* @__PURE__ */ l(e, {
102
- size: "sm",
103
- variant: "outline",
104
- onClick: () => o("reports"),
105
- children: "Jump to reports"
106
- })]
97
+ children: [
98
+ /* @__PURE__ */ u(t, {
99
+ size: "sm",
100
+ variant: c ? "outline" : "default",
101
+ onClick: () => l((e) => !e),
102
+ children: c ? "Expand sidebar" : "Collapse sidebar"
103
+ }),
104
+ /* @__PURE__ */ u(t, {
105
+ size: "sm",
106
+ variant: "outline",
107
+ onClick: () => s("reports"),
108
+ children: "Jump to reports"
109
+ }),
110
+ /* @__PURE__ */ u(t, {
111
+ size: "sm",
112
+ variant: v ? "default" : "outline",
113
+ onClick: () => h("mobile"),
114
+ children: "Mobile drawer"
115
+ }),
116
+ /* @__PURE__ */ u(t, {
117
+ size: "sm",
118
+ variant: v ? "outline" : "default",
119
+ onClick: () => h("desktop"),
120
+ children: "Desktop rail"
121
+ })
122
+ ]
107
123
  }) : null,
108
- /* @__PURE__ */ u("div", {
124
+ /* @__PURE__ */ d("div", {
109
125
  className: "grid gap-4 xl:grid-cols-[320px_minmax(0,1fr)]",
110
- children: [/* @__PURE__ */ l("section", {
111
- className: f,
112
- children: /* @__PURE__ */ l(n, {
113
- collapsed: s,
114
- items: p,
115
- header: /* @__PURE__ */ l("div", {
126
+ children: [/* @__PURE__ */ u("section", {
127
+ className: e(p, v && "mx-auto w-full max-w-[420px]"),
128
+ children: /* @__PURE__ */ u(r, {
129
+ collapsed: c,
130
+ items: g,
131
+ responsive: !0,
132
+ mobileBreakpoint: v ? 1e4 : 0,
133
+ mobileTitle: "Workspace navigation",
134
+ mobileDescription: "Open routes, check badges, and move between sections from one compact drawer.",
135
+ mobileToggleLabel: "Open workspace menu",
136
+ header: /* @__PURE__ */ u("div", {
116
137
  className: "px-3 py-2 text-sm font-semibold",
117
138
  children: "Azamat Workspace"
118
139
  }),
119
- footer: /* @__PURE__ */ l("div", {
140
+ footer: /* @__PURE__ */ u("div", {
120
141
  className: "aui-text-muted px-3 py-2 text-xs",
121
142
  children: "Starter plan • 3 editors"
122
143
  }),
123
144
  className: "min-h-[440px] rounded-[22px] border border-[color:var(--aui-surface-border)] bg-[color:var(--aui-surface)]"
124
145
  })
125
- }), /* @__PURE__ */ u("section", {
126
- className: f,
146
+ }), /* @__PURE__ */ d("section", {
147
+ className: p,
127
148
  children: [
128
- /* @__PURE__ */ l("p", {
149
+ /* @__PURE__ */ u("p", {
129
150
  className: "text-sm font-medium aui-text-muted",
130
151
  children: "Current route"
131
152
  }),
132
- /* @__PURE__ */ l("p", {
153
+ /* @__PURE__ */ u("p", {
133
154
  className: "mt-3 text-2xl font-semibold tracking-tight aui-text-strong",
134
- children: m?.label ?? "Overview"
155
+ children: _?.label ?? "Overview"
135
156
  }),
136
- /* @__PURE__ */ l("p", {
157
+ /* @__PURE__ */ u("p", {
137
158
  className: "mt-2 max-w-xl text-sm leading-6 aui-text-muted",
138
159
  children: "Start with the sidebar itself as a stable navigation contract. Only after this feels right should the app introduce a bigger shell, page header, or route-level statistics around it."
139
160
  }),
140
- /* @__PURE__ */ u("div", {
161
+ /* @__PURE__ */ d("div", {
141
162
  className: "mt-6 grid gap-3 sm:grid-cols-3",
142
163
  children: [
143
- /* @__PURE__ */ u("div", {
164
+ /* @__PURE__ */ d("div", {
144
165
  className: "rounded-[20px] border border-[color:var(--aui-divider)] bg-[color:var(--aui-page-bg-alt)] px-4 py-3",
145
- children: [/* @__PURE__ */ l("p", {
166
+ children: [/* @__PURE__ */ u("p", {
146
167
  className: "text-[11px] font-semibold uppercase tracking-[0.24em] aui-text-muted",
147
- children: "Mode"
148
- }), /* @__PURE__ */ l("p", {
168
+ children: "Shell"
169
+ }), /* @__PURE__ */ u("p", {
149
170
  className: "mt-2 text-lg font-semibold aui-text-strong",
150
- children: s ? "Collapsed" : "Expanded"
171
+ children: v ? "Mobile drawer" : c ? "Collapsed" : "Expanded"
151
172
  })]
152
173
  }),
153
- /* @__PURE__ */ u("div", {
174
+ /* @__PURE__ */ d("div", {
154
175
  className: "rounded-[20px] border border-[color:var(--aui-divider)] bg-[color:var(--aui-page-bg-alt)] px-4 py-3",
155
- children: [/* @__PURE__ */ l("p", {
176
+ children: [/* @__PURE__ */ u("p", {
156
177
  className: "text-[11px] font-semibold uppercase tracking-[0.24em] aui-text-muted",
157
178
  children: "Visible items"
158
- }), /* @__PURE__ */ l("p", {
179
+ }), /* @__PURE__ */ u("p", {
159
180
  className: "mt-2 text-lg font-semibold aui-text-strong",
160
- children: p.length
181
+ children: g.length
161
182
  })]
162
183
  }),
163
- /* @__PURE__ */ u("div", {
184
+ /* @__PURE__ */ d("div", {
164
185
  className: "rounded-[20px] border border-[color:var(--aui-divider)] bg-[color:var(--aui-page-bg-alt)] px-4 py-3",
165
- children: [/* @__PURE__ */ l("p", {
186
+ children: [/* @__PURE__ */ u("p", {
166
187
  className: "text-[11px] font-semibold uppercase tracking-[0.24em] aui-text-muted",
167
188
  children: "Disabled"
168
- }), /* @__PURE__ */ l("p", {
189
+ }), /* @__PURE__ */ u("p", {
169
190
  className: "mt-2 text-lg font-semibold aui-text-strong",
170
191
  children: "1 route"
171
192
  })]
@@ -179,4 +200,4 @@ function p({ mode: i }) {
179
200
  });
180
201
  }
181
202
  //#endregion
182
- export { p as AppSidebarShowcase };
203
+ export { m as AppSidebarShowcase };