@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,39 @@
1
+ import * as react_jsx_runtime from 'react/jsx-runtime';
2
+ import { ReactNode } from 'react';
3
+
4
+ interface PagerProps {
5
+ /** Index of the first row on the current page. */
6
+ offset: number;
7
+ /** Rows per page. */
8
+ limit: number;
9
+ /** Total rows across all pages. */
10
+ total: number;
11
+ onOffsetChange: (offset: number) => void;
12
+ /** Noun in the default range label. Defaults to "results". */
13
+ noun?: string;
14
+ /** Replaces the whole range label — for counts that aren't row-shaped. */
15
+ formatRange?: (from: number, to: number, total: number) => ReactNode;
16
+ /** Blocks both buttons — use while the next page is in flight. */
17
+ disabled?: boolean;
18
+ size?: "sm" | "default";
19
+ /** Extra content between the label and the buttons — a page-size select. */
20
+ children?: ReactNode;
21
+ /**
22
+ * Renders nothing when everything fits on one page. Defaults to true.
23
+ * Set false to keep the row count visible at all times.
24
+ */
25
+ hideWhenSinglePage?: boolean;
26
+ className?: string;
27
+ }
28
+ /**
29
+ * Offset/limit pager — "1–50 of 320" with prev/next.
30
+ *
31
+ * Distinct from `<Pagination>`, which is the ShadCN numbered-link strip
32
+ * for URL-driven navigation. This one is for server-paged lists that
33
+ * hold offset in state, which is most admin and dashboard tables.
34
+ *
35
+ * Purely presentational: it computes the next offset and hands it back.
36
+ */
37
+ declare function Pager({ offset, limit, total, onOffsetChange, noun, formatRange, disabled, size, children, hideWhenSinglePage, className, }: PagerProps): react_jsx_runtime.JSX.Element | null;
38
+
39
+ export { Pager, type PagerProps };
@@ -0,0 +1,39 @@
1
+ import * as react_jsx_runtime from 'react/jsx-runtime';
2
+ import { ReactNode } from 'react';
3
+
4
+ interface PagerProps {
5
+ /** Index of the first row on the current page. */
6
+ offset: number;
7
+ /** Rows per page. */
8
+ limit: number;
9
+ /** Total rows across all pages. */
10
+ total: number;
11
+ onOffsetChange: (offset: number) => void;
12
+ /** Noun in the default range label. Defaults to "results". */
13
+ noun?: string;
14
+ /** Replaces the whole range label — for counts that aren't row-shaped. */
15
+ formatRange?: (from: number, to: number, total: number) => ReactNode;
16
+ /** Blocks both buttons — use while the next page is in flight. */
17
+ disabled?: boolean;
18
+ size?: "sm" | "default";
19
+ /** Extra content between the label and the buttons — a page-size select. */
20
+ children?: ReactNode;
21
+ /**
22
+ * Renders nothing when everything fits on one page. Defaults to true.
23
+ * Set false to keep the row count visible at all times.
24
+ */
25
+ hideWhenSinglePage?: boolean;
26
+ className?: string;
27
+ }
28
+ /**
29
+ * Offset/limit pager — "1–50 of 320" with prev/next.
30
+ *
31
+ * Distinct from `<Pagination>`, which is the ShadCN numbered-link strip
32
+ * for URL-driven navigation. This one is for server-paged lists that
33
+ * hold offset in state, which is most admin and dashboard tables.
34
+ *
35
+ * Purely presentational: it computes the next offset and hands it back.
36
+ */
37
+ declare function Pager({ offset, limit, total, onOffsetChange, noun, formatRange, disabled, size, children, hideWhenSinglePage, className, }: PagerProps): react_jsx_runtime.JSX.Element | null;
38
+
39
+ export { Pager, type PagerProps };
@@ -0,0 +1,85 @@
1
+ "use client";
2
+ "use client";
3
+ import {
4
+ Button
5
+ } from "../chunk-W326GKML.js";
6
+ import {
7
+ cn
8
+ } from "../chunk-G6SRSWXB.js";
9
+
10
+ // src/primitives/pager.tsx
11
+ import { ChevronLeft, ChevronRight } from "lucide-react";
12
+ import { Fragment, jsx, jsxs } from "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__ */ jsxs(
32
+ "div",
33
+ {
34
+ className: cn(
35
+ "flex items-center justify-between gap-3 pt-3 text-xs text-muted-foreground",
36
+ className
37
+ ),
38
+ children: [
39
+ /* @__PURE__ */ jsx("span", { className: "tabular-nums", children: formatRange ? formatRange(from, to, total) : total === 0 ? `No ${noun}` : /* @__PURE__ */ jsxs(Fragment, { children: [
40
+ from,
41
+ "\u2013",
42
+ to,
43
+ " of ",
44
+ total,
45
+ " ",
46
+ noun
47
+ ] }) }),
48
+ /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2", children: [
49
+ children,
50
+ /* @__PURE__ */ jsxs(
51
+ 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__ */ jsx(ChevronLeft, { className: "h-4 w-4" }),
60
+ "Previous"
61
+ ]
62
+ }
63
+ ),
64
+ /* @__PURE__ */ jsxs(
65
+ Button,
66
+ {
67
+ type: "button",
68
+ size,
69
+ variant: "outline",
70
+ disabled: !canNext,
71
+ onClick: () => onOffsetChange(offset + limit),
72
+ children: [
73
+ "Next",
74
+ /* @__PURE__ */ jsx(ChevronRight, { className: "h-4 w-4" })
75
+ ]
76
+ }
77
+ )
78
+ ] })
79
+ ]
80
+ }
81
+ );
82
+ }
83
+ export {
84
+ Pager
85
+ };
@@ -0,0 +1,119 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { newObj[key] = obj[key]; } } } newObj.default = obj; return newObj; } }"use client";
2
+
3
+
4
+ var _chunkJDEXZGIYcjs = require('../chunk-JDEXZGIY.cjs');
5
+
6
+
7
+ var _chunkKWLSBTB2cjs = require('../chunk-KWLSBTB2.cjs');
8
+
9
+ // src/primitives/pagination.tsx
10
+ var _react = require('react'); var React = _interopRequireWildcard(_react);
11
+
12
+
13
+
14
+
15
+ var _lia = require('react-icons/lia');
16
+ var _jsxruntime = require('react/jsx-runtime');
17
+ var Pagination = ({ className, marginTop = "none", ...props }) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
18
+ "nav",
19
+ {
20
+ role: "navigation",
21
+ "aria-label": "pagination",
22
+ className: _chunkKWLSBTB2cjs.cn.call(void 0, "mx-auto flex w-full justify-center", marginTop === "md" && "mt-4", className),
23
+ ...props
24
+ }
25
+ );
26
+ Pagination.displayName = "Pagination";
27
+ var PaginationContent = React.forwardRef(({ className, width = "auto", justify = "start", ...props }, ref) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
28
+ "ul",
29
+ {
30
+ ref,
31
+ className: _chunkKWLSBTB2cjs.cn.call(void 0, "flex flex-row items-center gap-1", width === "full" && "w-full", justify === "between" && "justify-between", className),
32
+ ...props
33
+ }
34
+ ));
35
+ PaginationContent.displayName = "PaginationContent";
36
+ var PaginationItem = React.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "li", { ref, className: _chunkKWLSBTB2cjs.cn.call(void 0, "", className), ...props }));
37
+ PaginationItem.displayName = "PaginationItem";
38
+ var PaginationLink = ({
39
+ className,
40
+ isActive,
41
+ disabled = false,
42
+ size = "icon",
43
+ ...props
44
+ }) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
45
+ "a",
46
+ {
47
+ "aria-current": isActive ? "page" : void 0,
48
+ "aria-disabled": disabled || void 0,
49
+ className: _chunkKWLSBTB2cjs.cn.call(void 0,
50
+ _chunkJDEXZGIYcjs.buttonVariants.call(void 0, {
51
+ variant: isActive ? "outline" : "ghost",
52
+ size
53
+ }),
54
+ disabled && "pointer-events-none opacity-50",
55
+ className
56
+ ),
57
+ ...props
58
+ }
59
+ );
60
+ PaginationLink.displayName = "PaginationLink";
61
+ var PaginationPrevious = ({
62
+ className,
63
+ ...props
64
+ }) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
65
+ PaginationLink,
66
+ {
67
+ "aria-label": "Go to previous page",
68
+ size: "default",
69
+ className: _chunkKWLSBTB2cjs.cn.call(void 0, "gap-1 pl-2.5", className),
70
+ ...props,
71
+ children: [
72
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lia.LiaChevronLeftSolid, { className: "h-4 w-4" }),
73
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { children: "Previous" })
74
+ ]
75
+ }
76
+ );
77
+ PaginationPrevious.displayName = "PaginationPrevious";
78
+ var PaginationNext = ({
79
+ className,
80
+ ...props
81
+ }) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
82
+ PaginationLink,
83
+ {
84
+ "aria-label": "Go to next page",
85
+ size: "default",
86
+ className: _chunkKWLSBTB2cjs.cn.call(void 0, "gap-1 pr-2.5", className),
87
+ ...props,
88
+ children: [
89
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { children: "Next" }),
90
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lia.LiaChevronRightSolid, { className: "h-4 w-4" })
91
+ ]
92
+ }
93
+ );
94
+ PaginationNext.displayName = "PaginationNext";
95
+ var PaginationEllipsis = ({
96
+ className,
97
+ ...props
98
+ }) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
99
+ "span",
100
+ {
101
+ "aria-hidden": true,
102
+ className: _chunkKWLSBTB2cjs.cn.call(void 0, "flex h-9 w-9 items-center justify-center", className),
103
+ ...props,
104
+ children: [
105
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lia.LiaEllipsisHSolid, { className: "h-4 w-4" }),
106
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "sr-only", children: "More pages" })
107
+ ]
108
+ }
109
+ );
110
+ PaginationEllipsis.displayName = "PaginationEllipsis";
111
+
112
+
113
+
114
+
115
+
116
+
117
+
118
+
119
+ exports.Pagination = Pagination; exports.PaginationContent = PaginationContent; exports.PaginationEllipsis = PaginationEllipsis; exports.PaginationItem = PaginationItem; exports.PaginationLink = PaginationLink; exports.PaginationNext = PaginationNext; exports.PaginationPrevious = PaginationPrevious;
@@ -0,0 +1,41 @@
1
+ import * as react_jsx_runtime from 'react/jsx-runtime';
2
+ import * as React from 'react';
3
+ import { ButtonProps } from './button.cjs';
4
+ import 'class-variance-authority/types';
5
+ import 'class-variance-authority';
6
+
7
+ interface PaginationProps extends React.ComponentProps<"nav"> {
8
+ marginTop?: "none" | "md";
9
+ }
10
+ declare const Pagination: {
11
+ ({ className, marginTop, ...props }: PaginationProps): react_jsx_runtime.JSX.Element;
12
+ displayName: string;
13
+ };
14
+ interface PaginationContentProps extends React.ComponentProps<"ul"> {
15
+ width?: "auto" | "full";
16
+ justify?: "start" | "between";
17
+ }
18
+ declare const PaginationContent: React.ForwardRefExoticComponent<Omit<PaginationContentProps, "ref"> & React.RefAttributes<HTMLUListElement>>;
19
+ declare const PaginationItem: React.ForwardRefExoticComponent<Omit<React.DetailedHTMLProps<React.LiHTMLAttributes<HTMLLIElement>, HTMLLIElement>, "ref"> & React.RefAttributes<HTMLLIElement>>;
20
+ type PaginationLinkProps = {
21
+ isActive?: boolean;
22
+ disabled?: boolean;
23
+ } & Pick<ButtonProps, "size"> & React.ComponentProps<"a">;
24
+ declare const PaginationLink: {
25
+ ({ className, isActive, disabled, size, ...props }: PaginationLinkProps): react_jsx_runtime.JSX.Element;
26
+ displayName: string;
27
+ };
28
+ declare const PaginationPrevious: {
29
+ ({ className, ...props }: React.ComponentProps<typeof PaginationLink>): react_jsx_runtime.JSX.Element;
30
+ displayName: string;
31
+ };
32
+ declare const PaginationNext: {
33
+ ({ className, ...props }: React.ComponentProps<typeof PaginationLink>): react_jsx_runtime.JSX.Element;
34
+ displayName: string;
35
+ };
36
+ declare const PaginationEllipsis: {
37
+ ({ className, ...props }: React.ComponentProps<"span">): react_jsx_runtime.JSX.Element;
38
+ displayName: string;
39
+ };
40
+
41
+ export { Pagination, PaginationContent, type PaginationContentProps, PaginationEllipsis, PaginationItem, PaginationLink, PaginationNext, PaginationPrevious, type PaginationProps };
@@ -0,0 +1,41 @@
1
+ import * as react_jsx_runtime from 'react/jsx-runtime';
2
+ import * as React from 'react';
3
+ import { ButtonProps } from './button.js';
4
+ import 'class-variance-authority/types';
5
+ import 'class-variance-authority';
6
+
7
+ interface PaginationProps extends React.ComponentProps<"nav"> {
8
+ marginTop?: "none" | "md";
9
+ }
10
+ declare const Pagination: {
11
+ ({ className, marginTop, ...props }: PaginationProps): react_jsx_runtime.JSX.Element;
12
+ displayName: string;
13
+ };
14
+ interface PaginationContentProps extends React.ComponentProps<"ul"> {
15
+ width?: "auto" | "full";
16
+ justify?: "start" | "between";
17
+ }
18
+ declare const PaginationContent: React.ForwardRefExoticComponent<Omit<PaginationContentProps, "ref"> & React.RefAttributes<HTMLUListElement>>;
19
+ declare const PaginationItem: React.ForwardRefExoticComponent<Omit<React.DetailedHTMLProps<React.LiHTMLAttributes<HTMLLIElement>, HTMLLIElement>, "ref"> & React.RefAttributes<HTMLLIElement>>;
20
+ type PaginationLinkProps = {
21
+ isActive?: boolean;
22
+ disabled?: boolean;
23
+ } & Pick<ButtonProps, "size"> & React.ComponentProps<"a">;
24
+ declare const PaginationLink: {
25
+ ({ className, isActive, disabled, size, ...props }: PaginationLinkProps): react_jsx_runtime.JSX.Element;
26
+ displayName: string;
27
+ };
28
+ declare const PaginationPrevious: {
29
+ ({ className, ...props }: React.ComponentProps<typeof PaginationLink>): react_jsx_runtime.JSX.Element;
30
+ displayName: string;
31
+ };
32
+ declare const PaginationNext: {
33
+ ({ className, ...props }: React.ComponentProps<typeof PaginationLink>): react_jsx_runtime.JSX.Element;
34
+ displayName: string;
35
+ };
36
+ declare const PaginationEllipsis: {
37
+ ({ className, ...props }: React.ComponentProps<"span">): react_jsx_runtime.JSX.Element;
38
+ displayName: string;
39
+ };
40
+
41
+ export { Pagination, PaginationContent, type PaginationContentProps, PaginationEllipsis, PaginationItem, PaginationLink, PaginationNext, PaginationPrevious, type PaginationProps };
@@ -0,0 +1,119 @@
1
+ "use client";
2
+ import {
3
+ buttonVariants
4
+ } from "../chunk-W326GKML.js";
5
+ import {
6
+ cn
7
+ } from "../chunk-G6SRSWXB.js";
8
+
9
+ // src/primitives/pagination.tsx
10
+ import * as React from "react";
11
+ import {
12
+ LiaChevronLeftSolid,
13
+ LiaChevronRightSolid,
14
+ LiaEllipsisHSolid
15
+ } from "react-icons/lia";
16
+ import { jsx, jsxs } from "react/jsx-runtime";
17
+ var Pagination = ({ className, marginTop = "none", ...props }) => /* @__PURE__ */ jsx(
18
+ "nav",
19
+ {
20
+ role: "navigation",
21
+ "aria-label": "pagination",
22
+ className: cn("mx-auto flex w-full justify-center", marginTop === "md" && "mt-4", className),
23
+ ...props
24
+ }
25
+ );
26
+ Pagination.displayName = "Pagination";
27
+ var PaginationContent = React.forwardRef(({ className, width = "auto", justify = "start", ...props }, ref) => /* @__PURE__ */ jsx(
28
+ "ul",
29
+ {
30
+ ref,
31
+ className: cn("flex flex-row items-center gap-1", width === "full" && "w-full", justify === "between" && "justify-between", className),
32
+ ...props
33
+ }
34
+ ));
35
+ PaginationContent.displayName = "PaginationContent";
36
+ var PaginationItem = React.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx("li", { ref, className: cn("", className), ...props }));
37
+ PaginationItem.displayName = "PaginationItem";
38
+ var PaginationLink = ({
39
+ className,
40
+ isActive,
41
+ disabled = false,
42
+ size = "icon",
43
+ ...props
44
+ }) => /* @__PURE__ */ jsx(
45
+ "a",
46
+ {
47
+ "aria-current": isActive ? "page" : void 0,
48
+ "aria-disabled": disabled || void 0,
49
+ className: cn(
50
+ buttonVariants({
51
+ variant: isActive ? "outline" : "ghost",
52
+ size
53
+ }),
54
+ disabled && "pointer-events-none opacity-50",
55
+ className
56
+ ),
57
+ ...props
58
+ }
59
+ );
60
+ PaginationLink.displayName = "PaginationLink";
61
+ var PaginationPrevious = ({
62
+ className,
63
+ ...props
64
+ }) => /* @__PURE__ */ jsxs(
65
+ PaginationLink,
66
+ {
67
+ "aria-label": "Go to previous page",
68
+ size: "default",
69
+ className: cn("gap-1 pl-2.5", className),
70
+ ...props,
71
+ children: [
72
+ /* @__PURE__ */ jsx(LiaChevronLeftSolid, { className: "h-4 w-4" }),
73
+ /* @__PURE__ */ jsx("span", { children: "Previous" })
74
+ ]
75
+ }
76
+ );
77
+ PaginationPrevious.displayName = "PaginationPrevious";
78
+ var PaginationNext = ({
79
+ className,
80
+ ...props
81
+ }) => /* @__PURE__ */ jsxs(
82
+ PaginationLink,
83
+ {
84
+ "aria-label": "Go to next page",
85
+ size: "default",
86
+ className: cn("gap-1 pr-2.5", className),
87
+ ...props,
88
+ children: [
89
+ /* @__PURE__ */ jsx("span", { children: "Next" }),
90
+ /* @__PURE__ */ jsx(LiaChevronRightSolid, { className: "h-4 w-4" })
91
+ ]
92
+ }
93
+ );
94
+ PaginationNext.displayName = "PaginationNext";
95
+ var PaginationEllipsis = ({
96
+ className,
97
+ ...props
98
+ }) => /* @__PURE__ */ jsxs(
99
+ "span",
100
+ {
101
+ "aria-hidden": true,
102
+ className: cn("flex h-9 w-9 items-center justify-center", className),
103
+ ...props,
104
+ children: [
105
+ /* @__PURE__ */ jsx(LiaEllipsisHSolid, { className: "h-4 w-4" }),
106
+ /* @__PURE__ */ jsx("span", { className: "sr-only", children: "More pages" })
107
+ ]
108
+ }
109
+ );
110
+ PaginationEllipsis.displayName = "PaginationEllipsis";
111
+ export {
112
+ Pagination,
113
+ PaginationContent,
114
+ PaginationEllipsis,
115
+ PaginationItem,
116
+ PaginationLink,
117
+ PaginationNext,
118
+ PaginationPrevious
119
+ };
@@ -25,6 +25,15 @@ var PosterShell = _react.forwardRef.call(void 0, function PosterShell2({ colours
25
25
  var PosterMain = _react.forwardRef.call(void 0, function PosterMain2(props, ref) {
26
26
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "main", { ref, "data-slot": "poster-main", ...props });
27
27
  });
28
+ var PosterBanner = _react.forwardRef.call(void 0, function PosterBanner2({ action, children, ...props }, ref) {
29
+ return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "a", { ref, "data-slot": "poster-banner", ...props, children: [
30
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { children }),
31
+ action ? /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
32
+ " ",
33
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { "data-slot": "poster-banner-action", children: action })
34
+ ] }) : null
35
+ ] });
36
+ });
28
37
  var PosterHeader = _react.forwardRef.call(void 0, function PosterHeader2({ brand, nav, action, className, ...props }, ref) {
29
38
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "header", { ref, "data-slot": "poster-header", className, ...props, children: [
30
39
  brand,
@@ -393,4 +402,5 @@ var PosterMockNote = _react.forwardRef.call(void 0, function PosterMockNote2(pro
393
402
 
394
403
 
395
404
 
396
- exports.PosterAction = PosterAction; exports.PosterBand = PosterBand; exports.PosterBreak = PosterBreak; exports.PosterCalculator = PosterCalculator; exports.PosterCallList = PosterCallList; exports.PosterClaims = PosterClaims; exports.PosterColumns = PosterColumns; exports.PosterCopyText = PosterCopyText; exports.PosterCost = PosterCost; exports.PosterDisclosure = PosterDisclosure; exports.PosterFacts = PosterFacts; exports.PosterFigures = PosterFigures; exports.PosterFlow = PosterFlow; exports.PosterFootnote = PosterFootnote; exports.PosterGrade = PosterGrade; exports.PosterHeader = PosterHeader; exports.PosterHeaderAction = PosterHeaderAction; exports.PosterHero = PosterHero; exports.PosterMain = PosterMain; exports.PosterMark = PosterMark; exports.PosterMockNote = PosterMockNote; exports.PosterMoreLink = PosterMoreLink; exports.PosterNav = PosterNav; exports.PosterNavLink = PosterNavLink; exports.PosterNextLink = PosterNextLink; exports.PosterNote = PosterNote; exports.PosterPeople = PosterPeople; exports.PosterQuote = PosterQuote; exports.PosterRange = PosterRange; exports.PosterRanges = PosterRanges; exports.PosterScreen = PosterScreen; exports.PosterScreenDetail = PosterScreenDetail; exports.PosterScreenLead = PosterScreenLead; exports.PosterScreenMessage = PosterScreenMessage; exports.PosterScreenPane = PosterScreenPane; exports.PosterScreenPerson = PosterScreenPerson; exports.PosterScreenQueue = PosterScreenQueue; exports.PosterScreenRows = PosterScreenRows; exports.PosterScreenSplit = PosterScreenSplit; exports.PosterScreenTabs = PosterScreenTabs; exports.PosterScreenTrace = PosterScreenTrace; exports.PosterShell = PosterShell; exports.PosterSmallPrint = PosterSmallPrint; exports.PosterStatement = PosterStatement; exports.PosterStats = PosterStats; exports.PosterSteps = PosterSteps; exports.PosterSubhead = PosterSubhead; exports.PosterSwitch = PosterSwitch; exports.PosterTextLink = PosterTextLink; exports.PosterTicks = PosterTicks;
405
+
406
+ exports.PosterAction = PosterAction; exports.PosterBand = PosterBand; exports.PosterBanner = PosterBanner; exports.PosterBreak = PosterBreak; exports.PosterCalculator = PosterCalculator; exports.PosterCallList = PosterCallList; exports.PosterClaims = PosterClaims; exports.PosterColumns = PosterColumns; exports.PosterCopyText = PosterCopyText; exports.PosterCost = PosterCost; exports.PosterDisclosure = PosterDisclosure; exports.PosterFacts = PosterFacts; exports.PosterFigures = PosterFigures; exports.PosterFlow = PosterFlow; exports.PosterFootnote = PosterFootnote; exports.PosterGrade = PosterGrade; exports.PosterHeader = PosterHeader; exports.PosterHeaderAction = PosterHeaderAction; exports.PosterHero = PosterHero; exports.PosterMain = PosterMain; exports.PosterMark = PosterMark; exports.PosterMockNote = PosterMockNote; exports.PosterMoreLink = PosterMoreLink; exports.PosterNav = PosterNav; exports.PosterNavLink = PosterNavLink; exports.PosterNextLink = PosterNextLink; exports.PosterNote = PosterNote; exports.PosterPeople = PosterPeople; exports.PosterQuote = PosterQuote; exports.PosterRange = PosterRange; exports.PosterRanges = PosterRanges; exports.PosterScreen = PosterScreen; exports.PosterScreenDetail = PosterScreenDetail; exports.PosterScreenLead = PosterScreenLead; exports.PosterScreenMessage = PosterScreenMessage; exports.PosterScreenPane = PosterScreenPane; exports.PosterScreenPerson = PosterScreenPerson; exports.PosterScreenQueue = PosterScreenQueue; exports.PosterScreenRows = PosterScreenRows; exports.PosterScreenSplit = PosterScreenSplit; exports.PosterScreenTabs = PosterScreenTabs; exports.PosterScreenTrace = PosterScreenTrace; exports.PosterShell = PosterShell; exports.PosterSmallPrint = PosterSmallPrint; exports.PosterStatement = PosterStatement; exports.PosterStats = PosterStats; exports.PosterSteps = PosterSteps; exports.PosterSubhead = PosterSubhead; exports.PosterSwitch = PosterSwitch; exports.PosterTextLink = PosterTextLink; exports.PosterTicks = PosterTicks;
@@ -39,6 +39,17 @@ interface PosterShellProps extends HTMLAttributes<HTMLDivElement> {
39
39
  declare const PosterShell: React.ForwardRefExoticComponent<PosterShellProps & React.RefAttributes<HTMLDivElement>>;
40
40
  /** The page's main landmark, under the header. */
41
41
  declare const PosterMain: React.ForwardRefExoticComponent<HTMLAttributes<HTMLElement> & React.RefAttributes<HTMLElement>>;
42
+ interface PosterBannerProps extends AnchorHTMLAttributes<HTMLAnchorElement> {
43
+ /** A short label after the words, underlined ("Read why"). */
44
+ action?: ReactNode;
45
+ }
46
+ /**
47
+ * An announcement strip in the primary colour: one line of words and a short
48
+ * action, the whole strip a single link. A page puts it inside `PosterShell`,
49
+ * above `PosterHeader`. The space before the action keeps the two apart
50
+ * wherever the strip is read as plain text.
51
+ */
52
+ declare const PosterBanner: React.ForwardRefExoticComponent<PosterBannerProps & React.RefAttributes<HTMLAnchorElement>>;
42
53
  interface PosterHeaderProps extends Omit<HTMLAttributes<HTMLElement>, "children"> {
43
54
  /** The wordmark: a `PosterMark`. */
44
55
  brand: ReactNode;
@@ -392,4 +403,4 @@ declare function PosterScreenRows({ items }: PosterScreenRowsProps): react_jsx_r
392
403
  /** A quiet line under a mock-up. */
393
404
  declare const PosterMockNote: React.ForwardRefExoticComponent<HTMLAttributes<HTMLParagraphElement> & React.RefAttributes<HTMLParagraphElement>>;
394
405
 
395
- export { PosterAction, type PosterActionProps, PosterBand, type PosterBandProps, PosterBreak, PosterCalculator, PosterCallList, type PosterCallListProps, PosterClaims, type PosterClaimsProps, type PosterColours, PosterColumns, type PosterColumnsProps, PosterCopyText, type PosterCopyTextProps, PosterCost, type PosterCostProps, PosterDisclosure, type PosterDisclosureProps, PosterFacts, type PosterFactsProps, PosterFigures, type PosterFiguresProps, PosterFlow, PosterFootnote, type PosterFootnoteProps, PosterGrade, PosterHeader, PosterHeaderAction, type PosterHeaderProps, PosterHero, type PosterHeroProps, PosterMain, PosterMark, PosterMockNote, PosterMoreLink, PosterNav, PosterNavLink, type PosterNavLinkProps, type PosterNavProps, PosterNextLink, type PosterNextLinkProps, PosterNote, type PosterNumberedProps, PosterPeople, type PosterPeopleProps, PosterQuote, type PosterQuoteProps, PosterRange, type PosterRangeProps, PosterRanges, PosterScreen, PosterScreenDetail, type PosterScreenDetailProps, PosterScreenLead, PosterScreenMessage, PosterScreenPane, PosterScreenPerson, type PosterScreenPersonProps, type PosterScreenProps, PosterScreenQueue, type PosterScreenQueueProps, PosterScreenRows, type PosterScreenRowsProps, PosterScreenSplit, PosterScreenTabs, PosterScreenTrace, PosterShell, type PosterShellProps, PosterSmallPrint, PosterStatement, PosterStats, type PosterStatsProps, PosterSteps, type PosterStepsProps, PosterSubhead, PosterSwitch, type PosterSwitchOption, type PosterSwitchProps, PosterTextLink, PosterTicks, type PosterTicksProps };
406
+ export { PosterAction, type PosterActionProps, PosterBand, type PosterBandProps, PosterBanner, type PosterBannerProps, PosterBreak, PosterCalculator, PosterCallList, type PosterCallListProps, PosterClaims, type PosterClaimsProps, type PosterColours, PosterColumns, type PosterColumnsProps, PosterCopyText, type PosterCopyTextProps, PosterCost, type PosterCostProps, PosterDisclosure, type PosterDisclosureProps, PosterFacts, type PosterFactsProps, PosterFigures, type PosterFiguresProps, PosterFlow, PosterFootnote, type PosterFootnoteProps, PosterGrade, PosterHeader, PosterHeaderAction, type PosterHeaderProps, PosterHero, type PosterHeroProps, PosterMain, PosterMark, PosterMockNote, PosterMoreLink, PosterNav, PosterNavLink, type PosterNavLinkProps, type PosterNavProps, PosterNextLink, type PosterNextLinkProps, PosterNote, type PosterNumberedProps, PosterPeople, type PosterPeopleProps, PosterQuote, type PosterQuoteProps, PosterRange, type PosterRangeProps, PosterRanges, PosterScreen, PosterScreenDetail, type PosterScreenDetailProps, PosterScreenLead, PosterScreenMessage, PosterScreenPane, PosterScreenPerson, type PosterScreenPersonProps, type PosterScreenProps, PosterScreenQueue, type PosterScreenQueueProps, PosterScreenRows, type PosterScreenRowsProps, PosterScreenSplit, PosterScreenTabs, PosterScreenTrace, PosterShell, type PosterShellProps, PosterSmallPrint, PosterStatement, PosterStats, type PosterStatsProps, PosterSteps, type PosterStepsProps, PosterSubhead, PosterSwitch, type PosterSwitchOption, type PosterSwitchProps, PosterTextLink, PosterTicks, type PosterTicksProps };
@@ -39,6 +39,17 @@ interface PosterShellProps extends HTMLAttributes<HTMLDivElement> {
39
39
  declare const PosterShell: React.ForwardRefExoticComponent<PosterShellProps & React.RefAttributes<HTMLDivElement>>;
40
40
  /** The page's main landmark, under the header. */
41
41
  declare const PosterMain: React.ForwardRefExoticComponent<HTMLAttributes<HTMLElement> & React.RefAttributes<HTMLElement>>;
42
+ interface PosterBannerProps extends AnchorHTMLAttributes<HTMLAnchorElement> {
43
+ /** A short label after the words, underlined ("Read why"). */
44
+ action?: ReactNode;
45
+ }
46
+ /**
47
+ * An announcement strip in the primary colour: one line of words and a short
48
+ * action, the whole strip a single link. A page puts it inside `PosterShell`,
49
+ * above `PosterHeader`. The space before the action keeps the two apart
50
+ * wherever the strip is read as plain text.
51
+ */
52
+ declare const PosterBanner: React.ForwardRefExoticComponent<PosterBannerProps & React.RefAttributes<HTMLAnchorElement>>;
42
53
  interface PosterHeaderProps extends Omit<HTMLAttributes<HTMLElement>, "children"> {
43
54
  /** The wordmark: a `PosterMark`. */
44
55
  brand: ReactNode;
@@ -392,4 +403,4 @@ declare function PosterScreenRows({ items }: PosterScreenRowsProps): react_jsx_r
392
403
  /** A quiet line under a mock-up. */
393
404
  declare const PosterMockNote: React.ForwardRefExoticComponent<HTMLAttributes<HTMLParagraphElement> & React.RefAttributes<HTMLParagraphElement>>;
394
405
 
395
- export { PosterAction, type PosterActionProps, PosterBand, type PosterBandProps, PosterBreak, PosterCalculator, PosterCallList, type PosterCallListProps, PosterClaims, type PosterClaimsProps, type PosterColours, PosterColumns, type PosterColumnsProps, PosterCopyText, type PosterCopyTextProps, PosterCost, type PosterCostProps, PosterDisclosure, type PosterDisclosureProps, PosterFacts, type PosterFactsProps, PosterFigures, type PosterFiguresProps, PosterFlow, PosterFootnote, type PosterFootnoteProps, PosterGrade, PosterHeader, PosterHeaderAction, type PosterHeaderProps, PosterHero, type PosterHeroProps, PosterMain, PosterMark, PosterMockNote, PosterMoreLink, PosterNav, PosterNavLink, type PosterNavLinkProps, type PosterNavProps, PosterNextLink, type PosterNextLinkProps, PosterNote, type PosterNumberedProps, PosterPeople, type PosterPeopleProps, PosterQuote, type PosterQuoteProps, PosterRange, type PosterRangeProps, PosterRanges, PosterScreen, PosterScreenDetail, type PosterScreenDetailProps, PosterScreenLead, PosterScreenMessage, PosterScreenPane, PosterScreenPerson, type PosterScreenPersonProps, type PosterScreenProps, PosterScreenQueue, type PosterScreenQueueProps, PosterScreenRows, type PosterScreenRowsProps, PosterScreenSplit, PosterScreenTabs, PosterScreenTrace, PosterShell, type PosterShellProps, PosterSmallPrint, PosterStatement, PosterStats, type PosterStatsProps, PosterSteps, type PosterStepsProps, PosterSubhead, PosterSwitch, type PosterSwitchOption, type PosterSwitchProps, PosterTextLink, PosterTicks, type PosterTicksProps };
406
+ export { PosterAction, type PosterActionProps, PosterBand, type PosterBandProps, PosterBanner, type PosterBannerProps, PosterBreak, PosterCalculator, PosterCallList, type PosterCallListProps, PosterClaims, type PosterClaimsProps, type PosterColours, PosterColumns, type PosterColumnsProps, PosterCopyText, type PosterCopyTextProps, PosterCost, type PosterCostProps, PosterDisclosure, type PosterDisclosureProps, PosterFacts, type PosterFactsProps, PosterFigures, type PosterFiguresProps, PosterFlow, PosterFootnote, type PosterFootnoteProps, PosterGrade, PosterHeader, PosterHeaderAction, type PosterHeaderProps, PosterHero, type PosterHeroProps, PosterMain, PosterMark, PosterMockNote, PosterMoreLink, PosterNav, PosterNavLink, type PosterNavLinkProps, type PosterNavProps, PosterNextLink, type PosterNextLinkProps, PosterNote, type PosterNumberedProps, PosterPeople, type PosterPeopleProps, PosterQuote, type PosterQuoteProps, PosterRange, type PosterRangeProps, PosterRanges, PosterScreen, PosterScreenDetail, type PosterScreenDetailProps, PosterScreenLead, PosterScreenMessage, PosterScreenPane, PosterScreenPerson, type PosterScreenPersonProps, type PosterScreenProps, PosterScreenQueue, type PosterScreenQueueProps, PosterScreenRows, type PosterScreenRowsProps, PosterScreenSplit, PosterScreenTabs, PosterScreenTrace, PosterShell, type PosterShellProps, PosterSmallPrint, PosterStatement, PosterStats, type PosterStatsProps, PosterSteps, type PosterStepsProps, PosterSubhead, PosterSwitch, type PosterSwitchOption, type PosterSwitchProps, PosterTextLink, PosterTicks, type PosterTicksProps };
@@ -25,6 +25,15 @@ var PosterShell = forwardRef(function PosterShell2({ colours, font, colorScheme,
25
25
  var PosterMain = forwardRef(function PosterMain2(props, ref) {
26
26
  return /* @__PURE__ */ jsx("main", { ref, "data-slot": "poster-main", ...props });
27
27
  });
28
+ var PosterBanner = forwardRef(function PosterBanner2({ action, children, ...props }, ref) {
29
+ return /* @__PURE__ */ jsxs("a", { ref, "data-slot": "poster-banner", ...props, children: [
30
+ /* @__PURE__ */ jsx("span", { children }),
31
+ action ? /* @__PURE__ */ jsxs(Fragment, { children: [
32
+ " ",
33
+ /* @__PURE__ */ jsx("span", { "data-slot": "poster-banner-action", children: action })
34
+ ] }) : null
35
+ ] });
36
+ });
28
37
  var PosterHeader = forwardRef(function PosterHeader2({ brand, nav, action, className, ...props }, ref) {
29
38
  return /* @__PURE__ */ jsxs("header", { ref, "data-slot": "poster-header", className, ...props, children: [
30
39
  brand,
@@ -345,6 +354,7 @@ var PosterMockNote = forwardRef(function PosterMockNote2(props, ref) {
345
354
  export {
346
355
  PosterAction,
347
356
  PosterBand,
357
+ PosterBanner,
348
358
  PosterBreak,
349
359
  PosterCalculator,
350
360
  PosterCallList,
@@ -2,20 +2,20 @@
2
2
  "use client";
3
3
 
4
4
 
5
- var _chunkMOJHETNOcjs = require('../chunk-MOJHETNO.cjs');
5
+ var _chunkVUMLLKWYcjs = require('../chunk-VUMLLKWY.cjs');
6
6
  require('../chunk-EUFV25KL.cjs');
7
7
  require('../chunk-7YCKII7G.cjs');
8
- require('../chunk-MW67PHAQ.cjs');
9
- require('../chunk-PPX2VPGI.cjs');
8
+ require('../chunk-S2IMM37Q.cjs');
10
9
  require('../chunk-WNXVGUBF.cjs');
11
10
  require('../chunk-IQZLUT2Y.cjs');
12
- require('../chunk-LELBCBDT.cjs');
13
- require('../chunk-U2NES7VR.cjs');
14
11
  require('../chunk-JH4GAGOQ.cjs');
12
+ require('../chunk-LELBCBDT.cjs');
13
+ require('../chunk-VOTCYG3F.cjs');
15
14
  require('../chunk-YYFVG5A6.cjs');
16
15
  require('../chunk-XLIAY56V.cjs');
17
16
  require('../chunk-V5SPFLKW.cjs');
18
- require('../chunk-VOTCYG3F.cjs');
17
+ require('../chunk-PPX2VPGI.cjs');
18
+ require('../chunk-U2NES7VR.cjs');
19
19
  require('../chunk-PQUSJEXL.cjs');
20
20
  require('../chunk-VGTINL5Q.cjs');
21
21
  require('../chunk-I6GUOEBO.cjs');
@@ -25,4 +25,4 @@ require('../chunk-KWLSBTB2.cjs');
25
25
  require('../chunk-R35FT53G.cjs');
26
26
 
27
27
 
28
- exports.ResourceList = _chunkMOJHETNOcjs.ResourceList;
28
+ exports.ResourceList = _chunkVUMLLKWYcjs.ResourceList;
@@ -2,20 +2,20 @@
2
2
  "use client";
3
3
  import {
4
4
  ResourceList
5
- } from "../chunk-JS6BLIWL.js";
5
+ } from "../chunk-ROUWBWEQ.js";
6
6
  import "../chunk-43UMPZWD.js";
7
7
  import "../chunk-EEHIMPD7.js";
8
- import "../chunk-UFFHGKI7.js";
9
- import "../chunk-G76JANB4.js";
8
+ import "../chunk-6LB37JWO.js";
10
9
  import "../chunk-YG7FBJRM.js";
11
10
  import "../chunk-E2TQMDO7.js";
12
- import "../chunk-H2O6NMLZ.js";
13
- import "../chunk-ZRLUUZHK.js";
14
11
  import "../chunk-OICAYRVH.js";
12
+ import "../chunk-H2O6NMLZ.js";
13
+ import "../chunk-H2CCBRVG.js";
15
14
  import "../chunk-62UTAG2C.js";
16
15
  import "../chunk-LELFPLTE.js";
17
16
  import "../chunk-J6NXDZR5.js";
18
- import "../chunk-H2CCBRVG.js";
17
+ import "../chunk-G76JANB4.js";
18
+ import "../chunk-ZRLUUZHK.js";
19
19
  import "../chunk-QMA3WVB7.js";
20
20
  import "../chunk-H7TETFLB.js";
21
21
  import "../chunk-D4ZL2OEQ.js";