@epicbagel/saas-kit 1.32.0 → 1.33.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 (217) hide show
  1. package/THIRD_PARTY_NOTICES.md +6 -5
  2. package/dist/chunk-2DCJ2SFU.js +20 -0
  3. package/dist/chunk-2FVFPGP5.js +489 -0
  4. package/dist/{chunk-HTPPNW74.js → chunk-AWCXVYPL.js} +1 -1
  5. package/dist/chunk-B54ZEKBG.cjs +63 -0
  6. package/dist/chunk-CXAFTEEP.cjs +20 -0
  7. package/dist/{chunk-MOJHETNO.cjs → chunk-F3D5HA2F.cjs} +10 -10
  8. package/dist/chunk-G3SF4RRA.cjs +489 -0
  9. package/dist/chunk-HTTRUJQU.cjs +60 -0
  10. package/dist/{chunk-JS6BLIWL.js → chunk-IZF4WCK6.js} +11 -11
  11. package/dist/{chunk-PH2TV7XI.cjs → chunk-KOR2QR7I.cjs} +5 -5
  12. package/dist/{chunk-BGCNGYPL.cjs → chunk-PTMZTP3V.cjs} +2 -2
  13. package/dist/{chunk-6O3DUMF7.js → chunk-REGA2L5S.js} +1 -1
  14. package/dist/{chunk-PNI354BY.cjs → chunk-SL6ECEN6.cjs} +2 -2
  15. package/dist/{chunk-ZGTPNSR7.js → chunk-TS4MC3B3.js} +4 -4
  16. package/dist/chunk-TUQVHPSI.js +60 -0
  17. package/dist/chunk-VWOWPNKT.js +73 -0
  18. package/dist/chunk-XH2I3YJ6.js +63 -0
  19. package/dist/chunk-Y6X6XDHE.cjs +73 -0
  20. package/dist/primitives/accent-theme.cjs +66 -0
  21. package/dist/primitives/accent-theme.d.cts +32 -0
  22. package/dist/primitives/accent-theme.d.ts +32 -0
  23. package/dist/primitives/accent-theme.js +66 -0
  24. package/dist/primitives/activity-feed.cjs +2 -2
  25. package/dist/primitives/activity-feed.js +2 -2
  26. package/dist/primitives/agent-audio-visualizer-bar.cjs +3 -3
  27. package/dist/primitives/agent-audio-visualizer-bar.js +2 -2
  28. package/dist/primitives/alert.d.cts +1 -1
  29. package/dist/primitives/alert.d.ts +1 -1
  30. package/dist/primitives/app-layout.cjs +114 -0
  31. package/dist/primitives/app-layout.d.cts +47 -0
  32. package/dist/primitives/app-layout.d.ts +47 -0
  33. package/dist/primitives/app-layout.js +114 -0
  34. package/dist/primitives/app-sidebar.cjs +52 -0
  35. package/dist/primitives/app-sidebar.d.cts +105 -0
  36. package/dist/primitives/app-sidebar.d.ts +105 -0
  37. package/dist/primitives/app-sidebar.js +52 -0
  38. package/dist/primitives/archive-confirmation-dialog.cjs +2 -2
  39. package/dist/primitives/archive-confirmation-dialog.js +3 -3
  40. package/dist/primitives/back-bar.cjs +37 -0
  41. package/dist/primitives/back-bar.d.cts +31 -0
  42. package/dist/primitives/back-bar.d.ts +31 -0
  43. package/dist/primitives/back-bar.js +37 -0
  44. package/dist/primitives/badge.d.cts +1 -1
  45. package/dist/primitives/badge.d.ts +1 -1
  46. package/dist/primitives/batch-action-bar.cjs +134 -0
  47. package/dist/primitives/batch-action-bar.d.cts +27 -0
  48. package/dist/primitives/batch-action-bar.d.ts +27 -0
  49. package/dist/primitives/batch-action-bar.js +134 -0
  50. package/dist/primitives/board-view-internals.cjs +3 -3
  51. package/dist/primitives/board-view-internals.js +2 -2
  52. package/dist/primitives/board-view.cjs +8 -8
  53. package/dist/primitives/board-view.js +7 -7
  54. package/dist/primitives/brand-mark.cjs +26 -0
  55. package/dist/primitives/brand-mark.d.cts +10 -0
  56. package/dist/primitives/brand-mark.d.ts +10 -0
  57. package/dist/primitives/brand-mark.js +26 -0
  58. package/dist/primitives/bubble.d.cts +1 -1
  59. package/dist/primitives/bubble.d.ts +1 -1
  60. package/dist/primitives/button.d.cts +2 -2
  61. package/dist/primitives/button.d.ts +2 -2
  62. package/dist/primitives/chat.cjs +27 -27
  63. package/dist/primitives/chat.js +21 -21
  64. package/dist/primitives/code-block.cjs +4 -4
  65. package/dist/primitives/code-block.js +3 -3
  66. package/dist/primitives/command.cjs +129 -0
  67. package/dist/primitives/command.d.cts +60 -0
  68. package/dist/primitives/command.d.ts +60 -0
  69. package/dist/primitives/command.js +129 -0
  70. package/dist/primitives/compact-list.cjs +24 -0
  71. package/dist/primitives/compact-list.d.cts +18 -0
  72. package/dist/primitives/compact-list.d.ts +18 -0
  73. package/dist/primitives/compact-list.js +24 -0
  74. package/dist/primitives/connection.cjs +6 -6
  75. package/dist/primitives/connection.js +8 -8
  76. package/dist/primitives/context-bar.cjs +57 -0
  77. package/dist/primitives/context-bar.d.cts +50 -0
  78. package/dist/primitives/context-bar.d.ts +50 -0
  79. package/dist/primitives/context-bar.js +57 -0
  80. package/dist/primitives/copy-button.cjs +3 -3
  81. package/dist/primitives/copy-button.js +2 -2
  82. package/dist/primitives/cycling-prompt.cjs +102 -0
  83. package/dist/primitives/cycling-prompt.d.cts +24 -0
  84. package/dist/primitives/cycling-prompt.d.ts +24 -0
  85. package/dist/primitives/cycling-prompt.js +102 -0
  86. package/dist/primitives/dialog.d.cts +9 -9
  87. package/dist/primitives/dialog.d.ts +9 -9
  88. package/dist/primitives/dotted-list.cjs +41 -0
  89. package/dist/primitives/dotted-list.d.cts +28 -0
  90. package/dist/primitives/dotted-list.d.ts +28 -0
  91. package/dist/primitives/dotted-list.js +41 -0
  92. package/dist/primitives/drawer.d.cts +6 -6
  93. package/dist/primitives/drawer.d.ts +6 -6
  94. package/dist/primitives/field.cjs +3 -3
  95. package/dist/primitives/field.js +2 -2
  96. package/dist/primitives/file-dropzone.cjs +3 -3
  97. package/dist/primitives/file-dropzone.js +2 -2
  98. package/dist/primitives/file-preview.cjs +4 -4
  99. package/dist/primitives/file-preview.js +3 -3
  100. package/dist/primitives/filter-bar.cjs +4 -4
  101. package/dist/primitives/filter-bar.js +3 -3
  102. package/dist/primitives/fixed-action-bar.cjs +46 -0
  103. package/dist/primitives/fixed-action-bar.d.cts +15 -0
  104. package/dist/primitives/fixed-action-bar.d.ts +15 -0
  105. package/dist/primitives/fixed-action-bar.js +46 -0
  106. package/dist/primitives/floating-action-button.cjs +65 -0
  107. package/dist/primitives/floating-action-button.d.cts +52 -0
  108. package/dist/primitives/floating-action-button.d.ts +52 -0
  109. package/dist/primitives/floating-action-button.js +65 -0
  110. package/dist/primitives/form-section.cjs +38 -0
  111. package/dist/primitives/form-section.d.cts +43 -0
  112. package/dist/primitives/form-section.d.ts +43 -0
  113. package/dist/primitives/form-section.js +38 -0
  114. package/dist/primitives/key-value-grid.cjs +52 -0
  115. package/dist/primitives/key-value-grid.d.cts +20 -0
  116. package/dist/primitives/key-value-grid.d.ts +20 -0
  117. package/dist/primitives/key-value-grid.js +52 -0
  118. package/dist/primitives/marketing-footer.cjs +34 -0
  119. package/dist/primitives/marketing-footer.d.cts +29 -0
  120. package/dist/primitives/marketing-footer.d.ts +29 -0
  121. package/dist/primitives/marketing-footer.js +34 -0
  122. package/dist/primitives/marketing-header.cjs +41 -0
  123. package/dist/primitives/marketing-header.d.cts +31 -0
  124. package/dist/primitives/marketing-header.d.ts +31 -0
  125. package/dist/primitives/marketing-header.js +41 -0
  126. package/dist/primitives/marketing-section.cjs +8 -0
  127. package/dist/primitives/marketing-section.d.cts +35 -0
  128. package/dist/primitives/marketing-section.d.ts +35 -0
  129. package/dist/primitives/marketing-section.js +8 -0
  130. package/dist/primitives/marketing-shell.cjs +28 -0
  131. package/dist/primitives/marketing-shell.d.cts +14 -0
  132. package/dist/primitives/marketing-shell.d.ts +14 -0
  133. package/dist/primitives/marketing-shell.js +28 -0
  134. package/dist/primitives/notes.cjs +4 -4
  135. package/dist/primitives/notes.js +4 -4
  136. package/dist/primitives/page-header.cjs +3 -67
  137. package/dist/primitives/page-header.js +3 -67
  138. package/dist/primitives/page-tabs.cjs +4 -57
  139. package/dist/primitives/page-tabs.js +4 -57
  140. package/dist/primitives/pager.cjs +85 -0
  141. package/dist/primitives/pager.d.cts +39 -0
  142. package/dist/primitives/pager.d.ts +39 -0
  143. package/dist/primitives/pager.js +85 -0
  144. package/dist/primitives/pagination.cjs +119 -0
  145. package/dist/primitives/pagination.d.cts +41 -0
  146. package/dist/primitives/pagination.d.ts +41 -0
  147. package/dist/primitives/pagination.js +119 -0
  148. package/dist/primitives/poster.cjs +11 -1
  149. package/dist/primitives/poster.d.cts +12 -1
  150. package/dist/primitives/poster.d.ts +12 -1
  151. package/dist/primitives/poster.js +10 -0
  152. package/dist/primitives/resource-list.cjs +8 -8
  153. package/dist/primitives/resource-list.js +7 -7
  154. package/dist/primitives/responsive-embed.cjs +29 -0
  155. package/dist/primitives/responsive-embed.d.cts +14 -0
  156. package/dist/primitives/responsive-embed.d.ts +14 -0
  157. package/dist/primitives/responsive-embed.js +29 -0
  158. package/dist/primitives/save-bar.cjs +91 -0
  159. package/dist/primitives/save-bar.d.cts +55 -0
  160. package/dist/primitives/save-bar.d.ts +55 -0
  161. package/dist/primitives/save-bar.js +91 -0
  162. package/dist/primitives/settings-list.cjs +10 -0
  163. package/dist/primitives/settings-list.d.cts +31 -0
  164. package/dist/primitives/settings-list.d.ts +31 -0
  165. package/dist/primitives/settings-list.js +10 -0
  166. package/dist/primitives/settings-section.cjs +34 -0
  167. package/dist/primitives/settings-section.d.cts +44 -0
  168. package/dist/primitives/settings-section.d.ts +44 -0
  169. package/dist/primitives/settings-section.js +34 -0
  170. package/dist/primitives/sheet.d.cts +9 -9
  171. package/dist/primitives/sheet.d.ts +9 -9
  172. package/dist/primitives/short-video.cjs +110 -0
  173. package/dist/primitives/short-video.d.cts +30 -0
  174. package/dist/primitives/short-video.d.ts +30 -0
  175. package/dist/primitives/short-video.js +110 -0
  176. package/dist/primitives/stats-card.cjs +46 -0
  177. package/dist/primitives/stats-card.d.cts +19 -0
  178. package/dist/primitives/stats-card.d.ts +19 -0
  179. package/dist/primitives/stats-card.js +46 -0
  180. package/dist/primitives/stats-strip.cjs +38 -0
  181. package/dist/primitives/stats-strip.d.cts +24 -0
  182. package/dist/primitives/stats-strip.d.ts +24 -0
  183. package/dist/primitives/stats-strip.js +38 -0
  184. package/dist/primitives/step-list.cjs +32 -0
  185. package/dist/primitives/step-list.d.cts +19 -0
  186. package/dist/primitives/step-list.d.ts +19 -0
  187. package/dist/primitives/step-list.js +32 -0
  188. package/dist/primitives/steps.cjs +77 -0
  189. package/dist/primitives/steps.d.cts +35 -0
  190. package/dist/primitives/steps.d.ts +35 -0
  191. package/dist/primitives/steps.js +77 -0
  192. package/dist/primitives/tabbed-page-header.cjs +53 -0
  193. package/dist/primitives/tabbed-page-header.d.cts +26 -0
  194. package/dist/primitives/tabbed-page-header.d.ts +26 -0
  195. package/dist/primitives/tabbed-page-header.js +53 -0
  196. package/dist/primitives/theme-selector.cjs +17 -17
  197. package/dist/primitives/theme-selector.js +5 -5
  198. package/dist/primitives/voice-dictation-button.cjs +5 -5
  199. package/dist/primitives/voice-dictation-button.js +4 -4
  200. package/dist/primitives/voice-session-controls.cjs +4 -4
  201. package/dist/primitives/voice-session-controls.js +3 -3
  202. package/dist/primitives/workflow-assistant.cjs +5 -5
  203. package/dist/primitives/workflow-assistant.js +3 -3
  204. package/package.json +312 -1
  205. package/src/styles/components/poster.css +42 -1
  206. package/dist/{chunk-5OF6D3GH.js → chunk-4TJBXXUE.js} +3 -3
  207. package/dist/{chunk-DILYV4FI.js → chunk-7ZRFXJVN.js} +3 -3
  208. package/dist/{chunk-YYFVG5A6.cjs → chunk-D46FNEZ5.cjs} +2 -2
  209. package/dist/{chunk-NKWHDI4C.cjs → chunk-FB3VY2PL.cjs} +2 -2
  210. package/dist/{chunk-MW67PHAQ.cjs → chunk-GUVQAWUW.cjs} +9 -9
  211. package/dist/{chunk-WHDHUYS6.js → chunk-HBRVOGLA.js} +3 -3
  212. package/dist/{chunk-FARCLWLU.cjs → chunk-HHF5DEKM.cjs} +3 -3
  213. package/dist/{chunk-TWCJMFST.js → chunk-O42YC6ZQ.js} +3 -3
  214. package/dist/{chunk-ZJFYOXSM.cjs → chunk-SRVRNHCX.cjs} +2 -2
  215. package/dist/{chunk-UFFHGKI7.js → chunk-SW4T3O7M.js} +9 -9
  216. package/dist/{chunk-62UTAG2C.js → chunk-ULZB4A2I.js} +3 -3
  217. package/dist/{chunk-ZLEM2SAU.cjs → chunk-Z3JJSNR5.cjs} +2 -2
@@ -0,0 +1,29 @@
1
+ import * as react_jsx_runtime from 'react/jsx-runtime';
2
+ import { ReactNode } from 'react';
3
+
4
+ type MarketingFooterLink = {
5
+ href: string;
6
+ label: ReactNode;
7
+ };
8
+ type RenderLink = (props: {
9
+ href: string;
10
+ children: ReactNode;
11
+ className?: string;
12
+ }) => ReactNode;
13
+ /**
14
+ * MarketingFooter — brand on the left, a row of meta links + a meta
15
+ * note (version / copyright) on the right, in the shared mono-muted
16
+ * treatment. Routing injected via `renderLink` (falls back to <a>).
17
+ * Server-component-safe.
18
+ */
19
+ interface MarketingFooterProps {
20
+ brand?: ReactNode;
21
+ links?: MarketingFooterLink[];
22
+ /** Trailing meta — e.g. "v0.1 · beta" or "© 2026". */
23
+ meta?: ReactNode;
24
+ renderLink?: RenderLink;
25
+ className?: string;
26
+ }
27
+ declare function MarketingFooter({ brand, links, meta, renderLink, className, }: MarketingFooterProps): react_jsx_runtime.JSX.Element;
28
+
29
+ export { MarketingFooter, type MarketingFooterLink, type MarketingFooterProps };
@@ -0,0 +1,29 @@
1
+ import * as react_jsx_runtime from 'react/jsx-runtime';
2
+ import { ReactNode } from 'react';
3
+
4
+ type MarketingFooterLink = {
5
+ href: string;
6
+ label: ReactNode;
7
+ };
8
+ type RenderLink = (props: {
9
+ href: string;
10
+ children: ReactNode;
11
+ className?: string;
12
+ }) => ReactNode;
13
+ /**
14
+ * MarketingFooter — brand on the left, a row of meta links + a meta
15
+ * note (version / copyright) on the right, in the shared mono-muted
16
+ * treatment. Routing injected via `renderLink` (falls back to <a>).
17
+ * Server-component-safe.
18
+ */
19
+ interface MarketingFooterProps {
20
+ brand?: ReactNode;
21
+ links?: MarketingFooterLink[];
22
+ /** Trailing meta — e.g. "v0.1 · beta" or "© 2026". */
23
+ meta?: ReactNode;
24
+ renderLink?: RenderLink;
25
+ className?: string;
26
+ }
27
+ declare function MarketingFooter({ brand, links, meta, renderLink, className, }: MarketingFooterProps): react_jsx_runtime.JSX.Element;
28
+
29
+ export { MarketingFooter, type MarketingFooterLink, type MarketingFooterProps };
@@ -0,0 +1,34 @@
1
+ "use client";
2
+ import {
3
+ cn
4
+ } from "../chunk-G6SRSWXB.js";
5
+
6
+ // src/primitives/marketing-footer.tsx
7
+ import { Fragment, jsx, jsxs } from "react/jsx-runtime";
8
+ function MarketingFooter({
9
+ brand,
10
+ links = [],
11
+ meta,
12
+ renderLink,
13
+ className
14
+ }) {
15
+ const cls = "transition-colors hover:text-foreground";
16
+ const link = (l) => {
17
+ if (renderLink)
18
+ return /* @__PURE__ */ jsx("span", { children: renderLink({ href: l.href, children: l.label, className: cls }) }, l.href);
19
+ return /* @__PURE__ */ jsx("a", { href: l.href, className: cls, children: l.label }, l.href);
20
+ };
21
+ return /* @__PURE__ */ jsx("footer", { className: cn("border-t border-border", className), children: /* @__PURE__ */ jsxs("div", { className: "mx-auto flex w-full max-w-5xl flex-wrap items-center justify-between gap-4 px-4 py-6 md:px-6", children: [
22
+ /* @__PURE__ */ jsx("div", { className: "flex items-center", children: brand }),
23
+ /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-4 font-mono text-xs text-muted-foreground", children: [
24
+ links.map(link),
25
+ meta && /* @__PURE__ */ jsxs(Fragment, { children: [
26
+ links.length > 0 && /* @__PURE__ */ jsx("span", { className: "text-muted-foreground/40", children: "\xB7" }),
27
+ /* @__PURE__ */ jsx("span", { children: meta })
28
+ ] })
29
+ ] })
30
+ ] }) });
31
+ }
32
+ export {
33
+ MarketingFooter
34
+ };
@@ -0,0 +1,41 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});"use client";
2
+
3
+
4
+ var _chunkKWLSBTB2cjs = require('../chunk-KWLSBTB2.cjs');
5
+
6
+ // src/primitives/marketing-header.tsx
7
+ var _jsxruntime = require('react/jsx-runtime');
8
+ function MarketingHeader({
9
+ brand,
10
+ links = [],
11
+ trailing,
12
+ renderLink,
13
+ variant = "default",
14
+ className
15
+ }) {
16
+ const link = (l) => {
17
+ const cls = variant === "mono" ? "font-mono text-xs uppercase tracking-[0.18em] text-muted-foreground transition-colors hover:text-foreground" : "text-sm text-muted-foreground transition-colors hover:text-foreground";
18
+ if (renderLink)
19
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { children: renderLink({ href: l.href, children: l.label, className: cls }) }, l.href);
20
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "a", { href: l.href, className: cls, children: l.label }, l.href);
21
+ };
22
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
23
+ "header",
24
+ {
25
+ className: _chunkKWLSBTB2cjs.cn.call(void 0,
26
+ "sticky top-0 z-50 border-b border-border bg-background/80 backdrop-blur-sm supports-[backdrop-filter]:bg-background/70",
27
+ className
28
+ ),
29
+ children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "mx-auto flex w-full max-w-5xl items-center justify-between px-4 py-4 md:px-6", children: [
30
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex items-center", children: brand }),
31
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "nav", { className: "flex items-center gap-3 md:gap-5", children: [
32
+ links.length > 0 && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "hidden items-center gap-5 sm:flex", children: links.map(link) }),
33
+ trailing && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex items-center gap-2 md:gap-3", children: trailing })
34
+ ] })
35
+ ] })
36
+ }
37
+ );
38
+ }
39
+
40
+
41
+ exports.MarketingHeader = MarketingHeader;
@@ -0,0 +1,31 @@
1
+ import * as react_jsx_runtime from 'react/jsx-runtime';
2
+ import { ReactNode } from 'react';
3
+
4
+ type MarketingNavLink = {
5
+ href: string;
6
+ label: ReactNode;
7
+ };
8
+ type RenderLink = (props: {
9
+ href: string;
10
+ children: ReactNode;
11
+ className?: string;
12
+ }) => ReactNode;
13
+ /**
14
+ * MarketingHeader — the sticky landing-page top bar: brand on the left,
15
+ * nav links + a trailing slot (theme switch, auth buttons) on the right.
16
+ * Routing is injected via `renderLink` (falls back to <a>), so the kit
17
+ * stays framework-agnostic. Server-component-safe.
18
+ */
19
+ interface MarketingHeaderProps {
20
+ brand?: ReactNode;
21
+ links?: MarketingNavLink[];
22
+ /** Right-aligned slot — e.g. <ThemeModeSwitch /> + sign-in/up buttons. */
23
+ trailing?: ReactNode;
24
+ renderLink?: RenderLink;
25
+ /** "mono" gives the editorial uppercase-mono nav treatment. */
26
+ variant?: "default" | "mono";
27
+ className?: string;
28
+ }
29
+ declare function MarketingHeader({ brand, links, trailing, renderLink, variant, className, }: MarketingHeaderProps): react_jsx_runtime.JSX.Element;
30
+
31
+ export { MarketingHeader, type MarketingHeaderProps, type MarketingNavLink };
@@ -0,0 +1,31 @@
1
+ import * as react_jsx_runtime from 'react/jsx-runtime';
2
+ import { ReactNode } from 'react';
3
+
4
+ type MarketingNavLink = {
5
+ href: string;
6
+ label: ReactNode;
7
+ };
8
+ type RenderLink = (props: {
9
+ href: string;
10
+ children: ReactNode;
11
+ className?: string;
12
+ }) => ReactNode;
13
+ /**
14
+ * MarketingHeader — the sticky landing-page top bar: brand on the left,
15
+ * nav links + a trailing slot (theme switch, auth buttons) on the right.
16
+ * Routing is injected via `renderLink` (falls back to <a>), so the kit
17
+ * stays framework-agnostic. Server-component-safe.
18
+ */
19
+ interface MarketingHeaderProps {
20
+ brand?: ReactNode;
21
+ links?: MarketingNavLink[];
22
+ /** Right-aligned slot — e.g. <ThemeModeSwitch /> + sign-in/up buttons. */
23
+ trailing?: ReactNode;
24
+ renderLink?: RenderLink;
25
+ /** "mono" gives the editorial uppercase-mono nav treatment. */
26
+ variant?: "default" | "mono";
27
+ className?: string;
28
+ }
29
+ declare function MarketingHeader({ brand, links, trailing, renderLink, variant, className, }: MarketingHeaderProps): react_jsx_runtime.JSX.Element;
30
+
31
+ export { MarketingHeader, type MarketingHeaderProps, type MarketingNavLink };
@@ -0,0 +1,41 @@
1
+ "use client";
2
+ import {
3
+ cn
4
+ } from "../chunk-G6SRSWXB.js";
5
+
6
+ // src/primitives/marketing-header.tsx
7
+ import { jsx, jsxs } from "react/jsx-runtime";
8
+ function MarketingHeader({
9
+ brand,
10
+ links = [],
11
+ trailing,
12
+ renderLink,
13
+ variant = "default",
14
+ className
15
+ }) {
16
+ const link = (l) => {
17
+ const cls = variant === "mono" ? "font-mono text-xs uppercase tracking-[0.18em] text-muted-foreground transition-colors hover:text-foreground" : "text-sm text-muted-foreground transition-colors hover:text-foreground";
18
+ if (renderLink)
19
+ return /* @__PURE__ */ jsx("span", { children: renderLink({ href: l.href, children: l.label, className: cls }) }, l.href);
20
+ return /* @__PURE__ */ jsx("a", { href: l.href, className: cls, children: l.label }, l.href);
21
+ };
22
+ return /* @__PURE__ */ jsx(
23
+ "header",
24
+ {
25
+ className: cn(
26
+ "sticky top-0 z-50 border-b border-border bg-background/80 backdrop-blur-sm supports-[backdrop-filter]:bg-background/70",
27
+ className
28
+ ),
29
+ children: /* @__PURE__ */ jsxs("div", { className: "mx-auto flex w-full max-w-5xl items-center justify-between px-4 py-4 md:px-6", children: [
30
+ /* @__PURE__ */ jsx("div", { className: "flex items-center", children: brand }),
31
+ /* @__PURE__ */ jsxs("nav", { className: "flex items-center gap-3 md:gap-5", children: [
32
+ links.length > 0 && /* @__PURE__ */ jsx("div", { className: "hidden items-center gap-5 sm:flex", children: links.map(link) }),
33
+ trailing && /* @__PURE__ */ jsx("div", { className: "flex items-center gap-2 md:gap-3", children: trailing })
34
+ ] })
35
+ ] })
36
+ }
37
+ );
38
+ }
39
+ export {
40
+ MarketingHeader
41
+ };
@@ -0,0 +1,8 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});"use client";
2
+
3
+
4
+ var _chunkHTTRUJQUcjs = require('../chunk-HTTRUJQU.cjs');
5
+ require('../chunk-KWLSBTB2.cjs');
6
+
7
+
8
+ exports.MarketingSection = _chunkHTTRUJQUcjs.MarketingSection;
@@ -0,0 +1,35 @@
1
+ import * as React from 'react';
2
+ import { HTMLAttributes, ElementType } from 'react';
3
+ import * as class_variance_authority_types from 'class-variance-authority/types';
4
+ import { VariantProps } from 'class-variance-authority';
5
+
6
+ /**
7
+ * MarketingSection — the canonical container every landing-page section
8
+ * sits in. Codifies the shared rhythm across the app portfolio: a
9
+ * centered max-width inner column, responsive horizontal padding, a
10
+ * vertical padding scale, and the three background "tones" the apps
11
+ * alternate between (default / muted band / inverted dark band).
12
+ *
13
+ * Server-safe; compose the section primitives (Hero, FeatureGrid, …)
14
+ * or arbitrary children inside it.
15
+ */
16
+ declare const sectionVariants: (props?: ({
17
+ tone?: "default" | "muted" | "inverted" | null | undefined;
18
+ padding?: "none" | "sm" | "lg" | "default" | null | undefined;
19
+ } & class_variance_authority_types.ClassProp) | undefined) => string;
20
+ declare const widthClass: {
21
+ readonly narrow: "max-w-3xl";
22
+ readonly wide: "max-w-5xl";
23
+ readonly widest: "max-w-6xl";
24
+ };
25
+ interface MarketingSectionProps extends HTMLAttributes<HTMLElement>, VariantProps<typeof sectionVariants> {
26
+ /** Inner column max-width. narrow=prose/hero, wide=header/footer, widest=grids. */
27
+ width?: keyof typeof widthClass;
28
+ /** Override the rendered element. Defaults to <section>. */
29
+ as?: ElementType;
30
+ /** Extra classes on the centered inner column (not the full-bleed band). */
31
+ innerClassName?: string;
32
+ }
33
+ declare const MarketingSection: React.ForwardRefExoticComponent<MarketingSectionProps & React.RefAttributes<HTMLElement>>;
34
+
35
+ export { MarketingSection, type MarketingSectionProps };
@@ -0,0 +1,35 @@
1
+ import * as React from 'react';
2
+ import { HTMLAttributes, ElementType } from 'react';
3
+ import * as class_variance_authority_types from 'class-variance-authority/types';
4
+ import { VariantProps } from 'class-variance-authority';
5
+
6
+ /**
7
+ * MarketingSection — the canonical container every landing-page section
8
+ * sits in. Codifies the shared rhythm across the app portfolio: a
9
+ * centered max-width inner column, responsive horizontal padding, a
10
+ * vertical padding scale, and the three background "tones" the apps
11
+ * alternate between (default / muted band / inverted dark band).
12
+ *
13
+ * Server-safe; compose the section primitives (Hero, FeatureGrid, …)
14
+ * or arbitrary children inside it.
15
+ */
16
+ declare const sectionVariants: (props?: ({
17
+ tone?: "default" | "muted" | "inverted" | null | undefined;
18
+ padding?: "none" | "sm" | "lg" | "default" | null | undefined;
19
+ } & class_variance_authority_types.ClassProp) | undefined) => string;
20
+ declare const widthClass: {
21
+ readonly narrow: "max-w-3xl";
22
+ readonly wide: "max-w-5xl";
23
+ readonly widest: "max-w-6xl";
24
+ };
25
+ interface MarketingSectionProps extends HTMLAttributes<HTMLElement>, VariantProps<typeof sectionVariants> {
26
+ /** Inner column max-width. narrow=prose/hero, wide=header/footer, widest=grids. */
27
+ width?: keyof typeof widthClass;
28
+ /** Override the rendered element. Defaults to <section>. */
29
+ as?: ElementType;
30
+ /** Extra classes on the centered inner column (not the full-bleed band). */
31
+ innerClassName?: string;
32
+ }
33
+ declare const MarketingSection: React.ForwardRefExoticComponent<MarketingSectionProps & React.RefAttributes<HTMLElement>>;
34
+
35
+ export { MarketingSection, type MarketingSectionProps };
@@ -0,0 +1,8 @@
1
+ "use client";
2
+ import {
3
+ MarketingSection
4
+ } from "../chunk-TUQVHPSI.js";
5
+ import "../chunk-G6SRSWXB.js";
6
+ export {
7
+ MarketingSection
8
+ };
@@ -0,0 +1,28 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});"use client";
2
+
3
+
4
+ var _chunkKWLSBTB2cjs = require('../chunk-KWLSBTB2.cjs');
5
+
6
+ // src/primitives/marketing-shell.tsx
7
+ var _react = require('react');
8
+ var _jsxruntime = require('react/jsx-runtime');
9
+ var MarketingShell = _react.forwardRef.call(void 0,
10
+ function MarketingShell2({ surface = "default", printSurface = "preserve", className, ...props }, ref) {
11
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
12
+ "main",
13
+ {
14
+ ref,
15
+ className: _chunkKWLSBTB2cjs.cn.call(void 0,
16
+ "flex min-h-screen flex-col text-foreground",
17
+ surface === "default" ? "bg-background" : "bg-muted/40",
18
+ printSurface === "default" && "print:bg-background",
19
+ className
20
+ ),
21
+ ...props
22
+ }
23
+ );
24
+ }
25
+ );
26
+
27
+
28
+ exports.MarketingShell = MarketingShell;
@@ -0,0 +1,14 @@
1
+ import * as React from 'react';
2
+ import { HTMLAttributes } from 'react';
3
+
4
+ interface MarketingShellProps extends HTMLAttributes<HTMLElement> {
5
+ surface?: "default" | "muted";
6
+ printSurface?: "preserve" | "default";
7
+ }
8
+ /**
9
+ * Full-height outer container for public marketing, legal, and editorial
10
+ * routes. Header, sections, and footer remain independently composable.
11
+ */
12
+ declare const MarketingShell: React.ForwardRefExoticComponent<MarketingShellProps & React.RefAttributes<HTMLElement>>;
13
+
14
+ export { MarketingShell, type MarketingShellProps };
@@ -0,0 +1,14 @@
1
+ import * as React from 'react';
2
+ import { HTMLAttributes } from 'react';
3
+
4
+ interface MarketingShellProps extends HTMLAttributes<HTMLElement> {
5
+ surface?: "default" | "muted";
6
+ printSurface?: "preserve" | "default";
7
+ }
8
+ /**
9
+ * Full-height outer container for public marketing, legal, and editorial
10
+ * routes. Header, sections, and footer remain independently composable.
11
+ */
12
+ declare const MarketingShell: React.ForwardRefExoticComponent<MarketingShellProps & React.RefAttributes<HTMLElement>>;
13
+
14
+ export { MarketingShell, type MarketingShellProps };
@@ -0,0 +1,28 @@
1
+ "use client";
2
+ import {
3
+ cn
4
+ } from "../chunk-G6SRSWXB.js";
5
+
6
+ // src/primitives/marketing-shell.tsx
7
+ import { forwardRef } from "react";
8
+ import { jsx } from "react/jsx-runtime";
9
+ var MarketingShell = forwardRef(
10
+ function MarketingShell2({ surface = "default", printSurface = "preserve", className, ...props }, ref) {
11
+ return /* @__PURE__ */ jsx(
12
+ "main",
13
+ {
14
+ ref,
15
+ className: cn(
16
+ "flex min-h-screen flex-col text-foreground",
17
+ surface === "default" ? "bg-background" : "bg-muted/40",
18
+ printSurface === "default" && "print:bg-background",
19
+ className
20
+ ),
21
+ ...props
22
+ }
23
+ );
24
+ }
25
+ );
26
+ export {
27
+ MarketingShell
28
+ };
@@ -21,16 +21,16 @@ var _chunk373W6VADcjs = require('../chunk-373W6VAD.cjs');
21
21
 
22
22
 
23
23
  var _chunkT2ZFSPE4cjs = require('../chunk-T2ZFSPE4.cjs');
24
- require('../chunk-VGTINL5Q.cjs');
25
-
26
-
27
- var _chunkI6GUOEBOcjs = require('../chunk-I6GUOEBO.cjs');
28
24
 
29
25
 
30
26
  var _chunkCLYAASFNcjs = require('../chunk-CLYAASFN.cjs');
31
27
 
32
28
 
33
29
  var _chunkVBPPFC7Xcjs = require('../chunk-VBPPFC7X.cjs');
30
+ require('../chunk-VGTINL5Q.cjs');
31
+
32
+
33
+ var _chunkI6GUOEBOcjs = require('../chunk-I6GUOEBO.cjs');
34
34
 
35
35
 
36
36
  var _chunkJDEXZGIYcjs = require('../chunk-JDEXZGIY.cjs');
@@ -21,16 +21,16 @@ import {
21
21
  import {
22
22
  Icon
23
23
  } from "../chunk-KN4RPX35.js";
24
- import "../chunk-H7TETFLB.js";
25
- import {
26
- Badge
27
- } from "../chunk-D4ZL2OEQ.js";
28
24
  import {
29
25
  EmptyState
30
26
  } from "../chunk-ET4THLFX.js";
31
27
  import {
32
28
  Skeleton
33
29
  } from "../chunk-YEW65ASC.js";
30
+ import "../chunk-H7TETFLB.js";
31
+ import {
32
+ Badge
33
+ } from "../chunk-D4ZL2OEQ.js";
34
34
  import {
35
35
  Button
36
36
  } from "../chunk-W326GKML.js";
@@ -1,72 +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 _chunkY6X6XDHEcjs = require('../chunk-Y6X6XDHE.cjs');
5
+ require('../chunk-KWLSBTB2.cjs');
5
6
 
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
7
 
71
-
72
- exports.PageHeader = PageHeader;
8
+ exports.PageHeader = _chunkY6X6XDHEcjs.PageHeader;
@@ -1,72 +1,8 @@
1
1
  "use client";
2
2
  import {
3
- cn
4
- } from "../chunk-G6SRSWXB.js";
5
-
6
- // src/primitives/page-header.tsx
7
- import { jsx, jsxs } from "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__ */ jsxs(
21
- "div",
22
- {
23
- className: cn(
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__ */ jsxs("div", { className: cn("min-w-0 flex-1", display ? "space-y-2" : "space-y-1.5"), children: [
34
- eyebrow && /* @__PURE__ */ jsx("p", { className: "font-mono text-xs uppercase tracking-widest text-muted-foreground", children: eyebrow }),
35
- /* @__PURE__ */ jsx(
36
- "h1",
37
- {
38
- className: cn(
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__ */ jsx(
46
- "p",
47
- {
48
- className: cn(
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__ */ jsx(
57
- "div",
58
- {
59
- className: cn(
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
- }
3
+ PageHeader
4
+ } from "../chunk-VWOWPNKT.js";
5
+ import "../chunk-G6SRSWXB.js";
70
6
  export {
71
7
  PageHeader
72
8
  };