@hraness/design-kit 0.36.2 → 0.36.3

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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hraness/design-kit",
3
- "version": "0.36.2",
3
+ "version": "0.36.3",
4
4
  "description": "React components and CSS for Hraness apps and product sites: application shells, marketing sections, charts, themes, effects, and syntax highlighting. Built on @hraness/ui.",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -6,7 +6,7 @@
6
6
  "name": "@hraness/design-kit",
7
7
  "path": ".",
8
8
  "visibility": "public",
9
- "version": "0.36.2"
9
+ "version": "0.36.3"
10
10
  }
11
11
  ],
12
12
  "contract": "hraness.portfolio-inventory/v1",
@@ -725,8 +725,10 @@
725
725
  text-underline-offset: 0.18em;
726
726
  }
727
727
 
728
- .plain-site.plain-publication.plain-publication--embedded .plain-publication__article-body a:is(:hover, :focus-visible) {
729
- text-decoration-color: currentColor;
728
+ @media (forced-colors: none) {
729
+ .plain-site.plain-publication.plain-publication--embedded .plain-publication__article-body a:is(:hover, :focus-visible) {
730
+ text-decoration-color: currentColor;
731
+ }
730
732
  }
731
733
 
732
734
  .plain-site.plain-publication.plain-publication--embedded .plain-publication__article-body pre {
@@ -952,6 +954,7 @@
952
954
  background: Canvas;
953
955
  }
954
956
 
957
+ .plain-site.plain-publication.plain-publication--embedded .plain-publication__byline a,
955
958
  .plain-site.plain-publication.plain-publication--embedded .plain-publication__article-body a {
956
959
  text-decoration-color: LinkText;
957
960
  }
@@ -593,7 +593,7 @@ export function DesignSystemGallery({
593
593
  { label: "Bring your model", values: [true, { status: "optional", label: "On some plans" }] },
594
594
  { label: "Local storage", values: [true, { status: "depends", detail: "Check the provider's export format." }] },
595
595
  { label: "Cost", values: ["Free locally", "Subscription"] },
596
- ]} note="An illustrative comparison. Product pages supply current facts and sources." />
596
+ ]} note={<span>An illustrative comparison. Product pages supply current facts and <a href="#articles">sources</a>.</span>} />
597
597
  <MarketingAccount id="gallery-account" summary="Keep your preferences and shared work together.">
598
598
  <MarketingAccountActions primary={{ href: "#gallery-account", label: "Create account" }} signIn={{ href: "#gallery-account" }} />
599
599
  </MarketingAccount>
@@ -695,7 +695,7 @@ export function DesignSystemGallery({
695
695
  ]}
696
696
  />
697
697
  )}
698
- author={{ kind: "organization", name: "Hraness" }}
698
+ author={{ kind: "organization", name: "Hraness", href: "https://hraness.com" }}
699
699
  dek="Relay replays a failed webhook from the stored request body, so the retry sends the same bytes the provider signed."
700
700
  eyebrow="Technique"
701
701
  heading="Replaying webhooks without breaking signatures"
@@ -714,7 +714,7 @@ export function DesignSystemGallery({
714
714
  >
715
715
  <h2 id="gallery-article-problem">The problem</h2>
716
716
  <p>
717
- A provider signs the exact request body. Parsing the JSON and serializing it again changes
717
+ A provider signs the <a href="#gallery-article-approach">exact request body</a>. Parsing the JSON and serializing it again changes
718
718
  whitespace and key order, and the signature check then fails on every retry.
719
719
  </p>
720
720
  <ArticleCallout label="Limit" tone="limit">
@@ -758,6 +758,7 @@ export function DesignSystemGallery({
758
758
  },
759
759
  ]}
760
760
  />
761
+ <p className="plain-publication__provenance"><a href="#gallery-article-title">Read the article</a></p>
761
762
  <div className="hraness-prose">
762
763
  <h3>Shared reading scale</h3>
763
764
  <p>
@@ -94,7 +94,7 @@
94
94
  /* Prose and secondary text actions share a quiet, persistent link affordance. */
95
95
  .hraness-text-link,
96
96
  .hraness-prose :where(a:not([role="button"], [data-emphasis], [data-foil])),
97
- .plain-publication__article-body :where(a:not([role="button"], [data-emphasis], [data-foil])),
97
+ :is(.plain-publication__article-body, .plain-publication__sources, .plain-publication__provenance, .hraness-marketing-comparison__note) :where(a:not([role="button"], [data-emphasis], [data-foil])),
98
98
  .plain-page :where(p, li, dd, dt, figcaption) a:not([role="button"], [data-emphasis], [data-foil]) {
99
99
  text-decoration-line: underline;
100
100
  text-decoration-style: dotted;
@@ -103,16 +103,20 @@
103
103
  text-underline-offset: 0.2em;
104
104
  }
105
105
 
106
- .hraness-text-link:is(:hover, :focus-visible),
107
- .hraness-prose :where(a:not([role="button"], [data-emphasis], [data-foil])):is(:hover, :focus-visible),
108
- .plain-page :where(p, li, dd, dt, figcaption) a:not([role="button"], [data-emphasis], [data-foil]):is(:hover, :focus-visible) {
109
- text-decoration-color: currentColor;
106
+ @media (forced-colors: none) {
107
+ .hraness-text-link:is(:hover, :focus-visible),
108
+ .hraness-prose :where(a:not([role="button"], [data-emphasis], [data-foil])):is(:hover, :focus-visible),
109
+ :is(.plain-publication__article-body, .plain-publication__sources, .plain-publication__provenance, .hraness-marketing-comparison__note) :where(a:not([role="button"], [data-emphasis], [data-foil])):is(:hover, :focus-visible),
110
+ .plain-page :where(p, li, dd, dt, figcaption) a:not([role="button"], [data-emphasis], [data-foil]):is(:hover, :focus-visible) {
111
+ text-decoration-color: currentColor;
112
+ }
110
113
  }
111
114
 
112
115
  @media (forced-colors: active) {
113
116
  .hraness-text-link,
114
- .hraness-prose :where(a),
115
- .plain-page :where(p, li, dd, dt, figcaption) a {
117
+ .hraness-prose :where(a:not([role="button"], [data-emphasis], [data-foil])),
118
+ :is(.plain-publication__article-body, .plain-publication__sources, .plain-publication__provenance, .hraness-marketing-comparison__note) :where(a:not([role="button"], [data-emphasis], [data-foil])),
119
+ .plain-page :where(p, li, dd, dt, figcaption) a:not([role="button"], [data-emphasis], [data-foil]) {
116
120
  text-decoration-color: LinkText;
117
121
  }
118
122
  }