@hanzo/ui 8.29.15 → 8.29.18

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.
@@ -1,38 +1,45 @@
1
1
  'use client';
2
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
3
  /**
4
4
  * Consent — the one cookie banner every Hanzo, Lux and Zoo site mounts.
5
5
  *
6
- * It draws the choice; @hanzo/event stores it (`hz_consent`) and acts on it: no
7
- * Google Analytics, no Meta pixel and no ad personalization before Accept, and
8
- * Google Consent Mode v2 starts denied. The brand's own first-party analytics is
9
- * strictly necessary and runs for every visitor; the choice does not govern it.
6
+ * It draws the choice; @hanzo/event stores it (`hz_consent`) and acts on it. The
7
+ * brand's own first-party analytics is strictly necessary and runs for every
8
+ * visitor. What the third parties (Google Analytics, the Meta pixel, their ad
9
+ * personalization) may do is regional: cloud places the visitor by GeoIP and
10
+ * serves a `mode` with the site's tag config (`consentPolicy()`).
10
11
  *
11
- * - every visitor, wherever they are, is asked: a bar with Manage preferences,
12
- * Accept all and a ×, until they have chosen. Nothing optional loads first.
13
- * - the bar's × is a choice, not a dismissal: it stores essential cookies only
14
- * and closes, so refusing is one press, exactly as accepting is.
15
- * - Manage preferences opens the Cookie Preferences sheet: a modal with one
16
- * section per category, Strictly Necessary always on, the rest switches that
17
- * start off until chosen, and the policy links.
18
- * - Global Privacy Control or Do Not Track is the visitor's answer already: they
19
- * are not asked, nothing optional runs, and the switches are locked off.
20
- * - cloud serves the policy with the site's tag config; the bar redraws when it
21
- * arrives, and asks again when the policy version changes.
12
+ * - `eu`: opt-in. A bar with Manage preferences, Accept all and a ×, until the
13
+ * visitor has chosen; nothing of the third parties loads first. The × is a
14
+ * choice, not a dismissal: essential cookies only, so refusing is one press,
15
+ * exactly as accepting is.
16
+ * - `us_privacy`: opt-out. No bar; Google Analytics and Meta run by default, and
17
+ * "Your Privacy Choices" opens the sheet, where turning a switch off saves at
18
+ * once. The advertising switch is the sale and sharing opt-out.
19
+ * - `global`: a notice. One line and a × that records it as seen; the same
20
+ * opt-out sheet stays one press away.
21
+ * - Global Privacy Control or Do Not Track is an answer already: in `eu` every
22
+ * switch is held off and the visitor is not asked; elsewhere the sale and
23
+ * sharing for targeted advertising is held off.
24
+ * - Until cloud answers, nothing is drawn: the answer this tab was last served
25
+ * (@hanzo/event keeps it) is used at once, and with none by 1.5s the strict
26
+ * `eu` rule applies.
22
27
  *
23
28
  * `Consent` mounts once near the root. `openConsent()`, `ConsentLink` and any
24
- * link to `#choices` (the footer's Privacy choices) open the sheet from anywhere.
25
- * `brand` names who is asking; `cookies`, `privacy` and `terms` are the brand's
26
- * own policies.
29
+ * link to `#choices` (the footer's Your Privacy Choices) open the sheet from
30
+ * anywhere. A page with no such link in it gets a small one, fixed to the foot of
31
+ * the window, so the choices are always one press away. `brand` names who is
32
+ * asking; `cookies`, `privacy` and `terms` are the brand's own policies.
27
33
  */
28
34
  import { Paragraph, Text, XStack, YStack } from '@hanzo/gui';
29
35
  import { ChevronDown, X } from '@hanzogui/lucide-icons-2';
30
- import { acceptAll, asks, declined, POLICY_EVENT, readConsent, rejectAll, saveConsent, storedConsent } from '@hanzo/event';
36
+ import { acceptAll, asks, consentPolicy, declined, notice, noticed, POLICY_EVENT, readConsent, rejectAll, saveConsent, storedConsent, } from '@hanzo/event';
31
37
  import { useEffect, useId, useRef, useState } from 'react';
32
38
  import { Button } from '../backends/gui/button.js';
33
39
  import { align } from '../backends/gui/dir.js';
34
40
  import { Switch } from '../backends/gui/switch.js';
35
41
  import { slot } from '../backends/gui/slot.js';
42
+ import { PrivacyChoicesIcon } from './icon.js';
36
43
  const OPEN = 'hzconsent-open';
37
44
  /** The address that opens the sheet, from any link on any page. */
38
45
  const HASH = '#choices';
@@ -41,7 +48,39 @@ export const openConsent = () => {
41
48
  if (typeof window !== 'undefined')
42
49
  window.dispatchEvent(new Event(OPEN));
43
50
  };
44
- const kinds = (brand) => [
51
+ /** How long a page waits for cloud's rule before the strict one applies. */
52
+ const WAIT = 1500;
53
+ /**
54
+ * The rule, once one has been served: on this page, or to this tab before (then
55
+ * it carries the region cloud placed the visitor in). `consentPolicy()` answers
56
+ * `eu` before either, which is the rule to wait out rather than draw.
57
+ */
58
+ const served = () => {
59
+ const p = consentPolicy();
60
+ return p.region ? p.mode : undefined;
61
+ };
62
+ /*
63
+ * The links a page draws to the sheet, counted on the page (not in module scope,
64
+ * since a bundle may carry two copies of this module), so the component draws its
65
+ * own only where the page has none.
66
+ */
67
+ const LINKS = Symbol.for('hanzo.ui.consent.links');
68
+ const LINKS_EVENT = 'hzconsent-links';
69
+ function hold() {
70
+ const g = globalThis;
71
+ g[LINKS] = (g[LINKS] ?? 0) + 1;
72
+ window.dispatchEvent(new Event(LINKS_EVENT));
73
+ return () => {
74
+ g[LINKS] = Math.max(0, (g[LINKS] ?? 1) - 1);
75
+ window.dispatchEvent(new Event(LINKS_EVENT));
76
+ };
77
+ }
78
+ /** Whether the page draws a way to the sheet: a ConsentLink, or a link to #choices (a footer's). */
79
+ function linked() {
80
+ const g = globalThis;
81
+ return (g[LINKS] ?? 0) > 0 || document.querySelector(`a[href$="${HASH}"]`) !== null;
82
+ }
83
+ const kinds = (brand, strict) => [
45
84
  {
46
85
  id: 'necessary',
47
86
  title: 'Strictly Necessary Cookies',
@@ -63,9 +102,17 @@ const kinds = (brand) => [
63
102
  id: 'ads',
64
103
  key: 'ads',
65
104
  title: 'Sell, Share, or Use Your Data for Targeted Advertising',
66
- body: 'Lets Google and Meta use your visit to choose the ads they show you on other sites and apps. Some US state privacy laws call this a “sale” or “sharing” of your personal information, or “targeted advertising”, and give you the right to opt out: it stays off unless you turn it on.',
105
+ body: `Lets Google and Meta use your visits to choose the ads they show you on other sites and apps. Some US state privacy laws call this a “sale” or “sharing” of your personal information, or “targeted advertising”, and give you the right to opt out: ${strict ? 'it stays off unless you turn it on.' : 'turn this off to opt out.'}`,
67
106
  },
68
107
  ];
108
+ /** The sheet's opening line, by rule: what runs before the visitor does anything, and how to change it. */
109
+ const intro = (strict) => strict
110
+ ? 'We use cookies and similar technologies to provide our services, measure performance, and support advertising. Essential cookies are required for the site to work and cannot be turned off. You can allow or reject optional cookies below. Learn more in our '
111
+ : 'We use cookies and similar technologies to provide our services, measure performance, and support advertising. Google Analytics and the Meta pixel run on this site by default. Turn either off below, or turn off the last switch to opt out of the sale or sharing of your personal information for targeted advertising; each switch is saved as soon as you change it. Essential cookies are required for the site to work and cannot be turned off. Learn more in our ';
112
+ /** What a browser that sends Global Privacy Control or Do Not Track holds off, by rule. */
113
+ const refusal = (strict) => strict
114
+ ? 'Your browser asks sites not to track you, so all of these stay off.'
115
+ : 'Your browser asks sites not to track you, so your data is not sold or shared for targeted advertising.';
69
116
  /** The bar's and the sheet's inset from the window's edges: 16px, or the device's inset and 8px where that is wider. */
70
117
  const EDGE = {
71
118
  top: 'max(16px, calc(var(--safe-top, env(safe-area-inset-top, 0px)) + 8px))',
@@ -73,12 +120,18 @@ const EDGE = {
73
120
  left: 'max(16px, calc(var(--safe-left, env(safe-area-inset-left, 0px)) + 8px))',
74
121
  right: 'max(16px, calc(var(--safe-right, env(safe-area-inset-right, 0px)) + 8px))',
75
122
  };
76
- /** The panel both wear: the card's ground, edge, corner (`$6`, the sign-in card's) and floating shadow. */
123
+ /**
124
+ * Corners from design's ladder (radius.css), one step apart so the buttons sit
125
+ * concentric in their card: a button on `--radius-lg` (12px), the bar and the
126
+ * sheet on `--radius-xl` (16px). Both follow `--radius-scale`; neither is a pill.
127
+ */
128
+ const ROUND = { button: 'var(--radius-lg, 12px)', card: 'var(--radius-xl, 16px)' };
129
+ /** The panel both wear: the card's ground, edge, corner and floating shadow. */
77
130
  const PANEL = {
78
131
  bg: '$background',
79
132
  borderWidth: 1,
80
133
  borderColor: '$borderColor',
81
- rounded: '$6',
134
+ rounded: ROUND.card,
82
135
  shadowColor: 'rgba(0,0,0,0.25)',
83
136
  shadowRadius: 24,
84
137
  shadowOffset: { width: 0, height: 8 },
@@ -92,8 +145,6 @@ const PANEL = {
92
145
  const frame = {
93
146
  ...slot('consent'),
94
147
  ...PANEL,
95
- role: 'dialog',
96
- 'aria-label': 'Cookie preferences',
97
148
  position: 'fixed',
98
149
  b: EDGE.bottom,
99
150
  l: EDGE.left,
@@ -102,13 +153,59 @@ const frame = {
102
153
  z: 'var(--z-banner, 50)',
103
154
  py: '$3',
104
155
  paddingInlineStart: '$4',
105
- // Clear of the × in the corner: its 32px, and 12px either side.
156
+ // Clear of the × in the corner: its 36px, 12px outside it and 8px before it.
106
157
  paddingInlineEnd: 56,
107
158
  };
108
159
  /** The bar is as wide as its line and buttons, up to the window less its inset. */
109
160
  const FIT = { width: 'fit-content' };
110
- /** The one filled control in the bar and in the sheet: the ink, as the sign-in card's Continue. */
111
- const ACT = { bg: '$ink', color: '$background', borderColor: '$ink', hoverStyle: { opacity: 0.92 } };
161
+ /** The keyboard's mark on any control here: design's focus ring, outside the control. */
162
+ const RING = { outlineColor: 'var(--ring)', outlineStyle: 'solid', outlineWidth: 2, outlineOffset: 2 };
163
+ /**
164
+ * A button's every state from design's button tokens (colors.css), so it follows
165
+ * the theme and an org's accent: at rest the fill, under the pointer and pressed
166
+ * its `-hover` step, focused by keyboard the ring. Each state names its fill and
167
+ * a clear edge outright, because a state that leaves one out takes the Button's
168
+ * own (the frame's hover is a near-black fill and a grey edge, which put dark
169
+ * text on dark under the cursor). 13px type on the 36px floor.
170
+ */
171
+ const button = (fill, hover, ink) => ({
172
+ size: 'sm',
173
+ minH: 36,
174
+ rounded: ROUND.button,
175
+ bg: fill,
176
+ color: ink,
177
+ borderColor: 'transparent',
178
+ hoverStyle: { bg: hover, borderColor: 'transparent', opacity: 1 },
179
+ pressStyle: { bg: hover, borderColor: 'transparent', opacity: 1 },
180
+ focusStyle: { borderColor: 'transparent' },
181
+ focusVisibleStyle: RING,
182
+ });
183
+ /** The one filled control: Accept all in the bar, Save preferences (or Done) in the sheet. */
184
+ const PRIMARY = button('var(--primary)', 'var(--primary-hover)', 'var(--primary-foreground)');
185
+ /** Beside it: Manage preferences in the bar, Accept all in the sheet. */
186
+ const SECONDARY = button('var(--secondary)', 'var(--secondary-hover)', 'var(--secondary-foreground)');
187
+ /** A ×: no fill at rest, the secondary surface under the pointer. */
188
+ const CLOSE = {
189
+ rounded: ROUND.button,
190
+ bg: 'transparent',
191
+ borderColor: 'transparent',
192
+ hoverStyle: { bg: 'var(--secondary)', borderColor: 'transparent', opacity: 1 },
193
+ pressStyle: { bg: 'var(--secondary-hover)', borderColor: 'transparent', opacity: 1 },
194
+ focusStyle: { borderColor: 'transparent' },
195
+ focusVisibleStyle: RING,
196
+ };
197
+ /** "Your Privacy Choices" as a footer draws a link: the icon, then the words, quiet until pointed at. */
198
+ const CHOICES = {
199
+ type: 'button',
200
+ variant: 'link',
201
+ size: 'sm',
202
+ px: 0,
203
+ minH: 0,
204
+ color: '$aside',
205
+ hoverStyle: { color: '$ink' },
206
+ focusVisibleStyle: RING,
207
+ startIcon: _jsx(PrivacyChoicesIcon, {}),
208
+ };
112
209
  /** A link in the sheet's intro: the line's own ink, underlined, never broken across lines. */
113
210
  const INLINE = { color: 'inherit', textDecoration: 'underline', whiteSpace: 'nowrap' };
114
211
  /** The sheet covers the window, on design's modal rung, over a scrim of its own. */
@@ -118,10 +215,17 @@ const FOCUSABLE = 'a[href], button:not([disabled]), [tabindex]:not([tabindex="-1
118
215
  /** A section's button never submits a form the sheet sits in. gui's stack props do not name `type`. */
119
216
  const BUTTON = { type: 'button' };
120
217
  const Consent = ({ cookies = 'https://hanzo.ai/cookies', privacy = 'https://hanzo.ai/privacy', terms = 'https://hanzo.ai/terms', brand = 'Hanzo', }) => {
218
+ // The rule in force: undefined until cloud (or this tab) has said, and nothing is drawn meanwhile.
219
+ const [mode, setMode] = useState();
220
+ // The bar (eu) or the notice (global) at the foot of the window.
121
221
  const [shown, setShown] = useState(false);
122
222
  const [choosing, setChoosing] = useState(false);
123
223
  const [draft, setDraft] = useState({ analytics: false, marketing: false, ads: false });
124
224
  const [expanded, setExpanded] = useState({});
225
+ // Whether the page draws its own way to the sheet; if not, the component draws one.
226
+ const [hosted, setHosted] = useState(true);
227
+ // The rule, read by handlers registered once.
228
+ const rule = useRef(undefined);
125
229
  // The choices are open because the visitor asked for them. A policy that
126
230
  // arrives after (cloud answers ~150ms into a page opened at #choices) redraws
127
231
  // the bar's question, and must not close what was asked for.
@@ -131,12 +235,14 @@ const Consent = ({ cookies = 'https://hanzo.ai/cookies', privacy = 'https://hanz
131
235
  const sheet = useRef(null);
132
236
  const manage = useRef(null);
133
237
  const opened = useRef(false);
134
- // The switches were filled from a stored choice, not left off.
238
+ // The switches were filled from a stored choice, not left at the rule's defaults.
135
239
  const seeded = useRef(false);
136
240
  const id = useId();
137
241
  // The browser refused, as the page sees it or as cloud saw the request. State,
138
242
  // so cloud's answer redraws an open sheet.
139
243
  const [locked, setLocked] = useState(false);
244
+ /** What stands at the foot of the window under a rule: the eu bar until a choice, the global notice until seen. */
245
+ const front = (m = rule.current) => (m === 'eu' ? asks() : m === 'global' ? !noticed() : false);
140
246
  const choose = () => {
141
247
  // Already open: the visitor's unsaved switches and the focus to return stay as they are.
142
248
  if (asked.current)
@@ -148,29 +254,52 @@ const Consent = ({ cookies = 'https://hanzo.ai/cookies', privacy = 'https://hanz
148
254
  seeded.current = storedConsent();
149
255
  setDraft(readConsent());
150
256
  setChoosing(true);
151
- setShown(true);
152
257
  };
153
- // Closing without a choice: a visitor who has not chosen is asked again by the bar.
258
+ // Closing without a choice: under eu a visitor who has not chosen is asked again by the bar.
154
259
  const close = () => {
155
260
  asked.current = false;
156
261
  setChoosing(false);
157
- setShown(asks());
262
+ setShown(front());
158
263
  };
159
264
  useEffect(() => {
160
265
  const sync = () => {
161
- setShown(asks() || asked.current);
266
+ setShown(front());
162
267
  setLocked(declined());
163
268
  // A policy version the stored choice was not made under: the switches the
164
- // sheet opened with were an old grant, and are off until chosen again.
269
+ // sheet opened with were an old grant, and fall back to the rule's own.
165
270
  if (asked.current && seeded.current && !storedConsent()) {
166
271
  seeded.current = false;
167
272
  setDraft(readConsent());
168
273
  }
169
274
  };
170
- sync();
275
+ const decide = (m) => {
276
+ rule.current = m;
277
+ setMode(m);
278
+ sync();
279
+ };
280
+ // Cloud answered on this page: its rule, whether or not it placed the visitor.
281
+ const policy = () => decide(consentPolicy().mode);
282
+ const known = served();
283
+ if (known)
284
+ decide(known);
285
+ // No answer in time is the strict answer.
286
+ const wait = known ? undefined : window.setTimeout(() => rule.current ?? decide('eu'), WAIT);
287
+ // The page's own links to the sheet, looked for again as it changes, once a frame.
288
+ let frameId = 0;
289
+ const look = () => {
290
+ if (frameId)
291
+ return;
292
+ frameId = window.requestAnimationFrame(() => {
293
+ frameId = 0;
294
+ setHosted(linked());
295
+ });
296
+ };
297
+ look();
298
+ const watch = new MutationObserver(look);
299
+ watch.observe(document.body, { childList: true, subtree: true });
171
300
  // `#choices` opens the sheet: on arrival, on a hash change, and on a press of
172
- // any link on this site to it, so the footer's Privacy choices and a link in
173
- // a page are the same control.
301
+ // any link on this site to it, so the footer's Your Privacy Choices and a link
302
+ // in a page are the same control.
174
303
  const hash = () => {
175
304
  if (window.location.hash !== HASH)
176
305
  return;
@@ -205,12 +334,17 @@ const Consent = ({ cookies = 'https://hanzo.ai/cookies', privacy = 'https://hanz
205
334
  };
206
335
  hash();
207
336
  window.addEventListener(OPEN, choose);
208
- window.addEventListener(POLICY_EVENT, sync);
337
+ window.addEventListener(POLICY_EVENT, policy);
338
+ window.addEventListener(LINKS_EVENT, look);
209
339
  window.addEventListener('hashchange', hash);
210
340
  document.addEventListener('click', press, { capture: true });
211
341
  return () => {
342
+ window.clearTimeout(wait);
343
+ window.cancelAnimationFrame(frameId);
344
+ watch.disconnect();
212
345
  window.removeEventListener(OPEN, choose);
213
- window.removeEventListener(POLICY_EVENT, sync);
346
+ window.removeEventListener(POLICY_EVENT, policy);
347
+ window.removeEventListener(LINKS_EVENT, look);
214
348
  window.removeEventListener('hashchange', hash);
215
349
  document.removeEventListener('click', press, { capture: true });
216
350
  };
@@ -260,28 +394,53 @@ const Consent = ({ cookies = 'https://hanzo.ai/cookies', privacy = 'https://hanz
260
394
  document.addEventListener('keydown', keys);
261
395
  return () => document.removeEventListener('keydown', keys);
262
396
  }, [choosing]);
263
- if (!shown)
264
- return null;
265
397
  const done = (fn) => () => {
266
398
  fn();
267
399
  asked.current = false;
268
- setShown(false);
400
+ setShown(front());
269
401
  setChoosing(false);
270
402
  };
271
- if (choosing)
403
+ if (choosing) {
404
+ // A sheet opened before cloud answered speaks the strict rule.
405
+ const strict = (mode ?? 'eu') === 'eu';
406
+ // eu holds every switch off for a browser that refused; elsewhere only the sale and sharing.
407
+ const held = (key) => locked && (strict || key === 'ads');
408
+ // Under eu the switches wait for Save preferences; elsewhere each one is an opt-out, saved as it moves.
409
+ const flip = (key, on) => {
410
+ const next = { ...draft, [key]: on };
411
+ setDraft(next);
412
+ if (!strict)
413
+ saveConsent(next);
414
+ };
272
415
  return (_jsxs(YStack, { ...slot('consent-sheet'), ...COVER, z: "var(--z-modal, 600)", items: "center", justify: "center",
273
416
  // The device's insets are physical sides, so the shorthand names them in order.
274
- style: { padding: `${EDGE.top} ${EDGE.right} ${EDGE.bottom} ${EDGE.left}` }, children: [_jsx(YStack, { ...COVER, position: "absolute", z: 0, bg: "rgba(0,0,0,0.6)", "aria-hidden": true, onPress: close }), _jsxs(YStack, { ...slot('consent'), ...PANEL, ref: sheet, role: "dialog", "aria-modal": true, "aria-labelledby": `${id}-title`, position: "relative", width: "100%", maxW: 560, maxH: "100%", overflow: "hidden", children: [_jsxs(XStack, { items: "center", justify: "space-between", gap: "$3", pt: "$5", pb: "$3", paddingInlineStart: "$5", paddingInlineEnd: "$4", children: [_jsx(Text, { render: "h2", id: `${id}-title`, m: 0, fontSize: "$6", lineHeight: "$6", fontWeight: "600", color: "$ink", children: "Cookie Preferences" }), _jsx(Button, { type: "button", size: "icon-sm", variant: "ghost", "aria-label": "Close", onClick: close, children: _jsx(X, { size: 16 }) })] }), _jsxs(YStack, { shrink: 1, minH: 0, overflowY: "auto", px: "$5", pb: "$2", style: { overscrollBehavior: 'contain' }, children: [_jsxs(Paragraph, { size: "$2", color: "$aside", m: 0, pb: "$3", children: ['We use cookies and similar technologies to provide our services, measure performance, and support advertising. Essential cookies are required for the site to work and cannot be turned off. You can allow or reject optional cookies below. Learn more in our ', _jsx("a", { href: cookies, style: INLINE, children: "Cookie Policy" }), ', ', _jsx("a", { href: privacy, style: INLINE, children: "Privacy Policy" }), ', and ', _jsx("a", { href: terms, style: INLINE, children: "Terms of Service" }), "."] }), locked ? (_jsx(Paragraph, { size: "$2", color: "$ink", m: 0, pb: "$3", children: "Your browser asks sites not to track you, so all of these stay off." })) : null, kinds(brand).map((k) => {
417
+ style: { padding: `${EDGE.top} ${EDGE.right} ${EDGE.bottom} ${EDGE.left}` }, children: [_jsx(YStack, { ...COVER, position: "absolute", z: 0, bg: "rgba(0,0,0,0.6)", "aria-hidden": true, onPress: close }), _jsxs(YStack, { ...slot('consent'), ...PANEL, ref: sheet, role: "dialog", "aria-modal": true, "aria-labelledby": `${id}-title`, position: "relative", width: "100%", maxW: 560, maxH: "100%", overflow: "hidden", children: [_jsxs(XStack, { items: "center", justify: "space-between", gap: "$3", pt: "$5", pb: "$3", paddingInlineStart: "$5", paddingInlineEnd: "$4", children: [_jsx(Text, { render: "h2", id: `${id}-title`, m: 0, fontSize: "$6", lineHeight: "$6", fontWeight: "600", color: "$ink", children: "Cookie Preferences" }), _jsx(Button, { type: "button", size: "icon", ...CLOSE, "aria-label": "Close", onClick: close, children: _jsx(X, { size: 16 }) })] }), _jsxs(YStack, { shrink: 1, minH: 0, overflowY: "auto", px: "$5", pb: "$2", style: { overscrollBehavior: 'contain' }, children: [_jsxs(Paragraph, { size: "$2", color: "$aside", m: 0, pb: "$3", children: [intro(strict), _jsx("a", { href: cookies, style: INLINE, children: "Cookie Policy" }), ', ', _jsx("a", { href: privacy, style: INLINE, children: "Privacy Policy" }), ', and ', _jsx("a", { href: terms, style: INLINE, children: "Terms of Service" }), "."] }), locked ? (_jsx(Paragraph, { size: "$2", color: "$ink", m: 0, pb: "$3", children: refusal(strict) })) : null, kinds(brand, strict).map((k) => {
275
418
  const open = expanded[k.id] === true;
276
419
  const body = `${id}-${k.id}`;
277
- return (_jsxs(YStack, { ...slot('consent-section'), borderTopWidth: 1, borderColor: "$borderColor", children: [_jsxs(XStack, { items: "center", gap: "$3", minH: 52, py: "$2", children: [_jsx(XStack, { render: "h3", flex: 1, minW: 0, m: 0, children: _jsxs(XStack, { render: "button", ...BUTTON, "aria-expanded": open, "aria-controls": body, onPress: () => setExpanded({ ...expanded, [k.id]: !open }), flex: 1, minW: 0, items: "center", gap: "$2", p: 0, bg: "transparent", borderWidth: 0, cursor: "pointer", children: [_jsx(XStack, { shrink: 0, rotate: open ? '180deg' : '0deg', opacity: 0.7, children: _jsx(ChevronDown, { size: 16 }) }), _jsx(Text, { fontSize: "$3", lineHeight: "$3", fontWeight: "600", color: "$ink", ...align('start'), children: k.title })] }) }), k.key ? (_jsx(Switch, { "aria-label": k.title, "aria-describedby": body, disabled: locked, checked: locked ? false : draft[k.key], onCheckedChange: (v) => setDraft({ ...draft, [k.key]: v === true }) })) : (_jsx(Text, { fontSize: "$2", fontWeight: "600", color: "$ink", whiteSpace: "nowrap", children: "Always Active" }))] }), _jsx(YStack, { id: body, display: open ? 'flex' : 'none', pb: "$3", paddingInlineStart: 24, children: _jsx(Paragraph, { size: "$2", color: "$aside", m: 0, children: k.body }) })] }, k.id));
278
- })] }), _jsxs(XStack, { flexWrap: "wrap", gap: "$2", px: "$5", py: "$4", borderTopWidth: 1, borderColor: "$borderColor", children: [locked ? null : (_jsx(Button, { type: "button", variant: "secondary", grow: 1, onClick: done(acceptAll), children: "Accept all" })), _jsx(Button, { type: "button", ...ACT, grow: 1, onClick: done(() => saveConsent(draft)), children: "Save preferences" })] })] })] }));
279
- // One bar: the line, then the buttons. They share a row where the line fits
420
+ return (_jsxs(YStack, { ...slot('consent-section'), borderTopWidth: 1, borderColor: "$borderColor", children: [_jsxs(XStack, { items: "center", gap: "$3", minH: 52, py: "$2", children: [_jsx(XStack, { render: "h3", flex: 1, minW: 0, m: 0, children: _jsxs(XStack, { render: "button", ...BUTTON, "aria-expanded": open, "aria-controls": body, onPress: () => setExpanded({ ...expanded, [k.id]: !open }), flex: 1, minW: 0, items: "center", gap: "$2", p: 0, bg: "transparent", borderWidth: 0, cursor: "pointer", children: [_jsx(XStack, { shrink: 0, rotate: open ? '180deg' : '0deg', opacity: 0.7, children: _jsx(ChevronDown, { size: 16 }) }), _jsx(Text, { fontSize: "$3", lineHeight: "$3", fontWeight: "600", color: "$ink", ...align('start'), children: k.title })] }) }), k.key ? (_jsx(Switch, { "aria-label": k.title, "aria-describedby": body, disabled: held(k.key), checked: held(k.key) ? false : draft[k.key], onCheckedChange: (v) => flip(k.key, v === true) })) : (_jsx(Text, { fontSize: "$2", fontWeight: "600", color: "$ink", whiteSpace: "nowrap", children: "Always Active" }))] }), _jsx(YStack, { id: body, display: open ? 'flex' : 'none', pb: "$3", paddingInlineStart: 24, children: _jsx(Paragraph, { size: "$2", color: "$aside", m: 0, children: k.body }) })] }, k.id));
421
+ })] }), _jsx(XStack, { flexWrap: "wrap", gap: "$2", px: "$5", py: "$4", borderTopWidth: 1, borderColor: "$borderColor", children: strict ? (_jsxs(_Fragment, { children: [locked ? null : (_jsx(Button, { type: "button", ...SECONDARY, grow: 1, onClick: done(acceptAll), children: "Accept all" })), _jsx(Button, { type: "button", ...PRIMARY, grow: 1, onClick: done(() => saveConsent(draft)), children: "Save preferences" })] })) : (_jsx(Button, { type: "button", ...PRIMARY, grow: 1, onClick: close, children: "Done" })) })] })] }));
422
+ }
423
+ if (!mode)
424
+ return null;
425
+ // The way to the sheet on a page that draws none: small, quiet, at the foot of the window.
426
+ const own = !hosted && !shown ? (_jsx(XStack, { ...slot('consent-choices'), position: "fixed", b: EDGE.bottom, l: EDGE.left, z: "var(--z-banner, 50)", px: "$2.5", py: "$1", bg: "$background", borderWidth: 1, borderColor: "$borderColor", rounded: ROUND.button, children: _jsx(Button, { ...CHOICES, onClick: choose, children: "Your Privacy Choices" }) })) : null;
427
+ if (!shown)
428
+ return own;
429
+ // The global notice: one line, the way to the choices, and a × that records it as seen.
430
+ if (mode === 'global')
431
+ return (_jsxs(XStack, { ...frame, role: "region", "aria-label": "Cookie notice", style: FIT, maxW: 1200, flexWrap: "wrap", items: "center", columnGap: "$4", rowGap: "$2", children: [_jsx(YStack, { shrink: 1, minW: 0, children: _jsx(Paragraph, { size: "$2", color: "$ink", m: 0, children: "We use cookies to improve your experience. By continuing to browse, you agree." }) }), _jsx(Button, { ...CHOICES, onClick: choose, children: "Your Privacy Choices" }), _jsx(Button, { type: "button", size: "icon", ...CLOSE, "aria-label": "Close", position: "absolute", t: "$3", insetInlineEnd: "$3", onClick: done(notice), children: _jsx(X, { size: 16 }) })] }));
432
+ // The eu bar: the line, then the buttons. They share a row where the line fits
280
433
  // beside them and the buttons drop under it where it does not, so a phone shows
281
434
  // the line over one row of buttons and nothing breaks mid-control.
282
- return (_jsxs(XStack, { ...frame, style: FIT, maxW: 1200, flexWrap: "wrap", items: "center", columnGap: "$4", rowGap: "$3", children: [_jsx(YStack, { shrink: 1, minW: 0, children: _jsx(Paragraph, { size: "$2", color: "$ink", m: 0, children: `Essential cookies keep ${brand} running. With your OK, optional cookies help us measure performance and ads.` }) }), _jsxs(XStack, { gap: "$2", marginInlineStart: "auto", items: "center", flexWrap: "wrap", children: [_jsx(Button, { ref: manage, type: "button", size: "sm", variant: "secondary", onClick: choose, children: "Manage preferences" }), _jsx(Button, { type: "button", size: "sm", ...ACT, onClick: done(acceptAll), children: "Accept all" })] }), _jsx(Button, { type: "button", size: "icon-sm", variant: "ghost", "aria-label": "Close and use essential cookies only", position: "absolute", t: "$3", insetInlineEnd: "$3", onClick: done(rejectAll), children: _jsx(X, { size: 16 }) })] }));
435
+ return (_jsxs(XStack, { ...frame, role: "dialog", "aria-label": "Cookie preferences", style: FIT, maxW: 1200, flexWrap: "wrap", items: "center", columnGap: "$4", rowGap: "$3", children: [_jsx(YStack, { shrink: 1, minW: 0, children: _jsx(Paragraph, { size: "$2", color: "$ink", m: 0, children: `Essential cookies keep ${brand} running. With your OK, optional cookies help us measure performance and ads.` }) }), _jsxs(XStack, { gap: "$2", marginInlineStart: "auto", items: "center", flexWrap: "wrap", children: [_jsx(Button, { ref: manage, type: "button", ...SECONDARY, onClick: choose, children: "Manage preferences" }), _jsx(Button, { type: "button", ...PRIMARY, onClick: done(acceptAll), children: "Accept all" })] }), _jsx(Button, { type: "button", size: "icon", ...CLOSE, "aria-label": "Close and use essential cookies only", position: "absolute", t: "$3", insetInlineEnd: "$3", onClick: done(rejectAll), children: _jsx(X, { size: 16 }) })] }));
436
+ };
437
+ /**
438
+ * "Your Privacy Choices" with California's privacy options icon: the link to the
439
+ * sheet, for a footer. A page that mounts one gets no second link from `Consent`.
440
+ */
441
+ const ConsentLink = ({ label = 'Your Privacy Choices' }) => {
442
+ useEffect(() => hold(), []);
443
+ return (_jsx(Button, { ...slot('consent-link'), ...CHOICES, onClick: openConsent, children: label }));
283
444
  };
284
- /** The footer link that reopens the choices, in every footer and every region. */
285
- const ConsentLink = ({ label = 'Cookie settings' }) => (_jsx(Button, { ...slot('consent-link'), type: "button", variant: "link", size: "sm", px: 0, minH: 0, onClick: openConsent, children: label }));
286
445
  export { Consent, ConsentLink };
287
446
  //# sourceMappingURL=Consent.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Consent.js","sourceRoot":"","sources":["../../src/consent/Consent.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AAEZ;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA;AAC5D,OAAO,EAAE,WAAW,EAAE,CAAC,EAAE,MAAM,0BAA0B,CAAA;AACzD,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,QAAQ,EAAE,YAAY,EAAE,WAAW,EAAE,SAAS,EAAE,WAAW,EAAE,aAAa,EAAe,MAAM,cAAc,CAAA;AACvI,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAE1D,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAA;AAC/C,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAA;AAC3C,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAA;AAC/C,OAAO,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAA;AAE3C,MAAM,IAAI,GAAG,gBAAgB,CAAA;AAE7B,mEAAmE;AACnE,MAAM,IAAI,GAAG,UAAU,CAAA;AAEvB,uCAAuC;AACvC,MAAM,CAAC,MAAM,WAAW,GAAG,GAAS,EAAE;IACpC,IAAI,OAAO,MAAM,KAAK,WAAW;QAAE,MAAM,CAAC,aAAa,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,CAAA;AAC1E,CAAC,CAAA;AAID,MAAM,KAAK,GAAG,CAAC,KAAa,EAAU,EAAE,CAAC;IACvC;QACE,EAAE,EAAE,WAAW;QACf,KAAK,EAAE,4BAA4B;QACnC,IAAI,EAAE,6RAA6R,KAAK,kFAAkF,KAAK,qCAAqC;KACra;IACD;QACE,EAAE,EAAE,WAAW;QACf,GAAG,EAAE,WAAW;QAChB,KAAK,EAAE,qBAAqB;QAC5B,IAAI,EAAE,mDAAmD,KAAK,wBAAwB;KACvF;IACD;QACE,EAAE,EAAE,WAAW;QACf,GAAG,EAAE,WAAW;QAChB,KAAK,EAAE,mBAAmB;QAC1B,IAAI,EAAE,6DAA6D,KAAK,gBAAgB;KACzF;IACD;QACE,EAAE,EAAE,KAAK;QACT,GAAG,EAAE,KAAK;QACV,KAAK,EAAE,wDAAwD;QAC/D,IAAI,EAAE,yRAAyR;KAChS;CACF,CAAA;AAED,wHAAwH;AACxH,MAAM,IAAI,GAAG;IACX,GAAG,EAAE,uEAAuE;IAC5E,MAAM,EAAE,6EAA6E;IACrF,IAAI,EAAE,yEAAyE;IAC/E,KAAK,EAAE,2EAA2E;CAC1E,CAAA;AAEV,2GAA2G;AAC3G,MAAM,KAAK,GAAG;IACZ,EAAE,EAAE,aAAa;IACjB,WAAW,EAAE,CAAC;IACd,WAAW,EAAE,cAAc;IAC3B,OAAO,EAAE,IAAI;IACb,WAAW,EAAE,kBAAkB;IAC/B,YAAY,EAAE,EAAE;IAChB,YAAY,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE;CAC7B,CAAA;AAEV;;;;;GAKG;AACH,MAAM,KAAK,GAAG;IACZ,GAAG,IAAI,CAAC,SAAS,CAAC;IAClB,GAAG,KAAK;IACR,IAAI,EAAE,QAAQ;IACd,YAAY,EAAE,oBAAoB;IAClC,QAAQ,EAAE,OAAO;IACjB,CAAC,EAAE,IAAI,CAAC,MAAM;IACd,CAAC,EAAE,IAAI,CAAC,IAAI;IACZ,CAAC,EAAE,IAAI,CAAC,KAAK;IACb,EAAE,EAAE,MAAM;IACV,CAAC,EAAE,qBAAqB;IACxB,EAAE,EAAE,IAAI;IACR,kBAAkB,EAAE,IAAI;IACxB,gEAAgE;IAChE,gBAAgB,EAAE,EAAE;CACZ,CAAA;AAEV,mFAAmF;AACnF,MAAM,GAAG,GAAG,EAAE,KAAK,EAAE,aAAa,EAAW,CAAA;AAE7C,mGAAmG;AACnG,MAAM,GAAG,GAAG,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,EAAE,UAAU,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,EAAW,CAAA;AAE7G,8FAA8F;AAC9F,MAAM,MAAM,GAAG,EAAE,KAAK,EAAE,SAAS,EAAE,cAAc,EAAE,WAAW,EAAE,UAAU,EAAE,QAAQ,EAAW,CAAA;AAE/F,oFAAoF;AACpF,MAAM,KAAK,GAAG,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAW,CAAA;AAEpE,6CAA6C;AAC7C,MAAM,SAAS,GAAG,kEAAkE,CAAA;AAEpF,uGAAuG;AACvG,MAAM,MAAM,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAY,CAAA;AAa3C,MAAM,OAAO,GAAG,CAAC,EACf,OAAO,GAAG,0BAA0B,EACpC,OAAO,GAAG,0BAA0B,EACpC,KAAK,GAAG,wBAAwB,EAChC,KAAK,GAAG,OAAO,GACF,EAAE,EAAE;IACjB,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAA;IACzC,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAA;IAC/C,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAS,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,CAAA;IAC9F,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CAA0B,EAAE,CAAC,CAAA;IACrE,yEAAyE;IACzE,8EAA8E;IAC9E,6DAA6D;IAC7D,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,CAAA;IAC3B,6EAA6E;IAC7E,MAAM,IAAI,GAAG,MAAM,CAAqB,IAAI,CAAC,CAAA;IAC7C,MAAM,KAAK,GAAG,MAAM,CAAqB,IAAI,CAAC,CAAA;IAC9C,MAAM,MAAM,GAAG,MAAM,CAAqB,IAAI,CAAC,CAAA;IAC/C,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAA;IAC5B,+DAA+D;IAC/D,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAA;IAC5B,MAAM,EAAE,GAAG,KAAK,EAAE,CAAA;IAClB,+EAA+E;IAC/E,2CAA2C;IAC3C,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAA;IAE3C,MAAM,MAAM,GAAG,GAAG,EAAE;QAClB,yFAAyF;QACzF,IAAI,KAAK,CAAC,OAAO;YAAE,OAAM;QACzB,MAAM,EAAE,GAAG,QAAQ,CAAC,aAAa,CAAA;QACjC,IAAI,CAAC,OAAO,GAAG,EAAE,YAAY,WAAW,IAAI,EAAE,KAAK,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAA;QAC5E,KAAK,CAAC,OAAO,GAAG,IAAI,CAAA;QACpB,SAAS,CAAC,QAAQ,EAAE,CAAC,CAAA;QACrB,MAAM,CAAC,OAAO,GAAG,aAAa,EAAE,CAAA;QAChC,QAAQ,CAAC,WAAW,EAAE,CAAC,CAAA;QACvB,WAAW,CAAC,IAAI,CAAC,CAAA;QACjB,QAAQ,CAAC,IAAI,CAAC,CAAA;IAChB,CAAC,CAAA;IAED,oFAAoF;IACpF,MAAM,KAAK,GAAG,GAAG,EAAE;QACjB,KAAK,CAAC,OAAO,GAAG,KAAK,CAAA;QACrB,WAAW,CAAC,KAAK,CAAC,CAAA;QAClB,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAA;IAClB,CAAC,CAAA;IAED,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,IAAI,GAAG,GAAG,EAAE;YAChB,QAAQ,CAAC,IAAI,EAAE,IAAI,KAAK,CAAC,OAAO,CAAC,CAAA;YACjC,SAAS,CAAC,QAAQ,EAAE,CAAC,CAAA;YACrB,0EAA0E;YAC1E,uEAAuE;YACvE,IAAI,KAAK,CAAC,OAAO,IAAI,MAAM,CAAC,OAAO,IAAI,CAAC,aAAa,EAAE,EAAE,CAAC;gBACxD,MAAM,CAAC,OAAO,GAAG,KAAK,CAAA;gBACtB,QAAQ,CAAC,WAAW,EAAE,CAAC,CAAA;YACzB,CAAC;QACH,CAAC,CAAA;QACD,IAAI,EAAE,CAAA;QACN,8EAA8E;QAC9E,6EAA6E;QAC7E,+BAA+B;QAC/B,MAAM,IAAI,GAAG,GAAG,EAAE;YAChB,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,KAAK,IAAI;gBAAE,OAAM;YACzC,2EAA2E;YAC3E,yEAAyE;YACzE,0EAA0E;YAC1E,cAAc,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,YAAY,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,EAAE,MAAM,CAAC,QAAQ,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAA;YAChH,MAAM,EAAE,CAAA;QACV,CAAC,CAAA;QACD,+EAA+E;QAC/E,yEAAyE;QACzE,MAAM,KAAK,GAAG,CAAC,CAAa,EAAE,EAAE;YAC9B,IAAI,CAAC,CAAC,gBAAgB,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,MAAM;gBAAE,OAAM;YACpG,qEAAqE;YACrE,MAAM,CAAC,GAAI,CAAC,CAAC,MAAyB,EAAE,OAAO,EAAE,CAAC,SAAS,CAAC,CAAA;YAC5D,MAAM,IAAI,GAAG,CAAC,EAAE,YAAY,CAAC,MAAM,CAAC,CAAA;YACpC,MAAM,MAAM,GAAG,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,CAAA;YACxC,IAAI,CAAC,IAAI,IAAI,CAAC,EAAE,YAAY,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,IAAI,MAAM,KAAK,OAAO,CAAC;gBAAE,OAAM;YAClF,IAAI,EAAO,CAAA;YACX,IAAI,CAAC;gBACH,EAAE,GAAG,IAAI,GAAG,CAAC,IAAI,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAA;YACtC,CAAC;YAAC,MAAM,CAAC;gBACP,OAAM;YACR,CAAC;YACD,IAAI,EAAE,CAAC,IAAI,KAAK,IAAI,IAAI,EAAE,CAAC,MAAM,KAAK,MAAM,CAAC,QAAQ,CAAC,MAAM;gBAAE,OAAM;YACpE,CAAC,CAAC,cAAc,EAAE,CAAA;YAClB,MAAM,EAAE,CAAA;QACV,CAAC,CAAA;QACD,IAAI,EAAE,CAAA;QACN,MAAM,CAAC,gBAAgB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;QACrC,MAAM,CAAC,gBAAgB,CAAC,YAAY,EAAE,IAAI,CAAC,CAAA;QAC3C,MAAM,CAAC,gBAAgB,CAAC,YAAY,EAAE,IAAI,CAAC,CAAA;QAC3C,QAAQ,CAAC,gBAAgB,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAA;QAC5D,OAAO,GAAG,EAAE;YACV,MAAM,CAAC,mBAAmB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;YACxC,MAAM,CAAC,mBAAmB,CAAC,YAAY,EAAE,IAAI,CAAC,CAAA;YAC9C,MAAM,CAAC,mBAAmB,CAAC,YAAY,EAAE,IAAI,CAAC,CAAA;YAC9C,QAAQ,CAAC,mBAAmB,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAA;QACjE,CAAC,CAAA;IACH,CAAC,EAAE,EAAE,CAAC,CAAA;IAEN,8EAA8E;IAC9E,kFAAkF;IAClF,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,IAAI,CAAC,MAAM,CAAC,OAAO;gBAAE,OAAM;YAC3B,MAAM,CAAC,OAAO,GAAG,KAAK,CAAA;YACtB,MAAM,EAAE,GAAG,IAAI,CAAC,OAAO,CAAA;YACvB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAA;YACnB,IAAI,EAAE,EAAE,WAAW;gBAAE,EAAE,CAAC,KAAK,EAAE,CAAA;;gBAC1B,MAAM,CAAC,OAAO,EAAE,KAAK,EAAE,CAAA;YAC5B,OAAM;QACR,CAAC;QACD,MAAM,CAAC,OAAO,GAAG,IAAI,CAAA;QACrB,MAAM,GAAG,GAAG,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,EAAE,gBAAgB,CAAc,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC,CAAA;QACtF,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAA;QACjB,MAAM,IAAI,GAAG,CAAC,CAAgB,EAAE,EAAE;YAChC,IAAI,CAAC,CAAC,GAAG,KAAK,QAAQ,EAAE,CAAC;gBACvB,CAAC,CAAC,cAAc,EAAE,CAAA;gBAClB,KAAK,EAAE,CAAA;gBACP,OAAM;YACR,CAAC;YACD,IAAI,CAAC,CAAC,GAAG,KAAK,KAAK;gBAAE,OAAM;YAC3B,MAAM,IAAI,GAAG,GAAG,EAAE,CAAA;YAClB,MAAM,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,CAAA;YACrB,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;YAClC,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI;gBAAE,OAAM;YAC3B,MAAM,EAAE,GAAG,QAAQ,CAAC,aAAa,CAAA;YACjC,MAAM,MAAM,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,KAAK,CAAC,OAAO,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAA;YACpD,IAAI,CAAC,CAAC,QAAQ,IAAI,CAAC,EAAE,KAAK,KAAK,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC5C,CAAC,CAAC,cAAc,EAAE,CAAA;gBAClB,IAAI,CAAC,KAAK,EAAE,CAAA;YACd,CAAC;iBAAM,IAAI,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,EAAE,KAAK,IAAI,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;gBACnD,CAAC,CAAC,cAAc,EAAE,CAAA;gBAClB,KAAK,CAAC,KAAK,EAAE,CAAA;YACf,CAAC;QACH,CAAC,CAAA;QACD,QAAQ,CAAC,gBAAgB,CAAC,SAAS,EAAE,IAAI,CAAC,CAAA;QAC1C,OAAO,GAAG,EAAE,CAAC,QAAQ,CAAC,mBAAmB,CAAC,SAAS,EAAE,IAAI,CAAC,CAAA;IAC5D,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAA;IAEd,IAAI,CAAC,KAAK;QAAE,OAAO,IAAI,CAAA;IAEvB,MAAM,IAAI,GAAG,CAAC,EAAc,EAAE,EAAE,CAAC,GAAG,EAAE;QACpC,EAAE,EAAE,CAAA;QACJ,KAAK,CAAC,OAAO,GAAG,KAAK,CAAA;QACrB,QAAQ,CAAC,KAAK,CAAC,CAAA;QACf,WAAW,CAAC,KAAK,CAAC,CAAA;IACpB,CAAC,CAAA;IAED,IAAI,QAAQ;QACV,OAAO,CACL,MAAC,MAAM,OACD,IAAI,CAAC,eAAe,CAAC,KACrB,KAAK,EACT,CAAC,EAAC,qBAAqB,EACvB,KAAK,EAAC,QAAQ,EACd,OAAO,EAAC,QAAQ;YAChB,gFAAgF;YAChF,KAAK,EAAE,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,IAAI,EAAE,EAAE,aAE3E,KAAC,MAAM,OAAK,KAAK,EAAE,QAAQ,EAAC,UAAU,EAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAC,iBAAiB,uBAAa,OAAO,EAAE,KAAK,GAAI,EAChG,MAAC,MAAM,OACD,IAAI,CAAC,SAAS,CAAC,KACf,KAAK,EACT,GAAG,EAAE,KAAc,EACnB,IAAI,EAAC,QAAQ,yCAEI,GAAG,EAAE,QAAQ,EAC9B,QAAQ,EAAC,UAAU,EACnB,KAAK,EAAC,MAAM,EACZ,IAAI,EAAE,GAAG,EACT,IAAI,EAAC,MAAM,EACX,QAAQ,EAAC,QAAQ,aAEjB,MAAC,MAAM,IAAC,KAAK,EAAC,QAAQ,EAAC,OAAO,EAAC,eAAe,EAAC,GAAG,EAAC,IAAI,EAAC,EAAE,EAAC,IAAI,EAAC,EAAE,EAAC,IAAI,EAAC,kBAAkB,EAAC,IAAI,EAAC,gBAAgB,EAAC,IAAI,aACnH,KAAC,IAAI,IAAC,MAAM,EAAC,IAAI,EAAC,EAAE,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,EAAE,QAAQ,EAAC,IAAI,EAAC,UAAU,EAAC,IAAI,EAAC,UAAU,EAAC,KAAK,EAAC,KAAK,EAAC,MAAM,mCAE/F,EACP,KAAC,MAAM,IAAC,IAAI,EAAC,QAAQ,EAAC,IAAI,EAAC,SAAS,EAAC,OAAO,EAAC,OAAO,gBAAY,OAAO,EAAC,OAAO,EAAE,KAAK,YACpF,KAAC,CAAC,IAAC,IAAI,EAAE,EAAE,GAAI,GACR,IACF,EACT,MAAC,MAAM,IAAC,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,SAAS,EAAC,MAAM,EAAC,EAAE,EAAC,IAAI,EAAC,EAAE,EAAC,IAAI,EAAC,KAAK,EAAE,EAAE,kBAAkB,EAAE,SAAS,EAAE,aACnG,MAAC,SAAS,IAAC,IAAI,EAAC,IAAI,EAAC,KAAK,EAAC,QAAQ,EAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAC,IAAI,aAC9C,iQAAiQ,EAClQ,YAAG,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,8BAE3B,EACH,IAAI,EACL,YAAG,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,+BAE3B,EACH,QAAQ,EACT,YAAG,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,iCAEzB,SAEM,EACX,MAAM,CAAC,CAAC,CAAC,CACR,KAAC,SAAS,IAAC,IAAI,EAAC,IAAI,EAAC,KAAK,EAAC,MAAM,EAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAC,IAAI,oFAEnC,CACb,CAAC,CAAC,CAAC,IAAI,EACP,KAAK,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;oCACtB,MAAM,IAAI,GAAG,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,IAAI,CAAA;oCACpC,MAAM,IAAI,GAAG,GAAG,EAAE,IAAI,CAAC,CAAC,EAAE,EAAE,CAAA;oCAC5B,OAAO,CACL,MAAC,MAAM,OAAgB,IAAI,CAAC,iBAAiB,CAAC,EAAE,cAAc,EAAE,CAAC,EAAE,WAAW,EAAC,cAAc,aAC3F,MAAC,MAAM,IAAC,KAAK,EAAC,QAAQ,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAE,EAAE,EAAE,EAAE,EAAC,IAAI,aAC/C,KAAC,MAAM,IAAC,MAAM,EAAC,IAAI,EAAC,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,YACxC,MAAC,MAAM,IACL,MAAM,EAAC,QAAQ,KACX,MAAM,mBACK,IAAI,mBACJ,IAAI,EACnB,OAAO,EAAE,GAAG,EAAE,CAAC,WAAW,CAAC,EAAE,GAAG,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,EAC1D,IAAI,EAAE,CAAC,EACP,IAAI,EAAE,CAAC,EACP,KAAK,EAAC,QAAQ,EACd,GAAG,EAAC,IAAI,EACR,CAAC,EAAE,CAAC,EACJ,EAAE,EAAC,aAAa,EAChB,WAAW,EAAE,CAAC,EACd,MAAM,EAAC,SAAS,aAEhB,KAAC,MAAM,IAAC,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,OAAO,EAAE,GAAG,YAC/D,KAAC,WAAW,IAAC,IAAI,EAAE,EAAE,GAAI,GAClB,EACT,KAAC,IAAI,IAAC,QAAQ,EAAC,IAAI,EAAC,UAAU,EAAC,IAAI,EAAC,UAAU,EAAC,KAAK,EAAC,KAAK,EAAC,MAAM,KAAK,KAAK,CAAC,OAAO,CAAC,YACjF,CAAC,CAAC,KAAK,GACH,IACA,GACF,EACR,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CACP,KAAC,MAAM,kBACO,CAAC,CAAC,KAAK,sBACD,IAAI,EACtB,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,EACtC,eAAe,EAAE,CAAC,CAAU,EAAE,EAAE,CAAC,QAAQ,CAAC,EAAE,GAAG,KAAK,EAAE,CAAC,CAAC,CAAC,GAAmB,CAAC,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,GAC5F,CACH,CAAC,CAAC,CAAC,CACF,KAAC,IAAI,IAAC,QAAQ,EAAC,IAAI,EAAC,UAAU,EAAC,KAAK,EAAC,KAAK,EAAC,MAAM,EAAC,UAAU,EAAC,QAAQ,8BAE9D,CACR,IACM,EACT,KAAC,MAAM,IAAC,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,EAAC,IAAI,EAAC,kBAAkB,EAAE,EAAE,YAC/E,KAAC,SAAS,IAAC,IAAI,EAAC,IAAI,EAAC,KAAK,EAAC,QAAQ,EAAC,CAAC,EAAE,CAAC,YACrC,CAAC,CAAC,IAAI,GACG,GACL,KA5CE,CAAC,CAAC,EAAE,CA6CR,CACV,CAAA;gCACH,CAAC,CAAC,IACK,EACT,MAAC,MAAM,IAAC,QAAQ,EAAC,MAAM,EAAC,GAAG,EAAC,IAAI,EAAC,EAAE,EAAC,IAAI,EAAC,EAAE,EAAC,IAAI,EAAC,cAAc,EAAE,CAAC,EAAE,WAAW,EAAC,cAAc,aAE3F,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CACf,KAAC,MAAM,IAAC,IAAI,EAAC,QAAQ,EAAC,OAAO,EAAC,WAAW,EAAC,IAAI,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,2BAElE,CACV,EACD,KAAC,MAAM,IAAC,IAAI,EAAC,QAAQ,KAAK,GAAG,EAAE,IAAI,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,iCAEtE,IACF,IACF,IACF,CACV,CAAA;IAEH,4EAA4E;IAC5E,gFAAgF;IAChF,mEAAmE;IACnE,OAAO,CACL,MAAC,MAAM,OAAK,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAC,MAAM,EAAC,KAAK,EAAC,QAAQ,EAAC,SAAS,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,aAClG,KAAC,MAAM,IAAC,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,YACxB,KAAC,SAAS,IAAC,IAAI,EAAC,IAAI,EAAC,KAAK,EAAC,MAAM,EAAC,CAAC,EAAE,CAAC,YACnC,0BAA0B,KAAK,+EAA+E,GACrG,GACL,EACT,MAAC,MAAM,IAAC,GAAG,EAAC,IAAI,EAAC,iBAAiB,EAAC,MAAM,EAAC,KAAK,EAAC,QAAQ,EAAC,QAAQ,EAAC,MAAM,aACtE,KAAC,MAAM,IAAC,GAAG,EAAE,MAAe,EAAE,IAAI,EAAC,QAAQ,EAAC,IAAI,EAAC,IAAI,EAAC,OAAO,EAAC,WAAW,EAAC,OAAO,EAAE,MAAM,mCAEhF,EACT,KAAC,MAAM,IAAC,IAAI,EAAC,QAAQ,EAAC,IAAI,EAAC,IAAI,KAAK,GAAG,EAAE,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,2BAExD,IACF,EAET,KAAC,MAAM,IACL,IAAI,EAAC,QAAQ,EACb,IAAI,EAAC,SAAS,EACd,OAAO,EAAC,OAAO,gBACJ,sCAAsC,EACjD,QAAQ,EAAC,UAAU,EACnB,CAAC,EAAC,IAAI,EACN,cAAc,EAAC,IAAI,EACnB,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,YAExB,KAAC,CAAC,IAAC,IAAI,EAAE,EAAE,GAAI,GACR,IACF,CACV,CAAA;AACH,CAAC,CAAA;AAED,kFAAkF;AAClF,MAAM,WAAW,GAAG,CAAC,EAAE,KAAK,GAAG,iBAAiB,EAAsB,EAAE,EAAE,CAAC,CACzE,KAAC,MAAM,OAAK,IAAI,CAAC,cAAc,CAAC,EAAE,IAAI,EAAC,QAAQ,EAAC,OAAO,EAAC,MAAM,EAAC,IAAI,EAAC,IAAI,EAAC,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,OAAO,EAAE,WAAW,YAC1G,KAAK,GACC,CACV,CAAA;AAED,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,CAAA"}
1
+ {"version":3,"file":"Consent.js","sourceRoot":"","sources":["../../src/consent/Consent.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PrivacyChoicesIcon = void 0;
4
+ const jsx_runtime_1 = require("react/jsx-runtime");
5
+ /**
6
+ * The privacy options icon California publishes for the "Your Privacy Choices"
7
+ * link (Cal. Code Regs. tit. 11, § 7015(b)): a toggle, its white half checked
8
+ * and its blue half crossed, drawn on the published 30×14 box at any height.
9
+ *
10
+ * Beside the words "Your Privacy Choices" it is decorative, and the words are
11
+ * the link's name. Alone, pass `label` and it is named itself.
12
+ */
13
+ const PrivacyChoicesIcon = ({ size = 14, label }) => ((0, jsx_runtime_1.jsxs)("svg", { width: (size * 30) / 14, height: size, viewBox: "0 0 30 14", focusable: "false", ...(label ? { role: 'img', 'aria-label': label } : { 'aria-hidden': true }), style: { flexShrink: 0, display: 'block' }, children: [(0, jsx_runtime_1.jsx)("path", { d: "M7.4 12.8h6.8l3.1-11.6H7.4C4.2 1.2 1.6 3.8 1.6 7s2.6 5.8 5.8 5.8z", fill: "#fff", fillRule: "evenodd", clipRule: "evenodd" }), (0, jsx_runtime_1.jsx)("path", { d: "M22.6 0H7.4c-3.9 0-7 3.1-7 7s3.1 7 7 7h15.2c3.9 0 7-3.1 7-7s-3.2-7-7-7zm-21 7c0-3.2 2.6-5.8 5.8-5.8h9.9l-3.1 11.6H7.4c-3.2 0-5.8-2.6-5.8-5.8z", fill: "#06f", fillRule: "evenodd", clipRule: "evenodd" }), (0, jsx_runtime_1.jsx)("path", { d: "M24.6 4c.2.2.2.6 0 .8L22.5 7l2.2 2.2c.2.2.2.6 0 .8-.2.2-.6.2-.8 0l-2.2-2.2-2.2 2.2c-.2.2-.6.2-.8 0-.2-.2-.2-.6 0-.8L20.8 7l-2.2-2.2c-.2-.2-.2-.6 0-.8.2-.2.6-.2.8 0l2.2 2.2L23.8 4c.2-.2.6-.2.8 0z", fill: "#fff" }), (0, jsx_runtime_1.jsx)("path", { d: "M12.7 4.1c.2.2.3.6.1.8L8.6 9.8c-.1.1-.2.2-.3.2-.2.1-.5.1-.7-.1L5.4 7.7c-.2-.2-.2-.6 0-.8.2-.2.6-.2.8 0L8 8.6l3.8-4.5c.2-.2.6-.2.9 0z", fill: "#06f" })] }));
14
+ exports.PrivacyChoicesIcon = PrivacyChoicesIcon;
@@ -0,0 +1,13 @@
1
+ /**
2
+ * The privacy options icon California publishes for the "Your Privacy Choices"
3
+ * link (Cal. Code Regs. tit. 11, § 7015(b)): a toggle, its white half checked
4
+ * and its blue half crossed, drawn on the published 30×14 box at any height.
5
+ *
6
+ * Beside the words "Your Privacy Choices" it is decorative, and the words are
7
+ * the link's name. Alone, pass `label` and it is named itself.
8
+ */
9
+ export declare const PrivacyChoicesIcon: ({ size, label }: {
10
+ size?: number;
11
+ label?: string;
12
+ }) => import("react").JSX.Element;
13
+ //# sourceMappingURL=icon.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"icon.d.ts","sourceRoot":"","sources":["../../src/consent/icon.tsx"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,eAAO,MAAM,kBAAkB,oBAA0B;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,gCAsBzF,CAAA"}
@@ -0,0 +1,11 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ /**
3
+ * The privacy options icon California publishes for the "Your Privacy Choices"
4
+ * link (Cal. Code Regs. tit. 11, § 7015(b)): a toggle, its white half checked
5
+ * and its blue half crossed, drawn on the published 30×14 box at any height.
6
+ *
7
+ * Beside the words "Your Privacy Choices" it is decorative, and the words are
8
+ * the link's name. Alone, pass `label` and it is named itself.
9
+ */
10
+ export const PrivacyChoicesIcon = ({ size = 14, label }) => (_jsxs("svg", { width: (size * 30) / 14, height: size, viewBox: "0 0 30 14", focusable: "false", ...(label ? { role: 'img', 'aria-label': label } : { 'aria-hidden': true }), style: { flexShrink: 0, display: 'block' }, children: [_jsx("path", { d: "M7.4 12.8h6.8l3.1-11.6H7.4C4.2 1.2 1.6 3.8 1.6 7s2.6 5.8 5.8 5.8z", fill: "#fff", fillRule: "evenodd", clipRule: "evenodd" }), _jsx("path", { d: "M22.6 0H7.4c-3.9 0-7 3.1-7 7s3.1 7 7 7h15.2c3.9 0 7-3.1 7-7s-3.2-7-7-7zm-21 7c0-3.2 2.6-5.8 5.8-5.8h9.9l-3.1 11.6H7.4c-3.2 0-5.8-2.6-5.8-5.8z", fill: "#06f", fillRule: "evenodd", clipRule: "evenodd" }), _jsx("path", { d: "M24.6 4c.2.2.2.6 0 .8L22.5 7l2.2 2.2c.2.2.2.6 0 .8-.2.2-.6.2-.8 0l-2.2-2.2-2.2 2.2c-.2.2-.6.2-.8 0-.2-.2-.2-.6 0-.8L20.8 7l-2.2-2.2c-.2-.2-.2-.6 0-.8.2-.2.6-.2.8 0l2.2 2.2L23.8 4c.2-.2.6-.2.8 0z", fill: "#fff" }), _jsx("path", { d: "M12.7 4.1c.2.2.3.6.1.8L8.6 9.8c-.1.1-.2.2-.3.2-.2.1-.5.1-.7-.1L5.4 7.7c-.2-.2-.2-.6 0-.8.2-.2.6-.2.8 0L8 8.6l3.8-4.5c.2-.2.6-.2.9 0z", fill: "#06f" })] }));
11
+ //# sourceMappingURL=icon.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"icon.js","sourceRoot":"","sources":["../../src/consent/icon.tsx"],"names":[],"mappings":";AAAA;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,EAAE,IAAI,GAAG,EAAE,EAAE,KAAK,EAAqC,EAAE,EAAE,CAAC,CAC7F,eACE,KAAK,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,GAAG,EAAE,EACvB,MAAM,EAAE,IAAI,EACZ,OAAO,EAAC,WAAW,EACnB,SAAS,EAAC,OAAO,KACb,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,EAC5E,KAAK,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,aAE1C,eAAM,CAAC,EAAC,mEAAmE,EAAC,IAAI,EAAC,MAAM,EAAC,QAAQ,EAAC,SAAS,EAAC,QAAQ,EAAC,SAAS,GAAG,EAChI,eACE,CAAC,EAAC,+IAA+I,EACjJ,IAAI,EAAC,MAAM,EACX,QAAQ,EAAC,SAAS,EAClB,QAAQ,EAAC,SAAS,GAClB,EACF,eACE,CAAC,EAAC,oMAAoM,EACtM,IAAI,EAAC,MAAM,GACX,EACF,eAAM,CAAC,EAAC,sIAAsI,EAAC,IAAI,EAAC,MAAM,GAAG,IACzJ,CACP,CAAA"}
@@ -1,7 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.openConsent = exports.ConsentLink = exports.Consent = void 0;
3
+ exports.PrivacyChoicesIcon = exports.openConsent = exports.ConsentLink = exports.Consent = void 0;
4
4
  var Consent_1 = require("./Consent.cjs");
5
5
  Object.defineProperty(exports, "Consent", { enumerable: true, get: function () { return Consent_1.Consent; } });
6
6
  Object.defineProperty(exports, "ConsentLink", { enumerable: true, get: function () { return Consent_1.ConsentLink; } });
7
7
  Object.defineProperty(exports, "openConsent", { enumerable: true, get: function () { return Consent_1.openConsent; } });
8
+ var icon_1 = require("./icon.cjs");
9
+ Object.defineProperty(exports, "PrivacyChoicesIcon", { enumerable: true, get: function () { return icon_1.PrivacyChoicesIcon; } });
@@ -1,2 +1,3 @@
1
1
  export { Consent, ConsentLink, openConsent, type ConsentProps } from './Consent.js';
2
+ export { PrivacyChoicesIcon } from './icon.js';
2
3
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/consent/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,KAAK,YAAY,EAAE,MAAM,WAAW,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/consent/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,KAAK,YAAY,EAAE,MAAM,WAAW,CAAA;AAChF,OAAO,EAAE,kBAAkB,EAAE,MAAM,QAAQ,CAAA"}
@@ -1,2 +1,3 @@
1
1
  export { Consent, ConsentLink, openConsent } from './Consent.js';
2
+ export { PrivacyChoicesIcon } from './icon.js';
2
3
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/consent/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,WAAW,EAAqB,MAAM,WAAW,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/consent/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,WAAW,EAAqB,MAAM,WAAW,CAAA;AAChF,OAAO,EAAE,kBAAkB,EAAE,MAAM,QAAQ,CAAA"}
package/dist/gallery.html CHANGED
@@ -1,4 +1,4 @@
1
- <!doctype html><html lang="en" class="t_dark"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>@hanzo/ui 8.29.15</title><style>/* @hanzo/ui — generated by scripts/gen-css.mjs. Do not edit. */
1
+ <!doctype html><html lang="en" class="t_dark"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>@hanzo/ui 8.29.18</title><style>/* @hanzo/ui — generated by scripts/gen-css.mjs. Do not edit. */
2
2
  :root { --hanzo-ui-styles: 1; }
3
3
  /* Hanzo Design System — the entry point. Import THIS one file.
4
4
  *
@@ -21,7 +21,10 @@ const jsx_runtime_1 = require("react/jsx-runtime");
21
21
  const gui_1 = require("@hanzo/gui");
22
22
  const slot_1 = require("../backends/gui/slot.cjs");
23
23
  const type_1 = require("./type.cjs");
24
+ const icon_1 = require("../consent/icon.cjs");
24
25
  const open = (out) => (out ? { target: '_blank', rel: 'noreferrer' } : {});
26
+ /** The link to the consent sheet (`#choices`) carries California's privacy options icon before its words. */
27
+ const CHOICES = { display: 'inline-flex', alignItems: 'center', gap: 6 };
25
28
  const Door = ({ link }) => ((0, jsx_runtime_1.jsxs)(gui_1.Anchor, { href: link.href, ...open(link.out), color: "$soft", fontSize: "$2", lineHeight: "$2", py: 3, textDecorationLine: "none", hoverStyle: { color: '$ink' }, children: [link.label, link.out ? ' ↗' : ''] }));
26
- const Footer = ({ columns, ask, wordmark, copyright, legal = [], gutter = 'clamp(20px, 4vw, 72px)' }) => ((0, jsx_runtime_1.jsxs)(gui_1.YStack, { ...(0, slot_1.slot)('footer'), render: "footer", width: "100%", borderTopWidth: 1, borderColor: "$edge", pt: 48, pb: 32, gap: 40, style: { paddingInline: gutter }, children: [ask ? ((0, jsx_runtime_1.jsx)(gui_1.YStack, { width: "100%", items: "center", children: ask })) : null, (0, jsx_runtime_1.jsx)(gui_1.XStack, { flexWrap: "wrap", gap: 28, $sm: { gap: 40 }, children: columns.map((c) => ((0, jsx_runtime_1.jsxs)(gui_1.YStack, { render: "nav", "aria-label": c.title, flexBasis: "40%", flexGrow: 1, minW: 140, $sm: { flexBasis: 150 }, gap: 2, children: [c.href ? ((0, jsx_runtime_1.jsxs)(gui_1.Anchor, { href: c.href, ...open(c.out), color: "$ink", fontSize: "$2", lineHeight: "$2", fontWeight: "600", pb: 10, textDecorationLine: "none", children: [c.title, c.out ? ' ↗' : ''] })) : ((0, jsx_runtime_1.jsx)(type_1.Line, { size: "sm", weight: "600", pb: 10, children: c.title })), c.links.map((l) => ((0, jsx_runtime_1.jsx)(Door, { link: l }, l.label)))] }, c.id))) }), (0, jsx_runtime_1.jsxs)(gui_1.XStack, { flexWrap: "wrap", items: "center", gap: 20, rowGap: 8, children: [wordmark, copyright ? ((0, jsx_runtime_1.jsx)(type_1.Line, { size: "sm", tone: "dim", children: copyright })) : null, (0, jsx_runtime_1.jsx)(gui_1.XStack, { render: "nav", "aria-label": "Terms & Policies", flexWrap: "wrap", gap: 16, rowGap: 8, marginInlineStart: 0, width: "100%", $sm: { marginInlineStart: 'auto', width: 'auto' }, children: legal.map((l) => ((0, jsx_runtime_1.jsx)(gui_1.Anchor, { href: l.href, ...open(l.out), color: "$faint", fontSize: "$2", lineHeight: "$2", textDecorationLine: "none", hoverStyle: { color: '$ink' }, children: l.label }, l.label))) })] })] }));
29
+ const Footer = ({ columns, ask, wordmark, copyright, legal = [], gutter = 'clamp(20px, 4vw, 72px)' }) => ((0, jsx_runtime_1.jsxs)(gui_1.YStack, { ...(0, slot_1.slot)('footer'), render: "footer", width: "100%", borderTopWidth: 1, borderColor: "$edge", pt: 48, pb: 32, gap: 40, style: { paddingInline: gutter }, children: [ask ? ((0, jsx_runtime_1.jsx)(gui_1.YStack, { width: "100%", items: "center", children: ask })) : null, (0, jsx_runtime_1.jsx)(gui_1.XStack, { flexWrap: "wrap", gap: 28, $sm: { gap: 40 }, children: columns.map((c) => ((0, jsx_runtime_1.jsxs)(gui_1.YStack, { render: "nav", "aria-label": c.title, flexBasis: "40%", flexGrow: 1, minW: 140, $sm: { flexBasis: 150 }, gap: 2, children: [c.href ? ((0, jsx_runtime_1.jsxs)(gui_1.Anchor, { href: c.href, ...open(c.out), color: "$ink", fontSize: "$2", lineHeight: "$2", fontWeight: "600", pb: 10, textDecorationLine: "none", children: [c.title, c.out ? ' ↗' : ''] })) : ((0, jsx_runtime_1.jsx)(type_1.Line, { size: "sm", weight: "600", pb: 10, children: c.title })), c.links.map((l) => ((0, jsx_runtime_1.jsx)(Door, { link: l }, l.label)))] }, c.id))) }), (0, jsx_runtime_1.jsxs)(gui_1.XStack, { flexWrap: "wrap", items: "center", gap: 20, rowGap: 8, children: [wordmark, copyright ? ((0, jsx_runtime_1.jsx)(type_1.Line, { size: "sm", tone: "dim", children: copyright })) : null, (0, jsx_runtime_1.jsx)(gui_1.XStack, { render: "nav", "aria-label": "Terms & Policies", flexWrap: "wrap", gap: 16, rowGap: 8, marginInlineStart: 0, width: "100%", $sm: { marginInlineStart: 'auto', width: 'auto' }, children: legal.map((l) => ((0, jsx_runtime_1.jsxs)(gui_1.Anchor, { href: l.href, ...open(l.out), color: "$faint", fontSize: "$2", lineHeight: "$2", textDecorationLine: "none", hoverStyle: { color: '$ink' }, ...(l.href.endsWith('#choices') ? CHOICES : null), children: [l.href.endsWith('#choices') ? (0, jsx_runtime_1.jsx)(icon_1.PrivacyChoicesIcon, {}) : null, l.label] }, l.label))) })] })] }));
27
30
  exports.Footer = Footer;