@epicbagel/saas-kit 1.31.0 → 1.33.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (219) hide show
  1. package/THIRD_PARTY_NOTICES.md +6 -5
  2. package/dist/chunk-2DCJ2SFU.js +20 -0
  3. package/dist/chunk-2FVFPGP5.js +489 -0
  4. package/dist/{chunk-HTPPNW74.js → chunk-AWCXVYPL.js} +1 -1
  5. package/dist/chunk-B54ZEKBG.cjs +63 -0
  6. package/dist/chunk-CXAFTEEP.cjs +20 -0
  7. package/dist/{chunk-MOJHETNO.cjs → chunk-F3D5HA2F.cjs} +10 -10
  8. package/dist/chunk-G3SF4RRA.cjs +489 -0
  9. package/dist/chunk-HTTRUJQU.cjs +60 -0
  10. package/dist/{chunk-JS6BLIWL.js → chunk-IZF4WCK6.js} +11 -11
  11. package/dist/{chunk-PH2TV7XI.cjs → chunk-KOR2QR7I.cjs} +5 -5
  12. package/dist/{chunk-BGCNGYPL.cjs → chunk-PTMZTP3V.cjs} +2 -2
  13. package/dist/{chunk-6O3DUMF7.js → chunk-REGA2L5S.js} +1 -1
  14. package/dist/{chunk-PNI354BY.cjs → chunk-SL6ECEN6.cjs} +2 -2
  15. package/dist/{chunk-ZGTPNSR7.js → chunk-TS4MC3B3.js} +4 -4
  16. package/dist/chunk-TUQVHPSI.js +60 -0
  17. package/dist/chunk-VWOWPNKT.js +73 -0
  18. package/dist/chunk-XH2I3YJ6.js +63 -0
  19. package/dist/chunk-Y6X6XDHE.cjs +73 -0
  20. package/dist/primitives/accent-theme.cjs +66 -0
  21. package/dist/primitives/accent-theme.d.cts +32 -0
  22. package/dist/primitives/accent-theme.d.ts +32 -0
  23. package/dist/primitives/accent-theme.js +66 -0
  24. package/dist/primitives/activity-feed.cjs +2 -2
  25. package/dist/primitives/activity-feed.js +2 -2
  26. package/dist/primitives/agent-audio-visualizer-bar.cjs +3 -3
  27. package/dist/primitives/agent-audio-visualizer-bar.js +2 -2
  28. package/dist/primitives/alert.d.cts +1 -1
  29. package/dist/primitives/alert.d.ts +1 -1
  30. package/dist/primitives/app-layout.cjs +114 -0
  31. package/dist/primitives/app-layout.d.cts +47 -0
  32. package/dist/primitives/app-layout.d.ts +47 -0
  33. package/dist/primitives/app-layout.js +114 -0
  34. package/dist/primitives/app-sidebar.cjs +52 -0
  35. package/dist/primitives/app-sidebar.d.cts +105 -0
  36. package/dist/primitives/app-sidebar.d.ts +105 -0
  37. package/dist/primitives/app-sidebar.js +52 -0
  38. package/dist/primitives/archive-confirmation-dialog.cjs +2 -2
  39. package/dist/primitives/archive-confirmation-dialog.js +3 -3
  40. package/dist/primitives/back-bar.cjs +37 -0
  41. package/dist/primitives/back-bar.d.cts +31 -0
  42. package/dist/primitives/back-bar.d.ts +31 -0
  43. package/dist/primitives/back-bar.js +37 -0
  44. package/dist/primitives/badge.d.cts +1 -1
  45. package/dist/primitives/badge.d.ts +1 -1
  46. package/dist/primitives/batch-action-bar.cjs +134 -0
  47. package/dist/primitives/batch-action-bar.d.cts +27 -0
  48. package/dist/primitives/batch-action-bar.d.ts +27 -0
  49. package/dist/primitives/batch-action-bar.js +134 -0
  50. package/dist/primitives/board-view-internals.cjs +3 -3
  51. package/dist/primitives/board-view-internals.js +2 -2
  52. package/dist/primitives/board-view.cjs +8 -8
  53. package/dist/primitives/board-view.js +7 -7
  54. package/dist/primitives/brand-mark.cjs +26 -0
  55. package/dist/primitives/brand-mark.d.cts +10 -0
  56. package/dist/primitives/brand-mark.d.ts +10 -0
  57. package/dist/primitives/brand-mark.js +26 -0
  58. package/dist/primitives/bubble.d.cts +1 -1
  59. package/dist/primitives/bubble.d.ts +1 -1
  60. package/dist/primitives/button.d.cts +2 -2
  61. package/dist/primitives/button.d.ts +2 -2
  62. package/dist/primitives/chat.cjs +27 -27
  63. package/dist/primitives/chat.js +21 -21
  64. package/dist/primitives/code-block.cjs +4 -4
  65. package/dist/primitives/code-block.js +3 -3
  66. package/dist/primitives/command.cjs +129 -0
  67. package/dist/primitives/command.d.cts +60 -0
  68. package/dist/primitives/command.d.ts +60 -0
  69. package/dist/primitives/command.js +129 -0
  70. package/dist/primitives/compact-list.cjs +24 -0
  71. package/dist/primitives/compact-list.d.cts +18 -0
  72. package/dist/primitives/compact-list.d.ts +18 -0
  73. package/dist/primitives/compact-list.js +24 -0
  74. package/dist/primitives/connection.cjs +6 -6
  75. package/dist/primitives/connection.js +8 -8
  76. package/dist/primitives/context-bar.cjs +57 -0
  77. package/dist/primitives/context-bar.d.cts +50 -0
  78. package/dist/primitives/context-bar.d.ts +50 -0
  79. package/dist/primitives/context-bar.js +57 -0
  80. package/dist/primitives/copy-button.cjs +3 -3
  81. package/dist/primitives/copy-button.js +2 -2
  82. package/dist/primitives/cycling-prompt.cjs +102 -0
  83. package/dist/primitives/cycling-prompt.d.cts +24 -0
  84. package/dist/primitives/cycling-prompt.d.ts +24 -0
  85. package/dist/primitives/cycling-prompt.js +102 -0
  86. package/dist/primitives/dialog.d.cts +9 -9
  87. package/dist/primitives/dialog.d.ts +9 -9
  88. package/dist/primitives/dotted-list.cjs +41 -0
  89. package/dist/primitives/dotted-list.d.cts +28 -0
  90. package/dist/primitives/dotted-list.d.ts +28 -0
  91. package/dist/primitives/dotted-list.js +41 -0
  92. package/dist/primitives/drawer.d.cts +6 -6
  93. package/dist/primitives/drawer.d.ts +6 -6
  94. package/dist/primitives/field.cjs +3 -3
  95. package/dist/primitives/field.js +2 -2
  96. package/dist/primitives/file-dropzone.cjs +3 -3
  97. package/dist/primitives/file-dropzone.js +2 -2
  98. package/dist/primitives/file-preview.cjs +4 -4
  99. package/dist/primitives/file-preview.js +3 -3
  100. package/dist/primitives/filter-bar.cjs +4 -4
  101. package/dist/primitives/filter-bar.js +3 -3
  102. package/dist/primitives/fixed-action-bar.cjs +46 -0
  103. package/dist/primitives/fixed-action-bar.d.cts +15 -0
  104. package/dist/primitives/fixed-action-bar.d.ts +15 -0
  105. package/dist/primitives/fixed-action-bar.js +46 -0
  106. package/dist/primitives/floating-action-button.cjs +65 -0
  107. package/dist/primitives/floating-action-button.d.cts +52 -0
  108. package/dist/primitives/floating-action-button.d.ts +52 -0
  109. package/dist/primitives/floating-action-button.js +65 -0
  110. package/dist/primitives/form-section.cjs +38 -0
  111. package/dist/primitives/form-section.d.cts +43 -0
  112. package/dist/primitives/form-section.d.ts +43 -0
  113. package/dist/primitives/form-section.js +38 -0
  114. package/dist/primitives/key-value-grid.cjs +52 -0
  115. package/dist/primitives/key-value-grid.d.cts +20 -0
  116. package/dist/primitives/key-value-grid.d.ts +20 -0
  117. package/dist/primitives/key-value-grid.js +52 -0
  118. package/dist/primitives/marketing-footer.cjs +34 -0
  119. package/dist/primitives/marketing-footer.d.cts +29 -0
  120. package/dist/primitives/marketing-footer.d.ts +29 -0
  121. package/dist/primitives/marketing-footer.js +34 -0
  122. package/dist/primitives/marketing-header.cjs +41 -0
  123. package/dist/primitives/marketing-header.d.cts +31 -0
  124. package/dist/primitives/marketing-header.d.ts +31 -0
  125. package/dist/primitives/marketing-header.js +41 -0
  126. package/dist/primitives/marketing-section.cjs +8 -0
  127. package/dist/primitives/marketing-section.d.cts +35 -0
  128. package/dist/primitives/marketing-section.d.ts +35 -0
  129. package/dist/primitives/marketing-section.js +8 -0
  130. package/dist/primitives/marketing-shell.cjs +28 -0
  131. package/dist/primitives/marketing-shell.d.cts +14 -0
  132. package/dist/primitives/marketing-shell.d.ts +14 -0
  133. package/dist/primitives/marketing-shell.js +28 -0
  134. package/dist/primitives/notes.cjs +4 -4
  135. package/dist/primitives/notes.js +4 -4
  136. package/dist/primitives/page-header.cjs +3 -67
  137. package/dist/primitives/page-header.js +3 -67
  138. package/dist/primitives/page-tabs.cjs +4 -57
  139. package/dist/primitives/page-tabs.js +4 -57
  140. package/dist/primitives/pager.cjs +85 -0
  141. package/dist/primitives/pager.d.cts +39 -0
  142. package/dist/primitives/pager.d.ts +39 -0
  143. package/dist/primitives/pager.js +85 -0
  144. package/dist/primitives/pagination.cjs +119 -0
  145. package/dist/primitives/pagination.d.cts +41 -0
  146. package/dist/primitives/pagination.d.ts +41 -0
  147. package/dist/primitives/pagination.js +119 -0
  148. package/dist/primitives/poster.cjs +406 -0
  149. package/dist/primitives/poster.d.cts +406 -0
  150. package/dist/primitives/poster.d.ts +406 -0
  151. package/dist/primitives/poster.js +406 -0
  152. package/dist/primitives/resource-list.cjs +8 -8
  153. package/dist/primitives/resource-list.js +7 -7
  154. package/dist/primitives/responsive-embed.cjs +29 -0
  155. package/dist/primitives/responsive-embed.d.cts +14 -0
  156. package/dist/primitives/responsive-embed.d.ts +14 -0
  157. package/dist/primitives/responsive-embed.js +29 -0
  158. package/dist/primitives/save-bar.cjs +91 -0
  159. package/dist/primitives/save-bar.d.cts +55 -0
  160. package/dist/primitives/save-bar.d.ts +55 -0
  161. package/dist/primitives/save-bar.js +91 -0
  162. package/dist/primitives/settings-list.cjs +10 -0
  163. package/dist/primitives/settings-list.d.cts +31 -0
  164. package/dist/primitives/settings-list.d.ts +31 -0
  165. package/dist/primitives/settings-list.js +10 -0
  166. package/dist/primitives/settings-section.cjs +34 -0
  167. package/dist/primitives/settings-section.d.cts +44 -0
  168. package/dist/primitives/settings-section.d.ts +44 -0
  169. package/dist/primitives/settings-section.js +34 -0
  170. package/dist/primitives/sheet.d.cts +9 -9
  171. package/dist/primitives/sheet.d.ts +9 -9
  172. package/dist/primitives/short-video.cjs +110 -0
  173. package/dist/primitives/short-video.d.cts +30 -0
  174. package/dist/primitives/short-video.d.ts +30 -0
  175. package/dist/primitives/short-video.js +110 -0
  176. package/dist/primitives/stats-card.cjs +46 -0
  177. package/dist/primitives/stats-card.d.cts +19 -0
  178. package/dist/primitives/stats-card.d.ts +19 -0
  179. package/dist/primitives/stats-card.js +46 -0
  180. package/dist/primitives/stats-strip.cjs +38 -0
  181. package/dist/primitives/stats-strip.d.cts +24 -0
  182. package/dist/primitives/stats-strip.d.ts +24 -0
  183. package/dist/primitives/stats-strip.js +38 -0
  184. package/dist/primitives/step-list.cjs +32 -0
  185. package/dist/primitives/step-list.d.cts +19 -0
  186. package/dist/primitives/step-list.d.ts +19 -0
  187. package/dist/primitives/step-list.js +32 -0
  188. package/dist/primitives/steps.cjs +77 -0
  189. package/dist/primitives/steps.d.cts +35 -0
  190. package/dist/primitives/steps.d.ts +35 -0
  191. package/dist/primitives/steps.js +77 -0
  192. package/dist/primitives/tabbed-page-header.cjs +53 -0
  193. package/dist/primitives/tabbed-page-header.d.cts +26 -0
  194. package/dist/primitives/tabbed-page-header.d.ts +26 -0
  195. package/dist/primitives/tabbed-page-header.js +53 -0
  196. package/dist/primitives/theme-selector.cjs +17 -17
  197. package/dist/primitives/theme-selector.js +5 -5
  198. package/dist/primitives/voice-dictation-button.cjs +5 -5
  199. package/dist/primitives/voice-dictation-button.js +4 -4
  200. package/dist/primitives/voice-session-controls.cjs +4 -4
  201. package/dist/primitives/voice-session-controls.js +3 -3
  202. package/dist/primitives/workflow-assistant.cjs +5 -5
  203. package/dist/primitives/workflow-assistant.js +3 -3
  204. package/package.json +322 -1
  205. package/src/styles/components/poster.css +1449 -0
  206. package/src/styles/components.css +1 -0
  207. package/src/styles/utilities.css +2 -2
  208. package/dist/{chunk-5OF6D3GH.js → chunk-4TJBXXUE.js} +3 -3
  209. package/dist/{chunk-DILYV4FI.js → chunk-7ZRFXJVN.js} +3 -3
  210. package/dist/{chunk-YYFVG5A6.cjs → chunk-D46FNEZ5.cjs} +2 -2
  211. package/dist/{chunk-NKWHDI4C.cjs → chunk-FB3VY2PL.cjs} +2 -2
  212. package/dist/{chunk-MW67PHAQ.cjs → chunk-GUVQAWUW.cjs} +9 -9
  213. package/dist/{chunk-WHDHUYS6.js → chunk-HBRVOGLA.js} +3 -3
  214. package/dist/{chunk-FARCLWLU.cjs → chunk-HHF5DEKM.cjs} +3 -3
  215. package/dist/{chunk-TWCJMFST.js → chunk-O42YC6ZQ.js} +3 -3
  216. package/dist/{chunk-ZJFYOXSM.cjs → chunk-SRVRNHCX.cjs} +2 -2
  217. package/dist/{chunk-UFFHGKI7.js → chunk-SW4T3O7M.js} +9 -9
  218. package/dist/{chunk-62UTAG2C.js → chunk-ULZB4A2I.js} +3 -3
  219. package/dist/{chunk-ZLEM2SAU.cjs → chunk-Z3JJSNR5.cjs} +2 -2
@@ -0,0 +1,406 @@
1
+ import * as react_jsx_runtime from 'react/jsx-runtime';
2
+ import * as React from 'react';
3
+ import { AnchorHTMLAttributes, HTMLAttributes, ReactNode } from 'react';
4
+
5
+ /**
6
+ * Poster — a family for a one-page marketing poster: oversized type, full-
7
+ * bleed bands in paper, ink or one primary colour, and thin rules. A page
8
+ * composes `PosterShell` (its colours and font), `PosterHeader`,
9
+ * `PosterHero`, `PosterSwitch` (two audiences), `PosterBand`s and the blocks
10
+ * inside them. The presentation lives in `styles/components/poster.css`, keyed on each
11
+ * part's `data-slot`.
12
+ *
13
+ * The shell's `colours` and `font` brand one page without a palette: a page
14
+ * keeps its look whatever palette or mode the viewer picked elsewhere, and
15
+ * no palette picker offers it.
16
+ */
17
+ interface PosterColours {
18
+ /** The page and light bands. Defaults to the palette's background. */
19
+ paper?: string;
20
+ /** Text, rules and dark bands. Defaults to the palette's foreground. */
21
+ ink?: string;
22
+ /** The one accent colour: primary bands, the switch, tick marks. Defaults to the palette's primary. */
23
+ primary?: string;
24
+ /** Text on the primary colour. Defaults to the palette's primary foreground. */
25
+ onPrimary?: string;
26
+ /** Quieter text: a caption, a mock-up's secondary line. Defaults to the palette's muted foreground. */
27
+ mute?: string;
28
+ /** A faint fill: a mock-up's message, its selected row. Defaults to the palette's muted. */
29
+ wash?: string;
30
+ }
31
+ interface PosterShellProps extends HTMLAttributes<HTMLDivElement> {
32
+ colours?: PosterColours;
33
+ /** A CSS font-family list. The host loads the font. Defaults to the palette's sans. */
34
+ font?: string;
35
+ /** The page's colour scheme, for form controls and scrollbars. Defaults to the document's. */
36
+ colorScheme?: "light" | "dark";
37
+ }
38
+ /** The page: its colours, font and type scale, and a cover under a notch. */
39
+ declare const PosterShell: React.ForwardRefExoticComponent<PosterShellProps & React.RefAttributes<HTMLDivElement>>;
40
+ /** The page's main landmark, under the header. */
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>>;
53
+ interface PosterHeaderProps extends Omit<HTMLAttributes<HTMLElement>, "children"> {
54
+ /** The wordmark: a `PosterMark`. */
55
+ brand: ReactNode;
56
+ /** The site's pages, for a site of several posters: a `PosterNav`. It sits before the action. */
57
+ nav?: ReactNode;
58
+ /** One call to action: a `PosterHeaderAction`. */
59
+ action?: ReactNode;
60
+ }
61
+ /** A sticky bar with the wordmark, the site's pages when it has several, and one call to action, ruled underneath. */
62
+ declare const PosterHeader: React.ForwardRefExoticComponent<PosterHeaderProps & React.RefAttributes<HTMLElement>>;
63
+ interface PosterNavProps {
64
+ /** The landmark's name ("Main"). */
65
+ label: string;
66
+ /** The menu button's text on a narrow screen. Defaults to "Menu". */
67
+ menuLabel?: string;
68
+ /** The pages: `PosterNavLink`s. */
69
+ children: ReactNode;
70
+ }
71
+ /**
72
+ * The header's pages. On a wide screen (900px and up) they sit in a row
73
+ * before the call to action; narrower, a Menu button opens them in a panel
74
+ * under the header, which a pick, Escape or a click outside closes.
75
+ */
76
+ declare function PosterNav({ label, menuLabel, children }: PosterNavProps): react_jsx_runtime.JSX.Element;
77
+ interface PosterNavLinkProps extends AnchorHTMLAttributes<HTMLAnchorElement> {
78
+ /** The page being read: marked for a screen reader (`aria-current="page"`) and underlined. */
79
+ current?: boolean;
80
+ }
81
+ /** One of the header's pages, a link. */
82
+ declare const PosterNavLink: React.ForwardRefExoticComponent<PosterNavLinkProps & React.RefAttributes<HTMLAnchorElement>>;
83
+ /** The header's wordmark, a link. */
84
+ declare const PosterMark: React.ForwardRefExoticComponent<AnchorHTMLAttributes<HTMLAnchorElement> & React.RefAttributes<HTMLAnchorElement>>;
85
+ /** The header's call to action, a solid ink link. */
86
+ declare const PosterHeaderAction: React.ForwardRefExoticComponent<AnchorHTMLAttributes<HTMLAnchorElement> & React.RefAttributes<HTMLAnchorElement>>;
87
+ interface PosterHeroProps extends Omit<HTMLAttributes<HTMLElement>, "title"> {
88
+ title: ReactNode;
89
+ description?: ReactNode;
90
+ /** A small label above the title, on an inner page ("Case study"). */
91
+ eyebrow?: ReactNode;
92
+ /** home (default): a page's opening, its line set narrow; page: an inner page's opening. */
93
+ variant?: "home" | "page";
94
+ /** What the opening lets the reader do, under the line: `PosterAction`s, the first solid. */
95
+ actions?: ReactNode;
96
+ }
97
+ /** The opening statement: the page's h1 at the largest size, a line under it, and what to do next. */
98
+ declare const PosterHero: React.ForwardRefExoticComponent<PosterHeroProps & React.RefAttributes<HTMLElement>>;
99
+ interface PosterActionProps extends AnchorHTMLAttributes<HTMLAnchorElement> {
100
+ /** solid (default): ink, like the header's call to action; quiet: an underlined label beside it. */
101
+ variant?: "solid" | "quiet";
102
+ }
103
+ /** Something to do, a link: in a hero's `actions`. */
104
+ declare const PosterAction: React.ForwardRefExoticComponent<PosterActionProps & React.RefAttributes<HTMLAnchorElement>>;
105
+ interface PosterSwitchOption<Value extends string> {
106
+ value: Value;
107
+ title: ReactNode;
108
+ hint?: ReactNode;
109
+ }
110
+ interface PosterSwitchProps<Value extends string> {
111
+ /** What the choice is, for a screen reader ("Which one is you"). */
112
+ label: string;
113
+ options: readonly PosterSwitchOption<Value>[];
114
+ value: Value;
115
+ onValueChange: (value: Value) => void;
116
+ className?: string;
117
+ }
118
+ /**
119
+ * Side-by-side toggle buttons that pick which half of a page shows. The
120
+ * pressed one fills with the primary colour from below. Each is a button
121
+ * with `aria-pressed`, its own tab stop.
122
+ */
123
+ declare function PosterSwitch<Value extends string>({ label, options, value, onValueChange, className }: PosterSwitchProps<Value>): react_jsx_runtime.JSX.Element;
124
+ interface PosterBandProps extends Omit<HTMLAttributes<HTMLElement>, "title"> {
125
+ /** paper (default), ink (a dark band) or primary (a band in the accent colour). */
126
+ tone?: "paper" | "ink" | "primary";
127
+ /** default; loose (more room, for a closing call to action); top (none below); end (a page's last band). */
128
+ padding?: "default" | "loose" | "top" | "end";
129
+ /** A small label above the title ("The trap"). */
130
+ eyebrow?: ReactNode;
131
+ /** A large line before the title. */
132
+ kicker?: ReactNode;
133
+ title?: ReactNode;
134
+ /** The title's size: a section's (default), the largest, or a closing band's. */
135
+ titleSize?: "head" | "punch" | "end";
136
+ /** The title's line breaks: balanced (default), or as they fall. */
137
+ titleWrap?: "balance" | "auto";
138
+ /** A large line under the title. */
139
+ lead?: ReactNode;
140
+ /** A smaller line under the title, set wider apart. */
141
+ description?: ReactNode;
142
+ /** A smaller line close under the title. */
143
+ after?: ReactNode;
144
+ }
145
+ /** A full-bleed band: an eyebrow, a title and its lines, then any blocks. */
146
+ declare const PosterBand: React.ForwardRefExoticComponent<PosterBandProps & React.RefAttributes<HTMLElement>>;
147
+ /** A heading inside a band, a size down from its title. */
148
+ declare const PosterSubhead: React.ForwardRefExoticComponent<HTMLAttributes<HTMLHeadingElement> & React.RefAttributes<HTMLHeadingElement>>;
149
+ /** A line set apart in a band, at the middle size. */
150
+ declare const PosterStatement: React.ForwardRefExoticComponent<HTMLAttributes<HTMLParagraphElement> & React.RefAttributes<HTMLParagraphElement>>;
151
+ /** A calculator: its `PosterRanges`, then its `PosterFigures` and small print. */
152
+ declare const PosterCalculator: React.ForwardRefExoticComponent<HTMLAttributes<HTMLDivElement> & React.RefAttributes<HTMLDivElement>>;
153
+ /** Range inputs side by side (stacked on a phone). */
154
+ declare const PosterRanges: React.ForwardRefExoticComponent<HTMLAttributes<HTMLDivElement> & React.RefAttributes<HTMLDivElement>>;
155
+ interface PosterRangeProps {
156
+ label: ReactNode;
157
+ value: number;
158
+ min: number;
159
+ max: number;
160
+ step?: number;
161
+ onValueChange: (value: number) => void;
162
+ /** The value as read: shown above the track and given to a screen reader ("£400,000"). */
163
+ valueText: string;
164
+ id?: string;
165
+ }
166
+ /** A labelled range input on a hairline track, its value shown above it. */
167
+ declare function PosterRange({ label, value, min, max, step, onValueChange, valueText, id }: PosterRangeProps): react_jsx_runtime.JSX.Element;
168
+ interface PosterFiguresProps extends HTMLAttributes<HTMLDivElement> {
169
+ items: ReadonlyArray<{
170
+ label: ReactNode;
171
+ value: ReactNode;
172
+ }>;
173
+ }
174
+ /** Big figures under a rule, each with its label: two side by side, or one across. */
175
+ declare const PosterFigures: React.ForwardRefExoticComponent<PosterFiguresProps & React.RefAttributes<HTMLDivElement>>;
176
+ /** The terms under a calculator. */
177
+ declare const PosterSmallPrint: React.ForwardRefExoticComponent<HTMLAttributes<HTMLParagraphElement> & React.RefAttributes<HTMLParagraphElement>>;
178
+ interface PosterColumnsProps extends HTMLAttributes<HTMLDivElement> {
179
+ /**
180
+ * labelled: a small label over a line at the middle size; titled: a title
181
+ * over a paragraph; ruled: a rule, a small bold title and a line at the middle size.
182
+ */
183
+ variant?: "labelled" | "titled" | "ruled";
184
+ items: ReadonlyArray<{
185
+ heading: ReactNode;
186
+ text: ReactNode;
187
+ link?: {
188
+ href: string;
189
+ label: ReactNode;
190
+ };
191
+ }>;
192
+ }
193
+ /** Three columns (stacked on a phone). */
194
+ declare const PosterColumns: React.ForwardRefExoticComponent<PosterColumnsProps & React.RefAttributes<HTMLDivElement>>;
195
+ interface PosterTicksProps extends HTMLAttributes<HTMLUListElement> {
196
+ items: readonly ReactNode[];
197
+ /** Close under a `PosterStatement` (tight), or set apart (default). */
198
+ spacing?: "default" | "tight";
199
+ }
200
+ /** A ruled grid of short items, each marked with a square in the primary colour. */
201
+ declare const PosterTicks: React.ForwardRefExoticComponent<PosterTicksProps & React.RefAttributes<HTMLUListElement>>;
202
+ interface PosterDisclosureProps extends Omit<HTMLAttributes<HTMLDetailsElement>, "children"> {
203
+ summary: ReactNode;
204
+ children: ReactNode;
205
+ defaultOpen?: boolean;
206
+ }
207
+ /** A ruled disclosure: its summary with a plus that turns to a minus, and what it opens. */
208
+ declare const PosterDisclosure: React.ForwardRefExoticComponent<PosterDisclosureProps & React.RefAttributes<HTMLDetailsElement>>;
209
+ interface PosterFactsProps extends HTMLAttributes<HTMLDListElement> {
210
+ items: ReadonlyArray<{
211
+ term: ReactNode;
212
+ detail: ReactNode;
213
+ }>;
214
+ }
215
+ /** Ruled rows of a small term beside a large detail (stacked on a phone). */
216
+ declare const PosterFacts: React.ForwardRefExoticComponent<PosterFactsProps & React.RefAttributes<HTMLDListElement>>;
217
+ /** A paragraph after a block, at body size. */
218
+ declare const PosterNote: React.ForwardRefExoticComponent<HTMLAttributes<HTMLParagraphElement> & React.RefAttributes<HTMLParagraphElement>>;
219
+ interface PosterCallListProps extends HTMLAttributes<HTMLUListElement> {
220
+ /** What the list is, for a screen reader. */
221
+ label: string;
222
+ items: ReadonlyArray<{
223
+ name: ReactNode;
224
+ action: ReactNode;
225
+ }>;
226
+ }
227
+ /** Ruled rows of a name and a marker for what to do with it ("Call"). */
228
+ declare const PosterCallList: React.ForwardRefExoticComponent<PosterCallListProps & React.RefAttributes<HTMLUListElement>>;
229
+ interface PosterNumberedProps extends HTMLAttributes<HTMLOListElement> {
230
+ items: readonly ReactNode[];
231
+ }
232
+ /** Numbered steps in four columns (two on a phone), at body size. */
233
+ declare const PosterFlow: React.ForwardRefExoticComponent<PosterNumberedProps & React.RefAttributes<HTMLOListElement>>;
234
+ interface PosterStepsProps extends PosterNumberedProps {
235
+ /** three (default) ruled columns, or four (two on a narrow screen). */
236
+ layout?: "three" | "four";
237
+ }
238
+ /** Numbered steps in ruled columns (stacked on a phone), at the middle size. */
239
+ declare const PosterSteps: React.ForwardRefExoticComponent<PosterStepsProps & React.RefAttributes<HTMLOListElement>>;
240
+ interface PosterCostProps extends HTMLAttributes<HTMLDivElement> {
241
+ label: ReactNode;
242
+ statement: ReactNode;
243
+ /** Beside the statement, at its foot: a `PosterCopyText`. */
244
+ action?: ReactNode;
245
+ }
246
+ /** A ruled row: a small label over a large statement, and an action beside it. */
247
+ declare const PosterCost: React.ForwardRefExoticComponent<PosterCostProps & React.RefAttributes<HTMLDivElement>>;
248
+ interface PosterCopyTextProps {
249
+ /** What is shown and copied (an email address). */
250
+ text: string;
251
+ copyLabel?: string;
252
+ /** The button once the text is on the clipboard. */
253
+ copiedLabel?: string;
254
+ /** The button once the text is selected instead, where the clipboard can't be written. */
255
+ selectedLabel?: string;
256
+ /** inline (default): beside a statement; block: on its own, set apart from what comes before. */
257
+ placement?: "inline" | "block";
258
+ }
259
+ /**
260
+ * Text to copy, with a solid button that copies it. Where the clipboard
261
+ * can't be written (an insecure page, a refused permission), the text is
262
+ * selected instead, ready to copy by hand.
263
+ */
264
+ declare function PosterCopyText({ text, copyLabel, copiedLabel, selectedLabel, placement }: PosterCopyTextProps): react_jsx_runtime.JSX.Element;
265
+ interface PosterPeopleProps extends HTMLAttributes<HTMLUListElement> {
266
+ items: ReadonlyArray<{
267
+ name: ReactNode;
268
+ bio: ReactNode;
269
+ }>;
270
+ }
271
+ /** Ruled rows of a name beside a line about them (stacked on a phone). */
272
+ declare const PosterPeople: React.ForwardRefExoticComponent<PosterPeopleProps & React.RefAttributes<HTMLUListElement>>;
273
+ interface PosterFootnoteProps extends Omit<HTMLAttributes<HTMLDivElement>, "children"> {
274
+ start: ReactNode;
275
+ end?: ReactNode;
276
+ }
277
+ /** A ruled line of small print across a page's foot, at each end. */
278
+ declare const PosterFootnote: React.ForwardRefExoticComponent<PosterFootnoteProps & React.RefAttributes<HTMLDivElement>>;
279
+ /** A ruled link with a plus, leading to more on another page ("Open the case study"). */
280
+ declare const PosterMoreLink: React.ForwardRefExoticComponent<AnchorHTMLAttributes<HTMLAnchorElement> & React.RefAttributes<HTMLAnchorElement>>;
281
+ interface PosterNextLinkProps extends AnchorHTMLAttributes<HTMLAnchorElement> {
282
+ /** The small line above it ("Next"). */
283
+ label: ReactNode;
284
+ }
285
+ /** A large ruled link to the next page, under a small label. */
286
+ declare const PosterNextLink: React.ForwardRefExoticComponent<PosterNextLinkProps & React.RefAttributes<HTMLAnchorElement>>;
287
+ /** A link inside running text, underlined. */
288
+ declare const PosterTextLink: React.ForwardRefExoticComponent<AnchorHTMLAttributes<HTMLAnchorElement> & React.RefAttributes<HTMLAnchorElement>>;
289
+ /**
290
+ * A line break on a wider screen only, between two sentences of a line set
291
+ * large, so each line ends at a sentence; each part is balanced on its own.
292
+ * On a phone the line wraps as it falls, as a forced break there would leave
293
+ * short lines. It brings its own space, for when it isn't a break.
294
+ */
295
+ declare function PosterBreak(): react_jsx_runtime.JSX.Element;
296
+ interface PosterQuoteProps {
297
+ children: ReactNode;
298
+ /** Who said it, under it. */
299
+ by?: ReactNode;
300
+ /** large (default): a band's statement; small: a quote set under other blocks. */
301
+ size?: "large" | "small";
302
+ /** A quotation (default), or a statement set as one. */
303
+ as?: "blockquote" | "p";
304
+ }
305
+ /** A quotation set large, and who said it. */
306
+ declare function PosterQuote({ children, by, size, as }: PosterQuoteProps): react_jsx_runtime.JSX.Element;
307
+ interface PosterStatsProps extends HTMLAttributes<HTMLDListElement> {
308
+ items: ReadonlyArray<{
309
+ value: ReactNode;
310
+ label: ReactNode;
311
+ }>;
312
+ }
313
+ /** Ruled figures, each over what it counts: four across, or two when there are two. */
314
+ declare const PosterStats: React.ForwardRefExoticComponent<PosterStatsProps & React.RefAttributes<HTMLDListElement>>;
315
+ interface PosterClaimsProps extends HTMLAttributes<HTMLUListElement> {
316
+ items: readonly ReactNode[];
317
+ }
318
+ /** Short claims, one to a line, set large. */
319
+ declare const PosterClaims: React.ForwardRefExoticComponent<PosterClaimsProps & React.RefAttributes<HTMLUListElement>>;
320
+ interface PosterScreenProps extends Omit<HTMLAttributes<HTMLDivElement>, "title"> {
321
+ /** The product's name, at the bar's start. */
322
+ title: ReactNode;
323
+ /** What it is showing, at the bar's end. */
324
+ context?: ReactNode;
325
+ }
326
+ /** A ruled frame with a title bar: a product's screen, as a mock-up. */
327
+ declare const PosterScreen: React.ForwardRefExoticComponent<PosterScreenProps & React.RefAttributes<HTMLDivElement>>;
328
+ /** A screen's tabs, the first one current. */
329
+ declare function PosterScreenTabs({ items }: {
330
+ items: readonly ReactNode[];
331
+ }): react_jsx_runtime.JSX.Element;
332
+ /** A screen in two panes (stacked on a phone): 5 to 7 (default), or 4 to 8. */
333
+ declare function PosterScreenSplit({ ratio, children }: {
334
+ ratio?: "5:7" | "4:8";
335
+ children: ReactNode;
336
+ }): react_jsx_runtime.JSX.Element;
337
+ /** One pane of a split screen. */
338
+ declare function PosterScreenPane({ children }: {
339
+ children: ReactNode;
340
+ }): react_jsx_runtime.JSX.Element;
341
+ /** A message in a mock-up chat: one sent (filled), or a question asked back (outlined). */
342
+ declare function PosterScreenMessage({ from, children, variant }: {
343
+ from: ReactNode;
344
+ children: ReactNode;
345
+ variant?: "sent" | "asked";
346
+ }): react_jsx_runtime.JSX.Element;
347
+ /** Steps an agent is working through, each with a square. */
348
+ declare function PosterScreenTrace({ items }: {
349
+ items: readonly ReactNode[];
350
+ }): react_jsx_runtime.JSX.Element;
351
+ /** A line leading into a pane. */
352
+ declare function PosterScreenLead({ children }: {
353
+ children: ReactNode;
354
+ }): react_jsx_runtime.JSX.Element;
355
+ /** A grade in a square: in the primary colour when it is a top grade. */
356
+ declare function PosterGrade({ children, top }: {
357
+ children: ReactNode;
358
+ top?: boolean;
359
+ }): react_jsx_runtime.JSX.Element;
360
+ interface PosterScreenPersonProps {
361
+ initials: string;
362
+ name: ReactNode;
363
+ summary: ReactNode;
364
+ /** What is still to test about them, in a quieter line. */
365
+ test?: ReactNode;
366
+ grade: ReactNode;
367
+ topGrade?: boolean;
368
+ }
369
+ /** A person in a mock-up list: initials, name, a line, what to test, and a grade. */
370
+ declare function PosterScreenPerson({ initials, name, summary, test, grade, topGrade }: PosterScreenPersonProps): react_jsx_runtime.JSX.Element;
371
+ interface PosterScreenQueueProps {
372
+ items: ReadonlyArray<{
373
+ name: ReactNode;
374
+ role: ReactNode;
375
+ grade: ReactNode;
376
+ topGrade?: boolean;
377
+ selected?: boolean;
378
+ }>;
379
+ }
380
+ /** A pane of people to work through, one selected. */
381
+ declare function PosterScreenQueue({ items }: PosterScreenQueueProps): react_jsx_runtime.JSX.Element;
382
+ interface PosterScreenDetailProps {
383
+ title: ReactNode;
384
+ line?: ReactNode;
385
+ evidence?: readonly ReactNode[];
386
+ /** The decision's buttons as drawn: the first in the primary colour. */
387
+ actions?: readonly ReactNode[];
388
+ }
389
+ /** One person, opened: a title, a line, the evidence and the decision. */
390
+ declare function PosterScreenDetail({ title, line, evidence, actions }: PosterScreenDetailProps): react_jsx_runtime.JSX.Element;
391
+ interface PosterScreenRowsProps {
392
+ items: ReadonlyArray<{
393
+ name: ReactNode;
394
+ line: ReactNode;
395
+ grade: ReactNode;
396
+ topGrade?: boolean;
397
+ action: ReactNode;
398
+ needsYou?: boolean;
399
+ }>;
400
+ }
401
+ /** Rows of people with a line, a grade and what to do: filled, or outlined when it needs a person. */
402
+ declare function PosterScreenRows({ items }: PosterScreenRowsProps): react_jsx_runtime.JSX.Element;
403
+ /** A quiet line under a mock-up. */
404
+ declare const PosterMockNote: React.ForwardRefExoticComponent<HTMLAttributes<HTMLParagraphElement> & React.RefAttributes<HTMLParagraphElement>>;
405
+
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 };