@hraness/design-kit 0.31.1 → 0.32.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (42) hide show
  1. package/AGENT_SETUP.md +89 -0
  2. package/ARTICLE_COPY.md +1 -1
  3. package/MARKETING_COPY.md +13 -1
  4. package/README.md +13 -4
  5. package/dist/{chunk-7b1586eb.js → chunk-4d79eskk.js} +62 -33
  6. package/dist/{chunk-44djxk16.js → chunk-95p0j72v.js} +643 -612
  7. package/dist/{chunk-eh71jz57.js → chunk-vst6p4wd.js} +96 -9
  8. package/dist/index.js +6 -2
  9. package/dist/mockups/client.js +19 -18
  10. package/dist/provider-marks.js +1 -1
  11. package/dist/react/index.js +1615 -649
  12. package/dist/react/server.js +4 -2
  13. package/dist/stylex-manifest.json +1 -1
  14. package/dist/stylex.css +180 -4
  15. package/package.json +7 -3
  16. package/portfolio-inventory.json +1 -1
  17. package/src/agent-setup.ts +47 -0
  18. package/src/index.ts +1 -0
  19. package/src/mockups/client.tsx +26 -22
  20. package/src/mockups.css +44 -13
  21. package/src/provider-marks.generated.ts +16 -0
  22. package/src/provider-marks.ts +14 -15
  23. package/src/react/agent-setup-prompt.stylex.ts +196 -0
  24. package/src/react/agent-setup-prompt.tsx +413 -0
  25. package/src/react/article.tsx +12 -20
  26. package/src/react/design-gallery.tsx +28 -1
  27. package/src/react/index.ts +1 -0
  28. package/src/react/launch-beats.tsx +7 -4
  29. package/src/react/product-marketing.stylex.ts +8 -0
  30. package/src/react/product-marketing.tsx +37 -10
  31. package/src/react/provider-mark.stylex.ts +17 -10
  32. package/src/react/provider-mark.tsx +6 -16
  33. package/vendor/provider-marks/MEM0-LICENSE +201 -0
  34. package/vendor/provider-marks/SUPERMEMORY-LICENSE +21 -0
  35. package/vendor/provider-marks/UPSTREAM.md +12 -1
  36. package/vendor/provider-marks/lobehub/githubcopilot.svg +1 -0
  37. package/vendor/provider-marks/lobehub/obsidian-color.svg +1 -0
  38. package/vendor/provider-marks/lobehub/obsidian.svg +1 -0
  39. package/vendor/provider-marks/mem0-art.svg +1 -0
  40. package/vendor/provider-marks/mem0-glyph.svg +1 -0
  41. package/vendor/provider-marks/mem0.svg +1 -0
  42. package/vendor/provider-marks/supermemory.svg +1 -0
@@ -27,6 +27,7 @@ import {
27
27
  DockedFooter,
28
28
  FoilMark,
29
29
  LaunchBeats,
30
+ MarketingActionLink,
30
31
  MarketingArticle,
31
32
  MarketingCallToAction,
32
33
  MarketingCard,
@@ -82,7 +83,7 @@ import {
82
83
  marketingProofFrameAddress,
83
84
  proceduralBackdropVariants,
84
85
  proceduralRecipeVersion
85
- } from "../chunk-44djxk16.js";
86
+ } from "../chunk-95p0j72v.js";
86
87
  import"../chunk-h4k7yv6x.js";
87
88
  import {
88
89
  STATUS_PAGE_AGENT_PREFIX,
@@ -112,7 +113,7 @@ import {
112
113
  resolveStatusPage,
113
114
  statusPageRoutesAttribute,
114
115
  suggestStatusRoute
115
- } from "../chunk-7b1586eb.js";
116
+ } from "../chunk-4d79eskk.js";
116
117
  import"../chunk-wzvdn8ey.js";
117
118
  import"../chunk-he8eznb1.js";
118
119
  import"../chunk-77391vmq.js";
@@ -122,7 +123,7 @@ import {
122
123
  characterLength,
123
124
  xPostLength
124
125
  } from "../chunk-cejpzyfh.js";
125
- import"../chunk-eh71jz57.js";
126
+ import"../chunk-vst6p4wd.js";
126
127
  import {
127
128
  __require
128
129
  } from "../chunk-5gtx3pza.js";
@@ -187,11 +188,920 @@ function AnimatedRailStage({
187
188
  }, stageKey)
188
189
  });
189
190
  }
191
+ // src/react/agent-setup-prompt.tsx
192
+ import { useCallback, useEffect, useId, useRef, useState } from "react";
193
+
194
+ // src/react/agent-setup-prompt.stylex.ts
195
+ import * as stylex2 from "@stylexjs/stylex";
196
+ var ink = "var(--foreground, CanvasText)";
197
+ var line = `color-mix(in srgb, ${ink} 15%, transparent)`;
198
+ var agentSetupStyles = {
199
+ root: {
200
+ kMwMTN: "xm06a53 xs5hli",
201
+ kanfag: "x1w8g7s4",
202
+ k9g6sI: "x12h1iku",
203
+ kMv6JI: "xtls1wf",
204
+ kzqmXN: "xh8yej3",
205
+ k7Eaqz: "xeuugli",
206
+ $$css: true
207
+ },
208
+ layout: {
209
+ kGNEyG: "x7a106z",
210
+ k1xSpc: "xrvj5dj",
211
+ kOIVth: "x8fetqu",
212
+ kumcoG: "x1mkdm3x",
213
+ k7Eaqz: "xeuugli",
214
+ $$css: true
215
+ },
216
+ withTargets: {
217
+ kumcoG: "xkewwhh",
218
+ "--_hraness-agent-setup-columns": "x18n472x",
219
+ $$css: true
220
+ },
221
+ frame: {
222
+ kWkggS: "xw51l6n x9yvj25",
223
+ kVAM5u: "x3ugid2 x1w1tqly",
224
+ kaIpWk: "x1yt6v20",
225
+ ksu8eU: "x1y0btm7",
226
+ kMzoRj: "xmkeg23",
227
+ kB7OPa: "x9f619",
228
+ k7Eaqz: "xeuugli",
229
+ kVQacm: "xb3r6kr",
230
+ kVAEAm: "x1n2onr6",
231
+ $$css: true
232
+ },
233
+ preview: {
234
+ kskxy: "x1q2tmi7",
235
+ k7Eaqz: "xeuugli",
236
+ kVQacm: "xb3r6kr",
237
+ kmVPX3: "x67o20r",
238
+ $$css: true
239
+ },
240
+ previewText: {
241
+ kX1K2I: "xn48363 x1fww0mx",
242
+ kskxy: "xz6j1ir",
243
+ kVQacm: "xb3r6kr",
244
+ $$css: true
245
+ },
246
+ pre: {
247
+ kWkggS: "xjbqb8w",
248
+ kaIpWk: "x2u8bby",
249
+ kMwMTN: "xm06a53 xs5hli",
250
+ kMv6JI: "x1nbx2l5",
251
+ kGuDYH: "x1dcheo9",
252
+ kLWn49: "x11m8ghp",
253
+ kogj98: "x1ghz6dp",
254
+ ks0D6T: "x193iq5w",
255
+ k7Eaqz: "xeuugli",
256
+ kHjlTd: "xj0a0fe",
257
+ kmVPX3: "x1717udv",
258
+ kKi2Bq: "xeq4nuv",
259
+ khDVqt: "x126k92a",
260
+ kTgw9: "x1lldw8n",
261
+ $$css: true
262
+ },
263
+ full: {
264
+ kmVPX3: "xde91s7",
265
+ $$css: true
266
+ },
267
+ details: {
268
+ k7Eaqz: "xeuugli",
269
+ $$css: true
270
+ },
271
+ summary: {
272
+ kMwMTN: "x12x9krh xs5hli",
273
+ kkrTdU: "x1ypdohk",
274
+ kGuDYH: "x1dcheo9",
275
+ kLWn49: "x37zpob",
276
+ kB88ic: "xe8uvvx",
277
+ kAzted: "x13gjtz1",
278
+ kI3sdo: "x1a2a7pz xr5lfjo",
279
+ kInvED: "x1v57pqu",
280
+ kmVPX3: "x194jd1b",
281
+ kDPRdz: "x10zor9s",
282
+ kA33Yr: "x13c0qn1",
283
+ $$css: true
284
+ },
285
+ copy: {
286
+ kGNEyG: "x6s0dn4",
287
+ kysU6D: "xjyslct",
288
+ kWkggS: "x17tv4j5 x1lf5oka xnwy5bs",
289
+ kVAM5u: "x3ugid2 x1ylmb6m",
290
+ kaIpWk: "x116uinm",
291
+ ksu8eU: "x1y0btm7",
292
+ kMzoRj: "xmkeg23",
293
+ kB7OPa: "x9f619",
294
+ kMwMTN: "xm06a53 x1ggml12",
295
+ kkrTdU: "x1ypdohk",
296
+ k1xSpc: "x3nfvp2 x1cfwndu",
297
+ kmuXW: "x2lah0s",
298
+ kMv6JI: "xjb2p0i",
299
+ kGuDYH: "x1dcheo9",
300
+ kOIVth: "x1neeqzj",
301
+ kjj79g: "xl56j7k",
302
+ kLWn49: "xo5v014",
303
+ kogj98: "x1ghz6dp",
304
+ kAzted: "xgbkey0",
305
+ kI3sdo: "x1a2a7pz xr5lfjo",
306
+ kInvED: "x1hl8ikr",
307
+ kmVPX3: "x1i4hug3",
308
+ $$css: true
309
+ },
310
+ copyOverlay: {
311
+ krVfgx: "x1of4z1n",
312
+ kt4wiu: "xe388cy",
313
+ kVAEAm: "x10l6tqk",
314
+ $$css: true
315
+ },
316
+ copyIcon: {
317
+ kZKoxP: "x1l36t39",
318
+ kmuXW: "x2lah0s",
319
+ kzqmXN: "xcdlrvm",
320
+ $$css: true
321
+ },
322
+ targets: {
323
+ k1xSpc: "xrvj5dj",
324
+ kOIVth: "x1uma3xh",
325
+ k7Eaqz: "xeuugli",
326
+ $$css: true
327
+ },
328
+ targetsLabel: {
329
+ kMwMTN: "x12x9krh xs5hli",
330
+ kGuDYH: "x1dcheo9",
331
+ k63SB2: "xk50ysn",
332
+ kogj98: "x1ghz6dp",
333
+ $$css: true
334
+ },
335
+ targetList: {
336
+ k1xSpc: "xrvj5dj",
337
+ kOIVth: "x1rcpt3j",
338
+ kumcoG: "x5m93ek",
339
+ kB88ic: "xe8uvvx",
340
+ kogj98: "x1ghz6dp",
341
+ kmVPX3: "x1717udv",
342
+ $$css: true
343
+ },
344
+ target: {
345
+ kGNEyG: "x6s0dn4",
346
+ kWkggS: "xw51l6n x1jf9jbc xnwy5bs",
347
+ kVAM5u: "x3ugid2 x1ylmb6m",
348
+ kaIpWk: "x116uinm",
349
+ ksu8eU: "x1y0btm7",
350
+ kMzoRj: "xmkeg23",
351
+ kB7OPa: "x9f619",
352
+ kMwMTN: "xm06a53 x1ggml12",
353
+ k1xSpc: "x78zum5",
354
+ kGuDYH: "xkpwil5",
355
+ kOIVth: "x5m0csh",
356
+ kLWn49: "xwn7fz2",
357
+ kAzted: "xgbkey0",
358
+ k7Eaqz: "xeuugli",
359
+ kI3sdo: "x1a2a7pz xr5lfjo",
360
+ kInvED: "x1hl8ikr",
361
+ kmVPX3: "x1i4hug3",
362
+ kybGjl: "x1hl2dhg",
363
+ $$css: true
364
+ },
365
+ commandRoot: {
366
+ k1xSpc: "xrvj5dj",
367
+ kOIVth: "x1uma3xh",
368
+ k7Eaqz: "xeuugli",
369
+ $$css: true
370
+ },
371
+ tablist: {
372
+ k1xSpc: "x78zum5 x1cfwndu",
373
+ kwnvtZ: "x1a02dak",
374
+ kOIVth: "xbcm6b9",
375
+ k7Eaqz: "xeuugli",
376
+ $$css: true
377
+ },
378
+ tab: {
379
+ kGNEyG: "x6s0dn4",
380
+ kysU6D: "xjyslct",
381
+ kWkggS: "xw51l6n x1jf9jbc xnwy5bs",
382
+ kVAM5u: "x9r1u3d x1ylmb6m",
383
+ kaIpWk: "x116uinm",
384
+ ksu8eU: "x1y0btm7",
385
+ kMzoRj: "xmkeg23",
386
+ kB7OPa: "x9f619",
387
+ kMwMTN: "xm06a53 x10zor9s x1ggml12",
388
+ kkrTdU: "x1ypdohk",
389
+ k1xSpc: "x3nfvp2",
390
+ kMv6JI: "xjb2p0i",
391
+ kGuDYH: "xkpwil5",
392
+ kOIVth: "xpraio3",
393
+ kLWn49: "xwn7fz2",
394
+ kogj98: "x1ghz6dp",
395
+ kAzted: "xgbkey0",
396
+ k7Eaqz: "xeuugli",
397
+ kI3sdo: "x1a2a7pz xr5lfjo",
398
+ kInvED: "x1hl8ikr",
399
+ kmVPX3: "xz0q7xm",
400
+ $$css: true
401
+ },
402
+ tabSelected: {
403
+ kWkggS: "x11tn3as x1w11x55 x1jzqe4",
404
+ kMwMTN: "x19ydol1 x54addn x1k5gbb1",
405
+ kAXs8y: "x1g12otp",
406
+ $$css: true
407
+ },
408
+ panel: {
409
+ k1xSpc: "x1use1og",
410
+ k7Eaqz: "xeuugli",
411
+ $$css: true
412
+ },
413
+ commandBar: {
414
+ kGNEyG: "x6s0dn4",
415
+ k1xSpc: "x78zum5",
416
+ kjj79g: "x1qughib",
417
+ k7Eaqz: "xeuugli",
418
+ kmVPX3: "xk2ntsi",
419
+ $$css: true
420
+ },
421
+ commandLabels: {
422
+ k1xSpc: "xrvj5dj",
423
+ kOIVth: "xvh977a",
424
+ k7Eaqz: "xeuugli",
425
+ $$css: true
426
+ },
427
+ filename: {
428
+ kMwMTN: "x12x9krh xs5hli",
429
+ kMv6JI: "x1nbx2l5",
430
+ kGuDYH: "xboafo0",
431
+ kHjlTd: "xj0a0fe",
432
+ $$css: true
433
+ },
434
+ panelLabel: {
435
+ kGNEyG: "x6s0dn4",
436
+ k1xSpc: "x1s85apg x1pwdsk1",
437
+ kGuDYH: "xkpwil5",
438
+ kOIVth: "x13z6uf9",
439
+ kogj98: "x1ghz6dp",
440
+ $$css: true
441
+ },
442
+ commandText: {
443
+ kmVPX3: "x1xplop1",
444
+ $$css: true
445
+ },
446
+ code: {
447
+ kWkggS: "xjbqb8w",
448
+ kMwMTN: "x1heor9g",
449
+ kMv6JI: "xjb2p0i",
450
+ kGuDYH: "x1qlqyl8",
451
+ kmVPX3: "x1717udv",
452
+ $$css: true
453
+ },
454
+ status: {
455
+ kZKoxP: "xjm9jq1",
456
+ kMzoRj: "xc342km",
457
+ kz4h6p: "x1hyvwdk",
458
+ kzqmXN: "x1i1rx1s",
459
+ kogj98: "xkdpibf",
460
+ kVQacm: "xb3r6kr",
461
+ kmVPX3: "x1717udv",
462
+ kVAEAm: "x10l6tqk",
463
+ khDVqt: "xuxw1ft",
464
+ $$css: true
465
+ }
466
+ };
467
+ function agentSetupClassName(parts, caller) {
468
+ const active = parts.filter((part) => part !== false && part !== undefined);
469
+ const atoms = stylex2.props(...active.map((part) => agentSetupStyles[part])).className;
470
+ return [...active.map((part) => `hraness-agent-setup__${part}`), atoms, caller].filter(Boolean).join(" ");
471
+ }
472
+
473
+ // src/react/agent-setup-prompt.tsx
474
+ import { jsx as jsx2, jsxs, Fragment } from "react/jsx-runtime";
475
+ function commandSubject(entry) {
476
+ return `${entry.label} ${entry.filename === undefined ? "command" : "configuration"}`;
477
+ }
478
+ function assertText(value, name) {
479
+ if (typeof value !== "string" || value.trim() === "")
480
+ throw new RangeError(`${name} must contain text.`);
481
+ }
482
+ function assertEntries(entries, name) {
483
+ const ids = new Set;
484
+ for (const entry of entries) {
485
+ if (typeof entry.id !== "string" || !/^[a-zA-Z0-9][a-zA-Z0-9_-]*$/u.test(entry.id) || ids.has(entry.id))
486
+ throw new RangeError(`${name} ids must be unique and use letters, numbers, underscores, or hyphens.`);
487
+ assertText(entry.label, `${name} label`);
488
+ ids.add(entry.id);
489
+ }
490
+ }
491
+ function assertHref(href) {
492
+ if (typeof href !== "string" || /\s/u.test(href) || [...href].some((character) => character.charCodeAt(0) < 32 || character.charCodeAt(0) === 127))
493
+ throw new RangeError("Agent setup destinations must be valid links.");
494
+ try {
495
+ const url = new URL(href, "https://example.invalid");
496
+ if (!["https:", "http:", "codex:"].includes(url.protocol))
497
+ throw new Error("Unsupported protocol.");
498
+ if (href === "" || url.username !== "" || url.password !== "")
499
+ throw new Error("Invalid destination.");
500
+ } catch {
501
+ throw new RangeError("Agent setup destinations must be HTTP, HTTPS, or Codex links without credentials.");
502
+ }
503
+ }
504
+ async function copyText(text, fallback) {
505
+ try {
506
+ if (typeof navigator !== "undefined" && navigator.clipboard !== undefined) {
507
+ await navigator.clipboard.writeText(text);
508
+ return {
509
+ ok: true,
510
+ selected: false
511
+ };
512
+ }
513
+ } catch {}
514
+ const source = fallback();
515
+ if (source === null)
516
+ return {
517
+ ok: false,
518
+ selected: false
519
+ };
520
+ const documentValue = source.ownerDocument;
521
+ const focused = documentValue.activeElement;
522
+ let buffer = null;
523
+ let copied = false;
524
+ let exactEvent = false;
525
+ const copyExact = (event) => {
526
+ if (documentValue.activeElement !== buffer || event.clipboardData === null)
527
+ return;
528
+ try {
529
+ event.clipboardData.setData("text/plain", text);
530
+ event.preventDefault();
531
+ exactEvent = event.defaultPrevented;
532
+ } catch {}
533
+ };
534
+ try {
535
+ buffer = documentValue.createElement("textarea");
536
+ buffer.value = text;
537
+ buffer.readOnly = true;
538
+ buffer.tabIndex = -1;
539
+ buffer.setAttribute("data-hraness-copy-buffer", "");
540
+ buffer.style.cssText = "position:fixed;left:0;top:0;width:1px;height:1px;padding:0;border:0;opacity:0;overflow:hidden;resize:none;pointer-events:none";
541
+ documentValue.body.append(buffer);
542
+ buffer.focus({
543
+ preventScroll: true
544
+ });
545
+ buffer.select();
546
+ buffer.setSelectionRange(0, buffer.value.length);
547
+ documentValue.addEventListener("copy", copyExact);
548
+ copied = documentValue.execCommand("copy") === true && (buffer.value === text || exactEvent);
549
+ } catch {
550
+ copied = false;
551
+ } finally {
552
+ documentValue.removeEventListener("copy", copyExact);
553
+ buffer?.remove();
554
+ if (copied && focused?.isConnected === true && typeof focused.focus === "function") {
555
+ try {
556
+ focused.focus({
557
+ preventScroll: true
558
+ });
559
+ } catch {}
560
+ }
561
+ }
562
+ if (copied)
563
+ return {
564
+ ok: true,
565
+ selected: false
566
+ };
567
+ let selected = false;
568
+ try {
569
+ const selection = documentValue.defaultView?.getSelection();
570
+ if (selection !== null && selection !== undefined) {
571
+ const range = documentValue.createRange();
572
+ range.selectNodeContents(source);
573
+ selection.removeAllRanges();
574
+ selection.addRange(range);
575
+ source.focus();
576
+ selected = true;
577
+ }
578
+ return {
579
+ ok: false,
580
+ selected
581
+ };
582
+ } catch {
583
+ return {
584
+ ok: false,
585
+ selected
586
+ };
587
+ }
588
+ }
589
+ function useCopy(text, subject, fallback, onCopied) {
590
+ const [state, setState] = useState("idle");
591
+ const [message, setMessage] = useState("");
592
+ const generation = useRef(0);
593
+ const busy = useRef(false);
594
+ const latestText = useRef(text);
595
+ const timer = useRef(null);
596
+ latestText.current = text;
597
+ useEffect(() => {
598
+ generation.current += 1;
599
+ busy.current = false;
600
+ setState("idle");
601
+ setMessage("");
602
+ return () => {
603
+ generation.current += 1;
604
+ busy.current = false;
605
+ if (timer.current !== null)
606
+ clearTimeout(timer.current);
607
+ };
608
+ }, [text, subject]);
609
+ const copy = useCallback(async () => {
610
+ if (busy.current)
611
+ return false;
612
+ if (timer.current !== null)
613
+ clearTimeout(timer.current);
614
+ busy.current = true;
615
+ const request = ++generation.current;
616
+ setState("copying");
617
+ setMessage(`Copying ${subject}.`);
618
+ const result = await copyText(text, () => generation.current === request && latestText.current === text ? fallback() : null);
619
+ if (generation.current !== request || latestText.current !== text)
620
+ return false;
621
+ busy.current = false;
622
+ setState(result.ok ? "copied" : "failed");
623
+ setMessage(result.ok ? `Copied ${subject}.` : result.selected ? `Copy failed. The ${subject} is selected; copy it with your keyboard.` : `Copy failed. Select the ${subject} and copy it with your keyboard.`);
624
+ if (result.ok && onCopied !== undefined) {
625
+ try {
626
+ onCopied();
627
+ } catch {}
628
+ }
629
+ timer.current = setTimeout(() => {
630
+ if (generation.current !== request)
631
+ return;
632
+ setState("idle");
633
+ setMessage("");
634
+ }, 2000);
635
+ return result.ok && generation.current === request && latestText.current === text;
636
+ }, [fallback, onCopied, subject, text]);
637
+ return {
638
+ state,
639
+ message,
640
+ copy
641
+ };
642
+ }
643
+ function CopyGlyph({
644
+ copied
645
+ }) {
646
+ return /* @__PURE__ */ jsx2("svg", {
647
+ "aria-hidden": "true",
648
+ className: agentSetupClassName(["copyIcon"]),
649
+ fill: "none",
650
+ focusable: "false",
651
+ stroke: "currentColor",
652
+ strokeLinecap: "round",
653
+ strokeLinejoin: "round",
654
+ strokeWidth: 2,
655
+ viewBox: "0 0 24 24",
656
+ children: copied ? /* @__PURE__ */ jsx2("path", {
657
+ d: "M5 12.5l4.5 4.5L19 7.5"
658
+ }) : /* @__PURE__ */ jsxs(Fragment, {
659
+ children: [
660
+ /* @__PURE__ */ jsx2("rect", {
661
+ height: "12",
662
+ rx: "2",
663
+ width: "12",
664
+ x: "8",
665
+ y: "8"
666
+ }),
667
+ /* @__PURE__ */ jsx2("path", {
668
+ d: "M16 8V6a2 2 0 0 0-2-2H6a2 2 0 0 0-2 2v8a2 2 0 0 0 2 2h2"
669
+ })
670
+ ]
671
+ })
672
+ });
673
+ }
674
+ function CopyButton({
675
+ copy,
676
+ overlay = false,
677
+ state,
678
+ subject
679
+ }) {
680
+ return /* @__PURE__ */ jsxs("button", {
681
+ "aria-busy": state === "copying" || undefined,
682
+ "aria-label": `${state === "copied" ? "Copied" : "Copy"} ${subject}`,
683
+ className: agentSetupClassName(["copy", overlay && "copyOverlay"]),
684
+ "data-copy-state": state,
685
+ disabled: state === "copying",
686
+ onClick: () => {
687
+ copy();
688
+ },
689
+ type: "button",
690
+ children: [
691
+ /* @__PURE__ */ jsx2(CopyGlyph, {
692
+ copied: state === "copied"
693
+ }),
694
+ /* @__PURE__ */ jsx2("span", {
695
+ children: state === "copied" ? "Copied" : state === "copying" ? "Copying" : state === "failed" ? "Copy failed" : "Copy"
696
+ })
697
+ ]
698
+ });
699
+ }
700
+ function CopyStatus({
701
+ children
702
+ }) {
703
+ return /* @__PURE__ */ jsx2("p", {
704
+ "aria-atomic": "true",
705
+ "aria-live": "polite",
706
+ className: agentSetupClassName(["status"]),
707
+ role: "status",
708
+ children
709
+ });
710
+ }
711
+ function closeReservedTab(tab) {
712
+ try {
713
+ if (tab !== null && !tab.closed)
714
+ tab.close();
715
+ } catch {}
716
+ }
717
+ function reserveTargetTab(owner) {
718
+ let tab = null;
719
+ try {
720
+ tab = owner?.open("about:blank", "_blank") ?? null;
721
+ if (tab !== null) {
722
+ tab.opener = null;
723
+ const policy = tab.document.createElement("meta");
724
+ policy.name = "referrer";
725
+ policy.content = "no-referrer";
726
+ tab.document.head.append(policy);
727
+ }
728
+ return tab;
729
+ } catch {
730
+ closeReservedTab(tab);
731
+ return null;
732
+ }
733
+ }
734
+ function AgentSetupPrompt({
735
+ prompt,
736
+ label = "Agent setup",
737
+ targets = [],
738
+ className,
739
+ onCopied
740
+ }) {
741
+ assertText(prompt, "Agent setup prompt");
742
+ assertText(label, "Agent setup label");
743
+ assertEntries(targets, "Agent setup target");
744
+ for (const target of targets) {
745
+ assertHref(target.href);
746
+ if (target.mode !== undefined && target.mode !== "prefill" && target.mode !== "copy-and-open")
747
+ throw new RangeError("Unsupported agent setup target mode.");
748
+ }
749
+ const id = useId();
750
+ const [expanded, setExpanded] = useState(false);
751
+ const [handoffMessage, setHandoffMessage] = useState("");
752
+ const details = useRef(null);
753
+ const full = useRef(null);
754
+ const destinationKey = JSON.stringify(targets.map(({
755
+ id: targetId,
756
+ href,
757
+ mode
758
+ }) => [targetId, href, mode ?? "prefill"]));
759
+ const latestHandoff = useRef({
760
+ prompt,
761
+ destinationKey
762
+ });
763
+ latestHandoff.current = {
764
+ prompt,
765
+ destinationKey
766
+ };
767
+ const pendingHandoff = useRef(null);
768
+ const fallback = useCallback(() => {
769
+ if (details.current !== null)
770
+ details.current.open = true;
771
+ setExpanded(true);
772
+ return full.current;
773
+ }, []);
774
+ const {
775
+ state,
776
+ message,
777
+ copy
778
+ } = useCopy(prompt, "setup prompt", fallback, onCopied);
779
+ const copyPrompt = useCallback(() => {
780
+ setHandoffMessage("");
781
+ return copy();
782
+ }, [copy]);
783
+ useEffect(() => {
784
+ setHandoffMessage("");
785
+ return () => {
786
+ const pending = pendingHandoff.current;
787
+ pendingHandoff.current = null;
788
+ closeReservedTab(pending?.tab ?? null);
789
+ };
790
+ }, [destinationKey, prompt]);
791
+ const copyAndOpen = (event, target) => {
792
+ if (event.type === "auxclick" && event.button !== 1)
793
+ return;
794
+ event.preventDefault();
795
+ if (pendingHandoff.current !== null || state === "copying")
796
+ return;
797
+ const href = event.currentTarget.href;
798
+ const copying = copyPrompt();
799
+ const request = {
800
+ tab: reserveTargetTab(event.currentTarget.ownerDocument.defaultView)
801
+ };
802
+ pendingHandoff.current = request;
803
+ (async () => {
804
+ const copied = await copying;
805
+ if (pendingHandoff.current !== request || latestHandoff.current.prompt !== prompt || latestHandoff.current.destinationKey !== destinationKey) {
806
+ closeReservedTab(request.tab);
807
+ return;
808
+ }
809
+ pendingHandoff.current = null;
810
+ if (!copied) {
811
+ closeReservedTab(request.tab);
812
+ return;
813
+ }
814
+ if (request.tab !== null && !request.tab.closed) {
815
+ try {
816
+ request.tab.location.replace(href);
817
+ return;
818
+ } catch {
819
+ closeReservedTab(request.tab);
820
+ }
821
+ }
822
+ setHandoffMessage(`Copied setup prompt. Open ${target.label} in a new tab.`);
823
+ })();
824
+ };
825
+ useEffect(() => {
826
+ if (typeof window.matchMedia !== "function")
827
+ return;
828
+ const query = window.matchMedia("(forced-colors: active)");
829
+ const apply = () => {
830
+ if (query.matches) {
831
+ if (details.current !== null)
832
+ details.current.open = true;
833
+ setExpanded(true);
834
+ }
835
+ };
836
+ apply();
837
+ query.addEventListener("change", apply);
838
+ return () => {
839
+ query.removeEventListener("change", apply);
840
+ };
841
+ }, []);
842
+ return /* @__PURE__ */ jsxs("section", {
843
+ "aria-label": label,
844
+ className: agentSetupClassName(["root"], className),
845
+ "data-hraness-agent-setup-prompt": "",
846
+ children: [
847
+ /* @__PURE__ */ jsxs("div", {
848
+ className: agentSetupClassName(["layout", targets.length > 0 && "withTargets"]),
849
+ children: [
850
+ /* @__PURE__ */ jsxs("div", {
851
+ className: agentSetupClassName(["frame"]),
852
+ "data-copy-state": state,
853
+ children: [
854
+ /* @__PURE__ */ jsx2("div", {
855
+ className: agentSetupClassName(["preview"]),
856
+ hidden: expanded,
857
+ children: /* @__PURE__ */ jsx2("pre", {
858
+ "aria-label": `${label} preview`,
859
+ className: agentSetupClassName(["pre", "previewText"]),
860
+ children: prompt
861
+ })
862
+ }),
863
+ /* @__PURE__ */ jsxs("details", {
864
+ className: agentSetupClassName(["details"]),
865
+ onToggle: (event) => {
866
+ setExpanded(event.currentTarget.open);
867
+ },
868
+ open: expanded,
869
+ ref: details,
870
+ children: [
871
+ /* @__PURE__ */ jsx2("summary", {
872
+ className: agentSetupClassName(["summary"]),
873
+ children: expanded ? "Hide full prompt" : "Show full prompt"
874
+ }),
875
+ /* @__PURE__ */ jsx2("pre", {
876
+ "aria-label": `${label} full prompt`,
877
+ className: agentSetupClassName(["pre", "full"]),
878
+ ref: full,
879
+ tabIndex: 0,
880
+ children: prompt
881
+ })
882
+ ]
883
+ }),
884
+ /* @__PURE__ */ jsx2(CopyButton, {
885
+ copy: copyPrompt,
886
+ overlay: true,
887
+ state,
888
+ subject: "setup prompt"
889
+ })
890
+ ]
891
+ }),
892
+ targets.length === 0 ? null : /* @__PURE__ */ jsxs("aside", {
893
+ "aria-labelledby": `${id}-targets`,
894
+ className: agentSetupClassName(["targets"]),
895
+ children: [
896
+ /* @__PURE__ */ jsx2("p", {
897
+ className: agentSetupClassName(["targetsLabel"]),
898
+ id: `${id}-targets`,
899
+ children: "Open in"
900
+ }),
901
+ /* @__PURE__ */ jsx2("ul", {
902
+ className: agentSetupClassName(["targetList"]),
903
+ children: targets.map((target) => /* @__PURE__ */ jsx2("li", {
904
+ children: /* @__PURE__ */ jsxs("a", {
905
+ "aria-busy": target.mode === "copy-and-open" && state === "copying" || undefined,
906
+ "aria-disabled": target.mode === "copy-and-open" && state === "copying" || undefined,
907
+ "aria-label": target.mode === "copy-and-open" ? `Copy prompt and open ${target.label}` : undefined,
908
+ className: agentSetupClassName(["target"]),
909
+ "data-agent-target": target.id,
910
+ "data-agent-target-mode": target.mode ?? "prefill",
911
+ href: target.href,
912
+ onAuxClick: target.mode === "copy-and-open" ? (event) => {
913
+ copyAndOpen(event, target);
914
+ } : undefined,
915
+ onClick: target.mode === "copy-and-open" ? (event) => {
916
+ copyAndOpen(event, target);
917
+ } : undefined,
918
+ rel: "noopener noreferrer",
919
+ target: "_blank",
920
+ children: [
921
+ /* @__PURE__ */ jsx2(ProviderMark, {
922
+ mark: target.mark,
923
+ size: 20,
924
+ tone: "inherit"
925
+ }),
926
+ /* @__PURE__ */ jsx2("span", {
927
+ children: target.label
928
+ })
929
+ ]
930
+ })
931
+ }, target.id))
932
+ })
933
+ ]
934
+ })
935
+ ]
936
+ }),
937
+ /* @__PURE__ */ jsx2(CopyStatus, {
938
+ children: handoffMessage || message
939
+ })
940
+ ]
941
+ });
942
+ }
943
+ function AgentCommandTabs({
944
+ commands,
945
+ label = "Agent commands",
946
+ initial,
947
+ className
948
+ }) {
949
+ if (commands.length === 0)
950
+ throw new RangeError("AgentCommandTabs needs at least one command.");
951
+ assertText(label, "Agent command tabs label");
952
+ assertEntries(commands, "Agent command");
953
+ for (const entry of commands) {
954
+ assertText(entry.command, "Agent command");
955
+ if (entry.filename !== undefined)
956
+ assertText(entry.filename, "Agent configuration filename");
957
+ }
958
+ if (initial !== undefined && !commands.some((entry) => entry.id === initial))
959
+ throw new RangeError("Initial agent command must be listed.");
960
+ const first = commands[0];
961
+ if (first === undefined)
962
+ throw new RangeError("AgentCommandTabs needs at least one command.");
963
+ const id = useId();
964
+ const [selected, setSelected] = useState(initial ?? first.id);
965
+ const current = commands.find((entry) => entry.id === selected) ?? first;
966
+ const tabs = useRef(new Map);
967
+ const sources = useRef(new Map);
968
+ const fallback = useCallback(() => sources.current.get(current.id) ?? null, [current.id]);
969
+ const {
970
+ state,
971
+ message,
972
+ copy
973
+ } = useCopy(current.command, commandSubject(current), fallback);
974
+ const onTabKey = (event) => {
975
+ const position = commands.findIndex((entry) => entry.id === current.id);
976
+ let next;
977
+ if (event.key === "ArrowRight")
978
+ next = (position + 1) % commands.length;
979
+ else if (event.key === "ArrowLeft")
980
+ next = (position - 1 + commands.length) % commands.length;
981
+ else if (event.key === "Home")
982
+ next = 0;
983
+ else if (event.key === "End")
984
+ next = commands.length - 1;
985
+ else
986
+ return;
987
+ event.preventDefault();
988
+ const target = commands[next];
989
+ if (target === undefined)
990
+ return;
991
+ setSelected(target.id);
992
+ tabs.current.get(target.id)?.focus();
993
+ };
994
+ return /* @__PURE__ */ jsxs("section", {
995
+ "aria-label": label,
996
+ className: agentSetupClassName(["root", "commandRoot"], className),
997
+ "data-hraness-agent-command-tabs": "",
998
+ "data-selected-agent": current.id,
999
+ children: [
1000
+ /* @__PURE__ */ jsx2("div", {
1001
+ "aria-label": label,
1002
+ className: agentSetupClassName(["tablist"]),
1003
+ onKeyDown: onTabKey,
1004
+ role: "tablist",
1005
+ children: commands.map((entry) => /* @__PURE__ */ jsxs("button", {
1006
+ "aria-controls": `${id}-panel-${entry.id}`,
1007
+ "aria-selected": entry.id === current.id,
1008
+ className: agentSetupClassName(["tab", entry.id === current.id && "tabSelected"]),
1009
+ "data-agent": entry.id,
1010
+ id: `${id}-tab-${entry.id}`,
1011
+ onClick: () => {
1012
+ setSelected(entry.id);
1013
+ },
1014
+ ref: (node) => {
1015
+ if (node === null)
1016
+ tabs.current.delete(entry.id);
1017
+ else
1018
+ tabs.current.set(entry.id, node);
1019
+ },
1020
+ role: "tab",
1021
+ tabIndex: entry.id === current.id ? 0 : -1,
1022
+ type: "button",
1023
+ children: [
1024
+ /* @__PURE__ */ jsx2(ProviderMark, {
1025
+ mark: entry.mark,
1026
+ size: 20,
1027
+ tone: "inherit"
1028
+ }),
1029
+ /* @__PURE__ */ jsx2("span", {
1030
+ children: entry.label
1031
+ })
1032
+ ]
1033
+ }, entry.id))
1034
+ }),
1035
+ commands.map((entry) => /* @__PURE__ */ jsx2("div", {
1036
+ "aria-labelledby": `${id}-tab-${entry.id}`,
1037
+ className: agentSetupClassName(["panel"]),
1038
+ "data-agent": entry.id,
1039
+ hidden: entry.id !== current.id,
1040
+ id: `${id}-panel-${entry.id}`,
1041
+ role: "tabpanel",
1042
+ children: /* @__PURE__ */ jsxs("div", {
1043
+ className: agentSetupClassName(["frame"]),
1044
+ children: [
1045
+ /* @__PURE__ */ jsxs("div", {
1046
+ className: agentSetupClassName(["commandBar"]),
1047
+ children: [
1048
+ /* @__PURE__ */ jsxs("div", {
1049
+ className: agentSetupClassName(["commandLabels"]),
1050
+ children: [
1051
+ /* @__PURE__ */ jsxs("p", {
1052
+ className: agentSetupClassName(["panelLabel"]),
1053
+ children: [
1054
+ /* @__PURE__ */ jsx2(ProviderMark, {
1055
+ mark: entry.mark,
1056
+ size: 20,
1057
+ tone: "inherit"
1058
+ }),
1059
+ entry.label
1060
+ ]
1061
+ }),
1062
+ entry.filename === undefined ? null : /* @__PURE__ */ jsx2("span", {
1063
+ className: agentSetupClassName(["filename"]),
1064
+ children: entry.filename
1065
+ })
1066
+ ]
1067
+ }),
1068
+ /* @__PURE__ */ jsx2(CopyButton, {
1069
+ copy,
1070
+ state: entry.id === current.id ? state : "idle",
1071
+ subject: commandSubject(entry)
1072
+ })
1073
+ ]
1074
+ }),
1075
+ /* @__PURE__ */ jsx2("pre", {
1076
+ "aria-label": commandSubject(entry),
1077
+ className: agentSetupClassName(["pre", "commandText"]),
1078
+ ref: (node) => {
1079
+ if (node === null)
1080
+ sources.current.delete(entry.id);
1081
+ else
1082
+ sources.current.set(entry.id, node);
1083
+ },
1084
+ tabIndex: 0,
1085
+ children: /* @__PURE__ */ jsx2(SyntaxCode, {
1086
+ className: agentSetupClassName(["code"]),
1087
+ code: entry.command,
1088
+ styles: "classes"
1089
+ })
1090
+ })
1091
+ ]
1092
+ })
1093
+ }, entry.id)),
1094
+ /* @__PURE__ */ jsx2(CopyStatus, {
1095
+ children: message
1096
+ })
1097
+ ]
1098
+ });
1099
+ }
190
1100
  // src/react/app-shell.tsx
191
1101
  import { Menu01Icon } from "@hugeicons/core-free-icons";
192
1102
  import { DialogContent, DialogTrigger, Icon, IconButton, cn as cn2 } from "@hraness/ui";
193
- import * as stylex2 from "@stylexjs/stylex";
194
- import { useEffect, useState } from "react";
1103
+ import * as stylex3 from "@stylexjs/stylex";
1104
+ import { useEffect as useEffect2, useState as useState2 } from "react";
195
1105
 
196
1106
  // src/react/app-shell.stylex.ts
197
1107
  var appShellStyles = {
@@ -267,7 +1177,7 @@ var appShellStyles = {
267
1177
  };
268
1178
 
269
1179
  // src/react/app-shell.tsx
270
- import { jsx as jsx2, jsxs } from "react/jsx-runtime";
1180
+ import { jsx as jsx3, jsxs as jsxs2 } from "react/jsx-runtime";
271
1181
  function AppShell({
272
1182
  bottomBar,
273
1183
  children,
@@ -278,46 +1188,46 @@ function AppShell({
278
1188
  rail,
279
1189
  topBar
280
1190
  }) {
281
- const [mobileOpen, setMobileOpen] = useState(false);
282
- const rootPresentation = stylex2.props(appShellStyles.root);
283
- const topPresentation = stylex2.props(appShellStyles.top);
284
- const railPresentation = stylex2.props(appShellStyles.rail);
285
- const mobileTriggerPresentation = stylex2.props(appShellStyles.mobileTrigger);
286
- const drawerPresentation = stylex2.props(appShellStyles.drawer);
287
- const pagePresentation = stylex2.props(appShellStyles.page);
288
- const bottomPresentation = stylex2.props(appShellStyles.bottom);
289
- useEffect(() => {
1191
+ const [mobileOpen, setMobileOpen] = useState2(false);
1192
+ const rootPresentation = stylex3.props(appShellStyles.root);
1193
+ const topPresentation = stylex3.props(appShellStyles.top);
1194
+ const railPresentation = stylex3.props(appShellStyles.rail);
1195
+ const mobileTriggerPresentation = stylex3.props(appShellStyles.mobileTrigger);
1196
+ const drawerPresentation = stylex3.props(appShellStyles.drawer);
1197
+ const pagePresentation = stylex3.props(appShellStyles.page);
1198
+ const bottomPresentation = stylex3.props(appShellStyles.bottom);
1199
+ useEffect2(() => {
290
1200
  setMobileOpen(false);
291
1201
  }, [navigationKey]);
292
- return /* @__PURE__ */ jsxs("div", {
1202
+ return /* @__PURE__ */ jsxs2("div", {
293
1203
  ...rootPresentation,
294
1204
  className: cn2("hraness-design-app-shell", rootPresentation.className, className),
295
1205
  children: [
296
- /* @__PURE__ */ jsx2("div", {
1206
+ /* @__PURE__ */ jsx3("div", {
297
1207
  ...topPresentation,
298
1208
  className: cn2("hraness-design-app-shell__top", topPresentation.className),
299
1209
  children: topBar
300
1210
  }),
301
- /* @__PURE__ */ jsx2("div", {
1211
+ /* @__PURE__ */ jsx3("div", {
302
1212
  ...railPresentation,
303
1213
  className: cn2("hraness-design-app-shell__rail", railPresentation.className),
304
1214
  children: rail
305
1215
  }),
306
- /* @__PURE__ */ jsx2("div", {
1216
+ /* @__PURE__ */ jsx3("div", {
307
1217
  ...mobileTriggerPresentation,
308
1218
  className: cn2("hraness-design-app-shell__mobile-trigger", mobileTriggerPresentation.className),
309
- children: /* @__PURE__ */ jsxs(DialogTrigger, {
1219
+ children: /* @__PURE__ */ jsxs2(DialogTrigger, {
310
1220
  isOpen: mobileOpen,
311
1221
  onOpenChange: setMobileOpen,
312
1222
  children: [
313
- /* @__PURE__ */ jsx2(IconButton, {
1223
+ /* @__PURE__ */ jsx3(IconButton, {
314
1224
  "aria-label": openNavigationLabel,
315
1225
  size: "compact",
316
- children: /* @__PURE__ */ jsx2(Icon, {
1226
+ children: /* @__PURE__ */ jsx3(Icon, {
317
1227
  icon: Menu01Icon
318
1228
  })
319
1229
  }),
320
- /* @__PURE__ */ jsx2(DialogContent, {
1230
+ /* @__PURE__ */ jsx3(DialogContent, {
321
1231
  className: cn2("hraness-design-app-shell__drawer", drawerPresentation.className),
322
1232
  size: "small",
323
1233
  title: mobileNavigationLabel,
@@ -326,12 +1236,12 @@ function AppShell({
326
1236
  ]
327
1237
  })
328
1238
  }),
329
- /* @__PURE__ */ jsx2("div", {
1239
+ /* @__PURE__ */ jsx3("div", {
330
1240
  ...pagePresentation,
331
1241
  className: cn2("hraness-design-app-shell__page", pagePresentation.className),
332
1242
  children
333
1243
  }),
334
- bottomBar === undefined ? null : /* @__PURE__ */ jsx2("div", {
1244
+ bottomBar === undefined ? null : /* @__PURE__ */ jsx3("div", {
335
1245
  ...bottomPresentation,
336
1246
  className: cn2("hraness-design-app-shell__bottom", bottomPresentation.className),
337
1247
  children: bottomBar
@@ -341,13 +1251,13 @@ function AppShell({
341
1251
  }
342
1252
  // src/react/aurora-dots-background.tsx
343
1253
  import { cn as cn4 } from "@hraness/ui";
344
- import * as stylex4 from "@stylexjs/stylex";
1254
+ import * as stylex5 from "@stylexjs/stylex";
345
1255
 
346
1256
  // src/react/phaser-dots.tsx
347
- import { useEffect as useEffect2, useRef } from "react";
1257
+ import { useEffect as useEffect3, useRef as useRef2 } from "react";
348
1258
  import { cn as cn3 } from "@hraness/ui";
349
- import * as stylex3 from "@stylexjs/stylex";
350
- import { jsx as jsx3, jsxs as jsxs2 } from "react/jsx-runtime";
1259
+ import * as stylex4 from "@stylexjs/stylex";
1260
+ import { jsx as jsx4, jsxs as jsxs3 } from "react/jsx-runtime";
351
1261
  var DOT_PATTERN = "hraness-design-phaser-dots__static";
352
1262
  var INERT_PROPS = {
353
1263
  inert: true
@@ -359,11 +1269,11 @@ function PhaserDots({
359
1269
  dotClassName,
360
1270
  trailClassName,
361
1271
  style,
362
- ...props4
1272
+ ...props5
363
1273
  }) {
364
- const containerRef = useRef(null);
365
- const canvasRef = useRef(null);
366
- useEffect2(() => {
1274
+ const containerRef = useRef2(null);
1275
+ const canvasRef = useRef2(null);
1276
+ useEffect3(() => {
367
1277
  if (!mouseGlow)
368
1278
  return;
369
1279
  if (window.matchMedia("(prefers-reduced-motion: reduce)").matches)
@@ -727,11 +1637,11 @@ function PhaserDots({
727
1637
  maskImage: maskGradient,
728
1638
  ...style
729
1639
  } : style;
730
- const rootPresentation = stylex3.props(effectsStyles.phaserSlot, effectsStyles.phaserRoot);
731
- const staticPresentation = stylex3.props(effectsStyles.phaserSlot, effectsStyles.phaserStatic, !dotClassName && effectsStyles.phaserStaticDefault);
732
- const trailPresentation = stylex3.props(effectsStyles.phaserSlot, effectsStyles.phaserTrail, !trailClassName && effectsStyles.phaserTrailDefault);
733
- return /* @__PURE__ */ jsxs2("div", {
734
- ...props4,
1640
+ const rootPresentation = stylex4.props(effectsStyles.phaserSlot, effectsStyles.phaserRoot);
1641
+ const staticPresentation = stylex4.props(effectsStyles.phaserSlot, effectsStyles.phaserStatic, !dotClassName && effectsStyles.phaserStaticDefault);
1642
+ const trailPresentation = stylex4.props(effectsStyles.phaserSlot, effectsStyles.phaserTrail, !trailClassName && effectsStyles.phaserTrailDefault);
1643
+ return /* @__PURE__ */ jsxs3("div", {
1644
+ ...props5,
735
1645
  ...INERT_PROPS,
736
1646
  ref: containerRef,
737
1647
  role: "presentation",
@@ -739,10 +1649,10 @@ function PhaserDots({
739
1649
  className: cn3("hraness-design-phaser-dots", rootPresentation.className, className),
740
1650
  style: mergedStyle,
741
1651
  children: [
742
- /* @__PURE__ */ jsx3("div", {
1652
+ /* @__PURE__ */ jsx4("div", {
743
1653
  className: cn3(DOT_PATTERN, staticPresentation.className, dotClassName)
744
1654
  }),
745
- mouseGlow && /* @__PURE__ */ jsx3("canvas", {
1655
+ mouseGlow && /* @__PURE__ */ jsx4("canvas", {
746
1656
  ref: canvasRef,
747
1657
  className: cn3("hraness-design-phaser-dots__trail", trailPresentation.className, trailClassName)
748
1658
  })
@@ -751,20 +1661,20 @@ function PhaserDots({
751
1661
  }
752
1662
 
753
1663
  // src/react/aurora-dots-background.tsx
754
- import { jsx as jsx4, jsxs as jsxs3, Fragment } from "react/jsx-runtime";
1664
+ import { jsx as jsx5, jsxs as jsxs4, Fragment as Fragment2 } from "react/jsx-runtime";
755
1665
  function AuroraDotsBackground() {
756
- const backgroundPresentation = stylex4.props(effectsStyles.auroraBackground);
757
- const dotsPresentation = stylex4.props(effectsStyles.auroraDots);
758
- return /* @__PURE__ */ jsxs3(Fragment, {
1666
+ const backgroundPresentation = stylex5.props(effectsStyles.auroraBackground);
1667
+ const dotsPresentation = stylex5.props(effectsStyles.auroraDots);
1668
+ return /* @__PURE__ */ jsxs4(Fragment2, {
759
1669
  children: [
760
- /* @__PURE__ */ jsx4("div", {
1670
+ /* @__PURE__ */ jsx5("div", {
761
1671
  "aria-hidden": "true",
762
1672
  className: cn4("hraness-design-aurora-background", backgroundPresentation.className)
763
1673
  }),
764
- /* @__PURE__ */ jsx4("div", {
1674
+ /* @__PURE__ */ jsx5("div", {
765
1675
  "aria-hidden": "true",
766
1676
  className: cn4("hraness-design-aurora-dots", dotsPresentation.className),
767
- children: /* @__PURE__ */ jsx4(PhaserDots, {
1677
+ children: /* @__PURE__ */ jsx5(PhaserDots, {
768
1678
  mouseGlow: true
769
1679
  })
770
1680
  })
@@ -773,7 +1683,7 @@ function AuroraDotsBackground() {
773
1683
  }
774
1684
  // src/react/chat.tsx
775
1685
  import { Button, TextAreaField, cn as cn5 } from "@hraness/ui";
776
- import * as stylex5 from "@stylexjs/stylex";
1686
+ import * as stylex6 from "@stylexjs/stylex";
777
1687
 
778
1688
  // src/react/chat.stylex.ts
779
1689
  var chatStyles = {
@@ -810,7 +1720,7 @@ var chatStyles = {
810
1720
  };
811
1721
 
812
1722
  // src/react/chat.tsx
813
- import { jsx as jsx5, jsxs as jsxs4 } from "react/jsx-runtime";
1723
+ import { jsx as jsx6, jsxs as jsxs5 } from "react/jsx-runtime";
814
1724
  function ChatMessage({
815
1725
  actions,
816
1726
  avatar,
@@ -820,41 +1730,41 @@ function ChatMessage({
820
1730
  name,
821
1731
  role
822
1732
  }) {
823
- const messagePresentation = stylex5.props(chatStyles.message);
824
- const minInlinePresentation = stylex5.props(chatStyles.messageMinInline);
825
- const rowPresentation = stylex5.props(chatStyles.messageRow);
826
- const headerPresentation = stylex5.props(chatStyles.messageRow, chatStyles.messageHeader);
827
- return /* @__PURE__ */ jsxs4("article", {
1733
+ const messagePresentation = stylex6.props(chatStyles.message);
1734
+ const minInlinePresentation = stylex6.props(chatStyles.messageMinInline);
1735
+ const rowPresentation = stylex6.props(chatStyles.messageRow);
1736
+ const headerPresentation = stylex6.props(chatStyles.messageRow, chatStyles.messageHeader);
1737
+ return /* @__PURE__ */ jsxs5("article", {
828
1738
  ...messagePresentation,
829
1739
  className: cn5("hraness-design-chat-message", messagePresentation.className, className),
830
1740
  "data-role": role,
831
1741
  children: [
832
- avatar === undefined ? null : /* @__PURE__ */ jsx5("div", {
1742
+ avatar === undefined ? null : /* @__PURE__ */ jsx6("div", {
833
1743
  className: "hraness-design-chat-message__avatar",
834
1744
  children: avatar
835
1745
  }),
836
- /* @__PURE__ */ jsxs4("div", {
1746
+ /* @__PURE__ */ jsxs5("div", {
837
1747
  ...minInlinePresentation,
838
1748
  className: cn5("hraness-design-chat-message__content", minInlinePresentation.className),
839
1749
  children: [
840
- name === undefined && meta === undefined ? null : /* @__PURE__ */ jsxs4("header", {
1750
+ name === undefined && meta === undefined ? null : /* @__PURE__ */ jsxs5("header", {
841
1751
  ...headerPresentation,
842
1752
  className: cn5("hraness-design-chat-message__header", headerPresentation.className),
843
1753
  children: [
844
- name === undefined ? null : /* @__PURE__ */ jsx5("strong", {
1754
+ name === undefined ? null : /* @__PURE__ */ jsx6("strong", {
845
1755
  children: name
846
1756
  }),
847
- meta === undefined ? null : /* @__PURE__ */ jsx5("span", {
1757
+ meta === undefined ? null : /* @__PURE__ */ jsx6("span", {
848
1758
  children: meta
849
1759
  })
850
1760
  ]
851
1761
  }),
852
- /* @__PURE__ */ jsx5("div", {
1762
+ /* @__PURE__ */ jsx6("div", {
853
1763
  ...minInlinePresentation,
854
1764
  className: cn5("hraness-design-chat-message__body", minInlinePresentation.className),
855
1765
  children
856
1766
  }),
857
- actions === undefined ? null : /* @__PURE__ */ jsx5("footer", {
1767
+ actions === undefined ? null : /* @__PURE__ */ jsx6("footer", {
858
1768
  ...rowPresentation,
859
1769
  className: cn5("hraness-design-chat-message__actions", rowPresentation.className),
860
1770
  children: actions
@@ -874,22 +1784,22 @@ function ChatComposer({
874
1784
  placeholder,
875
1785
  sendLabel = "Send",
876
1786
  value,
877
- ...props6
1787
+ ...props7
878
1788
  }) {
879
- const presentation = stylex5.props(chatStyles.composer);
1789
+ const presentation = stylex6.props(chatStyles.composer);
880
1790
  const handleSubmit = (event) => {
881
1791
  event.preventDefault();
882
1792
  if (isDisabled || isPending || value.trim().length === 0)
883
1793
  return;
884
1794
  onSubmit();
885
1795
  };
886
- return /* @__PURE__ */ jsxs4("form", {
1796
+ return /* @__PURE__ */ jsxs5("form", {
887
1797
  ...presentation,
888
- ...props6,
1798
+ ...props7,
889
1799
  className: cn5("hraness-design-chat-composer", presentation.className, className),
890
1800
  onSubmit: handleSubmit,
891
1801
  children: [
892
- /* @__PURE__ */ jsx5(TextAreaField, {
1802
+ /* @__PURE__ */ jsx6(TextAreaField, {
893
1803
  ...placeholder === undefined ? {} : {
894
1804
  placeholder
895
1805
  },
@@ -904,7 +1814,7 @@ function ChatComposer({
904
1814
  },
905
1815
  value
906
1816
  }),
907
- /* @__PURE__ */ jsx5(Button, {
1817
+ /* @__PURE__ */ jsx6(Button, {
908
1818
  className: "hraness-design-chat-composer__send",
909
1819
  isDisabled: isDisabled || value.trim().length === 0,
910
1820
  isPending,
@@ -917,7 +1827,7 @@ function ChatComposer({
917
1827
  }
918
1828
  // src/react/design-theme-context.tsx
919
1829
  import { createContext, useContext, useMemo } from "react";
920
- import { jsx as jsx6 } from "react/jsx-runtime";
1830
+ import { jsx as jsx7 } from "react/jsx-runtime";
921
1831
  var DesignThemeContext = createContext({});
922
1832
  function DesignPortalThemeProvider({
923
1833
  children,
@@ -932,7 +1842,7 @@ function DesignPortalThemeProvider({
932
1842
  theme
933
1843
  }
934
1844
  }), [portalClassName, theme]);
935
- return /* @__PURE__ */ jsx6(DesignThemeContext.Provider, {
1845
+ return /* @__PURE__ */ jsx7(DesignThemeContext.Provider, {
936
1846
  value,
937
1847
  children
938
1848
  });
@@ -945,8 +1855,8 @@ function useDesignPortalClassName() {
945
1855
  }
946
1856
  // src/react/design-palette.tsx
947
1857
  import { AppearanceIcon, cn as cn6 } from "@hraness/ui";
948
- import * as stylex6 from "@stylexjs/stylex";
949
- import { createContext as createContext2, useContext as useContext2, useEffect as useEffect3, useId, useMemo as useMemo2, useRef as useRef2, useState as useState2, useSyncExternalStore } from "react";
1858
+ import * as stylex7 from "@stylexjs/stylex";
1859
+ import { createContext as createContext2, useContext as useContext2, useEffect as useEffect4, useId as useId2, useMemo as useMemo2, useRef as useRef3, useState as useState3, useSyncExternalStore } from "react";
950
1860
 
951
1861
  // src/browser/theme-color-sync.ts
952
1862
  var themeColorSyncActiveAttribute = "data-hraness-design-theme-color-sync-active";
@@ -1406,7 +2316,7 @@ var paletteMenuStyles = {
1406
2316
  };
1407
2317
 
1408
2318
  // src/react/design-palette.tsx
1409
- import { jsx as jsx7, jsxs as jsxs5 } from "react/jsx-runtime";
2319
+ import { jsx as jsx8, jsxs as jsxs6 } from "react/jsx-runtime";
1410
2320
  import { createElement } from "react";
1411
2321
  var DesignPaletteContext = createContext2(null);
1412
2322
  var noSubscribe = () => () => {
@@ -1427,8 +2337,8 @@ function DesignPaletteProvider({
1427
2337
  ...forcedPreference
1428
2338
  }, [forcedPreference?.palette, forcedPreference?.mode]);
1429
2339
  const serverSnapshot = useMemo2(() => designPaletteSnapshot(forced ?? fallback, false, forced !== undefined), [fallback, forced]);
1430
- const [controller, setController] = useState2(null);
1431
- useEffect3(() => {
2340
+ const [controller, setController] = useState3(null);
2341
+ useEffect4(() => {
1432
2342
  const current = initDesignPalette({
1433
2343
  defaultPreference: fallback,
1434
2344
  ...forced === undefined ? {} : {
@@ -1466,9 +2376,9 @@ function DesignPaletteProvider({
1466
2376
  });
1467
2377
  }
1468
2378
  }), [snapshot, controller]);
1469
- return /* @__PURE__ */ jsx7(DesignPaletteContext.Provider, {
2379
+ return /* @__PURE__ */ jsx8(DesignPaletteContext.Provider, {
1470
2380
  value,
1471
- children: /* @__PURE__ */ jsx7(DesignPortalThemeProvider, {
2381
+ children: /* @__PURE__ */ jsx8(DesignPortalThemeProvider, {
1472
2382
  portalClassName: snapshot.className,
1473
2383
  theme: snapshot.resolvedMode,
1474
2384
  children
@@ -1487,10 +2397,10 @@ function DesignPaletteMenuButton({
1487
2397
  value: controlledMode
1488
2398
  }) {
1489
2399
  const palette = useDesignPalette();
1490
- const detailsRef = useRef2(null);
1491
- const pointerInside = useRef2(false);
1492
- const groupId = useId();
1493
- useEffect3(() => {
2400
+ const detailsRef = useRef3(null);
2401
+ const pointerInside = useRef3(false);
2402
+ const groupId = useId2();
2403
+ useEffect4(() => {
1494
2404
  const details = detailsRef.current;
1495
2405
  if (details === null)
1496
2406
  return;
@@ -1557,9 +2467,9 @@ function DesignPaletteMenuButton({
1557
2467
  const mode = controlledMode ?? palette.preference.mode;
1558
2468
  const ready = palette.ready && !palette.isForced;
1559
2469
  const title = `${ariaLabel}: ${designPaletteLabels[palette.preference.palette]}, ${designThemeLabel(mode, labels)}`;
1560
- return /* @__PURE__ */ jsxs5("details", {
1561
- ...stylex6.props(paletteMenuStyles.root),
1562
- className: cn6("hraness-design-theme-toggle", "hraness-design-palette-menu", stylex6.props(paletteMenuStyles.root).className, className),
2470
+ return /* @__PURE__ */ jsxs6("details", {
2471
+ ...stylex7.props(paletteMenuStyles.root),
2472
+ className: cn6("hraness-design-theme-toggle", "hraness-design-palette-menu", stylex7.props(paletteMenuStyles.root).className, className),
1563
2473
  "data-hraness-appearance-menu": "",
1564
2474
  "data-presentation": "menu",
1565
2475
  "data-ready": ready ? "true" : "false",
@@ -1569,8 +2479,8 @@ function DesignPaletteMenuButton({
1569
2479
  event.currentTarget.open = false;
1570
2480
  },
1571
2481
  children: [
1572
- /* @__PURE__ */ jsx7("summary", {
1573
- ...stylex6.props(paletteMenuStyles.trigger, size === "default" && paletteMenuStyles.triggerDefault),
2482
+ /* @__PURE__ */ jsx8("summary", {
2483
+ ...stylex7.props(paletteMenuStyles.trigger, size === "default" && paletteMenuStyles.triggerDefault),
1574
2484
  "aria-disabled": !ready || undefined,
1575
2485
  "aria-label": title,
1576
2486
  onClick: (event) => {
@@ -1579,50 +2489,50 @@ function DesignPaletteMenuButton({
1579
2489
  },
1580
2490
  tabIndex: ready ? 0 : -1,
1581
2491
  title,
1582
- children: /* @__PURE__ */ jsx7(AppearanceIcon, {
2492
+ children: /* @__PURE__ */ jsx8(AppearanceIcon, {
1583
2493
  name: mode,
1584
2494
  xstyle: paletteMenuStyles.icon
1585
2495
  })
1586
2496
  }),
1587
- /* @__PURE__ */ jsxs5("div", {
1588
- ...stylex6.props(paletteMenuStyles.panel),
2497
+ /* @__PURE__ */ jsxs6("div", {
2498
+ ...stylex7.props(paletteMenuStyles.panel),
1589
2499
  children: [
1590
- /* @__PURE__ */ jsxs5("fieldset", {
1591
- ...stylex6.props(paletteMenuStyles.group),
2500
+ /* @__PURE__ */ jsxs6("fieldset", {
2501
+ ...stylex7.props(paletteMenuStyles.group),
1592
2502
  disabled: !ready,
1593
2503
  children: [
1594
- /* @__PURE__ */ jsx7("legend", {
1595
- ...stylex6.props(paletteMenuStyles.legend),
2504
+ /* @__PURE__ */ jsx8("legend", {
2505
+ ...stylex7.props(paletteMenuStyles.legend),
1596
2506
  children: "Theme"
1597
2507
  }),
1598
2508
  designPalettes.map((id) => /* @__PURE__ */ createElement("label", {
1599
- ...stylex6.props(paletteMenuStyles.choice),
2509
+ ...stylex7.props(paletteMenuStyles.choice),
1600
2510
  key: id
1601
- }, /* @__PURE__ */ jsx7("input", {
1602
- ...stylex6.props(paletteMenuStyles.radio),
2511
+ }, /* @__PURE__ */ jsx8("input", {
2512
+ ...stylex7.props(paletteMenuStyles.radio),
1603
2513
  checked: palette.preference.palette === id,
1604
2514
  name: `${groupId}-palette`,
1605
2515
  onChange: () => palette.setPalette(id),
1606
2516
  type: "radio",
1607
2517
  value: id
1608
- }), /* @__PURE__ */ jsx7("span", {
2518
+ }), /* @__PURE__ */ jsx8("span", {
1609
2519
  children: designPaletteLabels[id]
1610
2520
  })))
1611
2521
  ]
1612
2522
  }),
1613
- /* @__PURE__ */ jsxs5("fieldset", {
1614
- ...stylex6.props(paletteMenuStyles.group),
2523
+ /* @__PURE__ */ jsxs6("fieldset", {
2524
+ ...stylex7.props(paletteMenuStyles.group),
1615
2525
  disabled: !ready,
1616
2526
  children: [
1617
- /* @__PURE__ */ jsx7("legend", {
1618
- ...stylex6.props(paletteMenuStyles.legend),
2527
+ /* @__PURE__ */ jsx8("legend", {
2528
+ ...stylex7.props(paletteMenuStyles.legend),
1619
2529
  children: "Appearance"
1620
2530
  }),
1621
2531
  designThemes.map((id) => /* @__PURE__ */ createElement("label", {
1622
- ...stylex6.props(paletteMenuStyles.choice),
2532
+ ...stylex7.props(paletteMenuStyles.choice),
1623
2533
  key: id
1624
- }, /* @__PURE__ */ jsx7("input", {
1625
- ...stylex6.props(paletteMenuStyles.radio),
2534
+ }, /* @__PURE__ */ jsx8("input", {
2535
+ ...stylex7.props(paletteMenuStyles.radio),
1626
2536
  checked: mode === id,
1627
2537
  name: `${groupId}-mode`,
1628
2538
  onChange: () => {
@@ -1633,7 +2543,7 @@ function DesignPaletteMenuButton({
1633
2543
  },
1634
2544
  type: "radio",
1635
2545
  value: id
1636
- }), /* @__PURE__ */ jsx7("span", {
2546
+ }), /* @__PURE__ */ jsx8("span", {
1637
2547
  children: designThemeLabel(id, labels)
1638
2548
  })))
1639
2549
  ]
@@ -1646,11 +2556,11 @@ function DesignPaletteMenuButton({
1646
2556
  // src/react/design-gallery.tsx
1647
2557
  import { Badge, Button as Button3, Card, CardContent, CardDescription, CardHeader, CardTitle, Icon as Icon3, LinkButton, SegmentedControl as SegmentedControl2, Slider, Tag, ViewportFrame, WrappingRow } from "@hraness/ui";
1648
2558
  import { Chart01Icon, CodeIcon, DashboardSquare01Icon } from "@hugeicons/core-free-icons";
1649
- import { useState as useState5 } from "react";
2559
+ import { useState as useState6 } from "react";
1650
2560
 
1651
2561
  // src/react/fader.tsx
1652
2562
  import { Label, Slider as AriaSlider, SliderFill, SliderOutput, SliderThumb, SliderTrack } from "react-aria-components";
1653
- import * as stylex7 from "@stylexjs/stylex";
2563
+ import * as stylex8 from "@stylexjs/stylex";
1654
2564
  import { cn as cn7 } from "@hraness/ui";
1655
2565
 
1656
2566
  // src/react/fader.stylex.ts
@@ -1737,7 +2647,7 @@ var faderStyles = {
1737
2647
  };
1738
2648
 
1739
2649
  // src/react/fader.tsx
1740
- import { jsx as jsx8, jsxs as jsxs6 } from "react/jsx-runtime";
2650
+ import { jsx as jsx9, jsxs as jsxs7 } from "react/jsx-runtime";
1741
2651
  function Fader({
1742
2652
  className,
1743
2653
  density = "default",
@@ -1748,62 +2658,62 @@ function Fader({
1748
2658
  orientation = "vertical",
1749
2659
  showLabel = false,
1750
2660
  showOutput = false,
1751
- ...props8
2661
+ ...props9
1752
2662
  }) {
1753
- const rootPresentation = stylex7.props(faderStyles.root, density === "compact" && faderStyles.compact, orientation === "horizontal" && faderStyles.horizontalRoot);
1754
- const labelRowPresentation = stylex7.props(faderStyles.labelRow);
1755
- const captionPresentation = stylex7.props(faderStyles.caption);
1756
- const trackPresentation = stylex7.props(faderStyles.track, orientation === "horizontal" && faderStyles.horizontalTrack);
1757
- const trackRailPresentation = stylex7.props(faderStyles.rail, faderStyles.trackRail);
1758
- const fillRailPresentation = stylex7.props(faderStyles.rail, faderStyles.fillRail);
1759
- return /* @__PURE__ */ jsxs6(AriaSlider, {
1760
- ...props8,
2663
+ const rootPresentation = stylex8.props(faderStyles.root, density === "compact" && faderStyles.compact, orientation === "horizontal" && faderStyles.horizontalRoot);
2664
+ const labelRowPresentation = stylex8.props(faderStyles.labelRow);
2665
+ const captionPresentation = stylex8.props(faderStyles.caption);
2666
+ const trackPresentation = stylex8.props(faderStyles.track, orientation === "horizontal" && faderStyles.horizontalTrack);
2667
+ const trackRailPresentation = stylex8.props(faderStyles.rail, faderStyles.trackRail);
2668
+ const fillRailPresentation = stylex8.props(faderStyles.rail, faderStyles.fillRail);
2669
+ return /* @__PURE__ */ jsxs7(AriaSlider, {
2670
+ ...props9,
1761
2671
  className: cn7("hraness-design-fader", rootPresentation.className, className),
1762
2672
  "data-density": density,
1763
2673
  orientation,
1764
2674
  ref: faderRef,
1765
2675
  children: [
1766
- showLabel && labelAccessory !== undefined ? /* @__PURE__ */ jsxs6("div", {
2676
+ showLabel && labelAccessory !== undefined ? /* @__PURE__ */ jsxs7("div", {
1767
2677
  className: cn7("hraness-design-fader__label-row", labelRowPresentation.className),
1768
2678
  children: [
1769
- /* @__PURE__ */ jsx8(Label, {
2679
+ /* @__PURE__ */ jsx9(Label, {
1770
2680
  className: cn7("hraness-design-fader__label", captionPresentation.className),
1771
2681
  children: label
1772
2682
  }),
1773
- /* @__PURE__ */ jsx8("span", {
2683
+ /* @__PURE__ */ jsx9("span", {
1774
2684
  className: "hraness-design-fader__label-accessory",
1775
2685
  children: labelAccessory
1776
2686
  })
1777
2687
  ]
1778
- }) : showLabel ? /* @__PURE__ */ jsx8(Label, {
2688
+ }) : showLabel ? /* @__PURE__ */ jsx9(Label, {
1779
2689
  className: cn7("hraness-design-fader__label", captionPresentation.className),
1780
2690
  children: label
1781
- }) : /* @__PURE__ */ jsx8(Label, {
2691
+ }) : /* @__PURE__ */ jsx9(Label, {
1782
2692
  className: "hraness-design-visually-hidden",
1783
2693
  children: label
1784
2694
  }),
1785
- showOutput ? /* @__PURE__ */ jsx8(SliderOutput, {
2695
+ showOutput ? /* @__PURE__ */ jsx9(SliderOutput, {
1786
2696
  className: cn7("hraness-design-fader__output", captionPresentation.className)
1787
2697
  }) : null,
1788
- /* @__PURE__ */ jsxs6(SliderTrack, {
2698
+ /* @__PURE__ */ jsxs7(SliderTrack, {
1789
2699
  className: cn7("hraness-design-fader__track", trackPresentation.className),
1790
2700
  children: [
1791
- /* @__PURE__ */ jsx8("span", {
2701
+ /* @__PURE__ */ jsx9("span", {
1792
2702
  "aria-hidden": "true",
1793
2703
  className: cn7("hraness-design-fader__track-rail", trackRailPresentation.className)
1794
2704
  }),
1795
- /* @__PURE__ */ jsx8(SliderFill, {
2705
+ /* @__PURE__ */ jsx9(SliderFill, {
1796
2706
  className: "hraness-design-fader__fill",
1797
- children: /* @__PURE__ */ jsx8("span", {
2707
+ children: /* @__PURE__ */ jsx9("span", {
1798
2708
  "aria-hidden": "true",
1799
2709
  className: cn7("hraness-design-fader__fill-rail", fillRailPresentation.className)
1800
2710
  })
1801
2711
  }),
1802
- /* @__PURE__ */ jsx8(SliderThumb, {
2712
+ /* @__PURE__ */ jsx9(SliderThumb, {
1803
2713
  className: ({
1804
2714
  isFocusVisible
1805
2715
  }) => {
1806
- const thumbPresentation = stylex7.props(faderStyles.thumb, isFocusVisible && faderStyles.focusVisible);
2716
+ const thumbPresentation = stylex8.props(faderStyles.thumb, isFocusVisible && faderStyles.focusVisible);
1807
2717
  return cn7("hraness-design-fader__thumb", thumbPresentation.className);
1808
2718
  },
1809
2719
  ...inputRef === undefined ? {} : {
@@ -1817,9 +2727,9 @@ function Fader({
1817
2727
  }
1818
2728
 
1819
2729
  // src/react/foil-card-surface.tsx
1820
- import * as stylex8 from "@stylexjs/stylex";
2730
+ import * as stylex9 from "@stylexjs/stylex";
1821
2731
  import { cn as cn8 } from "@hraness/ui";
1822
- import { createContext as createContext3, useCallback, useContext as useContext3, useEffect as useEffect4, useMemo as useMemo3, useRef as useRef3 } from "react";
2732
+ import { createContext as createContext3, useCallback as useCallback2, useContext as useContext3, useEffect as useEffect5, useMemo as useMemo3, useRef as useRef4 } from "react";
1823
2733
 
1824
2734
  // src/react/foil-card-math.ts
1825
2735
  function normalizedSeed(seed) {
@@ -2158,7 +3068,7 @@ var foilCardSurfaceStyles = {
2158
3068
  };
2159
3069
 
2160
3070
  // src/react/foil-card-surface.tsx
2161
- import { jsx as jsx9, jsxs as jsxs7 } from "react/jsx-runtime";
3071
+ import { jsx as jsx10, jsxs as jsxs8 } from "react/jsx-runtime";
2162
3072
  var foilCardPresets = ["prism", "aurora", "etched", "gold", "fast", "max"];
2163
3073
  var foilCardIntensities = ["subtle", "standard", "vivid"];
2164
3074
  var foilCardRenderModes = ["interactive", "static"];
@@ -2350,18 +3260,18 @@ function addMediaListener(media, listener) {
2350
3260
  function FoilCardDeck({
2351
3261
  children,
2352
3262
  className,
2353
- ...props9
3263
+ ...props10
2354
3264
  }) {
2355
- const rootRef = useRef3(null);
2356
- const registrations = useRef3(new Map);
2357
- const activeElement = useRef3(null);
2358
- const focusedElement = useRef3(null);
2359
- const pointerElement = useRef3(null);
2360
- const activeBounds = useRef3(null);
2361
- const pendingInteraction = useRef3(null);
2362
- const frame = useRef3(null);
2363
- const resizeObserver = useRef3(null);
2364
- const deactivate = useCallback((element) => {
3265
+ const rootRef = useRef4(null);
3266
+ const registrations = useRef4(new Map);
3267
+ const activeElement = useRef4(null);
3268
+ const focusedElement = useRef4(null);
3269
+ const pointerElement = useRef4(null);
3270
+ const activeBounds = useRef4(null);
3271
+ const pendingInteraction = useRef4(null);
3272
+ const frame = useRef4(null);
3273
+ const resizeObserver = useRef4(null);
3274
+ const deactivate = useCallback2((element) => {
2365
3275
  const registration = registrations.current.get(element);
2366
3276
  if (registration !== undefined) {
2367
3277
  applyPose(element, registration.seedPose);
@@ -2373,7 +3283,7 @@ function FoilCardDeck({
2373
3283
  activeBounds.current = null;
2374
3284
  }
2375
3285
  }, []);
2376
- const register = useCallback((element, registration) => {
3286
+ const register = useCallback2((element, registration) => {
2377
3287
  registrations.current.set(element, registration);
2378
3288
  return () => {
2379
3289
  if (pendingInteraction.current?.element === element) {
@@ -2390,7 +3300,7 @@ function FoilCardDeck({
2390
3300
  const contextValue = useMemo3(() => ({
2391
3301
  register
2392
3302
  }), [register]);
2393
- useEffect4(() => {
3303
+ useEffect5(() => {
2394
3304
  const root = rootRef.current;
2395
3305
  if (root === null || typeof window.matchMedia !== "function" || typeof window.requestAnimationFrame !== "function" || typeof window.cancelAnimationFrame !== "function") {
2396
3306
  return;
@@ -2586,10 +3496,10 @@ function FoilCardDeck({
2586
3496
  resizeObserver.current = null;
2587
3497
  };
2588
3498
  }, [deactivate]);
2589
- return /* @__PURE__ */ jsx9(FoilDeckContext.Provider, {
3499
+ return /* @__PURE__ */ jsx10(FoilDeckContext.Provider, {
2590
3500
  value: contextValue,
2591
- children: /* @__PURE__ */ jsx9("div", {
2592
- ...props9,
3501
+ children: /* @__PURE__ */ jsx10("div", {
3502
+ ...props10,
2593
3503
  className: cn8("hraness-design-foil-card-deck", className),
2594
3504
  "data-foil-card-deck": "",
2595
3505
  ref: rootRef,
@@ -2616,20 +3526,20 @@ function FoilCardSurface({
2616
3526
  requirePublicValue(renderMode, foilCardRenderModes, "render mode");
2617
3527
  requirePublicValue(ornament, foilCardOrnaments, "ornament");
2618
3528
  const deck = useContext3(FoilDeckContext);
2619
- const rootRef = useRef3(null);
3529
+ const rootRef = useRef4(null);
2620
3530
  const seedPose = useMemo3(() => createFoilCardSeedPose(seed), [seed]);
2621
3531
  const seededStyle = poseStyle(seedPose, intensity);
2622
3532
  const selectedPreset = presetStyles[preset];
2623
3533
  const selectedIntensity = intensityStyles[intensity];
2624
- const rootPresentation = stylex8.props(foilCardSurfaceStyles.base, renderMode === "interactive" ? foilCardSurfaceStyles.interactive : foilCardSurfaceStyles.static);
2625
- const basePresentation = stylex8.props(foilCardSurfaceStyles.layer, foilCardSurfaceStyles.baseLayer, selectedPreset.base, selectedIntensity.base);
2626
- const spectrumPresentation = stylex8.props(foilCardSurfaceStyles.layer, foilCardSurfaceStyles.spectrumLayer, selectedPreset.spectrum, selectedIntensity.spectrum);
2627
- const sheenPresentation = stylex8.props(foilCardSurfaceStyles.layer, foilCardSurfaceStyles.sheenLayer, selectedIntensity.sheen);
2628
- const texturePresentation = stylex8.props(foilCardSurfaceStyles.layer, foilCardSurfaceStyles.textureLayer, selectedPreset.texture, selectedIntensity.texture);
2629
- const ornamentPresentation = stylex8.props(foilCardSurfaceStyles.layer, foilCardSurfaceStyles.ornamentLayer, ornamentStyles[ornament], selectedIntensity.ornament);
2630
- const contentPresentation = stylex8.props(foilCardSurfaceStyles.content);
2631
- const activePresentation = stylex8.props(foilCardSurfaceStyles.active);
2632
- useEffect4(() => {
3534
+ const rootPresentation = stylex9.props(foilCardSurfaceStyles.base, renderMode === "interactive" ? foilCardSurfaceStyles.interactive : foilCardSurfaceStyles.static);
3535
+ const basePresentation = stylex9.props(foilCardSurfaceStyles.layer, foilCardSurfaceStyles.baseLayer, selectedPreset.base, selectedIntensity.base);
3536
+ const spectrumPresentation = stylex9.props(foilCardSurfaceStyles.layer, foilCardSurfaceStyles.spectrumLayer, selectedPreset.spectrum, selectedIntensity.spectrum);
3537
+ const sheenPresentation = stylex9.props(foilCardSurfaceStyles.layer, foilCardSurfaceStyles.sheenLayer, selectedIntensity.sheen);
3538
+ const texturePresentation = stylex9.props(foilCardSurfaceStyles.layer, foilCardSurfaceStyles.textureLayer, selectedPreset.texture, selectedIntensity.texture);
3539
+ const ornamentPresentation = stylex9.props(foilCardSurfaceStyles.layer, foilCardSurfaceStyles.ornamentLayer, ornamentStyles[ornament], selectedIntensity.ornament);
3540
+ const contentPresentation = stylex9.props(foilCardSurfaceStyles.content);
3541
+ const activePresentation = stylex9.props(foilCardSurfaceStyles.active);
3542
+ useEffect5(() => {
2633
3543
  if (renderMode !== "interactive")
2634
3544
  return;
2635
3545
  const root = rootRef.current;
@@ -2743,7 +3653,7 @@ function FoilCardSurface({
2743
3653
  setActive(root, activePresentation.className, false);
2744
3654
  };
2745
3655
  }, [activePresentation.className, deck, renderMode, seedPose]);
2746
- return /* @__PURE__ */ jsxs7("div", {
3656
+ return /* @__PURE__ */ jsxs8("div", {
2747
3657
  ...rootPresentation,
2748
3658
  className: cn8("hraness-design-foil-card-surface", rootPresentation.className, className),
2749
3659
  "data-foil-intensity": intensity,
@@ -2754,27 +3664,27 @@ function FoilCardSurface({
2754
3664
  ref: rootRef,
2755
3665
  style: seededStyle,
2756
3666
  children: [
2757
- /* @__PURE__ */ jsx9("span", {
3667
+ /* @__PURE__ */ jsx10("span", {
2758
3668
  ...basePresentation,
2759
3669
  "aria-hidden": "true"
2760
3670
  }),
2761
- /* @__PURE__ */ jsx9("div", {
3671
+ /* @__PURE__ */ jsx10("div", {
2762
3672
  ...contentPresentation,
2763
3673
  children
2764
3674
  }),
2765
- /* @__PURE__ */ jsx9("span", {
3675
+ /* @__PURE__ */ jsx10("span", {
2766
3676
  ...spectrumPresentation,
2767
3677
  "aria-hidden": "true"
2768
3678
  }),
2769
- /* @__PURE__ */ jsx9("span", {
3679
+ /* @__PURE__ */ jsx10("span", {
2770
3680
  ...sheenPresentation,
2771
3681
  "aria-hidden": "true"
2772
3682
  }),
2773
- /* @__PURE__ */ jsx9("span", {
3683
+ /* @__PURE__ */ jsx10("span", {
2774
3684
  ...texturePresentation,
2775
3685
  "aria-hidden": "true"
2776
3686
  }),
2777
- /* @__PURE__ */ jsx9("span", {
3687
+ /* @__PURE__ */ jsx10("span", {
2778
3688
  ...ornamentPresentation,
2779
3689
  "aria-hidden": "true"
2780
3690
  })
@@ -2784,7 +3694,7 @@ function FoilCardSurface({
2784
3694
 
2785
3695
  // src/react/lantern-material-gallery.tsx
2786
3696
  import { Button as Button2, TextField } from "@hraness/ui";
2787
- import { useId as useId2, useState as useState3 } from "react";
3697
+ import { useId as useId3, useState as useState4 } from "react";
2788
3698
 
2789
3699
  // src/react/lantern-material.stylex.ts
2790
3700
  var lanternControlStyles = {
@@ -2805,7 +3715,7 @@ var lanternControlStyles = {
2805
3715
  };
2806
3716
 
2807
3717
  // src/react/lantern-material-gallery.tsx
2808
- import { jsx as jsx10, jsxs as jsxs8 } from "react/jsx-runtime";
3718
+ import { jsx as jsx11, jsxs as jsxs9 } from "react/jsx-runtime";
2809
3719
  var materialPatterns = [{
2810
3720
  pattern: "cells",
2811
3721
  palette: "paper",
@@ -2845,12 +3755,12 @@ var exampleNotes = [{
2845
3755
  function MaterialWorkspace({
2846
3756
  mode
2847
3757
  }) {
2848
- const id = useId2();
2849
- const [query, setQuery] = useState3("");
2850
- const [personalOnly, setPersonalOnly] = useState3(false);
2851
- const [saved, setSaved] = useState3(false);
3758
+ const id = useId3();
3759
+ const [query, setQuery] = useState4("");
3760
+ const [personalOnly, setPersonalOnly] = useState4(false);
3761
+ const [saved, setSaved] = useState4(false);
2852
3762
  const notes = exampleNotes.filter((note) => note.title.toLowerCase().includes(query.toLowerCase()) && (!personalOnly || note.detail.startsWith("Personal")));
2853
- return /* @__PURE__ */ jsxs8("div", {
3763
+ return /* @__PURE__ */ jsxs9("div", {
2854
3764
  className: `design-gallery__lantern-wall hraness-material-wall ${getDesignPaletteTheme("paper", mode).className}`,
2855
3765
  "data-hraness-material": "lantern",
2856
3766
  "data-hraness-theme": "paper",
@@ -2858,29 +3768,29 @@ function MaterialWorkspace({
2858
3768
  "data-theme": mode,
2859
3769
  "data-gallery-lantern": mode,
2860
3770
  children: [
2861
- /* @__PURE__ */ jsxs8("div", {
3771
+ /* @__PURE__ */ jsxs9("div", {
2862
3772
  className: "design-gallery__lantern-caption",
2863
3773
  children: [
2864
- /* @__PURE__ */ jsx10("h3", {
3774
+ /* @__PURE__ */ jsx11("h3", {
2865
3775
  children: mode === "light" ? "Daylight" : "Lamplight"
2866
3776
  }),
2867
- /* @__PURE__ */ jsx10("p", {
3777
+ /* @__PURE__ */ jsx11("p", {
2868
3778
  children: "The same notebook in the Paper palette, light and dark."
2869
3779
  })
2870
3780
  ]
2871
3781
  }),
2872
- /* @__PURE__ */ jsxs8("div", {
3782
+ /* @__PURE__ */ jsxs9("div", {
2873
3783
  className: "hraness-material-terminal",
2874
3784
  children: [
2875
- /* @__PURE__ */ jsx10("div", {
3785
+ /* @__PURE__ */ jsx11("div", {
2876
3786
  className: "hraness-material-terminal__bar",
2877
3787
  children: "notebook · terminal"
2878
3788
  }),
2879
- /* @__PURE__ */ jsx10("pre", {
3789
+ /* @__PURE__ */ jsx11("pre", {
2880
3790
  className: "hraness-material-code",
2881
3791
  "aria-label": "Illustrative notebook command",
2882
3792
  tabIndex: 0,
2883
- children: /* @__PURE__ */ jsx10(SyntaxCode, {
3793
+ children: /* @__PURE__ */ jsx11(SyntaxCode, {
2884
3794
  code: `notebook search "a slower morning" --format markdown
2885
3795
  # One matching note, on your computer.`,
2886
3796
  language: "shell"
@@ -2888,24 +3798,24 @@ function MaterialWorkspace({
2888
3798
  })
2889
3799
  ]
2890
3800
  }),
2891
- /* @__PURE__ */ jsxs8("div", {
3801
+ /* @__PURE__ */ jsxs9("div", {
2892
3802
  className: "design-gallery__lantern-workspace hraness-material-pane",
2893
3803
  "data-depth": "raised",
2894
3804
  children: [
2895
- /* @__PURE__ */ jsx10(TopBar, {
3805
+ /* @__PURE__ */ jsx11(TopBar, {
2896
3806
  className: "hraness-material-chrome",
2897
3807
  position: "static",
2898
3808
  surface: "glass",
2899
3809
  title: "Your notebook",
2900
- actions: /* @__PURE__ */ jsx10("span", {
3810
+ actions: /* @__PURE__ */ jsx11("span", {
2901
3811
  className: "design-gallery__lantern-local",
2902
3812
  children: "Local workspace"
2903
3813
  })
2904
3814
  }),
2905
- /* @__PURE__ */ jsxs8("div", {
3815
+ /* @__PURE__ */ jsxs9("div", {
2906
3816
  className: "design-gallery__lantern-content",
2907
3817
  children: [
2908
- /* @__PURE__ */ jsx10(TextField, {
3818
+ /* @__PURE__ */ jsx11(TextField, {
2909
3819
  controlXstyle: lanternControlStyles.inset,
2910
3820
  inputProps: {
2911
3821
  id: `${id}-search`
@@ -2915,10 +3825,10 @@ function MaterialWorkspace({
2915
3825
  placeholder: "Search your notes",
2916
3826
  value: query
2917
3827
  }),
2918
- /* @__PURE__ */ jsxs8("div", {
3828
+ /* @__PURE__ */ jsxs9("div", {
2919
3829
  className: "design-gallery__lantern-filter",
2920
3830
  children: [
2921
- /* @__PURE__ */ jsx10(Button2, {
3831
+ /* @__PURE__ */ jsx11(Button2, {
2922
3832
  "aria-pressed": personalOnly,
2923
3833
  controlXstyle: [lanternControlStyles.edge, personalOnly && lanternControlStyles.selected],
2924
3834
  "data-gallery-lantern-filter": "",
@@ -2926,7 +3836,7 @@ function MaterialWorkspace({
2926
3836
  size: "compact",
2927
3837
  children: "Personal only"
2928
3838
  }),
2929
- /* @__PURE__ */ jsxs8("span", {
3839
+ /* @__PURE__ */ jsxs9("span", {
2930
3840
  "aria-live": "polite",
2931
3841
  children: [
2932
3842
  notes.length,
@@ -2936,41 +3846,41 @@ function MaterialWorkspace({
2936
3846
  })
2937
3847
  ]
2938
3848
  }),
2939
- /* @__PURE__ */ jsx10("ul", {
3849
+ /* @__PURE__ */ jsx11("ul", {
2940
3850
  className: "hraness-material-rows design-gallery__lantern-notes",
2941
- children: notes.map((note) => /* @__PURE__ */ jsxs8("li", {
3851
+ children: notes.map((note) => /* @__PURE__ */ jsxs9("li", {
2942
3852
  children: [
2943
- /* @__PURE__ */ jsxs8("details", {
3853
+ /* @__PURE__ */ jsxs9("details", {
2944
3854
  className: "hraness-material-disclosure",
2945
3855
  children: [
2946
- /* @__PURE__ */ jsx10("summary", {
3856
+ /* @__PURE__ */ jsx11("summary", {
2947
3857
  children: note.title
2948
3858
  }),
2949
- /* @__PURE__ */ jsx10("p", {
3859
+ /* @__PURE__ */ jsx11("p", {
2950
3860
  children: "Illustrative note. Your words and decisions stay together here."
2951
3861
  })
2952
3862
  ]
2953
3863
  }),
2954
- /* @__PURE__ */ jsx10("span", {
3864
+ /* @__PURE__ */ jsx11("span", {
2955
3865
  children: note.detail
2956
3866
  })
2957
3867
  ]
2958
3868
  }, note.title))
2959
3869
  }),
2960
- notes.length === 0 ? /* @__PURE__ */ jsx10("p", {
3870
+ notes.length === 0 ? /* @__PURE__ */ jsx11("p", {
2961
3871
  role: "status",
2962
3872
  children: "No notes match. Try a shorter search or turn off the personal filter."
2963
3873
  }) : null,
2964
- /* @__PURE__ */ jsxs8("div", {
3874
+ /* @__PURE__ */ jsxs9("div", {
2965
3875
  className: "design-gallery__lantern-save",
2966
3876
  children: [
2967
- /* @__PURE__ */ jsx10(Button2, {
3877
+ /* @__PURE__ */ jsx11(Button2, {
2968
3878
  controlXstyle: lanternControlStyles.edge,
2969
3879
  onPress: () => setSaved(true),
2970
3880
  variant: "primary",
2971
3881
  children: "Save this view"
2972
3882
  }),
2973
- /* @__PURE__ */ jsx10("span", {
3883
+ /* @__PURE__ */ jsx11("span", {
2974
3884
  "aria-live": "polite",
2975
3885
  children: saved ? "View saved for this example." : "Example content. Nothing leaves this page."
2976
3886
  })
@@ -2984,93 +3894,93 @@ function MaterialWorkspace({
2984
3894
  });
2985
3895
  }
2986
3896
  function LanternMaterialGallery() {
2987
- const [plainSelected, setPlainSelected] = useState3(true);
2988
- const [removed, setRemoved] = useState3(false);
2989
- return /* @__PURE__ */ jsxs8("section", {
3897
+ const [plainSelected, setPlainSelected] = useState4(true);
3898
+ const [removed, setRemoved] = useState4(false);
3899
+ return /* @__PURE__ */ jsxs9("section", {
2990
3900
  className: "design-gallery__section",
2991
3901
  id: "lantern",
2992
3902
  children: [
2993
- /* @__PURE__ */ jsx10("h2", {
3903
+ /* @__PURE__ */ jsx11("h2", {
2994
3904
  children: "Lantern material"
2995
3905
  }),
2996
- /* @__PURE__ */ jsx10("p", {
3906
+ /* @__PURE__ */ jsx11("p", {
2997
3907
  className: "design-gallery__lantern-intro",
2998
3908
  children: "Lantern gives reading surfaces a glowing edge and selected controls a warm fill."
2999
3909
  }),
3000
- /* @__PURE__ */ jsxs8("div", {
3910
+ /* @__PURE__ */ jsxs9("div", {
3001
3911
  className: "design-gallery__lantern-pair",
3002
3912
  children: [
3003
- /* @__PURE__ */ jsx10(MaterialWorkspace, {
3913
+ /* @__PURE__ */ jsx11(MaterialWorkspace, {
3004
3914
  mode: "light"
3005
3915
  }),
3006
- /* @__PURE__ */ jsx10(MaterialWorkspace, {
3916
+ /* @__PURE__ */ jsx11(MaterialWorkspace, {
3007
3917
  mode: "dark"
3008
3918
  })
3009
3919
  ]
3010
3920
  }),
3011
- /* @__PURE__ */ jsx10("h3", {
3921
+ /* @__PURE__ */ jsx11("h3", {
3012
3922
  children: "Patterns render as flat palette planes"
3013
3923
  }),
3014
- /* @__PURE__ */ jsx10("div", {
3924
+ /* @__PURE__ */ jsx11("div", {
3015
3925
  className: "design-gallery__lantern-pair",
3016
3926
  children: materialPatterns.map(({
3017
3927
  pattern,
3018
3928
  palette,
3019
3929
  label,
3020
3930
  description
3021
- }) => /* @__PURE__ */ jsx10("div", {
3931
+ }) => /* @__PURE__ */ jsx11("div", {
3022
3932
  className: `design-gallery__lantern-wall hraness-material-wall ${getDesignPaletteTheme(palette, "light").className}`,
3023
3933
  "data-gallery-pattern": pattern,
3024
3934
  "data-hraness-material": "lantern",
3025
3935
  "data-hraness-pattern": pattern,
3026
3936
  "data-palette": palette,
3027
3937
  "data-theme": "light",
3028
- children: /* @__PURE__ */ jsxs8("div", {
3938
+ children: /* @__PURE__ */ jsxs9("div", {
3029
3939
  className: "design-gallery__lantern-caption",
3030
3940
  children: [
3031
- /* @__PURE__ */ jsx10("h4", {
3941
+ /* @__PURE__ */ jsx11("h4", {
3032
3942
  children: label
3033
3943
  }),
3034
- /* @__PURE__ */ jsx10("p", {
3944
+ /* @__PURE__ */ jsx11("p", {
3035
3945
  children: description
3036
3946
  })
3037
3947
  ]
3038
3948
  })
3039
3949
  }, pattern))
3040
3950
  }),
3041
- /* @__PURE__ */ jsxs8("div", {
3951
+ /* @__PURE__ */ jsxs9("div", {
3042
3952
  className: `design-gallery__lantern-states hraness-material-pane ${getDesignPaletteTheme("paper", "light").className}`,
3043
3953
  "data-hraness-material": "lantern",
3044
3954
  "data-hraness-theme": "paper",
3045
3955
  "data-palette": "paper",
3046
3956
  "data-theme": "light",
3047
3957
  children: [
3048
- /* @__PURE__ */ jsx10("h3", {
3958
+ /* @__PURE__ */ jsx11("h3", {
3049
3959
  children: "Controls keep their meaning"
3050
3960
  }),
3051
- /* @__PURE__ */ jsx10("p", {
3961
+ /* @__PURE__ */ jsx11("p", {
3052
3962
  children: "Keyboard focus, errors, and unavailable actions stay clearly marked under Lantern."
3053
3963
  }),
3054
- /* @__PURE__ */ jsxs8("div", {
3964
+ /* @__PURE__ */ jsxs9("div", {
3055
3965
  className: "design-gallery__lantern-state-actions",
3056
3966
  children: [
3057
- /* @__PURE__ */ jsx10(Button2, {
3967
+ /* @__PURE__ */ jsx11(Button2, {
3058
3968
  controlXstyle: lanternControlStyles.edge,
3059
3969
  isDisabled: true,
3060
3970
  children: "Unavailable action"
3061
3971
  }),
3062
- /* @__PURE__ */ jsx10(Button2, {
3972
+ /* @__PURE__ */ jsx11(Button2, {
3063
3973
  controlXstyle: lanternControlStyles.edge,
3064
3974
  isPending: true,
3065
3975
  children: "Saving changes"
3066
3976
  }),
3067
- /* @__PURE__ */ jsx10(Button2, {
3977
+ /* @__PURE__ */ jsx11(Button2, {
3068
3978
  controlXstyle: lanternControlStyles.edge,
3069
3979
  onPress: () => setRemoved(true),
3070
3980
  variant: "danger",
3071
3981
  children: "Remove example"
3072
3982
  }),
3073
- /* @__PURE__ */ jsx10("button", {
3983
+ /* @__PURE__ */ jsx11("button", {
3074
3984
  className: "design-gallery__lantern-plain hraness-material-choice",
3075
3985
  "aria-pressed": plainSelected,
3076
3986
  onClick: () => setPlainSelected(!plainSelected),
@@ -3079,11 +3989,11 @@ function LanternMaterialGallery() {
3079
3989
  })
3080
3990
  ]
3081
3991
  }),
3082
- /* @__PURE__ */ jsx10("p", {
3992
+ /* @__PURE__ */ jsx11("p", {
3083
3993
  "aria-live": "polite",
3084
3994
  children: removed ? "Example removed for this visit." : ""
3085
3995
  }),
3086
- /* @__PURE__ */ jsx10(TextField, {
3996
+ /* @__PURE__ */ jsx11(TextField, {
3087
3997
  controlXstyle: lanternControlStyles.inset,
3088
3998
  defaultValue: "",
3089
3999
  errorMessage: "Give the notebook a name before saving.",
@@ -3098,7 +4008,7 @@ function LanternMaterialGallery() {
3098
4008
 
3099
4009
  // src/react/navigation-rail.tsx
3100
4010
  import { Link, cn as cn9 } from "@hraness/ui";
3101
- import * as stylex9 from "@stylexjs/stylex";
4011
+ import * as stylex10 from "@stylexjs/stylex";
3102
4012
 
3103
4013
  // src/react/navigation-rail.stylex.ts
3104
4014
  var navigationRailStyles = {
@@ -3217,36 +4127,36 @@ var navigationRailStyles = {
3217
4127
  };
3218
4128
 
3219
4129
  // src/react/navigation-rail.tsx
3220
- import { jsx as jsx11, jsxs as jsxs9 } from "react/jsx-runtime";
4130
+ import { jsx as jsx12, jsxs as jsxs10 } from "react/jsx-runtime";
3221
4131
  function NavigationRail({
3222
4132
  "aria-label": ariaLabel = "Primary navigation",
3223
4133
  children,
3224
4134
  className,
3225
4135
  footer,
3226
4136
  header,
3227
- ...props10
4137
+ ...props11
3228
4138
  }) {
3229
- const rootPresentation = stylex9.props(navigationRailStyles.rail);
3230
- const edgePresentation = stylex9.props(navigationRailStyles.railEdge);
3231
- const navigationPresentation = stylex9.props(navigationRailStyles.navigation);
3232
- return /* @__PURE__ */ jsxs9("aside", {
4139
+ const rootPresentation = stylex10.props(navigationRailStyles.rail);
4140
+ const edgePresentation = stylex10.props(navigationRailStyles.railEdge);
4141
+ const navigationPresentation = stylex10.props(navigationRailStyles.navigation);
4142
+ return /* @__PURE__ */ jsxs10("aside", {
3233
4143
  ...rootPresentation,
3234
- ...props10,
4144
+ ...props11,
3235
4145
  "aria-label": ariaLabel,
3236
4146
  className: cn9("hraness-design-navigation-rail", rootPresentation.className, className),
3237
4147
  children: [
3238
- header === undefined ? null : /* @__PURE__ */ jsx11("header", {
4148
+ header === undefined ? null : /* @__PURE__ */ jsx12("header", {
3239
4149
  ...edgePresentation,
3240
4150
  className: cn9("hraness-design-navigation-rail__header", edgePresentation.className),
3241
4151
  children: header
3242
4152
  }),
3243
- /* @__PURE__ */ jsx11("nav", {
4153
+ /* @__PURE__ */ jsx12("nav", {
3244
4154
  ...navigationPresentation,
3245
4155
  "aria-label": ariaLabel,
3246
4156
  className: cn9("hraness-design-navigation-rail__navigation", navigationPresentation.className),
3247
4157
  children
3248
4158
  }),
3249
- footer === undefined ? null : /* @__PURE__ */ jsx11("footer", {
4159
+ footer === undefined ? null : /* @__PURE__ */ jsx12("footer", {
3250
4160
  ...edgePresentation,
3251
4161
  className: cn9("hraness-design-navigation-rail__footer", edgePresentation.className),
3252
4162
  children: footer
@@ -3259,23 +4169,23 @@ function RailSection({
3259
4169
  className,
3260
4170
  title,
3261
4171
  titleAs = "h2",
3262
- ...props10
4172
+ ...props11
3263
4173
  }) {
3264
4174
  const Heading = titleAs;
3265
- const rootPresentation = stylex9.props(navigationRailStyles.section);
3266
- const titlePresentation = stylex9.props(navigationRailStyles.sectionTitle);
3267
- const itemsPresentation = stylex9.props(navigationRailStyles.sectionItems);
3268
- return /* @__PURE__ */ jsxs9("section", {
4175
+ const rootPresentation = stylex10.props(navigationRailStyles.section);
4176
+ const titlePresentation = stylex10.props(navigationRailStyles.sectionTitle);
4177
+ const itemsPresentation = stylex10.props(navigationRailStyles.sectionItems);
4178
+ return /* @__PURE__ */ jsxs10("section", {
3269
4179
  ...rootPresentation,
3270
- ...props10,
4180
+ ...props11,
3271
4181
  className: cn9("hraness-design-rail-section", rootPresentation.className, className),
3272
4182
  children: [
3273
- title === undefined ? null : /* @__PURE__ */ jsx11(Heading, {
4183
+ title === undefined ? null : /* @__PURE__ */ jsx12(Heading, {
3274
4184
  ...titlePresentation,
3275
4185
  className: cn9("hraness-design-rail-section__title", titlePresentation.className),
3276
4186
  children: title
3277
4187
  }),
3278
- /* @__PURE__ */ jsx11("div", {
4188
+ /* @__PURE__ */ jsx12("div", {
3279
4189
  ...itemsPresentation,
3280
4190
  className: cn9("hraness-design-rail-section__items", itemsPresentation.className),
3281
4191
  children
@@ -3292,42 +4202,42 @@ function RailItem({
3292
4202
  isActive = false,
3293
4203
  label,
3294
4204
  xstyle,
3295
- ...props10
4205
+ ...props11
3296
4206
  }) {
3297
- const iconPresentation = stylex9.props(navigationRailStyles.itemIcon);
3298
- const copyPresentation = stylex9.props(navigationRailStyles.itemCopy);
3299
- const labelPresentation = stylex9.props(navigationRailStyles.itemLabel);
3300
- const descriptionPresentation = stylex9.props(navigationRailStyles.itemDescription);
3301
- return /* @__PURE__ */ jsxs9(Link, {
3302
- ...props10,
4207
+ const iconPresentation = stylex10.props(navigationRailStyles.itemIcon);
4208
+ const copyPresentation = stylex10.props(navigationRailStyles.itemCopy);
4209
+ const labelPresentation = stylex10.props(navigationRailStyles.itemLabel);
4210
+ const descriptionPresentation = stylex10.props(navigationRailStyles.itemDescription);
4211
+ return /* @__PURE__ */ jsxs10(Link, {
4212
+ ...props11,
3303
4213
  "aria-current": isActive ? "page" : undefined,
3304
4214
  className: cn9("hraness-design-rail-item", className),
3305
4215
  href,
3306
4216
  xstyle: [navigationRailStyles.item, navigationRailStyles.itemNativeInteractionFallbacks, isActive && navigationRailStyles.itemActive, xstyle],
3307
4217
  children: [
3308
- icon === undefined ? null : /* @__PURE__ */ jsx11("span", {
4218
+ icon === undefined ? null : /* @__PURE__ */ jsx12("span", {
3309
4219
  ...iconPresentation,
3310
4220
  "aria-hidden": "true",
3311
4221
  className: cn9("hraness-design-rail-item__icon", iconPresentation.className),
3312
4222
  children: icon
3313
4223
  }),
3314
- /* @__PURE__ */ jsxs9("span", {
4224
+ /* @__PURE__ */ jsxs10("span", {
3315
4225
  ...copyPresentation,
3316
4226
  className: cn9("hraness-design-rail-item__copy", copyPresentation.className),
3317
4227
  children: [
3318
- /* @__PURE__ */ jsx11("span", {
4228
+ /* @__PURE__ */ jsx12("span", {
3319
4229
  ...labelPresentation,
3320
4230
  className: cn9("hraness-design-rail-item__label", labelPresentation.className),
3321
4231
  children: label
3322
4232
  }),
3323
- description === undefined ? null : /* @__PURE__ */ jsx11("span", {
4233
+ description === undefined ? null : /* @__PURE__ */ jsx12("span", {
3324
4234
  ...descriptionPresentation,
3325
4235
  className: cn9("hraness-design-rail-item__description", descriptionPresentation.className),
3326
4236
  children: description
3327
4237
  })
3328
4238
  ]
3329
4239
  }),
3330
- badge === undefined ? null : /* @__PURE__ */ jsx11("span", {
4240
+ badge === undefined ? null : /* @__PURE__ */ jsx12("span", {
3331
4241
  className: "hraness-design-rail-item__badge",
3332
4242
  children: badge
3333
4243
  })
@@ -3338,7 +4248,7 @@ function RailItem({
3338
4248
  // src/react/playback-transport.tsx
3339
4249
  import { PlayIcon, StopIcon } from "@hugeicons/core-free-icons";
3340
4250
  import { Icon as Icon2, IconButton as IconButton2, Spinner, Toolbar, cn as cn10 } from "@hraness/ui";
3341
- import * as stylex10 from "@stylexjs/stylex";
4251
+ import * as stylex11 from "@stylexjs/stylex";
3342
4252
 
3343
4253
  // src/react/playback-transport.stylex.ts
3344
4254
  var playbackTransportStyles = {
@@ -3357,7 +4267,7 @@ var playbackTransportStyles = {
3357
4267
  };
3358
4268
 
3359
4269
  // src/react/playback-transport.tsx
3360
- import { jsx as jsx12, jsxs as jsxs10 } from "react/jsx-runtime";
4270
+ import { jsx as jsx13, jsxs as jsxs11 } from "react/jsx-runtime";
3361
4271
  function PlaybackTransport({
3362
4272
  buttonAriaKeyShortcuts,
3363
4273
  buttonId,
@@ -3376,14 +4286,14 @@ function PlaybackTransport({
3376
4286
  const isPending = status === "pending";
3377
4287
  const isIdle = status === "idle";
3378
4288
  const commandLabel = isIdle ? playLabel : isPending ? pendingLabel : stopLabel;
3379
- const rootPresentation = stylex10.props(playbackTransportStyles.root);
3380
- const glyphPresentation = stylex10.props(playbackTransportStyles.glyph);
3381
- return /* @__PURE__ */ jsxs10(Toolbar, {
4289
+ const rootPresentation = stylex11.props(playbackTransportStyles.root);
4290
+ const glyphPresentation = stylex11.props(playbackTransportStyles.glyph);
4291
+ return /* @__PURE__ */ jsxs11(Toolbar, {
3382
4292
  ...accessibleName,
3383
4293
  className: cn10("hraness-design-playback-transport", rootPresentation.className, className),
3384
4294
  "data-playback-status": status,
3385
4295
  children: [
3386
- /* @__PURE__ */ jsx12(IconButton2, {
4296
+ /* @__PURE__ */ jsx13(IconButton2, {
3387
4297
  "aria-busy": isPending || undefined,
3388
4298
  "aria-label": commandLabel,
3389
4299
  ...buttonAriaKeyShortcuts === undefined ? {} : {
@@ -3408,9 +4318,9 @@ function PlaybackTransport({
3408
4318
  },
3409
4319
  size: "large",
3410
4320
  variant: "primary",
3411
- children: isPending ? /* @__PURE__ */ jsx12(Spinner, {
4321
+ children: isPending ? /* @__PURE__ */ jsx13(Spinner, {
3412
4322
  ...glyphPresentation
3413
- }) : /* @__PURE__ */ jsx12(Icon2, {
4323
+ }) : /* @__PURE__ */ jsx13(Icon2, {
3414
4324
  ...glyphPresentation.className === undefined ? {} : {
3415
4325
  className: glyphPresentation.className
3416
4326
  },
@@ -3425,8 +4335,8 @@ function PlaybackTransport({
3425
4335
 
3426
4336
  // src/react/route-state.tsx
3427
4337
  import { Skeleton, Spinner as Spinner2, cn as cn12 } from "@hraness/ui";
3428
- import * as stylex12 from "@stylexjs/stylex";
3429
- import { useEffect as useEffect6, useId as useId3, useRef as useRef5 } from "react";
4338
+ import * as stylex13 from "@stylexjs/stylex";
4339
+ import { useEffect as useEffect7, useId as useId4, useRef as useRef6 } from "react";
3430
4340
 
3431
4341
  // src/browser/foil.ts
3432
4342
  var REST = 50;
@@ -3735,11 +4645,11 @@ function attachStatusField(code, options = {}) {
3735
4645
  return [r / 255, g / 255, b / 255, a / 255];
3736
4646
  };
3737
4647
  const readColors = () => {
3738
- const ink = rgba(view.getComputedStyle(glyph).color);
4648
+ const ink2 = rgba(view.getComputedStyle(glyph).color);
3739
4649
  const accent = rgba(view.getComputedStyle(canvas).color);
3740
- gl.uniform3f(uInk, ink[0], ink[1], ink[2]);
4650
+ gl.uniform3f(uInk, ink2[0], ink2[1], ink2[2]);
3741
4651
  gl.uniform3f(uAccent, accent[0], accent[1], accent[2]);
3742
- gl.uniform1f(uAlpha, Math.max(0.35, ink[3]));
4652
+ gl.uniform1f(uAlpha, Math.max(0.35, ink2[3]));
3743
4653
  };
3744
4654
  const sample = () => {
3745
4655
  const bounds = canvas.getBoundingClientRect();
@@ -4198,9 +5108,9 @@ var routeStateStyles = {
4198
5108
 
4199
5109
  // src/react/theme.tsx
4200
5110
  import { AppearanceIcon as AppearanceIcon2, IconButton as IconButton3, Menu, MenuItem, MenuTrigger, SegmentedControl, cn as cn11 } from "@hraness/ui";
4201
- import * as stylex11 from "@stylexjs/stylex";
5111
+ import * as stylex12 from "@stylexjs/stylex";
4202
5112
  import { ThemeProvider as NextThemeProvider, useTheme } from "next-themes";
4203
- import { useEffect as useEffect5, useRef as useRef4, useSyncExternalStore as useSyncExternalStore2 } from "react";
5113
+ import { useEffect as useEffect6, useRef as useRef5, useSyncExternalStore as useSyncExternalStore2 } from "react";
4204
5114
 
4205
5115
  // src/react/theme-resolution.ts
4206
5116
  function resolveEffectiveTheme(forcedTheme, resolvedTheme) {
@@ -4375,7 +5285,7 @@ var themeStyles = {
4375
5285
  };
4376
5286
 
4377
5287
  // src/react/theme.tsx
4378
- import { jsx as jsx13, jsxs as jsxs11, Fragment as Fragment2 } from "react/jsx-runtime";
5288
+ import { jsx as jsx14, jsxs as jsxs12, Fragment as Fragment3 } from "react/jsx-runtime";
4379
5289
  var concreteThemes = ["light", "dark"];
4380
5290
  var emptySubscribe = () => () => {
4381
5291
  return;
@@ -4392,7 +5302,7 @@ function PersistedThemeNormalizer() {
4392
5302
  setTheme,
4393
5303
  theme
4394
5304
  } = useTheme();
4395
- useEffect5(() => {
5305
+ useEffect6(() => {
4396
5306
  if (theme !== undefined && !isDesignTheme(theme))
4397
5307
  setTheme(defaultDesignTheme);
4398
5308
  }, [setTheme, theme]);
@@ -4406,7 +5316,7 @@ function PortalThemeBridge({
4406
5316
  resolvedTheme
4407
5317
  } = useTheme();
4408
5318
  const portalTheme = resolveEffectiveTheme(forcedTheme, resolvedTheme);
4409
- return /* @__PURE__ */ jsx13(DesignPortalThemeProvider, {
5319
+ return /* @__PURE__ */ jsx14(DesignPortalThemeProvider, {
4410
5320
  theme: portalTheme,
4411
5321
  children
4412
5322
  });
@@ -4417,9 +5327,9 @@ function DesignThemeProvider({
4417
5327
  nonce,
4418
5328
  storageKey = designThemeStorageKey
4419
5329
  }) {
4420
- return /* @__PURE__ */ jsxs11(Fragment2, {
5330
+ return /* @__PURE__ */ jsxs12(Fragment3, {
4421
5331
  children: [
4422
- forcedTheme === undefined ? /* @__PURE__ */ jsx13("script", {
5332
+ forcedTheme === undefined ? /* @__PURE__ */ jsx14("script", {
4423
5333
  ...nonce === undefined ? {} : {
4424
5334
  nonce
4425
5335
  },
@@ -4429,7 +5339,7 @@ function DesignThemeProvider({
4429
5339
  },
4430
5340
  suppressHydrationWarning: true
4431
5341
  }) : null,
4432
- /* @__PURE__ */ jsxs11(NextThemeProvider, {
5342
+ /* @__PURE__ */ jsxs12(NextThemeProvider, {
4433
5343
  ...nonce === undefined ? {} : {
4434
5344
  nonce
4435
5345
  },
@@ -4441,8 +5351,8 @@ function DesignThemeProvider({
4441
5351
  storageKey,
4442
5352
  themes: [...concreteThemes],
4443
5353
  children: [
4444
- forcedTheme === undefined ? /* @__PURE__ */ jsx13(PersistedThemeNormalizer, {}) : null,
4445
- /* @__PURE__ */ jsx13(PortalThemeBridge, {
5354
+ forcedTheme === undefined ? /* @__PURE__ */ jsx14(PersistedThemeNormalizer, {}) : null,
5355
+ /* @__PURE__ */ jsx14(PortalThemeBridge, {
4446
5356
  forcedTheme,
4447
5357
  children
4448
5358
  })
@@ -4467,7 +5377,7 @@ function themeToggleItems(labels) {
4467
5377
  }];
4468
5378
  }
4469
5379
  function themeToggleIcon(id) {
4470
- return /* @__PURE__ */ jsx13(AppearanceIcon2, {
5380
+ return /* @__PURE__ */ jsx14(AppearanceIcon2, {
4471
5381
  name: id
4472
5382
  });
4473
5383
  }
@@ -4508,7 +5418,7 @@ function ThemeToggle({
4508
5418
  const resolvedPresentation = presentation ?? (display === undefined ? "menu" : "segmented");
4509
5419
  const resolvedDisplay = display ?? "icons";
4510
5420
  const items = resolvedDisplay === "icons" ? themeToggleIconItems(labels) : themeToggleItems(labels);
4511
- const presentationStyles = stylex11.props(themeStyles.root, resolvedPresentation === "menu" && themeStyles.menuRoot, !ready && themeStyles.notReady);
5421
+ const presentationStyles = stylex12.props(themeStyles.root, resolvedPresentation === "menu" && themeStyles.menuRoot, !ready && themeStyles.notReady);
4512
5422
  const changeTheme = (nextTheme) => {
4513
5423
  if (controlled)
4514
5424
  onChange?.(nextTheme);
@@ -4516,7 +5426,7 @@ function ThemeToggle({
4516
5426
  setTheme(nextTheme);
4517
5427
  };
4518
5428
  const currentLabel = themeToggleLabel(value, labels);
4519
- return /* @__PURE__ */ jsx13("div", {
5429
+ return /* @__PURE__ */ jsx14("div", {
4520
5430
  ...presentationStyles,
4521
5431
  "aria-busy": !ready || undefined,
4522
5432
  className: cn11("hraness-design-theme-toggle", presentationStyles.className, className),
@@ -4526,9 +5436,9 @@ function ThemeToggle({
4526
5436
  "data-presentation": resolvedPresentation,
4527
5437
  "data-ready": ready ? "true" : "false",
4528
5438
  "data-theme-value": value,
4529
- children: resolvedPresentation === "menu" ? /* @__PURE__ */ jsxs11(MenuTrigger, {
5439
+ children: resolvedPresentation === "menu" ? /* @__PURE__ */ jsxs12(MenuTrigger, {
4530
5440
  children: [
4531
- /* @__PURE__ */ jsx13(IconButton3, {
5441
+ /* @__PURE__ */ jsx14(IconButton3, {
4532
5442
  "aria-label": `${ariaLabel}: ${currentLabel}`,
4533
5443
  controlClassName: "hraness-design-theme-toggle__trigger",
4534
5444
  controlXstyle: themeStyles.trigger,
@@ -4537,7 +5447,7 @@ function ThemeToggle({
4537
5447
  tooltip: `${ariaLabel}: ${currentLabel}`,
4538
5448
  children: themeToggleIcon(value)
4539
5449
  }),
4540
- /* @__PURE__ */ jsx13(Menu, {
5450
+ /* @__PURE__ */ jsx14(Menu, {
4541
5451
  "aria-label": ariaLabel,
4542
5452
  className: "hraness-design-theme-toggle__menu",
4543
5453
  disallowEmptySelection: true,
@@ -4550,7 +5460,7 @@ function ThemeToggle({
4550
5460
  selectedKeys: [value],
4551
5461
  selectionMode: "single",
4552
5462
  xstyle: themeStyles.menu,
4553
- children: designThemes.map((id) => /* @__PURE__ */ jsx13(MenuItem, {
5463
+ children: designThemes.map((id) => /* @__PURE__ */ jsx14(MenuItem, {
4554
5464
  className: "hraness-design-theme-toggle__item",
4555
5465
  "data-theme-value": id,
4556
5466
  id,
@@ -4561,7 +5471,7 @@ function ThemeToggle({
4561
5471
  }, id))
4562
5472
  })
4563
5473
  ]
4564
- }) : /* @__PURE__ */ jsx13(SegmentedControl, {
5474
+ }) : /* @__PURE__ */ jsx14(SegmentedControl, {
4565
5475
  "aria-label": ariaLabel,
4566
5476
  isDisabled: !ready,
4567
5477
  items,
@@ -4571,14 +5481,14 @@ function ThemeToggle({
4571
5481
  })
4572
5482
  });
4573
5483
  }
4574
- function ThemeMenuButton(props12) {
5484
+ function ThemeMenuButton(props13) {
4575
5485
  const palette = useDesignPalette();
4576
5486
  if (palette !== null)
4577
- return /* @__PURE__ */ jsx13(DesignPaletteMenuButton, {
4578
- ...props12
5487
+ return /* @__PURE__ */ jsx14(DesignPaletteMenuButton, {
5488
+ ...props13
4579
5489
  });
4580
- return /* @__PURE__ */ jsx13(ThemeToggle, {
4581
- ...props12,
5490
+ return /* @__PURE__ */ jsx14(ThemeToggle, {
5491
+ ...props13,
4582
5492
  presentation: "menu"
4583
5493
  });
4584
5494
  }
@@ -4596,16 +5506,16 @@ function ThemeColorSync({
4596
5506
  resolvedTheme
4597
5507
  } = useTheme();
4598
5508
  const effectiveTheme = resolveEffectiveTheme(forcedTheme, resolvedTheme);
4599
- const registrationId = useRef4(Symbol("hraness-design-theme-color"));
4600
- const registration = useRef4(null);
5509
+ const registrationId = useRef5(Symbol("hraness-design-theme-color"));
5510
+ const registration = useRef5(null);
4601
5511
  const resolvedColor = palette !== null ? metaName !== "theme-color" && palette.ready ? palette.background : undefined : effectiveTheme !== undefined ? themeColorFor(effectiveTheme, {
4602
5512
  dark: darkColor,
4603
5513
  light: lightColor
4604
5514
  }) : undefined;
4605
5515
  const hasResolvedColor = resolvedColor !== undefined;
4606
- const latestColor = useRef4(resolvedColor);
5516
+ const latestColor = useRef5(resolvedColor);
4607
5517
  latestColor.current = resolvedColor;
4608
- useEffect5(() => {
5518
+ useEffect6(() => {
4609
5519
  if (!hasResolvedColor || latestColor.current === undefined)
4610
5520
  return;
4611
5521
  const current = acquireThemeColorMeta(document, metaName, registrationId.current, latestColor.current);
@@ -4616,7 +5526,7 @@ function ThemeColorSync({
4616
5526
  current.release();
4617
5527
  };
4618
5528
  }, [hasResolvedColor, metaName]);
4619
- useEffect5(() => {
5529
+ useEffect6(() => {
4620
5530
  if (resolvedColor !== undefined)
4621
5531
  registration.current?.update(resolvedColor);
4622
5532
  }, [resolvedColor]);
@@ -4624,7 +5534,7 @@ function ThemeColorSync({
4624
5534
  }
4625
5535
 
4626
5536
  // src/react/route-state.tsx
4627
- import { jsx as jsx14, jsxs as jsxs12, Fragment as Fragment3 } from "react/jsx-runtime";
5537
+ import { jsx as jsx15, jsxs as jsxs13, Fragment as Fragment4 } from "react/jsx-runtime";
4628
5538
  var lowerHeading = {
4629
5539
  h1: "h2",
4630
5540
  h2: "h3",
@@ -4642,26 +5552,26 @@ function StatusPage({
4642
5552
  ...content
4643
5553
  }) {
4644
5554
  const page = resolveStatusPage(content);
4645
- const rootRef = useRef5(null);
4646
- const focusId = `${useId3()}-status`;
5555
+ const rootRef = useRef6(null);
5556
+ const focusId = `${useId4()}-status`;
4647
5557
  const error = page.kind === "error";
4648
5558
  const notFound = page.kind === "not-found";
4649
5559
  const routes = notFound ? statusPageRoutesAttribute(page.routes) : undefined;
4650
5560
  const Root = canvasAs;
4651
5561
  const Title = titleAs;
4652
5562
  const NextHeading = lowerHeading[titleAs];
4653
- const headerPresentation = stylex12.props(routeStateStyles.header);
4654
- useEffect6(() => {
5563
+ const headerPresentation = stylex13.props(routeStateStyles.header);
5564
+ useEffect7(() => {
4655
5565
  const root = rootRef.current;
4656
5566
  if (!root)
4657
5567
  return;
4658
5568
  return attachStatusPage(root);
4659
5569
  }, [routes]);
4660
- useEffect6(() => {
5570
+ useEffect7(() => {
4661
5571
  if (error && autoFocus)
4662
5572
  rootRef.current?.focus();
4663
5573
  }, [autoFocus, error]);
4664
- return /* @__PURE__ */ jsxs12(Root, {
5574
+ return /* @__PURE__ */ jsxs13(Root, {
4665
5575
  "aria-label": error ? page.title : undefined,
4666
5576
  "aria-live": error && announce ? "assertive" : undefined,
4667
5577
  className: "hraness-status-page",
@@ -4671,54 +5581,54 @@ function StatusPage({
4671
5581
  ref: rootRef,
4672
5582
  tabIndex: error ? -1 : undefined,
4673
5583
  children: [
4674
- showThemeToggle ? /* @__PURE__ */ jsx14("header", {
5584
+ showThemeToggle ? /* @__PURE__ */ jsx15("header", {
4675
5585
  ...headerPresentation,
4676
5586
  className: cn12("hraness-design-route-state__header", headerPresentation.className),
4677
- children: /* @__PURE__ */ jsx14(ThemeMenuButton, {})
5587
+ children: /* @__PURE__ */ jsx15(ThemeMenuButton, {})
4678
5588
  }) : null,
4679
- /* @__PURE__ */ jsxs12("div", {
5589
+ /* @__PURE__ */ jsxs13("div", {
4680
5590
  className: "hraness-status-page__inner",
4681
5591
  children: [
4682
- /* @__PURE__ */ jsxs12("div", {
5592
+ /* @__PURE__ */ jsxs13("div", {
4683
5593
  "aria-hidden": "true",
4684
5594
  className: "hraness-status-page__code",
4685
5595
  children: [
4686
- /* @__PURE__ */ jsx14("span", {
5596
+ /* @__PURE__ */ jsx15("span", {
4687
5597
  className: "hraness-status-page__glyph",
4688
5598
  children: page.glyph
4689
5599
  }),
4690
- /* @__PURE__ */ jsx14("canvas", {
5600
+ /* @__PURE__ */ jsx15("canvas", {
4691
5601
  className: "hraness-status-page__field"
4692
5602
  })
4693
5603
  ]
4694
5604
  }),
4695
- /* @__PURE__ */ jsx14(Title, {
5605
+ /* @__PURE__ */ jsx15(Title, {
4696
5606
  className: "hraness-status-page__title",
4697
5607
  children: page.title
4698
5608
  }),
4699
- /* @__PURE__ */ jsx14("p", {
5609
+ /* @__PURE__ */ jsx15("p", {
4700
5610
  className: "hraness-status-page__summary",
4701
5611
  children: page.summary
4702
5612
  }),
4703
- notFound ? /* @__PURE__ */ jsxs12("p", {
5613
+ notFound ? /* @__PURE__ */ jsxs13("p", {
4704
5614
  className: "hraness-status-page__hint",
4705
5615
  hidden: true,
4706
5616
  children: [
4707
5617
  STATUS_PAGE_HINT_PREFIX,
4708
5618
  " ",
4709
- /* @__PURE__ */ jsx14("a", {
5619
+ /* @__PURE__ */ jsx15("a", {
4710
5620
  className: "hraness-status-page__hint-link",
4711
5621
  href: "/"
4712
5622
  }),
4713
5623
  "?"
4714
5624
  ]
4715
5625
  }) : null,
4716
- /* @__PURE__ */ jsxs12("div", {
5626
+ /* @__PURE__ */ jsxs13("div", {
4717
5627
  className: "hraness-status-page__actions",
4718
5628
  children: [
4719
- onRetry ? /* @__PURE__ */ jsxs12(Fragment3, {
5629
+ onRetry ? /* @__PURE__ */ jsxs13(Fragment4, {
4720
5630
  children: [
4721
- /* @__PURE__ */ jsx14("button", {
5631
+ /* @__PURE__ */ jsx15("button", {
4722
5632
  className: "hraness-status-page__action hraness-foil",
4723
5633
  "data-emphasis": "primary",
4724
5634
  "data-foil": "",
@@ -4726,20 +5636,20 @@ function StatusPage({
4726
5636
  type: "button",
4727
5637
  children: "Try again"
4728
5638
  }),
4729
- /* @__PURE__ */ jsx14("a", {
5639
+ /* @__PURE__ */ jsx15("a", {
4730
5640
  className: "hraness-status-page__action",
4731
5641
  href: page.primaryAction.href,
4732
5642
  children: page.primaryAction.label
4733
5643
  })
4734
5644
  ]
4735
- }) : /* @__PURE__ */ jsx14("a", {
5645
+ }) : /* @__PURE__ */ jsx15("a", {
4736
5646
  className: "hraness-status-page__action hraness-foil",
4737
5647
  "data-emphasis": "primary",
4738
5648
  "data-foil": "",
4739
5649
  href: page.primaryAction.href,
4740
5650
  children: page.primaryAction.label
4741
5651
  }),
4742
- /* @__PURE__ */ jsx14("a", {
5652
+ /* @__PURE__ */ jsx15("a", {
4743
5653
  className: "hraness-status-page__back",
4744
5654
  hidden: true,
4745
5655
  href: "/",
@@ -4747,27 +5657,27 @@ function StatusPage({
4747
5657
  })
4748
5658
  ]
4749
5659
  }),
4750
- page.next.length === 0 ? null : /* @__PURE__ */ jsxs12("nav", {
5660
+ page.next.length === 0 ? null : /* @__PURE__ */ jsxs13("nav", {
4751
5661
  "aria-labelledby": STATUS_PAGE_NEXT_HEADING_ID,
4752
5662
  className: "hraness-status-page__next",
4753
5663
  children: [
4754
- /* @__PURE__ */ jsx14(NextHeading, {
5664
+ /* @__PURE__ */ jsx15(NextHeading, {
4755
5665
  className: "hraness-status-page__next-heading",
4756
5666
  id: STATUS_PAGE_NEXT_HEADING_ID,
4757
5667
  children: page.nextHeading
4758
5668
  }),
4759
- /* @__PURE__ */ jsx14("ul", {
5669
+ /* @__PURE__ */ jsx15("ul", {
4760
5670
  className: "hraness-status-page__next-list",
4761
- children: page.next.map((link, index) => /* @__PURE__ */ jsx14("li", {
4762
- children: /* @__PURE__ */ jsxs12("a", {
5671
+ children: page.next.map((link, index) => /* @__PURE__ */ jsx15("li", {
5672
+ children: /* @__PURE__ */ jsxs13("a", {
4763
5673
  className: "hraness-status-page__next-link",
4764
5674
  href: link.href,
4765
5675
  children: [
4766
- /* @__PURE__ */ jsx14("span", {
5676
+ /* @__PURE__ */ jsx15("span", {
4767
5677
  className: "hraness-status-page__next-label",
4768
5678
  children: link.label
4769
5679
  }),
4770
- link.description === undefined ? null : /* @__PURE__ */ jsx14("span", {
5680
+ link.description === undefined ? null : /* @__PURE__ */ jsx15("span", {
4771
5681
  className: "hraness-status-page__next-description",
4772
5682
  children: link.description
4773
5683
  })
@@ -4777,12 +5687,12 @@ function StatusPage({
4777
5687
  })
4778
5688
  ]
4779
5689
  }),
4780
- page.agentIndexHref === undefined ? null : /* @__PURE__ */ jsxs12("p", {
5690
+ page.agentIndexHref === undefined ? null : /* @__PURE__ */ jsxs13("p", {
4781
5691
  className: "hraness-status-page__agent",
4782
5692
  children: [
4783
5693
  STATUS_PAGE_AGENT_PREFIX,
4784
5694
  " ",
4785
- /* @__PURE__ */ jsx14("a", {
5695
+ /* @__PURE__ */ jsx15("a", {
4786
5696
  href: page.agentIndexHref,
4787
5697
  children: page.agentIndexHref
4788
5698
  })
@@ -4793,9 +5703,9 @@ function StatusPage({
4793
5703
  ]
4794
5704
  });
4795
5705
  }
4796
- function RouteNotFoundPage(props13 = {}) {
4797
- return /* @__PURE__ */ jsx14(StatusPage, {
4798
- ...props13,
5706
+ function RouteNotFoundPage(props14 = {}) {
5707
+ return /* @__PURE__ */ jsx15(StatusPage, {
5708
+ ...props14,
4799
5709
  kind: "not-found"
4800
5710
  });
4801
5711
  }
@@ -4810,7 +5720,7 @@ function RouteErrorPage({
4810
5720
  siteName,
4811
5721
  titleAs = "h1"
4812
5722
  }) {
4813
- return /* @__PURE__ */ jsx14(StatusPage, {
5723
+ return /* @__PURE__ */ jsx15(StatusPage, {
4814
5724
  announce,
4815
5725
  autoFocus,
4816
5726
  canvasAs,
@@ -4828,45 +5738,45 @@ function RouteLoadingPage({
4828
5738
  announce = true,
4829
5739
  canvasAs = "main"
4830
5740
  } = {}) {
4831
- const rootPresentation = stylex12.props(routeStateStyles.root);
4832
- const loadingPresentation = stylex12.props(routeStateStyles.loading);
4833
- const titlePresentation = stylex12.props(routeStateStyles.row);
4834
- const skeletonPresentation = stylex12.props(routeStateStyles.skeletons);
4835
- return /* @__PURE__ */ jsx14(PageCanvas, {
5741
+ const rootPresentation = stylex13.props(routeStateStyles.root);
5742
+ const loadingPresentation = stylex13.props(routeStateStyles.loading);
5743
+ const titlePresentation = stylex13.props(routeStateStyles.row);
5744
+ const skeletonPresentation = stylex13.props(routeStateStyles.skeletons);
5745
+ return /* @__PURE__ */ jsx15(PageCanvas, {
4836
5746
  "aria-busy": announce ? "true" : undefined,
4837
5747
  as: canvasAs,
4838
5748
  className: cn12("hraness-design-route-state", rootPresentation.className),
4839
- children: /* @__PURE__ */ jsxs12("section", {
5749
+ children: /* @__PURE__ */ jsxs13("section", {
4840
5750
  ...loadingPresentation,
4841
5751
  className: cn12("hraness-design-route-state__loading", loadingPresentation.className),
4842
5752
  role: announce ? "status" : undefined,
4843
5753
  children: [
4844
- /* @__PURE__ */ jsxs12("div", {
5754
+ /* @__PURE__ */ jsxs13("div", {
4845
5755
  ...titlePresentation,
4846
5756
  className: cn12("hraness-design-route-state__loading-title", titlePresentation.className),
4847
5757
  children: [
4848
- /* @__PURE__ */ jsx14(Spinner2, {}),
4849
- /* @__PURE__ */ jsx14("strong", {
5758
+ /* @__PURE__ */ jsx15(Spinner2, {}),
5759
+ /* @__PURE__ */ jsx15("strong", {
4850
5760
  children: "Loading page"
4851
5761
  })
4852
5762
  ]
4853
5763
  }),
4854
- /* @__PURE__ */ jsxs12("div", {
5764
+ /* @__PURE__ */ jsxs13("div", {
4855
5765
  ...skeletonPresentation,
4856
5766
  "aria-hidden": "true",
4857
5767
  className: cn12("hraness-design-route-state__skeletons", skeletonPresentation.className),
4858
5768
  children: [
4859
- /* @__PURE__ */ jsx14(Skeleton, {
5769
+ /* @__PURE__ */ jsx15(Skeleton, {
4860
5770
  height: "1rem",
4861
5771
  isText: true,
4862
5772
  width: "88%"
4863
5773
  }),
4864
- /* @__PURE__ */ jsx14(Skeleton, {
5774
+ /* @__PURE__ */ jsx15(Skeleton, {
4865
5775
  height: "1rem",
4866
5776
  isText: true,
4867
5777
  width: "64%"
4868
5778
  }),
4869
- /* @__PURE__ */ jsx14(Skeleton, {
5779
+ /* @__PURE__ */ jsx15(Skeleton, {
4870
5780
  height: "8rem",
4871
5781
  width: "100%"
4872
5782
  })
@@ -4882,52 +5792,52 @@ function GlobalErrorDocument({
4882
5792
  diagnostics,
4883
5793
  lightColor = colors.light.background,
4884
5794
  theme = defaultDesignTheme,
4885
- ...props13
5795
+ ...props14
4886
5796
  }) {
4887
- const content = /* @__PURE__ */ jsxs12(Fragment3, {
5797
+ const content = /* @__PURE__ */ jsxs13(Fragment4, {
4888
5798
  children: [
4889
5799
  diagnostics,
4890
- /* @__PURE__ */ jsx14(RouteErrorPage, {
4891
- ...props13,
5800
+ /* @__PURE__ */ jsx15(RouteErrorPage, {
5801
+ ...props14,
4892
5802
  showThemeToggle: false
4893
5803
  })
4894
5804
  ]
4895
5805
  });
4896
- return /* @__PURE__ */ jsxs12("html", {
5806
+ return /* @__PURE__ */ jsxs13("html", {
4897
5807
  "data-theme": theme === "system" ? "light" : theme,
4898
5808
  lang: "en",
4899
5809
  suppressHydrationWarning: true,
4900
5810
  children: [
4901
- /* @__PURE__ */ jsxs12("head", {
5811
+ /* @__PURE__ */ jsxs13("head", {
4902
5812
  children: [
4903
- /* @__PURE__ */ jsx14("meta", {
5813
+ /* @__PURE__ */ jsx15("meta", {
4904
5814
  content: theme === "system" ? "light dark" : theme,
4905
5815
  name: "color-scheme"
4906
5816
  }),
4907
- theme === "system" ? /* @__PURE__ */ jsxs12(Fragment3, {
5817
+ theme === "system" ? /* @__PURE__ */ jsxs13(Fragment4, {
4908
5818
  children: [
4909
- /* @__PURE__ */ jsx14("meta", {
5819
+ /* @__PURE__ */ jsx15("meta", {
4910
5820
  content: lightColor,
4911
5821
  media: "(prefers-color-scheme: light)",
4912
5822
  name: "theme-color"
4913
5823
  }),
4914
- /* @__PURE__ */ jsx14("meta", {
5824
+ /* @__PURE__ */ jsx15("meta", {
4915
5825
  content: darkColor,
4916
5826
  media: "(prefers-color-scheme: dark)",
4917
5827
  name: "theme-color"
4918
5828
  })
4919
5829
  ]
4920
- }) : /* @__PURE__ */ jsx14("meta", {
5830
+ }) : /* @__PURE__ */ jsx15("meta", {
4921
5831
  content: theme === "dark" ? darkColor : lightColor,
4922
5832
  name: "theme-color"
4923
5833
  })
4924
5834
  ]
4925
5835
  }),
4926
- /* @__PURE__ */ jsx14("body", {
5836
+ /* @__PURE__ */ jsx15("body", {
4927
5837
  className: bodyClassName,
4928
- children: theme === "system" ? /* @__PURE__ */ jsxs12(DesignThemeProvider, {
5838
+ children: theme === "system" ? /* @__PURE__ */ jsxs13(DesignThemeProvider, {
4929
5839
  children: [
4930
- /* @__PURE__ */ jsx14(ThemeColorSync, {
5840
+ /* @__PURE__ */ jsx15(ThemeColorSync, {
4931
5841
  darkColor,
4932
5842
  lightColor
4933
5843
  }),
@@ -4940,7 +5850,7 @@ function GlobalErrorDocument({
4940
5850
  }
4941
5851
 
4942
5852
  // src/react/production-data-preview-notice.tsx
4943
- import * as stylex13 from "@stylexjs/stylex";
5853
+ import * as stylex14 from "@stylexjs/stylex";
4944
5854
 
4945
5855
  // src/react/production-data-preview-notice.stylex.ts
4946
5856
  var productionDataPreviewNoticeStyles = {
@@ -4985,25 +5895,25 @@ var productionDataPreviewNoticeStyles = {
4985
5895
  };
4986
5896
 
4987
5897
  // src/react/production-data-preview-notice.tsx
4988
- import { jsx as jsx15, jsxs as jsxs13 } from "react/jsx-runtime";
5898
+ import { jsx as jsx16, jsxs as jsxs14 } from "react/jsx-runtime";
4989
5899
  function ProductionDataPreviewNotice({
4990
5900
  surfaceOrigin
4991
5901
  }) {
4992
5902
  if (surfaceOrigin === undefined || surfaceOrigin === "")
4993
5903
  return null;
4994
- const noticePresentation = stylex13.props(productionDataPreviewNoticeStyles.root);
4995
- const emphasisPresentation = stylex13.props(productionDataPreviewNoticeStyles.emphasis);
4996
- return /* @__PURE__ */ jsxs13("aside", {
5904
+ const noticePresentation = stylex14.props(productionDataPreviewNoticeStyles.root);
5905
+ const emphasisPresentation = stylex14.props(productionDataPreviewNoticeStyles.emphasis);
5906
+ return /* @__PURE__ */ jsxs14("aside", {
4997
5907
  ...noticePresentation,
4998
5908
  "aria-label": "Production data preview warning",
4999
5909
  className: `hraness-design-production-data-preview-notice ${noticePresentation.className}`,
5000
5910
  role: "alert",
5001
5911
  children: [
5002
- /* @__PURE__ */ jsx15("strong", {
5912
+ /* @__PURE__ */ jsx16("strong", {
5003
5913
  ...emphasisPresentation,
5004
5914
  children: "Production data preview"
5005
5915
  }),
5006
- /* @__PURE__ */ jsx15("span", {
5916
+ /* @__PURE__ */ jsx16("span", {
5007
5917
  children: "This preview uses production data. Actions are real and affect production."
5008
5918
  })
5009
5919
  ]
@@ -5011,7 +5921,7 @@ function ProductionDataPreviewNotice({
5011
5921
  }
5012
5922
 
5013
5923
  // src/react/relative-time.tsx
5014
- import { useEffect as useEffect7, useState as useState4 } from "react";
5924
+ import { useEffect as useEffect8, useState as useState5 } from "react";
5015
5925
  import { createElement as createElement2 } from "react";
5016
5926
  var maximumTimeout = 2147483647;
5017
5927
  var autoDelays = {
@@ -5049,8 +5959,8 @@ function RelativeTime({
5049
5959
  const instant = parseRelativeTimeInput(value, "RelativeTime value");
5050
5960
  const refresh = parseRefresh(refreshInterval);
5051
5961
  const time = instant.getTime();
5052
- const [clock, setClock] = useState4(null);
5053
- useEffect7(() => {
5962
+ const [clock, setClock] = useState5(null);
5963
+ useEffect8(() => {
5054
5964
  setClock(Date.now());
5055
5965
  if (refresh === "off")
5056
5966
  return;
@@ -5086,7 +5996,7 @@ function RelativeTime({
5086
5996
  }
5087
5997
 
5088
5998
  // src/react/design-gallery.tsx
5089
- import { jsx as jsx16, jsxs as jsxs14 } from "react/jsx-runtime";
5999
+ import { jsx as jsx17, jsxs as jsxs15, Fragment as Fragment5 } from "react/jsx-runtime";
5090
6000
  var designGallerySections = [{
5091
6001
  id: "foundation",
5092
6002
  label: "Foundation"
@@ -5190,35 +6100,35 @@ var foilDeckExamples = [{
5190
6100
  function DesignSystemGallery({
5191
6101
  isNestedInMain = false
5192
6102
  }) {
5193
- const [density, setDensity] = useState5("default");
5194
- const [chatDraft, setChatDraft] = useState5("Review the presentation contract");
5195
- const [chatSubmission, setChatSubmission] = useState5("");
5196
- const [faderValue, setFaderValue] = useState5(64);
5197
- const [playbackStatus, setPlaybackStatus] = useState5("idle");
6103
+ const [density, setDensity] = useState6("default");
6104
+ const [chatDraft, setChatDraft] = useState6("Review the presentation contract");
6105
+ const [chatSubmission, setChatSubmission] = useState6("");
6106
+ const [faderValue, setFaderValue] = useState6(64);
6107
+ const [playbackStatus, setPlaybackStatus] = useState6("idle");
5198
6108
  const Root = isNestedInMain ? "div" : "main";
5199
- return /* @__PURE__ */ jsxs14(Root, {
6109
+ return /* @__PURE__ */ jsxs15(Root, {
5200
6110
  className: "design-gallery",
5201
6111
  "data-design-gallery": "public",
5202
6112
  "data-design-gallery-nested": isNestedInMain ? "true" : "false",
5203
6113
  children: [
5204
- /* @__PURE__ */ jsxs14("header", {
6114
+ /* @__PURE__ */ jsxs15("header", {
5205
6115
  className: "design-gallery__intro",
5206
6116
  children: [
5207
- /* @__PURE__ */ jsx16(Badge, {
6117
+ /* @__PURE__ */ jsx17(Badge, {
5208
6118
  tone: "info",
5209
6119
  children: "@hraness/design-kit"
5210
6120
  }),
5211
- /* @__PURE__ */ jsx16("h1", {
6121
+ /* @__PURE__ */ jsx17("h1", {
5212
6122
  children: "Presentation and composition reference"
5213
6123
  }),
5214
- /* @__PURE__ */ jsx16("p", {
6124
+ /* @__PURE__ */ jsx17("p", {
5215
6125
  children: "Portable controls come from @hraness/ui. This package adds application shells, charts, effects, syntax, and haptics."
5216
6126
  }),
5217
- /* @__PURE__ */ jsx16("p", {
6127
+ /* @__PURE__ */ jsx17("p", {
5218
6128
  children: "System follows your device on the first visit. Choosing Light, Dark, or System saves that preference."
5219
6129
  }),
5220
- /* @__PURE__ */ jsx16(WrappingRow, {
5221
- children: /* @__PURE__ */ jsx16(SegmentedControl2, {
6130
+ /* @__PURE__ */ jsx17(WrappingRow, {
6131
+ children: /* @__PURE__ */ jsx17(SegmentedControl2, {
5222
6132
  "aria-label": "Gallery density",
5223
6133
  items: [{
5224
6134
  id: "compact",
@@ -5234,43 +6144,43 @@ function DesignSystemGallery({
5234
6144
  })
5235
6145
  ]
5236
6146
  }),
5237
- /* @__PURE__ */ jsxs14("section", {
6147
+ /* @__PURE__ */ jsxs15("section", {
5238
6148
  className: "design-gallery__section",
5239
6149
  id: "foundation",
5240
6150
  children: [
5241
- /* @__PURE__ */ jsx16("h2", {
6151
+ /* @__PURE__ */ jsx17("h2", {
5242
6152
  children: "Foundation boundary"
5243
6153
  }),
5244
- /* @__PURE__ */ jsx16(ProductionDataPreviewNotice, {
6154
+ /* @__PURE__ */ jsx17(ProductionDataPreviewNotice, {
5245
6155
  surfaceOrigin: "https://preview.example.test"
5246
6156
  }),
5247
- /* @__PURE__ */ jsxs14("div", {
6157
+ /* @__PURE__ */ jsxs15("div", {
5248
6158
  className: "design-gallery__grid",
5249
6159
  children: [
5250
- /* @__PURE__ */ jsxs14(Card, {
6160
+ /* @__PURE__ */ jsxs15(Card, {
5251
6161
  children: [
5252
- /* @__PURE__ */ jsxs14(CardHeader, {
6162
+ /* @__PURE__ */ jsxs15(CardHeader, {
5253
6163
  children: [
5254
- /* @__PURE__ */ jsx16(CardTitle, {
6164
+ /* @__PURE__ */ jsx17(CardTitle, {
5255
6165
  children: "Portable control"
5256
6166
  }),
5257
- /* @__PURE__ */ jsx16(CardDescription, {
6167
+ /* @__PURE__ */ jsx17(CardDescription, {
5258
6168
  children: "Rendered directly by @hraness/ui."
5259
6169
  })
5260
6170
  ]
5261
6171
  }),
5262
- /* @__PURE__ */ jsx16(CardContent, {
5263
- children: /* @__PURE__ */ jsxs14(WrappingRow, {
6172
+ /* @__PURE__ */ jsx17(CardContent, {
6173
+ children: /* @__PURE__ */ jsxs15(WrappingRow, {
5264
6174
  children: [
5265
- /* @__PURE__ */ jsx16(Button3, {
6175
+ /* @__PURE__ */ jsx17(Button3, {
5266
6176
  variant: "primary",
5267
6177
  children: "Primary action"
5268
6178
  }),
5269
- /* @__PURE__ */ jsx16(LinkButton, {
6179
+ /* @__PURE__ */ jsx17(LinkButton, {
5270
6180
  href: "#shells",
5271
6181
  children: "Open shells"
5272
6182
  }),
5273
- /* @__PURE__ */ jsx16(Tag, {
6183
+ /* @__PURE__ */ jsx17(Tag, {
5274
6184
  variant: "outline",
5275
6185
  children: "public core"
5276
6186
  })
@@ -5279,27 +6189,27 @@ function DesignSystemGallery({
5279
6189
  })
5280
6190
  ]
5281
6191
  }),
5282
- /* @__PURE__ */ jsxs14(Card, {
6192
+ /* @__PURE__ */ jsxs15(Card, {
5283
6193
  children: [
5284
- /* @__PURE__ */ jsxs14(CardHeader, {
6194
+ /* @__PURE__ */ jsxs15(CardHeader, {
5285
6195
  children: [
5286
- /* @__PURE__ */ jsx16(CardTitle, {
6196
+ /* @__PURE__ */ jsx17(CardTitle, {
5287
6197
  children: "Typography roles"
5288
6198
  }),
5289
- /* @__PURE__ */ jsx16(CardDescription, {
6199
+ /* @__PURE__ */ jsx17(CardDescription, {
5290
6200
  children: "Nebula Sans for proportional text; mono stays explicit."
5291
6201
  })
5292
6202
  ]
5293
6203
  }),
5294
- /* @__PURE__ */ jsx16(CardContent, {
5295
- children: /* @__PURE__ */ jsxs14("div", {
6204
+ /* @__PURE__ */ jsx17(CardContent, {
6205
+ children: /* @__PURE__ */ jsxs15("div", {
5296
6206
  className: "design-gallery__type-specimen",
5297
6207
  children: [
5298
- /* @__PURE__ */ jsx16("p", {
6208
+ /* @__PURE__ */ jsx17("p", {
5299
6209
  "data-gallery-font": "proportional",
5300
6210
  children: "Nebula Sans sets both headings and body text."
5301
6211
  }),
5302
- /* @__PURE__ */ jsx16("code", {
6212
+ /* @__PURE__ */ jsx17("code", {
5303
6213
  "data-gallery-font": "mono",
5304
6214
  children: 'const role = "mono";'
5305
6215
  })
@@ -5308,57 +6218,57 @@ function DesignSystemGallery({
5308
6218
  })
5309
6219
  ]
5310
6220
  }),
5311
- /* @__PURE__ */ jsxs14(Card, {
6221
+ /* @__PURE__ */ jsxs15(Card, {
5312
6222
  children: [
5313
- /* @__PURE__ */ jsxs14(CardHeader, {
6223
+ /* @__PURE__ */ jsxs15(CardHeader, {
5314
6224
  children: [
5315
- /* @__PURE__ */ jsx16(CardTitle, {
6225
+ /* @__PURE__ */ jsx17(CardTitle, {
5316
6226
  children: "Provider marks"
5317
6227
  }),
5318
- /* @__PURE__ */ jsx16(CardDescription, {
6228
+ /* @__PURE__ */ jsx17(CardDescription, {
5319
6229
  children: "Vendored agent and vendor artwork on accent-tinted tiles."
5320
6230
  })
5321
6231
  ]
5322
6232
  }),
5323
- /* @__PURE__ */ jsx16(CardContent, {
5324
- children: /* @__PURE__ */ jsxs14(WrappingRow, {
6233
+ /* @__PURE__ */ jsx17(CardContent, {
6234
+ children: /* @__PURE__ */ jsxs15(WrappingRow, {
5325
6235
  children: [
5326
- /* @__PURE__ */ jsx16(ProviderMark, {
6236
+ /* @__PURE__ */ jsx17(ProviderMark, {
5327
6237
  mark: "claudecode",
5328
6238
  label: "Claude Code",
5329
6239
  size: 40
5330
6240
  }),
5331
- /* @__PURE__ */ jsx16(ProviderMark, {
6241
+ /* @__PURE__ */ jsx17(ProviderMark, {
5332
6242
  mark: "codex",
5333
6243
  label: "Codex",
5334
6244
  size: 40
5335
6245
  }),
5336
- /* @__PURE__ */ jsx16(ProviderMark, {
6246
+ /* @__PURE__ */ jsx17(ProviderMark, {
5337
6247
  mark: "opencode",
5338
6248
  label: "opencode",
5339
6249
  size: 40
5340
6250
  }),
5341
- /* @__PURE__ */ jsx16(ProviderMark, {
6251
+ /* @__PURE__ */ jsx17(ProviderMark, {
5342
6252
  mark: "crush",
5343
6253
  label: "Crush",
5344
6254
  size: 40
5345
6255
  }),
5346
- /* @__PURE__ */ jsx16(ProviderMark, {
6256
+ /* @__PURE__ */ jsx17(ProviderMark, {
5347
6257
  mark: "aider",
5348
6258
  label: "Aider",
5349
6259
  size: 40
5350
6260
  }),
5351
- /* @__PURE__ */ jsx16(ProviderMark, {
6261
+ /* @__PURE__ */ jsx17(ProviderMark, {
5352
6262
  mark: "goose",
5353
6263
  label: "Goose",
5354
6264
  size: 40
5355
6265
  }),
5356
- /* @__PURE__ */ jsx16(ProviderMark, {
6266
+ /* @__PURE__ */ jsx17(ProviderMark, {
5357
6267
  mark: "gemini",
5358
6268
  label: "Gemini",
5359
6269
  size: 40
5360
6270
  }),
5361
- /* @__PURE__ */ jsx16(ProviderMark, {
6271
+ /* @__PURE__ */ jsx17(ProviderMark, {
5362
6272
  mark: "nvidia",
5363
6273
  label: "NVIDIA",
5364
6274
  size: 40
@@ -5370,30 +6280,30 @@ function DesignSystemGallery({
5370
6280
  })
5371
6281
  ]
5372
6282
  }),
5373
- /* @__PURE__ */ jsxs14("div", {
6283
+ /* @__PURE__ */ jsxs15("div", {
5374
6284
  "aria-label": "Plain site link presentation",
5375
6285
  className: "design-gallery__plain-theme plain-site plain-publication",
5376
6286
  children: [
5377
- /* @__PURE__ */ jsx16("header", {
6287
+ /* @__PURE__ */ jsx17("header", {
5378
6288
  className: "plain-header",
5379
- children: /* @__PURE__ */ jsxs14("div", {
6289
+ children: /* @__PURE__ */ jsxs15("div", {
5380
6290
  className: "plain-header__inner",
5381
6291
  "data-layout": "responsive-wrap",
5382
6292
  children: [
5383
- /* @__PURE__ */ jsx16("a", {
6293
+ /* @__PURE__ */ jsx17("a", {
5384
6294
  className: "plain-wordmark",
5385
6295
  href: "#foundation",
5386
6296
  children: "project-name.example"
5387
6297
  }),
5388
- /* @__PURE__ */ jsxs14("nav", {
6298
+ /* @__PURE__ */ jsxs15("nav", {
5389
6299
  "aria-label": "Plain site example",
5390
6300
  className: "plain-nav",
5391
6301
  children: [
5392
- /* @__PURE__ */ jsx16("a", {
6302
+ /* @__PURE__ */ jsx17("a", {
5393
6303
  href: "#foundation",
5394
6304
  children: "Articles"
5395
6305
  }),
5396
- /* @__PURE__ */ jsx16("a", {
6306
+ /* @__PURE__ */ jsx17("a", {
5397
6307
  href: "#shells",
5398
6308
  children: "About"
5399
6309
  })
@@ -5402,13 +6312,13 @@ function DesignSystemGallery({
5402
6312
  ]
5403
6313
  })
5404
6314
  }),
5405
- /* @__PURE__ */ jsx16("div", {
6315
+ /* @__PURE__ */ jsx17("div", {
5406
6316
  className: "plain-page",
5407
- children: /* @__PURE__ */ jsxs14("p", {
6317
+ children: /* @__PURE__ */ jsxs15("p", {
5408
6318
  className: "design-gallery__plain-link-example",
5409
6319
  children: [
5410
6320
  "Ordinary ",
5411
- /* @__PURE__ */ jsx16("a", {
6321
+ /* @__PURE__ */ jsx17("a", {
5412
6322
  href: "#foundation",
5413
6323
  children: "blue links"
5414
6324
  }),
@@ -5420,22 +6330,22 @@ function DesignSystemGallery({
5420
6330
  })
5421
6331
  ]
5422
6332
  }),
5423
- /* @__PURE__ */ jsxs14("section", {
6333
+ /* @__PURE__ */ jsxs15("section", {
5424
6334
  className: "design-gallery__section",
5425
6335
  id: "paper-theme",
5426
6336
  children: [
5427
- /* @__PURE__ */ jsx16("h2", {
6337
+ /* @__PURE__ */ jsx17("h2", {
5428
6338
  children: "Paper theme"
5429
6339
  }),
5430
- /* @__PURE__ */ jsx16("p", {
6340
+ /* @__PURE__ */ jsx17("p", {
5431
6341
  children: "Import paper-theme.css to share warm neutral colors and compact typography without replacing layouts or saved appearance choices."
5432
6342
  }),
5433
- /* @__PURE__ */ jsxs14("div", {
6343
+ /* @__PURE__ */ jsxs15("div", {
5434
6344
  className: "design-gallery__paper",
5435
6345
  "data-hraness-theme": "paper",
5436
6346
  "data-theme": "light",
5437
6347
  children: [
5438
- /* @__PURE__ */ jsx16(MarketingSiteHeader, {
6348
+ /* @__PURE__ */ jsx17(MarketingSiteHeader, {
5439
6349
  brand: "Light paper",
5440
6350
  brandHref: "#paper-theme",
5441
6351
  links: [{
@@ -5444,36 +6354,36 @@ function DesignSystemGallery({
5444
6354
  }],
5445
6355
  sticky: false
5446
6356
  }),
5447
- /* @__PURE__ */ jsx16(TopBar, {
6357
+ /* @__PURE__ */ jsx17(TopBar, {
5448
6358
  surface: "glass",
5449
6359
  title: "Glass application header",
5450
6360
  "data-gallery-glass-top-bar": ""
5451
6361
  }),
5452
- /* @__PURE__ */ jsx16("h3", {
6362
+ /* @__PURE__ */ jsx17("h3", {
5453
6363
  children: "Light paper"
5454
6364
  }),
5455
- /* @__PURE__ */ jsx16("p", {
6365
+ /* @__PURE__ */ jsx17("p", {
5456
6366
  children: "Headers blur scrolling content and become opaque when reduced transparency is preferred."
5457
6367
  }),
5458
- /* @__PURE__ */ jsx16("p", {
5459
- children: /* @__PURE__ */ jsx16("a", {
6368
+ /* @__PURE__ */ jsx17("p", {
6369
+ children: /* @__PURE__ */ jsx17("a", {
5460
6370
  className: "design-gallery__paper-link",
5461
6371
  href: "#foundation",
5462
6372
  children: "Read about the foundation"
5463
6373
  })
5464
6374
  }),
5465
- /* @__PURE__ */ jsx16(Button3, {
6375
+ /* @__PURE__ */ jsx17(Button3, {
5466
6376
  variant: "primary",
5467
6377
  children: "Create note"
5468
6378
  })
5469
6379
  ]
5470
6380
  }),
5471
- /* @__PURE__ */ jsxs14("div", {
6381
+ /* @__PURE__ */ jsxs15("div", {
5472
6382
  className: "design-gallery__paper",
5473
6383
  "data-hraness-theme": "paper",
5474
6384
  "data-theme": "dark",
5475
6385
  children: [
5476
- /* @__PURE__ */ jsx16(MarketingSiteHeader, {
6386
+ /* @__PURE__ */ jsx17(MarketingSiteHeader, {
5477
6387
  brand: "Dark paper",
5478
6388
  brandHref: "#paper-theme",
5479
6389
  links: [{
@@ -5482,25 +6392,25 @@ function DesignSystemGallery({
5482
6392
  }],
5483
6393
  sticky: false
5484
6394
  }),
5485
- /* @__PURE__ */ jsx16(TopBar, {
6395
+ /* @__PURE__ */ jsx17(TopBar, {
5486
6396
  surface: "glass",
5487
6397
  title: "Glass application header",
5488
6398
  "data-gallery-glass-top-bar": ""
5489
6399
  }),
5490
- /* @__PURE__ */ jsx16("h3", {
6400
+ /* @__PURE__ */ jsx17("h3", {
5491
6401
  children: "Dark paper"
5492
6402
  }),
5493
- /* @__PURE__ */ jsx16("p", {
6403
+ /* @__PURE__ */ jsx17("p", {
5494
6404
  children: "The same header treatment follows an explicit dark preference."
5495
6405
  }),
5496
- /* @__PURE__ */ jsx16("p", {
5497
- children: /* @__PURE__ */ jsx16("a", {
6406
+ /* @__PURE__ */ jsx17("p", {
6407
+ children: /* @__PURE__ */ jsx17("a", {
5498
6408
  className: "design-gallery__paper-link",
5499
6409
  href: "#foundation",
5500
6410
  children: "Read about the foundation"
5501
6411
  })
5502
6412
  }),
5503
- /* @__PURE__ */ jsx16(Button3, {
6413
+ /* @__PURE__ */ jsx17(Button3, {
5504
6414
  variant: "primary",
5505
6415
  children: "Open notes"
5506
6416
  })
@@ -5508,18 +6418,18 @@ function DesignSystemGallery({
5508
6418
  })
5509
6419
  ]
5510
6420
  }),
5511
- /* @__PURE__ */ jsx16(LanternMaterialGallery, {}),
5512
- /* @__PURE__ */ jsxs14("section", {
6421
+ /* @__PURE__ */ jsx17(LanternMaterialGallery, {}),
6422
+ /* @__PURE__ */ jsxs15("section", {
5513
6423
  className: "design-gallery__section",
5514
6424
  id: "marketing",
5515
6425
  children: [
5516
- /* @__PURE__ */ jsx16("h2", {
6426
+ /* @__PURE__ */ jsx17("h2", {
5517
6427
  children: "Product-marketing grammar"
5518
6428
  }),
5519
- /* @__PURE__ */ jsxs14(MarketingPage, {
6429
+ /* @__PURE__ */ jsxs15(MarketingPage, {
5520
6430
  className: "design-gallery__marketing",
5521
6431
  children: [
5522
- /* @__PURE__ */ jsx16(MarketingSiteHeader, {
6432
+ /* @__PURE__ */ jsx17(MarketingSiteHeader, {
5523
6433
  action: {
5524
6434
  href: "#gallery-install",
5525
6435
  label: "Install Relay"
@@ -5538,9 +6448,9 @@ function DesignSystemGallery({
5538
6448
  label: "Docs"
5539
6449
  }]
5540
6450
  }),
5541
- /* @__PURE__ */ jsxs14(MarketingMain, {
6451
+ /* @__PURE__ */ jsxs15(MarketingMain, {
5542
6452
  children: [
5543
- /* @__PURE__ */ jsx16(ProductHero, {
6453
+ /* @__PURE__ */ jsx17(ProductHero, {
5544
6454
  actions: [{
5545
6455
  href: "#gallery-install",
5546
6456
  label: "Install Relay"
@@ -5566,11 +6476,11 @@ function DesignSystemGallery({
5566
6476
  value: "CLI + SDK"
5567
6477
  }],
5568
6478
  factsColumns: 3,
5569
- frame: /* @__PURE__ */ jsx16(MarketingProofFrame, {
6479
+ frame: /* @__PURE__ */ jsx17(MarketingProofFrame, {
5570
6480
  caption: "The log written by the example job.",
5571
6481
  credit: "Captured 5 September 2026",
5572
6482
  title: "relay run job-01",
5573
- children: /* @__PURE__ */ jsx16(MarketingCodeBlock, {
6483
+ children: /* @__PURE__ */ jsx17(MarketingCodeBlock, {
5574
6484
  className: "design-gallery__marketing-command",
5575
6485
  code: '{"status":"complete","job":"job-01","durationMs":412}',
5576
6486
  language: "json"
@@ -5580,13 +6490,13 @@ function DesignSystemGallery({
5580
6490
  headingId: "design-gallery-marketing-title",
5581
6491
  headingLevel: 3,
5582
6492
  name: "Relay",
5583
- notice: /* @__PURE__ */ jsx16("p", {
6493
+ notice: /* @__PURE__ */ jsx17("p", {
5584
6494
  "data-gallery-marketing-slot": "notice",
5585
6495
  children: "This example release runs locally."
5586
6496
  }),
5587
6497
  summary: "Relay runs the same job wherever you start it and writes a log you can read afterward: inputs, outputs, and how long it took."
5588
6498
  }),
5589
- /* @__PURE__ */ jsx16(MarketingPillars, {
6499
+ /* @__PURE__ */ jsx17(MarketingPillars, {
5590
6500
  ariaLabel: "Relay in three points",
5591
6501
  columns: 3,
5592
6502
  pillars: [{
@@ -5600,18 +6510,18 @@ function DesignSystemGallery({
5600
6510
  summary: "Source files and credentials never leave your machine."
5601
6511
  }]
5602
6512
  }),
5603
- /* @__PURE__ */ jsxs14(MarketingInstallPanel, {
6513
+ /* @__PURE__ */ jsxs15(MarketingInstallPanel, {
5604
6514
  eyebrow: "Local release",
5605
6515
  heading: "Install Relay and run your first job.",
5606
6516
  headingId: "design-gallery-install-title",
5607
6517
  headingLevel: 3,
5608
6518
  id: "gallery-install",
5609
- note: /* @__PURE__ */ jsx16("p", {
6519
+ note: /* @__PURE__ */ jsx17("p", {
5610
6520
  "data-gallery-marketing-slot": "note",
5611
6521
  children: "Requires Bun 1.3.14."
5612
6522
  }),
5613
6523
  children: [
5614
- /* @__PURE__ */ jsx16(PlatformInstall, {
6524
+ /* @__PURE__ */ jsx17(PlatformInstall, {
5615
6525
  id: "design-gallery-platform-install",
5616
6526
  platforms: [{
5617
6527
  alternatives: [{
@@ -5636,18 +6546,18 @@ function DesignSystemGallery({
5636
6546
  id: "windows",
5637
6547
  shell: "WSL2 terminal",
5638
6548
  unavailable: true,
5639
- unavailableNote: /* @__PURE__ */ jsx16("p", {
6549
+ unavailableNote: /* @__PURE__ */ jsx17("p", {
5640
6550
  children: "No native Windows build yet. Relay runs in WSL2."
5641
6551
  })
5642
6552
  }]
5643
6553
  }),
5644
- /* @__PURE__ */ jsx16(PlatformBadges, {
6554
+ /* @__PURE__ */ jsx17(PlatformBadges, {
5645
6555
  platforms: ["macos", "linux", {
5646
6556
  id: "windows",
5647
6557
  note: "via WSL2"
5648
6558
  }]
5649
6559
  }),
5650
- /* @__PURE__ */ jsx16(MarketingFlow, {
6560
+ /* @__PURE__ */ jsx17(MarketingFlow, {
5651
6561
  ariaLabel: "First Relay job",
5652
6562
  steps: [{
5653
6563
  code: "relay init",
@@ -5665,7 +6575,49 @@ function DesignSystemGallery({
5665
6575
  })
5666
6576
  ]
5667
6577
  }),
5668
- /* @__PURE__ */ jsx16(MarketingPrimitives, {
6578
+ /* @__PURE__ */ jsxs15(MarketingSection, {
6579
+ heading: "Ask your agent to set it up.",
6580
+ headingId: "gallery-agent-setup",
6581
+ headingLevel: 3,
6582
+ label: "Agent setup",
6583
+ children: [
6584
+ /* @__PURE__ */ jsx17(AgentSetupPrompt, {
6585
+ label: "Relay agent setup",
6586
+ prompt: `Install Relay from https://relay.example/install.sh.
6587
+ Read the project instructions before making changes.
6588
+ Run relay init in this workspace and create a job named sample.
6589
+ Run the job, then show me its log.`,
6590
+ targets: [{
6591
+ href: "https://claude.ai/new",
6592
+ id: "claude",
6593
+ label: "Claude",
6594
+ mark: "claudecode",
6595
+ mode: "copy-and-open"
6596
+ }, {
6597
+ href: "https://chatgpt.com/",
6598
+ id: "chatgpt",
6599
+ label: "ChatGPT",
6600
+ mark: "codex",
6601
+ mode: "copy-and-open"
6602
+ }]
6603
+ }),
6604
+ /* @__PURE__ */ jsx17(AgentCommandTabs, {
6605
+ commands: [{
6606
+ command: "claude mcp add relay -- relay serve",
6607
+ id: "claude",
6608
+ label: "Claude Code",
6609
+ mark: "claudecode"
6610
+ }, {
6611
+ command: "codex mcp add relay -- relay serve",
6612
+ id: "codex",
6613
+ label: "Codex",
6614
+ mark: "codex"
6615
+ }],
6616
+ label: "Relay agent commands"
6617
+ })
6618
+ ]
6619
+ }),
6620
+ /* @__PURE__ */ jsx17(MarketingPrimitives, {
5669
6621
  heading: "Three objects cover most work.",
5670
6622
  headingId: "design-gallery-primitives-title",
5671
6623
  headingLevel: 3,
@@ -5682,27 +6634,38 @@ function DesignSystemGallery({
5682
6634
  label: "Primitives",
5683
6635
  summary: "People and agents use the same three objects, so a job you start by hand is one an agent can rerun."
5684
6636
  }),
5685
- /* @__PURE__ */ jsxs14(MarketingSection, {
6637
+ /* @__PURE__ */ jsxs15(MarketingSection, {
5686
6638
  heading: "A job keeps its name everywhere.",
6639
+ headingContent: /* @__PURE__ */ jsxs15(Fragment5, {
6640
+ children: [
6641
+ /* @__PURE__ */ jsx17(MarketingCodeBlock, {
6642
+ code: "relay run job-01"
6643
+ }),
6644
+ /* @__PURE__ */ jsx17(MarketingActionLink, {
6645
+ href: "#gallery-install",
6646
+ label: "Run your first job"
6647
+ })
6648
+ ]
6649
+ }),
5687
6650
  headingId: "gallery-marketing-section",
5688
6651
  headingLevel: 3,
5689
6652
  label: "Workflow",
5690
6653
  layout: "split-reverse",
5691
6654
  summary: "Start it from the CLI and check on it from code; both see the same job.",
5692
6655
  children: [
5693
- /* @__PURE__ */ jsx16(MarketingSectionLabel, {
6656
+ /* @__PURE__ */ jsx17(MarketingSectionLabel, {
5694
6657
  size: "body",
5695
6658
  children: "Reference"
5696
6659
  }),
5697
- /* @__PURE__ */ jsxs14("p", {
6660
+ /* @__PURE__ */ jsxs15("p", {
5698
6661
  children: [
5699
6662
  "Consumer-owned content can include ",
5700
- /* @__PURE__ */ jsx16("a", {
6663
+ /* @__PURE__ */ jsx17("a", {
5701
6664
  href: "#gallery-install",
5702
6665
  children: "links"
5703
6666
  }),
5704
6667
  " and ",
5705
- /* @__PURE__ */ jsx16("code", {
6668
+ /* @__PURE__ */ jsx17("code", {
5706
6669
  children: "inline code"
5707
6670
  }),
5708
6671
  "."
@@ -5710,7 +6673,7 @@ function DesignSystemGallery({
5710
6673
  })
5711
6674
  ]
5712
6675
  }),
5713
- /* @__PURE__ */ jsx16(MarketingInterfaceGrid, {
6676
+ /* @__PURE__ */ jsx17(MarketingInterfaceGrid, {
5714
6677
  heading: "Choose your interface.",
5715
6678
  headingId: "gallery-marketing-interfaces",
5716
6679
  headingLevel: 3,
@@ -5718,7 +6681,7 @@ function DesignSystemGallery({
5718
6681
  interfaces: [{
5719
6682
  label: "CLI",
5720
6683
  summary: "Run a named job.",
5721
- example: /* @__PURE__ */ jsx16(MarketingCodeBlock, {
6684
+ example: /* @__PURE__ */ jsx17(MarketingCodeBlock, {
5722
6685
  code: "relay run job-01"
5723
6686
  })
5724
6687
  }, {
@@ -5726,15 +6689,15 @@ function DesignSystemGallery({
5726
6689
  summary: "Use typed application code."
5727
6690
  }]
5728
6691
  }),
5729
- /* @__PURE__ */ jsx16(MarketingCardRow, {
6692
+ /* @__PURE__ */ jsx17(MarketingCardRow, {
5730
6693
  ariaLabel: "Release radar",
5731
6694
  cards: [{
5732
- art: /* @__PURE__ */ jsx16("svg", {
6695
+ art: /* @__PURE__ */ jsx17("svg", {
5733
6696
  "aria-hidden": "true",
5734
6697
  viewBox: "0 0 24 24",
5735
6698
  width: "24",
5736
6699
  height: "24",
5737
- children: /* @__PURE__ */ jsx16("circle", {
6700
+ children: /* @__PURE__ */ jsx17("circle", {
5738
6701
  cx: "12",
5739
6702
  cy: "12",
5740
6703
  r: "8"
@@ -5744,12 +6707,12 @@ function DesignSystemGallery({
5744
6707
  title: "Grok 4.7",
5745
6708
  meta: "First observed 21 September 2026."
5746
6709
  }, {
5747
- art: /* @__PURE__ */ jsx16("svg", {
6710
+ art: /* @__PURE__ */ jsx17("svg", {
5748
6711
  "aria-hidden": "true",
5749
6712
  viewBox: "0 0 24 24",
5750
6713
  width: "24",
5751
6714
  height: "24",
5752
- children: /* @__PURE__ */ jsx16("rect", {
6715
+ children: /* @__PURE__ */ jsx17("rect", {
5753
6716
  x: "4",
5754
6717
  y: "4",
5755
6718
  width: "16",
@@ -5762,7 +6725,7 @@ function DesignSystemGallery({
5762
6725
  meta: "First observed 26 August 2026. Early DeepSWE coverage on OpenRouter."
5763
6726
  }]
5764
6727
  }),
5765
- /* @__PURE__ */ jsx16(MarketingTrustBoundary, {
6728
+ /* @__PURE__ */ jsx17(MarketingTrustBoundary, {
5766
6729
  heading: "What leaves your machine.",
5767
6730
  headingId: "gallery-marketing-trust",
5768
6731
  headingLevel: 3,
@@ -5775,7 +6738,7 @@ function DesignSystemGallery({
5775
6738
  detail: "Only the logs you choose to sync."
5776
6739
  }]
5777
6740
  }),
5778
- /* @__PURE__ */ jsx16(MarketingStatStrip, {
6741
+ /* @__PURE__ */ jsx17(MarketingStatStrip, {
5779
6742
  ariaLabel: "Relay usage",
5780
6743
  columns: 3,
5781
6744
  source: "Counted from the public example repository on 5 September 2026.",
@@ -5791,7 +6754,7 @@ function DesignSystemGallery({
5791
6754
  value: "0"
5792
6755
  }]
5793
6756
  }),
5794
- /* @__PURE__ */ jsx16(MarketingDataTable, {
6757
+ /* @__PURE__ */ jsx17(MarketingDataTable, {
5795
6758
  caption: "Cold-run timing across interfaces",
5796
6759
  columns: [{
5797
6760
  label: "Interface"
@@ -5817,7 +6780,7 @@ function DesignSystemGallery({
5817
6780
  tone: "negative"
5818
6781
  }]]
5819
6782
  }),
5820
- /* @__PURE__ */ jsx16(MarketingQuoteGrid, {
6783
+ /* @__PURE__ */ jsx17(MarketingQuoteGrid, {
5821
6784
  heading: "From the people building with it.",
5822
6785
  headingId: "design-gallery-quotes-title",
5823
6786
  headingLevel: 3,
@@ -5828,7 +6791,7 @@ function DesignSystemGallery({
5828
6791
  role: "@example"
5829
6792
  }]
5830
6793
  }),
5831
- /* @__PURE__ */ jsx16(MarketingPricing, {
6794
+ /* @__PURE__ */ jsx17(MarketingPricing, {
5832
6795
  heading: "Free for local use.",
5833
6796
  headingId: "design-gallery-pricing-title",
5834
6797
  headingLevel: 3,
@@ -5857,24 +6820,24 @@ function DesignSystemGallery({
5857
6820
  summary: "Keep logs in step across your machines."
5858
6821
  }]
5859
6822
  }),
5860
- /* @__PURE__ */ jsx16(MarketingQuestionList, {
6823
+ /* @__PURE__ */ jsx17(MarketingQuestionList, {
5861
6824
  heading: "Questions before installing.",
5862
6825
  headingId: "design-gallery-questions-title",
5863
6826
  headingLevel: 3,
5864
6827
  label: "Questions",
5865
6828
  questions: [{
5866
- answer: /* @__PURE__ */ jsx16("p", {
6829
+ answer: /* @__PURE__ */ jsx17("p", {
5867
6830
  children: "No. The local workflow works without one."
5868
6831
  }),
5869
6832
  question: "Does it require an account?"
5870
6833
  }, {
5871
- answer: /* @__PURE__ */ jsx16("p", {
6834
+ answer: /* @__PURE__ */ jsx17("p", {
5872
6835
  children: "Nothing leaves your machine unless you turn on sync."
5873
6836
  }),
5874
6837
  question: "Does it phone home?"
5875
6838
  }]
5876
6839
  }),
5877
- /* @__PURE__ */ jsx16(MarketingRelated, {
6840
+ /* @__PURE__ */ jsx17(MarketingRelated, {
5878
6841
  groups: [{
5879
6842
  heading: "Sibling tools",
5880
6843
  headingId: "design-gallery-related-tools",
@@ -5903,7 +6866,7 @@ function DesignSystemGallery({
5903
6866
  label: "Related",
5904
6867
  summary: "Each is a separate release. Its card says how it works with Relay."
5905
6868
  }),
5906
- /* @__PURE__ */ jsx16(MarketingMaker, {
6869
+ /* @__PURE__ */ jsx17(MarketingMaker, {
5907
6870
  heading: "Who builds Relay",
5908
6871
  headingId: "design-gallery-maker-title",
5909
6872
  headingLevel: 3,
@@ -5913,11 +6876,11 @@ function DesignSystemGallery({
5913
6876
  href: "#marketing",
5914
6877
  label: "Personal site"
5915
6878
  }],
5916
- children: /* @__PURE__ */ jsx16("p", {
6879
+ children: /* @__PURE__ */ jsx17("p", {
5917
6880
  children: "A short, plain-words bio: who made it, what they did before, where they are, and why this product exists."
5918
6881
  })
5919
6882
  }),
5920
- /* @__PURE__ */ jsx16(MarketingCallToAction, {
6883
+ /* @__PURE__ */ jsx17(MarketingCallToAction, {
5921
6884
  actions: [{
5922
6885
  href: "#gallery-install",
5923
6886
  label: "Install Relay"
@@ -5927,46 +6890,46 @@ function DesignSystemGallery({
5927
6890
  headingId: "design-gallery-cta-title",
5928
6891
  headingLevel: 3
5929
6892
  }),
5930
- /* @__PURE__ */ jsxs14("div", {
6893
+ /* @__PURE__ */ jsxs15("div", {
5931
6894
  className: "design-gallery__foil-note",
5932
6895
  children: [
5933
- /* @__PURE__ */ jsxs14("p", {
6896
+ /* @__PURE__ */ jsxs15("p", {
5934
6897
  children: [
5935
6898
  "Metallic wordmarks and exact-shape marks share a restrained rainbow reflection. Wordmarks use",
5936
6899
  " ",
5937
- /* @__PURE__ */ jsx16("code", {
6900
+ /* @__PURE__ */ jsx17("code", {
5938
6901
  children: ".hraness-foil-text"
5939
6902
  }),
5940
6903
  ", primary calls to action use ",
5941
- /* @__PURE__ */ jsx16("code", {
6904
+ /* @__PURE__ */ jsx17("code", {
5942
6905
  children: ".hraness-foil"
5943
6906
  }),
5944
6907
  ", and ",
5945
- /* @__PURE__ */ jsx16("code", {
6908
+ /* @__PURE__ */ jsx17("code", {
5946
6909
  children: "attachFoil"
5947
6910
  }),
5948
6911
  " eases the pointer inputs on ",
5949
- /* @__PURE__ */ jsx16("code", {
6912
+ /* @__PURE__ */ jsx17("code", {
5950
6913
  children: "data-foil"
5951
6914
  }),
5952
6915
  " targets."
5953
6916
  ]
5954
6917
  }),
5955
- /* @__PURE__ */ jsxs14("p", {
6918
+ /* @__PURE__ */ jsxs15("p", {
5956
6919
  className: "design-gallery__foil-row",
5957
6920
  children: [
5958
- /* @__PURE__ */ jsxs14("a", {
6921
+ /* @__PURE__ */ jsxs15("a", {
5959
6922
  className: foilClassName("text", "design-gallery__foil-wordmark"),
5960
6923
  "data-foil": "",
5961
6924
  href: "#marketing",
5962
6925
  children: [
5963
- /* @__PURE__ */ jsx16(FoilMark, {
6926
+ /* @__PURE__ */ jsx17(FoilMark, {
5964
6927
  src: "data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='currentColor' d='M3 3h8v8H3zM13 3h8v8h-8zM3 13h8v8H3zM13 13h8v8h-8z'/%3E%3C/svg%3E"
5965
6928
  }),
5966
6929
  " Relay"
5967
6930
  ]
5968
6931
  }),
5969
- /* @__PURE__ */ jsx16("a", {
6932
+ /* @__PURE__ */ jsx17("a", {
5970
6933
  className: foilClassName("surface", "design-gallery__foil-action"),
5971
6934
  "data-foil": "",
5972
6935
  href: "#gallery-install",
@@ -5980,11 +6943,11 @@ function DesignSystemGallery({
5980
6943
  })
5981
6944
  ]
5982
6945
  }),
5983
- /* @__PURE__ */ jsxs14(MarketingPage, {
6946
+ /* @__PURE__ */ jsxs15(MarketingPage, {
5984
6947
  preset: "editorial",
5985
6948
  className: "design-gallery__marketing-preset",
5986
6949
  children: [
5987
- /* @__PURE__ */ jsx16(MarketingSiteHeader, {
6950
+ /* @__PURE__ */ jsx17(MarketingSiteHeader, {
5988
6951
  action: {
5989
6952
  href: "#gallery-install",
5990
6953
  label: "Install"
@@ -6009,8 +6972,8 @@ function DesignSystemGallery({
6009
6972
  }],
6010
6973
  sticky: false
6011
6974
  }),
6012
- /* @__PURE__ */ jsx16(MarketingField, {
6013
- children: /* @__PURE__ */ jsx16(ProductHero, {
6975
+ /* @__PURE__ */ jsx17(MarketingField, {
6976
+ children: /* @__PURE__ */ jsx17(ProductHero, {
6014
6977
  actions: [{
6015
6978
  href: "#gallery-install",
6016
6979
  label: "Install Relay"
@@ -6022,9 +6985,9 @@ function DesignSystemGallery({
6022
6985
  align: "start",
6023
6986
  boundary: "MIT license · macOS and Linux · free for local use",
6024
6987
  eyebrow: "Job runner",
6025
- frame: /* @__PURE__ */ jsx16(MarketingProofFrame, {
6988
+ frame: /* @__PURE__ */ jsx17(MarketingProofFrame, {
6026
6989
  title: "relay run job-01",
6027
- children: /* @__PURE__ */ jsx16(MarketingCodeBlock, {
6990
+ children: /* @__PURE__ */ jsx17(MarketingCodeBlock, {
6028
6991
  className: "design-gallery__marketing-command",
6029
6992
  code: `$ relay run job-01
6030
6993
  {"status":"complete","job":"job-01","durationMs":412}`
@@ -6037,19 +7000,19 @@ function DesignSystemGallery({
6037
7000
  summary: "The editorial preset sets one large sans heading on the flat palette background, a short summary, one next step, and one real proof."
6038
7001
  })
6039
7002
  }),
6040
- /* @__PURE__ */ jsx16(MarketingSection, {
7003
+ /* @__PURE__ */ jsx17(MarketingSection, {
6041
7004
  heading: "Keep every limit next to what it limits.",
6042
7005
  headingId: "gallery-quiet-limits",
6043
7006
  headingLevel: 3,
6044
7007
  label: "Limits",
6045
7008
  summary: "Sections sit between hairline rules, each with one short paragraph and one concrete element.",
6046
- children: /* @__PURE__ */ jsxs14("ol", {
7009
+ children: /* @__PURE__ */ jsxs15("ol", {
6047
7010
  className: "design-gallery__quiet-steps",
6048
7011
  children: [
6049
- /* @__PURE__ */ jsx16("li", {
7012
+ /* @__PURE__ */ jsx17("li", {
6050
7013
  children: "Local jobs only; sync is a separate plan."
6051
7014
  }),
6052
- /* @__PURE__ */ jsx16("li", {
7015
+ /* @__PURE__ */ jsx17("li", {
6053
7016
  children: "Logs older than 30 days are pruned unless pinned."
6054
7017
  })
6055
7018
  ]
@@ -6057,28 +7020,28 @@ function DesignSystemGallery({
6057
7020
  })
6058
7021
  ]
6059
7022
  }),
6060
- /* @__PURE__ */ jsxs14(MarketingPage, {
7023
+ /* @__PURE__ */ jsxs15(MarketingPage, {
6061
7024
  preset: "minimal",
6062
7025
  className: "design-gallery__marketing-preset",
6063
7026
  children: [
6064
- /* @__PURE__ */ jsx16(MarketingSiteHeader, {
7027
+ /* @__PURE__ */ jsx17(MarketingSiteHeader, {
6065
7028
  brand: "Relay",
6066
7029
  brandHref: "#marketing",
6067
7030
  links: [],
6068
7031
  sticky: false
6069
7032
  }),
6070
- /* @__PURE__ */ jsx16(ProductHero, {
7033
+ /* @__PURE__ */ jsx17(ProductHero, {
6071
7034
  name: "Relay",
6072
7035
  heading: "A quieter public page.",
6073
7036
  headingId: "gallery-minimal-title",
6074
7037
  headingLevel: 3,
6075
7038
  summary: "The same shared system, with compact sans headings and a plain surface."
6076
7039
  }),
6077
- /* @__PURE__ */ jsx16(MarketingSiteFooter, {
6078
- brand: /* @__PURE__ */ jsx16("svg", {
7040
+ /* @__PURE__ */ jsx17(MarketingSiteFooter, {
7041
+ brand: /* @__PURE__ */ jsx17("svg", {
6079
7042
  "aria-hidden": "true",
6080
7043
  viewBox: "0 0 24 24",
6081
- children: /* @__PURE__ */ jsx16("path", {
7044
+ children: /* @__PURE__ */ jsx17("path", {
6082
7045
  d: "M4 4h16v16H4z",
6083
7046
  fill: "currentColor"
6084
7047
  })
@@ -6095,15 +7058,15 @@ function DesignSystemGallery({
6095
7058
  })
6096
7059
  ]
6097
7060
  }),
6098
- /* @__PURE__ */ jsxs14("section", {
7061
+ /* @__PURE__ */ jsxs15("section", {
6099
7062
  className: "design-gallery__section",
6100
7063
  id: "articles",
6101
7064
  children: [
6102
- /* @__PURE__ */ jsx16("h2", {
7065
+ /* @__PURE__ */ jsx17("h2", {
6103
7066
  children: "Article layer"
6104
7067
  }),
6105
- /* @__PURE__ */ jsxs14(MarketingArticle, {
6106
- after: /* @__PURE__ */ jsx16(ArticleSources, {
7068
+ /* @__PURE__ */ jsxs15(MarketingArticle, {
7069
+ after: /* @__PURE__ */ jsx17(ArticleSources, {
6107
7070
  headingId: "gallery-article-sources",
6108
7071
  sources: [{
6109
7072
  checkedOn: "2026-09-20",
@@ -6137,76 +7100,76 @@ function DesignSystemGallery({
6137
7100
  }],
6138
7101
  updated: "2026-09-20",
6139
7102
  children: [
6140
- /* @__PURE__ */ jsx16("h2", {
7103
+ /* @__PURE__ */ jsx17("h2", {
6141
7104
  id: "gallery-article-problem",
6142
7105
  children: "The problem"
6143
7106
  }),
6144
- /* @__PURE__ */ jsx16("p", {
7107
+ /* @__PURE__ */ jsx17("p", {
6145
7108
  children: "A provider signs the exact request body. Parsing the JSON and serializing it again changes whitespace and key order, and the signature check then fails on every retry."
6146
7109
  }),
6147
- /* @__PURE__ */ jsx16(ArticleCallout, {
7110
+ /* @__PURE__ */ jsx17(ArticleCallout, {
6148
7111
  label: "Limit",
6149
7112
  tone: "limit",
6150
7113
  children: "This applies to providers that sign the raw body. Header-only schemes need no stored copy."
6151
7114
  }),
6152
- /* @__PURE__ */ jsx16("h2", {
7115
+ /* @__PURE__ */ jsx17("h2", {
6153
7116
  id: "gallery-article-approach",
6154
7117
  children: "The approach"
6155
7118
  }),
6156
- /* @__PURE__ */ jsx16("p", {
7119
+ /* @__PURE__ */ jsx17("p", {
6157
7120
  children: "Store the body as bytes next to the parsed event, and send those bytes on replay."
6158
7121
  }),
6159
- /* @__PURE__ */ jsx16("pre", {
6160
- children: /* @__PURE__ */ jsx16("code", {
7122
+ /* @__PURE__ */ jsx17("pre", {
7123
+ children: /* @__PURE__ */ jsx17("code", {
6161
7124
  children: "await replay(event.id, { body: stored.raw });"
6162
7125
  })
6163
7126
  }),
6164
- /* @__PURE__ */ jsxs14("figure", {
7127
+ /* @__PURE__ */ jsxs15("figure", {
6165
7128
  children: [
6166
- /* @__PURE__ */ jsxs14("table", {
7129
+ /* @__PURE__ */ jsxs15("table", {
6167
7130
  children: [
6168
- /* @__PURE__ */ jsx16("thead", {
6169
- children: /* @__PURE__ */ jsxs14("tr", {
7131
+ /* @__PURE__ */ jsx17("thead", {
7132
+ children: /* @__PURE__ */ jsxs15("tr", {
6170
7133
  children: [
6171
- /* @__PURE__ */ jsx16("th", {
7134
+ /* @__PURE__ */ jsx17("th", {
6172
7135
  scope: "col",
6173
7136
  children: "Step"
6174
7137
  }),
6175
- /* @__PURE__ */ jsx16("th", {
7138
+ /* @__PURE__ */ jsx17("th", {
6176
7139
  scope: "col",
6177
7140
  children: "Stored"
6178
7141
  }),
6179
- /* @__PURE__ */ jsx16("th", {
7142
+ /* @__PURE__ */ jsx17("th", {
6180
7143
  scope: "col",
6181
7144
  children: "Sent on replay"
6182
7145
  })
6183
7146
  ]
6184
7147
  })
6185
7148
  }),
6186
- /* @__PURE__ */ jsxs14("tbody", {
7149
+ /* @__PURE__ */ jsxs15("tbody", {
6187
7150
  children: [
6188
- /* @__PURE__ */ jsxs14("tr", {
7151
+ /* @__PURE__ */ jsxs15("tr", {
6189
7152
  children: [
6190
- /* @__PURE__ */ jsx16("td", {
7153
+ /* @__PURE__ */ jsx17("td", {
6191
7154
  children: "Receive"
6192
7155
  }),
6193
- /* @__PURE__ */ jsx16("td", {
7156
+ /* @__PURE__ */ jsx17("td", {
6194
7157
  children: "Raw body and headers"
6195
7158
  }),
6196
- /* @__PURE__ */ jsx16("td", {
7159
+ /* @__PURE__ */ jsx17("td", {
6197
7160
  children: "Nothing"
6198
7161
  })
6199
7162
  ]
6200
7163
  }),
6201
- /* @__PURE__ */ jsxs14("tr", {
7164
+ /* @__PURE__ */ jsxs15("tr", {
6202
7165
  children: [
6203
- /* @__PURE__ */ jsx16("td", {
7166
+ /* @__PURE__ */ jsx17("td", {
6204
7167
  children: "Retry"
6205
7168
  }),
6206
- /* @__PURE__ */ jsx16("td", {
7169
+ /* @__PURE__ */ jsx17("td", {
6207
7170
  children: "Attempt count"
6208
7171
  }),
6209
- /* @__PURE__ */ jsx16("td", {
7172
+ /* @__PURE__ */ jsx17("td", {
6210
7173
  children: "The stored raw body"
6211
7174
  })
6212
7175
  ]
@@ -6215,14 +7178,14 @@ function DesignSystemGallery({
6215
7178
  })
6216
7179
  ]
6217
7180
  }),
6218
- /* @__PURE__ */ jsx16("figcaption", {
7181
+ /* @__PURE__ */ jsx17("figcaption", {
6219
7182
  children: "What Relay keeps for each delivery, and what a replay sends."
6220
7183
  })
6221
7184
  ]
6222
7185
  })
6223
7186
  ]
6224
7187
  }),
6225
- /* @__PURE__ */ jsx16(ArticleIndex, {
7188
+ /* @__PURE__ */ jsx17(ArticleIndex, {
6226
7189
  heading: "Recent writing",
6227
7190
  headingId: "gallery-article-index",
6228
7191
  headingLevel: 3,
@@ -6241,38 +7204,38 @@ function DesignSystemGallery({
6241
7204
  title: "Relay 2.4 adds per-endpoint retry limits"
6242
7205
  }]
6243
7206
  }),
6244
- /* @__PURE__ */ jsxs14("div", {
7207
+ /* @__PURE__ */ jsxs15("div", {
6245
7208
  className: "hraness-prose",
6246
7209
  children: [
6247
- /* @__PURE__ */ jsx16("h3", {
7210
+ /* @__PURE__ */ jsx17("h3", {
6248
7211
  children: "Shared reading scale"
6249
7212
  }),
6250
- /* @__PURE__ */ jsx16("p", {
7213
+ /* @__PURE__ */ jsx17("p", {
6251
7214
  children: 'The `.hraness-prose` grammar carries the shared `--hraness-type-*` scale to docs and guide surfaces that do not run the publication shell. Headings step up on wide windows and a serif face opts in with `data-hraness-reading-face="serif"`.'
6252
7215
  }),
6253
- /* @__PURE__ */ jsx16("h4", {
7216
+ /* @__PURE__ */ jsx17("h4", {
6254
7217
  children: "Section spacing"
6255
7218
  }),
6256
- /* @__PURE__ */ jsx16("p", {
7219
+ /* @__PURE__ */ jsx17("p", {
6257
7220
  children: "Sections separate on the shared space token; subsections tighten to the subsection space and small heads keep the text face."
6258
7221
  })
6259
7222
  ]
6260
7223
  })
6261
7224
  ]
6262
7225
  }),
6263
- /* @__PURE__ */ jsxs14("section", {
7226
+ /* @__PURE__ */ jsxs15("section", {
6264
7227
  className: "design-gallery__section",
6265
7228
  id: "status-pages",
6266
7229
  children: [
6267
- /* @__PURE__ */ jsx16("h2", {
7230
+ /* @__PURE__ */ jsx17("h2", {
6268
7231
  children: "Status pages"
6269
7232
  }),
6270
- /* @__PURE__ */ jsx16("p", {
7233
+ /* @__PURE__ */ jsx17("p", {
6271
7234
  children: "One page for missing addresses and recoverable errors. It leads with the product's main action, offers the closest known page for a mistyped link, and lists at most three places to start. Move the pointer over the glyph, or click it."
6272
7235
  }),
6273
- /* @__PURE__ */ jsx16(ViewportFrame, {
7236
+ /* @__PURE__ */ jsx17(ViewportFrame, {
6274
7237
  className: "design-gallery__status-preview",
6275
- children: /* @__PURE__ */ jsx16(StatusPage, {
7238
+ children: /* @__PURE__ */ jsx17(StatusPage, {
6276
7239
  agentIndexHref: "/llms.txt",
6277
7240
  canvasAs: "div",
6278
7241
  next: [{
@@ -6298,18 +7261,18 @@ function DesignSystemGallery({
6298
7261
  })
6299
7262
  ]
6300
7263
  }),
6301
- /* @__PURE__ */ jsxs14("section", {
7264
+ /* @__PURE__ */ jsxs15("section", {
6302
7265
  className: "design-gallery__section",
6303
7266
  id: "shells",
6304
7267
  children: [
6305
- /* @__PURE__ */ jsx16("h2", {
7268
+ /* @__PURE__ */ jsx17("h2", {
6306
7269
  children: "Site shell"
6307
7270
  }),
6308
- /* @__PURE__ */ jsx16("p", {
7271
+ /* @__PURE__ */ jsx17("p", {
6309
7272
  children: "The main content fills available height so the footer follows short and long pages."
6310
7273
  }),
6311
- /* @__PURE__ */ jsx16("pre", {
6312
- children: /* @__PURE__ */ jsx16("code", {
7274
+ /* @__PURE__ */ jsx17("pre", {
7275
+ children: /* @__PURE__ */ jsx17("code", {
6313
7276
  children: `<body class="hraness-site-shell">
6314
7277
  <header>Project</header>
6315
7278
  <main>Payment complete</main>
@@ -6317,45 +7280,45 @@ function DesignSystemGallery({
6317
7280
  </body>`
6318
7281
  })
6319
7282
  }),
6320
- /* @__PURE__ */ jsx16("h2", {
7283
+ /* @__PURE__ */ jsx17("h2", {
6321
7284
  children: "Application shells"
6322
7285
  }),
6323
- /* @__PURE__ */ jsx16(ViewportFrame, {
7286
+ /* @__PURE__ */ jsx17(ViewportFrame, {
6324
7287
  className: "design-gallery__shell-preview",
6325
- children: /* @__PURE__ */ jsx16(AppShell, {
6326
- bottomBar: /* @__PURE__ */ jsx16(BottomBar, {
6327
- actions: /* @__PURE__ */ jsx16("span", {
7288
+ children: /* @__PURE__ */ jsx17(AppShell, {
7289
+ bottomBar: /* @__PURE__ */ jsx17(BottomBar, {
7290
+ actions: /* @__PURE__ */ jsx17("span", {
6328
7291
  children: "Synced"
6329
7292
  }),
6330
7293
  "data-gallery-layout-bottom-bar": "",
6331
- leading: /* @__PURE__ */ jsx16("span", {
7294
+ leading: /* @__PURE__ */ jsx17("span", {
6332
7295
  children: "Ready"
6333
7296
  }),
6334
7297
  children: "Reference footer"
6335
7298
  }),
6336
7299
  navigationKey: "gallery",
6337
- rail: /* @__PURE__ */ jsx16(NavigationRail, {
6338
- children: /* @__PURE__ */ jsxs14(RailSection, {
7300
+ rail: /* @__PURE__ */ jsx17(NavigationRail, {
7301
+ children: /* @__PURE__ */ jsxs15(RailSection, {
6339
7302
  title: "Workspace",
6340
7303
  children: [
6341
- /* @__PURE__ */ jsx16(RailItem, {
7304
+ /* @__PURE__ */ jsx17(RailItem, {
6342
7305
  href: "#foundation",
6343
- icon: /* @__PURE__ */ jsx16(Icon3, {
7306
+ icon: /* @__PURE__ */ jsx17(Icon3, {
6344
7307
  icon: DashboardSquare01Icon
6345
7308
  }),
6346
7309
  isActive: true,
6347
7310
  label: "Overview"
6348
7311
  }),
6349
- /* @__PURE__ */ jsx16(RailItem, {
7312
+ /* @__PURE__ */ jsx17(RailItem, {
6350
7313
  href: "#data",
6351
- icon: /* @__PURE__ */ jsx16(Icon3, {
7314
+ icon: /* @__PURE__ */ jsx17(Icon3, {
6352
7315
  icon: Chart01Icon
6353
7316
  }),
6354
7317
  label: "Data"
6355
7318
  }),
6356
- /* @__PURE__ */ jsx16(RailItem, {
7319
+ /* @__PURE__ */ jsx17(RailItem, {
6357
7320
  href: "#syntax",
6358
- icon: /* @__PURE__ */ jsx16(Icon3, {
7321
+ icon: /* @__PURE__ */ jsx17(Icon3, {
6359
7322
  icon: CodeIcon
6360
7323
  }),
6361
7324
  label: "Syntax"
@@ -6363,29 +7326,29 @@ function DesignSystemGallery({
6363
7326
  ]
6364
7327
  })
6365
7328
  }),
6366
- topBar: /* @__PURE__ */ jsx16(TopBar, {
7329
+ topBar: /* @__PURE__ */ jsx17(TopBar, {
6367
7330
  "data-gallery-layout-top-bar": "",
6368
7331
  title: "Reference workspace"
6369
7332
  }),
6370
- children: /* @__PURE__ */ jsx16(PageCanvas, {
7333
+ children: /* @__PURE__ */ jsx17(PageCanvas, {
6371
7334
  as: "div",
6372
7335
  "data-gallery-layout-page-canvas": "",
6373
- children: /* @__PURE__ */ jsx16(AnimatedRailStage, {
7336
+ children: /* @__PURE__ */ jsx17(AnimatedRailStage, {
6374
7337
  className: "design-gallery__animated-rail-stage",
6375
7338
  stageKey: density,
6376
- children: /* @__PURE__ */ jsxs14(DitherSurface, {
7339
+ children: /* @__PURE__ */ jsxs15(DitherSurface, {
6377
7340
  as: "section",
6378
7341
  "data-gallery-dither": "",
6379
7342
  density: density === "compact" ? "fine" : "medium",
6380
7343
  tone: "card",
6381
7344
  children: [
6382
- /* @__PURE__ */ jsxs14("h3", {
7345
+ /* @__PURE__ */ jsxs15("h3", {
6383
7346
  children: [
6384
7347
  density === "compact" ? "Compact" : "Default",
6385
7348
  " composition"
6386
7349
  ]
6387
7350
  }),
6388
- /* @__PURE__ */ jsx16("p", {
7351
+ /* @__PURE__ */ jsx17("p", {
6389
7352
  children: "The route body changes while persistent navigation remains in place."
6390
7353
  })
6391
7354
  ]
@@ -6394,14 +7357,14 @@ function DesignSystemGallery({
6394
7357
  })
6395
7358
  })
6396
7359
  }),
6397
- /* @__PURE__ */ jsxs14("div", {
7360
+ /* @__PURE__ */ jsxs15("div", {
6398
7361
  className: "design-gallery__docked-footer-preview",
6399
7362
  "data-gallery-layout-docked-frame": "",
6400
7363
  children: [
6401
- /* @__PURE__ */ jsx16("p", {
7364
+ /* @__PURE__ */ jsx17("p", {
6402
7365
  children: "Docked commands remain inside their positioning owner."
6403
7366
  }),
6404
- /* @__PURE__ */ jsx16(DockedFooter, {
7367
+ /* @__PURE__ */ jsx17(DockedFooter, {
6405
7368
  "data-gallery-layout-docked-footer": "",
6406
7369
  density: "compact",
6407
7370
  position: "absolute",
@@ -6411,34 +7374,34 @@ function DesignSystemGallery({
6411
7374
  })
6412
7375
  ]
6413
7376
  }),
6414
- /* @__PURE__ */ jsxs14("section", {
7377
+ /* @__PURE__ */ jsxs15("section", {
6415
7378
  className: "design-gallery__section",
6416
7379
  id: "data",
6417
7380
  children: [
6418
- /* @__PURE__ */ jsx16("h2", {
7381
+ /* @__PURE__ */ jsx17("h2", {
6419
7382
  children: "Data and instrument compositions"
6420
7383
  }),
6421
- /* @__PURE__ */ jsxs14("div", {
7384
+ /* @__PURE__ */ jsxs15("div", {
6422
7385
  className: "design-gallery__grid",
6423
7386
  children: [
6424
- /* @__PURE__ */ jsx16(BarListChart, {
7387
+ /* @__PURE__ */ jsx17(BarListChart, {
6425
7388
  "aria-label": "Example request volume",
6426
7389
  data: barData
6427
7390
  }),
6428
- /* @__PURE__ */ jsx16(RangePlotChart, {
7391
+ /* @__PURE__ */ jsx17(RangePlotChart, {
6429
7392
  "aria-label": "Example regional ranges",
6430
7393
  data: rangeData
6431
7394
  }),
6432
- /* @__PURE__ */ jsxs14("div", {
7395
+ /* @__PURE__ */ jsxs15("div", {
6433
7396
  className: "design-gallery__instrument",
6434
7397
  children: [
6435
- /* @__PURE__ */ jsx16(Fader, {
7398
+ /* @__PURE__ */ jsx17(Fader, {
6436
7399
  "aria-label": "Example level",
6437
7400
  className: "design-gallery__vertical-fader",
6438
7401
  "data-gallery-fader": "vertical",
6439
7402
  density: "default",
6440
7403
  label: "Level",
6441
- labelAccessory: /* @__PURE__ */ jsx16("span", {
7404
+ labelAccessory: /* @__PURE__ */ jsx17("span", {
6442
7405
  "data-gallery-fader-accessory": "",
6443
7406
  children: "dB"
6444
7407
  }),
@@ -6449,7 +7412,7 @@ function DesignSystemGallery({
6449
7412
  showOutput: true,
6450
7413
  value: faderValue
6451
7414
  }),
6452
- /* @__PURE__ */ jsx16(Fader, {
7415
+ /* @__PURE__ */ jsx17(Fader, {
6453
7416
  "aria-label": "Example horizontal level",
6454
7417
  className: "design-gallery__horizontal-fader",
6455
7418
  "data-gallery-fader": "horizontal",
@@ -6463,13 +7426,13 @@ function DesignSystemGallery({
6463
7426
  showOutput: true,
6464
7427
  value: faderValue
6465
7428
  }),
6466
- /* @__PURE__ */ jsx16(Slider, {
7429
+ /* @__PURE__ */ jsx17(Slider, {
6467
7430
  label: "Balance",
6468
7431
  maxValue: 100,
6469
7432
  minValue: 0,
6470
7433
  value: 50
6471
7434
  }),
6472
- /* @__PURE__ */ jsx16(PlaybackTransport, {
7435
+ /* @__PURE__ */ jsx17(PlaybackTransport, {
6473
7436
  "aria-label": "Preview transport",
6474
7437
  buttonAriaKeyShortcuts: "Space",
6475
7438
  buttonId: "design-gallery-playback-command",
@@ -6482,23 +7445,23 @@ function DesignSystemGallery({
6482
7445
  })
6483
7446
  ]
6484
7447
  }),
6485
- /* @__PURE__ */ jsxs14("div", {
7448
+ /* @__PURE__ */ jsxs15("div", {
6486
7449
  className: "design-gallery__chat",
6487
7450
  "data-gallery-chat": "",
6488
7451
  "data-gallery-chat-submission": chatSubmission,
6489
7452
  children: [
6490
- /* @__PURE__ */ jsx16(ChatMessage, {
6491
- actions: /* @__PURE__ */ jsx16(Button3, {
7453
+ /* @__PURE__ */ jsx17(ChatMessage, {
7454
+ actions: /* @__PURE__ */ jsx17(Button3, {
6492
7455
  variant: "quiet",
6493
7456
  children: "Copy response"
6494
7457
  }),
6495
- avatar: /* @__PURE__ */ jsx16("span", {
7458
+ avatar: /* @__PURE__ */ jsx17("span", {
6496
7459
  "aria-hidden": "true",
6497
7460
  className: "design-gallery__chat-avatar",
6498
7461
  children: "AI"
6499
7462
  }),
6500
7463
  className: "design-gallery__chat-message",
6501
- meta: /* @__PURE__ */ jsx16(RelativeTime, {
7464
+ meta: /* @__PURE__ */ jsx17(RelativeTime, {
6502
7465
  locale: "en-US",
6503
7466
  now: designGalleryRelativeTimeNow,
6504
7467
  refreshInterval: "off",
@@ -6506,17 +7469,17 @@ function DesignSystemGallery({
6506
7469
  }),
6507
7470
  name: "Assistant",
6508
7471
  role: "assistant",
6509
- children: /* @__PURE__ */ jsx16("p", {
7472
+ children: /* @__PURE__ */ jsx17("p", {
6510
7473
  children: "A complete message keeps its ordinary article and slot semantics."
6511
7474
  })
6512
7475
  }),
6513
- /* @__PURE__ */ jsx16(ChatMessage, {
7476
+ /* @__PURE__ */ jsx17(ChatMessage, {
6514
7477
  role: "user",
6515
- children: /* @__PURE__ */ jsx16("p", {
7478
+ children: /* @__PURE__ */ jsx17("p", {
6516
7479
  children: "Responsive composition belongs to the extracted package recipe."
6517
7480
  })
6518
7481
  }),
6519
- /* @__PURE__ */ jsx16(ChatComposer, {
7482
+ /* @__PURE__ */ jsx17(ChatComposer, {
6520
7483
  action: "/gallery-chat-submit",
6521
7484
  "aria-label": "Gallery message composer",
6522
7485
  className: "design-gallery__chat-composer",
@@ -6531,15 +7494,15 @@ function DesignSystemGallery({
6531
7494
  })
6532
7495
  ]
6533
7496
  }),
6534
- /* @__PURE__ */ jsx16("ul", {
7497
+ /* @__PURE__ */ jsx17("ul", {
6535
7498
  "aria-label": "Relative time examples",
6536
7499
  className: "design-gallery__relative-times",
6537
7500
  "data-gallery-relative-time": "",
6538
7501
  children: relativeTimeExamples.map(({
6539
7502
  id,
6540
7503
  value
6541
- }) => /* @__PURE__ */ jsx16("li", {
6542
- children: /* @__PURE__ */ jsx16(RelativeTime, {
7504
+ }) => /* @__PURE__ */ jsx17("li", {
7505
+ children: /* @__PURE__ */ jsx17(RelativeTime, {
6543
7506
  "data-gallery-relative-time-example": id,
6544
7507
  locale: "en-US",
6545
7508
  now: designGalleryRelativeTimeNow,
@@ -6550,36 +7513,36 @@ function DesignSystemGallery({
6550
7513
  })
6551
7514
  ]
6552
7515
  }),
6553
- /* @__PURE__ */ jsxs14("section", {
7516
+ /* @__PURE__ */ jsxs15("section", {
6554
7517
  className: "design-gallery__section",
6555
7518
  id: "effects",
6556
7519
  children: [
6557
- /* @__PURE__ */ jsx16("h2", {
7520
+ /* @__PURE__ */ jsx17("h2", {
6558
7521
  children: "Decorative effects"
6559
7522
  }),
6560
- /* @__PURE__ */ jsx16(FoilCardDeck, {
7523
+ /* @__PURE__ */ jsx17(FoilCardDeck, {
6561
7524
  "aria-label": "Delegated foil ornament examples",
6562
7525
  className: "design-gallery__foil-deck",
6563
- children: foilDeckExamples.map((example) => /* @__PURE__ */ jsx16(FoilCardSurface, {
7526
+ children: foilDeckExamples.map((example) => /* @__PURE__ */ jsx17(FoilCardSurface, {
6564
7527
  className: "design-gallery__foil-example",
6565
7528
  intensity: "standard",
6566
7529
  ornament: example.ornament,
6567
7530
  preset: example.preset,
6568
7531
  renderMode: "interactive",
6569
7532
  seed: `public-gallery-foil-${example.ornament}`,
6570
- children: /* @__PURE__ */ jsxs14("article", {
7533
+ children: /* @__PURE__ */ jsxs15("article", {
6571
7534
  className: "design-gallery__foil-card",
6572
7535
  children: [
6573
- /* @__PURE__ */ jsx16(Tag, {
7536
+ /* @__PURE__ */ jsx17(Tag, {
6574
7537
  variant: "outline",
6575
7538
  children: example.label
6576
7539
  }),
6577
- /* @__PURE__ */ jsxs14("div", {
7540
+ /* @__PURE__ */ jsxs15("div", {
6578
7541
  children: [
6579
- /* @__PURE__ */ jsx16("h3", {
7542
+ /* @__PURE__ */ jsx17("h3", {
6580
7543
  children: "Semantic card content"
6581
7544
  }),
6582
- /* @__PURE__ */ jsx16("p", {
7545
+ /* @__PURE__ */ jsx17("p", {
6583
7546
  children: "One deck controller decorates ordinary articles."
6584
7547
  })
6585
7548
  ]
@@ -6588,21 +7551,21 @@ function DesignSystemGallery({
6588
7551
  })
6589
7552
  }, example.ornament))
6590
7553
  }),
6591
- /* @__PURE__ */ jsxs14("div", {
7554
+ /* @__PURE__ */ jsxs15("div", {
6592
7555
  className: "design-gallery__effect",
6593
7556
  children: [
6594
- /* @__PURE__ */ jsx16(AuroraDotsBackground, {}),
6595
- /* @__PURE__ */ jsx16(ProceduralBackdrop, {
7557
+ /* @__PURE__ */ jsx17(AuroraDotsBackground, {}),
7558
+ /* @__PURE__ */ jsx17(ProceduralBackdrop, {
6596
7559
  seed: "public-gallery",
6597
7560
  variant: "composite"
6598
7561
  }),
6599
- /* @__PURE__ */ jsxs14("div", {
7562
+ /* @__PURE__ */ jsxs15("div", {
6600
7563
  className: "design-gallery__effect-copy",
6601
7564
  children: [
6602
- /* @__PURE__ */ jsx16("h3", {
7565
+ /* @__PURE__ */ jsx17("h3", {
6603
7566
  children: "Semantic content stays ordinary DOM"
6604
7567
  }),
6605
- /* @__PURE__ */ jsx16("p", {
7568
+ /* @__PURE__ */ jsx17("p", {
6606
7569
  children: "Decorative paint is pointer-transparent and removable in forced colors. Marketing actions use system button colors so their labels stay readable."
6607
7570
  })
6608
7571
  ]
@@ -6611,16 +7574,16 @@ function DesignSystemGallery({
6611
7574
  })
6612
7575
  ]
6613
7576
  }),
6614
- /* @__PURE__ */ jsxs14("section", {
7577
+ /* @__PURE__ */ jsxs15("section", {
6615
7578
  className: "design-gallery__section",
6616
7579
  id: "syntax",
6617
7580
  children: [
6618
- /* @__PURE__ */ jsx16("h2", {
7581
+ /* @__PURE__ */ jsx17("h2", {
6619
7582
  children: "Server syntax"
6620
7583
  }),
6621
- /* @__PURE__ */ jsx16("pre", {
7584
+ /* @__PURE__ */ jsx17("pre", {
6622
7585
  className: "design-gallery__syntax",
6623
- children: /* @__PURE__ */ jsx16(SyntaxCode, {
7586
+ children: /* @__PURE__ */ jsx17(SyntaxCode, {
6624
7587
  code: `import { AppShell } from "@hraness/design-kit/react";
6625
7588
 
6626
7589
  export const shell = <AppShell rail={null}>Content</AppShell>;`,
@@ -6633,7 +7596,7 @@ export const shell = <AppShell rail={null}>Content</AppShell>;`,
6633
7596
  });
6634
7597
  }
6635
7598
  // src/react/haptics.ts
6636
- import { useCallback as useCallback2, useEffect as useEffect8 } from "react";
7599
+ import { useCallback as useCallback3, useEffect as useEffect9 } from "react";
6637
7600
  var HAPTIC_FEEDBACK_EVENT_NAME = "hraness-design:haptic-feedback";
6638
7601
  function isHapticBrowserEnvironment(environment = globalThis) {
6639
7602
  return typeof environment.window === "object" && typeof environment.document === "object" && typeof environment.navigator === "object";
@@ -6771,14 +7734,14 @@ function disposeHapticFeedback() {
6771
7734
  browserHaptics.dispose();
6772
7735
  }
6773
7736
  function useHapticFeedback(enabled = true) {
6774
- useEffect8(() => {
7737
+ useEffect9(() => {
6775
7738
  if (enabled)
6776
7739
  prepareHapticFeedback();
6777
7740
  }, [enabled]);
6778
- return useCallback2(async (feedback = "press") => enabled ? await triggerHapticFeedback(feedback) : false, [enabled]);
7741
+ return useCallback3(async (feedback = "press") => enabled ? await triggerHapticFeedback(feedback) : false, [enabled]);
6779
7742
  }
6780
7743
  // src/react/keyboard-shortcuts.ts
6781
- import { useEffect as useEffect9, useRef as useRef6 } from "react";
7744
+ import { useEffect as useEffect10, useRef as useRef7 } from "react";
6782
7745
  var interactiveTargetSelector = ["a[href]", "area[href]", "button", "input", "select", "summary", "textarea", "[contenteditable]:not([contenteditable='false'])", "[role='button']", "[role='checkbox']", "[role='combobox']", "[role='gridcell']", "[role='link']", "[role='menuitem']", "[role='option']", "[role='radio']", "[role='slider']", "[role='spinbutton']", "[role='switch']", "[role='tab']", "[role='textbox']", "[tabindex]:not([tabindex='-1'])"].join(",");
6783
7746
  var textEntryTargetSelector = ["input:not([type='button']):not([type='checkbox']):not([type='color']):not([type='file']):not([type='hidden']):not([type='image']):not([type='radio']):not([type='range']):not([type='reset']):not([type='submit'])", "select", "textarea", "[contenteditable]:not([contenteditable='false'])", "[role='combobox']", "[role='textbox']"].join(",");
6784
7747
  function hasClosest(target) {
@@ -6859,7 +7822,7 @@ function isNode2(target) {
6859
7822
  return target !== null && typeof Node !== "undefined" && target instanceof Node;
6860
7823
  }
6861
7824
  function useKeyboardShortcuts(bindings, options = {}) {
6862
- const latestRef = useRef6({
7825
+ const latestRef = useRef7({
6863
7826
  bindings,
6864
7827
  isDisabled: options.isDisabled ?? false
6865
7828
  });
@@ -6868,7 +7831,7 @@ function useKeyboardShortcuts(bindings, options = {}) {
6868
7831
  isDisabled: options.isDisabled ?? false
6869
7832
  };
6870
7833
  const scopeRef = options.scopeRef;
6871
- useEffect9(() => {
7834
+ useEffect10(() => {
6872
7835
  const onKeyDown = (event) => {
6873
7836
  if (scopeRef !== undefined) {
6874
7837
  const scope = scopeRef.current;
@@ -6892,7 +7855,7 @@ function useKeyboardShortcuts(bindings, options = {}) {
6892
7855
  }, [scopeRef]);
6893
7856
  }
6894
7857
  // src/react/sticky-offset.tsx
6895
- import { useEffect as useEffect10 } from "react";
7858
+ import { useEffect as useEffect11 } from "react";
6896
7859
 
6897
7860
  // src/browser/sticky-offset.ts
6898
7861
  var stickyOffsetCustomProperty = "--hraness-sticky-offset";
@@ -6962,14 +7925,14 @@ function syncStickyOffset(options = {}) {
6962
7925
  function StickyOffsetSync({
6963
7926
  header
6964
7927
  } = {}) {
6965
- useEffect10(() => syncStickyOffset(header === undefined ? {} : {
7928
+ useEffect11(() => syncStickyOffset(header === undefined ? {} : {
6966
7929
  header
6967
7930
  }), [header]);
6968
7931
  return null;
6969
7932
  }
6970
7933
  // src/react/social-kit-panel.tsx
6971
- import { useCallback as useCallback3, useId as useId4, useState as useState6 } from "react";
6972
- import { jsx as jsx17, jsxs as jsxs15 } from "react/jsx-runtime";
7934
+ import { useCallback as useCallback4, useId as useId5, useState as useState7 } from "react";
7935
+ import { jsx as jsx18, jsxs as jsxs16 } from "react/jsx-runtime";
6973
7936
  function kitEntries(kit) {
6974
7937
  const thread = (channel, label, posts, measure, limit) => posts.map((text, index) => ({
6975
7938
  key: `${channel}.${index}`,
@@ -7011,39 +7974,39 @@ function SocialKitPanel({
7011
7974
  kit,
7012
7975
  summary = "Social posts for this launch"
7013
7976
  }) {
7014
- const id = useId4();
7015
- const [status, setStatus] = useState6(null);
7016
- const copy = useCallback3(async (entry) => {
7977
+ const id = useId5();
7978
+ const [status, setStatus] = useState7(null);
7979
+ const copy = useCallback4(async (entry) => {
7017
7980
  setStatus({
7018
7981
  key: entry.key,
7019
7982
  ok: await writeClipboard(entry.text)
7020
7983
  });
7021
7984
  }, []);
7022
7985
  const entries = kitEntries(kit);
7023
- return /* @__PURE__ */ jsxs15("details", {
7986
+ return /* @__PURE__ */ jsxs16("details", {
7024
7987
  className: ["plain-publication__social-kit", className].filter(Boolean).join(" "),
7025
7988
  "data-hraness-social-kit": "",
7026
7989
  children: [
7027
- /* @__PURE__ */ jsx17("summary", {
7990
+ /* @__PURE__ */ jsx18("summary", {
7028
7991
  children: summary
7029
7992
  }),
7030
- /* @__PURE__ */ jsx17("ol", {
7993
+ /* @__PURE__ */ jsx18("ol", {
7031
7994
  className: "plain-publication__social-kit-list",
7032
7995
  children: entries.map((entry) => {
7033
7996
  const over = entry.length > entry.limit;
7034
7997
  const counterId = `${id}-${entry.key}-count`;
7035
- return /* @__PURE__ */ jsxs15("li", {
7998
+ return /* @__PURE__ */ jsxs16("li", {
7036
7999
  className: "plain-publication__social-kit-item",
7037
8000
  "data-over": over ? "" : undefined,
7038
8001
  children: [
7039
- /* @__PURE__ */ jsxs15("div", {
8002
+ /* @__PURE__ */ jsxs16("div", {
7040
8003
  className: "plain-publication__social-kit-head",
7041
8004
  children: [
7042
- /* @__PURE__ */ jsx17("span", {
8005
+ /* @__PURE__ */ jsx18("span", {
7043
8006
  className: "plain-publication__social-kit-label",
7044
8007
  children: entry.label
7045
8008
  }),
7046
- /* @__PURE__ */ jsxs15("span", {
8009
+ /* @__PURE__ */ jsxs16("span", {
7047
8010
  className: "plain-publication__social-kit-count",
7048
8011
  id: counterId,
7049
8012
  children: [
@@ -7052,14 +8015,14 @@ function SocialKitPanel({
7052
8015
  entry.limit
7053
8016
  ]
7054
8017
  }),
7055
- /* @__PURE__ */ jsxs15("button", {
8018
+ /* @__PURE__ */ jsxs16("button", {
7056
8019
  "aria-describedby": counterId,
7057
8020
  className: "plain-publication__social-kit-copy",
7058
8021
  onClick: () => void copy(entry),
7059
8022
  type: "button",
7060
8023
  children: [
7061
8024
  status?.key === entry.key ? status.ok ? "Copied" : "Copy failed" : "Copy",
7062
- /* @__PURE__ */ jsxs15("span", {
8025
+ /* @__PURE__ */ jsxs16("span", {
7063
8026
  className: "plain-publication__visually-hidden",
7064
8027
  children: [
7065
8028
  " ",
@@ -7070,7 +8033,7 @@ function SocialKitPanel({
7070
8033
  })
7071
8034
  ]
7072
8035
  }),
7073
- /* @__PURE__ */ jsx17("p", {
8036
+ /* @__PURE__ */ jsx18("p", {
7074
8037
  className: "plain-publication__social-kit-text",
7075
8038
  children: entry.text
7076
8039
  })
@@ -7078,20 +8041,20 @@ function SocialKitPanel({
7078
8041
  }, entry.key);
7079
8042
  })
7080
8043
  }),
7081
- kit.showHnFacts.length === 0 ? null : /* @__PURE__ */ jsxs15("div", {
8044
+ kit.showHnFacts.length === 0 ? null : /* @__PURE__ */ jsxs16("div", {
7082
8045
  className: "plain-publication__social-kit-facts",
7083
8046
  children: [
7084
- /* @__PURE__ */ jsx17("p", {
8047
+ /* @__PURE__ */ jsx18("p", {
7085
8048
  children: "Facts for your own post"
7086
8049
  }),
7087
- /* @__PURE__ */ jsx17("ul", {
7088
- children: kit.showHnFacts.map((fact) => /* @__PURE__ */ jsx17("li", {
8050
+ /* @__PURE__ */ jsx18("ul", {
8051
+ children: kit.showHnFacts.map((fact) => /* @__PURE__ */ jsx18("li", {
7089
8052
  children: fact
7090
8053
  }, fact))
7091
8054
  })
7092
8055
  ]
7093
8056
  }),
7094
- /* @__PURE__ */ jsx17("p", {
8057
+ /* @__PURE__ */ jsx18("p", {
7095
8058
  "aria-live": "polite",
7096
8059
  className: "plain-publication__visually-hidden",
7097
8060
  children: status === null ? "" : status.ok ? "Copied to the clipboard." : "Copying failed. Select the text and copy it."
@@ -7215,6 +8178,7 @@ export {
7215
8178
  MarketingCard,
7216
8179
  MarketingCallToAction,
7217
8180
  MarketingArticle,
8181
+ MarketingActionLink,
7218
8182
  LaunchBeats,
7219
8183
  LanternMaterialGallery,
7220
8184
  HeroBackdrop,
@@ -7248,5 +8212,7 @@ export {
7248
8212
  ArticleByline,
7249
8213
  ArticleBarChart,
7250
8214
  AppShell,
7251
- AnimatedRailStage
8215
+ AnimatedRailStage,
8216
+ AgentSetupPrompt,
8217
+ AgentCommandTabs
7252
8218
  };