@hraness/design-kit 0.36.4 → 0.38.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 (39) hide show
  1. package/ARTICLE_COPY.md +2 -0
  2. package/MARKETING_PRESET.md +2 -0
  3. package/README.md +62 -5
  4. package/dist/browser/index.js +143 -11
  5. package/dist/{chunk-0s71p361.js → chunk-13bq7myc.js} +2 -1
  6. package/dist/{chunk-sabcr66p.js → chunk-gpsekwkj.js} +26 -0
  7. package/dist/{chunk-evb02bc1.js → chunk-kz59614q.js} +48 -1
  8. package/dist/{chunk-thv5t11w.js → chunk-s222cmt9.js} +1 -1
  9. package/dist/chunk-san9drwt.js +1807 -0
  10. package/dist/chunk-z974c20s.js +775 -0
  11. package/dist/index.js +2 -2
  12. package/dist/mockups/client.js +6 -654
  13. package/dist/mockups/index.js +29 -1797
  14. package/dist/provider-marks.js +1 -1
  15. package/dist/react/index.js +196 -19
  16. package/dist/react/server.js +2 -2
  17. package/dist/stylex-manifest.json +1 -1
  18. package/dist/stylex.css +28 -16
  19. package/package.json +2 -1
  20. package/portfolio-inventory.json +1 -1
  21. package/src/browser/index.ts +1 -0
  22. package/src/browser/marketing-header.ts +113 -0
  23. package/src/browser/sticky-offset.ts +24 -12
  24. package/src/compiler-foundation.css +1 -0
  25. package/src/design-gallery.css +12 -0
  26. package/src/mockups/client.tsx +157 -66
  27. package/src/mockups/core.tsx +30 -0
  28. package/src/mockups.css +158 -23
  29. package/src/provider-marks.generated.ts +8 -0
  30. package/src/provider-marks.ts +2 -0
  31. package/src/react/design-gallery.tsx +34 -0
  32. package/src/react/design-palette.stylex.ts +2 -2
  33. package/src/react/product-marketing.stylex.ts +1 -0
  34. package/src/react/theme.stylex.ts +4 -4
  35. package/src/styles.css +1 -0
  36. package/vendor/provider-marks/BOOTSTRAP-ICONS-LICENSE +21 -0
  37. package/vendor/provider-marks/UPSTREAM.md +14 -0
  38. package/vendor/provider-marks/bootstrap-icons/linkedin.svg +3 -0
  39. package/vendor/provider-marks/simple-icons/apple.svg +1 -0
@@ -6,7 +6,7 @@ import {
6
6
  providerMarkMonogram,
7
7
  providerMarkOnAccent,
8
8
  providerMarks
9
- } from "./chunk-sabcr66p.js";
9
+ } from "./chunk-gpsekwkj.js";
10
10
  import"./chunk-5gtx3pza.js";
11
11
  export {
12
12
  providerMarks,
@@ -89,7 +89,7 @@ import {
89
89
  marketingProofFrameAddress,
90
90
  proceduralBackdropVariants,
91
91
  proceduralRecipeVersion
92
- } from "../chunk-0s71p361.js";
92
+ } from "../chunk-13bq7myc.js";
93
93
  import {
94
94
  SyntaxCode
95
95
  } from "../chunk-6ts4955n.js";
@@ -121,7 +121,7 @@ import {
121
121
  resolveStatusPage,
122
122
  statusPageRoutesAttribute,
123
123
  suggestStatusRoute
124
- } from "../chunk-thv5t11w.js";
124
+ } from "../chunk-s222cmt9.js";
125
125
  import"../chunk-gmea6p0d.js";
126
126
  import"../chunk-wzvdn8ey.js";
127
127
  import"../chunk-he8eznb1.js";
@@ -132,7 +132,16 @@ import {
132
132
  characterLength,
133
133
  xPostLength
134
134
  } from "../chunk-cejpzyfh.js";
135
- import"../chunk-sabcr66p.js";
135
+ import {
136
+ BrowserFrame
137
+ } from "../chunk-san9drwt.js";
138
+ import {
139
+ StepThrough
140
+ } from "../chunk-z974c20s.js";
141
+ import {
142
+ SampleText
143
+ } from "../chunk-kz59614q.js";
144
+ import"../chunk-gpsekwkj.js";
136
145
  import {
137
146
  __require
138
147
  } from "../chunk-5gtx3pza.js";
@@ -2180,8 +2189,8 @@ var paletteMenuStyles = {
2180
2189
  k1xSpc: "x3nfvp2",
2181
2190
  kjj79g: "xl56j7k",
2182
2191
  kH6xsr: "x3ct3a4",
2183
- kVQ08L: "x1qwoi4t",
2184
- kdYMnH: "x9hh0qe",
2192
+ kVQ08L: "x5zky9q",
2193
+ kdYMnH: "xq5ipov",
2185
2194
  kjBf7l: "xb2ck1y",
2186
2195
  kInvED: "x1ewu8gn",
2187
2196
  k8WAf4: "x18g2hj5",
@@ -5211,8 +5220,8 @@ var themeStyles = {
5211
5220
  kAXs8y: "xr5dkdi",
5212
5221
  kULEZF: "x130h922 xqnxffv",
5213
5222
  kLWn49: "x15bjb6t",
5214
- kVQ08L: "xd0akbl x9me654",
5215
- kdYMnH: "x1o8ym9z x11je3w3",
5223
+ kVQ08L: "x5c9nq0 xczs0xf",
5224
+ kdYMnH: "xye2cm2 x12c0uzw",
5216
5225
  kSiTet: "xijokvz",
5217
5226
  kjBf7l: "x14pgi42 x1x84bn5",
5218
5227
  kInvED: "xecyca2",
@@ -5976,7 +5985,7 @@ var designGallerySections = [{
5976
5985
  label: "Syntax"
5977
5986
  }];
5978
5987
  var designGalleryTouchKinds = ["button", "link", "radio", "range"];
5979
- var designGalleryRecipeCoverage = ["@hraness/ui primitives", "animated rail stage", "application shells", "article layer", "charts", "chat message and composer", "dither surface", "fader", "foil card surface", "layout surfaces", "Lantern material", "playback transport", "plain site and publication grammar", "product-marketing grammar", "Nebula Sans typography", "procedural effects", "platform install commands", "production preview notice", "relative time", "status pages", "syntax highlighting"];
5988
+ var designGalleryRecipeCoverage = ["@hraness/ui primitives", "animated rail stage", "application shells", "article layer", "charts", "chat message and composer", "dither surface", "fader", "foil card surface", "layout surfaces", "Lantern material", "playback transport", "plain site and publication grammar", "product-marketing grammar", "Nebula Sans typography", "procedural effects", "platform install commands", "production preview notice", "relative time", "responsive product walkthroughs", "status pages", "syntax highlighting"];
5980
5989
  var designGalleryRelativeTimeNow = Date.UTC(2026, 8, 26, 12, 0, 0);
5981
5990
  var relativeTimeExamples = [{
5982
5991
  id: "seconds",
@@ -6044,6 +6053,116 @@ var foilDeckExamples = [{
6044
6053
  ornament: "facets",
6045
6054
  preset: "max"
6046
6055
  }];
6056
+ function GalleryJobPreview({
6057
+ state
6058
+ }) {
6059
+ const completed = state === "saved";
6060
+ return /* @__PURE__ */ jsx17(BrowserFrame, {
6061
+ describe: `A conceptual job interface shows a weekly report ${state === "ready" ? "ready to run" : state === "running" ? "being prepared" : "saved beside its source"}.`,
6062
+ url: "relay.example/jobs/weekly-report",
6063
+ children: /* @__PURE__ */ jsxs15("div", {
6064
+ className: "design-gallery__walkthrough-preview",
6065
+ children: [
6066
+ /* @__PURE__ */ jsx17("p", {
6067
+ className: "design-gallery__walkthrough-context",
6068
+ children: "WORKSPACE / JOBS"
6069
+ }),
6070
+ /* @__PURE__ */ jsxs15("p", {
6071
+ className: "design-gallery__walkthrough-title",
6072
+ children: [
6073
+ /* @__PURE__ */ jsx17(SampleText, {
6074
+ children: "Weekly report"
6075
+ }),
6076
+ /* @__PURE__ */ jsx17("span", {
6077
+ className: "design-gallery__walkthrough-state",
6078
+ children: state === "ready" ? "Ready" : completed ? "Saved" : "Running"
6079
+ })
6080
+ ]
6081
+ }),
6082
+ /* @__PURE__ */ jsxs15("dl", {
6083
+ className: "design-gallery__walkthrough-facts",
6084
+ children: [
6085
+ /* @__PURE__ */ jsxs15("div", {
6086
+ children: [
6087
+ /* @__PURE__ */ jsx17("dt", {
6088
+ children: "Source"
6089
+ }),
6090
+ /* @__PURE__ */ jsx17("dd", {
6091
+ children: /* @__PURE__ */ jsx17(SampleText, {
6092
+ children: "orders.csv"
6093
+ })
6094
+ })
6095
+ ]
6096
+ }),
6097
+ /* @__PURE__ */ jsxs15("div", {
6098
+ children: [
6099
+ /* @__PURE__ */ jsx17("dt", {
6100
+ children: "Run"
6101
+ }),
6102
+ /* @__PURE__ */ jsx17("dd", {
6103
+ children: /* @__PURE__ */ jsx17(SampleText, {
6104
+ children: state === "ready" ? "On demand" : "run-042"
6105
+ })
6106
+ })
6107
+ ]
6108
+ })
6109
+ ]
6110
+ }),
6111
+ /* @__PURE__ */ jsxs15("ol", {
6112
+ className: "design-gallery__walkthrough-checks",
6113
+ children: [
6114
+ /* @__PURE__ */ jsxs15("li", {
6115
+ children: [
6116
+ /* @__PURE__ */ jsx17("span", {
6117
+ children: "Check input"
6118
+ }),
6119
+ /* @__PURE__ */ jsx17("span", {
6120
+ children: state === "ready" ? "Waiting" : "Complete"
6121
+ })
6122
+ ]
6123
+ }),
6124
+ /* @__PURE__ */ jsxs15("li", {
6125
+ children: [
6126
+ /* @__PURE__ */ jsx17("span", {
6127
+ children: "Build report"
6128
+ }),
6129
+ /* @__PURE__ */ jsx17("span", {
6130
+ children: state === "ready" ? "Waiting" : completed ? "Complete" : "In progress"
6131
+ })
6132
+ ]
6133
+ }),
6134
+ /* @__PURE__ */ jsxs15("li", {
6135
+ children: [
6136
+ /* @__PURE__ */ jsx17("span", {
6137
+ children: "Save output"
6138
+ }),
6139
+ /* @__PURE__ */ jsx17("span", {
6140
+ children: completed ? "Complete" : "Waiting"
6141
+ })
6142
+ ]
6143
+ })
6144
+ ]
6145
+ }),
6146
+ /* @__PURE__ */ jsxs15("div", {
6147
+ className: "design-gallery__walkthrough-result",
6148
+ children: [
6149
+ /* @__PURE__ */ jsx17("span", {
6150
+ children: completed ? "Saved report" : "Output"
6151
+ }),
6152
+ /* @__PURE__ */ jsx17("strong", {
6153
+ children: /* @__PURE__ */ jsx17(SampleText, {
6154
+ children: completed ? "weekly-report.md" : "Weekly report"
6155
+ })
6156
+ }),
6157
+ /* @__PURE__ */ jsx17("span", {
6158
+ children: completed ? "12 sections · Source attached" : "Available after the run finishes"
6159
+ })
6160
+ ]
6161
+ })
6162
+ ]
6163
+ })
6164
+ });
6165
+ }
6047
6166
  function DesignSystemGallery({
6048
6167
  isNestedInMain = false
6049
6168
  }) {
@@ -6600,6 +6719,39 @@ Run the job, then show me its log.`,
6600
6719
  })
6601
6720
  ]
6602
6721
  }),
6722
+ /* @__PURE__ */ jsx17(MarketingSection, {
6723
+ heading: "Show the result at each step.",
6724
+ headingId: "gallery-walkthrough",
6725
+ headingLevel: 3,
6726
+ label: "Walkthrough",
6727
+ summary: "Use short labels and visible explanations beside a compact illustration of what changes.",
6728
+ children: /* @__PURE__ */ jsx17(StepThrough, {
6729
+ fit: "fill",
6730
+ label: "Run a Relay job",
6731
+ steps: [{
6732
+ id: "choose",
6733
+ label: "Choose a job",
6734
+ hint: "Pick a saved job and review the file it reads before starting the run.",
6735
+ render: () => /* @__PURE__ */ jsx17(GalleryJobPreview, {
6736
+ state: "ready"
6737
+ })
6738
+ }, {
6739
+ id: "run",
6740
+ label: "Watch the run",
6741
+ hint: "See the input check, transformation, and saved output as separate stages.",
6742
+ render: () => /* @__PURE__ */ jsx17(GalleryJobPreview, {
6743
+ state: "running"
6744
+ })
6745
+ }, {
6746
+ id: "inspect",
6747
+ label: "Read the result",
6748
+ hint: "Open the saved report with the run ID and source file beside it.",
6749
+ render: () => /* @__PURE__ */ jsx17(GalleryJobPreview, {
6750
+ state: "saved"
6751
+ })
6752
+ }]
6753
+ })
6754
+ }),
6603
6755
  /* @__PURE__ */ jsx17(MarketingPrimitives, {
6604
6756
  columns: 3,
6605
6757
  heading: "Three objects cover most work.",
@@ -8027,18 +8179,23 @@ function resolveHeader(root, header) {
8027
8179
  return root.querySelector(header);
8028
8180
  return root.querySelector(stickyOffsetHeaderSelector);
8029
8181
  }
8030
- function resolveTarget(header, target) {
8182
+ function resolveTargets(header, target) {
8031
8183
  if (target !== undefined)
8032
- return target;
8033
- const page = header.closest(".hraness-marketing-page");
8034
- return page ?? header.ownerDocument.documentElement;
8184
+ return [target];
8185
+ const targets = new Set([header.ownerDocument.documentElement]);
8186
+ for (let ancestor = header;ancestor !== null; ancestor = ancestor.parentElement) {
8187
+ if (ancestor.matches(".hraness-marketing-page, [data-hraness-marketing-preset]"))
8188
+ targets.add(ancestor);
8189
+ }
8190
+ return [...targets];
8035
8191
  }
8036
8192
  function measureStickyOffset(header) {
8037
8193
  return `${header.getBoundingClientRect().height}px`;
8038
8194
  }
8039
8195
  function publishStickyOffset(header, target) {
8040
8196
  const value = measureStickyOffset(header);
8041
- resolveTarget(header, target).style.setProperty(stickyOffsetCustomProperty, value);
8197
+ for (const destination of resolveTargets(header, target))
8198
+ destination.style.setProperty(stickyOffsetCustomProperty, value);
8042
8199
  return value;
8043
8200
  }
8044
8201
  function syncStickyOffset(options = {}) {
@@ -8049,22 +8206,42 @@ function syncStickyOffset(options = {}) {
8049
8206
  const header = resolveHeader(root, options.header);
8050
8207
  if (header === null)
8051
8208
  return () => {};
8052
- const target = resolveTarget(header, options.target);
8209
+ const targets = resolveTargets(header, options.target);
8210
+ const prior = targets.map((target) => ({
8211
+ target,
8212
+ value: target.style.getPropertyValue(stickyOffsetCustomProperty),
8213
+ priority: typeof target.style.getPropertyPriority === "function" ? target.style.getPropertyPriority(stickyOffsetCustomProperty) : ""
8214
+ }));
8215
+ let published;
8053
8216
  const publish = () => {
8054
- publishStickyOffset(header, target);
8217
+ published = measureStickyOffset(header);
8218
+ for (const target of targets)
8219
+ target.style.setProperty(stickyOffsetCustomProperty, published);
8220
+ };
8221
+ const restore = () => {
8222
+ for (const {
8223
+ target,
8224
+ value,
8225
+ priority
8226
+ } of prior) {
8227
+ if (target.style.getPropertyValue(stickyOffsetCustomProperty) !== published || typeof target.style.getPropertyPriority === "function" && target.style.getPropertyPriority(stickyOffsetCustomProperty) !== "")
8228
+ continue;
8229
+ if (value)
8230
+ target.style.setProperty(stickyOffsetCustomProperty, value, priority);
8231
+ else
8232
+ target.style.removeProperty(stickyOffsetCustomProperty);
8233
+ }
8055
8234
  };
8056
8235
  publish();
8057
8236
  const view = document2.defaultView;
8058
8237
  if (view === null || typeof view.ResizeObserver !== "function") {
8059
- return () => {
8060
- target.style.removeProperty(stickyOffsetCustomProperty);
8061
- };
8238
+ return restore;
8062
8239
  }
8063
8240
  const observer = new view.ResizeObserver(publish);
8064
8241
  observer.observe(header);
8065
8242
  return () => {
8066
8243
  observer.disconnect();
8067
- target.style.removeProperty(stickyOffsetCustomProperty);
8244
+ restore();
8068
8245
  };
8069
8246
  }
8070
8247
 
@@ -68,7 +68,7 @@ import {
68
68
  marketingProofFrameAddress,
69
69
  proceduralBackdropVariants,
70
70
  proceduralRecipeVersion
71
- } from "../chunk-0s71p361.js";
71
+ } from "../chunk-13bq7myc.js";
72
72
  import {
73
73
  SyntaxCode
74
74
  } from "../chunk-6ts4955n.js";
@@ -77,7 +77,7 @@ import"../chunk-wzvdn8ey.js";
77
77
  import"../chunk-he8eznb1.js";
78
78
  import"../chunk-77391vmq.js";
79
79
  import"../chunk-cejpzyfh.js";
80
- import"../chunk-sabcr66p.js";
80
+ import"../chunk-gpsekwkj.js";
81
81
  import"../chunk-5gtx3pza.js";
82
82
  export {
83
83
  proceduralRecipeVersion,