@evolve.ui/theme-system 1.0.1 → 1.2.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/{allThemes-CFS_9-tk.cjs → allThemes-3d8nhymo.cjs} +12 -2
- package/allThemes-3d8nhymo.cjs.map +1 -0
- package/{allThemes-OV-ayn4C.mjs → allThemes-Abn6KDm7.mjs} +7 -3
- package/allThemes-Abn6KDm7.mjs.map +1 -0
- package/allThemes.cjs +1 -1
- package/allThemes.d.cts +1 -0
- package/allThemes.d.cts.map +1 -1
- package/allThemes.d.mts +1 -0
- package/allThemes.d.mts.map +1 -1
- package/allThemes.mjs +1 -1
- package/brands-CE0wIkKX.d.cts +58 -0
- package/brands-CE0wIkKX.d.cts.map +1 -0
- package/brands-CE0wIkKX.d.mts +58 -0
- package/brands-CE0wIkKX.d.mts.map +1 -0
- package/brands.cjs +16 -13
- package/brands.cjs.map +1 -1
- package/brands.d.cts +2 -2
- package/brands.d.mts +2 -2
- package/brands.mjs +16 -13
- package/brands.mjs.map +1 -1
- package/css/EverydayHarbor.css +377 -0
- package/css/EverydayHarbor.effects.css +650 -0
- package/{default-b-tgfyxR.cjs → default-B6VWF0Js.cjs} +237 -36
- package/default-B6VWF0Js.cjs.map +1 -0
- package/{default-B2n4PnsJ.mjs → default-BogJDhKE.mjs} +238 -37
- package/default-BogJDhKE.mjs.map +1 -0
- package/effects.cjs +26 -0
- package/effects.cjs.map +1 -0
- package/effects.d.cts +22 -0
- package/effects.d.cts.map +1 -0
- package/effects.d.mts +22 -0
- package/effects.d.mts.map +1 -0
- package/effects.mjs +22 -0
- package/effects.mjs.map +1 -0
- package/evolve-ui.entries.json +51 -0
- package/index.cjs +12 -5
- package/index.cjs.map +1 -1
- package/index.d.cts +108 -4
- package/index.d.cts.map +1 -1
- package/index.d.mts +108 -4
- package/index.d.mts.map +1 -1
- package/index.mjs +9 -6
- package/index.mjs.map +1 -1
- package/package.json +5 -1
- package/{plugin-DPtvp4lp.cjs → plugin-B3PF4RMI.cjs} +299 -110
- package/plugin-B3PF4RMI.cjs.map +1 -0
- package/{plugin-D4eCyUJe.mjs → plugin-D6aLCeNB.mjs} +258 -111
- package/plugin-D6aLCeNB.mjs.map +1 -0
- package/src/effects/__fixtures__/fixtureLayer.ts +88 -0
- package/src/effects/brands/EverydayHarbor.ts +392 -0
- package/src/effects/classes.ts +19 -0
- package/src/effects/emit.ts +314 -0
- package/src/effects/hooks.ts +493 -0
- package/src/effects/index.ts +2 -0
- package/src/effects/layers.ts +18 -0
- package/src/effects/rules.ts +90 -0
- package/src/effects/rules.typecheck.ts +50 -0
- package/src/effects/tokens.ts +148 -0
- package/src/effects/validate.ts +683 -0
- package/src/effects/vocabulary.ts +32 -0
- package/src/index.ts +40 -0
- package/src/tailwind/animation.ts +30 -0
- package/src/tailwind/borderRadius.ts +32 -0
- package/src/tailwind/borderWidth.ts +14 -0
- package/src/tailwind/boxShadow.ts +19 -0
- package/src/tailwind/colors.ts +332 -0
- package/src/tailwind/cssVars.ts +301 -0
- package/src/tailwind/fontFamily.ts +14 -0
- package/src/tailwind/plugin.ts +299 -0
- package/src/tailwind/reducedMotion.ts +164 -0
- package/src/tailwind/screens.ts +22 -0
- package/src/tailwind/spacing.ts +20 -0
- package/src/tailwind/text.ts +172 -0
- package/src/tailwind/width.ts +14 -0
- package/src/themeValues.snapshot.ts +6735 -0
- package/src/themes/BasketballTraining.ts +166 -0
- package/src/themes/Default.ts +165 -0
- package/src/themes/EverydayHarbor.ts +147 -0
- package/src/themes/ProfessionalBrand.ts +166 -0
- package/src/themes/allThemes.ts +14 -0
- package/src/themes/brandSources.ts +37 -0
- package/src/themes/brands.ts +63 -0
- package/src/themes/common.ts +65 -0
- package/src/themes/contrastFloors.ts +26 -0
- package/src/themes/generateCSSVars.ts +123 -0
- package/src/themes/inkRamps.ts +43 -0
- package/src/themes/runtime/basketballTraining.ts +3 -0
- package/src/themes/runtime/buildTheme.ts +411 -0
- package/src/themes/runtime/default.ts +3 -0
- package/src/themes/runtime/everydayHarbor.ts +3 -0
- package/src/themes/runtime/professionalBrand.ts +3 -0
- package/src/themes/semanticColorTokenSteps.ts +23 -0
- package/src/themes/themeType.ts +169 -0
- package/src/themes/themeValues.ts +374 -0
- package/src/themes/wcag.ts +48 -0
- package/src/themes/writeToCSSFile.ts +11 -0
- package/src/utils/cn.ts +35 -0
- package/src/utils/color.ts +82 -0
- package/src/utils/wrapVar.ts +24 -0
- package/tailwind/plugin.cjs +5 -1
- package/tailwind/plugin.d.cts +458 -1
- package/tailwind/plugin.d.cts.map +1 -1
- package/tailwind/plugin.d.mts +458 -1
- package/tailwind/plugin.d.mts.map +1 -1
- package/tailwind/plugin.mjs +2 -2
- package/themes/runtime/default.cjs +1 -1
- package/themes/runtime/default.mjs +1 -1
- package/themes/themeType.d.cts +1 -1
- package/themes/themeType.d.mts +1 -1
- package/allThemes-CFS_9-tk.cjs.map +0 -1
- package/allThemes-OV-ayn4C.mjs.map +0 -1
- package/brands-n30rolHQ.d.cts +0 -33
- package/brands-n30rolHQ.d.cts.map +0 -1
- package/brands-n30rolHQ.d.mts +0 -33
- package/brands-n30rolHQ.d.mts.map +0 -1
- package/default-B2n4PnsJ.mjs.map +0 -1
- package/default-b-tgfyxR.cjs.map +0 -1
- package/plugin-D4eCyUJe.mjs.map +0 -1
- package/plugin-DPtvp4lp.cjs.map +0 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { $ as colorIconPrimary, $n as fontWeightLabelMini, $t as colorSurface100, A as colorBorderInverse, An as colorWarning300, At as colorPrimary700, B as colorCritical400, C as colorBackgroundWarningDark, Cn as colorTextInverse, Cr as textTransformButton, D as colorBorderDisabled, Dn as colorTextWarning, E as colorBorderCritical, En as colorTextSuccess, F as colorBorderTertiary, Gn as fontWeightButton, Gt as colorSuccess300, H as colorCritical500, Hn as fontSizeButton200, I as colorBorderWarning, In as colorWarning800, J as colorFocusPrimary, Jn as fontWeightH2, Kn as fontWeightCaption, Lt as colorSecondary50, M as colorBorderSecondary, Mn as colorWarning50, Mt as colorPrimary900, N as colorBorderSelected, Nn as colorWarning500, O as colorBorderHover, Or as wrapOpacity, Ot as colorPrimary500, P as colorBorderSuccess, Pn as colorWarning600, Q as colorIconInverse, Qn as fontWeightH6, Qt as colorSuccess900, S as colorBackgroundTertiary, Sn as colorTextInfo, Sr as shadow05, St as colorLinkSecondary, T as colorBorderBlack, Tn as colorTextSecondary, Tr as textTransformLabelMini, Un as fontWeightBodyPrimary, V as colorCritical50, Vn as fontSizeButton100, Wn as fontWeightBodySecondary, X as colorIconDisabled, Xn as fontWeightH4, Xt as colorSuccess700, Y as colorIconCritical, Yn as fontWeightH3, Z as colorIconInfo, Zn as fontWeightH5, _ as colorBackgroundPrimary, _t as colorLinkInverseHover, a as checkboxBorderRadius, ar as letterSpacingCaption, b as colorBackgroundSuccessDark, bn as colorTextDisabled, br as shadow03, bt as colorLinkPressed, c as colorBackgroundDisabled, cn as colorSurface900, cr as letterSpacingH2, d as colorBackgroundInfoDark, dr as letterSpacingH3Mobile, en as colorSurface200, er as fontWeightLabelStrong, et as colorIconSecondary, f as colorBackgroundInfoLight, fr as letterSpacingH4, g as colorBackgroundPressedInverse, gr as letterSpacingLabelStrong, h as colorBackgroundPressed, hr as letterSpacingLabelMini, ht as colorLinkInverse, i as buttonBorderRadius, in as colorSurface500, ir as letterSpacingButton, j as colorBorderPrimary, k as colorBorderInfo, kr as wrapVar, l as colorBackgroundHover, lr as letterSpacingH2Mobile, lt as colorInfo600, mr as letterSpacingH6, mt as colorLinkHover, nr as letterSpacingBodyPrimary, nt as colorIconWarning, o as colorBackgroundCriticalDark, or as letterSpacingH1, ot as colorInfo400, p as colorBackgroundInverse, pn as colorTertiary50, pr as letterSpacingH5, pt as colorLinkDisabled, q as colorFocusInverse, qn as fontWeightH1, qt as colorSuccess50, rn as colorSurface50, rr as letterSpacingBodySecondary, s as colorBackgroundCriticalLight, sr as letterSpacingH1Mobile, st as colorInfo50, tn as colorSurface300, tr as inputBorderRadius, tt as colorIconSuccess, u as colorBackgroundHoverInverse, ur as letterSpacingH3, ut as colorInfo700, v as colorBackgroundSecondary, vr as shadow01, vt as colorLinkInversePressed, w as colorBackgroundWarningLight, wn as colorTextPrimary, wr as textTransformH6, x as colorBackgroundSuccessLight, xn as colorTextInactive, xr as shadow04, xt as colorLinkPrimary, y as colorBackgroundSubdued, yn as colorTextCritical, yr as shadow02, yt as colorLinkMonochrome } from "./spacing-D43IZfIU.mjs";
|
|
1
|
+
import { $ as colorIconPrimary, $n as fontWeightLabelMini, $t as colorSurface100, A as colorBorderInverse, An as colorWarning300, At as colorPrimary700, B as colorCritical400, C as colorBackgroundWarningDark, Cn as colorTextInverse, Cr as textTransformButton, D as colorBorderDisabled, Dn as colorTextWarning, E as colorBorderCritical, En as colorTextSuccess, F as colorBorderTertiary, Gn as fontWeightButton, Gt as colorSuccess300, H as colorCritical500, Hn as fontSizeButton200, I as colorBorderWarning, In as colorWarning800, J as colorFocusPrimary, Jn as fontWeightH2, Kn as fontWeightCaption, Kt as colorSuccess400, Lt as colorSecondary50, M as colorBorderSecondary, Mn as colorWarning50, Mt as colorPrimary900, N as colorBorderSelected, Nn as colorWarning500, O as colorBorderHover, On as colorWarning100, Or as wrapOpacity, Ot as colorPrimary500, P as colorBorderSuccess, Pn as colorWarning600, Q as colorIconInverse, Qn as fontWeightH6, Qt as colorSuccess900, S as colorBackgroundTertiary, Sn as colorTextInfo, Sr as shadow05, St as colorLinkSecondary, T as colorBorderBlack, Tn as colorTextSecondary, Tr as textTransformLabelMini, Un as fontWeightBodyPrimary, V as colorCritical50, Vn as fontSizeButton100, Wn as fontWeightBodySecondary, X as colorIconDisabled, Xn as fontWeightH4, Xt as colorSuccess700, Y as colorIconCritical, Yn as fontWeightH3, Z as colorIconInfo, Zn as fontWeightH5, _ as colorBackgroundPrimary, _t as colorLinkInverseHover, a as checkboxBorderRadius, ar as letterSpacingCaption, b as colorBackgroundSuccessDark, bn as colorTextDisabled, br as shadow03, bt as colorLinkPressed, c as colorBackgroundDisabled, cn as colorSurface900, cr as letterSpacingH2, ct as colorInfo500, d as colorBackgroundInfoDark, dr as letterSpacingH3Mobile, en as colorSurface200, er as fontWeightLabelStrong, et as colorIconSecondary, f as colorBackgroundInfoLight, fn as colorTertiary400, fr as letterSpacingH4, g as colorBackgroundPressedInverse, gr as letterSpacingLabelStrong, h as colorBackgroundPressed, hr as letterSpacingLabelMini, ht as colorLinkInverse, i as buttonBorderRadius, in as colorSurface500, ir as letterSpacingButton, j as colorBorderPrimary, jn as colorWarning400, k as colorBorderInfo, kr as wrapVar, l as colorBackgroundHover, lr as letterSpacingH2Mobile, lt as colorInfo600, mr as letterSpacingH6, mt as colorLinkHover, nr as letterSpacingBodyPrimary, nt as colorIconWarning, o as colorBackgroundCriticalDark, or as letterSpacingH1, ot as colorInfo400, p as colorBackgroundInverse, pn as colorTertiary50, pr as letterSpacingH5, pt as colorLinkDisabled, q as colorFocusInverse, qn as fontWeightH1, qt as colorSuccess50, rn as colorSurface50, rr as letterSpacingBodySecondary, s as colorBackgroundCriticalLight, sr as letterSpacingH1Mobile, st as colorInfo50, tn as colorSurface300, tr as inputBorderRadius, tt as colorIconSuccess, u as colorBackgroundHoverInverse, ur as letterSpacingH3, ut as colorInfo700, v as colorBackgroundSecondary, vr as shadow01, vt as colorLinkInversePressed, w as colorBackgroundWarningLight, wn as colorTextPrimary, wr as textTransformH6, x as colorBackgroundSuccessLight, xn as colorTextInactive, xr as shadow04, xt as colorLinkPrimary, y as colorBackgroundSubdued, yn as colorTextCritical, yr as shadow02, yt as colorLinkMonochrome } from "./spacing-D43IZfIU.mjs";
|
|
2
2
|
import { n as boxShadow, t as fontFamily } from "./fontFamily-DTm-Yz5-.mjs";
|
|
3
3
|
import { breakpoints, radius, spacing, width } from "./themes/common.mjs";
|
|
4
4
|
import tinycolor from "tinycolor2";
|
|
@@ -96,11 +96,11 @@ const colorStepArrayToObject = (colorStepArray) => {
|
|
|
96
96
|
//#endregion
|
|
97
97
|
//#region src/themes/BasketballTraining.ts
|
|
98
98
|
var BasketballTraining_exports = /* @__PURE__ */ __exportAll({
|
|
99
|
-
colorAliases: () => colorAliases$
|
|
100
|
-
coreColors: () => coreColors$
|
|
101
|
-
nonColorVariables: () => nonColorVariables$
|
|
99
|
+
colorAliases: () => colorAliases$3,
|
|
100
|
+
coreColors: () => coreColors$3,
|
|
101
|
+
nonColorVariables: () => nonColorVariables$3
|
|
102
102
|
});
|
|
103
|
-
const coreColors$
|
|
103
|
+
const coreColors$3 = {
|
|
104
104
|
amber: colorStepArrayToObject(generateNormalColorSteps("#B45309")),
|
|
105
105
|
blue: colorStepArrayToObject(generateNormalColorSteps("#0369A1")),
|
|
106
106
|
green: colorStepArrayToObject(generateNormalColorSteps("#15803D")),
|
|
@@ -110,17 +110,17 @@ const coreColors$2 = {
|
|
|
110
110
|
teal: colorStepArrayToObject(generateNormalColorSteps("#1E3A5F")),
|
|
111
111
|
violet: colorStepArrayToObject(generateNormalColorSteps("#0F766E"))
|
|
112
112
|
};
|
|
113
|
-
const colorAliases$
|
|
114
|
-
critical: coreColors$
|
|
115
|
-
info: coreColors$
|
|
116
|
-
primary: coreColors$
|
|
117
|
-
secondary: coreColors$
|
|
118
|
-
success: coreColors$
|
|
119
|
-
surface: coreColors$
|
|
120
|
-
tertiary: coreColors$
|
|
121
|
-
warning: coreColors$
|
|
113
|
+
const colorAliases$3 = {
|
|
114
|
+
critical: coreColors$3.red,
|
|
115
|
+
info: coreColors$3.blue,
|
|
116
|
+
primary: coreColors$3.orange,
|
|
117
|
+
secondary: coreColors$3.teal,
|
|
118
|
+
success: coreColors$3.green,
|
|
119
|
+
surface: coreColors$3.neutral,
|
|
120
|
+
tertiary: coreColors$3.violet,
|
|
121
|
+
warning: coreColors$3.amber
|
|
122
122
|
};
|
|
123
|
-
const nonColorVariables$
|
|
123
|
+
const nonColorVariables$3 = {
|
|
124
124
|
"--box-shadow-01": `0px 4px 4px ${wrapOpacity(wrapVar(colorSurface200), 50)}`,
|
|
125
125
|
"--box-shadow-02": `0px 1px 4px ${wrapOpacity(wrapVar(colorSurface300), 50)}, 0px 1px 8px ${wrapOpacity(wrapVar(colorSurface200), 50)}`,
|
|
126
126
|
"--box-shadow-03": `0px 2px 8px ${wrapOpacity(wrapVar(colorSurface300), 50)}, 0px 4px 16px ${wrapOpacity(wrapVar(colorSurface200), 50)}`,
|
|
@@ -231,11 +231,11 @@ const nonColorVariables$2 = {
|
|
|
231
231
|
//#endregion
|
|
232
232
|
//#region src/themes/Default.ts
|
|
233
233
|
var Default_exports = /* @__PURE__ */ __exportAll({
|
|
234
|
-
colorAliases: () => colorAliases$
|
|
235
|
-
coreColors: () => coreColors$
|
|
236
|
-
nonColorVariables: () => nonColorVariables$
|
|
234
|
+
colorAliases: () => colorAliases$2,
|
|
235
|
+
coreColors: () => coreColors$2,
|
|
236
|
+
nonColorVariables: () => nonColorVariables$2
|
|
237
237
|
});
|
|
238
|
-
const coreColors$
|
|
238
|
+
const coreColors$2 = {
|
|
239
239
|
amber: colorStepArrayToObject(generateNormalColorSteps("#D97706")),
|
|
240
240
|
blue: colorStepArrayToObject(generateNormalColorSteps("#2563EB")),
|
|
241
241
|
gray: colorStepArrayToObject(generateNormalColorSteps("#33415C")),
|
|
@@ -245,17 +245,17 @@ const coreColors$1 = {
|
|
|
245
245
|
stone: colorStepArrayToObject(generateNormalColorSteps("#6E6259")),
|
|
246
246
|
zinc: colorStepArrayToObject(generateNormalColorSteps("#5C6470"))
|
|
247
247
|
};
|
|
248
|
-
const colorAliases$
|
|
249
|
-
critical: coreColors$
|
|
250
|
-
info: coreColors$
|
|
251
|
-
primary: coreColors$
|
|
252
|
-
secondary: coreColors$
|
|
253
|
-
success: coreColors$
|
|
254
|
-
surface: coreColors$
|
|
255
|
-
tertiary: coreColors$
|
|
256
|
-
warning: coreColors$
|
|
248
|
+
const colorAliases$2 = {
|
|
249
|
+
critical: coreColors$2.red,
|
|
250
|
+
info: coreColors$2.blue,
|
|
251
|
+
primary: coreColors$2.gray,
|
|
252
|
+
secondary: coreColors$2.zinc,
|
|
253
|
+
success: coreColors$2.green,
|
|
254
|
+
surface: coreColors$2.neutral,
|
|
255
|
+
tertiary: coreColors$2.stone,
|
|
256
|
+
warning: coreColors$2.amber
|
|
257
257
|
};
|
|
258
|
-
const nonColorVariables$
|
|
258
|
+
const nonColorVariables$2 = {
|
|
259
259
|
"--box-shadow-01": `0px 4px 4px ${wrapOpacity(wrapVar(colorSurface200), 50)}`,
|
|
260
260
|
"--box-shadow-02": `0px 1px 4px ${wrapOpacity(wrapVar(colorSurface300), 50)}, 0px 1px 8px ${wrapOpacity(wrapVar(colorSurface200), 50)}`,
|
|
261
261
|
"--box-shadow-03": `0px 2px 8px ${wrapOpacity(wrapVar(colorSurface300), 50)}, 0px 4px 16px ${wrapOpacity(wrapVar(colorSurface200), 50)}`,
|
|
@@ -364,6 +364,204 @@ const nonColorVariables$1 = {
|
|
|
364
364
|
"--width-page": "1644px"
|
|
365
365
|
};
|
|
366
366
|
//#endregion
|
|
367
|
+
//#region src/themes/wcag.ts
|
|
368
|
+
/**
|
|
369
|
+
* WCAG 2.1 relative luminance and contrast ratio, independent of the colour generator (no tinycolor).
|
|
370
|
+
* Shared by contrast.spec.ts and EverydayHarbor.spec.ts so every contrast gate uses ONE formula.
|
|
371
|
+
* Inputs are the generator's channel strings ("R G B", as `removeRGB` in utils/color.ts emits).
|
|
372
|
+
*/
|
|
373
|
+
/** Parse a channel string such as "51 65 92". Throws on anything that is not three 0-255 numbers. */
|
|
374
|
+
const parseChannels = (value) => {
|
|
375
|
+
const parts = value.trim().split(/[\s,]+/).map(Number);
|
|
376
|
+
if (parts.length !== 3 || parts.some((c) => !Number.isFinite(c) || c < 0 || c > 255)) throw new Error(`Not an "R G B" channel string: ${JSON.stringify(value)}`);
|
|
377
|
+
return parts;
|
|
378
|
+
};
|
|
379
|
+
/** `#RRGGBB` to the generator's channel string. Throws on a malformed literal. */
|
|
380
|
+
const hexToChannels = (hex) => {
|
|
381
|
+
if (!/^#[0-9a-f]{6}$/i.test(hex)) throw new Error(`Not a #RRGGBB literal: ${JSON.stringify(hex)}`);
|
|
382
|
+
return [
|
|
383
|
+
1,
|
|
384
|
+
3,
|
|
385
|
+
5
|
|
386
|
+
].map((i) => parseInt(hex.slice(i, i + 2), 16)).join(" ");
|
|
387
|
+
};
|
|
388
|
+
/** WCAG 2.1 relative luminance. */
|
|
389
|
+
const luminance = ([r, g, b]) => {
|
|
390
|
+
const [lr, lg, lb] = [
|
|
391
|
+
r,
|
|
392
|
+
g,
|
|
393
|
+
b
|
|
394
|
+
].map((channel) => {
|
|
395
|
+
const c = channel / 255;
|
|
396
|
+
return c <= .03928 ? c / 12.92 : Math.pow((c + .055) / 1.055, 2.4);
|
|
397
|
+
});
|
|
398
|
+
return .2126 * lr + .7152 * lg + .0722 * lb;
|
|
399
|
+
};
|
|
400
|
+
//#endregion
|
|
401
|
+
//#region src/themes/inkRamps.ts
|
|
402
|
+
/**
|
|
403
|
+
* Ramp builders for canvas-dark ("ink") brands. Deliberately NOT in utils/color.ts: the Ground
|
|
404
|
+
* baseline records that file's export list, and the themeValues snapshot pins its generators.
|
|
405
|
+
* These builders only rearrange generator output or parse approved hexes; they never change
|
|
406
|
+
* what generateNormalColorSteps returns.
|
|
407
|
+
*
|
|
408
|
+
* Why invert: core-components hard-code palette steps relative to a light canvas
|
|
409
|
+
* (`bg-primary-500 text-text-inverse` filled, `text-primary-500` on `bg-background-primary`
|
|
410
|
+
* outlined, `hover:bg-primary-100 hover:text-primary-700`, ...). Those pairs only keep their
|
|
411
|
+
* contrast when step 50 sits next to the canvas, 900 sits far from it, and text-inverse equals the
|
|
412
|
+
* canvas. Reversing every ramp keeps that geometry on an ink canvas, so the brand can reuse the
|
|
413
|
+
* shared semantic map almost unchanged (see EverydayHarbor.ts).
|
|
414
|
+
*/
|
|
415
|
+
/**
|
|
416
|
+
* generateNormalColorSteps(seed), reversed: 50 is the deepest shade, 900 the palest tint.
|
|
417
|
+
* The seed lands on step 400 (the generator's 500), and the generator's 400 tint lands on 500.
|
|
418
|
+
* Example: seed #8EC5E8 -> 400 '142 197 232' (#8EC5E8), 500 '165 209 237' (#A5D1ED).
|
|
419
|
+
*/
|
|
420
|
+
const inkNormalSteps = (seed) => colorStepArrayToObject([...generateNormalColorSteps(seed)].reverse());
|
|
421
|
+
/**
|
|
422
|
+
* A hand-authored ramp from approved hexes, for families no seed reproduces (the ink surface ramp
|
|
423
|
+
* has seven approved anchors). Every step is required; output is the generator's channel format.
|
|
424
|
+
* Throws at load when a literal is malformed or the ramp is not strictly lighter at each step, so a
|
|
425
|
+
* swapped anchor fails immediately instead of in review.
|
|
426
|
+
*/
|
|
427
|
+
const anchoredSteps = (hexes) => {
|
|
428
|
+
const ramp = Object.fromEntries(steps.map((step) => [step, hexToChannels(hexes[step])]));
|
|
429
|
+
steps.slice(1).forEach((step, index) => {
|
|
430
|
+
const previous = steps[index];
|
|
431
|
+
if (luminance(parseChannels(ramp[step])) <= luminance(parseChannels(ramp[previous]))) throw new Error(`anchoredSteps: step ${step} (${hexes[step]}) is not lighter than step ${previous}`);
|
|
432
|
+
});
|
|
433
|
+
return ramp;
|
|
434
|
+
};
|
|
435
|
+
//#endregion
|
|
436
|
+
//#region src/themes/EverydayHarbor.ts
|
|
437
|
+
/**
|
|
438
|
+
* "Harbor Ink" palette (brief of 2026-10-07), solid tokens only. The effect layer comes later.
|
|
439
|
+
*
|
|
440
|
+
* Ink-first: every ramp is reversed (inkRamps.ts) so the shared semantic map keeps working on a navy
|
|
441
|
+
* canvas. The brand differs from Default's map ONLY in `inkOverrides` and `inkShape`;
|
|
442
|
+
* EverydayHarbor.spec pins that the diff is exactly those keys.
|
|
443
|
+
*
|
|
444
|
+
* Where the approved hexes land (exact, asserted by EverydayHarbor.spec):
|
|
445
|
+
* surface-50 #0B1626 canvas (background-primary, text-inverse) surface-100 #12223A card
|
|
446
|
+
* surface-200 #1A2E4A raised surface-300 #56708F border / ring track
|
|
447
|
+
* surface-500 #A9B6C6 muted text (solid) surface-600 #B9C5D3 muted text (glass)
|
|
448
|
+
* surface-900 #EEF2F6 text-primary
|
|
449
|
+
* primary-400 #2E6BA6 harbor blue (seed) primary-500 #70B2EE the on-ink action step (see `harbor`)
|
|
450
|
+
* info-400 #8EC5E8 links / info (seed) info-500 #A5D1ED ring arc (icon-secondary, ring option B)
|
|
451
|
+
* tertiary-400 #E3B341 gold focus ring (seed)
|
|
452
|
+
* success-400 #A3B04E olive (seed) warning-400 #D9963E (seed, CTA gradient end)
|
|
453
|
+
* critical-400 #E5534B (seed, NOT in the brief: proposed, Dave to confirm)
|
|
454
|
+
*
|
|
455
|
+
* Surface ramp: seven steps are approved anchors (50, 100, 200, 300, 500, 600, 900). The other three
|
|
456
|
+
* are filled monotonically by per-channel sRGB interpolation, rounded to nearest:
|
|
457
|
+
* 400 = midpoint of 300 and 500; 700 and 800 = one third and two thirds of the way from 600 to 900.
|
|
458
|
+
* EverydayHarbor.spec recomputes them, so the rule is pinned rather than prose.
|
|
459
|
+
*/
|
|
460
|
+
var EverydayHarbor_exports = /* @__PURE__ */ __exportAll({
|
|
461
|
+
colorAliases: () => colorAliases$1,
|
|
462
|
+
coreColors: () => coreColors$1,
|
|
463
|
+
everydayHarborOverrides: () => everydayHarborOverrides,
|
|
464
|
+
nonColorVariables: () => nonColorVariables$1
|
|
465
|
+
});
|
|
466
|
+
/**
|
|
467
|
+
* Harbor primary ramp. 50-400 are the generated ink steps (seed #2E6BA6 stays on 400). Two steps are
|
|
468
|
+
* pinned by hand because the generated 500 (#4489CB) is too dark for the pairs core hard-codes
|
|
469
|
+
* around it:
|
|
470
|
+
* - 500 #70B2EE is "the on-ink action step": navy text-inverse on it (filled button) 8.1:1, it as text
|
|
471
|
+
* on the canvas / card / raised panel (outlined, transparent, filledInverse) 8.1 / 7.1 / 6.1:1, and
|
|
472
|
+
* as text on the dark status tints (transparent Callout actions) >= 4.9:1 on the tightest, info-light.
|
|
473
|
+
* The reference orb blue #5B9BD8 was tried first and only reaches 3.7:1 on info-light.
|
|
474
|
+
* - 600 #95C3ED is the midpoint of 500 and the generated 700, so the ramp stays strictly lighter.
|
|
475
|
+
* 700-900 (hover / active text) are the generated steps.
|
|
476
|
+
*/
|
|
477
|
+
const harbor = {
|
|
478
|
+
...inkNormalSteps("#2E6BA6"),
|
|
479
|
+
"500": hexToChannels("#70B2EE"),
|
|
480
|
+
"600": hexToChannels("#95C3ED")
|
|
481
|
+
};
|
|
482
|
+
const coreColors$1 = {
|
|
483
|
+
amber: inkNormalSteps("#D9963E"),
|
|
484
|
+
coral: inkNormalSteps("#E5534B"),
|
|
485
|
+
gold: inkNormalSteps("#E3B341"),
|
|
486
|
+
harbor,
|
|
487
|
+
ink: anchoredSteps({
|
|
488
|
+
"50": "#0B1626",
|
|
489
|
+
"100": "#12223A",
|
|
490
|
+
"200": "#1A2E4A",
|
|
491
|
+
"300": "#56708F",
|
|
492
|
+
"400": "#8093AB",
|
|
493
|
+
"500": "#A9B6C6",
|
|
494
|
+
"600": "#B9C5D3",
|
|
495
|
+
"700": "#CBD4DF",
|
|
496
|
+
"800": "#DCE3EA",
|
|
497
|
+
"900": "#EEF2F6"
|
|
498
|
+
}),
|
|
499
|
+
olive: inkNormalSteps("#A3B04E"),
|
|
500
|
+
sky: inkNormalSteps("#8EC5E8"),
|
|
501
|
+
slate: inkNormalSteps("#56708F")
|
|
502
|
+
};
|
|
503
|
+
const colorAliases$1 = {
|
|
504
|
+
critical: coreColors$1.coral,
|
|
505
|
+
info: coreColors$1.sky,
|
|
506
|
+
primary: coreColors$1.harbor,
|
|
507
|
+
secondary: coreColors$1.slate,
|
|
508
|
+
success: coreColors$1.olive,
|
|
509
|
+
surface: coreColors$1.ink,
|
|
510
|
+
tertiary: coreColors$1.gold,
|
|
511
|
+
warning: coreColors$1.amber
|
|
512
|
+
};
|
|
513
|
+
const BLACK_SHADOW = (y, blur, alpha) => `0px ${y}px ${blur}px rgb(0 0 0 / ${alpha}%)`;
|
|
514
|
+
/**
|
|
515
|
+
* The only colour bindings that differ from the shared map. Reasons:
|
|
516
|
+
* - overlay: the shared map scrims with surface-900, which is now the palest step; use the navy.
|
|
517
|
+
* - background-secondary: the card colour (#12223A), not slate-50.
|
|
518
|
+
* - status text/icons/strong fills: the shared map picks far-from-canvas steps (700-900) to darken
|
|
519
|
+
* on white; on reversed ramps those are near-white and lose hue, so bind the seed (400) or 500.
|
|
520
|
+
* - warning-dark: bold Badge / BannerNotification warning put text-primary (pale) and icon-primary on it
|
|
521
|
+
* (Badge.tsx 'text-text-primary', BannerIcon color='primary'), so it needs a DEEP amber (warning-100
|
|
522
|
+
* #754C17: 6.7:1 text, 3.6:1 icon). critical-dark / info-dark / success-dark carry text-inverse
|
|
523
|
+
* (navy) and keep the shared light bindings.
|
|
524
|
+
* - focus-primary: gold ring (brief). link-*: light blue links (brief).
|
|
525
|
+
* - icon-secondary: ring arc #A5D1ED (option B). icon-disabled is NOT overridden: the shared
|
|
526
|
+
* surface-300 binding already resolves to the ring track colour #56708F.
|
|
527
|
+
*/
|
|
528
|
+
const inkOverrides = {
|
|
529
|
+
"--color-background-overlay": wrapVar(colorSurface50),
|
|
530
|
+
"--color-background-secondary": wrapVar(colorSurface100),
|
|
531
|
+
"--color-background-success-dark": wrapVar(colorSuccess400),
|
|
532
|
+
"--color-background-warning-dark": wrapVar(colorWarning100),
|
|
533
|
+
"--color-focus-primary": wrapVar(colorTertiary400),
|
|
534
|
+
"--color-icon-secondary": wrapVar(colorInfo500),
|
|
535
|
+
"--color-icon-success": wrapVar(colorSuccess400),
|
|
536
|
+
"--color-icon-warning": wrapVar(colorWarning400),
|
|
537
|
+
"--color-link-hover": wrapVar(colorInfo500),
|
|
538
|
+
"--color-link-pressed": wrapVar(colorInfo600),
|
|
539
|
+
"--color-link-primary": wrapVar(colorInfo400),
|
|
540
|
+
"--color-text-info": wrapVar(colorInfo400),
|
|
541
|
+
"--color-text-success": wrapVar(colorSuccess400),
|
|
542
|
+
"--color-text-warning": wrapVar(colorWarning500)
|
|
543
|
+
};
|
|
544
|
+
/** Shape tokens: Inter for every heading (h1-h4 read --font-family-secondary), black drop shadows. */
|
|
545
|
+
const inkShape = {
|
|
546
|
+
"--box-shadow-01": BLACK_SHADOW(4, 4, 45),
|
|
547
|
+
"--box-shadow-02": `${BLACK_SHADOW(1, 4, 45)}, ${BLACK_SHADOW(1, 8, 35)}`,
|
|
548
|
+
"--box-shadow-03": `${BLACK_SHADOW(2, 8, 45)}, ${BLACK_SHADOW(4, 16, 35)}`,
|
|
549
|
+
"--box-shadow-04": `${BLACK_SHADOW(3, 12, 50)}, ${BLACK_SHADOW(6, 24, 40)}`,
|
|
550
|
+
"--box-shadow-05": BLACK_SHADOW(-4, 4, 45),
|
|
551
|
+
"--container-border-radius": "12px",
|
|
552
|
+
"--font-family-secondary": "'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif"
|
|
553
|
+
};
|
|
554
|
+
const nonColorVariables$1 = {
|
|
555
|
+
...nonColorVariables$2,
|
|
556
|
+
...inkOverrides,
|
|
557
|
+
...inkShape
|
|
558
|
+
};
|
|
559
|
+
/** Exported for EverydayHarbor.spec ("differs from the shared map exactly here"). */
|
|
560
|
+
const everydayHarborOverrides = {
|
|
561
|
+
...inkOverrides,
|
|
562
|
+
...inkShape
|
|
563
|
+
};
|
|
564
|
+
//#endregion
|
|
367
565
|
//#region src/themes/ProfessionalBrand.ts
|
|
368
566
|
var ProfessionalBrand_exports = /* @__PURE__ */ __exportAll({
|
|
369
567
|
colorAliases: () => colorAliases,
|
|
@@ -499,12 +697,15 @@ const nonColorVariables = {
|
|
|
499
697
|
"--width-page": "1644px"
|
|
500
698
|
};
|
|
501
699
|
//#endregion
|
|
502
|
-
//#region src/themes/
|
|
503
|
-
const
|
|
700
|
+
//#region src/themes/brandSources.ts
|
|
701
|
+
const brandSources = {
|
|
504
702
|
BasketballTraining: BasketballTraining_exports,
|
|
505
703
|
Default: Default_exports,
|
|
506
|
-
ProfessionalBrand: ProfessionalBrand_exports
|
|
704
|
+
ProfessionalBrand: ProfessionalBrand_exports,
|
|
705
|
+
EverydayHarbor: EverydayHarbor_exports
|
|
507
706
|
};
|
|
707
|
+
//#endregion
|
|
708
|
+
//#region src/themes/runtime/buildTheme.ts
|
|
508
709
|
const variable = (name) => `var(${name})`;
|
|
509
710
|
const textSpec = ({ family = fontFamily.primary, height, size, spacing: letterSpacing, transform, weight }) => ({
|
|
510
711
|
family,
|
|
@@ -603,8 +804,8 @@ const buildTypography = () => {
|
|
|
603
804
|
}),
|
|
604
805
|
mobile: textSpec({
|
|
605
806
|
family: fontFamily.secondary,
|
|
606
|
-
height: "
|
|
607
|
-
size: "
|
|
807
|
+
height: "27px",
|
|
808
|
+
size: "18px",
|
|
608
809
|
spacing: variable(letterSpacingH3Mobile),
|
|
609
810
|
weight: variable(fontWeightH3)
|
|
610
811
|
})
|
|
@@ -648,7 +849,7 @@ const buildTypography = () => {
|
|
|
648
849
|
};
|
|
649
850
|
};
|
|
650
851
|
const buildRuntimeTheme = (brand) => {
|
|
651
|
-
const source =
|
|
852
|
+
const source = brandSources[brand];
|
|
652
853
|
const v = variable;
|
|
653
854
|
return {
|
|
654
855
|
border: {
|
|
@@ -909,6 +1110,6 @@ const buildRuntimeTheme = (brand) => {
|
|
|
909
1110
|
//#region src/themes/runtime/default.ts
|
|
910
1111
|
const defaultTheme = buildRuntimeTheme("Default");
|
|
911
1112
|
//#endregion
|
|
912
|
-
export { darken as a, lighten as c, colorStepArrayToObject as i, steps as l, buildRuntimeTheme as n, generateNormalColorSteps as o, nonColorVariables$
|
|
1113
|
+
export { darken as a, lighten as c, colorStepArrayToObject as i, steps as l, buildRuntimeTheme as n, generateNormalColorSteps as o, nonColorVariables$2 as r, generateSurfaceColorSteps as s, defaultTheme as t, tinycolor as u };
|
|
913
1114
|
|
|
914
|
-
//# sourceMappingURL=default-
|
|
1115
|
+
//# sourceMappingURL=default-BogJDhKE.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"default-BogJDhKE.mjs","names":["coreColors","colorAliases","nonColorVariables","coreColors","colorAliases","nonColorVariables","coreColors","colorAliases","nonColorVariables","sharedSemanticMap","cssVars.letterSpacingBodyPrimary","cssVars.fontWeightBodyPrimary","cssVars.letterSpacingBodySecondary","cssVars.fontWeightBodySecondary","cssVars.fontSizeButton100","cssVars.letterSpacingButton","cssVars.textTransformButton","cssVars.fontWeightButton","cssVars.fontSizeButton200","cssVars.letterSpacingCaption","cssVars.fontWeightCaption","cssVars.letterSpacingH1","cssVars.fontWeightH1","cssVars.letterSpacingH1Mobile","cssVars.letterSpacingH2","cssVars.fontWeightH2","cssVars.letterSpacingH2Mobile","cssVars.letterSpacingH3","cssVars.fontWeightH3","cssVars.letterSpacingH3Mobile","cssVars.letterSpacingH4","cssVars.fontWeightH4","cssVars.letterSpacingH5","cssVars.fontWeightH5","cssVars.letterSpacingH6","cssVars.textTransformH6","cssVars.fontWeightH6","cssVars.letterSpacingLabelMini","cssVars.textTransformLabelMini","cssVars.fontWeightLabelMini","cssVars.letterSpacingLabelStrong","cssVars.fontWeightLabelStrong","cssVars.buttonBorderRadius","cssVars.colorBackgroundPrimary","cssVars.colorBorderPrimary","cssVars.colorBackgroundDisabled","cssVars.colorBorderDisabled","cssVars.colorBackgroundHover","cssVars.colorBorderHover","cssVars.colorBackgroundPressed","cssVars.colorBorderSelected","cssVars.colorLinkInverse","cssVars.colorLinkInverseHover","cssVars.colorLinkInversePressed","cssVars.colorLinkPrimary","cssVars.colorLinkHover","cssVars.colorLinkPressed","cssVars.colorLinkSecondary","cssVars.colorBackgroundInverse","cssVars.colorBorderInverse","cssVars.colorTextInverse","cssVars.colorBackgroundHoverInverse","cssVars.colorBackgroundPressedInverse","cssVars.colorTextPrimary","cssVars.checkboxBorderRadius","cssVars.colorBackgroundCriticalDark","cssVars.colorBackgroundCriticalLight","cssVars.colorBackgroundTertiary","cssVars.colorBackgroundInfoDark","cssVars.colorBackgroundInfoLight","cssVars.colorBackgroundSubdued","cssVars.colorBackgroundSecondary","cssVars.colorBackgroundSuccessDark","cssVars.colorBackgroundSuccessLight","cssVars.colorBackgroundWarningDark","cssVars.colorBackgroundWarningLight","cssVars.colorBorderCritical","cssVars.colorBorderBlack","cssVars.colorBorderSecondary","cssVars.colorBorderTertiary","cssVars.colorFocusPrimary","cssVars.colorFocusInverse","cssVars.colorBorderInfo","cssVars.colorBorderSuccess","cssVars.colorBorderWarning","cssVars.colorIconPrimary","cssVars.colorIconInverse","cssVars.colorIconSecondary","cssVars.colorIconCritical","cssVars.colorIconDisabled","cssVars.colorIconInfo","cssVars.colorIconSuccess","cssVars.colorIconWarning","cssVars.colorTextCritical","cssVars.colorTextDisabled","cssVars.colorTextInactive","cssVars.colorTextInfo","cssVars.colorLinkDisabled","cssVars.colorLinkMonochrome","cssVars.colorTextSecondary","cssVars.colorTextSuccess","cssVars.colorTextWarning","cssVars.shadow01","cssVars.shadow02","cssVars.shadow03","cssVars.shadow04","cssVars.shadow05","cssVars.inputBorderRadius"],"sources":["../src/utils/color.ts","../src/themes/BasketballTraining.ts","../src/themes/Default.ts","../src/themes/wcag.ts","../src/themes/inkRamps.ts","../src/themes/EverydayHarbor.ts","../src/themes/ProfessionalBrand.ts","../src/themes/brandSources.ts","../src/themes/runtime/buildTheme.ts","../src/themes/runtime/default.ts"],"sourcesContent":["import tinycolor from 'tinycolor2';\n\n// https://github.com/bgrins/TinyColor\n\nexport const lighten = (percentAsInt: number, unprocessedColor: string): tinycolor.Instance => {\n const color = tinycolor(unprocessedColor);\n const amount = (percentAsInt * ((1 - color.toHsl().l) * 100)) / 100;\n return color.lighten(amount);\n};\n\nexport const darken = (percentAsInt: number, unprocessedColor: string): tinycolor.Instance => {\n const color = tinycolor(unprocessedColor);\n const amount = (percentAsInt * (color.toHsl().l * 100)) / 100;\n return color.darken(amount);\n};\n\n// https://tailwindcss.com/docs/customizing-colors#using-custom-colors\nconst removeRGB = (color: string) => color.replace(/rgb\\(|,|\\)/g, '');\n\n/**\n * Generate a set of color steps from a base color. Base color becomes 500.\n *\n * @param color The color to generate the steps from\n * @returns An array of 50, 100, 200, 300, 400, 500, 600, 700, 800, 900 color values.\n */\nexport const generateNormalColorSteps = (color: string) => {\n return [\n removeRGB(lighten(95, color).toRgbString()),\n removeRGB(lighten(85, color).toRgbString()),\n removeRGB(lighten(70, color).toRgbString()),\n removeRGB(lighten(40, color).toRgbString()),\n removeRGB(lighten(20, color).toRgbString()),\n removeRGB(tinycolor(color).toRgbString()),\n removeRGB(darken(20, color).toRgbString()),\n removeRGB(darken(40, color).toRgbString()),\n removeRGB(darken(50, color).toRgbString()),\n removeRGB(darken(70, color).toRgbString()),\n ];\n};\n\n/**\n * Generate a set of color steps from a base color. Base color becomes 500.\n *\n * @param color The color to generate the steps from\n * @param isNeutral Whether the color is a neutral color to make surface-50 true white\n * @returns An array of 50, 100, 200, 300, 400, 500, 600, 700, 800, 900 color values.\n */\nexport const generateSurfaceColorSteps = (color: string, isNeutral: boolean = false) => {\n return [\n removeRGB(lighten(isNeutral ? 100 : 99, color).toRgbString()),\n removeRGB(lighten(95, color).toRgbString()),\n removeRGB(lighten(80, color).toRgbString()),\n removeRGB(lighten(50, color).toRgbString()),\n removeRGB(lighten(30, color).toRgbString()),\n removeRGB(tinycolor(color).toRgbString()),\n removeRGB(darken(20, color).toRgbString()),\n removeRGB(darken(40, color).toRgbString()),\n removeRGB(darken(50, color).toRgbString()),\n removeRGB(darken(70, color).toRgbString()),\n ];\n};\n\nexport type Steps = '50' | '100' | '200' | '300' | '400' | '500' | '600' | '700' | '800' | '900';\nexport const steps: Steps[] = ['50', '100', '200', '300', '400', '500', '600', '700', '800', '900'];\nexport type StepObject = Record<Steps, string>;\n\nexport const colorStepArrayToObject = (colorStepArray: string[]): StepObject => {\n return {\n '100': colorStepArray[1],\n '200': colorStepArray[2],\n '300': colorStepArray[3],\n '400': colorStepArray[4],\n '50': colorStepArray[0],\n '500': colorStepArray[5],\n '600': colorStepArray[6],\n '700': colorStepArray[7],\n '800': colorStepArray[8],\n '900': colorStepArray[9],\n };\n};\n\nexport { tinycolor };\n","import {\n colorCritical400,\n colorCritical50,\n colorCritical500,\n colorInfo400,\n colorInfo50,\n colorInfo600,\n colorInfo700,\n colorPrimary500,\n colorPrimary700,\n colorPrimary900,\n colorSecondary50,\n colorSuccess300,\n colorSuccess50,\n colorSuccess700,\n colorSuccess900,\n colorSurface100,\n colorSurface200,\n colorSurface300,\n colorSurface50,\n colorSurface500,\n colorSurface900,\n colorTertiary50,\n colorWarning300,\n colorWarning50,\n colorWarning500,\n colorWarning600,\n colorWarning800,\n} from '../tailwind/cssVars';\nimport { colorStepArrayToObject, generateNormalColorSteps, generateSurfaceColorSteps } from '../utils/color';\nimport { wrapOpacity, wrapVar } from '../utils/wrapVar';\nimport { ColorAliasesObject, NonColorCSSVariables } from './generateCSSVars';\n\n// \"Court Heat\" palette (DS-83, approved 2026-07-12): burnt court-orange hero, midnight-navy\n// secondary, hardwood-teal accent, warm leather-undertoned neutrals. Key names are stable API\n// (buildTheme exposes them) so they keep their original hue names; comments give the actual hue.\nexport const coreColors = {\n amber: colorStepArrayToObject(generateNormalColorSteps('#B45309')), // burnt amber\n blue: colorStepArrayToObject(generateNormalColorSteps('#0369A1')), // sky blue\n green: colorStepArrayToObject(generateNormalColorSteps('#15803D')), // court green\n neutral: colorStepArrayToObject(generateSurfaceColorSteps('#5D564F', true)), // warm gray\n orange: colorStepArrayToObject(generateNormalColorSteps('#C2410C')), // burnt court orange\n red: colorStepArrayToObject(generateNormalColorSteps('#CC2B20')), // warm signal red\n teal: colorStepArrayToObject(generateNormalColorSteps('#1E3A5F')), // midnight navy (was teal)\n violet: colorStepArrayToObject(generateNormalColorSteps('#0F766E')), // hardwood teal (was violet)\n};\n\nexport const colorAliases = {\n critical: coreColors.red,\n info: coreColors.blue,\n primary: coreColors.orange,\n secondary: coreColors.teal,\n success: coreColors.green,\n surface: coreColors.neutral,\n tertiary: coreColors.violet,\n warning: coreColors.amber,\n} satisfies ColorAliasesObject;\n\nexport const nonColorVariables = {\n '--box-shadow-01': `0px 4px 4px ${wrapOpacity(wrapVar(colorSurface200), 50)}`,\n '--box-shadow-02': `0px 1px 4px ${wrapOpacity(wrapVar(colorSurface300), 50)}, 0px 1px 8px ${wrapOpacity(wrapVar(colorSurface200), 50)}`,\n '--box-shadow-03': `0px 2px 8px ${wrapOpacity(wrapVar(colorSurface300), 50)}, 0px 4px 16px ${wrapOpacity(wrapVar(colorSurface200), 50)}`,\n '--box-shadow-04': `0px 3px 12px ${wrapOpacity(wrapVar(colorSurface500), 50)}, 0px 6px 24px ${wrapOpacity(wrapVar(colorSurface300), 50)}`,\n '--box-shadow-05': `0px -4px 4px ${wrapOpacity(wrapVar(colorSurface200), 50)}`,\n '--button-border-radius': '8px',\n '--checkbox-border-radius': '4px',\n '--color-background-critical-dark': wrapVar(colorCritical500),\n '--color-background-critical-light': wrapVar(colorCritical50),\n '--color-background-disabled': wrapVar(colorSurface200),\n '--color-background-hover': wrapVar(colorSurface900),\n '--color-background-hover-inverse': wrapVar(colorSurface50),\n '--color-background-info-dark': wrapVar(colorInfo600),\n '--color-background-info-light': wrapVar(colorInfo50),\n '--color-background-inverse': wrapVar(colorPrimary900),\n '--color-background-overlay': wrapVar(colorSurface900),\n '--color-background-pressed': wrapVar(colorSurface900),\n '--color-background-pressed-inverse': wrapVar(colorSurface50),\n '--color-background-primary': wrapVar(colorSurface50),\n '--color-background-secondary': wrapVar(colorSecondary50),\n '--color-background-subdued': wrapVar(colorSurface100),\n '--color-background-success-dark': wrapVar(colorSuccess900),\n '--color-background-success-light': wrapVar(colorSuccess50),\n '--color-background-tertiary': wrapVar(colorTertiary50),\n '--color-background-warning-dark': wrapVar(colorWarning500),\n '--color-background-warning-light': wrapVar(colorWarning50),\n '--color-border-black': wrapVar(colorSurface900),\n '--color-border-critical': wrapVar(colorCritical400),\n '--color-border-disabled': wrapVar(colorSurface300),\n '--color-border-hover': wrapVar(colorPrimary700),\n '--color-border-info': wrapVar(colorInfo400),\n '--color-border-inverse': wrapVar(colorSurface50),\n '--color-border-primary': wrapVar(colorSurface300),\n '--color-border-secondary': wrapVar(colorSurface200),\n '--color-border-selected': wrapVar(colorPrimary500),\n '--color-border-success': wrapVar(colorSuccess300),\n '--color-border-tertiary': wrapVar(colorSurface100),\n '--color-border-warning': wrapVar(colorWarning300),\n '--color-focus-inverse': wrapVar(colorSurface50),\n '--color-focus-primary': wrapVar(colorPrimary500),\n '--color-icon-critical': wrapVar(colorCritical400),\n '--color-icon-disabled': wrapVar(colorSurface300),\n '--color-icon-info': wrapVar(colorInfo400),\n '--color-icon-inverse': wrapVar(colorSurface50),\n '--color-icon-primary': wrapVar(colorSurface500),\n '--color-icon-secondary': wrapVar(colorPrimary500),\n '--color-icon-success': wrapVar(colorSuccess700),\n '--color-icon-warning': wrapVar(colorWarning600),\n '--color-link-disabled': wrapVar(colorSurface300),\n '--color-link-hover': wrapVar(colorPrimary700),\n '--color-link-inverse': wrapVar(colorSurface50),\n '--color-link-inverse-disabled': wrapVar(colorSurface300),\n '--color-link-inverse-hover': wrapVar(colorSurface100),\n '--color-link-inverse-pressed': wrapVar(colorSurface200),\n '--color-link-monochrome': wrapVar(colorSurface900),\n '--color-link-pressed': wrapVar(colorPrimary900),\n '--color-link-primary': wrapVar(colorPrimary500),\n '--color-link-secondary': wrapVar(colorSurface500),\n '--color-text-critical': wrapVar(colorCritical500),\n '--color-text-disabled': wrapVar(colorSurface300),\n '--color-text-inactive': wrapVar(colorSurface300),\n '--color-text-info': wrapVar(colorInfo700),\n '--color-text-inverse': wrapVar(colorSurface50),\n '--color-text-primary': wrapVar(colorSurface900),\n '--color-text-secondary': wrapVar(colorSurface500),\n '--color-text-success': wrapVar(colorSuccess900),\n '--color-text-warning': wrapVar(colorWarning800),\n '--container-border-radius': '12px',\n '--font-family-primary': \"'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif\",\n '--font-family-secondary': \"'Georgia', serif\",\n '--font-size-button-100': '14px',\n '--font-size-button-200': '12px',\n '--font-weight-body-primary': '400',\n '--font-weight-body-secondary': '400',\n '--font-weight-button': '600',\n '--font-weight-caption': '400',\n '--font-weight-h1': '400',\n '--font-weight-h2': '400',\n '--font-weight-h3': '400',\n '--font-weight-h4': '400',\n '--font-weight-h5': '600',\n '--font-weight-h6': '600',\n '--font-weight-label-mini': '400',\n '--font-weight-label-strong': '600',\n '--input-border-radius': '6px',\n '--letter-spacing-body-primary': '0.2px',\n '--letter-spacing-body-secondary': '0.2px',\n '--letter-spacing-button': '1px',\n '--letter-spacing-caption': '0.2px',\n '--letter-spacing-h1': '0.2px',\n '--letter-spacing-h1-mobile': '0.2px',\n '--letter-spacing-h2': '0.2px',\n '--letter-spacing-h2-mobile': '0.2px',\n '--letter-spacing-h3': '0.2px',\n '--letter-spacing-h3-mobile': '0.2px',\n '--letter-spacing-h4': '0.2px',\n '--letter-spacing-h5': '0.2px',\n '--letter-spacing-h6': '1px',\n '--letter-spacing-label-mini': '1px',\n '--letter-spacing-label-strong': '0.2px',\n '--search-input-border-radius': '24px',\n '--text-transform-button': 'uppercase',\n '--text-transform-h6': 'uppercase',\n '--text-transform-label-mini': 'uppercase',\n '--width-dense': '1200px',\n '--width-page': '1644px',\n} satisfies Record<NonColorCSSVariables, string>;\n","import {\n colorCritical400,\n colorCritical50,\n colorCritical500,\n colorInfo400,\n colorInfo50,\n colorInfo600,\n colorInfo700,\n colorPrimary500,\n colorPrimary700,\n colorPrimary900,\n colorSecondary50,\n colorSuccess300,\n colorSuccess50,\n colorSuccess700,\n colorSuccess900,\n colorSurface100,\n colorSurface200,\n colorSurface300,\n colorSurface50,\n colorSurface500,\n colorSurface900,\n colorTertiary50,\n colorWarning300,\n colorWarning50,\n colorWarning500,\n colorWarning600,\n colorWarning800,\n} from '../tailwind/cssVars';\nimport { colorStepArrayToObject, generateNormalColorSteps, generateSurfaceColorSteps } from '../utils/color';\nimport { wrapOpacity, wrapVar } from '../utils/wrapVar';\nimport { ColorAliasesObject, NonColorCSSVariables } from './generateCSSVars';\n\n// \"Graphite & Ink\" palette (DS-83, approved 2026-07-12): deep ink-blue primary over cool graphite\n// neutrals. Key names are stable API (buildTheme exposes them); comments give the actual hue.\nexport const coreColors = {\n amber: colorStepArrayToObject(generateNormalColorSteps('#D97706')), // burnt amber\n blue: colorStepArrayToObject(generateNormalColorSteps('#2563EB')), // royal blue\n gray: colorStepArrayToObject(generateNormalColorSteps('#33415C')), // ink blue\n green: colorStepArrayToObject(generateNormalColorSteps('#16A34A')), // emerald\n neutral: colorStepArrayToObject(generateSurfaceColorSteps('#555E6B', true)), // cool graphite\n red: colorStepArrayToObject(generateNormalColorSteps('#D92525')), // signal red\n stone: colorStepArrayToObject(generateNormalColorSteps('#6E6259')), // warm stone\n zinc: colorStepArrayToObject(generateNormalColorSteps('#5C6470')), // cool zinc\n};\n\nexport const colorAliases = {\n critical: coreColors.red,\n info: coreColors.blue,\n primary: coreColors.gray,\n secondary: coreColors.zinc,\n success: coreColors.green,\n surface: coreColors.neutral,\n tertiary: coreColors.stone,\n warning: coreColors.amber,\n} satisfies ColorAliasesObject;\n\nexport const nonColorVariables = {\n '--box-shadow-01': `0px 4px 4px ${wrapOpacity(wrapVar(colorSurface200), 50)}`,\n '--box-shadow-02': `0px 1px 4px ${wrapOpacity(wrapVar(colorSurface300), 50)}, 0px 1px 8px ${wrapOpacity(wrapVar(colorSurface200), 50)}`,\n '--box-shadow-03': `0px 2px 8px ${wrapOpacity(wrapVar(colorSurface300), 50)}, 0px 4px 16px ${wrapOpacity(wrapVar(colorSurface200), 50)}`,\n '--box-shadow-04': `0px 3px 12px ${wrapOpacity(wrapVar(colorSurface500), 50)}, 0px 6px 24px ${wrapOpacity(wrapVar(colorSurface300), 50)}`,\n '--box-shadow-05': `0px -4px 4px ${wrapOpacity(wrapVar(colorSurface200), 50)}`,\n '--button-border-radius': '8px',\n '--checkbox-border-radius': '4px',\n '--color-background-critical-dark': wrapVar(colorCritical500),\n '--color-background-critical-light': wrapVar(colorCritical50),\n '--color-background-disabled': wrapVar(colorSurface200),\n '--color-background-hover': wrapVar(colorSurface900),\n '--color-background-hover-inverse': wrapVar(colorSurface50),\n '--color-background-info-dark': wrapVar(colorInfo600),\n '--color-background-info-light': wrapVar(colorInfo50),\n '--color-background-inverse': wrapVar(colorPrimary900),\n '--color-background-overlay': wrapVar(colorSurface900),\n '--color-background-pressed': wrapVar(colorSurface900),\n '--color-background-pressed-inverse': wrapVar(colorSurface50),\n '--color-background-primary': wrapVar(colorSurface50),\n '--color-background-secondary': wrapVar(colorSecondary50),\n '--color-background-subdued': wrapVar(colorSurface100),\n '--color-background-success-dark': wrapVar(colorSuccess900),\n '--color-background-success-light': wrapVar(colorSuccess50),\n '--color-background-tertiary': wrapVar(colorTertiary50),\n '--color-background-warning-dark': wrapVar(colorWarning500),\n '--color-background-warning-light': wrapVar(colorWarning50),\n '--color-border-black': wrapVar(colorSurface900),\n '--color-border-critical': wrapVar(colorCritical400),\n '--color-border-disabled': wrapVar(colorSurface300),\n '--color-border-hover': wrapVar(colorPrimary700),\n '--color-border-info': wrapVar(colorInfo400),\n '--color-border-inverse': wrapVar(colorSurface50),\n '--color-border-primary': wrapVar(colorSurface300),\n '--color-border-secondary': wrapVar(colorSurface200),\n '--color-border-selected': wrapVar(colorPrimary500),\n '--color-border-success': wrapVar(colorSuccess300),\n '--color-border-tertiary': wrapVar(colorSurface100),\n '--color-border-warning': wrapVar(colorWarning300),\n '--color-focus-inverse': wrapVar(colorSurface50),\n '--color-focus-primary': wrapVar(colorPrimary500),\n '--color-icon-critical': wrapVar(colorCritical400),\n '--color-icon-disabled': wrapVar(colorSurface300),\n '--color-icon-info': wrapVar(colorInfo400),\n '--color-icon-inverse': wrapVar(colorSurface50),\n '--color-icon-primary': wrapVar(colorSurface500),\n '--color-icon-secondary': wrapVar(colorPrimary500),\n '--color-icon-success': wrapVar(colorSuccess700),\n '--color-icon-warning': wrapVar(colorWarning600),\n '--color-link-disabled': wrapVar(colorSurface300),\n '--color-link-hover': wrapVar(colorPrimary700),\n '--color-link-inverse': wrapVar(colorSurface50),\n '--color-link-inverse-disabled': wrapVar(colorSurface300),\n '--color-link-inverse-hover': wrapVar(colorSurface100),\n '--color-link-inverse-pressed': wrapVar(colorSurface200),\n '--color-link-monochrome': wrapVar(colorSurface900),\n '--color-link-pressed': wrapVar(colorPrimary900),\n '--color-link-primary': wrapVar(colorPrimary500),\n '--color-link-secondary': wrapVar(colorSurface500),\n '--color-text-critical': wrapVar(colorCritical500),\n '--color-text-disabled': wrapVar(colorSurface300),\n '--color-text-inactive': wrapVar(colorSurface300),\n '--color-text-info': wrapVar(colorInfo700),\n '--color-text-inverse': wrapVar(colorSurface50),\n '--color-text-primary': wrapVar(colorSurface900),\n '--color-text-secondary': wrapVar(colorSurface500),\n '--color-text-success': wrapVar(colorSuccess900),\n '--color-text-warning': wrapVar(colorWarning800),\n '--container-border-radius': '8px',\n '--font-family-primary': \"'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif\",\n '--font-family-secondary': \"'Georgia', serif\",\n '--font-size-button-100': '14px',\n '--font-size-button-200': '12px',\n '--font-weight-body-primary': '400',\n '--font-weight-body-secondary': '400',\n '--font-weight-button': '600',\n '--font-weight-caption': '400',\n '--font-weight-h1': '400',\n '--font-weight-h2': '400',\n '--font-weight-h3': '400',\n '--font-weight-h4': '400',\n '--font-weight-h5': '600',\n '--font-weight-h6': '600',\n '--font-weight-label-mini': '400',\n '--font-weight-label-strong': '600',\n '--input-border-radius': '6px',\n '--letter-spacing-body-primary': '0.2px',\n '--letter-spacing-body-secondary': '0.2px',\n '--letter-spacing-button': '1px',\n '--letter-spacing-caption': '0.2px',\n '--letter-spacing-h1': '0.2px',\n '--letter-spacing-h1-mobile': '0.2px',\n '--letter-spacing-h2': '0.2px',\n '--letter-spacing-h2-mobile': '0.2px',\n '--letter-spacing-h3': '0.2px',\n '--letter-spacing-h3-mobile': '0.2px',\n '--letter-spacing-h4': '0.2px',\n '--letter-spacing-h5': '0.2px',\n '--letter-spacing-h6': '1px',\n '--letter-spacing-label-mini': '1px',\n '--letter-spacing-label-strong': '0.2px',\n '--search-input-border-radius': '24px',\n '--text-transform-button': 'uppercase',\n '--text-transform-h6': 'uppercase',\n '--text-transform-label-mini': 'uppercase',\n '--width-dense': '1200px',\n '--width-page': '1644px',\n} satisfies Record<NonColorCSSVariables, string>;\n","/**\n * WCAG 2.1 relative luminance and contrast ratio, independent of the colour generator (no tinycolor).\n * Shared by contrast.spec.ts and EverydayHarbor.spec.ts so every contrast gate uses ONE formula.\n * Inputs are the generator's channel strings (\"R G B\", as `removeRGB` in utils/color.ts emits).\n */\n\n/** Parse a channel string such as \"51 65 92\". Throws on anything that is not three 0-255 numbers. */\nexport const parseChannels = (value: string): [number, number, number] => {\n const parts = value\n .trim()\n .split(/[\\s,]+/)\n .map(Number);\n if (parts.length !== 3 || parts.some((c) => !Number.isFinite(c) || c < 0 || c > 255)) {\n throw new Error(`Not an \"R G B\" channel string: ${JSON.stringify(value)}`);\n }\n return parts as [number, number, number];\n};\n\n/** `#RRGGBB` to the generator's channel string. Throws on a malformed literal. */\nexport const hexToChannels = (hex: string): string => {\n if (!/^#[0-9a-f]{6}$/i.test(hex)) {\n throw new Error(`Not a #RRGGBB literal: ${JSON.stringify(hex)}`);\n }\n return [1, 3, 5].map((i) => parseInt(hex.slice(i, i + 2), 16)).join(' ');\n};\n\n/** Generator channel string to `#RRGGBB` (uppercase). */\nexport const channelsToHex = (channels: string): string =>\n `#${parseChannels(channels)\n .map((c) => c.toString(16).padStart(2, '0'))\n .join('')\n .toUpperCase()}`;\n\n/** WCAG 2.1 relative luminance. */\nexport const luminance = ([r, g, b]: [number, number, number]): number => {\n const [lr, lg, lb] = [r, g, b].map((channel) => {\n const c = channel / 255;\n return c <= 0.03928 ? c / 12.92 : Math.pow((c + 0.055) / 1.055, 2.4);\n });\n return 0.2126 * lr + 0.7152 * lg + 0.0722 * lb;\n};\n\n/** WCAG 2.1 contrast ratio between two channel strings. */\nexport const contrast = (a: string, b: string): number => {\n const [la, lb] = [luminance(parseChannels(a)), luminance(parseChannels(b))];\n const [lighter, darker] = la >= lb ? [la, lb] : [lb, la];\n return (lighter + 0.05) / (darker + 0.05);\n};\n","/**\n * Ramp builders for canvas-dark (\"ink\") brands. Deliberately NOT in utils/color.ts: the Ground\n * baseline records that file's export list, and the themeValues snapshot pins its generators.\n * These builders only rearrange generator output or parse approved hexes; they never change\n * what generateNormalColorSteps returns.\n *\n * Why invert: core-components hard-code palette steps relative to a light canvas\n * (`bg-primary-500 text-text-inverse` filled, `text-primary-500` on `bg-background-primary`\n * outlined, `hover:bg-primary-100 hover:text-primary-700`, ...). Those pairs only keep their\n * contrast when step 50 sits next to the canvas, 900 sits far from it, and text-inverse equals the\n * canvas. Reversing every ramp keeps that geometry on an ink canvas, so the brand can reuse the\n * shared semantic map almost unchanged (see EverydayHarbor.ts).\n */\nimport { type StepObject, type Steps, colorStepArrayToObject, generateNormalColorSteps, steps } from '../utils/color';\nimport { hexToChannels, luminance, parseChannels } from './wcag';\n\n/** A `#RRGGBB` literal. Validated when the theme module loads; a bad literal throws there. */\nexport type Hex = `#${string}`;\n\n/**\n * generateNormalColorSteps(seed), reversed: 50 is the deepest shade, 900 the palest tint.\n * The seed lands on step 400 (the generator's 500), and the generator's 400 tint lands on 500.\n * Example: seed #8EC5E8 -> 400 '142 197 232' (#8EC5E8), 500 '165 209 237' (#A5D1ED).\n */\nexport const inkNormalSteps = (seed: Hex): StepObject =>\n colorStepArrayToObject([...generateNormalColorSteps(seed)].reverse());\n\n/**\n * A hand-authored ramp from approved hexes, for families no seed reproduces (the ink surface ramp\n * has seven approved anchors). Every step is required; output is the generator's channel format.\n * Throws at load when a literal is malformed or the ramp is not strictly lighter at each step, so a\n * swapped anchor fails immediately instead of in review.\n */\nexport const anchoredSteps = (hexes: Readonly<Record<Steps, Hex>>): StepObject => {\n const ramp = Object.fromEntries(steps.map((step) => [step, hexToChannels(hexes[step])])) as StepObject;\n steps.slice(1).forEach((step, index) => {\n const previous = steps[index];\n if (luminance(parseChannels(ramp[step])) <= luminance(parseChannels(ramp[previous]))) {\n throw new Error(`anchoredSteps: step ${step} (${hexes[step]}) is not lighter than step ${previous}`);\n }\n });\n return ramp;\n};\n","import type { ColorAliasesObject, NonColorCSSVariables } from './generateCSSVars';\n\n/**\n * \"Harbor Ink\" palette (brief of 2026-10-07), solid tokens only. The effect layer comes later.\n *\n * Ink-first: every ramp is reversed (inkRamps.ts) so the shared semantic map keeps working on a navy\n * canvas. The brand differs from Default's map ONLY in `inkOverrides` and `inkShape`;\n * EverydayHarbor.spec pins that the diff is exactly those keys.\n *\n * Where the approved hexes land (exact, asserted by EverydayHarbor.spec):\n * surface-50 #0B1626 canvas (background-primary, text-inverse) surface-100 #12223A card\n * surface-200 #1A2E4A raised surface-300 #56708F border / ring track\n * surface-500 #A9B6C6 muted text (solid) surface-600 #B9C5D3 muted text (glass)\n * surface-900 #EEF2F6 text-primary\n * primary-400 #2E6BA6 harbor blue (seed) primary-500 #70B2EE the on-ink action step (see `harbor`)\n * info-400 #8EC5E8 links / info (seed) info-500 #A5D1ED ring arc (icon-secondary, ring option B)\n * tertiary-400 #E3B341 gold focus ring (seed)\n * success-400 #A3B04E olive (seed) warning-400 #D9963E (seed, CTA gradient end)\n * critical-400 #E5534B (seed, NOT in the brief: proposed, Dave to confirm)\n *\n * Surface ramp: seven steps are approved anchors (50, 100, 200, 300, 500, 600, 900). The other three\n * are filled monotonically by per-channel sRGB interpolation, rounded to nearest:\n * 400 = midpoint of 300 and 500; 700 and 800 = one third and two thirds of the way from 600 to 900.\n * EverydayHarbor.spec recomputes them, so the rule is pinned rather than prose.\n */\nimport {\n colorInfo400,\n colorInfo500,\n colorInfo600,\n colorSuccess400,\n colorSurface100,\n colorSurface50,\n colorTertiary400,\n colorWarning100,\n colorWarning400,\n colorWarning500,\n} from '../tailwind/cssVars';\nimport { wrapVar } from '../utils/wrapVar';\nimport { nonColorVariables as sharedSemanticMap } from './Default';\nimport { anchoredSteps, inkNormalSteps } from './inkRamps';\nimport { hexToChannels } from './wcag';\n\nconst harborGenerated = inkNormalSteps('#2E6BA6');\n\n/**\n * Harbor primary ramp. 50-400 are the generated ink steps (seed #2E6BA6 stays on 400). Two steps are\n * pinned by hand because the generated 500 (#4489CB) is too dark for the pairs core hard-codes\n * around it:\n * - 500 #70B2EE is \"the on-ink action step\": navy text-inverse on it (filled button) 8.1:1, it as text\n * on the canvas / card / raised panel (outlined, transparent, filledInverse) 8.1 / 7.1 / 6.1:1, and\n * as text on the dark status tints (transparent Callout actions) >= 4.9:1 on the tightest, info-light.\n * The reference orb blue #5B9BD8 was tried first and only reaches 3.7:1 on info-light.\n * - 600 #95C3ED is the midpoint of 500 and the generated 700, so the ramp stays strictly lighter.\n * 700-900 (hover / active text) are the generated steps.\n */\nconst harbor = {\n ...harborGenerated,\n '500': hexToChannels('#70B2EE'),\n '600': hexToChannels('#95C3ED'),\n};\n\nexport const coreColors = {\n amber: inkNormalSteps('#D9963E'), // CTA gradient end\n coral: inkNormalSteps('#E5534B'), // proposed critical\n gold: inkNormalSteps('#E3B341'),\n harbor,\n ink: anchoredSteps({\n '50': '#0B1626',\n '100': '#12223A',\n '200': '#1A2E4A',\n '300': '#56708F',\n '400': '#8093AB', // interpolated: midpoint of 300 and 500\n '500': '#A9B6C6',\n '600': '#B9C5D3',\n '700': '#CBD4DF', // interpolated: 1/3 from 600 to 900\n '800': '#DCE3EA', // interpolated: 2/3 from 600 to 900\n '900': '#EEF2F6',\n }),\n olive: inkNormalSteps('#A3B04E'),\n sky: inkNormalSteps('#8EC5E8'),\n slate: inkNormalSteps('#56708F'),\n};\n\nexport const colorAliases = {\n critical: coreColors.coral,\n info: coreColors.sky,\n primary: coreColors.harbor,\n secondary: coreColors.slate,\n success: coreColors.olive,\n surface: coreColors.ink,\n tertiary: coreColors.gold,\n warning: coreColors.amber,\n} satisfies ColorAliasesObject;\n\nconst BLACK_SHADOW = (y: number, blur: number, alpha: number) => `0px ${y}px ${blur}px rgb(0 0 0 / ${alpha}%)`;\n\n/**\n * The only colour bindings that differ from the shared map. Reasons:\n * - overlay: the shared map scrims with surface-900, which is now the palest step; use the navy.\n * - background-secondary: the card colour (#12223A), not slate-50.\n * - status text/icons/strong fills: the shared map picks far-from-canvas steps (700-900) to darken\n * on white; on reversed ramps those are near-white and lose hue, so bind the seed (400) or 500.\n * - warning-dark: bold Badge / BannerNotification warning put text-primary (pale) and icon-primary on it\n * (Badge.tsx 'text-text-primary', BannerIcon color='primary'), so it needs a DEEP amber (warning-100\n * #754C17: 6.7:1 text, 3.6:1 icon). critical-dark / info-dark / success-dark carry text-inverse\n * (navy) and keep the shared light bindings.\n * - focus-primary: gold ring (brief). link-*: light blue links (brief).\n * - icon-secondary: ring arc #A5D1ED (option B). icon-disabled is NOT overridden: the shared\n * surface-300 binding already resolves to the ring track colour #56708F.\n */\nconst inkOverrides = {\n '--color-background-overlay': wrapVar(colorSurface50),\n '--color-background-secondary': wrapVar(colorSurface100),\n '--color-background-success-dark': wrapVar(colorSuccess400),\n '--color-background-warning-dark': wrapVar(colorWarning100),\n '--color-focus-primary': wrapVar(colorTertiary400),\n '--color-icon-secondary': wrapVar(colorInfo500),\n '--color-icon-success': wrapVar(colorSuccess400),\n '--color-icon-warning': wrapVar(colorWarning400),\n '--color-link-hover': wrapVar(colorInfo500),\n '--color-link-pressed': wrapVar(colorInfo600),\n '--color-link-primary': wrapVar(colorInfo400),\n '--color-text-info': wrapVar(colorInfo400),\n '--color-text-success': wrapVar(colorSuccess400),\n '--color-text-warning': wrapVar(colorWarning500),\n} as const satisfies Partial<Record<NonColorCSSVariables, string>>;\n\n/** Shape tokens: Inter for every heading (h1-h4 read --font-family-secondary), black drop shadows. */\nconst inkShape = {\n '--box-shadow-01': BLACK_SHADOW(4, 4, 45),\n '--box-shadow-02': `${BLACK_SHADOW(1, 4, 45)}, ${BLACK_SHADOW(1, 8, 35)}`,\n '--box-shadow-03': `${BLACK_SHADOW(2, 8, 45)}, ${BLACK_SHADOW(4, 16, 35)}`,\n '--box-shadow-04': `${BLACK_SHADOW(3, 12, 50)}, ${BLACK_SHADOW(6, 24, 40)}`,\n '--box-shadow-05': BLACK_SHADOW(-4, 4, 45),\n '--container-border-radius': '12px',\n '--font-family-secondary': \"'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif\",\n // --text-transform-button stays 'uppercase' (inherited). OPEN for Dave: the brief is silent.\n} as const satisfies Partial<Record<NonColorCSSVariables, string>>;\n\nexport const nonColorVariables = {\n ...sharedSemanticMap,\n ...inkOverrides,\n ...inkShape,\n} satisfies Record<NonColorCSSVariables, string>;\n\n/** Exported for EverydayHarbor.spec (\"differs from the shared map exactly here\"). */\nexport const everydayHarborOverrides = { ...inkOverrides, ...inkShape };\n","import {\n colorCritical400,\n colorCritical50,\n colorCritical500,\n colorInfo400,\n colorInfo50,\n colorInfo600,\n colorInfo700,\n colorPrimary500,\n colorPrimary700,\n colorPrimary900,\n colorSecondary50,\n colorSuccess300,\n colorSuccess50,\n colorSuccess700,\n colorSuccess900,\n colorSurface100,\n colorSurface200,\n colorSurface300,\n colorSurface50,\n colorSurface500,\n colorSurface900,\n colorTertiary50,\n colorWarning300,\n colorWarning50,\n colorWarning500,\n colorWarning600,\n colorWarning800,\n} from '../tailwind/cssVars';\nimport { colorStepArrayToObject, generateNormalColorSteps, generateSurfaceColorSteps } from '../utils/color';\nimport { wrapOpacity, wrapVar } from '../utils/wrapVar';\nimport { ColorAliasesObject, NonColorCSSVariables } from './generateCSSVars';\n\n// \"Boardroom Blue\" palette (DS-83, approved 2026-07-12): deep corporate-blue primary that is no\n// longer identical to the info status — info moves to its own cyan family (additive key). Key\n// names are stable API (buildTheme exposes them); comments give the actual hue.\nexport const coreColors = {\n amber: colorStepArrayToObject(generateNormalColorSteps('#B45309')), // burnt amber\n blue: colorStepArrayToObject(generateNormalColorSteps('#1D4ED8')), // corporate blue\n cyan: colorStepArrayToObject(generateNormalColorSteps('#0C6478')), // info cyan\n green: colorStepArrayToObject(generateNormalColorSteps('#047857')), // deep green\n indigo: colorStepArrayToObject(generateNormalColorSteps('#4F46E5')), // refined indigo\n neutral: colorStepArrayToObject(generateSurfaceColorSteps('#525B6E', true)), // cool slate-gray\n red: colorStepArrayToObject(generateNormalColorSteps('#D42424')), // signal red\n slate: colorStepArrayToObject(generateNormalColorSteps('#475569')), // slate\n};\n\nexport const colorAliases = {\n critical: coreColors.red,\n info: coreColors.cyan,\n primary: coreColors.blue,\n secondary: coreColors.slate,\n success: coreColors.green,\n surface: coreColors.neutral,\n tertiary: coreColors.indigo,\n warning: coreColors.amber,\n} satisfies ColorAliasesObject;\n\nexport const nonColorVariables = {\n '--box-shadow-01': `0px 4px 4px ${wrapOpacity(wrapVar(colorSurface200), 50)}`,\n '--box-shadow-02': `0px 1px 4px ${wrapOpacity(wrapVar(colorSurface300), 50)}, 0px 1px 8px ${wrapOpacity(wrapVar(colorSurface200), 50)}`,\n '--box-shadow-03': `0px 2px 8px ${wrapOpacity(wrapVar(colorSurface300), 50)}, 0px 4px 16px ${wrapOpacity(wrapVar(colorSurface200), 50)}`,\n '--box-shadow-04': `0px 3px 12px ${wrapOpacity(wrapVar(colorSurface500), 50)}, 0px 6px 24px ${wrapOpacity(wrapVar(colorSurface300), 50)}`,\n '--box-shadow-05': `0px -4px 4px ${wrapOpacity(wrapVar(colorSurface200), 50)}`,\n '--button-border-radius': '8px',\n '--checkbox-border-radius': '4px',\n '--color-background-critical-dark': wrapVar(colorCritical500),\n '--color-background-critical-light': wrapVar(colorCritical50),\n '--color-background-disabled': wrapVar(colorSurface200),\n '--color-background-hover': wrapVar(colorSurface900),\n '--color-background-hover-inverse': wrapVar(colorSurface50),\n '--color-background-info-dark': wrapVar(colorInfo600),\n '--color-background-info-light': wrapVar(colorInfo50),\n '--color-background-inverse': wrapVar(colorPrimary900),\n '--color-background-overlay': wrapVar(colorSurface900),\n '--color-background-pressed': wrapVar(colorSurface900),\n '--color-background-pressed-inverse': wrapVar(colorSurface50),\n '--color-background-primary': wrapVar(colorSurface50),\n '--color-background-secondary': wrapVar(colorSecondary50),\n '--color-background-subdued': wrapVar(colorSurface100),\n '--color-background-success-dark': wrapVar(colorSuccess900),\n '--color-background-success-light': wrapVar(colorSuccess50),\n '--color-background-tertiary': wrapVar(colorTertiary50),\n '--color-background-warning-dark': wrapVar(colorWarning500),\n '--color-background-warning-light': wrapVar(colorWarning50),\n '--color-border-black': wrapVar(colorSurface900),\n '--color-border-critical': wrapVar(colorCritical400),\n '--color-border-disabled': wrapVar(colorSurface300),\n '--color-border-hover': wrapVar(colorPrimary700),\n '--color-border-info': wrapVar(colorInfo400),\n '--color-border-inverse': wrapVar(colorSurface50),\n '--color-border-primary': wrapVar(colorSurface300),\n '--color-border-secondary': wrapVar(colorSurface200),\n '--color-border-selected': wrapVar(colorPrimary500),\n '--color-border-success': wrapVar(colorSuccess300),\n '--color-border-tertiary': wrapVar(colorSurface100),\n '--color-border-warning': wrapVar(colorWarning300),\n '--color-focus-inverse': wrapVar(colorSurface50),\n '--color-focus-primary': wrapVar(colorPrimary500),\n '--color-icon-critical': wrapVar(colorCritical400),\n '--color-icon-disabled': wrapVar(colorSurface300),\n '--color-icon-info': wrapVar(colorInfo400),\n '--color-icon-inverse': wrapVar(colorSurface50),\n '--color-icon-primary': wrapVar(colorSurface500),\n '--color-icon-secondary': wrapVar(colorPrimary500),\n '--color-icon-success': wrapVar(colorSuccess700),\n '--color-icon-warning': wrapVar(colorWarning600),\n '--color-link-disabled': wrapVar(colorSurface300),\n '--color-link-hover': wrapVar(colorPrimary700),\n '--color-link-inverse': wrapVar(colorSurface50),\n '--color-link-inverse-disabled': wrapVar(colorSurface300),\n '--color-link-inverse-hover': wrapVar(colorSurface100),\n '--color-link-inverse-pressed': wrapVar(colorSurface200),\n '--color-link-monochrome': wrapVar(colorSurface900),\n '--color-link-pressed': wrapVar(colorPrimary900),\n '--color-link-primary': wrapVar(colorPrimary500),\n '--color-link-secondary': wrapVar(colorSurface500),\n '--color-text-critical': wrapVar(colorCritical500),\n '--color-text-disabled': wrapVar(colorSurface300),\n '--color-text-inactive': wrapVar(colorSurface300),\n '--color-text-info': wrapVar(colorInfo700),\n '--color-text-inverse': wrapVar(colorSurface50),\n '--color-text-primary': wrapVar(colorSurface900),\n '--color-text-secondary': wrapVar(colorSurface500),\n '--color-text-success': wrapVar(colorSuccess900),\n '--color-text-warning': wrapVar(colorWarning800),\n '--container-border-radius': '12px',\n '--font-family-primary': \"'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif\",\n '--font-family-secondary': \"'Georgia', serif\",\n '--font-size-button-100': '14px',\n '--font-size-button-200': '12px',\n '--font-weight-body-primary': '400',\n '--font-weight-body-secondary': '400',\n '--font-weight-button': '600',\n '--font-weight-caption': '400',\n '--font-weight-h1': '400',\n '--font-weight-h2': '400',\n '--font-weight-h3': '400',\n '--font-weight-h4': '400',\n '--font-weight-h5': '600',\n '--font-weight-h6': '600',\n '--font-weight-label-mini': '400',\n '--font-weight-label-strong': '600',\n '--input-border-radius': '6px',\n '--letter-spacing-body-primary': '0.2px',\n '--letter-spacing-body-secondary': '0.2px',\n '--letter-spacing-button': '1px',\n '--letter-spacing-caption': '0.2px',\n '--letter-spacing-h1': '0.2px',\n '--letter-spacing-h1-mobile': '0.2px',\n '--letter-spacing-h2': '0.2px',\n '--letter-spacing-h2-mobile': '0.2px',\n '--letter-spacing-h3': '0.2px',\n '--letter-spacing-h3-mobile': '0.2px',\n '--letter-spacing-h4': '0.2px',\n '--letter-spacing-h5': '0.2px',\n '--letter-spacing-h6': '1px',\n '--letter-spacing-label-mini': '1px',\n '--letter-spacing-label-strong': '0.2px',\n '--search-input-border-radius': '24px',\n '--text-transform-button': 'uppercase',\n '--text-transform-h6': 'uppercase',\n '--text-transform-label-mini': 'uppercase',\n '--width-dense': '1200px',\n '--width-page': '1644px',\n} satisfies Record<NonColorCSSVariables, string>;\n","/**\n * The one build-time table of brand palette modules. Internal: not a tsdown entry and not\n * re-exported from index.ts (brands.ts stays pure data for the browser). Consumers read this instead\n * of hand-listing brands: tsdown.config.ts onSuccess, runtime/buildTheme.ts, themeValues.ts,\n * contrast.spec.ts and tailwind/text.spec.ts. allThemes.ts keeps its explicit map because index.ts\n * re-exports the per-brand runtime themes; `satisfies Record<Brands, …>` makes a missing brand a compile error.\n *\n * Key order is load-bearing: the themeValues snapshot is an ORDERED entry list built by iterating\n * this object, so keep BasketballTraining, Default, ProfessionalBrand and append new brands (EverydayHarbor).\n */\nimport type { StepObject } from '../utils/color';\nimport type { Brands } from './brands';\n\nimport * as BasketballTraining from './BasketballTraining';\nimport * as Default from './Default';\nimport * as EverydayHarbor from './EverydayHarbor';\nimport { type ColorAliasesObject, type NonColorCSSVariables, makeColorCSSVarsFromObject } from './generateCSSVars';\nimport * as ProfessionalBrand from './ProfessionalBrand';\n\nexport type BrandModule = {\n readonly coreColors: Readonly<Record<string, StepObject>>;\n readonly colorAliases: ColorAliasesObject;\n readonly nonColorVariables: Readonly<Record<NonColorCSSVariables, string>>;\n};\n\nexport const brandSources = {\n BasketballTraining,\n Default,\n ProfessionalBrand,\n EverydayHarbor,\n} as const satisfies Record<Brands, BrandModule>;\n\n/** `{ ...nonColorVariables, ...palette vars }` in that order: exactly what the CSS generator receives. */\nexport const brandCssVariables = (brand: Brands): Record<string, string> => ({\n ...brandSources[brand].nonColorVariables,\n ...makeColorCSSVarsFromObject(brandSources[brand].colorAliases),\n});\n","import type { Brands } from '../brands';\nimport type { CleanTheme, Theme, TypographySpec } from '../themeType';\n\nimport { boxShadow } from '../../tailwind/boxShadow';\nimport * as cssVars from '../../tailwind/cssVars';\nimport { fontFamily } from '../../tailwind/fontFamily';\nimport { brandSources } from '../brandSources';\nimport { breakpoints, radius, spacing, width } from '../common';\n\nconst variable = (name: string): string => `var(${name})`;\n\ntype TextSpecInput = Omit<TypographySpec, 'family' | 'style'> & {\n family?: TypographySpec['family'];\n};\n\nconst textSpec = ({\n family = fontFamily.primary,\n height,\n size,\n spacing: letterSpacing,\n transform,\n weight,\n}: TextSpecInput): TypographySpec => ({\n family,\n height,\n size,\n spacing: letterSpacing,\n style: 'normal',\n transform,\n weight,\n});\n\nconst buildTypography = (): Theme['typography'] => {\n const bodyPrimary = textSpec({\n height: '24px',\n size: '16px',\n spacing: variable(cssVars.letterSpacingBodyPrimary),\n weight: variable(cssVars.fontWeightBodyPrimary),\n });\n const bodySecondary = textSpec({\n height: '22px',\n size: '14px',\n spacing: variable(cssVars.letterSpacingBodySecondary),\n weight: variable(cssVars.fontWeightBodySecondary),\n });\n\n return {\n body: {\n primary: bodyPrimary,\n secondary: bodySecondary,\n },\n button: {\n '100': textSpec({\n height: '20px',\n size: variable(cssVars.fontSizeButton100),\n spacing: variable(cssVars.letterSpacingButton),\n transform: variable(cssVars.textTransformButton),\n weight: variable(cssVars.fontWeightButton),\n }),\n '200': textSpec({\n height: '18px',\n size: variable(cssVars.fontSizeButton200),\n spacing: variable(cssVars.letterSpacingButton),\n transform: variable(cssVars.textTransformButton),\n weight: variable(cssVars.fontWeightButton),\n }),\n },\n caption: {\n '100': textSpec({\n height: '18px',\n size: '12px',\n spacing: variable(cssVars.letterSpacingCaption),\n weight: variable(cssVars.fontWeightCaption),\n }),\n },\n heading: {\n '000': textSpec({\n family: fontFamily.secondary,\n height: '56px',\n size: '40px',\n spacing: variable(cssVars.letterSpacingH1),\n weight: variable(cssVars.fontWeightH1),\n }),\n '100': {\n ...textSpec({\n family: fontFamily.secondary,\n height: '48px',\n size: '32px',\n spacing: variable(cssVars.letterSpacingH1),\n weight: variable(cssVars.fontWeightH1),\n }),\n mobile: textSpec({\n family: fontFamily.secondary,\n height: '36px',\n size: '24px',\n spacing: variable(cssVars.letterSpacingH1Mobile),\n weight: variable(cssVars.fontWeightH1),\n }),\n },\n '200': {\n ...textSpec({\n family: fontFamily.secondary,\n height: '36px',\n size: '24px',\n spacing: variable(cssVars.letterSpacingH2),\n weight: variable(cssVars.fontWeightH2),\n }),\n mobile: textSpec({\n family: fontFamily.secondary,\n height: '30px',\n size: '20px',\n spacing: variable(cssVars.letterSpacingH2Mobile),\n weight: variable(cssVars.fontWeightH2),\n }),\n },\n '300': {\n ...textSpec({\n family: fontFamily.secondary,\n height: '30px',\n size: '20px',\n spacing: variable(cssVars.letterSpacingH3),\n weight: variable(cssVars.fontWeightH3),\n }),\n // Mirrors `.hui-text-h3`'s mobile block in `tailwind/text.ts` — keep in lockstep\n // (DS-97 / SA-04; `tailwind/text.spec.ts` binds the two).\n mobile: textSpec({\n family: fontFamily.secondary,\n height: '27px',\n size: '18px',\n spacing: variable(cssVars.letterSpacingH3Mobile),\n weight: variable(cssVars.fontWeightH3),\n }),\n },\n '400': textSpec({\n family: fontFamily.secondary,\n height: '24px',\n size: '16px',\n spacing: variable(cssVars.letterSpacingH4),\n weight: variable(cssVars.fontWeightH4),\n }),\n '500': textSpec({\n height: '24px',\n size: '16px',\n spacing: variable(cssVars.letterSpacingH5),\n weight: variable(cssVars.fontWeightH5),\n }),\n '600': textSpec({\n height: '22px',\n size: '14px',\n spacing: variable(cssVars.letterSpacingH6),\n transform: variable(cssVars.textTransformH6),\n weight: variable(cssVars.fontWeightH6),\n }),\n },\n label: {\n mini: textSpec({\n height: '14px',\n size: '12px',\n spacing: variable(cssVars.letterSpacingLabelMini),\n transform: variable(cssVars.textTransformLabelMini),\n weight: variable(cssVars.fontWeightLabelMini),\n }),\n strong: textSpec({\n height: '22px',\n size: '14px',\n spacing: variable(cssVars.letterSpacingLabelStrong),\n weight: variable(cssVars.fontWeightLabelStrong),\n }),\n },\n };\n};\n\nexport const buildRuntimeTheme = (brand: Brands): CleanTheme => {\n const source = brandSources[brand];\n const v = variable;\n\n return {\n border: {\n radius,\n width,\n },\n brand,\n breakpoints,\n button: {\n border: { radius: v(cssVars.buttonBorderRadius) },\n favorite: {\n default: {\n color: { background: v(cssVars.colorBackgroundPrimary), border: v(cssVars.colorBorderPrimary) },\n },\n disabled: {\n color: { background: v(cssVars.colorBackgroundDisabled), border: v(cssVars.colorBorderDisabled) },\n },\n hover: { color: { background: v(cssVars.colorBackgroundHover), border: v(cssVars.colorBorderHover) } },\n pressed: {\n color: { background: v(cssVars.colorBackgroundPressed), border: v(cssVars.colorBorderSelected) },\n },\n selected: {\n color: { background: v(cssVars.colorBackgroundPrimary), border: v(cssVars.colorBorderSelected) },\n },\n },\n inline: {\n alt: {\n default: { color: { text: v(cssVars.colorLinkInverse) } },\n hover: { color: { text: v(cssVars.colorLinkInverseHover) } },\n pressed: { color: { text: v(cssVars.colorLinkInversePressed) } },\n },\n default: { color: { text: v(cssVars.colorLinkPrimary) } },\n hover: { color: { text: v(cssVars.colorLinkHover) } },\n inverse: { color: { text: v(cssVars.colorLinkInverse) } },\n pressed: { color: { text: v(cssVars.colorLinkPressed) } },\n weak: { color: { text: v(cssVars.colorLinkSecondary) } },\n },\n primary: {\n alt: {\n color: {\n background: v(cssVars.colorBackgroundInverse),\n border: v(cssVars.colorBorderInverse),\n text: v(cssVars.colorTextInverse),\n },\n focused: { color: { background: v(cssVars.colorBackgroundHoverInverse) } },\n hover: {\n color: {\n background: v(cssVars.colorBackgroundHoverInverse),\n border: v(cssVars.colorBorderInverse),\n },\n },\n pressed: {\n color: {\n background: v(cssVars.colorBackgroundPressedInverse),\n border: v(cssVars.colorBorderInverse),\n },\n },\n },\n color: { background: v(cssVars.colorLinkPrimary), text: v(cssVars.colorTextInverse) },\n focused: { color: { background: v(cssVars.colorLinkHover) } },\n hover: { color: { background: v(cssVars.colorLinkHover) } },\n pressed: { color: { background: v(cssVars.colorLinkPressed) } },\n },\n secondary: {\n alt: {\n color: {\n background: v(cssVars.colorBackgroundPrimary),\n border: v(cssVars.colorBorderInverse),\n text: v(cssVars.colorTextInverse),\n },\n focused: {\n color: {\n background: v(cssVars.colorBackgroundHoverInverse),\n text: v(cssVars.colorTextPrimary),\n },\n },\n hover: {\n color: {\n background: v(cssVars.colorBackgroundHoverInverse),\n border: v(cssVars.colorBorderInverse),\n text: v(cssVars.colorTextPrimary),\n },\n },\n pressed: {\n color: {\n background: v(cssVars.colorBackgroundPressedInverse),\n border: v(cssVars.colorBorderInverse),\n },\n },\n },\n color: {\n background: v(cssVars.colorBackgroundPrimary),\n border: v(cssVars.colorBorderPrimary),\n text: v(cssVars.colorTextPrimary),\n },\n focused: { color: { background: v(cssVars.colorBackgroundHover) } },\n hover: {\n color: {\n background: v(cssVars.colorBackgroundHover),\n border: v(cssVars.colorBorderHover),\n text: v(cssVars.colorTextInverse),\n },\n },\n pressed: {\n color: { background: v(cssVars.colorBackgroundPressed), border: v(cssVars.colorBorderSelected) },\n },\n },\n tertiary: {\n color: { text: v(cssVars.colorLinkPrimary) },\n hover: { color: { background: v(cssVars.colorBackgroundHover) } },\n pressed: { color: { background: v(cssVars.colorBackgroundPressed) } },\n },\n },\n checkbox: { border: { radius: v(cssVars.checkboxBorderRadius) } },\n color: {\n background: {\n critical: {\n dark: v(cssVars.colorBackgroundCriticalDark),\n light: v(cssVars.colorBackgroundCriticalLight),\n },\n decorative: v(cssVars.colorBackgroundTertiary),\n disabled: v(cssVars.colorBackgroundDisabled),\n field: { default: v(cssVars.colorBackgroundPrimary) },\n hover: v(cssVars.colorBackgroundHover),\n info: { dark: v(cssVars.colorBackgroundInfoDark), light: v(cssVars.colorBackgroundInfoLight) },\n inverse: v(cssVars.colorBackgroundInverse),\n neutral: { dark: v(cssVars.colorBackgroundInverse), light: v(cssVars.colorBackgroundSubdued) },\n pressed: v(cssVars.colorBackgroundPressed),\n primary: v(cssVars.colorBackgroundPrimary),\n secondary: v(cssVars.colorBackgroundSecondary),\n subdued: v(cssVars.colorBackgroundSubdued),\n success: { dark: v(cssVars.colorBackgroundSuccessDark), light: v(cssVars.colorBackgroundSuccessLight) },\n tertiary: v(cssVars.colorBackgroundTertiary),\n warning: { dark: v(cssVars.colorBackgroundWarningDark), light: v(cssVars.colorBackgroundWarningLight) },\n },\n border: {\n critical: v(cssVars.colorBorderCritical),\n disabled: v(cssVars.colorBorderDisabled),\n divider: {\n black: v(cssVars.colorBorderBlack),\n dark: v(cssVars.colorBorderPrimary),\n default: v(cssVars.colorBorderSecondary),\n inverse: v(cssVars.colorBorderInverse),\n light: v(cssVars.colorBorderTertiary),\n },\n focused: { default: v(cssVars.colorFocusPrimary), inverse: v(cssVars.colorFocusInverse) },\n hover: v(cssVars.colorBorderHover),\n info: v(cssVars.colorBorderInfo),\n inverse: v(cssVars.colorBorderInverse),\n primary: v(cssVars.colorBorderPrimary),\n secondary: v(cssVars.colorBorderSecondary),\n selected: v(cssVars.colorBorderSelected),\n success: v(cssVars.colorBorderSuccess),\n warning: v(cssVars.colorBorderWarning),\n },\n icon: {\n active: v(cssVars.colorIconPrimary),\n alt: {\n active: v(cssVars.colorIconInverse),\n default: v(cssVars.colorIconInverse),\n hover: v(cssVars.colorIconSecondary),\n },\n critical: v(cssVars.colorIconCritical),\n decorative: {\n alt: v(cssVars.colorIconSecondary),\n default: v(cssVars.colorIconPrimary),\n light: v(cssVars.colorIconDisabled),\n },\n default: v(cssVars.colorIconPrimary),\n disabled: v(cssVars.colorIconDisabled),\n hover: v(cssVars.colorIconSecondary),\n info: v(cssVars.colorIconInfo),\n inverse: v(cssVars.colorIconInverse),\n primary: {\n alt: {\n active: v(cssVars.colorIconInverse),\n default: v(cssVars.colorIconSecondary),\n hover: v(cssVars.colorIconPrimary),\n },\n default: v(cssVars.colorIconPrimary),\n },\n success: v(cssVars.colorIconSuccess),\n warning: { default: v(cssVars.colorIconWarning), light: v(cssVars.colorBackgroundWarningLight) },\n },\n keyboardFocus: v(cssVars.colorFocusPrimary),\n keyboardFocusInverse: v(cssVars.colorFocusInverse),\n shadow: {\n '01': boxShadow['01'],\n '02': boxShadow['02'],\n '03': boxShadow['03'],\n },\n skeleton: { default: v(cssVars.colorBackgroundSubdued) },\n text: {\n alt: v(cssVars.colorTextInverse),\n critical: v(cssVars.colorTextCritical),\n disabled: v(cssVars.colorTextDisabled),\n error: v(cssVars.colorTextCritical),\n inactive: v(cssVars.colorTextInactive),\n info: v(cssVars.colorTextInfo),\n inverse: v(cssVars.colorTextInverse),\n link: {\n active: v(cssVars.colorLinkPressed),\n default: v(cssVars.colorLinkPrimary),\n disabled: v(cssVars.colorLinkDisabled),\n focused: v(cssVars.colorLinkHover),\n hover: v(cssVars.colorLinkHover),\n inverse: v(cssVars.colorLinkInverse),\n monochrome: v(cssVars.colorLinkMonochrome),\n weak: v(cssVars.colorLinkSecondary),\n },\n primary: v(cssVars.colorTextPrimary),\n secondary: v(cssVars.colorTextSecondary),\n standard: v(cssVars.colorTextPrimary),\n success: v(cssVars.colorTextSuccess),\n warning: { default: v(cssVars.colorTextWarning), light: v(cssVars.colorBackgroundWarningLight) },\n weak: v(cssVars.colorTextSecondary),\n },\n transparent00: 'rgb(0 0 0 / 0%)',\n transparent05: 'rgb(0 0 0 / 5%)',\n transparent20: 'rgb(0 0 0 / 20%)',\n transparent40: 'rgb(0 0 0 / 40%)',\n },\n core: Object.fromEntries(Object.entries(source.coreColors).map(([key]) => [key, key])),\n elevation: {\n '01': v(cssVars.shadow01),\n '02': v(cssVars.shadow02),\n '03': v(cssVars.shadow03),\n '04': v(cssVars.shadow04),\n '05': v(cssVars.shadow05),\n },\n input: { border: { radius: v(cssVars.inputBorderRadius) } },\n spacing,\n toggle: { border: { radius: v(cssVars.buttonBorderRadius) } },\n typography: buildTypography(),\n };\n};\n","import { buildRuntimeTheme } from './buildTheme';\n\nexport const defaultTheme = buildRuntimeTheme('Default');\n"],"mappings":"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"}
|
package/effects.cjs
ADDED
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
Object.defineProperties(exports, {
|
|
2
|
+
__esModule: { value: true },
|
|
3
|
+
[Symbol.toStringTag]: { value: "Module" }
|
|
4
|
+
});
|
|
5
|
+
//#region src/effects/classes.ts
|
|
6
|
+
/**
|
|
7
|
+
* Opt-in effect classes. They do nothing unless an effect brand sheet scopes them.
|
|
8
|
+
* `none` removes one element from every effect selector.
|
|
9
|
+
* An opt-in edge takes `::before` with `!important`, so `before:` utilities on the same element are overridden.
|
|
10
|
+
*/
|
|
11
|
+
const effectClasses = {
|
|
12
|
+
glass: "hui-fx-glass",
|
|
13
|
+
glassRaised: "hui-fx-glass-raised",
|
|
14
|
+
featured: "hui-fx-featured",
|
|
15
|
+
halo: "hui-fx-halo",
|
|
16
|
+
glow: "hui-fx-glow",
|
|
17
|
+
cta: "hui-fx-cta",
|
|
18
|
+
accentFont: "hui-fx-accent-font",
|
|
19
|
+
serif: "hui-fx-serif",
|
|
20
|
+
backdrop: "hui-fx-backdrop",
|
|
21
|
+
none: "hui-fx-none"
|
|
22
|
+
};
|
|
23
|
+
//#endregion
|
|
24
|
+
exports.effectClasses = effectClasses;
|
|
25
|
+
|
|
26
|
+
//# sourceMappingURL=effects.cjs.map
|
package/effects.cjs.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"effects.cjs","names":[],"sources":["../src/effects/classes.ts"],"sourcesContent":["/**\n * Opt-in effect classes. They do nothing unless an effect brand sheet scopes them.\n * `none` removes one element from every effect selector.\n * An opt-in edge takes `::before` with `!important`, so `before:` utilities on the same element are overridden.\n */\nexport const effectClasses = {\n glass: 'hui-fx-glass',\n glassRaised: 'hui-fx-glass-raised',\n featured: 'hui-fx-featured',\n halo: 'hui-fx-halo',\n glow: 'hui-fx-glow',\n cta: 'hui-fx-cta',\n accentFont: 'hui-fx-accent-font',\n serif: 'hui-fx-serif',\n backdrop: 'hui-fx-backdrop',\n none: 'hui-fx-none',\n} as const;\n\nexport type EffectClass = (typeof effectClasses)[keyof typeof effectClasses];\n"],"mappings":";;;;;;;;;;AAKA,MAAa,gBAAgB;CACzB,OAAO;CACP,aAAa;CACb,UAAU;CACV,MAAM;CACN,MAAM;CACN,KAAK;CACL,YAAY;CACZ,OAAO;CACP,UAAU;CACV,MAAM;AACV"}
|
package/effects.d.cts
ADDED
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
//#region src/effects/classes.d.ts
|
|
2
|
+
/**
|
|
3
|
+
* Opt-in effect classes. They do nothing unless an effect brand sheet scopes them.
|
|
4
|
+
* `none` removes one element from every effect selector.
|
|
5
|
+
* An opt-in edge takes `::before` with `!important`, so `before:` utilities on the same element are overridden.
|
|
6
|
+
*/
|
|
7
|
+
declare const effectClasses: {
|
|
8
|
+
readonly glass: "hui-fx-glass";
|
|
9
|
+
readonly glassRaised: "hui-fx-glass-raised";
|
|
10
|
+
readonly featured: "hui-fx-featured";
|
|
11
|
+
readonly halo: "hui-fx-halo";
|
|
12
|
+
readonly glow: "hui-fx-glow";
|
|
13
|
+
readonly cta: "hui-fx-cta";
|
|
14
|
+
readonly accentFont: "hui-fx-accent-font";
|
|
15
|
+
readonly serif: "hui-fx-serif";
|
|
16
|
+
readonly backdrop: "hui-fx-backdrop";
|
|
17
|
+
readonly none: "hui-fx-none";
|
|
18
|
+
};
|
|
19
|
+
type EffectClass = (typeof effectClasses)[keyof typeof effectClasses];
|
|
20
|
+
//#endregion
|
|
21
|
+
export { type EffectClass, effectClasses };
|
|
22
|
+
//# sourceMappingURL=effects.d.cts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"effects.d.cts","names":[],"sources":["../src/effects/classes.ts"],"mappings":";;AAKA;;;;cAAa,aAAA;EAAA;;;;;;;;;;;KAaD,WAAA,WAAsB,aAAA,eAA4B,aAAa"}
|