@hraness/design-kit 0.38.0 → 0.40.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 (56) hide show
  1. package/MARKETING_COPY.md +3 -0
  2. package/README.md +46 -8
  3. package/dist/{chunk-13bq7myc.js → chunk-1dgm85ta.js} +191 -55
  4. package/dist/chunk-6mx403v5.js +286 -0
  5. package/dist/{chunk-s222cmt9.js → chunk-dc8v05zh.js} +6 -137
  6. package/dist/{chunk-z974c20s.js → chunk-eqd57m4y.js} +54 -8
  7. package/dist/{chunk-kz59614q.js → chunk-fcs5qekr.js} +1 -1
  8. package/dist/{chunk-san9drwt.js → chunk-vy0pt84a.js} +1 -1
  9. package/dist/{chunk-gpsekwkj.js → chunk-w1y1m3m7.js} +274 -1
  10. package/dist/index.js +24 -12
  11. package/dist/mockups/client.js +3 -3
  12. package/dist/mockups/index.js +3 -3
  13. package/dist/provider-marks.js +1 -1
  14. package/dist/react/index.js +43 -10
  15. package/dist/react/server.js +5 -3
  16. package/dist/stylex-manifest.json +1 -1
  17. package/dist/testing.js +20 -0
  18. package/package.json +8 -4
  19. package/portfolio-inventory.json +1 -1
  20. package/src/compiler-foundation.css +1 -0
  21. package/src/index.ts +1 -0
  22. package/src/marketing-marquee.css +281 -0
  23. package/src/marketing-marquee.ts +206 -0
  24. package/src/mockups/client.tsx +57 -5
  25. package/src/mockups.css +53 -2
  26. package/src/provider-marks.generated.ts +84 -0
  27. package/src/provider-marks.ts +27 -4
  28. package/src/react/design-gallery.tsx +22 -3
  29. package/src/react/index.ts +1 -0
  30. package/src/react/marketing-marquee.tsx +71 -0
  31. package/src/react/server.ts +1 -0
  32. package/src/styles.css +1 -0
  33. package/src/testing.ts +19 -0
  34. package/vendor/provider-marks/UPSTREAM.md +14 -0
  35. package/vendor/provider-marks/bootstrap-icons/calendar-event-fill.svg +3 -0
  36. package/vendor/provider-marks/bootstrap-icons/filetype-csv.svg +3 -0
  37. package/vendor/provider-marks/bootstrap-icons/globe2.svg +3 -0
  38. package/vendor/provider-marks/bootstrap-icons/microsoft.svg +3 -0
  39. package/vendor/provider-marks/bootstrap-icons/person-vcard-fill.svg +3 -0
  40. package/vendor/provider-marks/bootstrap-icons/shop.svg +3 -0
  41. package/vendor/provider-marks/simple-icons/bluesky.svg +1 -0
  42. package/vendor/provider-marks/simple-icons/facebook.svg +1 -0
  43. package/vendor/provider-marks/simple-icons/github.svg +1 -0
  44. package/vendor/provider-marks/simple-icons/gmail.svg +1 -0
  45. package/vendor/provider-marks/simple-icons/google.svg +1 -0
  46. package/vendor/provider-marks/simple-icons/instagram.svg +1 -0
  47. package/vendor/provider-marks/simple-icons/reddit.svg +1 -0
  48. package/vendor/provider-marks/simple-icons/substack.svg +1 -0
  49. package/vendor/provider-marks/simple-icons/telegram.svg +1 -0
  50. package/vendor/provider-marks/simple-icons/threads.svg +1 -0
  51. package/vendor/provider-marks/simple-icons/tiktok.svg +1 -0
  52. package/vendor/provider-marks/simple-icons/twitch.svg +1 -0
  53. package/vendor/provider-marks/simple-icons/x.svg +1 -0
  54. package/vendor/provider-marks/simple-icons/ycombinator.svg +1 -0
  55. package/vendor/provider-marks/simple-icons/youtube.svg +1 -0
  56. package/dist/chunk-gmea6p0d.js +0 -13
@@ -3,8 +3,10 @@ import {
3
3
  platformInstallClassName
4
4
  } from "./chunk-6ts4955n.js";
5
5
  import {
6
- diagramMetrics
7
- } from "./chunk-gmea6p0d.js";
6
+ MARKETING_MARQUEE_CONTROL_ICONS,
7
+ diagramMetrics,
8
+ resolveMarketingMarquee
9
+ } from "./chunk-6mx403v5.js";
8
10
  import {
9
11
  isPlatformId,
10
12
  platformLabel,
@@ -30,7 +32,7 @@ import {
30
32
  providerMark,
31
33
  providerMarkFallback,
32
34
  providerMarkOnAccent
33
- } from "./chunk-gpsekwkj.js";
35
+ } from "./chunk-w1y1m3m7.js";
34
36
 
35
37
  // src/react/provider-mark.stylex.ts
36
38
  import * as stylex from "@stylexjs/stylex";
@@ -6488,6 +6490,140 @@ function MarketingComparison({
6488
6490
  });
6489
6491
  }
6490
6492
 
6493
+ // src/react/marketing-marquee.tsx
6494
+ import { jsx as jsx7, jsxs as jsxs7 } from "react/jsx-runtime";
6495
+ var ROOT_CLASS2 = "hraness-marketing-marquee";
6496
+ function MarqueeItem({
6497
+ item
6498
+ }) {
6499
+ return /* @__PURE__ */ jsxs7("li", {
6500
+ className: `${ROOT_CLASS2}__item`,
6501
+ children: [
6502
+ item.mark.kind === "glyph" ? /* @__PURE__ */ jsx7("svg", {
6503
+ "aria-hidden": "true",
6504
+ className: `${ROOT_CLASS2}__mark`,
6505
+ fill: "currentColor",
6506
+ focusable: "false",
6507
+ height: "20",
6508
+ width: "20",
6509
+ children: /* @__PURE__ */ jsx7("use", {
6510
+ href: `#${item.mark.symbolId}`
6511
+ })
6512
+ }) : /* @__PURE__ */ jsx7("span", {
6513
+ "aria-hidden": "true",
6514
+ className: `${ROOT_CLASS2}__monogram`,
6515
+ children: item.mark.monogram
6516
+ }),
6517
+ /* @__PURE__ */ jsx7("span", {
6518
+ className: `${ROOT_CLASS2}__name`,
6519
+ children: item.name
6520
+ })
6521
+ ]
6522
+ });
6523
+ }
6524
+ function ControlIcon({
6525
+ icon
6526
+ }) {
6527
+ return /* @__PURE__ */ jsx7("svg", {
6528
+ "aria-hidden": "true",
6529
+ className: `${ROOT_CLASS2}__control-icon`,
6530
+ "data-icon": icon,
6531
+ fill: "currentColor",
6532
+ focusable: "false",
6533
+ height: "16",
6534
+ viewBox: "0 0 16 16",
6535
+ width: "16",
6536
+ children: /* @__PURE__ */ jsx7("path", {
6537
+ d: MARKETING_MARQUEE_CONTROL_ICONS[icon]
6538
+ })
6539
+ });
6540
+ }
6541
+ function MarketingMarquee(props6) {
6542
+ const marquee = resolveMarketingMarquee(props6);
6543
+ const items = marquee.items.map((item) => /* @__PURE__ */ jsx7(MarqueeItem, {
6544
+ item
6545
+ }, item.name));
6546
+ return /* @__PURE__ */ jsxs7("section", {
6547
+ "aria-labelledby": marquee.labelId,
6548
+ className: marquee.className,
6549
+ "data-align": marquee.align,
6550
+ "data-hraness-marketing": "marquee",
6551
+ id: marquee.id,
6552
+ children: [
6553
+ marquee.symbols.length === 0 ? null : /* @__PURE__ */ jsx7("svg", {
6554
+ "aria-hidden": "true",
6555
+ className: `${ROOT_CLASS2}__sprite`,
6556
+ focusable: "false",
6557
+ height: "0",
6558
+ width: "0",
6559
+ children: marquee.symbols.map((symbol) => /* @__PURE__ */ jsx7("symbol", {
6560
+ dangerouslySetInnerHTML: {
6561
+ __html: symbol.body
6562
+ },
6563
+ id: symbol.id,
6564
+ viewBox: symbol.viewBox
6565
+ }, symbol.id))
6566
+ }),
6567
+ /* @__PURE__ */ jsxs7("div", {
6568
+ className: `${ROOT_CLASS2}__header`,
6569
+ children: [
6570
+ /* @__PURE__ */ jsxs7("p", {
6571
+ className: `${ROOT_CLASS2}__label`,
6572
+ id: marquee.labelId,
6573
+ children: [
6574
+ marquee.label.before,
6575
+ /* @__PURE__ */ jsx7("strong", {
6576
+ className: `${ROOT_CLASS2}__count`,
6577
+ children: marquee.label.count
6578
+ }),
6579
+ marquee.label.after
6580
+ ]
6581
+ }),
6582
+ marquee.action === null ? null : /* @__PURE__ */ jsx7("a", {
6583
+ className: `${ROOT_CLASS2}__action hraness-text-link`,
6584
+ href: marquee.action.href,
6585
+ children: marquee.action.label
6586
+ })
6587
+ ]
6588
+ }),
6589
+ /* @__PURE__ */ jsx7("input", {
6590
+ className: `${ROOT_CLASS2}__toggle`,
6591
+ id: marquee.toggleId,
6592
+ type: "checkbox"
6593
+ }),
6594
+ /* @__PURE__ */ jsx7("div", {
6595
+ className: `${ROOT_CLASS2}__viewport`,
6596
+ children: /* @__PURE__ */ jsx7("div", {
6597
+ className: `${ROOT_CLASS2}__track`,
6598
+ children: Array.from({
6599
+ length: marquee.copies
6600
+ }, (_, index) => /* @__PURE__ */ jsx7("ul", {
6601
+ "aria-hidden": index === 0 ? undefined : "true",
6602
+ className: `${ROOT_CLASS2}__list`,
6603
+ children: items
6604
+ }, index))
6605
+ })
6606
+ }),
6607
+ /* @__PURE__ */ jsxs7("label", {
6608
+ className: `${ROOT_CLASS2}__control`,
6609
+ htmlFor: marquee.toggleId,
6610
+ children: [
6611
+ /* @__PURE__ */ jsx7("span", {
6612
+ className: `${ROOT_CLASS2}__control-text`,
6613
+ children: marquee.pauseLabel
6614
+ }),
6615
+ /* @__PURE__ */ jsx7(ControlIcon, {
6616
+ icon: "pause"
6617
+ }),
6618
+ /* @__PURE__ */ jsx7(ControlIcon, {
6619
+ icon: "play"
6620
+ })
6621
+ ]
6622
+ })
6623
+ ]
6624
+ });
6625
+ }
6626
+
6491
6627
  // src/react/marketing-diagram.tsx
6492
6628
  import * as stylex6 from "@stylexjs/stylex";
6493
6629
 
@@ -6528,13 +6664,13 @@ var diagramStyles = {
6528
6664
  };
6529
6665
 
6530
6666
  // src/react/marketing-diagram.tsx
6531
- import { jsx as jsx7, jsxs as jsxs7 } from "react/jsx-runtime";
6667
+ import { jsx as jsx8, jsxs as jsxs8 } from "react/jsx-runtime";
6532
6668
  function DiagramArrowhead({
6533
6669
  id
6534
6670
  }) {
6535
6671
  if (id.trim() === "" || /\s/u.test(id))
6536
6672
  throw new RangeError("Diagram arrowhead needs one nonempty SVG ID.");
6537
- return /* @__PURE__ */ jsx7("marker", {
6673
+ return /* @__PURE__ */ jsx8("marker", {
6538
6674
  id,
6539
6675
  markerHeight: diagramMetrics.arrowheadSize,
6540
6676
  markerUnits: "userSpaceOnUse",
@@ -6543,7 +6679,7 @@ function DiagramArrowhead({
6543
6679
  refX: "5.5",
6544
6680
  refY: "3",
6545
6681
  viewBox: "0 0 6 6",
6546
- children: /* @__PURE__ */ jsx7("path", {
6682
+ children: /* @__PURE__ */ jsx8("path", {
6547
6683
  d: "M0 0 L6 3 L0 6 Z",
6548
6684
  fill: "context-stroke"
6549
6685
  })
@@ -6561,16 +6697,16 @@ function MarketingDiagram({
6561
6697
  throw new RangeError("Marketing diagram dimensions must be positive.");
6562
6698
  if (label.trim() === "")
6563
6699
  throw new RangeError("Marketing diagram needs a useful accessible label.");
6564
- return /* @__PURE__ */ jsxs7("figure", {
6700
+ return /* @__PURE__ */ jsxs8("figure", {
6565
6701
  className: ["hraness-diagram", stylex6.props(diagramStyles.figure).className, className].filter(Boolean).join(" "),
6566
6702
  children: [
6567
- /* @__PURE__ */ jsx7("div", {
6703
+ /* @__PURE__ */ jsx8("div", {
6568
6704
  ...stylex6.props(diagramStyles.scroll),
6569
6705
  className: `hraness-diagram__scroll ${stylex6.props(diagramStyles.scroll).className}`,
6570
6706
  "aria-label": label,
6571
6707
  role: "region",
6572
6708
  tabIndex: 0,
6573
- children: /* @__PURE__ */ jsx7("svg", {
6709
+ children: /* @__PURE__ */ jsx8("svg", {
6574
6710
  ...stylex6.props(diagramStyles.canvas),
6575
6711
  className: `hraness-diagram__canvas ${stylex6.props(diagramStyles.canvas).className}`,
6576
6712
  "aria-label": label,
@@ -6581,7 +6717,7 @@ function MarketingDiagram({
6581
6717
  children
6582
6718
  })
6583
6719
  }),
6584
- caption === undefined || caption === null ? null : /* @__PURE__ */ jsx7("figcaption", {
6720
+ caption === undefined || caption === null ? null : /* @__PURE__ */ jsx8("figcaption", {
6585
6721
  ...stylex6.props(diagramStyles.caption),
6586
6722
  children: caption
6587
6723
  })
@@ -6761,7 +6897,7 @@ var layoutSurfaceStyles = {
6761
6897
  };
6762
6898
 
6763
6899
  // src/react/surfaces.tsx
6764
- import { jsx as jsx8, jsxs as jsxs8 } from "react/jsx-runtime";
6900
+ import { jsx as jsx9, jsxs as jsxs9 } from "react/jsx-runtime";
6765
6901
  var ditherSurfaceDensityStyles = {
6766
6902
  coarse: ditherSurfaceStyles.coarse,
6767
6903
  fine: ditherSurfaceStyles.fine,
@@ -6773,7 +6909,7 @@ function DitherSurface({
6773
6909
  xstyle,
6774
6910
  ...props8
6775
6911
  }) {
6776
- return /* @__PURE__ */ jsx8(ThemedSurface, {
6912
+ return /* @__PURE__ */ jsx9(ThemedSurface, {
6777
6913
  ...props8,
6778
6914
  className: cn("hraness-design-dither-surface", className),
6779
6915
  "data-density": density,
@@ -6799,31 +6935,31 @@ function TopBar({
6799
6935
  const titlePresentation = stylex7.props(layoutSurfaceStyles.topBarTitle);
6800
6936
  const contentPresentation = stylex7.props(layoutSurfaceStyles.barPart, layoutSurfaceStyles.barContent);
6801
6937
  const actionsPresentation = stylex7.props(layoutSurfaceStyles.barPart, layoutSurfaceStyles.topBarActions);
6802
- return /* @__PURE__ */ jsxs8("header", {
6938
+ return /* @__PURE__ */ jsxs9("header", {
6803
6939
  ...rootPresentation,
6804
6940
  ...props8,
6805
6941
  className: cn("hraness-design-top-bar", rootPresentation.className, className),
6806
6942
  "data-position": position,
6807
6943
  "data-surface": surface,
6808
6944
  children: [
6809
- /* @__PURE__ */ jsxs8("div", {
6945
+ /* @__PURE__ */ jsxs9("div", {
6810
6946
  ...leadingPresentation,
6811
6947
  className: cn("hraness-design-top-bar__leading", leadingPresentation.className),
6812
6948
  children: [
6813
6949
  leading,
6814
- title === undefined ? null : /* @__PURE__ */ jsx8("div", {
6950
+ title === undefined ? null : /* @__PURE__ */ jsx9("div", {
6815
6951
  ...titlePresentation,
6816
6952
  className: cn("hraness-design-top-bar__title", titlePresentation.className),
6817
6953
  children: title
6818
6954
  })
6819
6955
  ]
6820
6956
  }),
6821
- children === undefined ? null : /* @__PURE__ */ jsx8("div", {
6957
+ children === undefined ? null : /* @__PURE__ */ jsx9("div", {
6822
6958
  ...contentPresentation,
6823
6959
  className: cn("hraness-design-top-bar__content", contentPresentation.className),
6824
6960
  children
6825
6961
  }),
6826
- actions === undefined ? null : /* @__PURE__ */ jsx8("div", {
6962
+ actions === undefined ? null : /* @__PURE__ */ jsx9("div", {
6827
6963
  ...actionsPresentation,
6828
6964
  className: cn("hraness-design-top-bar__actions", actionsPresentation.className),
6829
6965
  children: actions
@@ -6842,22 +6978,22 @@ function BottomBar({
6842
6978
  const leadingPresentation = stylex7.props(layoutSurfaceStyles.barPart);
6843
6979
  const contentPresentation = stylex7.props(layoutSurfaceStyles.barPart, layoutSurfaceStyles.barContent);
6844
6980
  const actionsPresentation = stylex7.props(layoutSurfaceStyles.barPart);
6845
- return /* @__PURE__ */ jsxs8("footer", {
6981
+ return /* @__PURE__ */ jsxs9("footer", {
6846
6982
  ...rootPresentation,
6847
6983
  ...props8,
6848
6984
  className: cn("hraness-design-bottom-bar", rootPresentation.className, className),
6849
6985
  children: [
6850
- leading === undefined ? null : /* @__PURE__ */ jsx8("div", {
6986
+ leading === undefined ? null : /* @__PURE__ */ jsx9("div", {
6851
6987
  ...leadingPresentation,
6852
6988
  className: cn("hraness-design-bottom-bar__leading", leadingPresentation.className),
6853
6989
  children: leading
6854
6990
  }),
6855
- /* @__PURE__ */ jsx8("div", {
6991
+ /* @__PURE__ */ jsx9("div", {
6856
6992
  ...contentPresentation,
6857
6993
  className: cn("hraness-design-bottom-bar__content", contentPresentation.className),
6858
6994
  children
6859
6995
  }),
6860
- actions === undefined ? null : /* @__PURE__ */ jsx8("div", {
6996
+ actions === undefined ? null : /* @__PURE__ */ jsx9("div", {
6861
6997
  ...actionsPresentation,
6862
6998
  className: cn("hraness-design-bottom-bar__actions", actionsPresentation.className),
6863
6999
  children: actions
@@ -6874,7 +7010,7 @@ function PageCanvas({
6874
7010
  }) {
6875
7011
  const Element = as;
6876
7012
  const presentation2 = stylex7.props(layoutSurfaceStyles.pageCanvas, inset === "content" ? layoutSurfaceStyles.pageContentInset : layoutSurfaceStyles.pageNoInset, size === "wide" && layoutSurfaceStyles.wideSize, size === "full" && layoutSurfaceStyles.fullSize);
6877
- return /* @__PURE__ */ jsx8(Element, {
7013
+ return /* @__PURE__ */ jsx9(Element, {
6878
7014
  ...presentation2,
6879
7015
  ...props8,
6880
7016
  className: cn("hraness-design-page-canvas", presentation2.className, className),
@@ -6895,14 +7031,14 @@ var DockedFooter = forwardRef(function DockedFooter2({
6895
7031
  }, ref) {
6896
7032
  const rootPresentation = stylex7.props(layoutSurfaceStyles.surface, layoutSurfaceStyles.dockedFooter, position === "absolute" ? layoutSurfaceStyles.dockedAbsolute : position === "sticky" ? layoutSurfaceStyles.dockedSticky : layoutSurfaceStyles.dockedFixed);
6897
7033
  const contentPresentation = stylex7.props(layoutSurfaceStyles.dockedContent, density === "compact" ? inset === "content" ? layoutSurfaceStyles.dockedContentCompactInset : layoutSurfaceStyles.dockedContentCompactNoInset : inset === "content" ? layoutSurfaceStyles.dockedContentDefaultInset : layoutSurfaceStyles.dockedContentDefaultNoInset, size === "wide" && layoutSurfaceStyles.wideSize, size === "full" && layoutSurfaceStyles.fullSize);
6898
- return /* @__PURE__ */ jsx8("footer", {
7034
+ return /* @__PURE__ */ jsx9("footer", {
6899
7035
  ...rootPresentation,
6900
7036
  ...props8,
6901
7037
  className: cn("hraness-design-docked-footer", rootPresentation.className, className),
6902
7038
  "data-position": position,
6903
7039
  "data-surface": surface,
6904
7040
  ref,
6905
- children: /* @__PURE__ */ jsx8("div", {
7041
+ children: /* @__PURE__ */ jsx9("div", {
6906
7042
  ...contentPresentation,
6907
7043
  className: cn("hraness-design-docked-footer__content", contentPresentation.className, contentClassName),
6908
7044
  "data-density": density,
@@ -7353,7 +7489,7 @@ var effectsStyles = {
7353
7489
  };
7354
7490
 
7355
7491
  // src/react/procedural-backdrop.tsx
7356
- import { jsx as jsx9, jsxs as jsxs9 } from "react/jsx-runtime";
7492
+ import { jsx as jsx10, jsxs as jsxs10 } from "react/jsx-runtime";
7357
7493
  var colorVariables = {
7358
7494
  highlight: "var(--hraness-design-procedural-highlight)",
7359
7495
  key: "var(--hraness-design-procedural-key)",
@@ -7414,7 +7550,7 @@ function ProceduralBackdrop({
7414
7550
  const gridPresentation = stylex8.props(effectsStyles.proceduralSlot, effectsStyles.proceduralGrid);
7415
7551
  const ripplesPresentation = stylex8.props(effectsStyles.proceduralSlot, effectsStyles.proceduralRipples);
7416
7552
  const ripplePresentation = stylex8.props(effectsStyles.proceduralRipple);
7417
- return /* @__PURE__ */ jsxs9("div", {
7553
+ return /* @__PURE__ */ jsxs10("div", {
7418
7554
  ...props9,
7419
7555
  ...INERT_PROPS,
7420
7556
  "aria-hidden": "true",
@@ -7425,7 +7561,7 @@ function ProceduralBackdrop({
7425
7561
  role: "presentation",
7426
7562
  style: rootStyle,
7427
7563
  children: [
7428
- showAtmosphere ? /* @__PURE__ */ jsx9("span", {
7564
+ showAtmosphere ? /* @__PURE__ */ jsx10("span", {
7429
7565
  className: cn2("hraness-design-procedural-backdrop__atmosphere", atmospherePresentation.className),
7430
7566
  children: recipe.atmosphere.map((layer, index) => {
7431
7567
  const layerStyle = {
@@ -7443,17 +7579,17 @@ function ProceduralBackdrop({
7443
7579
  "--hraness-design-procedural-layer-x": `${layer.x}%`,
7444
7580
  "--hraness-design-procedural-layer-y": `${layer.y}%`
7445
7581
  };
7446
- return /* @__PURE__ */ jsx9("i", {
7582
+ return /* @__PURE__ */ jsx10("i", {
7447
7583
  className: cn2("hraness-design-procedural-backdrop__cloud", cloudPresentation.className),
7448
7584
  style: layerStyle
7449
7585
  }, index);
7450
7586
  })
7451
7587
  }) : null,
7452
- showGrid ? /* @__PURE__ */ jsx9("span", {
7588
+ showGrid ? /* @__PURE__ */ jsx10("span", {
7453
7589
  className: cn2("hraness-design-procedural-backdrop__grid", gridPresentation.className),
7454
7590
  style: gridStyle
7455
7591
  }) : null,
7456
- showRipple ? /* @__PURE__ */ jsx9("span", {
7592
+ showRipple ? /* @__PURE__ */ jsx10("span", {
7457
7593
  className: cn2("hraness-design-procedural-backdrop__ripples", ripplesPresentation.className),
7458
7594
  style: rippleStyle,
7459
7595
  children: recipe.ripple.contours.map((contour, index) => {
@@ -7463,7 +7599,7 @@ function ProceduralBackdrop({
7463
7599
  "--hraness-design-procedural-ripple-opacity": contour.opacity,
7464
7600
  "--hraness-design-procedural-ripple-size": `${contour.size}%`
7465
7601
  };
7466
- return /* @__PURE__ */ jsx9("i", {
7602
+ return /* @__PURE__ */ jsx10("i", {
7467
7603
  className: cn2("hraness-design-procedural-backdrop__ripple", ripplePresentation.className),
7468
7604
  style: contourStyle
7469
7605
  }, index);
@@ -7474,7 +7610,7 @@ function ProceduralBackdrop({
7474
7610
  }
7475
7611
 
7476
7612
  // src/react/platform-icons.tsx
7477
- import { jsx as jsx10, jsxs as jsxs10 } from "react/jsx-runtime";
7613
+ import { jsx as jsx11, jsxs as jsxs11 } from "react/jsx-runtime";
7478
7614
  var sizeParts = {
7479
7615
  inherit: undefined,
7480
7616
  lg: "iconLg",
@@ -7494,7 +7630,7 @@ function PlatformIcon({
7494
7630
  if (label !== undefined && label.trim() === "")
7495
7631
  throw new RangeError("A platform icon label must not be blank.");
7496
7632
  const mark = platformMark(platform);
7497
- return /* @__PURE__ */ jsx10("svg", {
7633
+ return /* @__PURE__ */ jsx11("svg", {
7498
7634
  "aria-hidden": label === undefined ? true : undefined,
7499
7635
  "aria-label": label,
7500
7636
  className: platformInstallClassName(["icon", sizeParts[size]], className),
@@ -7504,7 +7640,7 @@ function PlatformIcon({
7504
7640
  role: label === undefined ? undefined : "img",
7505
7641
  viewBox: mark.viewBox,
7506
7642
  xmlns: "http://www.w3.org/2000/svg",
7507
- children: /* @__PURE__ */ jsx10("path", {
7643
+ children: /* @__PURE__ */ jsx11("path", {
7508
7644
  d: mark.path
7509
7645
  })
7510
7646
  });
@@ -7531,29 +7667,29 @@ function PlatformBadges({
7531
7667
  seen.add(badge.id);
7532
7668
  }
7533
7669
  const listName = label ?? "Supported platforms";
7534
- return /* @__PURE__ */ jsxs10("div", {
7670
+ return /* @__PURE__ */ jsxs11("div", {
7535
7671
  className: platformInstallClassName(["badges"], className),
7536
7672
  "data-hraness-platform-badges": "",
7537
7673
  children: [
7538
- label === null ? null : /* @__PURE__ */ jsx10("span", {
7674
+ label === null ? null : /* @__PURE__ */ jsx11("span", {
7539
7675
  "aria-hidden": "true",
7540
7676
  className: platformInstallClassName(["badgesLabel"]),
7541
7677
  children: label
7542
7678
  }),
7543
- /* @__PURE__ */ jsx10("ul", {
7679
+ /* @__PURE__ */ jsx11("ul", {
7544
7680
  "aria-label": listName,
7545
7681
  className: platformInstallClassName(["badgesList"]),
7546
- children: badges.map((badge) => /* @__PURE__ */ jsxs10("li", {
7682
+ children: badges.map((badge) => /* @__PURE__ */ jsxs11("li", {
7547
7683
  className: platformInstallClassName(["badge"]),
7548
7684
  "data-platform": badge.id,
7549
7685
  children: [
7550
- /* @__PURE__ */ jsx10(PlatformIcon, {
7686
+ /* @__PURE__ */ jsx11(PlatformIcon, {
7551
7687
  platform: badge.id
7552
7688
  }),
7553
- /* @__PURE__ */ jsx10("span", {
7689
+ /* @__PURE__ */ jsx11("span", {
7554
7690
  children: badge.label ?? platformLabel(badge.id)
7555
7691
  }),
7556
- badge.note === undefined ? null : /* @__PURE__ */ jsx10("span", {
7692
+ badge.note === undefined ? null : /* @__PURE__ */ jsx11("span", {
7557
7693
  className: platformInstallClassName(["badgeNote"]),
7558
7694
  children: badge.note
7559
7695
  })
@@ -7567,7 +7703,7 @@ function PlatformBadges({
7567
7703
  // src/react/particle-halo.tsx
7568
7704
  import { cn as cn3 } from "@hraness/ui";
7569
7705
  import * as stylex9 from "@stylexjs/stylex";
7570
- import { jsx as jsx11, jsxs as jsxs11 } from "react/jsx-runtime";
7706
+ import { jsx as jsx12, jsxs as jsxs12 } from "react/jsx-runtime";
7571
7707
  var colorVariables2 = {
7572
7708
  highlight: "var(--hraness-design-procedural-highlight)",
7573
7709
  key: "var(--hraness-design-procedural-key)",
@@ -7603,14 +7739,14 @@ function ParticleHalo({
7603
7739
  const fieldPresentation = stylex9.props(effectsStyles.particleField);
7604
7740
  const particlePresentation = stylex9.props(effectsStyles.particle);
7605
7741
  const contentPresentation = stylex9.props(effectsStyles.particleContent);
7606
- return /* @__PURE__ */ jsxs11("div", {
7742
+ return /* @__PURE__ */ jsxs12("div", {
7607
7743
  ...props10,
7608
7744
  className: cn3("hraness-design-particle-halo", rootPresentation.className, className),
7609
7745
  "data-recipe-version": recipe.version,
7610
7746
  "data-variation": recipe.variation,
7611
7747
  style: rootStyle,
7612
7748
  children: [
7613
- /* @__PURE__ */ jsx11("span", {
7749
+ /* @__PURE__ */ jsx12("span", {
7614
7750
  "aria-hidden": "true",
7615
7751
  className: cn3("hraness-design-particle-halo__particles", fieldPresentation.className),
7616
7752
  role: "presentation",
@@ -7626,13 +7762,13 @@ function ParticleHalo({
7626
7762
  "--hraness-design-particle-x": `${particle.x}%`,
7627
7763
  "--hraness-design-particle-y": `${particle.y}%`
7628
7764
  };
7629
- return /* @__PURE__ */ jsx11("i", {
7765
+ return /* @__PURE__ */ jsx12("i", {
7630
7766
  className: cn3("hraness-design-particle-halo__particle", particlePresentation.className),
7631
7767
  style: particleStyle
7632
7768
  }, index);
7633
7769
  })
7634
7770
  }),
7635
- /* @__PURE__ */ jsx11("div", {
7771
+ /* @__PURE__ */ jsx12("div", {
7636
7772
  className: cn3("hraness-design-particle-halo__content", contentPresentation.className),
7637
7773
  children
7638
7774
  })
@@ -7641,7 +7777,7 @@ function ParticleHalo({
7641
7777
  }
7642
7778
 
7643
7779
  // src/react/launch-beats.tsx
7644
- import { jsx as jsx12, jsxs as jsxs12 } from "react/jsx-runtime";
7780
+ import { jsx as jsx13, jsxs as jsxs13 } from "react/jsx-runtime";
7645
7781
  var HEADING_TAGS2 = {
7646
7782
  2: "h2",
7647
7783
  3: "h3",
@@ -7672,7 +7808,7 @@ function LaunchBeats({
7672
7808
  const Heading2 = HEADING_TAGS2[headingLevel];
7673
7809
  if (Heading2 === undefined)
7674
7810
  throw new RangeError("Launch beat heading level must be 2 to 4.");
7675
- return /* @__PURE__ */ jsx12("div", {
7811
+ return /* @__PURE__ */ jsx13("div", {
7676
7812
  className: ["plain-publication__beats", className].filter(Boolean).join(" "),
7677
7813
  "data-hraness-launch-beats": "",
7678
7814
  children: beats.map((beat) => {
@@ -7680,28 +7816,28 @@ function LaunchBeats({
7680
7816
  const visual = renderVisual(beat);
7681
7817
  if (visual === null || visual === undefined || visual === false)
7682
7818
  throw new RangeError(`Launch beat ${JSON.stringify(beat.id)} needs a visual.`);
7683
- return /* @__PURE__ */ jsxs12("section", {
7819
+ return /* @__PURE__ */ jsxs13("section", {
7684
7820
  "aria-labelledby": `${anchor}-heading`,
7685
7821
  className: "plain-publication__beat",
7686
7822
  "data-part": beat.part,
7687
7823
  id: anchor,
7688
7824
  children: [
7689
- /* @__PURE__ */ jsx12(Heading2, {
7825
+ /* @__PURE__ */ jsx13(Heading2, {
7690
7826
  id: `${anchor}-heading`,
7691
7827
  children: beat.headline
7692
7828
  }),
7693
- /* @__PURE__ */ jsx12("p", {
7829
+ /* @__PURE__ */ jsx13("p", {
7694
7830
  children: beat.post
7695
7831
  }),
7696
- /* @__PURE__ */ jsx12(ArticleFigure, {
7832
+ /* @__PURE__ */ jsx13(ArticleFigure, {
7697
7833
  caption: caption?.(beat),
7698
7834
  kind: figureKind(beat),
7699
7835
  label: beat.alt,
7700
7836
  children: visual
7701
7837
  }),
7702
- beat.detailHref === undefined ? null : /* @__PURE__ */ jsx12("p", {
7838
+ beat.detailHref === undefined ? null : /* @__PURE__ */ jsx13("p", {
7703
7839
  className: "plain-publication__beat-detail",
7704
- children: /* @__PURE__ */ jsx12("a", {
7840
+ children: /* @__PURE__ */ jsx13("a", {
7705
7841
  href: beat.detailHref,
7706
7842
  children: detailLabel
7707
7843
  })
@@ -7712,4 +7848,4 @@ function LaunchBeats({
7712
7848
  });
7713
7849
  }
7714
7850
 
7715
- export { ProviderMark, ProviderMarkChip, foilEdge, foilTextImage, foilHalo, foilTextHalo, foilStyles, foilClassName, foilMarkClassName, FoilMark, marketingPatterns, MarketingActionLink, MarketingPage, MarketingField, MarketingMain, MarketingCardRow, MarketingCardArt, MarketingCard, MarketingSiteHeader, MarketingSiteFooter, MarketingFlow, MarketingFacts, ProductHero, MarketingPillars, MarketingInstallPanel, marketingProofFrameAddress, MarketingProofFrame, MarketingDataTable, MarketingCodeBlock, MarketingSectionLabel, MarketingSection, MarketingPrimitives, MarketingNotice, MarketingStatStrip, MarketingInterfaceGrid, MarketingTrustBoundary, MarketingQuoteGrid, MarketingPricing, MarketingQuestionList, MarketingMaker, MarketingRelated, MarketingCallToAction, ArticleByline, ArticleProvenance, MarketingArticle, ArticleSources, ArticleCallout, ArticleRelatedProducts, ArticleIndex, articleFigureKinds, ArticleFigure, ArticleVideo, ArticleTable, ArticleBarChart, ComparisonGlyph, ComparisonTable, effectsStyles, MarketingAccount, MarketingAccountActions, MarketingComparison, DiagramArrowhead, MarketingDiagram, DitherSurface, TopBar, BottomBar, PageCanvas, DockedFooter, proceduralBackdropVariants, proceduralRecipeVersion, createProceduralBackdropRecipe, createParticleHaloRecipe, ProceduralBackdrop, PlatformIcon, PlatformBadges, ParticleHalo, launchBeatAnchor, LaunchBeats };
7851
+ export { ProviderMark, ProviderMarkChip, foilEdge, foilTextImage, foilHalo, foilTextHalo, foilStyles, foilClassName, foilMarkClassName, FoilMark, marketingPatterns, MarketingActionLink, MarketingPage, MarketingField, MarketingMain, MarketingCardRow, MarketingCardArt, MarketingCard, MarketingSiteHeader, MarketingSiteFooter, MarketingFlow, MarketingFacts, ProductHero, MarketingPillars, MarketingInstallPanel, marketingProofFrameAddress, MarketingProofFrame, MarketingDataTable, MarketingCodeBlock, MarketingSectionLabel, MarketingSection, MarketingPrimitives, MarketingNotice, MarketingStatStrip, MarketingInterfaceGrid, MarketingTrustBoundary, MarketingQuoteGrid, MarketingPricing, MarketingQuestionList, MarketingMaker, MarketingRelated, MarketingCallToAction, ArticleByline, ArticleProvenance, MarketingArticle, ArticleSources, ArticleCallout, ArticleRelatedProducts, ArticleIndex, articleFigureKinds, ArticleFigure, ArticleVideo, ArticleTable, ArticleBarChart, ComparisonGlyph, ComparisonTable, effectsStyles, MarketingAccount, MarketingAccountActions, MarketingComparison, MarketingMarquee, DiagramArrowhead, MarketingDiagram, DitherSurface, TopBar, BottomBar, PageCanvas, DockedFooter, proceduralBackdropVariants, proceduralRecipeVersion, createProceduralBackdropRecipe, createParticleHaloRecipe, ProceduralBackdrop, PlatformIcon, PlatformBadges, ParticleHalo, launchBeatAnchor, LaunchBeats };