@hraness/design-kit 0.31.1 → 0.33.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (43) 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 +17 -4
  5. package/dist/{chunk-7b1586eb.js → chunk-4d79eskk.js} +62 -33
  6. package/dist/{chunk-44djxk16.js → chunk-95mpmzc9.js} +678 -619
  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 +1617 -649
  12. package/dist/react/server.js +4 -2
  13. package/dist/stylex-manifest.json +1 -1
  14. package/dist/stylex.css +216 -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/product-marketing.css +7 -2
  22. package/src/provider-marks.generated.ts +16 -0
  23. package/src/provider-marks.ts +14 -15
  24. package/src/react/agent-setup-prompt.stylex.ts +196 -0
  25. package/src/react/agent-setup-prompt.tsx +413 -0
  26. package/src/react/article.tsx +12 -20
  27. package/src/react/design-gallery.tsx +30 -2
  28. package/src/react/index.ts +1 -0
  29. package/src/react/launch-beats.tsx +7 -4
  30. package/src/react/product-marketing.stylex.ts +29 -4
  31. package/src/react/product-marketing.tsx +45 -12
  32. package/src/react/provider-mark.stylex.ts +17 -10
  33. package/src/react/provider-mark.tsx +6 -16
  34. package/vendor/provider-marks/MEM0-LICENSE +201 -0
  35. package/vendor/provider-marks/SUPERMEMORY-LICENSE +21 -0
  36. package/vendor/provider-marks/UPSTREAM.md +12 -1
  37. package/vendor/provider-marks/lobehub/githubcopilot.svg +1 -0
  38. package/vendor/provider-marks/lobehub/obsidian-color.svg +1 -0
  39. package/vendor/provider-marks/lobehub/obsidian.svg +1 -0
  40. package/vendor/provider-marks/mem0-art.svg +1 -0
  41. package/vendor/provider-marks/mem0-glyph.svg +1 -0
  42. package/vendor/provider-marks/mem0.svg +1 -0
  43. 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-95mpmzc9.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,50 @@ 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, {
6621
+ columns: 3,
5669
6622
  heading: "Three objects cover most work.",
5670
6623
  headingId: "design-gallery-primitives-title",
5671
6624
  headingLevel: 3,
@@ -5682,27 +6635,38 @@ function DesignSystemGallery({
5682
6635
  label: "Primitives",
5683
6636
  summary: "People and agents use the same three objects, so a job you start by hand is one an agent can rerun."
5684
6637
  }),
5685
- /* @__PURE__ */ jsxs14(MarketingSection, {
6638
+ /* @__PURE__ */ jsxs15(MarketingSection, {
5686
6639
  heading: "A job keeps its name everywhere.",
6640
+ headingContent: /* @__PURE__ */ jsxs15(Fragment5, {
6641
+ children: [
6642
+ /* @__PURE__ */ jsx17(MarketingCodeBlock, {
6643
+ code: "relay run job-01"
6644
+ }),
6645
+ /* @__PURE__ */ jsx17(MarketingActionLink, {
6646
+ href: "#gallery-install",
6647
+ label: "Run your first job"
6648
+ })
6649
+ ]
6650
+ }),
5687
6651
  headingId: "gallery-marketing-section",
5688
6652
  headingLevel: 3,
5689
6653
  label: "Workflow",
5690
6654
  layout: "split-reverse",
5691
6655
  summary: "Start it from the CLI and check on it from code; both see the same job.",
5692
6656
  children: [
5693
- /* @__PURE__ */ jsx16(MarketingSectionLabel, {
6657
+ /* @__PURE__ */ jsx17(MarketingSectionLabel, {
5694
6658
  size: "body",
5695
6659
  children: "Reference"
5696
6660
  }),
5697
- /* @__PURE__ */ jsxs14("p", {
6661
+ /* @__PURE__ */ jsxs15("p", {
5698
6662
  children: [
5699
6663
  "Consumer-owned content can include ",
5700
- /* @__PURE__ */ jsx16("a", {
6664
+ /* @__PURE__ */ jsx17("a", {
5701
6665
  href: "#gallery-install",
5702
6666
  children: "links"
5703
6667
  }),
5704
6668
  " and ",
5705
- /* @__PURE__ */ jsx16("code", {
6669
+ /* @__PURE__ */ jsx17("code", {
5706
6670
  children: "inline code"
5707
6671
  }),
5708
6672
  "."
@@ -5710,7 +6674,7 @@ function DesignSystemGallery({
5710
6674
  })
5711
6675
  ]
5712
6676
  }),
5713
- /* @__PURE__ */ jsx16(MarketingInterfaceGrid, {
6677
+ /* @__PURE__ */ jsx17(MarketingInterfaceGrid, {
5714
6678
  heading: "Choose your interface.",
5715
6679
  headingId: "gallery-marketing-interfaces",
5716
6680
  headingLevel: 3,
@@ -5718,7 +6682,7 @@ function DesignSystemGallery({
5718
6682
  interfaces: [{
5719
6683
  label: "CLI",
5720
6684
  summary: "Run a named job.",
5721
- example: /* @__PURE__ */ jsx16(MarketingCodeBlock, {
6685
+ example: /* @__PURE__ */ jsx17(MarketingCodeBlock, {
5722
6686
  code: "relay run job-01"
5723
6687
  })
5724
6688
  }, {
@@ -5726,15 +6690,16 @@ function DesignSystemGallery({
5726
6690
  summary: "Use typed application code."
5727
6691
  }]
5728
6692
  }),
5729
- /* @__PURE__ */ jsx16(MarketingCardRow, {
6693
+ /* @__PURE__ */ jsx17(MarketingCardRow, {
5730
6694
  ariaLabel: "Release radar",
6695
+ columns: 2,
5731
6696
  cards: [{
5732
- art: /* @__PURE__ */ jsx16("svg", {
6697
+ art: /* @__PURE__ */ jsx17("svg", {
5733
6698
  "aria-hidden": "true",
5734
6699
  viewBox: "0 0 24 24",
5735
6700
  width: "24",
5736
6701
  height: "24",
5737
- children: /* @__PURE__ */ jsx16("circle", {
6702
+ children: /* @__PURE__ */ jsx17("circle", {
5738
6703
  cx: "12",
5739
6704
  cy: "12",
5740
6705
  r: "8"
@@ -5744,12 +6709,12 @@ function DesignSystemGallery({
5744
6709
  title: "Grok 4.7",
5745
6710
  meta: "First observed 21 September 2026."
5746
6711
  }, {
5747
- art: /* @__PURE__ */ jsx16("svg", {
6712
+ art: /* @__PURE__ */ jsx17("svg", {
5748
6713
  "aria-hidden": "true",
5749
6714
  viewBox: "0 0 24 24",
5750
6715
  width: "24",
5751
6716
  height: "24",
5752
- children: /* @__PURE__ */ jsx16("rect", {
6717
+ children: /* @__PURE__ */ jsx17("rect", {
5753
6718
  x: "4",
5754
6719
  y: "4",
5755
6720
  width: "16",
@@ -5762,7 +6727,7 @@ function DesignSystemGallery({
5762
6727
  meta: "First observed 26 August 2026. Early DeepSWE coverage on OpenRouter."
5763
6728
  }]
5764
6729
  }),
5765
- /* @__PURE__ */ jsx16(MarketingTrustBoundary, {
6730
+ /* @__PURE__ */ jsx17(MarketingTrustBoundary, {
5766
6731
  heading: "What leaves your machine.",
5767
6732
  headingId: "gallery-marketing-trust",
5768
6733
  headingLevel: 3,
@@ -5775,7 +6740,7 @@ function DesignSystemGallery({
5775
6740
  detail: "Only the logs you choose to sync."
5776
6741
  }]
5777
6742
  }),
5778
- /* @__PURE__ */ jsx16(MarketingStatStrip, {
6743
+ /* @__PURE__ */ jsx17(MarketingStatStrip, {
5779
6744
  ariaLabel: "Relay usage",
5780
6745
  columns: 3,
5781
6746
  source: "Counted from the public example repository on 5 September 2026.",
@@ -5791,7 +6756,7 @@ function DesignSystemGallery({
5791
6756
  value: "0"
5792
6757
  }]
5793
6758
  }),
5794
- /* @__PURE__ */ jsx16(MarketingDataTable, {
6759
+ /* @__PURE__ */ jsx17(MarketingDataTable, {
5795
6760
  caption: "Cold-run timing across interfaces",
5796
6761
  columns: [{
5797
6762
  label: "Interface"
@@ -5817,7 +6782,7 @@ function DesignSystemGallery({
5817
6782
  tone: "negative"
5818
6783
  }]]
5819
6784
  }),
5820
- /* @__PURE__ */ jsx16(MarketingQuoteGrid, {
6785
+ /* @__PURE__ */ jsx17(MarketingQuoteGrid, {
5821
6786
  heading: "From the people building with it.",
5822
6787
  headingId: "design-gallery-quotes-title",
5823
6788
  headingLevel: 3,
@@ -5828,7 +6793,7 @@ function DesignSystemGallery({
5828
6793
  role: "@example"
5829
6794
  }]
5830
6795
  }),
5831
- /* @__PURE__ */ jsx16(MarketingPricing, {
6796
+ /* @__PURE__ */ jsx17(MarketingPricing, {
5832
6797
  heading: "Free for local use.",
5833
6798
  headingId: "design-gallery-pricing-title",
5834
6799
  headingLevel: 3,
@@ -5857,24 +6822,24 @@ function DesignSystemGallery({
5857
6822
  summary: "Keep logs in step across your machines."
5858
6823
  }]
5859
6824
  }),
5860
- /* @__PURE__ */ jsx16(MarketingQuestionList, {
6825
+ /* @__PURE__ */ jsx17(MarketingQuestionList, {
5861
6826
  heading: "Questions before installing.",
5862
6827
  headingId: "design-gallery-questions-title",
5863
6828
  headingLevel: 3,
5864
6829
  label: "Questions",
5865
6830
  questions: [{
5866
- answer: /* @__PURE__ */ jsx16("p", {
6831
+ answer: /* @__PURE__ */ jsx17("p", {
5867
6832
  children: "No. The local workflow works without one."
5868
6833
  }),
5869
6834
  question: "Does it require an account?"
5870
6835
  }, {
5871
- answer: /* @__PURE__ */ jsx16("p", {
6836
+ answer: /* @__PURE__ */ jsx17("p", {
5872
6837
  children: "Nothing leaves your machine unless you turn on sync."
5873
6838
  }),
5874
6839
  question: "Does it phone home?"
5875
6840
  }]
5876
6841
  }),
5877
- /* @__PURE__ */ jsx16(MarketingRelated, {
6842
+ /* @__PURE__ */ jsx17(MarketingRelated, {
5878
6843
  groups: [{
5879
6844
  heading: "Sibling tools",
5880
6845
  headingId: "design-gallery-related-tools",
@@ -5903,7 +6868,7 @@ function DesignSystemGallery({
5903
6868
  label: "Related",
5904
6869
  summary: "Each is a separate release. Its card says how it works with Relay."
5905
6870
  }),
5906
- /* @__PURE__ */ jsx16(MarketingMaker, {
6871
+ /* @__PURE__ */ jsx17(MarketingMaker, {
5907
6872
  heading: "Who builds Relay",
5908
6873
  headingId: "design-gallery-maker-title",
5909
6874
  headingLevel: 3,
@@ -5913,11 +6878,11 @@ function DesignSystemGallery({
5913
6878
  href: "#marketing",
5914
6879
  label: "Personal site"
5915
6880
  }],
5916
- children: /* @__PURE__ */ jsx16("p", {
6881
+ children: /* @__PURE__ */ jsx17("p", {
5917
6882
  children: "A short, plain-words bio: who made it, what they did before, where they are, and why this product exists."
5918
6883
  })
5919
6884
  }),
5920
- /* @__PURE__ */ jsx16(MarketingCallToAction, {
6885
+ /* @__PURE__ */ jsx17(MarketingCallToAction, {
5921
6886
  actions: [{
5922
6887
  href: "#gallery-install",
5923
6888
  label: "Install Relay"
@@ -5927,46 +6892,46 @@ function DesignSystemGallery({
5927
6892
  headingId: "design-gallery-cta-title",
5928
6893
  headingLevel: 3
5929
6894
  }),
5930
- /* @__PURE__ */ jsxs14("div", {
6895
+ /* @__PURE__ */ jsxs15("div", {
5931
6896
  className: "design-gallery__foil-note",
5932
6897
  children: [
5933
- /* @__PURE__ */ jsxs14("p", {
6898
+ /* @__PURE__ */ jsxs15("p", {
5934
6899
  children: [
5935
6900
  "Metallic wordmarks and exact-shape marks share a restrained rainbow reflection. Wordmarks use",
5936
6901
  " ",
5937
- /* @__PURE__ */ jsx16("code", {
6902
+ /* @__PURE__ */ jsx17("code", {
5938
6903
  children: ".hraness-foil-text"
5939
6904
  }),
5940
6905
  ", primary calls to action use ",
5941
- /* @__PURE__ */ jsx16("code", {
6906
+ /* @__PURE__ */ jsx17("code", {
5942
6907
  children: ".hraness-foil"
5943
6908
  }),
5944
6909
  ", and ",
5945
- /* @__PURE__ */ jsx16("code", {
6910
+ /* @__PURE__ */ jsx17("code", {
5946
6911
  children: "attachFoil"
5947
6912
  }),
5948
6913
  " eases the pointer inputs on ",
5949
- /* @__PURE__ */ jsx16("code", {
6914
+ /* @__PURE__ */ jsx17("code", {
5950
6915
  children: "data-foil"
5951
6916
  }),
5952
6917
  " targets."
5953
6918
  ]
5954
6919
  }),
5955
- /* @__PURE__ */ jsxs14("p", {
6920
+ /* @__PURE__ */ jsxs15("p", {
5956
6921
  className: "design-gallery__foil-row",
5957
6922
  children: [
5958
- /* @__PURE__ */ jsxs14("a", {
6923
+ /* @__PURE__ */ jsxs15("a", {
5959
6924
  className: foilClassName("text", "design-gallery__foil-wordmark"),
5960
6925
  "data-foil": "",
5961
6926
  href: "#marketing",
5962
6927
  children: [
5963
- /* @__PURE__ */ jsx16(FoilMark, {
6928
+ /* @__PURE__ */ jsx17(FoilMark, {
5964
6929
  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
6930
  }),
5966
6931
  " Relay"
5967
6932
  ]
5968
6933
  }),
5969
- /* @__PURE__ */ jsx16("a", {
6934
+ /* @__PURE__ */ jsx17("a", {
5970
6935
  className: foilClassName("surface", "design-gallery__foil-action"),
5971
6936
  "data-foil": "",
5972
6937
  href: "#gallery-install",
@@ -5980,11 +6945,11 @@ function DesignSystemGallery({
5980
6945
  })
5981
6946
  ]
5982
6947
  }),
5983
- /* @__PURE__ */ jsxs14(MarketingPage, {
6948
+ /* @__PURE__ */ jsxs15(MarketingPage, {
5984
6949
  preset: "editorial",
5985
6950
  className: "design-gallery__marketing-preset",
5986
6951
  children: [
5987
- /* @__PURE__ */ jsx16(MarketingSiteHeader, {
6952
+ /* @__PURE__ */ jsx17(MarketingSiteHeader, {
5988
6953
  action: {
5989
6954
  href: "#gallery-install",
5990
6955
  label: "Install"
@@ -6009,8 +6974,8 @@ function DesignSystemGallery({
6009
6974
  }],
6010
6975
  sticky: false
6011
6976
  }),
6012
- /* @__PURE__ */ jsx16(MarketingField, {
6013
- children: /* @__PURE__ */ jsx16(ProductHero, {
6977
+ /* @__PURE__ */ jsx17(MarketingField, {
6978
+ children: /* @__PURE__ */ jsx17(ProductHero, {
6014
6979
  actions: [{
6015
6980
  href: "#gallery-install",
6016
6981
  label: "Install Relay"
@@ -6022,9 +6987,9 @@ function DesignSystemGallery({
6022
6987
  align: "start",
6023
6988
  boundary: "MIT license · macOS and Linux · free for local use",
6024
6989
  eyebrow: "Job runner",
6025
- frame: /* @__PURE__ */ jsx16(MarketingProofFrame, {
6990
+ frame: /* @__PURE__ */ jsx17(MarketingProofFrame, {
6026
6991
  title: "relay run job-01",
6027
- children: /* @__PURE__ */ jsx16(MarketingCodeBlock, {
6992
+ children: /* @__PURE__ */ jsx17(MarketingCodeBlock, {
6028
6993
  className: "design-gallery__marketing-command",
6029
6994
  code: `$ relay run job-01
6030
6995
  {"status":"complete","job":"job-01","durationMs":412}`
@@ -6037,19 +7002,19 @@ function DesignSystemGallery({
6037
7002
  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
7003
  })
6039
7004
  }),
6040
- /* @__PURE__ */ jsx16(MarketingSection, {
7005
+ /* @__PURE__ */ jsx17(MarketingSection, {
6041
7006
  heading: "Keep every limit next to what it limits.",
6042
7007
  headingId: "gallery-quiet-limits",
6043
7008
  headingLevel: 3,
6044
7009
  label: "Limits",
6045
7010
  summary: "Sections sit between hairline rules, each with one short paragraph and one concrete element.",
6046
- children: /* @__PURE__ */ jsxs14("ol", {
7011
+ children: /* @__PURE__ */ jsxs15("ol", {
6047
7012
  className: "design-gallery__quiet-steps",
6048
7013
  children: [
6049
- /* @__PURE__ */ jsx16("li", {
7014
+ /* @__PURE__ */ jsx17("li", {
6050
7015
  children: "Local jobs only; sync is a separate plan."
6051
7016
  }),
6052
- /* @__PURE__ */ jsx16("li", {
7017
+ /* @__PURE__ */ jsx17("li", {
6053
7018
  children: "Logs older than 30 days are pruned unless pinned."
6054
7019
  })
6055
7020
  ]
@@ -6057,28 +7022,28 @@ function DesignSystemGallery({
6057
7022
  })
6058
7023
  ]
6059
7024
  }),
6060
- /* @__PURE__ */ jsxs14(MarketingPage, {
7025
+ /* @__PURE__ */ jsxs15(MarketingPage, {
6061
7026
  preset: "minimal",
6062
7027
  className: "design-gallery__marketing-preset",
6063
7028
  children: [
6064
- /* @__PURE__ */ jsx16(MarketingSiteHeader, {
7029
+ /* @__PURE__ */ jsx17(MarketingSiteHeader, {
6065
7030
  brand: "Relay",
6066
7031
  brandHref: "#marketing",
6067
7032
  links: [],
6068
7033
  sticky: false
6069
7034
  }),
6070
- /* @__PURE__ */ jsx16(ProductHero, {
7035
+ /* @__PURE__ */ jsx17(ProductHero, {
6071
7036
  name: "Relay",
6072
7037
  heading: "A quieter public page.",
6073
7038
  headingId: "gallery-minimal-title",
6074
7039
  headingLevel: 3,
6075
7040
  summary: "The same shared system, with compact sans headings and a plain surface."
6076
7041
  }),
6077
- /* @__PURE__ */ jsx16(MarketingSiteFooter, {
6078
- brand: /* @__PURE__ */ jsx16("svg", {
7042
+ /* @__PURE__ */ jsx17(MarketingSiteFooter, {
7043
+ brand: /* @__PURE__ */ jsx17("svg", {
6079
7044
  "aria-hidden": "true",
6080
7045
  viewBox: "0 0 24 24",
6081
- children: /* @__PURE__ */ jsx16("path", {
7046
+ children: /* @__PURE__ */ jsx17("path", {
6082
7047
  d: "M4 4h16v16H4z",
6083
7048
  fill: "currentColor"
6084
7049
  })
@@ -6095,15 +7060,15 @@ function DesignSystemGallery({
6095
7060
  })
6096
7061
  ]
6097
7062
  }),
6098
- /* @__PURE__ */ jsxs14("section", {
7063
+ /* @__PURE__ */ jsxs15("section", {
6099
7064
  className: "design-gallery__section",
6100
7065
  id: "articles",
6101
7066
  children: [
6102
- /* @__PURE__ */ jsx16("h2", {
7067
+ /* @__PURE__ */ jsx17("h2", {
6103
7068
  children: "Article layer"
6104
7069
  }),
6105
- /* @__PURE__ */ jsxs14(MarketingArticle, {
6106
- after: /* @__PURE__ */ jsx16(ArticleSources, {
7070
+ /* @__PURE__ */ jsxs15(MarketingArticle, {
7071
+ after: /* @__PURE__ */ jsx17(ArticleSources, {
6107
7072
  headingId: "gallery-article-sources",
6108
7073
  sources: [{
6109
7074
  checkedOn: "2026-09-20",
@@ -6137,76 +7102,76 @@ function DesignSystemGallery({
6137
7102
  }],
6138
7103
  updated: "2026-09-20",
6139
7104
  children: [
6140
- /* @__PURE__ */ jsx16("h2", {
7105
+ /* @__PURE__ */ jsx17("h2", {
6141
7106
  id: "gallery-article-problem",
6142
7107
  children: "The problem"
6143
7108
  }),
6144
- /* @__PURE__ */ jsx16("p", {
7109
+ /* @__PURE__ */ jsx17("p", {
6145
7110
  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
7111
  }),
6147
- /* @__PURE__ */ jsx16(ArticleCallout, {
7112
+ /* @__PURE__ */ jsx17(ArticleCallout, {
6148
7113
  label: "Limit",
6149
7114
  tone: "limit",
6150
7115
  children: "This applies to providers that sign the raw body. Header-only schemes need no stored copy."
6151
7116
  }),
6152
- /* @__PURE__ */ jsx16("h2", {
7117
+ /* @__PURE__ */ jsx17("h2", {
6153
7118
  id: "gallery-article-approach",
6154
7119
  children: "The approach"
6155
7120
  }),
6156
- /* @__PURE__ */ jsx16("p", {
7121
+ /* @__PURE__ */ jsx17("p", {
6157
7122
  children: "Store the body as bytes next to the parsed event, and send those bytes on replay."
6158
7123
  }),
6159
- /* @__PURE__ */ jsx16("pre", {
6160
- children: /* @__PURE__ */ jsx16("code", {
7124
+ /* @__PURE__ */ jsx17("pre", {
7125
+ children: /* @__PURE__ */ jsx17("code", {
6161
7126
  children: "await replay(event.id, { body: stored.raw });"
6162
7127
  })
6163
7128
  }),
6164
- /* @__PURE__ */ jsxs14("figure", {
7129
+ /* @__PURE__ */ jsxs15("figure", {
6165
7130
  children: [
6166
- /* @__PURE__ */ jsxs14("table", {
7131
+ /* @__PURE__ */ jsxs15("table", {
6167
7132
  children: [
6168
- /* @__PURE__ */ jsx16("thead", {
6169
- children: /* @__PURE__ */ jsxs14("tr", {
7133
+ /* @__PURE__ */ jsx17("thead", {
7134
+ children: /* @__PURE__ */ jsxs15("tr", {
6170
7135
  children: [
6171
- /* @__PURE__ */ jsx16("th", {
7136
+ /* @__PURE__ */ jsx17("th", {
6172
7137
  scope: "col",
6173
7138
  children: "Step"
6174
7139
  }),
6175
- /* @__PURE__ */ jsx16("th", {
7140
+ /* @__PURE__ */ jsx17("th", {
6176
7141
  scope: "col",
6177
7142
  children: "Stored"
6178
7143
  }),
6179
- /* @__PURE__ */ jsx16("th", {
7144
+ /* @__PURE__ */ jsx17("th", {
6180
7145
  scope: "col",
6181
7146
  children: "Sent on replay"
6182
7147
  })
6183
7148
  ]
6184
7149
  })
6185
7150
  }),
6186
- /* @__PURE__ */ jsxs14("tbody", {
7151
+ /* @__PURE__ */ jsxs15("tbody", {
6187
7152
  children: [
6188
- /* @__PURE__ */ jsxs14("tr", {
7153
+ /* @__PURE__ */ jsxs15("tr", {
6189
7154
  children: [
6190
- /* @__PURE__ */ jsx16("td", {
7155
+ /* @__PURE__ */ jsx17("td", {
6191
7156
  children: "Receive"
6192
7157
  }),
6193
- /* @__PURE__ */ jsx16("td", {
7158
+ /* @__PURE__ */ jsx17("td", {
6194
7159
  children: "Raw body and headers"
6195
7160
  }),
6196
- /* @__PURE__ */ jsx16("td", {
7161
+ /* @__PURE__ */ jsx17("td", {
6197
7162
  children: "Nothing"
6198
7163
  })
6199
7164
  ]
6200
7165
  }),
6201
- /* @__PURE__ */ jsxs14("tr", {
7166
+ /* @__PURE__ */ jsxs15("tr", {
6202
7167
  children: [
6203
- /* @__PURE__ */ jsx16("td", {
7168
+ /* @__PURE__ */ jsx17("td", {
6204
7169
  children: "Retry"
6205
7170
  }),
6206
- /* @__PURE__ */ jsx16("td", {
7171
+ /* @__PURE__ */ jsx17("td", {
6207
7172
  children: "Attempt count"
6208
7173
  }),
6209
- /* @__PURE__ */ jsx16("td", {
7174
+ /* @__PURE__ */ jsx17("td", {
6210
7175
  children: "The stored raw body"
6211
7176
  })
6212
7177
  ]
@@ -6215,14 +7180,14 @@ function DesignSystemGallery({
6215
7180
  })
6216
7181
  ]
6217
7182
  }),
6218
- /* @__PURE__ */ jsx16("figcaption", {
7183
+ /* @__PURE__ */ jsx17("figcaption", {
6219
7184
  children: "What Relay keeps for each delivery, and what a replay sends."
6220
7185
  })
6221
7186
  ]
6222
7187
  })
6223
7188
  ]
6224
7189
  }),
6225
- /* @__PURE__ */ jsx16(ArticleIndex, {
7190
+ /* @__PURE__ */ jsx17(ArticleIndex, {
6226
7191
  heading: "Recent writing",
6227
7192
  headingId: "gallery-article-index",
6228
7193
  headingLevel: 3,
@@ -6241,38 +7206,38 @@ function DesignSystemGallery({
6241
7206
  title: "Relay 2.4 adds per-endpoint retry limits"
6242
7207
  }]
6243
7208
  }),
6244
- /* @__PURE__ */ jsxs14("div", {
7209
+ /* @__PURE__ */ jsxs15("div", {
6245
7210
  className: "hraness-prose",
6246
7211
  children: [
6247
- /* @__PURE__ */ jsx16("h3", {
7212
+ /* @__PURE__ */ jsx17("h3", {
6248
7213
  children: "Shared reading scale"
6249
7214
  }),
6250
- /* @__PURE__ */ jsx16("p", {
7215
+ /* @__PURE__ */ jsx17("p", {
6251
7216
  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
7217
  }),
6253
- /* @__PURE__ */ jsx16("h4", {
7218
+ /* @__PURE__ */ jsx17("h4", {
6254
7219
  children: "Section spacing"
6255
7220
  }),
6256
- /* @__PURE__ */ jsx16("p", {
7221
+ /* @__PURE__ */ jsx17("p", {
6257
7222
  children: "Sections separate on the shared space token; subsections tighten to the subsection space and small heads keep the text face."
6258
7223
  })
6259
7224
  ]
6260
7225
  })
6261
7226
  ]
6262
7227
  }),
6263
- /* @__PURE__ */ jsxs14("section", {
7228
+ /* @__PURE__ */ jsxs15("section", {
6264
7229
  className: "design-gallery__section",
6265
7230
  id: "status-pages",
6266
7231
  children: [
6267
- /* @__PURE__ */ jsx16("h2", {
7232
+ /* @__PURE__ */ jsx17("h2", {
6268
7233
  children: "Status pages"
6269
7234
  }),
6270
- /* @__PURE__ */ jsx16("p", {
7235
+ /* @__PURE__ */ jsx17("p", {
6271
7236
  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
7237
  }),
6273
- /* @__PURE__ */ jsx16(ViewportFrame, {
7238
+ /* @__PURE__ */ jsx17(ViewportFrame, {
6274
7239
  className: "design-gallery__status-preview",
6275
- children: /* @__PURE__ */ jsx16(StatusPage, {
7240
+ children: /* @__PURE__ */ jsx17(StatusPage, {
6276
7241
  agentIndexHref: "/llms.txt",
6277
7242
  canvasAs: "div",
6278
7243
  next: [{
@@ -6298,18 +7263,18 @@ function DesignSystemGallery({
6298
7263
  })
6299
7264
  ]
6300
7265
  }),
6301
- /* @__PURE__ */ jsxs14("section", {
7266
+ /* @__PURE__ */ jsxs15("section", {
6302
7267
  className: "design-gallery__section",
6303
7268
  id: "shells",
6304
7269
  children: [
6305
- /* @__PURE__ */ jsx16("h2", {
7270
+ /* @__PURE__ */ jsx17("h2", {
6306
7271
  children: "Site shell"
6307
7272
  }),
6308
- /* @__PURE__ */ jsx16("p", {
7273
+ /* @__PURE__ */ jsx17("p", {
6309
7274
  children: "The main content fills available height so the footer follows short and long pages."
6310
7275
  }),
6311
- /* @__PURE__ */ jsx16("pre", {
6312
- children: /* @__PURE__ */ jsx16("code", {
7276
+ /* @__PURE__ */ jsx17("pre", {
7277
+ children: /* @__PURE__ */ jsx17("code", {
6313
7278
  children: `<body class="hraness-site-shell">
6314
7279
  <header>Project</header>
6315
7280
  <main>Payment complete</main>
@@ -6317,45 +7282,45 @@ function DesignSystemGallery({
6317
7282
  </body>`
6318
7283
  })
6319
7284
  }),
6320
- /* @__PURE__ */ jsx16("h2", {
7285
+ /* @__PURE__ */ jsx17("h2", {
6321
7286
  children: "Application shells"
6322
7287
  }),
6323
- /* @__PURE__ */ jsx16(ViewportFrame, {
7288
+ /* @__PURE__ */ jsx17(ViewportFrame, {
6324
7289
  className: "design-gallery__shell-preview",
6325
- children: /* @__PURE__ */ jsx16(AppShell, {
6326
- bottomBar: /* @__PURE__ */ jsx16(BottomBar, {
6327
- actions: /* @__PURE__ */ jsx16("span", {
7290
+ children: /* @__PURE__ */ jsx17(AppShell, {
7291
+ bottomBar: /* @__PURE__ */ jsx17(BottomBar, {
7292
+ actions: /* @__PURE__ */ jsx17("span", {
6328
7293
  children: "Synced"
6329
7294
  }),
6330
7295
  "data-gallery-layout-bottom-bar": "",
6331
- leading: /* @__PURE__ */ jsx16("span", {
7296
+ leading: /* @__PURE__ */ jsx17("span", {
6332
7297
  children: "Ready"
6333
7298
  }),
6334
7299
  children: "Reference footer"
6335
7300
  }),
6336
7301
  navigationKey: "gallery",
6337
- rail: /* @__PURE__ */ jsx16(NavigationRail, {
6338
- children: /* @__PURE__ */ jsxs14(RailSection, {
7302
+ rail: /* @__PURE__ */ jsx17(NavigationRail, {
7303
+ children: /* @__PURE__ */ jsxs15(RailSection, {
6339
7304
  title: "Workspace",
6340
7305
  children: [
6341
- /* @__PURE__ */ jsx16(RailItem, {
7306
+ /* @__PURE__ */ jsx17(RailItem, {
6342
7307
  href: "#foundation",
6343
- icon: /* @__PURE__ */ jsx16(Icon3, {
7308
+ icon: /* @__PURE__ */ jsx17(Icon3, {
6344
7309
  icon: DashboardSquare01Icon
6345
7310
  }),
6346
7311
  isActive: true,
6347
7312
  label: "Overview"
6348
7313
  }),
6349
- /* @__PURE__ */ jsx16(RailItem, {
7314
+ /* @__PURE__ */ jsx17(RailItem, {
6350
7315
  href: "#data",
6351
- icon: /* @__PURE__ */ jsx16(Icon3, {
7316
+ icon: /* @__PURE__ */ jsx17(Icon3, {
6352
7317
  icon: Chart01Icon
6353
7318
  }),
6354
7319
  label: "Data"
6355
7320
  }),
6356
- /* @__PURE__ */ jsx16(RailItem, {
7321
+ /* @__PURE__ */ jsx17(RailItem, {
6357
7322
  href: "#syntax",
6358
- icon: /* @__PURE__ */ jsx16(Icon3, {
7323
+ icon: /* @__PURE__ */ jsx17(Icon3, {
6359
7324
  icon: CodeIcon
6360
7325
  }),
6361
7326
  label: "Syntax"
@@ -6363,29 +7328,29 @@ function DesignSystemGallery({
6363
7328
  ]
6364
7329
  })
6365
7330
  }),
6366
- topBar: /* @__PURE__ */ jsx16(TopBar, {
7331
+ topBar: /* @__PURE__ */ jsx17(TopBar, {
6367
7332
  "data-gallery-layout-top-bar": "",
6368
7333
  title: "Reference workspace"
6369
7334
  }),
6370
- children: /* @__PURE__ */ jsx16(PageCanvas, {
7335
+ children: /* @__PURE__ */ jsx17(PageCanvas, {
6371
7336
  as: "div",
6372
7337
  "data-gallery-layout-page-canvas": "",
6373
- children: /* @__PURE__ */ jsx16(AnimatedRailStage, {
7338
+ children: /* @__PURE__ */ jsx17(AnimatedRailStage, {
6374
7339
  className: "design-gallery__animated-rail-stage",
6375
7340
  stageKey: density,
6376
- children: /* @__PURE__ */ jsxs14(DitherSurface, {
7341
+ children: /* @__PURE__ */ jsxs15(DitherSurface, {
6377
7342
  as: "section",
6378
7343
  "data-gallery-dither": "",
6379
7344
  density: density === "compact" ? "fine" : "medium",
6380
7345
  tone: "card",
6381
7346
  children: [
6382
- /* @__PURE__ */ jsxs14("h3", {
7347
+ /* @__PURE__ */ jsxs15("h3", {
6383
7348
  children: [
6384
7349
  density === "compact" ? "Compact" : "Default",
6385
7350
  " composition"
6386
7351
  ]
6387
7352
  }),
6388
- /* @__PURE__ */ jsx16("p", {
7353
+ /* @__PURE__ */ jsx17("p", {
6389
7354
  children: "The route body changes while persistent navigation remains in place."
6390
7355
  })
6391
7356
  ]
@@ -6394,14 +7359,14 @@ function DesignSystemGallery({
6394
7359
  })
6395
7360
  })
6396
7361
  }),
6397
- /* @__PURE__ */ jsxs14("div", {
7362
+ /* @__PURE__ */ jsxs15("div", {
6398
7363
  className: "design-gallery__docked-footer-preview",
6399
7364
  "data-gallery-layout-docked-frame": "",
6400
7365
  children: [
6401
- /* @__PURE__ */ jsx16("p", {
7366
+ /* @__PURE__ */ jsx17("p", {
6402
7367
  children: "Docked commands remain inside their positioning owner."
6403
7368
  }),
6404
- /* @__PURE__ */ jsx16(DockedFooter, {
7369
+ /* @__PURE__ */ jsx17(DockedFooter, {
6405
7370
  "data-gallery-layout-docked-footer": "",
6406
7371
  density: "compact",
6407
7372
  position: "absolute",
@@ -6411,34 +7376,34 @@ function DesignSystemGallery({
6411
7376
  })
6412
7377
  ]
6413
7378
  }),
6414
- /* @__PURE__ */ jsxs14("section", {
7379
+ /* @__PURE__ */ jsxs15("section", {
6415
7380
  className: "design-gallery__section",
6416
7381
  id: "data",
6417
7382
  children: [
6418
- /* @__PURE__ */ jsx16("h2", {
7383
+ /* @__PURE__ */ jsx17("h2", {
6419
7384
  children: "Data and instrument compositions"
6420
7385
  }),
6421
- /* @__PURE__ */ jsxs14("div", {
7386
+ /* @__PURE__ */ jsxs15("div", {
6422
7387
  className: "design-gallery__grid",
6423
7388
  children: [
6424
- /* @__PURE__ */ jsx16(BarListChart, {
7389
+ /* @__PURE__ */ jsx17(BarListChart, {
6425
7390
  "aria-label": "Example request volume",
6426
7391
  data: barData
6427
7392
  }),
6428
- /* @__PURE__ */ jsx16(RangePlotChart, {
7393
+ /* @__PURE__ */ jsx17(RangePlotChart, {
6429
7394
  "aria-label": "Example regional ranges",
6430
7395
  data: rangeData
6431
7396
  }),
6432
- /* @__PURE__ */ jsxs14("div", {
7397
+ /* @__PURE__ */ jsxs15("div", {
6433
7398
  className: "design-gallery__instrument",
6434
7399
  children: [
6435
- /* @__PURE__ */ jsx16(Fader, {
7400
+ /* @__PURE__ */ jsx17(Fader, {
6436
7401
  "aria-label": "Example level",
6437
7402
  className: "design-gallery__vertical-fader",
6438
7403
  "data-gallery-fader": "vertical",
6439
7404
  density: "default",
6440
7405
  label: "Level",
6441
- labelAccessory: /* @__PURE__ */ jsx16("span", {
7406
+ labelAccessory: /* @__PURE__ */ jsx17("span", {
6442
7407
  "data-gallery-fader-accessory": "",
6443
7408
  children: "dB"
6444
7409
  }),
@@ -6449,7 +7414,7 @@ function DesignSystemGallery({
6449
7414
  showOutput: true,
6450
7415
  value: faderValue
6451
7416
  }),
6452
- /* @__PURE__ */ jsx16(Fader, {
7417
+ /* @__PURE__ */ jsx17(Fader, {
6453
7418
  "aria-label": "Example horizontal level",
6454
7419
  className: "design-gallery__horizontal-fader",
6455
7420
  "data-gallery-fader": "horizontal",
@@ -6463,13 +7428,13 @@ function DesignSystemGallery({
6463
7428
  showOutput: true,
6464
7429
  value: faderValue
6465
7430
  }),
6466
- /* @__PURE__ */ jsx16(Slider, {
7431
+ /* @__PURE__ */ jsx17(Slider, {
6467
7432
  label: "Balance",
6468
7433
  maxValue: 100,
6469
7434
  minValue: 0,
6470
7435
  value: 50
6471
7436
  }),
6472
- /* @__PURE__ */ jsx16(PlaybackTransport, {
7437
+ /* @__PURE__ */ jsx17(PlaybackTransport, {
6473
7438
  "aria-label": "Preview transport",
6474
7439
  buttonAriaKeyShortcuts: "Space",
6475
7440
  buttonId: "design-gallery-playback-command",
@@ -6482,23 +7447,23 @@ function DesignSystemGallery({
6482
7447
  })
6483
7448
  ]
6484
7449
  }),
6485
- /* @__PURE__ */ jsxs14("div", {
7450
+ /* @__PURE__ */ jsxs15("div", {
6486
7451
  className: "design-gallery__chat",
6487
7452
  "data-gallery-chat": "",
6488
7453
  "data-gallery-chat-submission": chatSubmission,
6489
7454
  children: [
6490
- /* @__PURE__ */ jsx16(ChatMessage, {
6491
- actions: /* @__PURE__ */ jsx16(Button3, {
7455
+ /* @__PURE__ */ jsx17(ChatMessage, {
7456
+ actions: /* @__PURE__ */ jsx17(Button3, {
6492
7457
  variant: "quiet",
6493
7458
  children: "Copy response"
6494
7459
  }),
6495
- avatar: /* @__PURE__ */ jsx16("span", {
7460
+ avatar: /* @__PURE__ */ jsx17("span", {
6496
7461
  "aria-hidden": "true",
6497
7462
  className: "design-gallery__chat-avatar",
6498
7463
  children: "AI"
6499
7464
  }),
6500
7465
  className: "design-gallery__chat-message",
6501
- meta: /* @__PURE__ */ jsx16(RelativeTime, {
7466
+ meta: /* @__PURE__ */ jsx17(RelativeTime, {
6502
7467
  locale: "en-US",
6503
7468
  now: designGalleryRelativeTimeNow,
6504
7469
  refreshInterval: "off",
@@ -6506,17 +7471,17 @@ function DesignSystemGallery({
6506
7471
  }),
6507
7472
  name: "Assistant",
6508
7473
  role: "assistant",
6509
- children: /* @__PURE__ */ jsx16("p", {
7474
+ children: /* @__PURE__ */ jsx17("p", {
6510
7475
  children: "A complete message keeps its ordinary article and slot semantics."
6511
7476
  })
6512
7477
  }),
6513
- /* @__PURE__ */ jsx16(ChatMessage, {
7478
+ /* @__PURE__ */ jsx17(ChatMessage, {
6514
7479
  role: "user",
6515
- children: /* @__PURE__ */ jsx16("p", {
7480
+ children: /* @__PURE__ */ jsx17("p", {
6516
7481
  children: "Responsive composition belongs to the extracted package recipe."
6517
7482
  })
6518
7483
  }),
6519
- /* @__PURE__ */ jsx16(ChatComposer, {
7484
+ /* @__PURE__ */ jsx17(ChatComposer, {
6520
7485
  action: "/gallery-chat-submit",
6521
7486
  "aria-label": "Gallery message composer",
6522
7487
  className: "design-gallery__chat-composer",
@@ -6531,15 +7496,15 @@ function DesignSystemGallery({
6531
7496
  })
6532
7497
  ]
6533
7498
  }),
6534
- /* @__PURE__ */ jsx16("ul", {
7499
+ /* @__PURE__ */ jsx17("ul", {
6535
7500
  "aria-label": "Relative time examples",
6536
7501
  className: "design-gallery__relative-times",
6537
7502
  "data-gallery-relative-time": "",
6538
7503
  children: relativeTimeExamples.map(({
6539
7504
  id,
6540
7505
  value
6541
- }) => /* @__PURE__ */ jsx16("li", {
6542
- children: /* @__PURE__ */ jsx16(RelativeTime, {
7506
+ }) => /* @__PURE__ */ jsx17("li", {
7507
+ children: /* @__PURE__ */ jsx17(RelativeTime, {
6543
7508
  "data-gallery-relative-time-example": id,
6544
7509
  locale: "en-US",
6545
7510
  now: designGalleryRelativeTimeNow,
@@ -6550,36 +7515,36 @@ function DesignSystemGallery({
6550
7515
  })
6551
7516
  ]
6552
7517
  }),
6553
- /* @__PURE__ */ jsxs14("section", {
7518
+ /* @__PURE__ */ jsxs15("section", {
6554
7519
  className: "design-gallery__section",
6555
7520
  id: "effects",
6556
7521
  children: [
6557
- /* @__PURE__ */ jsx16("h2", {
7522
+ /* @__PURE__ */ jsx17("h2", {
6558
7523
  children: "Decorative effects"
6559
7524
  }),
6560
- /* @__PURE__ */ jsx16(FoilCardDeck, {
7525
+ /* @__PURE__ */ jsx17(FoilCardDeck, {
6561
7526
  "aria-label": "Delegated foil ornament examples",
6562
7527
  className: "design-gallery__foil-deck",
6563
- children: foilDeckExamples.map((example) => /* @__PURE__ */ jsx16(FoilCardSurface, {
7528
+ children: foilDeckExamples.map((example) => /* @__PURE__ */ jsx17(FoilCardSurface, {
6564
7529
  className: "design-gallery__foil-example",
6565
7530
  intensity: "standard",
6566
7531
  ornament: example.ornament,
6567
7532
  preset: example.preset,
6568
7533
  renderMode: "interactive",
6569
7534
  seed: `public-gallery-foil-${example.ornament}`,
6570
- children: /* @__PURE__ */ jsxs14("article", {
7535
+ children: /* @__PURE__ */ jsxs15("article", {
6571
7536
  className: "design-gallery__foil-card",
6572
7537
  children: [
6573
- /* @__PURE__ */ jsx16(Tag, {
7538
+ /* @__PURE__ */ jsx17(Tag, {
6574
7539
  variant: "outline",
6575
7540
  children: example.label
6576
7541
  }),
6577
- /* @__PURE__ */ jsxs14("div", {
7542
+ /* @__PURE__ */ jsxs15("div", {
6578
7543
  children: [
6579
- /* @__PURE__ */ jsx16("h3", {
7544
+ /* @__PURE__ */ jsx17("h3", {
6580
7545
  children: "Semantic card content"
6581
7546
  }),
6582
- /* @__PURE__ */ jsx16("p", {
7547
+ /* @__PURE__ */ jsx17("p", {
6583
7548
  children: "One deck controller decorates ordinary articles."
6584
7549
  })
6585
7550
  ]
@@ -6588,21 +7553,21 @@ function DesignSystemGallery({
6588
7553
  })
6589
7554
  }, example.ornament))
6590
7555
  }),
6591
- /* @__PURE__ */ jsxs14("div", {
7556
+ /* @__PURE__ */ jsxs15("div", {
6592
7557
  className: "design-gallery__effect",
6593
7558
  children: [
6594
- /* @__PURE__ */ jsx16(AuroraDotsBackground, {}),
6595
- /* @__PURE__ */ jsx16(ProceduralBackdrop, {
7559
+ /* @__PURE__ */ jsx17(AuroraDotsBackground, {}),
7560
+ /* @__PURE__ */ jsx17(ProceduralBackdrop, {
6596
7561
  seed: "public-gallery",
6597
7562
  variant: "composite"
6598
7563
  }),
6599
- /* @__PURE__ */ jsxs14("div", {
7564
+ /* @__PURE__ */ jsxs15("div", {
6600
7565
  className: "design-gallery__effect-copy",
6601
7566
  children: [
6602
- /* @__PURE__ */ jsx16("h3", {
7567
+ /* @__PURE__ */ jsx17("h3", {
6603
7568
  children: "Semantic content stays ordinary DOM"
6604
7569
  }),
6605
- /* @__PURE__ */ jsx16("p", {
7570
+ /* @__PURE__ */ jsx17("p", {
6606
7571
  children: "Decorative paint is pointer-transparent and removable in forced colors. Marketing actions use system button colors so their labels stay readable."
6607
7572
  })
6608
7573
  ]
@@ -6611,16 +7576,16 @@ function DesignSystemGallery({
6611
7576
  })
6612
7577
  ]
6613
7578
  }),
6614
- /* @__PURE__ */ jsxs14("section", {
7579
+ /* @__PURE__ */ jsxs15("section", {
6615
7580
  className: "design-gallery__section",
6616
7581
  id: "syntax",
6617
7582
  children: [
6618
- /* @__PURE__ */ jsx16("h2", {
7583
+ /* @__PURE__ */ jsx17("h2", {
6619
7584
  children: "Server syntax"
6620
7585
  }),
6621
- /* @__PURE__ */ jsx16("pre", {
7586
+ /* @__PURE__ */ jsx17("pre", {
6622
7587
  className: "design-gallery__syntax",
6623
- children: /* @__PURE__ */ jsx16(SyntaxCode, {
7588
+ children: /* @__PURE__ */ jsx17(SyntaxCode, {
6624
7589
  code: `import { AppShell } from "@hraness/design-kit/react";
6625
7590
 
6626
7591
  export const shell = <AppShell rail={null}>Content</AppShell>;`,
@@ -6633,7 +7598,7 @@ export const shell = <AppShell rail={null}>Content</AppShell>;`,
6633
7598
  });
6634
7599
  }
6635
7600
  // src/react/haptics.ts
6636
- import { useCallback as useCallback2, useEffect as useEffect8 } from "react";
7601
+ import { useCallback as useCallback3, useEffect as useEffect9 } from "react";
6637
7602
  var HAPTIC_FEEDBACK_EVENT_NAME = "hraness-design:haptic-feedback";
6638
7603
  function isHapticBrowserEnvironment(environment = globalThis) {
6639
7604
  return typeof environment.window === "object" && typeof environment.document === "object" && typeof environment.navigator === "object";
@@ -6771,14 +7736,14 @@ function disposeHapticFeedback() {
6771
7736
  browserHaptics.dispose();
6772
7737
  }
6773
7738
  function useHapticFeedback(enabled = true) {
6774
- useEffect8(() => {
7739
+ useEffect9(() => {
6775
7740
  if (enabled)
6776
7741
  prepareHapticFeedback();
6777
7742
  }, [enabled]);
6778
- return useCallback2(async (feedback = "press") => enabled ? await triggerHapticFeedback(feedback) : false, [enabled]);
7743
+ return useCallback3(async (feedback = "press") => enabled ? await triggerHapticFeedback(feedback) : false, [enabled]);
6779
7744
  }
6780
7745
  // src/react/keyboard-shortcuts.ts
6781
- import { useEffect as useEffect9, useRef as useRef6 } from "react";
7746
+ import { useEffect as useEffect10, useRef as useRef7 } from "react";
6782
7747
  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
7748
  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
7749
  function hasClosest(target) {
@@ -6859,7 +7824,7 @@ function isNode2(target) {
6859
7824
  return target !== null && typeof Node !== "undefined" && target instanceof Node;
6860
7825
  }
6861
7826
  function useKeyboardShortcuts(bindings, options = {}) {
6862
- const latestRef = useRef6({
7827
+ const latestRef = useRef7({
6863
7828
  bindings,
6864
7829
  isDisabled: options.isDisabled ?? false
6865
7830
  });
@@ -6868,7 +7833,7 @@ function useKeyboardShortcuts(bindings, options = {}) {
6868
7833
  isDisabled: options.isDisabled ?? false
6869
7834
  };
6870
7835
  const scopeRef = options.scopeRef;
6871
- useEffect9(() => {
7836
+ useEffect10(() => {
6872
7837
  const onKeyDown = (event) => {
6873
7838
  if (scopeRef !== undefined) {
6874
7839
  const scope = scopeRef.current;
@@ -6892,7 +7857,7 @@ function useKeyboardShortcuts(bindings, options = {}) {
6892
7857
  }, [scopeRef]);
6893
7858
  }
6894
7859
  // src/react/sticky-offset.tsx
6895
- import { useEffect as useEffect10 } from "react";
7860
+ import { useEffect as useEffect11 } from "react";
6896
7861
 
6897
7862
  // src/browser/sticky-offset.ts
6898
7863
  var stickyOffsetCustomProperty = "--hraness-sticky-offset";
@@ -6962,14 +7927,14 @@ function syncStickyOffset(options = {}) {
6962
7927
  function StickyOffsetSync({
6963
7928
  header
6964
7929
  } = {}) {
6965
- useEffect10(() => syncStickyOffset(header === undefined ? {} : {
7930
+ useEffect11(() => syncStickyOffset(header === undefined ? {} : {
6966
7931
  header
6967
7932
  }), [header]);
6968
7933
  return null;
6969
7934
  }
6970
7935
  // 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";
7936
+ import { useCallback as useCallback4, useId as useId5, useState as useState7 } from "react";
7937
+ import { jsx as jsx18, jsxs as jsxs16 } from "react/jsx-runtime";
6973
7938
  function kitEntries(kit) {
6974
7939
  const thread = (channel, label, posts, measure, limit) => posts.map((text, index) => ({
6975
7940
  key: `${channel}.${index}`,
@@ -7011,39 +7976,39 @@ function SocialKitPanel({
7011
7976
  kit,
7012
7977
  summary = "Social posts for this launch"
7013
7978
  }) {
7014
- const id = useId4();
7015
- const [status, setStatus] = useState6(null);
7016
- const copy = useCallback3(async (entry) => {
7979
+ const id = useId5();
7980
+ const [status, setStatus] = useState7(null);
7981
+ const copy = useCallback4(async (entry) => {
7017
7982
  setStatus({
7018
7983
  key: entry.key,
7019
7984
  ok: await writeClipboard(entry.text)
7020
7985
  });
7021
7986
  }, []);
7022
7987
  const entries = kitEntries(kit);
7023
- return /* @__PURE__ */ jsxs15("details", {
7988
+ return /* @__PURE__ */ jsxs16("details", {
7024
7989
  className: ["plain-publication__social-kit", className].filter(Boolean).join(" "),
7025
7990
  "data-hraness-social-kit": "",
7026
7991
  children: [
7027
- /* @__PURE__ */ jsx17("summary", {
7992
+ /* @__PURE__ */ jsx18("summary", {
7028
7993
  children: summary
7029
7994
  }),
7030
- /* @__PURE__ */ jsx17("ol", {
7995
+ /* @__PURE__ */ jsx18("ol", {
7031
7996
  className: "plain-publication__social-kit-list",
7032
7997
  children: entries.map((entry) => {
7033
7998
  const over = entry.length > entry.limit;
7034
7999
  const counterId = `${id}-${entry.key}-count`;
7035
- return /* @__PURE__ */ jsxs15("li", {
8000
+ return /* @__PURE__ */ jsxs16("li", {
7036
8001
  className: "plain-publication__social-kit-item",
7037
8002
  "data-over": over ? "" : undefined,
7038
8003
  children: [
7039
- /* @__PURE__ */ jsxs15("div", {
8004
+ /* @__PURE__ */ jsxs16("div", {
7040
8005
  className: "plain-publication__social-kit-head",
7041
8006
  children: [
7042
- /* @__PURE__ */ jsx17("span", {
8007
+ /* @__PURE__ */ jsx18("span", {
7043
8008
  className: "plain-publication__social-kit-label",
7044
8009
  children: entry.label
7045
8010
  }),
7046
- /* @__PURE__ */ jsxs15("span", {
8011
+ /* @__PURE__ */ jsxs16("span", {
7047
8012
  className: "plain-publication__social-kit-count",
7048
8013
  id: counterId,
7049
8014
  children: [
@@ -7052,14 +8017,14 @@ function SocialKitPanel({
7052
8017
  entry.limit
7053
8018
  ]
7054
8019
  }),
7055
- /* @__PURE__ */ jsxs15("button", {
8020
+ /* @__PURE__ */ jsxs16("button", {
7056
8021
  "aria-describedby": counterId,
7057
8022
  className: "plain-publication__social-kit-copy",
7058
8023
  onClick: () => void copy(entry),
7059
8024
  type: "button",
7060
8025
  children: [
7061
8026
  status?.key === entry.key ? status.ok ? "Copied" : "Copy failed" : "Copy",
7062
- /* @__PURE__ */ jsxs15("span", {
8027
+ /* @__PURE__ */ jsxs16("span", {
7063
8028
  className: "plain-publication__visually-hidden",
7064
8029
  children: [
7065
8030
  " ",
@@ -7070,7 +8035,7 @@ function SocialKitPanel({
7070
8035
  })
7071
8036
  ]
7072
8037
  }),
7073
- /* @__PURE__ */ jsx17("p", {
8038
+ /* @__PURE__ */ jsx18("p", {
7074
8039
  className: "plain-publication__social-kit-text",
7075
8040
  children: entry.text
7076
8041
  })
@@ -7078,20 +8043,20 @@ function SocialKitPanel({
7078
8043
  }, entry.key);
7079
8044
  })
7080
8045
  }),
7081
- kit.showHnFacts.length === 0 ? null : /* @__PURE__ */ jsxs15("div", {
8046
+ kit.showHnFacts.length === 0 ? null : /* @__PURE__ */ jsxs16("div", {
7082
8047
  className: "plain-publication__social-kit-facts",
7083
8048
  children: [
7084
- /* @__PURE__ */ jsx17("p", {
8049
+ /* @__PURE__ */ jsx18("p", {
7085
8050
  children: "Facts for your own post"
7086
8051
  }),
7087
- /* @__PURE__ */ jsx17("ul", {
7088
- children: kit.showHnFacts.map((fact) => /* @__PURE__ */ jsx17("li", {
8052
+ /* @__PURE__ */ jsx18("ul", {
8053
+ children: kit.showHnFacts.map((fact) => /* @__PURE__ */ jsx18("li", {
7089
8054
  children: fact
7090
8055
  }, fact))
7091
8056
  })
7092
8057
  ]
7093
8058
  }),
7094
- /* @__PURE__ */ jsx17("p", {
8059
+ /* @__PURE__ */ jsx18("p", {
7095
8060
  "aria-live": "polite",
7096
8061
  className: "plain-publication__visually-hidden",
7097
8062
  children: status === null ? "" : status.ok ? "Copied to the clipboard." : "Copying failed. Select the text and copy it."
@@ -7215,6 +8180,7 @@ export {
7215
8180
  MarketingCard,
7216
8181
  MarketingCallToAction,
7217
8182
  MarketingArticle,
8183
+ MarketingActionLink,
7218
8184
  LaunchBeats,
7219
8185
  LanternMaterialGallery,
7220
8186
  HeroBackdrop,
@@ -7248,5 +8214,7 @@ export {
7248
8214
  ArticleByline,
7249
8215
  ArticleBarChart,
7250
8216
  AppShell,
7251
- AnimatedRailStage
8217
+ AnimatedRailStage,
8218
+ AgentSetupPrompt,
8219
+ AgentCommandTabs
7252
8220
  };