@epicbagel/saas-kit 1.31.0 → 1.32.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.
@@ -0,0 +1,396 @@
1
+ "use client";
2
+
3
+ // src/primitives/poster.tsx
4
+ import {
5
+ forwardRef,
6
+ useEffect,
7
+ useId,
8
+ useRef,
9
+ useState
10
+ } from "react";
11
+ import { Fragment, jsx, jsxs } from "react/jsx-runtime";
12
+ var PosterShell = forwardRef(function PosterShell2({ colours, font, colorScheme, className, style, ...props }, ref) {
13
+ const variables = {
14
+ ...colours?.paper ? { "--poster-paper": colours.paper } : {},
15
+ ...colours?.ink ? { "--poster-ink": colours.ink } : {},
16
+ ...colours?.primary ? { "--poster-primary": colours.primary } : {},
17
+ ...colours?.onPrimary ? { "--poster-on-primary": colours.onPrimary } : {},
18
+ ...colours?.mute ? { "--poster-mute": colours.mute } : {},
19
+ ...colours?.wash ? { "--poster-wash": colours.wash } : {},
20
+ ...font ? { "--poster-font": font } : {},
21
+ ...colorScheme ? { colorScheme } : {}
22
+ };
23
+ return /* @__PURE__ */ jsx("div", { ref, "data-slot": "poster-shell", className, style: { ...variables, ...style }, ...props });
24
+ });
25
+ var PosterMain = forwardRef(function PosterMain2(props, ref) {
26
+ return /* @__PURE__ */ jsx("main", { ref, "data-slot": "poster-main", ...props });
27
+ });
28
+ var PosterHeader = forwardRef(function PosterHeader2({ brand, nav, action, className, ...props }, ref) {
29
+ return /* @__PURE__ */ jsxs("header", { ref, "data-slot": "poster-header", className, ...props, children: [
30
+ brand,
31
+ nav,
32
+ action
33
+ ] });
34
+ });
35
+ function PosterNav({ label, menuLabel = "Menu", children }) {
36
+ const menu = useRef(null);
37
+ const panelId = useId();
38
+ useEffect(() => {
39
+ const details = menu.current;
40
+ if (!details) return;
41
+ const close = (focusSummary) => {
42
+ if (!details.open) return;
43
+ details.open = false;
44
+ if (focusSummary) details.querySelector("summary")?.focus();
45
+ };
46
+ const onKey = (event) => {
47
+ if (event.key === "Escape") close(details.contains(document.activeElement));
48
+ };
49
+ const onPointer = (event) => {
50
+ if (!details.contains(event.target)) close(false);
51
+ };
52
+ document.addEventListener("keydown", onKey);
53
+ document.addEventListener("pointerdown", onPointer);
54
+ return () => {
55
+ document.removeEventListener("keydown", onKey);
56
+ document.removeEventListener("pointerdown", onPointer);
57
+ };
58
+ }, []);
59
+ const onPick = (event) => {
60
+ if (event.target.closest("a") && menu.current) menu.current.open = false;
61
+ };
62
+ return /* @__PURE__ */ jsxs("nav", { "data-slot": "poster-nav", "aria-label": label, children: [
63
+ /* @__PURE__ */ jsx("ul", { "data-slot": "poster-nav-list", children }),
64
+ /* @__PURE__ */ jsxs("details", { ref: menu, "data-slot": "poster-nav-menu", children: [
65
+ /* @__PURE__ */ jsx("summary", { "data-slot": "poster-nav-toggle", "aria-controls": panelId, children: menuLabel }),
66
+ /* @__PURE__ */ jsx("ul", { id: panelId, "data-slot": "poster-nav-panel", onClick: onPick, children })
67
+ ] })
68
+ ] });
69
+ }
70
+ var PosterNavLink = forwardRef(function PosterNavLink2({ current = false, ...props }, ref) {
71
+ return /* @__PURE__ */ jsx("li", { "data-slot": "poster-nav-item", children: /* @__PURE__ */ jsx("a", { ref, "data-slot": "poster-nav-link", "aria-current": current ? "page" : void 0, ...props }) });
72
+ });
73
+ var PosterMark = forwardRef(function PosterMark2(props, ref) {
74
+ return /* @__PURE__ */ jsx("a", { ref, "data-slot": "poster-mark", ...props });
75
+ });
76
+ var PosterHeaderAction = forwardRef(function PosterHeaderAction2(props, ref) {
77
+ return /* @__PURE__ */ jsx("a", { ref, "data-slot": "poster-header-action", ...props });
78
+ });
79
+ var PosterHero = forwardRef(function PosterHero2({ title, description, eyebrow, variant = "home", actions, ...props }, ref) {
80
+ return /* @__PURE__ */ jsxs("section", { ref, "data-slot": "poster-hero", "data-variant": variant, ...props, children: [
81
+ eyebrow ? /* @__PURE__ */ jsx("p", { "data-slot": "poster-eyebrow", children: eyebrow }) : null,
82
+ /* @__PURE__ */ jsx("h1", { "data-slot": "poster-hero-title", children: title }),
83
+ description ? /* @__PURE__ */ jsx("p", { "data-slot": "poster-hero-description", children: description }) : null,
84
+ actions ? /* @__PURE__ */ jsx("div", { "data-slot": "poster-hero-actions", children: actions }) : null
85
+ ] });
86
+ });
87
+ var PosterAction = forwardRef(function PosterAction2({ variant = "solid", ...props }, ref) {
88
+ return /* @__PURE__ */ jsx("a", { ref, "data-slot": "poster-action", "data-variant": variant, ...props });
89
+ });
90
+ function PosterSwitch({ label, options, value, onValueChange, className }) {
91
+ return /* @__PURE__ */ jsx("div", { "data-slot": "poster-switch", role: "group", "aria-label": label, className, children: options.map((option) => /* @__PURE__ */ jsxs(
92
+ "button",
93
+ {
94
+ type: "button",
95
+ "data-slot": "poster-switch-option",
96
+ "aria-pressed": option.value === value,
97
+ onClick: () => onValueChange(option.value),
98
+ children: [
99
+ /* @__PURE__ */ jsx("span", { "data-slot": "poster-switch-title", children: option.title }),
100
+ option.hint ? /* @__PURE__ */ jsx("span", { "data-slot": "poster-switch-hint", children: option.hint }) : null
101
+ ]
102
+ },
103
+ option.value
104
+ )) });
105
+ }
106
+ var PosterBand = forwardRef(function PosterBand2({ tone = "paper", padding = "default", eyebrow, kicker, title, titleSize = "head", titleWrap = "balance", lead, description, after, children, ...props }, ref) {
107
+ return /* @__PURE__ */ jsxs("section", { ref, "data-slot": "poster-band", "data-tone": tone, "data-padding": padding, ...props, children: [
108
+ eyebrow ? /* @__PURE__ */ jsx("p", { "data-slot": "poster-eyebrow", children: eyebrow }) : null,
109
+ kicker ? /* @__PURE__ */ jsx("p", { "data-slot": "poster-kicker", children: kicker }) : null,
110
+ title ? /* @__PURE__ */ jsx("h2", { "data-slot": "poster-title", "data-size": titleSize, "data-wrap": titleWrap, children: title }) : null,
111
+ lead ? /* @__PURE__ */ jsx("p", { "data-slot": "poster-lead", children: lead }) : null,
112
+ description ? /* @__PURE__ */ jsx("p", { "data-slot": "poster-description", children: description }) : null,
113
+ after ? /* @__PURE__ */ jsx("p", { "data-slot": "poster-after", children: after }) : null,
114
+ children
115
+ ] });
116
+ });
117
+ var PosterSubhead = forwardRef(function PosterSubhead2(props, ref) {
118
+ return /* @__PURE__ */ jsx("h3", { ref, "data-slot": "poster-subhead", ...props });
119
+ });
120
+ var PosterStatement = forwardRef(function PosterStatement2(props, ref) {
121
+ return /* @__PURE__ */ jsx("p", { ref, "data-slot": "poster-statement", ...props });
122
+ });
123
+ var PosterCalculator = forwardRef(function PosterCalculator2(props, ref) {
124
+ return /* @__PURE__ */ jsx("div", { ref, "data-slot": "poster-calculator", ...props });
125
+ });
126
+ var PosterRanges = forwardRef(function PosterRanges2(props, ref) {
127
+ return /* @__PURE__ */ jsx("div", { ref, "data-slot": "poster-ranges", ...props });
128
+ });
129
+ function PosterRange({ label, value, min, max, step, onValueChange, valueText, id }) {
130
+ const generated = useId();
131
+ const inputId = id ?? generated;
132
+ return /* @__PURE__ */ jsxs("div", { "data-slot": "poster-range", children: [
133
+ /* @__PURE__ */ jsx("label", { "data-slot": "poster-range-label", htmlFor: inputId, children: label }),
134
+ /* @__PURE__ */ jsx("output", { "data-slot": "poster-range-value", htmlFor: inputId, children: valueText }),
135
+ /* @__PURE__ */ jsx(
136
+ "input",
137
+ {
138
+ "data-slot": "poster-range-input",
139
+ type: "range",
140
+ id: inputId,
141
+ min,
142
+ max,
143
+ step,
144
+ value,
145
+ "aria-valuetext": valueText,
146
+ onChange: (event) => onValueChange(Number(event.target.value))
147
+ }
148
+ )
149
+ ] });
150
+ }
151
+ var PosterFigures = forwardRef(function PosterFigures2({ items, ...props }, ref) {
152
+ return /* @__PURE__ */ jsx("div", { ref, "data-slot": "poster-figures", "data-columns": items.length === 1 ? 1 : 2, ...props, children: items.map((item, index) => /* @__PURE__ */ jsxs("div", { "data-slot": "poster-figure", children: [
153
+ /* @__PURE__ */ jsx("p", { "data-slot": "poster-figure-label", children: item.label }),
154
+ /* @__PURE__ */ jsx("p", { "data-slot": "poster-figure-value", children: item.value })
155
+ ] }, index)) });
156
+ });
157
+ var PosterSmallPrint = forwardRef(function PosterSmallPrint2(props, ref) {
158
+ return /* @__PURE__ */ jsx("p", { ref, "data-slot": "poster-small-print", ...props });
159
+ });
160
+ var PosterColumns = forwardRef(function PosterColumns2({ variant = "labelled", items, ...props }, ref) {
161
+ return /* @__PURE__ */ jsx("div", { ref, "data-slot": "poster-columns", "data-variant": variant, ...props, children: items.map((item, index) => /* @__PURE__ */ jsxs("div", { "data-slot": "poster-column", children: [
162
+ variant === "titled" ? /* @__PURE__ */ jsx("h3", { "data-slot": "poster-column-heading", children: item.heading }) : /* @__PURE__ */ jsx("p", { "data-slot": "poster-column-heading", children: item.heading }),
163
+ /* @__PURE__ */ jsx("p", { "data-slot": "poster-column-text", children: item.text }),
164
+ item.link ? /* @__PURE__ */ jsx("a", { "data-slot": "poster-column-link", href: item.link.href, children: item.link.label }) : null
165
+ ] }, index)) });
166
+ });
167
+ var PosterTicks = forwardRef(function PosterTicks2({ items, spacing = "default", ...props }, ref) {
168
+ return /* @__PURE__ */ jsx("ul", { ref, "data-slot": "poster-ticks", "data-spacing": spacing, ...props, children: items.map((item, index) => /* @__PURE__ */ jsx("li", { "data-slot": "poster-tick", children: item }, index)) });
169
+ });
170
+ var PosterDisclosure = forwardRef(function PosterDisclosure2({ summary, children, defaultOpen, ...props }, ref) {
171
+ return /* @__PURE__ */ jsxs("details", { ref, "data-slot": "poster-disclosure", open: defaultOpen, ...props, children: [
172
+ /* @__PURE__ */ jsx("summary", { "data-slot": "poster-disclosure-summary", children: summary }),
173
+ /* @__PURE__ */ jsx("div", { "data-slot": "poster-disclosure-body", children })
174
+ ] });
175
+ });
176
+ var PosterFacts = forwardRef(function PosterFacts2({ items, ...props }, ref) {
177
+ return /* @__PURE__ */ jsx("dl", { ref, "data-slot": "poster-facts", ...props, children: items.map((item, index) => /* @__PURE__ */ jsxs("div", { "data-slot": "poster-fact", children: [
178
+ /* @__PURE__ */ jsx("dt", { "data-slot": "poster-fact-term", children: item.term }),
179
+ /* @__PURE__ */ jsx("dd", { "data-slot": "poster-fact-detail", children: item.detail })
180
+ ] }, index)) });
181
+ });
182
+ var PosterNote = forwardRef(function PosterNote2(props, ref) {
183
+ return /* @__PURE__ */ jsx("p", { ref, "data-slot": "poster-note", ...props });
184
+ });
185
+ var PosterCallList = forwardRef(function PosterCallList2({ label, items, ...props }, ref) {
186
+ return /* @__PURE__ */ jsx("ul", { ref, "data-slot": "poster-calls", "aria-label": label, ...props, children: items.map((item, index) => /* @__PURE__ */ jsxs("li", { "data-slot": "poster-call", children: [
187
+ /* @__PURE__ */ jsx("span", { "data-slot": "poster-call-name", children: item.name }),
188
+ /* @__PURE__ */ jsx("span", { "data-slot": "poster-call-action", children: item.action })
189
+ ] }, index)) });
190
+ });
191
+ var PosterFlow = forwardRef(function PosterFlow2({ items, ...props }, ref) {
192
+ return /* @__PURE__ */ jsx("ol", { ref, "data-slot": "poster-flow", ...props, children: items.map((item, index) => /* @__PURE__ */ jsx("li", { "data-slot": "poster-flow-step", children: item }, index)) });
193
+ });
194
+ var PosterSteps = forwardRef(function PosterSteps2({ items, layout = "three", ...props }, ref) {
195
+ return /* @__PURE__ */ jsx("ol", { ref, "data-slot": "poster-steps", "data-layout": layout, ...props, children: items.map((item, index) => /* @__PURE__ */ jsx("li", { "data-slot": "poster-step", children: item }, index)) });
196
+ });
197
+ var PosterCost = forwardRef(function PosterCost2({ label, statement, action, ...props }, ref) {
198
+ return /* @__PURE__ */ jsxs("div", { ref, "data-slot": "poster-cost", ...props, children: [
199
+ /* @__PURE__ */ jsxs("div", { children: [
200
+ /* @__PURE__ */ jsx("p", { "data-slot": "poster-cost-label", children: label }),
201
+ /* @__PURE__ */ jsx("p", { "data-slot": "poster-cost-statement", children: statement })
202
+ ] }),
203
+ action ? /* @__PURE__ */ jsx("div", { "data-slot": "poster-cost-action", children: action }) : null
204
+ ] });
205
+ });
206
+ function PosterCopyText({ text, copyLabel = "Copy", copiedLabel = "Copied", selectedLabel = "Selected", placement = "inline" }) {
207
+ const textRef = useRef(null);
208
+ const [label, setLabel] = useState(copyLabel);
209
+ const select = () => {
210
+ const node = textRef.current;
211
+ const selection = typeof window === "undefined" ? null : window.getSelection();
212
+ if (!node || !selection) return;
213
+ const range = document.createRange();
214
+ range.selectNodeContents(node);
215
+ selection.removeAllRanges();
216
+ selection.addRange(range);
217
+ setLabel(selectedLabel);
218
+ };
219
+ const copy = () => {
220
+ const clipboard = typeof navigator === "undefined" ? void 0 : navigator.clipboard;
221
+ if (!clipboard?.writeText) return select();
222
+ clipboard.writeText(text).then(() => setLabel(copiedLabel), select);
223
+ };
224
+ return /* @__PURE__ */ jsxs("div", { "data-slot": "poster-copy", "data-placement": placement, children: [
225
+ /* @__PURE__ */ jsx("span", { ref: textRef, "data-slot": "poster-copy-text", children: text }),
226
+ /* @__PURE__ */ jsx("button", { type: "button", "data-slot": "poster-copy-button", onClick: copy, children: label })
227
+ ] });
228
+ }
229
+ var PosterPeople = forwardRef(function PosterPeople2({ items, ...props }, ref) {
230
+ return /* @__PURE__ */ jsx("ul", { ref, "data-slot": "poster-people", ...props, children: items.map((item, index) => /* @__PURE__ */ jsxs("li", { "data-slot": "poster-person", children: [
231
+ /* @__PURE__ */ jsx("span", { "data-slot": "poster-person-name", children: item.name }),
232
+ /* @__PURE__ */ jsx("span", { "data-slot": "poster-person-bio", children: item.bio })
233
+ ] }, index)) });
234
+ });
235
+ var PosterFootnote = forwardRef(function PosterFootnote2({ start, end, ...props }, ref) {
236
+ return /* @__PURE__ */ jsxs("div", { ref, "data-slot": "poster-footnote", ...props, children: [
237
+ /* @__PURE__ */ jsx("span", { children: start }),
238
+ end ? /* @__PURE__ */ jsx("span", { children: end }) : null
239
+ ] });
240
+ });
241
+ var PosterMoreLink = forwardRef(function PosterMoreLink2(props, ref) {
242
+ return /* @__PURE__ */ jsx("a", { ref, "data-slot": "poster-more-link", ...props });
243
+ });
244
+ var PosterNextLink = forwardRef(function PosterNextLink2({ label, children, ...props }, ref) {
245
+ return /* @__PURE__ */ jsxs("a", { ref, "data-slot": "poster-next-link", ...props, children: [
246
+ /* @__PURE__ */ jsx("span", { "data-slot": "poster-next-label", children: label }),
247
+ children
248
+ ] });
249
+ });
250
+ var PosterTextLink = forwardRef(function PosterTextLink2(props, ref) {
251
+ return /* @__PURE__ */ jsx("a", { ref, "data-slot": "poster-text-link", ...props });
252
+ });
253
+ function PosterBreak() {
254
+ return /* @__PURE__ */ jsxs(Fragment, { children: [
255
+ " ",
256
+ /* @__PURE__ */ jsx("span", { "data-slot": "poster-break" })
257
+ ] });
258
+ }
259
+ function PosterQuote({ children, by, size = "large", as = "blockquote" }) {
260
+ const Quote = as;
261
+ return /* @__PURE__ */ jsxs(Fragment, { children: [
262
+ /* @__PURE__ */ jsx(Quote, { "data-slot": "poster-quote", "data-size": size, children }),
263
+ by ? /* @__PURE__ */ jsx("p", { "data-slot": "poster-quote-by", children: by }) : null
264
+ ] });
265
+ }
266
+ var PosterStats = forwardRef(function PosterStats2({ items, ...props }, ref) {
267
+ return /* @__PURE__ */ jsx("dl", { ref, "data-slot": "poster-stats", "data-columns": items.length <= 2 ? 2 : 4, ...props, children: items.map((item, index) => /* @__PURE__ */ jsxs("div", { "data-slot": "poster-stat", children: [
268
+ /* @__PURE__ */ jsx("dt", { "data-slot": "poster-stat-value", children: item.value }),
269
+ /* @__PURE__ */ jsx("dd", { "data-slot": "poster-stat-label", children: item.label })
270
+ ] }, index)) });
271
+ });
272
+ var PosterClaims = forwardRef(function PosterClaims2({ items, ...props }, ref) {
273
+ return /* @__PURE__ */ jsx("ul", { ref, "data-slot": "poster-claims", ...props, children: items.map((item, index) => /* @__PURE__ */ jsx("li", { "data-slot": "poster-claim", children: item }, index)) });
274
+ });
275
+ var PosterScreen = forwardRef(function PosterScreen2({ title, context, children, ...props }, ref) {
276
+ return /* @__PURE__ */ jsxs("div", { ref, "data-slot": "poster-screen", ...props, children: [
277
+ /* @__PURE__ */ jsxs("div", { "data-slot": "poster-screen-bar", children: [
278
+ /* @__PURE__ */ jsx("b", { children: title }),
279
+ context ? /* @__PURE__ */ jsx("span", { children: context }) : null
280
+ ] }),
281
+ children
282
+ ] });
283
+ });
284
+ function PosterScreenTabs({ items }) {
285
+ return /* @__PURE__ */ jsx("div", { "data-slot": "poster-screen-tabs", children: items.map((item, index) => index === 0 ? /* @__PURE__ */ jsx("b", { children: item }, index) : /* @__PURE__ */ jsx("span", { children: item }, index)) });
286
+ }
287
+ function PosterScreenSplit({ ratio = "5:7", children }) {
288
+ return /* @__PURE__ */ jsx("div", { "data-slot": "poster-screen-split", "data-ratio": ratio, children });
289
+ }
290
+ function PosterScreenPane({ children }) {
291
+ return /* @__PURE__ */ jsx("div", { "data-slot": "poster-screen-pane", children });
292
+ }
293
+ function PosterScreenMessage({ from, children, variant = "sent" }) {
294
+ return /* @__PURE__ */ jsxs("div", { "data-slot": "poster-screen-message", "data-variant": variant, children: [
295
+ /* @__PURE__ */ jsx("small", { children: from }),
296
+ children
297
+ ] });
298
+ }
299
+ function PosterScreenTrace({ items }) {
300
+ return /* @__PURE__ */ jsx("ul", { "data-slot": "poster-screen-trace", children: items.map((item, index) => /* @__PURE__ */ jsx("li", { children: item }, index)) });
301
+ }
302
+ function PosterScreenLead({ children }) {
303
+ return /* @__PURE__ */ jsx("p", { "data-slot": "poster-screen-lead", children });
304
+ }
305
+ function PosterGrade({ children, top = false }) {
306
+ return /* @__PURE__ */ jsx("span", { "data-slot": "poster-grade", "data-top": top || void 0, children });
307
+ }
308
+ function PosterScreenPerson({ initials, name, summary, test, grade, topGrade }) {
309
+ return /* @__PURE__ */ jsxs("div", { "data-slot": "poster-screen-person", children: [
310
+ /* @__PURE__ */ jsx("span", { "data-slot": "poster-initials", "aria-hidden": "true", children: initials }),
311
+ /* @__PURE__ */ jsxs("div", { children: [
312
+ /* @__PURE__ */ jsx("b", { children: name }),
313
+ /* @__PURE__ */ jsx("span", { children: summary }),
314
+ test ? /* @__PURE__ */ jsx("em", { children: test }) : null
315
+ ] }),
316
+ /* @__PURE__ */ jsx(PosterGrade, { top: topGrade, children: grade })
317
+ ] });
318
+ }
319
+ function PosterScreenQueue({ items }) {
320
+ return /* @__PURE__ */ jsx("div", { "data-slot": "poster-screen-queue", children: items.map((item, index) => /* @__PURE__ */ jsxs("div", { "data-slot": "poster-screen-queue-item", "data-selected": item.selected || void 0, children: [
321
+ /* @__PURE__ */ jsx("b", { children: item.name }),
322
+ /* @__PURE__ */ jsx("span", { children: item.role }),
323
+ /* @__PURE__ */ jsx(PosterGrade, { top: item.topGrade, children: item.grade })
324
+ ] }, index)) });
325
+ }
326
+ function PosterScreenDetail({ title, line, evidence = [], actions = [] }) {
327
+ return /* @__PURE__ */ jsxs("div", { "data-slot": "poster-screen-detail", children: [
328
+ /* @__PURE__ */ jsx("h3", { children: title }),
329
+ line ? /* @__PURE__ */ jsx("p", { "data-slot": "poster-screen-detail-line", children: line }) : null,
330
+ evidence.length ? /* @__PURE__ */ jsx("ul", { "data-slot": "poster-screen-evidence", children: evidence.map((item, index) => /* @__PURE__ */ jsx("li", { children: item }, index)) }) : null,
331
+ actions.length ? /* @__PURE__ */ jsx("div", { "data-slot": "poster-screen-decide", children: actions.map((action, index) => index === 0 ? /* @__PURE__ */ jsx("b", { children: action }, index) : /* @__PURE__ */ jsx("span", { children: action }, index)) }) : null
332
+ ] });
333
+ }
334
+ function PosterScreenRows({ items }) {
335
+ return /* @__PURE__ */ jsx("div", { "data-slot": "poster-screen-rows", children: items.map((item, index) => /* @__PURE__ */ jsxs("div", { "data-slot": "poster-screen-row", children: [
336
+ /* @__PURE__ */ jsx("b", { children: item.name }),
337
+ /* @__PURE__ */ jsx("span", { children: item.line }),
338
+ /* @__PURE__ */ jsx(PosterGrade, { top: item.topGrade, children: item.grade }),
339
+ /* @__PURE__ */ jsx("em", { "data-needs-you": item.needsYou || void 0, children: item.action })
340
+ ] }, index)) });
341
+ }
342
+ var PosterMockNote = forwardRef(function PosterMockNote2(props, ref) {
343
+ return /* @__PURE__ */ jsx("p", { ref, "data-slot": "poster-mock-note", ...props });
344
+ });
345
+ export {
346
+ PosterAction,
347
+ PosterBand,
348
+ PosterBreak,
349
+ PosterCalculator,
350
+ PosterCallList,
351
+ PosterClaims,
352
+ PosterColumns,
353
+ PosterCopyText,
354
+ PosterCost,
355
+ PosterDisclosure,
356
+ PosterFacts,
357
+ PosterFigures,
358
+ PosterFlow,
359
+ PosterFootnote,
360
+ PosterGrade,
361
+ PosterHeader,
362
+ PosterHeaderAction,
363
+ PosterHero,
364
+ PosterMain,
365
+ PosterMark,
366
+ PosterMockNote,
367
+ PosterMoreLink,
368
+ PosterNav,
369
+ PosterNavLink,
370
+ PosterNextLink,
371
+ PosterNote,
372
+ PosterPeople,
373
+ PosterQuote,
374
+ PosterRange,
375
+ PosterRanges,
376
+ PosterScreen,
377
+ PosterScreenDetail,
378
+ PosterScreenLead,
379
+ PosterScreenMessage,
380
+ PosterScreenPane,
381
+ PosterScreenPerson,
382
+ PosterScreenQueue,
383
+ PosterScreenRows,
384
+ PosterScreenSplit,
385
+ PosterScreenTabs,
386
+ PosterScreenTrace,
387
+ PosterShell,
388
+ PosterSmallPrint,
389
+ PosterStatement,
390
+ PosterStats,
391
+ PosterSteps,
392
+ PosterSubhead,
393
+ PosterSwitch,
394
+ PosterTextLink,
395
+ PosterTicks
396
+ };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@epicbagel/saas-kit",
3
- "version": "1.31.0",
3
+ "version": "1.32.0",
4
4
  "description": "Accessible React primitives, layout components and design tokens for SaaS apps, built on Radix UI and Tailwind CSS v4.",
5
5
  "license": "MIT",
6
6
  "keywords": [
@@ -880,6 +880,16 @@
880
880
  "default": "./dist/primitives/popover.cjs"
881
881
  }
882
882
  },
883
+ "./primitives/poster": {
884
+ "import": {
885
+ "types": "./dist/primitives/poster.d.ts",
886
+ "default": "./dist/primitives/poster.js"
887
+ },
888
+ "require": {
889
+ "types": "./dist/primitives/poster.d.cts",
890
+ "default": "./dist/primitives/poster.cjs"
891
+ }
892
+ },
883
893
  "./primitives/progress": {
884
894
  "import": {
885
895
  "types": "./dist/primitives/progress.d.ts",