@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,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
+ };
@@ -11,15 +11,15 @@ var _chunkVKYRB37Ocjs = require('../chunk-VKYRB37O.cjs');
11
11
  var _chunkJ467F76Icjs = require('../chunk-J467F76I.cjs');
12
12
 
13
13
 
14
- var _chunkR3DQS6U4cjs = require('../chunk-R3DQS6U4.cjs');
15
-
16
-
17
14
  var _chunk2HV2KKOEcjs = require('../chunk-2HV2KKOE.cjs');
18
15
 
19
16
 
20
17
  var _chunk373W6VADcjs = require('../chunk-373W6VAD.cjs');
21
18
 
22
19
 
20
+ var _chunkR3DQS6U4cjs = require('../chunk-R3DQS6U4.cjs');
21
+
22
+
23
23
  var _chunkT2ZFSPE4cjs = require('../chunk-T2ZFSPE4.cjs');
24
24
  require('../chunk-VGTINL5Q.cjs');
25
25
 
@@ -9,15 +9,15 @@ import {
9
9
  import {
10
10
  Stack
11
11
  } from "../chunk-WNWBKEWV.js";
12
- import {
13
- Card
14
- } from "../chunk-35YMAIEL.js";
15
12
  import {
16
13
  Textarea
17
14
  } from "../chunk-6FC65AZQ.js";
18
15
  import {
19
16
  Text
20
17
  } from "../chunk-EIY5LLSP.js";
18
+ import {
19
+ Card
20
+ } from "../chunk-35YMAIEL.js";
21
21
  import {
22
22
  Icon
23
23
  } from "../chunk-KN4RPX35.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
  };
@@ -1,46 +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 _chunkFYNHRHVYcjs = require('../chunk-FYNHRHVY.cjs');
5
+ require('../chunk-KWLSBTB2.cjs');
5
6
 
6
- // src/primitives/page-shell.tsx
7
- var _react = require('react');
8
- var _jsxruntime = require('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 = _react.forwardRef.call(void 0,
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__ */ _jsxruntime.jsx.call(void 0,
24
- Tag,
25
- {
26
- ref,
27
- className: _chunkKWLSBTB2cjs.cn.call(void 0,
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
7
 
45
-
46
- exports.PageShell = PageShell;
8
+ exports.PageShell = _chunkFYNHRHVYcjs.PageShell;
@@ -1,46 +1,8 @@
1
1
  "use client";
2
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
- );
3
+ PageShell
4
+ } from "../chunk-WTVL2FK7.js";
5
+ import "../chunk-G6SRSWXB.js";
44
6
  export {
45
7
  PageShell
46
8
  };
@@ -2,62 +2,9 @@
2
2
  "use client";
3
3
 
4
4
 
5
+ var _chunkB54ZEKBGcjs = require('../chunk-B54ZEKBG.cjs');
6
+ require('../chunk-DFB4ILN6.cjs');
7
+ require('../chunk-KWLSBTB2.cjs');
5
8
 
6
9
 
7
- var _chunkDFB4ILN6cjs = require('../chunk-DFB4ILN6.cjs');
8
-
9
-
10
- var _chunkKWLSBTB2cjs = require('../chunk-KWLSBTB2.cjs');
11
-
12
- // src/primitives/page-tabs.tsx
13
- var _jsxruntime = require('react/jsx-runtime');
14
- function PageTabs({
15
- value,
16
- onValueChange,
17
- items,
18
- ariaLabel,
19
- layout = "equal",
20
- className
21
- }) {
22
- if (items.length === 0) return null;
23
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
24
- _chunkDFB4ILN6cjs.Tabs,
25
- {
26
- value,
27
- onValueChange: (next) => onValueChange(next),
28
- className,
29
- children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
30
- _chunkDFB4ILN6cjs.TabsList,
31
- {
32
- "aria-label": ariaLabel,
33
- scrollable: layout === "scroll",
34
- width: "full",
35
- className: _chunkKWLSBTB2cjs.cn.call(void 0,
36
- "w-full",
37
- layout === "equal" ? "grid h-auto p-1.5" : "justify-start"
38
- ),
39
- style: layout === "equal" ? { gridTemplateColumns: `repeat(${items.length}, minmax(0, 1fr))` } : void 0,
40
- children: items.map((item) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
41
- _chunkDFB4ILN6cjs.TabsTrigger,
42
- {
43
- value: item.value,
44
- className: _chunkKWLSBTB2cjs.cn.call(void 0,
45
- layout === "equal" && "min-h-11 gap-2 text-sm sm:text-base",
46
- layout === "scroll" && "shrink-0 gap-2"
47
- ),
48
- children: [
49
- item.icon,
50
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "truncate", children: item.label }),
51
- item.badge && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "shrink-0", children: item.badge })
52
- ]
53
- },
54
- item.value
55
- ))
56
- }
57
- )
58
- }
59
- );
60
- }
61
-
62
-
63
- exports.PageTabs = PageTabs;
10
+ exports.PageTabs = _chunkB54ZEKBGcjs.PageTabs;
@@ -1,63 +1,10 @@
1
1
  "use client";
2
2
  "use client";
3
3
  import {
4
- Tabs,
5
- TabsList,
6
- TabsTrigger
7
- } from "../chunk-7CRDYV3C.js";
8
- import {
9
- cn
10
- } from "../chunk-G6SRSWXB.js";
11
-
12
- // src/primitives/page-tabs.tsx
13
- import { jsx, jsxs } from "react/jsx-runtime";
14
- function PageTabs({
15
- value,
16
- onValueChange,
17
- items,
18
- ariaLabel,
19
- layout = "equal",
20
- className
21
- }) {
22
- if (items.length === 0) return null;
23
- return /* @__PURE__ */ jsx(
24
- Tabs,
25
- {
26
- value,
27
- onValueChange: (next) => onValueChange(next),
28
- className,
29
- children: /* @__PURE__ */ jsx(
30
- TabsList,
31
- {
32
- "aria-label": ariaLabel,
33
- scrollable: layout === "scroll",
34
- width: "full",
35
- className: cn(
36
- "w-full",
37
- layout === "equal" ? "grid h-auto p-1.5" : "justify-start"
38
- ),
39
- style: layout === "equal" ? { gridTemplateColumns: `repeat(${items.length}, minmax(0, 1fr))` } : void 0,
40
- children: items.map((item) => /* @__PURE__ */ jsxs(
41
- TabsTrigger,
42
- {
43
- value: item.value,
44
- className: cn(
45
- layout === "equal" && "min-h-11 gap-2 text-sm sm:text-base",
46
- layout === "scroll" && "shrink-0 gap-2"
47
- ),
48
- children: [
49
- item.icon,
50
- /* @__PURE__ */ jsx("span", { className: "truncate", children: item.label }),
51
- item.badge && /* @__PURE__ */ jsx("span", { className: "shrink-0", children: item.badge })
52
- ]
53
- },
54
- item.value
55
- ))
56
- }
57
- )
58
- }
59
- );
60
- }
4
+ PageTabs
5
+ } from "../chunk-XH2I3YJ6.js";
6
+ import "../chunk-7CRDYV3C.js";
7
+ import "../chunk-G6SRSWXB.js";
61
8
  export {
62
9
  PageTabs
63
10
  };
@@ -0,0 +1,85 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});"use client";
2
+ "use client";
3
+
4
+
5
+ var _chunkJDEXZGIYcjs = require('../chunk-JDEXZGIY.cjs');
6
+
7
+
8
+ var _chunkKWLSBTB2cjs = require('../chunk-KWLSBTB2.cjs');
9
+
10
+ // src/primitives/pager.tsx
11
+ var _lucidereact = require('lucide-react');
12
+ var _jsxruntime = require('react/jsx-runtime');
13
+ function Pager({
14
+ offset,
15
+ limit,
16
+ total,
17
+ onOffsetChange,
18
+ noun = "results",
19
+ formatRange,
20
+ disabled = false,
21
+ size = "sm",
22
+ children,
23
+ hideWhenSinglePage = true,
24
+ className
25
+ }) {
26
+ if (hideWhenSinglePage && total <= limit) return null;
27
+ const from = total === 0 ? 0 : Math.min(offset, Math.max(total - 1, 0)) + 1;
28
+ const to = Math.min(offset + limit, total);
29
+ const canPrev = offset > 0 && !disabled;
30
+ const canNext = offset + limit < total && !disabled;
31
+ return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
32
+ "div",
33
+ {
34
+ className: _chunkKWLSBTB2cjs.cn.call(void 0,
35
+ "flex items-center justify-between gap-3 pt-3 text-xs text-muted-foreground",
36
+ className
37
+ ),
38
+ children: [
39
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "tabular-nums", children: formatRange ? formatRange(from, to, total) : total === 0 ? `No ${noun}` : /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
40
+ from,
41
+ "\u2013",
42
+ to,
43
+ " of ",
44
+ total,
45
+ " ",
46
+ noun
47
+ ] }) }),
48
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-2", children: [
49
+ children,
50
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
51
+ _chunkJDEXZGIYcjs.Button,
52
+ {
53
+ type: "button",
54
+ size,
55
+ variant: "outline",
56
+ disabled: !canPrev,
57
+ onClick: () => onOffsetChange(Math.max(offset - limit, 0)),
58
+ children: [
59
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.ChevronLeft, { className: "h-4 w-4" }),
60
+ "Previous"
61
+ ]
62
+ }
63
+ ),
64
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
65
+ _chunkJDEXZGIYcjs.Button,
66
+ {
67
+ type: "button",
68
+ size,
69
+ variant: "outline",
70
+ disabled: !canNext,
71
+ onClick: () => onOffsetChange(offset + limit),
72
+ children: [
73
+ "Next",
74
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.ChevronRight, { className: "h-4 w-4" })
75
+ ]
76
+ }
77
+ )
78
+ ] })
79
+ ]
80
+ }
81
+ );
82
+ }
83
+
84
+
85
+ exports.Pager = Pager;