@rxova/brand 0.8.0 → 0.8.2

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.
Binary file
Binary file
Binary file
Binary file
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rxova/brand",
3
- "version": "0.8.0",
3
+ "version": "0.8.2",
4
4
  "type": "module",
5
5
  "description": "Design tokens, Starlight theme and shared site chrome for rxova.org",
6
6
  "keywords": [
@@ -50,7 +50,7 @@ const { homeHref, logoSrc, items } = Astro.props
50
50
  <div class="site__inner">
51
51
  <a class="brand" href={homeHref}>
52
52
  <img src={logoSrc} alt="" width="28" height="28" />
53
- <span>rxova</span>
53
+ <span>Rxova</span>
54
54
  </a>
55
55
  <nav aria-label="Sections">
56
56
  {
@@ -35,11 +35,15 @@ interface Props {
35
35
  /**
36
36
  * The standalone surfaces to list under "Site", below Home.
37
37
  *
38
- * Defaults to Blog and Updates, which is what every surface showed when this
39
- * column was hardcoded. It is a prop because only the umbrella repo knows
40
- * which surfaces are actually *deployed* `sources.json` gates the mount and
41
- * the link together and a hardcoded list advertises a 404 for a surface
42
- * whose first build has not landed yet. Same reason `Header` takes `items`.
38
+ * It is a prop because only the umbrella repo knows which *mounted* surfaces
39
+ * are actually deployed `sources.json` gates the mount and the link
40
+ * together and a hardcoded list advertises a 404 for a surface whose first
41
+ * build has not landed yet. Same reason `Header` takes `items`.
42
+ *
43
+ * The default covers the caller that cannot know: a docs site, or this
44
+ * package's own shell. /about is safe to include there unconditionally
45
+ * because it is a page of the landing's Astro build rather than a mount —
46
+ * there is no artifact to wait for, so it exists whenever the landing does.
43
47
  */
44
48
  site?: readonly SiteLink[]
45
49
  }
@@ -51,6 +55,7 @@ const year = new Date().getFullYear()
51
55
  const surfaces: readonly SiteLink[] = site ?? [
52
56
  { label: 'Blog', href: siteUrl('/blog') },
53
57
  { label: 'Updates', href: siteUrl('/updates') },
58
+ { label: 'About', href: siteUrl('/about') },
54
59
  ]
55
60
  ---
56
61
 
@@ -59,10 +64,17 @@ const surfaces: readonly SiteLink[] = site ?? [
59
64
  <div class="rx-footer__brand">
60
65
  <a class="rx-footer__mark" href={RXOVA_ORIGIN}>
61
66
  <img src={siteUrl('/rxova-logo-256.png')} alt="" width="28" height="28" loading="lazy" />
62
- <span>rxova</span>
67
+ <span>Rxova</span>
63
68
  </a>
69
+ {
70
+ /* Not "React libraries": two of the three ship a framework-agnostic
71
+ core that runs in a worker or a plain script, and Journey also ships a
72
+ browser extension. React is a binding we provide, not the boundary of
73
+ what these are. Same correction as the landing's hero. */
74
+ }
64
75
  <p class="rx-footer__blurb">
65
- Open-source React libraries, documented in one place. MIT licensed, built in the open.
76
+ Small TypeScript libraries for the browser, documented in one place. MIT licensed, built in
77
+ the open.
66
78
  </p>
67
79
  </div>
68
80
 
@@ -152,7 +164,7 @@ const surfaces: readonly SiteLink[] = site ?? [
152
164
  </div>
153
165
 
154
166
  <div class="rx-footer__legal">
155
- <p>© {year} rxova · MIT licensed</p>
167
+ <p>© {year} Rxova · MIT licensed</p>
156
168
  <div class="rx-footer__legal-links">
157
169
  <a href={siteUrl('/privacy')}>Privacy</a>
158
170
  <a href={siteUrl('/terms')}>Terms</a>
@@ -39,6 +39,12 @@ const canonical = `${RXOVA_ORIGIN}${path}`
39
39
  */
40
40
  const base = import.meta.env.BASE_URL.replace(/\/$/, '')
41
41
 
42
+ /**
43
+ * The surfaces that can be the *current* one here — the mounted ones this shell
44
+ * is ever built for. /about is not among them: it is a page of the landing's own
45
+ * Astro build rather than a mount, so it can never match `base`, and it is added
46
+ * as a fixed trailing item below.
47
+ */
42
48
  const SECTIONS = [
43
49
  { label: 'Blog', path: '/blog' },
44
50
  { label: 'Updates', path: '/updates' },
@@ -65,6 +71,12 @@ const items: HeaderItem[] = [
65
71
  ? { label: section.label, href: inside(), current: true }
66
72
  : { label: section.label, href: siteUrl(section.path) },
67
73
  ),
74
+ // Fixed trailing item, like Projects is a fixed leading one, and for the same
75
+ // reason: it belongs to the landing's build, so it is always deployed and can
76
+ // never be the current surface here. The landing grew an About entry and these
77
+ // two did not, which left a reader on a post with no way to reach it — the
78
+ // failure mode this shell exists to prevent.
79
+ { label: 'About', href: siteUrl('/about') },
68
80
  ]
69
81
  ---
70
82
 
@@ -28,7 +28,7 @@ const { siteTitle, siteTitleHref } = (
28
28
  ---
29
29
 
30
30
  <div class="rx-site-title">
31
- <a href={RXOVA_ORIGIN} class="rx-site-title__mark" aria-label="rxova home">
31
+ <a href={RXOVA_ORIGIN} class="rx-site-title__mark" aria-label="Rxova home">
32
32
  <img src={mark.src} alt="" width="28" height="28" />
33
33
  </a>
34
34
  <span class="rx-site-title__sep" aria-hidden="true"></span>