@epicbagel/saas-kit 1.32.0 → 1.34.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (228) hide show
  1. package/README.md +67 -0
  2. package/THIRD_PARTY_NOTICES.md +6 -5
  3. package/dist/chunk-2BNEE3U6.cjs +36 -0
  4. package/dist/chunk-2DCJ2SFU.js +20 -0
  5. package/dist/chunk-5GFMSK27.js +489 -0
  6. package/dist/chunk-5PHOKJCT.cjs +42 -0
  7. package/dist/chunk-B54ZEKBG.cjs +63 -0
  8. package/dist/chunk-BB7PO2BW.js +67 -0
  9. package/dist/chunk-BOMVE7QO.cjs +47 -0
  10. package/dist/{chunk-FPOJ2NGG.js → chunk-C3VZMTVB.js} +1 -1
  11. package/dist/chunk-CXAFTEEP.cjs +20 -0
  12. package/dist/chunk-EXHF3QUY.js +36 -0
  13. package/dist/chunk-FYNHRHVY.cjs +47 -0
  14. package/dist/chunk-HTTRUJQU.cjs +60 -0
  15. package/dist/chunk-I3GBXIFL.cjs +67 -0
  16. package/dist/chunk-O3G3TVPU.js +27 -0
  17. package/dist/{chunk-JS6BLIWL.js → chunk-ROUWBWEQ.js} +7 -7
  18. package/dist/chunk-TDCVZKMX.cjs +27 -0
  19. package/dist/{chunk-E2UVQXBO.cjs → chunk-TP74SBRH.cjs} +6 -6
  20. package/dist/chunk-TUQVHPSI.js +60 -0
  21. package/dist/chunk-UKYUWSF2.cjs +489 -0
  22. package/dist/{chunk-MOJHETNO.cjs → chunk-VUMLLKWY.cjs} +5 -5
  23. package/dist/chunk-VWOWPNKT.js +73 -0
  24. package/dist/chunk-W5L6LQI3.js +42 -0
  25. package/dist/chunk-WMTCL463.js +47 -0
  26. package/dist/chunk-WTVL2FK7.js +47 -0
  27. package/dist/chunk-XH2I3YJ6.js +63 -0
  28. package/dist/chunk-Y6X6XDHE.cjs +73 -0
  29. package/dist/primitives/accent-theme.cjs +7 -0
  30. package/dist/primitives/accent-theme.d.cts +32 -0
  31. package/dist/primitives/accent-theme.d.ts +32 -0
  32. package/dist/primitives/accent-theme.js +7 -0
  33. package/dist/primitives/activity-feed.cjs +3 -3
  34. package/dist/primitives/activity-feed.js +4 -4
  35. package/dist/primitives/anchor.cjs +3 -30
  36. package/dist/primitives/anchor.js +3 -30
  37. package/dist/primitives/app-layout.cjs +114 -0
  38. package/dist/primitives/app-layout.d.cts +47 -0
  39. package/dist/primitives/app-layout.d.ts +47 -0
  40. package/dist/primitives/app-layout.js +114 -0
  41. package/dist/primitives/app-sidebar.cjs +52 -0
  42. package/dist/primitives/app-sidebar.d.cts +105 -0
  43. package/dist/primitives/app-sidebar.d.ts +105 -0
  44. package/dist/primitives/app-sidebar.js +52 -0
  45. package/dist/primitives/back-bar.cjs +37 -0
  46. package/dist/primitives/back-bar.d.cts +31 -0
  47. package/dist/primitives/back-bar.d.ts +31 -0
  48. package/dist/primitives/back-bar.js +37 -0
  49. package/dist/primitives/batch-action-bar.cjs +134 -0
  50. package/dist/primitives/batch-action-bar.d.cts +27 -0
  51. package/dist/primitives/batch-action-bar.d.ts +27 -0
  52. package/dist/primitives/batch-action-bar.js +134 -0
  53. package/dist/primitives/board-view.cjs +7 -7
  54. package/dist/primitives/board-view.js +6 -6
  55. package/dist/primitives/brand-mark.cjs +8 -0
  56. package/dist/primitives/brand-mark.d.cts +10 -0
  57. package/dist/primitives/brand-mark.d.ts +10 -0
  58. package/dist/primitives/brand-mark.js +8 -0
  59. package/dist/primitives/branded-page.cjs +201 -0
  60. package/dist/primitives/branded-page.d.cts +118 -0
  61. package/dist/primitives/branded-page.d.ts +118 -0
  62. package/dist/primitives/branded-page.js +201 -0
  63. package/dist/primitives/call-card.cjs +2 -2
  64. package/dist/primitives/call-card.js +3 -3
  65. package/dist/primitives/chat.cjs +21 -21
  66. package/dist/primitives/chat.js +17 -17
  67. package/dist/primitives/command.cjs +129 -0
  68. package/dist/primitives/command.d.cts +60 -0
  69. package/dist/primitives/command.d.ts +60 -0
  70. package/dist/primitives/command.js +129 -0
  71. package/dist/primitives/compact-list.cjs +24 -0
  72. package/dist/primitives/compact-list.d.cts +18 -0
  73. package/dist/primitives/compact-list.d.ts +18 -0
  74. package/dist/primitives/compact-list.js +24 -0
  75. package/dist/primitives/connection.cjs +2 -2
  76. package/dist/primitives/connection.js +2 -2
  77. package/dist/primitives/context-bar.cjs +57 -0
  78. package/dist/primitives/context-bar.d.cts +50 -0
  79. package/dist/primitives/context-bar.d.ts +50 -0
  80. package/dist/primitives/context-bar.js +57 -0
  81. package/dist/primitives/cycling-prompt.cjs +102 -0
  82. package/dist/primitives/cycling-prompt.d.cts +24 -0
  83. package/dist/primitives/cycling-prompt.d.ts +24 -0
  84. package/dist/primitives/cycling-prompt.js +102 -0
  85. package/dist/primitives/dialog.d.cts +9 -9
  86. package/dist/primitives/dialog.d.ts +9 -9
  87. package/dist/primitives/document-preview.cjs +5 -5
  88. package/dist/primitives/document-preview.js +3 -3
  89. package/dist/primitives/dotted-list.cjs +41 -0
  90. package/dist/primitives/dotted-list.d.cts +28 -0
  91. package/dist/primitives/dotted-list.d.ts +28 -0
  92. package/dist/primitives/dotted-list.js +41 -0
  93. package/dist/primitives/drawer.d.cts +6 -6
  94. package/dist/primitives/drawer.d.ts +6 -6
  95. package/dist/primitives/field.cjs +3 -3
  96. package/dist/primitives/field.js +2 -2
  97. package/dist/primitives/file-dropzone.cjs +3 -3
  98. package/dist/primitives/file-dropzone.js +2 -2
  99. package/dist/primitives/file-preview-internals.cjs +4 -4
  100. package/dist/primitives/file-preview-internals.js +3 -3
  101. package/dist/primitives/file-preview.cjs +12 -12
  102. package/dist/primitives/file-preview.js +3 -3
  103. package/dist/primitives/filter-bar.cjs +4 -4
  104. package/dist/primitives/filter-bar.js +3 -3
  105. package/dist/primitives/fixed-action-bar.cjs +9 -0
  106. package/dist/primitives/fixed-action-bar.d.cts +15 -0
  107. package/dist/primitives/fixed-action-bar.d.ts +15 -0
  108. package/dist/primitives/fixed-action-bar.js +9 -0
  109. package/dist/primitives/floating-action-button.cjs +65 -0
  110. package/dist/primitives/floating-action-button.d.cts +52 -0
  111. package/dist/primitives/floating-action-button.d.ts +52 -0
  112. package/dist/primitives/floating-action-button.js +65 -0
  113. package/dist/primitives/form-section.cjs +38 -0
  114. package/dist/primitives/form-section.d.cts +43 -0
  115. package/dist/primitives/form-section.d.ts +43 -0
  116. package/dist/primitives/form-section.js +38 -0
  117. package/dist/primitives/key-value-grid.cjs +52 -0
  118. package/dist/primitives/key-value-grid.d.cts +20 -0
  119. package/dist/primitives/key-value-grid.d.ts +20 -0
  120. package/dist/primitives/key-value-grid.js +52 -0
  121. package/dist/primitives/marketing-footer.cjs +34 -0
  122. package/dist/primitives/marketing-footer.d.cts +29 -0
  123. package/dist/primitives/marketing-footer.d.ts +29 -0
  124. package/dist/primitives/marketing-footer.js +34 -0
  125. package/dist/primitives/marketing-header.cjs +8 -0
  126. package/dist/primitives/marketing-header.d.cts +31 -0
  127. package/dist/primitives/marketing-header.d.ts +31 -0
  128. package/dist/primitives/marketing-header.js +8 -0
  129. package/dist/primitives/marketing-section.cjs +8 -0
  130. package/dist/primitives/marketing-section.d.cts +35 -0
  131. package/dist/primitives/marketing-section.d.ts +35 -0
  132. package/dist/primitives/marketing-section.js +8 -0
  133. package/dist/primitives/marketing-shell.cjs +28 -0
  134. package/dist/primitives/marketing-shell.d.cts +14 -0
  135. package/dist/primitives/marketing-shell.d.ts +14 -0
  136. package/dist/primitives/marketing-shell.js +28 -0
  137. package/dist/primitives/notes.cjs +3 -3
  138. package/dist/primitives/notes.js +3 -3
  139. package/dist/primitives/page-header.cjs +3 -67
  140. package/dist/primitives/page-header.js +3 -67
  141. package/dist/primitives/page-shell.cjs +3 -41
  142. package/dist/primitives/page-shell.js +3 -41
  143. package/dist/primitives/page-tabs.cjs +4 -57
  144. package/dist/primitives/page-tabs.js +4 -57
  145. package/dist/primitives/pager.cjs +85 -0
  146. package/dist/primitives/pager.d.cts +39 -0
  147. package/dist/primitives/pager.d.ts +39 -0
  148. package/dist/primitives/pager.js +85 -0
  149. package/dist/primitives/pagination.cjs +119 -0
  150. package/dist/primitives/pagination.d.cts +41 -0
  151. package/dist/primitives/pagination.d.ts +41 -0
  152. package/dist/primitives/pagination.js +119 -0
  153. package/dist/primitives/poster.cjs +11 -1
  154. package/dist/primitives/poster.d.cts +12 -1
  155. package/dist/primitives/poster.d.ts +12 -1
  156. package/dist/primitives/poster.js +10 -0
  157. package/dist/primitives/resource-list.cjs +7 -7
  158. package/dist/primitives/resource-list.js +6 -6
  159. package/dist/primitives/responsive-dialog.cjs +3 -3
  160. package/dist/primitives/responsive-dialog.js +2 -2
  161. package/dist/primitives/responsive-embed.cjs +29 -0
  162. package/dist/primitives/responsive-embed.d.cts +14 -0
  163. package/dist/primitives/responsive-embed.d.ts +14 -0
  164. package/dist/primitives/responsive-embed.js +29 -0
  165. package/dist/primitives/save-bar.cjs +91 -0
  166. package/dist/primitives/save-bar.d.cts +55 -0
  167. package/dist/primitives/save-bar.d.ts +55 -0
  168. package/dist/primitives/save-bar.js +91 -0
  169. package/dist/primitives/section.cjs +2 -2
  170. package/dist/primitives/section.js +3 -3
  171. package/dist/primitives/settings-list.cjs +10 -0
  172. package/dist/primitives/settings-list.d.cts +31 -0
  173. package/dist/primitives/settings-list.d.ts +31 -0
  174. package/dist/primitives/settings-list.js +10 -0
  175. package/dist/primitives/settings-section.cjs +34 -0
  176. package/dist/primitives/settings-section.d.cts +44 -0
  177. package/dist/primitives/settings-section.d.ts +44 -0
  178. package/dist/primitives/settings-section.js +34 -0
  179. package/dist/primitives/sheet.d.cts +9 -9
  180. package/dist/primitives/sheet.d.ts +9 -9
  181. package/dist/primitives/short-video.cjs +110 -0
  182. package/dist/primitives/short-video.d.cts +30 -0
  183. package/dist/primitives/short-video.d.ts +30 -0
  184. package/dist/primitives/short-video.js +110 -0
  185. package/dist/primitives/stats-card.cjs +46 -0
  186. package/dist/primitives/stats-card.d.cts +19 -0
  187. package/dist/primitives/stats-card.d.ts +19 -0
  188. package/dist/primitives/stats-card.js +46 -0
  189. package/dist/primitives/stats-strip.cjs +38 -0
  190. package/dist/primitives/stats-strip.d.cts +24 -0
  191. package/dist/primitives/stats-strip.d.ts +24 -0
  192. package/dist/primitives/stats-strip.js +38 -0
  193. package/dist/primitives/step-list.cjs +32 -0
  194. package/dist/primitives/step-list.d.cts +19 -0
  195. package/dist/primitives/step-list.d.ts +19 -0
  196. package/dist/primitives/step-list.js +32 -0
  197. package/dist/primitives/steps.cjs +77 -0
  198. package/dist/primitives/steps.d.cts +35 -0
  199. package/dist/primitives/steps.d.ts +35 -0
  200. package/dist/primitives/steps.js +77 -0
  201. package/dist/primitives/switch-field.cjs +3 -3
  202. package/dist/primitives/switch-field.js +3 -3
  203. package/dist/primitives/tabbed-page-header.cjs +53 -0
  204. package/dist/primitives/tabbed-page-header.d.cts +26 -0
  205. package/dist/primitives/tabbed-page-header.d.ts +26 -0
  206. package/dist/primitives/tabbed-page-header.js +53 -0
  207. package/dist/primitives/theme-selector.cjs +15 -15
  208. package/dist/primitives/theme-selector.js +2 -2
  209. package/dist/primitives/voice-dictation-button.cjs +3 -3
  210. package/dist/primitives/voice-dictation-button.js +2 -2
  211. package/dist/primitives/voice-session-controls.cjs +3 -3
  212. package/dist/primitives/voice-session-controls.js +2 -2
  213. package/dist/primitives/workflow-assistant.cjs +4 -4
  214. package/dist/primitives/workflow-assistant.js +2 -2
  215. package/package.json +322 -1
  216. package/src/styles/components/poster.css +42 -1
  217. package/dist/{chunk-PH2TV7XI.cjs → chunk-2YW5VA2V.cjs} +2 -2
  218. package/dist/{chunk-UFFHGKI7.js → chunk-6LB37JWO.js} +8 -8
  219. package/dist/{chunk-AO56ET4F.cjs → chunk-BTHYGHOH.cjs} +2 -2
  220. package/dist/{chunk-WHDHUYS6.js → chunk-HBRVOGLA.js} +3 -3
  221. package/dist/{chunk-6O3DUMF7.js → chunk-HTUYUMAH.js} +3 -3
  222. package/dist/{chunk-PNI354BY.cjs → chunk-JMNDFISN.cjs} +2 -2
  223. package/dist/{chunk-CRZ4INEJ.js → chunk-JTI4244T.js} +10 -10
  224. package/dist/{chunk-ZGTPNSR7.js → chunk-NNEV5RHQ.js} +3 -3
  225. package/dist/{chunk-TWCJMFST.js → chunk-O42YC6ZQ.js} +3 -3
  226. package/dist/{chunk-MW67PHAQ.cjs → chunk-S2IMM37Q.cjs} +6 -6
  227. package/dist/{chunk-ZJFYOXSM.cjs → chunk-SRVRNHCX.cjs} +2 -2
  228. package/dist/{chunk-ZLEM2SAU.cjs → chunk-Z3JJSNR5.cjs} +2 -2
@@ -0,0 +1,114 @@
1
+ "use client";
2
+ import {
3
+ SidebarInset,
4
+ SidebarProvider,
5
+ SidebarTrigger
6
+ } from "../chunk-5GFMSK27.js";
7
+ import "../chunk-HYTILYE5.js";
8
+ import "../chunk-G76JANB4.js";
9
+ import "../chunk-ZRLUUZHK.js";
10
+ import "../chunk-H7TETFLB.js";
11
+ import "../chunk-D4ZL2OEQ.js";
12
+ import "../chunk-W326GKML.js";
13
+ import {
14
+ cn
15
+ } from "../chunk-G6SRSWXB.js";
16
+ import "../chunk-PIU5SSUV.js";
17
+
18
+ // src/primitives/app-layout.tsx
19
+ import { jsx, jsxs } from "react/jsx-runtime";
20
+ function AppLayout({
21
+ sidebar,
22
+ breadcrumbs,
23
+ mobileBrand,
24
+ children,
25
+ headerActions,
26
+ headerContent,
27
+ className,
28
+ headerClassName,
29
+ frostedHeader = false,
30
+ contentClassName,
31
+ sidebarStorageKey,
32
+ sidebarWidth = "default",
33
+ chromeSurface = "background",
34
+ contentWidth = "contained",
35
+ viewport = "document"
36
+ }) {
37
+ const fixedViewport = viewport === "fixed";
38
+ return /* @__PURE__ */ jsxs(
39
+ SidebarProvider,
40
+ {
41
+ storageKey: sidebarStorageKey,
42
+ width: sidebarWidth,
43
+ surface: chromeSurface,
44
+ className: cn(fixedViewport && "h-svh min-h-0 overflow-hidden", className),
45
+ children: [
46
+ sidebar,
47
+ /* @__PURE__ */ jsxs(
48
+ SidebarInset,
49
+ {
50
+ className: cn(
51
+ "bg-muted/40",
52
+ fixedViewport && "h-svh min-h-0 overflow-hidden"
53
+ ),
54
+ children: [
55
+ /* @__PURE__ */ jsxs(
56
+ "header",
57
+ {
58
+ "data-slot": "app-layout-header",
59
+ "data-surface": chromeSurface,
60
+ "data-frosted-surface": frostedHeader ? chromeSurface : void 0,
61
+ className: cn(
62
+ "sticky top-0 z-30 flex min-h-16 shrink-0 items-center gap-2 border-b border-border px-3 md:px-4",
63
+ !frostedHeader && "backdrop-blur-sm",
64
+ !frostedHeader && (chromeSurface === "card" ? "bg-card supports-[backdrop-filter]:bg-card" : "bg-background/85 supports-[backdrop-filter]:bg-background/75"),
65
+ headerClassName
66
+ ),
67
+ children: [
68
+ /* @__PURE__ */ jsx(SidebarTrigger, { visibility: "mobile" }),
69
+ (mobileBrand || breadcrumbs || headerActions) && /* @__PURE__ */ jsxs(
70
+ "div",
71
+ {
72
+ "data-slot": "app-layout-header-primary",
73
+ className: "flex min-w-0 flex-1 items-center gap-6",
74
+ children: [
75
+ mobileBrand && /* @__PURE__ */ jsx("div", { className: "flex min-w-0 flex-1 items-center md:hidden", children: mobileBrand }),
76
+ breadcrumbs && /* @__PURE__ */ jsx("div", { className: "hidden min-w-0 flex-1 items-center md:flex", children: breadcrumbs }),
77
+ headerActions && /* @__PURE__ */ jsx(
78
+ "div",
79
+ {
80
+ "data-slot": "app-layout-header-actions",
81
+ className: "flex shrink-0 items-center gap-3",
82
+ children: headerActions
83
+ }
84
+ )
85
+ ]
86
+ }
87
+ ),
88
+ headerContent && /* @__PURE__ */ jsx("div", { "data-slot": "app-layout-header-content", className: "ml-auto flex shrink-0 items-center", children: headerContent })
89
+ ]
90
+ }
91
+ ),
92
+ /* @__PURE__ */ jsx(
93
+ "div",
94
+ {
95
+ "data-slot": "app-layout-content",
96
+ className: cn(
97
+ "mx-auto flex w-full flex-1 flex-col bg-background",
98
+ contentWidth === "contained" ? "max-w-6xl border-x border-border" : "max-w-none",
99
+ fixedViewport && "min-h-0 overflow-hidden",
100
+ contentClassName
101
+ ),
102
+ children
103
+ }
104
+ )
105
+ ]
106
+ }
107
+ )
108
+ ]
109
+ }
110
+ );
111
+ }
112
+ export {
113
+ AppLayout
114
+ };
@@ -0,0 +1,52 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});"use client";
2
+ "use client";
3
+
4
+
5
+
6
+
7
+
8
+
9
+
10
+
11
+
12
+
13
+
14
+
15
+
16
+
17
+
18
+
19
+
20
+
21
+
22
+
23
+ var _chunkUKYUWSF2cjs = require('../chunk-UKYUWSF2.cjs');
24
+ require('../chunk-NQK5ZWC7.cjs');
25
+ require('../chunk-PPX2VPGI.cjs');
26
+ require('../chunk-U2NES7VR.cjs');
27
+ require('../chunk-VGTINL5Q.cjs');
28
+ require('../chunk-I6GUOEBO.cjs');
29
+ require('../chunk-JDEXZGIY.cjs');
30
+ require('../chunk-KWLSBTB2.cjs');
31
+ require('../chunk-R35FT53G.cjs');
32
+
33
+
34
+
35
+
36
+
37
+
38
+
39
+
40
+
41
+
42
+
43
+
44
+
45
+
46
+
47
+
48
+
49
+
50
+
51
+
52
+ exports.Sidebar = _chunkUKYUWSF2cjs.Sidebar; exports.SidebarBrand = _chunkUKYUWSF2cjs.SidebarBrand; exports.SidebarContent = _chunkUKYUWSF2cjs.SidebarContent; exports.SidebarFooter = _chunkUKYUWSF2cjs.SidebarFooter; exports.SidebarFooterActions = _chunkUKYUWSF2cjs.SidebarFooterActions; exports.SidebarGroup = _chunkUKYUWSF2cjs.SidebarGroup; exports.SidebarGroupContent = _chunkUKYUWSF2cjs.SidebarGroupContent; exports.SidebarGroupLabel = _chunkUKYUWSF2cjs.SidebarGroupLabel; exports.SidebarHeader = _chunkUKYUWSF2cjs.SidebarHeader; exports.SidebarInset = _chunkUKYUWSF2cjs.SidebarInset; exports.SidebarMenu = _chunkUKYUWSF2cjs.SidebarMenu; exports.SidebarMenuBadge = _chunkUKYUWSF2cjs.SidebarMenuBadge; exports.SidebarMenuButton = _chunkUKYUWSF2cjs.SidebarMenuButton; exports.SidebarMenuItem = _chunkUKYUWSF2cjs.SidebarMenuItem; exports.SidebarProvider = _chunkUKYUWSF2cjs.SidebarProvider; exports.SidebarRail = _chunkUKYUWSF2cjs.SidebarRail; exports.SidebarSeparator = _chunkUKYUWSF2cjs.SidebarSeparator; exports.SidebarTrigger = _chunkUKYUWSF2cjs.SidebarTrigger; exports.useSidebar = _chunkUKYUWSF2cjs.useSidebar;
@@ -0,0 +1,105 @@
1
+ import * as react_jsx_runtime from 'react/jsx-runtime';
2
+ import * as React from 'react';
3
+ import { Button } from './button.cjs';
4
+ import { CountBadgeProps } from './count-badge.cjs';
5
+ import { Separator } from './separator.cjs';
6
+ import { SheetContent } from './sheet.cjs';
7
+ import 'class-variance-authority/types';
8
+ import 'class-variance-authority';
9
+ import './badge.cjs';
10
+ import '@radix-ui/react-separator';
11
+ import '@radix-ui/react-dialog';
12
+
13
+ declare const SIDEBAR_WIDTHS: {
14
+ readonly default: "16rem";
15
+ readonly wide: "20rem";
16
+ };
17
+ type SidebarSurface = "background" | "card";
18
+ type SidebarContextValue = {
19
+ state: "expanded" | "collapsed";
20
+ open: boolean;
21
+ setOpen: (open: boolean) => void;
22
+ openMobile: boolean;
23
+ setOpenMobile: (open: boolean) => void;
24
+ isMobile: boolean;
25
+ surface: SidebarSurface;
26
+ toggleSidebar: () => void;
27
+ };
28
+ declare function useSidebar(): SidebarContextValue;
29
+ interface SidebarProviderProps extends React.ComponentPropsWithoutRef<"div"> {
30
+ defaultOpen?: boolean;
31
+ open?: boolean;
32
+ onOpenChange?: (open: boolean) => void;
33
+ /** Optional local-storage key used to remember the desktop collapsed state. */
34
+ storageKey?: string;
35
+ /** Desktop sidebar width. `wide` is intended for conversation history and other text-heavy navigation. */
36
+ width?: keyof typeof SIDEBAR_WIDTHS;
37
+ /** Semantic surface shared by the desktop rail and mobile navigation sheet. */
38
+ surface?: SidebarSurface;
39
+ }
40
+ declare const SidebarProvider: React.ForwardRefExoticComponent<SidebarProviderProps & React.RefAttributes<HTMLDivElement>>;
41
+ interface SidebarProps extends React.ComponentPropsWithoutRef<"aside"> {
42
+ side?: "left" | "right";
43
+ collapsible?: "offcanvas" | "icon" | "none";
44
+ mobileLabel?: string;
45
+ /** Lets the host handle Escape in the mobile sheet before it closes. */
46
+ onEscapeKeyDown?: React.ComponentPropsWithoutRef<typeof SheetContent>["onEscapeKeyDown"];
47
+ }
48
+ declare const Sidebar: React.ForwardRefExoticComponent<SidebarProps & React.RefAttributes<HTMLElement>>;
49
+ interface SidebarInsetProps extends React.ComponentPropsWithoutRef<"main"> {
50
+ }
51
+ declare const SidebarInset: React.ForwardRefExoticComponent<SidebarInsetProps & React.RefAttributes<HTMLElement>>;
52
+ interface SidebarTriggerProps extends React.ComponentPropsWithoutRef<typeof Button> {
53
+ visibility?: "always" | "mobile" | "desktop";
54
+ }
55
+ declare const SidebarTrigger: React.ForwardRefExoticComponent<SidebarTriggerProps & React.RefAttributes<HTMLButtonElement>>;
56
+ interface SidebarRailProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {
57
+ }
58
+ declare const SidebarRail: React.ForwardRefExoticComponent<SidebarRailProps & React.RefAttributes<HTMLButtonElement>>;
59
+ type SidebarSectionProps = React.ComponentPropsWithoutRef<"div">;
60
+ interface SidebarGroupProps extends SidebarSectionProps {
61
+ /** Adds the standard boundary used between distinct navigation groups. */
62
+ separated?: boolean;
63
+ /** Compact groups keep an explicit 12px inset in every theme. */
64
+ padding?: "default" | "compact";
65
+ }
66
+ interface SidebarHeaderProps extends SidebarSectionProps {
67
+ border?: "none" | "bottom";
68
+ minHeight?: "none" | "header";
69
+ padding?: "default" | "wide";
70
+ justify?: "start" | "center";
71
+ }
72
+ declare function SidebarHeader({ border, minHeight, padding, justify, className, ...props }: SidebarHeaderProps): react_jsx_runtime.JSX.Element;
73
+ interface SidebarBrandProps extends SidebarSectionProps {
74
+ expanded: React.ReactNode;
75
+ collapsed: React.ReactNode;
76
+ }
77
+ /** Switches between full and compact brand treatments as the desktop rail collapses. */
78
+ declare function SidebarBrand({ expanded, collapsed, className, ...props }: SidebarBrandProps): react_jsx_runtime.JSX.Element;
79
+ declare function SidebarFooter({ className, ...props }: SidebarSectionProps): react_jsx_runtime.JSX.Element;
80
+ /**
81
+ * Keeps persistent footer navigation and the desktop collapse control aligned
82
+ * on one row, then stacks them when the sidebar is reduced to its icon rail.
83
+ */
84
+ declare function SidebarFooterActions({ className, ...props }: SidebarSectionProps): react_jsx_runtime.JSX.Element;
85
+ declare function SidebarContent({ className, ...props }: SidebarSectionProps): react_jsx_runtime.JSX.Element;
86
+ declare function SidebarGroup({ separated, padding, className, ...props }: SidebarGroupProps): react_jsx_runtime.JSX.Element;
87
+ declare function SidebarGroupLabel({ className, ...props }: SidebarSectionProps): react_jsx_runtime.JSX.Element;
88
+ declare function SidebarGroupContent({ className, ...props }: SidebarSectionProps): react_jsx_runtime.JSX.Element;
89
+ declare function SidebarSeparator({ className, ...props }: React.ComponentPropsWithoutRef<typeof Separator>): react_jsx_runtime.JSX.Element;
90
+ declare function SidebarMenu({ className, ...props }: React.ComponentPropsWithoutRef<"ul">): react_jsx_runtime.JSX.Element;
91
+ declare function SidebarMenuItem({ className, ...props }: React.ComponentPropsWithoutRef<"li">): react_jsx_runtime.JSX.Element;
92
+ interface SidebarMenuButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {
93
+ asChild?: boolean;
94
+ isActive?: boolean;
95
+ tooltip?: React.ReactNode;
96
+ }
97
+ declare const SidebarMenuButton: React.ForwardRefExoticComponent<SidebarMenuButtonProps & React.RefAttributes<HTMLButtonElement>>;
98
+ interface SidebarMenuBadgeProps extends Omit<CountBadgeProps, "value"> {
99
+ children: CountBadgeProps["value"];
100
+ /** `inline` participates in the menu row layout; `overlay` preserves the trailing notification position. */
101
+ placement?: "inline" | "overlay";
102
+ }
103
+ declare function SidebarMenuBadge({ children, className, placement, ...props }: SidebarMenuBadgeProps): react_jsx_runtime.JSX.Element;
104
+
105
+ export { Sidebar, SidebarBrand, type SidebarBrandProps, SidebarContent, SidebarFooter, SidebarFooterActions, SidebarGroup, SidebarGroupContent, SidebarGroupLabel, type SidebarGroupProps, SidebarHeader, type SidebarHeaderProps, SidebarInset, type SidebarInsetProps, SidebarMenu, SidebarMenuBadge, type SidebarMenuBadgeProps, SidebarMenuButton, type SidebarMenuButtonProps, SidebarMenuItem, type SidebarProps, SidebarProvider, type SidebarProviderProps, SidebarRail, type SidebarRailProps, SidebarSeparator, type SidebarSurface, SidebarTrigger, type SidebarTriggerProps, useSidebar };
@@ -0,0 +1,105 @@
1
+ import * as react_jsx_runtime from 'react/jsx-runtime';
2
+ import * as React from 'react';
3
+ import { Button } from './button.js';
4
+ import { CountBadgeProps } from './count-badge.js';
5
+ import { Separator } from './separator.js';
6
+ import { SheetContent } from './sheet.js';
7
+ import 'class-variance-authority/types';
8
+ import 'class-variance-authority';
9
+ import './badge.js';
10
+ import '@radix-ui/react-separator';
11
+ import '@radix-ui/react-dialog';
12
+
13
+ declare const SIDEBAR_WIDTHS: {
14
+ readonly default: "16rem";
15
+ readonly wide: "20rem";
16
+ };
17
+ type SidebarSurface = "background" | "card";
18
+ type SidebarContextValue = {
19
+ state: "expanded" | "collapsed";
20
+ open: boolean;
21
+ setOpen: (open: boolean) => void;
22
+ openMobile: boolean;
23
+ setOpenMobile: (open: boolean) => void;
24
+ isMobile: boolean;
25
+ surface: SidebarSurface;
26
+ toggleSidebar: () => void;
27
+ };
28
+ declare function useSidebar(): SidebarContextValue;
29
+ interface SidebarProviderProps extends React.ComponentPropsWithoutRef<"div"> {
30
+ defaultOpen?: boolean;
31
+ open?: boolean;
32
+ onOpenChange?: (open: boolean) => void;
33
+ /** Optional local-storage key used to remember the desktop collapsed state. */
34
+ storageKey?: string;
35
+ /** Desktop sidebar width. `wide` is intended for conversation history and other text-heavy navigation. */
36
+ width?: keyof typeof SIDEBAR_WIDTHS;
37
+ /** Semantic surface shared by the desktop rail and mobile navigation sheet. */
38
+ surface?: SidebarSurface;
39
+ }
40
+ declare const SidebarProvider: React.ForwardRefExoticComponent<SidebarProviderProps & React.RefAttributes<HTMLDivElement>>;
41
+ interface SidebarProps extends React.ComponentPropsWithoutRef<"aside"> {
42
+ side?: "left" | "right";
43
+ collapsible?: "offcanvas" | "icon" | "none";
44
+ mobileLabel?: string;
45
+ /** Lets the host handle Escape in the mobile sheet before it closes. */
46
+ onEscapeKeyDown?: React.ComponentPropsWithoutRef<typeof SheetContent>["onEscapeKeyDown"];
47
+ }
48
+ declare const Sidebar: React.ForwardRefExoticComponent<SidebarProps & React.RefAttributes<HTMLElement>>;
49
+ interface SidebarInsetProps extends React.ComponentPropsWithoutRef<"main"> {
50
+ }
51
+ declare const SidebarInset: React.ForwardRefExoticComponent<SidebarInsetProps & React.RefAttributes<HTMLElement>>;
52
+ interface SidebarTriggerProps extends React.ComponentPropsWithoutRef<typeof Button> {
53
+ visibility?: "always" | "mobile" | "desktop";
54
+ }
55
+ declare const SidebarTrigger: React.ForwardRefExoticComponent<SidebarTriggerProps & React.RefAttributes<HTMLButtonElement>>;
56
+ interface SidebarRailProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {
57
+ }
58
+ declare const SidebarRail: React.ForwardRefExoticComponent<SidebarRailProps & React.RefAttributes<HTMLButtonElement>>;
59
+ type SidebarSectionProps = React.ComponentPropsWithoutRef<"div">;
60
+ interface SidebarGroupProps extends SidebarSectionProps {
61
+ /** Adds the standard boundary used between distinct navigation groups. */
62
+ separated?: boolean;
63
+ /** Compact groups keep an explicit 12px inset in every theme. */
64
+ padding?: "default" | "compact";
65
+ }
66
+ interface SidebarHeaderProps extends SidebarSectionProps {
67
+ border?: "none" | "bottom";
68
+ minHeight?: "none" | "header";
69
+ padding?: "default" | "wide";
70
+ justify?: "start" | "center";
71
+ }
72
+ declare function SidebarHeader({ border, minHeight, padding, justify, className, ...props }: SidebarHeaderProps): react_jsx_runtime.JSX.Element;
73
+ interface SidebarBrandProps extends SidebarSectionProps {
74
+ expanded: React.ReactNode;
75
+ collapsed: React.ReactNode;
76
+ }
77
+ /** Switches between full and compact brand treatments as the desktop rail collapses. */
78
+ declare function SidebarBrand({ expanded, collapsed, className, ...props }: SidebarBrandProps): react_jsx_runtime.JSX.Element;
79
+ declare function SidebarFooter({ className, ...props }: SidebarSectionProps): react_jsx_runtime.JSX.Element;
80
+ /**
81
+ * Keeps persistent footer navigation and the desktop collapse control aligned
82
+ * on one row, then stacks them when the sidebar is reduced to its icon rail.
83
+ */
84
+ declare function SidebarFooterActions({ className, ...props }: SidebarSectionProps): react_jsx_runtime.JSX.Element;
85
+ declare function SidebarContent({ className, ...props }: SidebarSectionProps): react_jsx_runtime.JSX.Element;
86
+ declare function SidebarGroup({ separated, padding, className, ...props }: SidebarGroupProps): react_jsx_runtime.JSX.Element;
87
+ declare function SidebarGroupLabel({ className, ...props }: SidebarSectionProps): react_jsx_runtime.JSX.Element;
88
+ declare function SidebarGroupContent({ className, ...props }: SidebarSectionProps): react_jsx_runtime.JSX.Element;
89
+ declare function SidebarSeparator({ className, ...props }: React.ComponentPropsWithoutRef<typeof Separator>): react_jsx_runtime.JSX.Element;
90
+ declare function SidebarMenu({ className, ...props }: React.ComponentPropsWithoutRef<"ul">): react_jsx_runtime.JSX.Element;
91
+ declare function SidebarMenuItem({ className, ...props }: React.ComponentPropsWithoutRef<"li">): react_jsx_runtime.JSX.Element;
92
+ interface SidebarMenuButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {
93
+ asChild?: boolean;
94
+ isActive?: boolean;
95
+ tooltip?: React.ReactNode;
96
+ }
97
+ declare const SidebarMenuButton: React.ForwardRefExoticComponent<SidebarMenuButtonProps & React.RefAttributes<HTMLButtonElement>>;
98
+ interface SidebarMenuBadgeProps extends Omit<CountBadgeProps, "value"> {
99
+ children: CountBadgeProps["value"];
100
+ /** `inline` participates in the menu row layout; `overlay` preserves the trailing notification position. */
101
+ placement?: "inline" | "overlay";
102
+ }
103
+ declare function SidebarMenuBadge({ children, className, placement, ...props }: SidebarMenuBadgeProps): react_jsx_runtime.JSX.Element;
104
+
105
+ export { Sidebar, SidebarBrand, type SidebarBrandProps, SidebarContent, SidebarFooter, SidebarFooterActions, SidebarGroup, SidebarGroupContent, SidebarGroupLabel, type SidebarGroupProps, SidebarHeader, type SidebarHeaderProps, SidebarInset, type SidebarInsetProps, SidebarMenu, SidebarMenuBadge, type SidebarMenuBadgeProps, SidebarMenuButton, type SidebarMenuButtonProps, SidebarMenuItem, type SidebarProps, SidebarProvider, type SidebarProviderProps, SidebarRail, type SidebarRailProps, SidebarSeparator, type SidebarSurface, SidebarTrigger, type SidebarTriggerProps, useSidebar };
@@ -0,0 +1,52 @@
1
+ "use client";
2
+ "use client";
3
+ import {
4
+ Sidebar,
5
+ SidebarBrand,
6
+ SidebarContent,
7
+ SidebarFooter,
8
+ SidebarFooterActions,
9
+ SidebarGroup,
10
+ SidebarGroupContent,
11
+ SidebarGroupLabel,
12
+ SidebarHeader,
13
+ SidebarInset,
14
+ SidebarMenu,
15
+ SidebarMenuBadge,
16
+ SidebarMenuButton,
17
+ SidebarMenuItem,
18
+ SidebarProvider,
19
+ SidebarRail,
20
+ SidebarSeparator,
21
+ SidebarTrigger,
22
+ useSidebar
23
+ } from "../chunk-5GFMSK27.js";
24
+ import "../chunk-HYTILYE5.js";
25
+ import "../chunk-G76JANB4.js";
26
+ import "../chunk-ZRLUUZHK.js";
27
+ import "../chunk-H7TETFLB.js";
28
+ import "../chunk-D4ZL2OEQ.js";
29
+ import "../chunk-W326GKML.js";
30
+ import "../chunk-G6SRSWXB.js";
31
+ import "../chunk-PIU5SSUV.js";
32
+ export {
33
+ Sidebar,
34
+ SidebarBrand,
35
+ SidebarContent,
36
+ SidebarFooter,
37
+ SidebarFooterActions,
38
+ SidebarGroup,
39
+ SidebarGroupContent,
40
+ SidebarGroupLabel,
41
+ SidebarHeader,
42
+ SidebarInset,
43
+ SidebarMenu,
44
+ SidebarMenuBadge,
45
+ SidebarMenuButton,
46
+ SidebarMenuItem,
47
+ SidebarProvider,
48
+ SidebarRail,
49
+ SidebarSeparator,
50
+ SidebarTrigger,
51
+ useSidebar
52
+ };
@@ -0,0 +1,37 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});"use client";
2
+
3
+
4
+ var _chunkKWLSBTB2cjs = require('../chunk-KWLSBTB2.cjs');
5
+
6
+ // src/primitives/back-bar.tsx
7
+ var _lucidereact = require('lucide-react');
8
+ var _jsxruntime = require('react/jsx-runtime');
9
+ function BackBar({
10
+ label,
11
+ href,
12
+ renderLink,
13
+ visibility = "always",
14
+ className
15
+ }) {
16
+ const linkClass = "inline-flex items-center gap-1.5 h-11 text-sm text-muted-foreground hover:text-foreground transition-colors";
17
+ const content = /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
18
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.ChevronLeft, { className: "h-4 w-4" }),
19
+ label
20
+ ] });
21
+ const link = renderLink ? renderLink({ href, className: linkClass, children: content }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "a", { href, className: linkClass, children: content });
22
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
23
+ "div",
24
+ {
25
+ "data-slot": "back-bar",
26
+ className: _chunkKWLSBTB2cjs.cn.call(void 0,
27
+ "-mt-6 md:-mt-8 -mx-4 md:-mx-6 lg:-mx-10 mb-5 px-4 md:px-6 lg:px-10 border-b border-border",
28
+ visibility === "mobile" && "md:hidden",
29
+ className
30
+ ),
31
+ children: link
32
+ }
33
+ );
34
+ }
35
+
36
+
37
+ exports.BackBar = BackBar;
@@ -0,0 +1,31 @@
1
+ import * as react_jsx_runtime from 'react/jsx-runtime';
2
+ import { ReactNode } from 'react';
3
+
4
+ interface BackBarProps {
5
+ /** The back link destination label, e.g. "Dashboard", "Network". */
6
+ label: ReactNode;
7
+ /** href for plain <a>, or pass children via renderLink for Next.js <Link>. */
8
+ href: string;
9
+ /**
10
+ * Render function for the link — use for Next.js <Link> so navigation
11
+ * stays client-side. Receives href, className, and children.
12
+ */
13
+ renderLink?: (props: {
14
+ href: string;
15
+ className: string;
16
+ children: ReactNode;
17
+ }) => ReactNode;
18
+ /** Controls whether the contextual back link is always visible or mobile-only. */
19
+ visibility?: "always" | "mobile";
20
+ className?: string;
21
+ }
22
+ /**
23
+ * Sub-navigation bar pinned under the global navbar. Bleeds to the
24
+ * edges of the parent PageShell (negative margin cancels the shell's
25
+ * padding) so it reads as a full-width bar, not an inline link.
26
+ *
27
+ * Use on any detail/sub-page that needs a back link to its parent list.
28
+ */
29
+ declare function BackBar({ label, href, renderLink, visibility, className, }: BackBarProps): react_jsx_runtime.JSX.Element;
30
+
31
+ export { BackBar, type BackBarProps };
@@ -0,0 +1,31 @@
1
+ import * as react_jsx_runtime from 'react/jsx-runtime';
2
+ import { ReactNode } from 'react';
3
+
4
+ interface BackBarProps {
5
+ /** The back link destination label, e.g. "Dashboard", "Network". */
6
+ label: ReactNode;
7
+ /** href for plain <a>, or pass children via renderLink for Next.js <Link>. */
8
+ href: string;
9
+ /**
10
+ * Render function for the link — use for Next.js <Link> so navigation
11
+ * stays client-side. Receives href, className, and children.
12
+ */
13
+ renderLink?: (props: {
14
+ href: string;
15
+ className: string;
16
+ children: ReactNode;
17
+ }) => ReactNode;
18
+ /** Controls whether the contextual back link is always visible or mobile-only. */
19
+ visibility?: "always" | "mobile";
20
+ className?: string;
21
+ }
22
+ /**
23
+ * Sub-navigation bar pinned under the global navbar. Bleeds to the
24
+ * edges of the parent PageShell (negative margin cancels the shell's
25
+ * padding) so it reads as a full-width bar, not an inline link.
26
+ *
27
+ * Use on any detail/sub-page that needs a back link to its parent list.
28
+ */
29
+ declare function BackBar({ label, href, renderLink, visibility, className, }: BackBarProps): react_jsx_runtime.JSX.Element;
30
+
31
+ export { BackBar, type BackBarProps };
@@ -0,0 +1,37 @@
1
+ "use client";
2
+ import {
3
+ cn
4
+ } from "../chunk-G6SRSWXB.js";
5
+
6
+ // src/primitives/back-bar.tsx
7
+ import { ChevronLeft } from "lucide-react";
8
+ import { Fragment, jsx, jsxs } from "react/jsx-runtime";
9
+ function BackBar({
10
+ label,
11
+ href,
12
+ renderLink,
13
+ visibility = "always",
14
+ className
15
+ }) {
16
+ const linkClass = "inline-flex items-center gap-1.5 h-11 text-sm text-muted-foreground hover:text-foreground transition-colors";
17
+ const content = /* @__PURE__ */ jsxs(Fragment, { children: [
18
+ /* @__PURE__ */ jsx(ChevronLeft, { className: "h-4 w-4" }),
19
+ label
20
+ ] });
21
+ const link = renderLink ? renderLink({ href, className: linkClass, children: content }) : /* @__PURE__ */ jsx("a", { href, className: linkClass, children: content });
22
+ return /* @__PURE__ */ jsx(
23
+ "div",
24
+ {
25
+ "data-slot": "back-bar",
26
+ className: cn(
27
+ "-mt-6 md:-mt-8 -mx-4 md:-mx-6 lg:-mx-10 mb-5 px-4 md:px-6 lg:px-10 border-b border-border",
28
+ visibility === "mobile" && "md:hidden",
29
+ className
30
+ ),
31
+ children: link
32
+ }
33
+ );
34
+ }
35
+ export {
36
+ BackBar
37
+ };