@wix/himalaya-cli 0.1044.0 → 0.1045.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.
package/dist/cli.mjs CHANGED
@@ -13197,8 +13197,17 @@ function hexToRgb2(hex2) {
13197
13197
  return [int >> 16 & 255, int >> 8 & 255, int & 255];
13198
13198
  }
13199
13199
  function rgba(color, alpha2) {
13200
- const rgb = hexToRgb2(color);
13201
- return rgb ? `rgba(${rgb[0]}, ${rgb[1]}, ${rgb[2]}, ${clamp(alpha2)})` : color;
13200
+ let h = color.trim().replace(/^#/, "");
13201
+ let own3 = 1;
13202
+ if (/^[\da-f]{4}$/i.test(h) || /^[\da-f]{8}$/i.test(h)) {
13203
+ const a = h.length === 4 ? h[3] + h[3] : h.slice(6, 8);
13204
+ own3 = parseInt(a, 16) / 255;
13205
+ h = h.length === 4 ? h.slice(0, 3) : h.slice(0, 6);
13206
+ }
13207
+ const rgb = hexToRgb2(`#${h}`);
13208
+ if (!rgb) return color;
13209
+ const composed = own3 === 1 ? clamp(alpha2) : Math.round(clamp(alpha2) * own3 * 1e3) / 1e3;
13210
+ return `rgba(${rgb[0]}, ${rgb[1]}, ${rgb[2]}, ${composed})`;
13202
13211
  }
13203
13212
  function normalizeSpring(spring, durationMs) {
13204
13213
  return {
@@ -24966,6 +24975,7 @@ function withTheme(ctx, theme) {
24966
24975
  const base = ctx.tokens;
24967
24976
  const colors = { ...base.colors ?? {} };
24968
24977
  if (theme.colors) for (const [k, v] of Object.entries(theme.colors)) colors[k] = v;
24978
+ if (theme.colors && "accentPrimary" in theme.colors && !("accentText" in theme.colors)) delete colors.accentText;
24969
24979
  const typography = { ...base.typography ?? {} };
24970
24980
  if (theme.typography) for (const [k, v] of Object.entries(theme.typography)) typography[k] = v;
24971
24981
  const kit = { ...base.kit ?? {} };
@@ -26143,6 +26153,9 @@ function actionClick(ctx, action) {
26143
26153
  ctx.onAction(resolveItemDeep2(action, ctx));
26144
26154
  };
26145
26155
  }
26156
+ function accentTextColor(ctx) {
26157
+ return ctx.color("accentText", ctx.color("accentPrimary", "#116DFF"));
26158
+ }
26146
26159
  function actionTextButton(ctx, action, label2, color, extra) {
26147
26160
  if (action == null) return null;
26148
26161
  const onClick = actionClick(ctx, action);
@@ -29033,7 +29046,7 @@ var init_renderNode = __esm({
29033
29046
  e?.stopPropagation?.();
29034
29047
  ctx.onAction(resolveItemDeep2(props.action, ctx));
29035
29048
  } : void 0;
29036
- const fg = primary ? C("textOnAccent", "#fff") : accent;
29049
+ const fg = primary ? C("textOnAccent", "#fff") : accentTextColor(ctx);
29037
29050
  const pillRadius = props.cornerRadius != null ? props.cornerRadius : ctx.radius("pill", 24);
29038
29051
  const vPad = props.iconOnly ? 11 : props.size === "sm" ? 8 : props.size === "lg" ? 16 : 13;
29039
29052
  const hPadBase = props.iconOnly ? 11 : props.size === "sm" ? 13 : props.size === "lg" ? 22 : 16;
@@ -29102,14 +29115,14 @@ var init_renderNode = __esm({
29102
29115
  fontSize: f.remSize,
29103
29116
  background: primary ? accent : "transparent",
29104
29117
  color: fg,
29105
- border: outlined ? `1px solid ${accent}` : "none",
29118
+ border: outlined ? `1px solid ${fg}` : "none",
29106
29119
  cursor: disabled ? "default" : "pointer",
29107
29120
  opacity: disabled ? 0.55 : 1,
29108
29121
  boxSizing: "border-box",
29109
29122
  ...wrap
29110
29123
  }, rowStretch, "fit-content"),
29111
29124
  children: [
29112
- props.loading && /* @__PURE__ */ jsx6("span", { style: { width: glyph, height: glyph, borderRadius: "50%", border: `2px solid ${primary ? "rgba(255,255,255,.4)" : "rgba(17,109,255,.35)"}`, borderTopColor: fg, animation: ctx.empty ? void 0 : "himalaya-spin .7s linear infinite" } }),
29125
+ props.loading && /* @__PURE__ */ jsx6("span", { style: { width: glyph, height: glyph, borderRadius: "50%", border: `2px solid ${rgba(fg, primary ? 0.4 : 0.35)}`, borderTopColor: fg, animation: ctx.empty ? void 0 : "himalaya-spin .7s linear infinite" } }),
29113
29126
  !props.loading && resolvedLeadingIcon && ic(String(resolvedLeadingIcon)),
29114
29127
  !props.iconOnly && (resolvedTitle != null && resolvedTitle !== "" ? String(resolvedTitle) : txt(props.title, ctx) || "Button"),
29115
29128
  !props.loading && !props.iconOnly && resolvedTrailingIcon && ic(String(resolvedTrailingIcon))
@@ -50828,21 +50841,21 @@ var init_preview_assets_generated = __esm({
50828
50841
  "../../packages/serve/src/preview-assets.generated.ts"() {
50829
50842
  init_preview_assets_format();
50830
50843
  PREVIEW_ASSET_MANIFEST = [
50831
- { key: "assets/index-i1HVt_7j.js", contentType: "application/javascript; charset=utf-8", offset: 8, length: 1051636, sha256: "cfb282567ed9de1491cb9d91f16c329e6560a6809da79cca4be3b35bc5b4b161" },
50832
- { key: "fonts/Roboto-LICENSE.txt", contentType: "application/octet-stream", offset: 1051644, length: 4610, sha256: "994062dd7af4186a739de55dd9e151c63b6301f8e2cbafc608d35c2e87da0cd2" },
50833
- { key: "fonts/Roboto-Variable.ttf", contentType: "font/ttf", offset: 1056254, length: 488584, sha256: "d7598e12c5dbef095ff8272cfc55da0250bd07fbdecbac8a530b9b277872a134" },
50834
- { key: "fonts/WixMadeforDisplay-Bold.ttf", contentType: "font/ttf", offset: 1544838, length: 90924, sha256: "ec4c7d63772d980d6e147b2df6215fd2737e4b04cebe0cf7e11dc695fb63cdcf" },
50835
- { key: "fonts/WixMadeforDisplay-ExtraBold.ttf", contentType: "font/ttf", offset: 1635762, length: 90984, sha256: "bf4c16a2774edd38a921edf3099469866cd74c094fd596f3fa4e81f54a04dfaa" },
50836
- { key: "fonts/WixMadeforDisplay-Medium.ttf", contentType: "font/ttf", offset: 1726746, length: 90980, sha256: "368faca44fb9f7207e4af784e94750b1ee59c1098b8689e0f4a918926f244fb5" },
50837
- { key: "fonts/WixMadeforDisplay-Regular.ttf", contentType: "font/ttf", offset: 1817726, length: 90872, sha256: "97ed8f1a6772abe26e3d8af5cecfc4b02faa94497d585b0398b5053b739a70c1" },
50838
- { key: "fonts/WixMadeforDisplay-SemiBold.ttf", contentType: "font/ttf", offset: 1908598, length: 90980, sha256: "642feab8a48ddf6c7a89d7c2a7c0edfa0e6e773f671287e460e222703563191e" },
50839
- { key: "fonts/WixMadeforText-Bold.ttf", contentType: "font/ttf", offset: 1999578, length: 108636, sha256: "37c179b4fefb63ea9637322b84583a2df53aa226c150294eea1675c14b1b8e29" },
50840
- { key: "fonts/WixMadeforText-ExtraBold.ttf", contentType: "font/ttf", offset: 2108214, length: 109084, sha256: "62e2fe4718129f36ecdb0ae4de385bd6b81ecc876146447167c6c140fad699a9" },
50841
- { key: "fonts/WixMadeforText-Medium.ttf", contentType: "font/ttf", offset: 2217298, length: 109048, sha256: "4ecf270136af928612c76fe4ebade91d8156975e5ea4c0cf9225501dd1788e02" },
50842
- { key: "fonts/WixMadeforText-Regular.ttf", contentType: "font/ttf", offset: 2326346, length: 107700, sha256: "dee56f09fd3efc127c1ea95557edc74110c1460a46287da36e0af25efd341ef5" },
50843
- { key: "fonts/WixMadeforText-SemiBold.ttf", contentType: "font/ttf", offset: 2434046, length: 88108, sha256: "dced97a77624bc5f8b1ae65850360908297f4588e09feb6f22792d29dc7e765b" },
50844
- { key: "index.html", contentType: "text/html; charset=utf-8", offset: 2522154, length: 4947, sha256: "3c696c7f99affdf0305da31e2e6a6355a33d87ce9676a62ddea33babcd95f978" },
50845
- { key: "t5-frame.html", contentType: "text/html; charset=utf-8", offset: 2527101, length: 17209, sha256: "dffc9718e2faa63ae2cc919e0a842f585ed565aaaa7c53778e90379442c731b6" }
50844
+ { key: "assets/index-C8FaHVmV.js", contentType: "application/javascript; charset=utf-8", offset: 8, length: 1052014, sha256: "607f0eff78c1f286d1d94f6d6c08868e2deec8d39ace8176b374f0117026998a" },
50845
+ { key: "fonts/Roboto-LICENSE.txt", contentType: "application/octet-stream", offset: 1052022, length: 4610, sha256: "994062dd7af4186a739de55dd9e151c63b6301f8e2cbafc608d35c2e87da0cd2" },
50846
+ { key: "fonts/Roboto-Variable.ttf", contentType: "font/ttf", offset: 1056632, length: 488584, sha256: "d7598e12c5dbef095ff8272cfc55da0250bd07fbdecbac8a530b9b277872a134" },
50847
+ { key: "fonts/WixMadeforDisplay-Bold.ttf", contentType: "font/ttf", offset: 1545216, length: 90924, sha256: "ec4c7d63772d980d6e147b2df6215fd2737e4b04cebe0cf7e11dc695fb63cdcf" },
50848
+ { key: "fonts/WixMadeforDisplay-ExtraBold.ttf", contentType: "font/ttf", offset: 1636140, length: 90984, sha256: "bf4c16a2774edd38a921edf3099469866cd74c094fd596f3fa4e81f54a04dfaa" },
50849
+ { key: "fonts/WixMadeforDisplay-Medium.ttf", contentType: "font/ttf", offset: 1727124, length: 90980, sha256: "368faca44fb9f7207e4af784e94750b1ee59c1098b8689e0f4a918926f244fb5" },
50850
+ { key: "fonts/WixMadeforDisplay-Regular.ttf", contentType: "font/ttf", offset: 1818104, length: 90872, sha256: "97ed8f1a6772abe26e3d8af5cecfc4b02faa94497d585b0398b5053b739a70c1" },
50851
+ { key: "fonts/WixMadeforDisplay-SemiBold.ttf", contentType: "font/ttf", offset: 1908976, length: 90980, sha256: "642feab8a48ddf6c7a89d7c2a7c0edfa0e6e773f671287e460e222703563191e" },
50852
+ { key: "fonts/WixMadeforText-Bold.ttf", contentType: "font/ttf", offset: 1999956, length: 108636, sha256: "37c179b4fefb63ea9637322b84583a2df53aa226c150294eea1675c14b1b8e29" },
50853
+ { key: "fonts/WixMadeforText-ExtraBold.ttf", contentType: "font/ttf", offset: 2108592, length: 109084, sha256: "62e2fe4718129f36ecdb0ae4de385bd6b81ecc876146447167c6c140fad699a9" },
50854
+ { key: "fonts/WixMadeforText-Medium.ttf", contentType: "font/ttf", offset: 2217676, length: 109048, sha256: "4ecf270136af928612c76fe4ebade91d8156975e5ea4c0cf9225501dd1788e02" },
50855
+ { key: "fonts/WixMadeforText-Regular.ttf", contentType: "font/ttf", offset: 2326724, length: 107700, sha256: "dee56f09fd3efc127c1ea95557edc74110c1460a46287da36e0af25efd341ef5" },
50856
+ { key: "fonts/WixMadeforText-SemiBold.ttf", contentType: "font/ttf", offset: 2434424, length: 88108, sha256: "dced97a77624bc5f8b1ae65850360908297f4588e09feb6f22792d29dc7e765b" },
50857
+ { key: "index.html", contentType: "text/html; charset=utf-8", offset: 2522532, length: 4947, sha256: "3fd26f396a5b472e603185fb99d5b905f37b98615b2bf95456e4e9b03ae05429" },
50858
+ { key: "t5-frame.html", contentType: "text/html; charset=utf-8", offset: 2527479, length: 17209, sha256: "dffc9718e2faa63ae2cc919e0a842f585ed565aaaa7c53778e90379442c731b6" }
50846
50859
  ];
50847
50860
  }
50848
50861
  });
@@ -54487,6 +54500,35 @@ function tuneHighContrastAccent(brand, surface) {
54487
54500
  }
54488
54501
  return candidate;
54489
54502
  }
54503
+ function deriveAccentText(accent, surfaces) {
54504
+ const all = (typeof surfaces === "string" ? [surfaces] : [...surfaces]).map((s) => s.slice(0, 7));
54505
+ const page = all[0];
54506
+ const worst = (color) => Math.min(...all.map((s) => contrastRatio3(color, s)));
54507
+ const opaque = accent.length === 9 ? mix2(accent.slice(0, 7), page, channel2(accent, 7) / 255) : accent;
54508
+ if (worst(opaque) >= ACCENT_TEXT_MIN_CONTRAST) return opaque;
54509
+ const pole = worst("#FFFFFF") >= worst("#000000") ? "#FFFFFF" : "#000000";
54510
+ for (let step = 1; step <= 100; step++) {
54511
+ const candidate = mix2(pole, opaque, step / 100);
54512
+ if (worst(candidate) >= ACCENT_TEXT_MIN_CONTRAST) return candidate;
54513
+ }
54514
+ if (all.length > 1) {
54515
+ const side2 = (hex2) => relativeLuminance2(hex2) > MID_GREY_LUMINANCE;
54516
+ const sameSide = all.filter((s) => side2(s) === side2(page));
54517
+ return deriveAccentText(accent, sameSide.length < all.length ? sameSide : [page]);
54518
+ }
54519
+ return pole;
54520
+ }
54521
+ function textSurfacesOf(colors) {
54522
+ const out = { light: [], dark: [], highContrast: [] };
54523
+ for (const name of TEXT_BACKDROP_TOKENS) {
54524
+ const value = colors[name];
54525
+ for (const arm of ["light", "dark", "highContrast"]) {
54526
+ const hex2 = typeof value === "string" ? value : value && typeof value === "object" && !Array.isArray(value) ? value[arm] ?? value.light : void 0;
54527
+ if (typeof hex2 === "string" && hex2.startsWith("#") && hex2.length >= 7) out[arm].push(hex2);
54528
+ }
54529
+ }
54530
+ return out;
54531
+ }
54490
54532
  function stripBrandFromIdiom(tokens) {
54491
54533
  const idiom = tokens.idiom;
54492
54534
  if (!idiom || typeof idiom !== "object" || Array.isArray(idiom)) return;
@@ -54507,7 +54549,7 @@ function stripBrandFromIdiom(tokens) {
54507
54549
  }
54508
54550
  }
54509
54551
  }
54510
- function deriveAccentFamily(primary, secondary, surfaces) {
54552
+ function deriveAccentFamily(primary, secondary, surfaces, textSurfaces = {}) {
54511
54553
  const primaryDark = tuneDarkAccent(primary, surfaces.dark, surfaces.light);
54512
54554
  const secondaryDark = tuneDarkAccent(secondary, surfaces.dark, surfaces.light);
54513
54555
  const primaryHigh = tuneHighContrastAccent(primary, surfaces.highContrast);
@@ -54524,10 +54566,15 @@ function deriveAccentFamily(primary, secondary, surfaces) {
54524
54566
  light: textOnArm(primary),
54525
54567
  dark: textOnArm(primaryDark),
54526
54568
  highContrast: textOn(primaryHigh)
54569
+ },
54570
+ accentText: {
54571
+ light: deriveAccentText(primary, [surfaces.light, ...textSurfaces.light ?? []]),
54572
+ dark: deriveAccentText(primaryDark, [surfaces.dark, ...textSurfaces.dark ?? []]),
54573
+ highContrast: deriveAccentText(primaryHigh, [surfaces.highContrast, ...textSurfaces.highContrast ?? []])
54527
54574
  }
54528
54575
  };
54529
54576
  }
54530
- var ACCENT_SURFACE_MIN_DELTA, ACCENT_SURFACE_LIGHT_WEIGHT, SECONDARY_SHADE_WEIGHT, SECONDARY_MIN_LSTAR, DARK_ARM_MIN_LIFT, DARK_ARM_TARGET_CONTRAST, DARK_ARM_FLOOR_CONTRAST, DARK_ARM_LSTAR_CAP, HIGH_CONTRAST_TARGET, BRAND_COLOR_TOKENS, BRAND_GLOW_SHADOW;
54577
+ var ACCENT_SURFACE_MIN_DELTA, ACCENT_SURFACE_LIGHT_WEIGHT, SECONDARY_SHADE_WEIGHT, SECONDARY_MIN_LSTAR, DARK_ARM_MIN_LIFT, DARK_ARM_TARGET_CONTRAST, DARK_ARM_FLOOR_CONTRAST, DARK_ARM_LSTAR_CAP, HIGH_CONTRAST_TARGET, ACCENT_TEXT_MIN_CONTRAST, MID_GREY_LUMINANCE, TEXT_BACKDROP_TOKENS, BRAND_COLOR_TOKENS, BRAND_GLOW_SHADOW;
54531
54578
  var init_brand_color_math = __esm({
54532
54579
  "../../core/ts/src/brand-color-math.ts"() {
54533
54580
  ACCENT_SURFACE_MIN_DELTA = 1.08;
@@ -54539,7 +54586,10 @@ var init_brand_color_math = __esm({
54539
54586
  DARK_ARM_FLOOR_CONTRAST = 3;
54540
54587
  DARK_ARM_LSTAR_CAP = 80;
54541
54588
  HIGH_CONTRAST_TARGET = 8.5;
54542
- BRAND_COLOR_TOKENS = ["accentPrimary", "accentSecondary", "accentSurface", "textOnAccent"];
54589
+ ACCENT_TEXT_MIN_CONTRAST = 4.5;
54590
+ MID_GREY_LUMINANCE = 0.179;
54591
+ TEXT_BACKDROP_TOKENS = ["surfaceSecondary", "surfaceElevated", "surfaceSubtle", "surfaceTertiary"];
54592
+ BRAND_COLOR_TOKENS = ["accentPrimary", "accentSecondary", "accentSurface", "textOnAccent", "accentText"];
54543
54593
  BRAND_GLOW_SHADOW = "glow";
54544
54594
  }
54545
54595
  });
@@ -54575,7 +54625,9 @@ function withDerivedAccents(tokensOverlay, wst) {
54575
54625
  light: lightArm2(surfacePrimary) ?? "#FFFFFF",
54576
54626
  dark: armOf(surfacePrimary, "dark") ?? "#0D1117",
54577
54627
  highContrast: armOf(surfacePrimary, "highContrast") ?? "#000000"
54578
- });
54628
+ // #3275 — the crawl knows only the site's LIGHT surfaces; a light card judged against a dark
54629
+ // arm would fight that arm's page, and `--apply` re-derives every arm after the merge anyway.
54630
+ }, { light: textSurfacesOf(tokensOverlay.colors ?? {}).light });
54579
54631
  const keepCrawledLight = (derived, existing) => {
54580
54632
  const crawled = lightArm2(existing);
54581
54633
  return crawled ? { ...derived, light: crawled } : derived;
@@ -54584,6 +54636,7 @@ function withDerivedAccents(tokensOverlay, wst) {
54584
54636
  colors.accentSecondary = keepCrawledLight(family.accentSecondary, tokensOverlay.colors?.accentSecondary);
54585
54637
  colors.accentSurface = keepCrawledLight(family.accentSurface, tokensOverlay.colors?.accentSurface);
54586
54638
  colors.textOnAccent = keepCrawledLight(family.textOnAccent, tokensOverlay.colors?.textOnAccent);
54639
+ colors.accentText = keepCrawledLight(family.accentText, tokensOverlay.colors?.accentText);
54587
54640
  return { ...tokensOverlay, colors };
54588
54641
  }
54589
54642
  function mergedArm(colors, name, arm, fallback) {
@@ -54606,11 +54659,12 @@ function alignAccentsToSurfaces(mergedColors, overlayColors) {
54606
54659
  light: mergedArm(colors, "surfacePrimary", "light", "#FFFFFF"),
54607
54660
  dark: mergedArm(colors, "surfacePrimary", "dark", "#0D1117"),
54608
54661
  highContrast: mergedArm(colors, "surfacePrimary", "highContrast", "#000000")
54609
- });
54662
+ }, textSurfacesOf(colors));
54610
54663
  colors.accentPrimary = family.accentPrimary;
54611
54664
  colors.accentSecondary = family.accentSecondary;
54612
54665
  colors.accentSurface = family.accentSurface;
54613
54666
  colors.textOnAccent = family.textOnAccent;
54667
+ colors.accentText = family.accentText;
54614
54668
  return colors;
54615
54669
  }
54616
54670
  function deriveBranding(input) {
Binary file
@@ -83,7 +83,11 @@ family whose faces could not be fetched, which would otherwise ship as its fallb
83
83
  ### Token discipline — every value is a `TokenRef`, never a literal
84
84
  Colors, gradients, shadows, materials, motions are named tokens (`{ token: "accentPrimary" }`), never
85
85
  hex. `himi validate` rejects unknown names; a literal hex is a design smell even when it "works." Use the **semantic** roles for meaning:
86
- `success` / `warning` / `danger` for status, `textOnAccent` for text sitting on an accent surface.
86
+ `success` / `warning` / `danger` for status, `textOnAccent` for text sitting on an accent surface,
87
+ and `accentText` for accent-COLOURED text on the page (links, "See all"). `accentPrimary` is the
88
+ accent FILL; many brand accents fail 4.5:1 as text, so brand derivation writes a same-hue
89
+ `accentText` that passes, and secondary/tertiary/link/plain Button labels already use it. It is
90
+ optional: every renderer falls back to `accentPrimary` when a tokens.json has none.
87
91
 
88
92
  ### Copy is configuration — never hardcoded in the descriptor
89
93
  User-facing text is white-labelable **configuration**, exactly like a color token — a template/app
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wix/himalaya-cli",
3
- "version": "0.1044.0",
3
+ "version": "0.1045.0",
4
4
  "type": "module",
5
5
  "description": "himi — the Himalaya authoring CLI. Build a Tier-5 content package on your own machine, push it to the production serve as a draft, preview it on web + Himi Player, and read worker logs back — the remote dev loop. Wraps @himalaya/serve-cli for transport.",
6
6
  "keywords": [
@@ -65,5 +65,5 @@
65
65
  "artifactId": "himalaya-cli"
66
66
  }
67
67
  },
68
- "falconPackageHash": "7c2534e837382316a3416a0e6225572fbc86b02c8b5b35cea3d7530b"
68
+ "falconPackageHash": "0a575418cdf281d15de4e62af6654a6d47a91cf26467dad0a437484b"
69
69
  }
@@ -126,6 +126,14 @@ elevation subtle (≤ 2:1 vs the page, dark arms stepping *lighter* as elevation
126
126
  rises); accents ≥ 3:1 on the page with textOnAccent ≥ 4.5:1; semantic colors
127
127
  ≥ 3:1 on the page and on their own surfaces.
128
128
 
129
+ `accentText` (#3275) is deliberately NOT in the ladder. It is the accent's text
130
+ arm, which non-filled button labels paint and which falls back to `accentPrimary`
131
+ when absent. Brand application derives it per arm: the brand itself when it already
132
+ clears 4.5:1 on `surfacePrimary`, else the smallest same-hue step that does
133
+ (`deriveAccentText` in `core/ts/src/brand-color-math.ts`). A kit never has to ship
134
+ it, and `core/ts/tests/brand-tokens.test.ts` checks that every kit × brand result
135
+ clears 4.5:1.
136
+
129
137
  Deliberate judgment calls (the 2026-07 color reconsideration):
130
138
 
131
139
  - **playful** — the hot-pink `textPrimary` failed 7:1 everywhere; legibility
@@ -94,6 +94,11 @@
94
94
  "light": "#E3E3DF",
95
95
  "dark": "#262626",
96
96
  "highContrast": "#FFFFFF"
97
+ },
98
+ "accentText": {
99
+ "light": "#9C5853",
100
+ "dark": "#BA837E",
101
+ "highContrast": "#CA9E9B"
97
102
  }
98
103
  },
99
104
  "spacing": {
@@ -90,6 +90,11 @@
90
90
  "dangerSurface": {
91
91
  "light": "#F6E9E7",
92
92
  "dark": "#241312"
93
+ },
94
+ "accentText": {
95
+ "light": "#8E3D6B",
96
+ "dark": "#B47D9C",
97
+ "highContrast": "#C49AB2"
93
98
  }
94
99
  },
95
100
  "spacing": {
@@ -98,6 +98,11 @@
98
98
  "pushShadow": {
99
99
  "light": "#D61F6E",
100
100
  "dark": "#7E1044"
101
+ },
102
+ "accentText": {
103
+ "light": "#6C3FC4",
104
+ "dark": "#9E80D8",
105
+ "highContrast": "#B39BE0"
101
106
  }
102
107
  },
103
108
  "spacing": {
@@ -94,6 +94,11 @@
94
94
  "pushShadow": {
95
95
  "light": "#D61F6E",
96
96
  "dark": "#7E1044"
97
+ },
98
+ "accentText": {
99
+ "light": "#4C4BC4",
100
+ "dark": "#8787D7",
101
+ "highContrast": "#A2A1E0"
97
102
  }
98
103
  },
99
104
  "spacing": {
@@ -94,6 +94,11 @@
94
94
  "light": "#DCE2F5",
95
95
  "dark": "#262C42",
96
96
  "highContrast": "#FFFFFF"
97
+ },
98
+ "accentText": {
99
+ "light": "#5B3E96",
100
+ "dark": "#9987BE",
101
+ "highContrast": "#B0A2CD"
97
102
  }
98
103
  },
99
104
  "spacing": {
@@ -90,6 +90,11 @@
90
90
  "dangerSurface": {
91
91
  "light": "#FBE5E7",
92
92
  "dark": "#2B131A"
93
+ },
94
+ "accentText": {
95
+ "light": "#1A6BA1",
96
+ "dark": "#5594BE",
97
+ "highContrast": "#7FAECE"
93
98
  }
94
99
  },
95
100
  "spacing": {
@@ -94,6 +94,11 @@
94
94
  "light": "#000000",
95
95
  "dark": "#FFFFFF",
96
96
  "highContrast": "#FFFFFF"
97
+ },
98
+ "accentText": {
99
+ "light": "#A84A29",
100
+ "dark": "#CF7A5D",
101
+ "highContrast": "#DA9982"
97
102
  }
98
103
  },
99
104
  "spacing": {
@@ -90,6 +90,11 @@
90
90
  "dangerSurface": {
91
91
  "light": "#FFD6D6",
92
92
  "dark": "#291111"
93
+ },
94
+ "accentText": {
95
+ "light": "#B43F0F",
96
+ "dark": "#DE6D3F",
97
+ "highContrast": "#E69371"
93
98
  }
94
99
  },
95
100
  "spacing": {
@@ -94,6 +94,11 @@
94
94
  "light": "#CAC4D0",
95
95
  "dark": "#49454F",
96
96
  "highContrast": "#FFFFFF"
97
+ },
98
+ "accentText": {
99
+ "light": "#0F6B5C",
100
+ "dark": "#5E9C92",
101
+ "highContrast": "#82B2AA"
97
102
  }
98
103
  },
99
104
  "spacing": {
@@ -90,6 +90,11 @@
90
90
  "dangerSurface": {
91
91
  "light": "#F9DEDC",
92
92
  "dark": "#33191E"
93
+ },
94
+ "accentText": {
95
+ "light": "#2B7349",
96
+ "dark": "#5F9A77",
97
+ "highContrast": "#82B195"
93
98
  }
94
99
  },
95
100
  "spacing": {
@@ -94,6 +94,11 @@
94
94
  "light": "#262B36",
95
95
  "dark": "#262B36",
96
96
  "highContrast": "#FFFFFF"
97
+ },
98
+ "accentText": {
99
+ "light": "#8B6FFF",
100
+ "dark": "#957CFF",
101
+ "highContrast": "#AE9AFF"
97
102
  }
98
103
  },
99
104
  "spacing": {
@@ -90,6 +90,11 @@
90
90
  "dangerSurface": {
91
91
  "light": "#221214",
92
92
  "dark": "#221214"
93
+ },
94
+ "accentText": {
95
+ "light": "#9474E1",
96
+ "dark": "#9A7CE2",
97
+ "highContrast": "#B49DEA"
93
98
  }
94
99
  },
95
100
  "spacing": {
@@ -94,6 +94,11 @@
94
94
  "light": "#E3E3DF",
95
95
  "dark": "#262626",
96
96
  "highContrast": "#FFFFFF"
97
+ },
98
+ "accentText": {
99
+ "light": "#AE501F",
100
+ "dark": "#C57F5A",
101
+ "highContrast": "#D39E82"
97
102
  }
98
103
  },
99
104
  "spacing": {
@@ -90,6 +90,11 @@
90
90
  "dangerSurface": {
91
91
  "light": "#F6E9E7",
92
92
  "dark": "#241312"
93
+ },
94
+ "accentText": {
95
+ "light": "#945639",
96
+ "dark": "#B4836C",
97
+ "highContrast": "#C49D8A"
93
98
  }
94
99
  },
95
100
  "spacing": {
@@ -94,6 +94,11 @@
94
94
  "light": "#262B36",
95
95
  "dark": "#262B36",
96
96
  "highContrast": "#FFFFFF"
97
+ },
98
+ "accentText": {
99
+ "light": "#C36E65",
100
+ "dark": "#C87B74",
101
+ "highContrast": "#D49892"
97
102
  }
98
103
  },
99
104
  "spacing": {
@@ -98,6 +98,11 @@
98
98
  "glossBottom": {
99
99
  "light": "#AEB6C0",
100
100
  "dark": "#1B1F26"
101
+ },
102
+ "accentText": {
103
+ "light": "#922637",
104
+ "dark": "#D1929B",
105
+ "highContrast": "#D499A2"
101
106
  }
102
107
  },
103
108
  "spacing": {
@@ -94,6 +94,11 @@
94
94
  "light": "#CAC4D0",
95
95
  "dark": "#49454F",
96
96
  "highContrast": "#FFFFFF"
97
+ },
98
+ "accentText": {
99
+ "light": "#AB512B",
100
+ "dark": "#C67E5F",
101
+ "highContrast": "#D29981"
97
102
  }
98
103
  },
99
104
  "spacing": {
@@ -90,6 +90,11 @@
90
90
  "dangerSurface": {
91
91
  "light": "#FEF2F2",
92
92
  "dark": "#241214"
93
+ },
94
+ "accentText": {
95
+ "light": "#16697A",
96
+ "dark": "#5F98A4",
97
+ "highContrast": "#86B1BA"
93
98
  }
94
99
  },
95
100
  "spacing": {
@@ -102,6 +102,11 @@
102
102
  "neumoDark": {
103
103
  "light": "#AEB5C0",
104
104
  "dark": "#17191D"
105
+ },
106
+ "accentText": {
107
+ "light": "#566856",
108
+ "dark": "#92A093",
109
+ "highContrast": "#9FABA0"
105
110
  }
106
111
  },
107
112
  "spacing": {
@@ -98,6 +98,11 @@
98
98
  "neumoDark": {
99
99
  "light": "#AEB5C0",
100
100
  "dark": "#17191D"
101
+ },
102
+ "accentText": {
103
+ "light": "#536A47",
104
+ "dark": "#8CA380",
105
+ "highContrast": "#9CB092"
101
106
  }
102
107
  },
103
108
  "spacing": {