@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,47 @@
1
+ "use client";
2
+ import {
3
+ cn
4
+ } from "./chunk-G6SRSWXB.js";
5
+
6
+ // src/primitives/page-shell.tsx
7
+ import { forwardRef } from "react";
8
+ import { jsx } from "react/jsx-runtime";
9
+ var widthStyles = {
10
+ narrow: "max-w-3xl",
11
+ wide: "max-w-5xl",
12
+ full: "max-w-none"
13
+ };
14
+ var paddingStyles = {
15
+ none: "",
16
+ base: "px-4 md:px-6",
17
+ relaxed: "px-6 md:px-10",
18
+ spacious: "px-6 md:px-10 xl:px-16"
19
+ };
20
+ var PageShell = forwardRef(
21
+ function PageShell2({ width = "full", padding = "base", spacing = "default", bottomInset = "default", minHeight = "none", align = "start", printMode = "default", mobileTreatment = "page", as = "main", className, ...props }, ref) {
22
+ const Tag = as;
23
+ return /* @__PURE__ */ jsx(
24
+ Tag,
25
+ {
26
+ ref,
27
+ className: cn(
28
+ "mx-auto w-full pt-6 md:pt-8 mb-28",
29
+ spacing === "default" ? "space-y-6" : "space-y-4",
30
+ widthStyles[width],
31
+ paddingStyles[padding],
32
+ bottomInset === "action" && "pb-32",
33
+ minHeight === "content" && "min-h-[70vh]",
34
+ align === "center" && "flex items-center",
35
+ printMode === "compact" && "print:my-0 print:pt-0",
36
+ mobileTreatment === "application" && "mb-0 flex min-h-[calc(100svh-4rem)] flex-1 flex-col space-y-0 px-0 pt-0 md:mb-28 md:block md:min-h-0 md:pt-8",
37
+ className
38
+ ),
39
+ ...props
40
+ }
41
+ );
42
+ }
43
+ );
44
+
45
+ export {
46
+ PageShell
47
+ };
@@ -0,0 +1,63 @@
1
+ "use client";
2
+ import {
3
+ Tabs,
4
+ TabsList,
5
+ TabsTrigger
6
+ } from "./chunk-7CRDYV3C.js";
7
+ import {
8
+ cn
9
+ } from "./chunk-G6SRSWXB.js";
10
+
11
+ // src/primitives/page-tabs.tsx
12
+ import { jsx, jsxs } from "react/jsx-runtime";
13
+ function PageTabs({
14
+ value,
15
+ onValueChange,
16
+ items,
17
+ ariaLabel,
18
+ layout = "equal",
19
+ className
20
+ }) {
21
+ if (items.length === 0) return null;
22
+ return /* @__PURE__ */ jsx(
23
+ Tabs,
24
+ {
25
+ value,
26
+ onValueChange: (next) => onValueChange(next),
27
+ className,
28
+ children: /* @__PURE__ */ jsx(
29
+ TabsList,
30
+ {
31
+ "aria-label": ariaLabel,
32
+ scrollable: layout === "scroll",
33
+ width: "full",
34
+ className: cn(
35
+ "w-full",
36
+ layout === "equal" ? "grid h-auto p-1.5" : "justify-start"
37
+ ),
38
+ style: layout === "equal" ? { gridTemplateColumns: `repeat(${items.length}, minmax(0, 1fr))` } : void 0,
39
+ children: items.map((item) => /* @__PURE__ */ jsxs(
40
+ TabsTrigger,
41
+ {
42
+ value: item.value,
43
+ className: cn(
44
+ layout === "equal" && "min-h-11 gap-2 text-sm sm:text-base",
45
+ layout === "scroll" && "shrink-0 gap-2"
46
+ ),
47
+ children: [
48
+ item.icon,
49
+ /* @__PURE__ */ jsx("span", { className: "truncate", children: item.label }),
50
+ item.badge && /* @__PURE__ */ jsx("span", { className: "shrink-0", children: item.badge })
51
+ ]
52
+ },
53
+ item.value
54
+ ))
55
+ }
56
+ )
57
+ }
58
+ );
59
+ }
60
+
61
+ export {
62
+ PageTabs
63
+ };
@@ -0,0 +1,73 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});"use client";
2
+
3
+
4
+ var _chunkKWLSBTB2cjs = require('./chunk-KWLSBTB2.cjs');
5
+
6
+ // src/primitives/page-header.tsx
7
+ var _jsxruntime = require('react/jsx-runtime');
8
+ function PageHeader({
9
+ eyebrow,
10
+ title,
11
+ description,
12
+ children,
13
+ size = "default",
14
+ actionsLayout = "inline",
15
+ spacing = "default",
16
+ responsiveVisibility = "always",
17
+ className
18
+ }) {
19
+ const display = size === "display";
20
+ return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
21
+ "div",
22
+ {
23
+ className: _chunkKWLSBTB2cjs.cn.call(void 0,
24
+ "flex items-start justify-between gap-4",
25
+ spacing === "default" && (display ? "mb-8 md:mb-10" : "mb-6"),
26
+ spacing === "compact" && "mb-4",
27
+ display && "flex-col gap-6 sm:flex-row sm:gap-4",
28
+ actionsLayout === "responsive" && "flex-wrap gap-y-3 [&>div:last-child]:w-full [&>div:last-child]:justify-end sm:[&>div:last-child]:w-auto",
29
+ responsiveVisibility === "desktop" && "hidden md:flex",
30
+ className
31
+ ),
32
+ children: [
33
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunkKWLSBTB2cjs.cn.call(void 0, "min-w-0 flex-1", display ? "space-y-2" : "space-y-1.5"), children: [
34
+ eyebrow && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "font-mono text-xs uppercase tracking-widest text-muted-foreground", children: eyebrow }),
35
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
36
+ "h1",
37
+ {
38
+ className: _chunkKWLSBTB2cjs.cn.call(void 0,
39
+ "font-semibold tracking-tight",
40
+ size === "display" ? "text-4xl leading-none md:text-6xl md:leading-none" : "text-2xl md:text-3xl"
41
+ ),
42
+ children: title
43
+ }
44
+ ),
45
+ description && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
46
+ "p",
47
+ {
48
+ className: _chunkKWLSBTB2cjs.cn.call(void 0,
49
+ "max-w-[72ch] text-muted-foreground",
50
+ size === "display" ? "text-base md:text-lg" : "text-sm"
51
+ ),
52
+ children: description
53
+ }
54
+ )
55
+ ] }),
56
+ children && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
57
+ "div",
58
+ {
59
+ className: _chunkKWLSBTB2cjs.cn.call(void 0,
60
+ "flex shrink-0 items-center gap-2",
61
+ size === "display" ? "w-full flex-wrap sm:mt-0.5 sm:w-auto sm:flex-nowrap md:mt-1" : "mt-1"
62
+ ),
63
+ children
64
+ }
65
+ )
66
+ ]
67
+ }
68
+ );
69
+ }
70
+
71
+
72
+
73
+ exports.PageHeader = PageHeader;
@@ -0,0 +1,7 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});"use client";
2
+
3
+
4
+ var _chunkI3GBXIFLcjs = require('../chunk-I3GBXIFL.cjs');
5
+
6
+
7
+ exports.AccentTheme = _chunkI3GBXIFLcjs.AccentTheme;
@@ -0,0 +1,32 @@
1
+ import * as react_jsx_runtime from 'react/jsx-runtime';
2
+ import { ReactNode } from 'react';
3
+
4
+ interface AccentThemeColours {
5
+ light?: string | null;
6
+ dark?: string | null;
7
+ }
8
+ interface AccentThemeProps {
9
+ colours?: AccentThemeColours | null;
10
+ /**
11
+ * `region` (default) accents only the wrapped content. Use `document` once
12
+ * at the application root so body portals inherit the same accent too.
13
+ */
14
+ scope?: "region" | "document";
15
+ /**
16
+ * Apply the accent only while the document is in this palette
17
+ * (`data-theme` on `<html>`), so a palette someone picks keeps its own
18
+ * accent. Leave it off to apply the accent in every palette.
19
+ */
20
+ palette?: string;
21
+ children: ReactNode;
22
+ }
23
+ /**
24
+ * Scopes the UI-kit accent tokens to a region or document without changing its neutral
25
+ * surfaces or typography. Light and dark values are selected entirely in CSS,
26
+ * so switching themes does not require app-owned listeners or render state,
27
+ * and with `palette` neither does switching palettes: the wrapper stays, and
28
+ * only the rules stop matching.
29
+ */
30
+ declare function AccentTheme({ colours, palette, scope: target, children }: AccentThemeProps): react_jsx_runtime.JSX.Element;
31
+
32
+ export { AccentTheme, type AccentThemeColours, type AccentThemeProps };
@@ -0,0 +1,32 @@
1
+ import * as react_jsx_runtime from 'react/jsx-runtime';
2
+ import { ReactNode } from 'react';
3
+
4
+ interface AccentThemeColours {
5
+ light?: string | null;
6
+ dark?: string | null;
7
+ }
8
+ interface AccentThemeProps {
9
+ colours?: AccentThemeColours | null;
10
+ /**
11
+ * `region` (default) accents only the wrapped content. Use `document` once
12
+ * at the application root so body portals inherit the same accent too.
13
+ */
14
+ scope?: "region" | "document";
15
+ /**
16
+ * Apply the accent only while the document is in this palette
17
+ * (`data-theme` on `<html>`), so a palette someone picks keeps its own
18
+ * accent. Leave it off to apply the accent in every palette.
19
+ */
20
+ palette?: string;
21
+ children: ReactNode;
22
+ }
23
+ /**
24
+ * Scopes the UI-kit accent tokens to a region or document without changing its neutral
25
+ * surfaces or typography. Light and dark values are selected entirely in CSS,
26
+ * so switching themes does not require app-owned listeners or render state,
27
+ * and with `palette` neither does switching palettes: the wrapper stays, and
28
+ * only the rules stop matching.
29
+ */
30
+ declare function AccentTheme({ colours, palette, scope: target, children }: AccentThemeProps): react_jsx_runtime.JSX.Element;
31
+
32
+ export { AccentTheme, type AccentThemeColours, type AccentThemeProps };
@@ -0,0 +1,7 @@
1
+ "use client";
2
+ import {
3
+ AccentTheme
4
+ } from "../chunk-BB7PO2BW.js";
5
+ export {
6
+ AccentTheme
7
+ };
@@ -4,13 +4,13 @@
4
4
  var _chunkPPYHNJMVcjs = require('../chunk-PPYHNJMV.cjs');
5
5
 
6
6
 
7
- var _chunkPQUSJEXLcjs = require('../chunk-PQUSJEXL.cjs');
8
- require('../chunk-VGTINL5Q.cjs');
9
7
 
10
8
 
9
+ var _chunkWABCLRBRcjs = require('../chunk-WABCLRBR.cjs');
11
10
 
12
11
 
13
- var _chunkWABCLRBRcjs = require('../chunk-WABCLRBR.cjs');
12
+ var _chunkPQUSJEXLcjs = require('../chunk-PQUSJEXL.cjs');
13
+ require('../chunk-VGTINL5Q.cjs');
14
14
  require('../chunk-I6GUOEBO.cjs');
15
15
 
16
16
 
@@ -2,15 +2,15 @@
2
2
  import {
3
3
  ChipTabs
4
4
  } from "../chunk-MP64UGRF.js";
5
- import {
6
- Input
7
- } from "../chunk-QMA3WVB7.js";
8
- import "../chunk-H7TETFLB.js";
9
5
  import {
10
6
  Avatar,
11
7
  AvatarFallback,
12
8
  AvatarImage
13
9
  } from "../chunk-3OWGL4Q2.js";
10
+ import {
11
+ Input
12
+ } from "../chunk-QMA3WVB7.js";
13
+ import "../chunk-H7TETFLB.js";
14
14
  import "../chunk-D4ZL2OEQ.js";
15
15
  import {
16
16
  EmptyState
@@ -1,35 +1,8 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true});"use client";
2
2
 
3
3
 
4
- var _chunkKWLSBTB2cjs = require('../chunk-KWLSBTB2.cjs');
4
+ var _chunk2BNEE3U6cjs = require('../chunk-2BNEE3U6.cjs');
5
+ require('../chunk-KWLSBTB2.cjs');
5
6
 
6
- // src/primitives/anchor.tsx
7
- var _reactslot = require('@radix-ui/react-slot');
8
- var _react = require('react');
9
- var _jsxruntime = require('react/jsx-runtime');
10
- var Anchor = _react.forwardRef.call(void 0, function Anchor2({ variant = "unstyled", size = "inherit", display = "inline", underline = false, asChild = false, border = "none", weight = "normal", className, ...props }, ref) {
11
- const Component = asChild ? _reactslot.Slot : "a";
12
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
13
- Component,
14
- {
15
- ref,
16
- className: _chunkKWLSBTB2cjs.cn.call(void 0,
17
- variant === "text" && "font-medium text-primary underline-offset-4 hover:underline",
18
- variant === "muted" && "text-muted-foreground underline underline-offset-2 hover:text-foreground",
19
- variant === "foreground" && "text-foreground underline-offset-2 hover:underline",
20
- size === "xs" && "text-xs",
21
- size === "sm" && "text-sm",
22
- display === "inline-flex" && "inline-flex items-center gap-1",
23
- display === "block" && "block",
24
- border === "bottom" && "border-b last:border-b-0",
25
- weight === "medium" && "font-medium",
26
- underline && "underline",
27
- className
28
- ),
29
- ...props
30
- }
31
- );
32
- });
33
7
 
34
-
35
- exports.Anchor = Anchor;
8
+ exports.Anchor = _chunk2BNEE3U6cjs.Anchor;
@@ -1,35 +1,8 @@
1
1
  "use client";
2
2
  import {
3
- cn
4
- } from "../chunk-G6SRSWXB.js";
5
-
6
- // src/primitives/anchor.tsx
7
- import { Slot } from "@radix-ui/react-slot";
8
- import { forwardRef } from "react";
9
- import { jsx } from "react/jsx-runtime";
10
- var Anchor = forwardRef(function Anchor2({ variant = "unstyled", size = "inherit", display = "inline", underline = false, asChild = false, border = "none", weight = "normal", className, ...props }, ref) {
11
- const Component = asChild ? Slot : "a";
12
- return /* @__PURE__ */ jsx(
13
- Component,
14
- {
15
- ref,
16
- className: cn(
17
- variant === "text" && "font-medium text-primary underline-offset-4 hover:underline",
18
- variant === "muted" && "text-muted-foreground underline underline-offset-2 hover:text-foreground",
19
- variant === "foreground" && "text-foreground underline-offset-2 hover:underline",
20
- size === "xs" && "text-xs",
21
- size === "sm" && "text-sm",
22
- display === "inline-flex" && "inline-flex items-center gap-1",
23
- display === "block" && "block",
24
- border === "bottom" && "border-b last:border-b-0",
25
- weight === "medium" && "font-medium",
26
- underline && "underline",
27
- className
28
- ),
29
- ...props
30
- }
31
- );
32
- });
3
+ Anchor
4
+ } from "../chunk-EXHF3QUY.js";
5
+ import "../chunk-G6SRSWXB.js";
33
6
  export {
34
7
  Anchor
35
8
  };
@@ -0,0 +1,114 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});"use client";
2
+
3
+
4
+
5
+
6
+ var _chunkUKYUWSF2cjs = require('../chunk-UKYUWSF2.cjs');
7
+ require('../chunk-NQK5ZWC7.cjs');
8
+ require('../chunk-PPX2VPGI.cjs');
9
+ require('../chunk-U2NES7VR.cjs');
10
+ require('../chunk-VGTINL5Q.cjs');
11
+ require('../chunk-I6GUOEBO.cjs');
12
+ require('../chunk-JDEXZGIY.cjs');
13
+
14
+
15
+ var _chunkKWLSBTB2cjs = require('../chunk-KWLSBTB2.cjs');
16
+ require('../chunk-R35FT53G.cjs');
17
+
18
+ // src/primitives/app-layout.tsx
19
+ var _jsxruntime = require('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__ */ _jsxruntime.jsxs.call(void 0,
39
+ _chunkUKYUWSF2cjs.SidebarProvider,
40
+ {
41
+ storageKey: sidebarStorageKey,
42
+ width: sidebarWidth,
43
+ surface: chromeSurface,
44
+ className: _chunkKWLSBTB2cjs.cn.call(void 0, fixedViewport && "h-svh min-h-0 overflow-hidden", className),
45
+ children: [
46
+ sidebar,
47
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
48
+ _chunkUKYUWSF2cjs.SidebarInset,
49
+ {
50
+ className: _chunkKWLSBTB2cjs.cn.call(void 0,
51
+ "bg-muted/40",
52
+ fixedViewport && "h-svh min-h-0 overflow-hidden"
53
+ ),
54
+ children: [
55
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
56
+ "header",
57
+ {
58
+ "data-slot": "app-layout-header",
59
+ "data-surface": chromeSurface,
60
+ "data-frosted-surface": frostedHeader ? chromeSurface : void 0,
61
+ className: _chunkKWLSBTB2cjs.cn.call(void 0,
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__ */ _jsxruntime.jsx.call(void 0, _chunkUKYUWSF2cjs.SidebarTrigger, { visibility: "mobile" }),
69
+ (mobileBrand || breadcrumbs || headerActions) && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
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__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex min-w-0 flex-1 items-center md:hidden", children: mobileBrand }),
76
+ breadcrumbs && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "hidden min-w-0 flex-1 items-center md:flex", children: breadcrumbs }),
77
+ headerActions && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
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__ */ _jsxruntime.jsx.call(void 0, "div", { "data-slot": "app-layout-header-content", className: "ml-auto flex shrink-0 items-center", children: headerContent })
89
+ ]
90
+ }
91
+ ),
92
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
93
+ "div",
94
+ {
95
+ "data-slot": "app-layout-content",
96
+ className: _chunkKWLSBTB2cjs.cn.call(void 0,
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
+
113
+
114
+ exports.AppLayout = AppLayout;
@@ -0,0 +1,47 @@
1
+ import * as react_jsx_runtime from 'react/jsx-runtime';
2
+ import { ReactNode } from 'react';
3
+ import { SidebarProviderProps } from './app-sidebar.cjs';
4
+ import './button.cjs';
5
+ import 'class-variance-authority/types';
6
+ import 'class-variance-authority';
7
+ import './count-badge.cjs';
8
+ import './badge.cjs';
9
+ import './separator.cjs';
10
+ import '@radix-ui/react-separator';
11
+ import './sheet.cjs';
12
+ import '@radix-ui/react-dialog';
13
+
14
+ interface AppLayoutProps {
15
+ sidebar: ReactNode;
16
+ breadcrumbs?: ReactNode;
17
+ mobileBrand?: ReactNode;
18
+ children: ReactNode;
19
+ /** Primary page actions shown beside the current title. Spacing is owned by the shell. */
20
+ headerActions?: ReactNode;
21
+ headerContent?: ReactNode;
22
+ className?: string;
23
+ headerClassName?: string;
24
+ /** Translucent, blurred header with a solid fallback. Does not change the sidebar or scrolling. */
25
+ frostedHeader?: boolean;
26
+ contentClassName?: string;
27
+ sidebarStorageKey?: SidebarProviderProps["storageKey"];
28
+ sidebarWidth?: SidebarProviderProps["width"];
29
+ /** Surface shared by the application header and responsive navigation chrome. */
30
+ chromeSurface?: SidebarProviderProps["surface"];
31
+ /** `full` lets workspace-style products own the full inset rather than a bordered page column. */
32
+ contentWidth?: "contained" | "full";
33
+ /**
34
+ * `fixed` locks the shell to the viewport so a child workspace can own its
35
+ * scrolling region (for example, a chat transcript with a pinned composer).
36
+ * Normal pages keep document scrolling by default.
37
+ */
38
+ viewport?: "document" | "fixed";
39
+ }
40
+ /**
41
+ * Responsive application shell for products whose navigation has outgrown a
42
+ * horizontal header. Navigation is persistent/collapsible on desktop and is
43
+ * exposed as a sheet from the same trigger on mobile.
44
+ */
45
+ declare function AppLayout({ sidebar, breadcrumbs, mobileBrand, children, headerActions, headerContent, className, headerClassName, frostedHeader, contentClassName, sidebarStorageKey, sidebarWidth, chromeSurface, contentWidth, viewport, }: AppLayoutProps): react_jsx_runtime.JSX.Element;
46
+
47
+ export { AppLayout, type AppLayoutProps };
@@ -0,0 +1,47 @@
1
+ import * as react_jsx_runtime from 'react/jsx-runtime';
2
+ import { ReactNode } from 'react';
3
+ import { SidebarProviderProps } from './app-sidebar.js';
4
+ import './button.js';
5
+ import 'class-variance-authority/types';
6
+ import 'class-variance-authority';
7
+ import './count-badge.js';
8
+ import './badge.js';
9
+ import './separator.js';
10
+ import '@radix-ui/react-separator';
11
+ import './sheet.js';
12
+ import '@radix-ui/react-dialog';
13
+
14
+ interface AppLayoutProps {
15
+ sidebar: ReactNode;
16
+ breadcrumbs?: ReactNode;
17
+ mobileBrand?: ReactNode;
18
+ children: ReactNode;
19
+ /** Primary page actions shown beside the current title. Spacing is owned by the shell. */
20
+ headerActions?: ReactNode;
21
+ headerContent?: ReactNode;
22
+ className?: string;
23
+ headerClassName?: string;
24
+ /** Translucent, blurred header with a solid fallback. Does not change the sidebar or scrolling. */
25
+ frostedHeader?: boolean;
26
+ contentClassName?: string;
27
+ sidebarStorageKey?: SidebarProviderProps["storageKey"];
28
+ sidebarWidth?: SidebarProviderProps["width"];
29
+ /** Surface shared by the application header and responsive navigation chrome. */
30
+ chromeSurface?: SidebarProviderProps["surface"];
31
+ /** `full` lets workspace-style products own the full inset rather than a bordered page column. */
32
+ contentWidth?: "contained" | "full";
33
+ /**
34
+ * `fixed` locks the shell to the viewport so a child workspace can own its
35
+ * scrolling region (for example, a chat transcript with a pinned composer).
36
+ * Normal pages keep document scrolling by default.
37
+ */
38
+ viewport?: "document" | "fixed";
39
+ }
40
+ /**
41
+ * Responsive application shell for products whose navigation has outgrown a
42
+ * horizontal header. Navigation is persistent/collapsible on desktop and is
43
+ * exposed as a sheet from the same trigger on mobile.
44
+ */
45
+ declare function AppLayout({ sidebar, breadcrumbs, mobileBrand, children, headerActions, headerContent, className, headerClassName, frostedHeader, contentClassName, sidebarStorageKey, sidebarWidth, chromeSurface, contentWidth, viewport, }: AppLayoutProps): react_jsx_runtime.JSX.Element;
46
+
47
+ export { AppLayout, type AppLayoutProps };