haus-tokens 2.3.1 → 3.0.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/brand.css CHANGED
@@ -183,5 +183,24 @@
183
183
  --haus-brand-modal-width-md: var(--haus-overlay-width-md); /* 560px: the default */
184
184
  --haus-brand-modal-width-lg: var(--haus-overlay-width-lg); /* 720px: code, tables, previews */
185
185
 
186
+ /* ── Typeface ────────────────────────────────────────────────────────── */
187
+ /* haus#54. Until now `--haus-font-sans` and `--haus-font-mono` were
188
+ primitives that 32 components read directly, exempt from the primitive-read
189
+ rule because their own name was the role. That reasoning held for exactly
190
+ as long as there was one brand, and two consumers already disagree: vault
191
+ forks sans to Manrope Variable, drift keeps system-ui for all three of its
192
+ faces. By decision 0015's own argument typeface is one of the four things
193
+ that make two products look different (colour, shadow, radius, type), so
194
+ it belongs in the form tier beside the other three.
195
+
196
+ The value is a raw stack, not a `var()`, because there is no primitive left
197
+ to point at: the whole of haus#54 is that the primitive moved out of
198
+ primitives.css to here, which is a removal for a primitives-only consumer
199
+ and so a major under decision 0004. `semantics.css` exposes the unchanged
200
+ role name `--haus-font-sans` reading this entry, so no component read
201
+ moved. */
202
+ --haus-brand-font-sans: 'Manrope', system-ui, sans-serif;
203
+ --haus-brand-font-mono: 'Fira Code', ui-monospace, monospace;
204
+
186
205
  }
187
206
  }
@@ -0,0 +1,133 @@
1
+ /* ─── haus / brand · core ─────────────────────────────────────────────────────
2
+ core's palette, stated as brand inputs. C1 of the theming overhaul.
3
+
4
+ The third brand, and the one that proves the base/feedback split earns its
5
+ keep. vault and drift both supply the feedback tier in full, so until now a
6
+ brand omitting it existed only as a passing test. core is the product that
7
+ actually omits it: its statuses are the states of a decision (proposed,
8
+ accepted, rejected, superseded, deprecated), five things that are not the four
9
+ semantics of a notification, and it cannot fill info / success / warning /
10
+ error without inventing three of them. So this file supplies the twenty-eight
11
+ base entries and nothing else, and the feedback tier inherits from :root
12
+ exactly as brand.css says it will. That is not a gap in core; the five
13
+ decision states are core's own domain vocabulary, consumed as one seed ink
14
+ each and composed inline, and they stay in core because no sibling product
15
+ re-decides them. They are the reason a product still owns something after the
16
+ system has done its half.
17
+
18
+ core brings its own ramps, the way vault brings ruby. It cannot borrow haus's
19
+ damson for neutrals the way vault and drift do: damson is a cool, barely-
20
+ lavender grey (hue 290) and core is committed warm paper (hue ~82): "warm
21
+ off-white surfaces, warm-grey ink", the whole of its identity. And its accent
22
+ is cobalt (hue 260), which haus has no ramp for. So two ramps are declared
23
+ here, --haus-paper-* and --haus-cobalt-*, every step a value core already
24
+ renders in app/globals.css. It invents no colour it did not already ship.
25
+
26
+ Nothing is restyled. Where core has no value for a base role, the value is
27
+ derived from an adjacent one core does render and marked DERIVED, rather than
28
+ left to fall through to haus's cool grey. Six such steps, each named below.
29
+ core has fewer rungs than haus in two places. It separates surfaces by fill
30
+ rather than by borders, and it disables by opacity rather than by a fixed
31
+ token, and those are the derivations.
32
+
33
+ --bg, core's warm-grey "desk" that white cards sit on, is deliberately not a
34
+ role here. It is the app-shell background, set by core's own layout, not a
35
+ surface a haus component reads. surface-default is the card.
36
+
37
+ Applied by attribute, and it nests:
38
+
39
+ <div data-haus-theme="core"> … </div>
40
+
41
+ backdrop reads --haus-opacity-60 rather than any role: a brand supplies inputs
42
+ and may not read the role layer it feeds. Same rule as drift's.
43
+ ─────────────────────────────────────────────────────────────────────────── */
44
+
45
+ @layer haus.brand {
46
+
47
+ [data-haus-theme='core'] {
48
+
49
+ /* ── The warm-paper neutral ramp ───────────────────────────────────────
50
+ core's own greys, warm where haus's damson is cool. Every step is a value
51
+ from app/globals.css except the two marked DERIVED, which fill a rung core
52
+ renders by other means (opacity, a scrim) and has no standing token for. */
53
+ --haus-paper-0: oklch(99.8% 0.002 85); /* --surface: the white card */
54
+ --haus-paper-100: oklch(97.2% 0.006 83); /* --surface-2: subtle fill */
55
+ --haus-paper-200: oklch(94% 0.009 83); /* --surface-3: sunken */
56
+ --haus-paper-300: oklch(90% 0.008 80); /* --border */
57
+ --haus-paper-400: oklch(85% 0.010 80); /* --border-strong */
58
+ --haus-paper-500: oklch(74% 0.011 70); /* DERIVED: muted / disabled ink */
59
+ --haus-paper-600: oklch(60% 0.012 65); /* --text-faint: tertiary */
60
+ --haus-paper-700: oklch(46% 0.012 60); /* --text-dim: secondary */
61
+ --haus-paper-900: oklch(27% 0.012 60); /* --text: primary ink */
62
+ --haus-paper-950: oklch(15% 0.010 60); /* DERIVED: backdrop base, near-black */
63
+
64
+ /* ── The cobalt accent ramp ────────────────────────────────────────────
65
+ core's retro cobalt. 500 and 600 are --accent and --accent-hover; core
66
+ ships no pressed step and no opaque subtle fill (it tints with alpha), so
67
+ those two are DERIVED one step past what it renders. */
68
+ --haus-cobalt-100: oklch(95% 0.03 260); /* DERIVED: subtle bg, --accent-tint made opaque on white */
69
+ --haus-cobalt-500: oklch(50% 0.16 260); /* --accent */
70
+ --haus-cobalt-600: oklch(44% 0.16 260); /* --accent-hover */
71
+ --haus-cobalt-700: oklch(38% 0.15 260); /* DERIVED: pressed, one step past hover */
72
+
73
+
74
+ /* ── Surface ───────────────────────────────────────────────────────────
75
+ core separates surfaces by fill: the desk is grey, cards are white. So the
76
+ card is the default and everything else steps off it, the inverse of
77
+ haus's white-default ramp, but the role names land on the same intents. */
78
+ --haus-brand-surface-default: var(--haus-paper-0); /* the white card */
79
+ --haus-brand-surface-subtle: var(--haus-paper-100);
80
+ --haus-brand-surface-raised: var(--haus-paper-0); /* elevation via shadow, not colour */
81
+ --haus-brand-surface-overlay: var(--haus-paper-0); /* core does not tint modals/popovers */
82
+ --haus-brand-surface-sunken: var(--haus-paper-200);
83
+ --haus-brand-surface-inverse: var(--haus-paper-900); /* DERIVED: core has no inverse surface; its darkest ink stands in */
84
+ --haus-brand-surface-disabled: var(--haus-paper-100);
85
+ --haus-brand-surface-inverse-hover: oklch(from var(--haus-paper-0) l c h / 0.10);
86
+
87
+ /* ── Ink ───────────────────────────────────────────────────────────────── */
88
+ --haus-brand-ink-primary: var(--haus-paper-900); /* --text */
89
+ --haus-brand-ink-secondary: var(--haus-paper-700); /* --text-dim */
90
+ --haus-brand-ink-tertiary: var(--haus-paper-600); /* --text-faint */
91
+ --haus-brand-ink-disabled: var(--haus-paper-500); /* DERIVED: core disables by opacity */
92
+ --haus-brand-ink-inverse: var(--haus-paper-0);
93
+ --haus-brand-ink-link: var(--haus-cobalt-500); /* --accent: links are the accent */
94
+ --haus-brand-ink-on-primary: var(--haus-paper-0); /* --accent-fg: white on cobalt */
95
+
96
+ /* ── Border ──────────────────────────────────────────────────────────────
97
+ Three rungs from core's own neutrals. core leans on fill over borders, so
98
+ the subtle rung is its faintest surface tone pressed into service; default
99
+ and strong are --border and --border-strong verbatim. */
100
+ --haus-brand-border-subtle: var(--haus-paper-200); /* faint divider */
101
+ --haus-brand-border-default: var(--haus-paper-300); /* --border */
102
+ --haus-brand-border-strong: var(--haus-paper-400); /* --border-strong */
103
+ --haus-brand-border-disabled: var(--haus-paper-300);
104
+ --haus-brand-border-inverse: oklch(from var(--haus-paper-0) l c h / 0.30);
105
+ --haus-brand-border-inverse-hover: oklch(from var(--haus-paper-0) l c h / 0.50);
106
+
107
+ /* ── Primary ─────────────────────────────────────────────────────────────
108
+ Cobalt. default and hover are core's; pressed and the subtle pairing are
109
+ derived because core tints its accent with alpha rather than shipping the
110
+ opaque steps a ramp needs. */
111
+ --haus-brand-primary-default: var(--haus-cobalt-500); /* --accent */
112
+ --haus-brand-primary-hover: var(--haus-cobalt-600); /* --accent-hover */
113
+ --haus-brand-primary-pressed: var(--haus-cobalt-700); /* DERIVED */
114
+ --haus-brand-primary-subtle: var(--haus-cobalt-100); /* DERIVED: --accent-tint made opaque */
115
+ --haus-brand-primary-on-subtle: var(--haus-cobalt-700); /* dark cobalt text on the subtle tint */
116
+ --haus-brand-primary-disabled: var(--haus-paper-200); /* neutral resting grey */
117
+
118
+ /* ── Backdrop ──────────────────────────────────────────────────────────── */
119
+ --haus-brand-backdrop: oklch(from var(--haus-paper-950) l c h / var(--haus-opacity-60));
120
+
121
+ /* ── Typeface (form tier, haus#54) ─────────────────────────────────────────
122
+ core's faces, delivered by next/font: `--font-gabarito` and
123
+ `--font-geist-mono` are the hashed families the app registers, so the
124
+ stack references them and falls back to the literal name. This is the one
125
+ brand entry that reads an app-provided var rather than a haus primitive or
126
+ a bare literal, because a next/font face has no stable literal name, and
127
+ core is the only consumer of the core brand, so the coupling reaches no
128
+ one else. */
129
+ --haus-brand-font-sans: var(--font-gabarito), 'Gabarito', ui-sans-serif, system-ui, sans-serif;
130
+ --haus-brand-font-mono: var(--font-geist-mono), ui-monospace, monospace;
131
+
132
+ }
133
+ }
@@ -100,5 +100,29 @@
100
100
  --haus-brand-error-on-default: var(--haus-damson-0);
101
101
  --haus-brand-error-emphasis: var(--haus-cherry-900); /* ── Backdrop (Modal, Drawer, etc.) ──────────────────────────────────── */
102
102
 
103
+ /* ── Radius, the form tier ───────────────────────────────────────────── */
104
+ /* Drift sits one step tighter than haus at all three sizes: a 6px control
105
+ against 8px, an 8px surface against 12px, a 12px overlay against 16px.
106
+ That is the whole of its shape difference and it is deliberate.
107
+
108
+ marker is stated at haus's own value because the form tier is all or
109
+ nothing per group. Drift does not disagree about a checkbox's corner; the
110
+ rule exists so that a brand cannot supply half a group and leave the other
111
+ half inheriting, which renders as two shapes with nothing reporting it. */
112
+ --haus-brand-radius-control: var(--haus-radius-sm);
113
+ --haus-brand-radius-surface: var(--haus-radius-md);
114
+ --haus-brand-radius-overlay: var(--haus-radius-lg);
115
+ --haus-brand-radius-marker: var(--haus-radius-sm); /* haus's value, stated by the group rule */
116
+
117
+ /* ── Typeface, the form tier (haus#54) ───────────────────────────────────
118
+ Drift's editorial face is system-ui across the board: sans and mono here,
119
+ and a third, --font-display, that stays a drift primitive because haus has
120
+ no display role to bind it to. These were three of the six names drift
121
+ deliberately did not rename in the 1.0 migration, because pointing them at
122
+ haus's Manrope would have changed the product's face. Stated as brand
123
+ inputs now rather than local primitives resolved by cascade order. */
124
+ --haus-brand-font-sans: system-ui, -apple-system, sans-serif;
125
+ --haus-brand-font-mono: ui-monospace, 'SFMono-Regular', Menlo, monospace;
126
+
103
127
  }
104
128
  }
@@ -121,5 +121,13 @@
121
121
  /* ── Backdrop ──────────────────────────────────────────────────────── */
122
122
  --haus-brand-backdrop: oklch(from var(--haus-damson-950) l c h / var(--haus-opacity-60));
123
123
 
124
+ /* ── Typeface (form tier, haus#54) ──────────────────────────────────────
125
+ vault forks sans to Manrope Variable, the fork that lived in vault's own
126
+ tokens.css as a `--haus-font-sans` override until this became a brand
127
+ entry. mono is stated at haus's own value because the form tier is all or
128
+ nothing per group: vault does not re-decide its monospace face. */
129
+ --haus-brand-font-sans: 'Manrope Variable', 'Manrope', system-ui, sans-serif;
130
+ --haus-brand-font-mono: 'Fira Code', ui-monospace, monospace;
131
+
124
132
  }
125
133
  }
package/dist/index.cjs CHANGED
@@ -65,7 +65,9 @@ var brandRoles = [
65
65
  "--haus-brand-elevation-overlay",
66
66
  "--haus-brand-modal-width-sm",
67
67
  "--haus-brand-modal-width-md",
68
- "--haus-brand-modal-width-lg"
68
+ "--haus-brand-modal-width-lg",
69
+ "--haus-brand-font-sans",
70
+ "--haus-brand-font-mono"
69
71
  ];
70
72
  var brandRolesBase = [
71
73
  "--haus-brand-surface-default",
@@ -135,7 +137,9 @@ var brandRolesForm = [
135
137
  "--haus-brand-elevation-overlay",
136
138
  "--haus-brand-modal-width-sm",
137
139
  "--haus-brand-modal-width-md",
138
- "--haus-brand-modal-width-lg"
140
+ "--haus-brand-modal-width-lg",
141
+ "--haus-brand-font-sans",
142
+ "--haus-brand-font-mono"
139
143
  ];
140
144
 
141
145
  // src/index.ts
@@ -198,10 +202,7 @@ var tokens = {
198
202
  }
199
203
  },
200
204
  font: {
201
- family: {
202
- sans: "'Manrope', system-ui, sans-serif",
203
- mono: "'Fira Code', ui-monospace, monospace"
204
- },
205
+ // family removed with haus#54; it is a brand entry now, not a primitive.
205
206
  size: {
206
207
  "11": "0.6875rem",
207
208
  "12": "0.75rem",
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/brand.ts","../src/index.ts"],"names":[],"mappings":"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","file":"index.cjs","sourcesContent":["/* ─── haus / primitives ──────────────────────────────────────────────────────\n Raw values only. No component or semantic meaning.\n Nothing outside this file should define raw values.\n Components must never reference these directly. Use semantics.css.\n\n GENERATED FROM src/tokens.json. Do not edit.\n Regenerate with `npm run tokens`; `npm run tokens:check` fails CI if stale.\n ─────────────────────────────────────────────────────────────────────────── */\n\n/**\n * The entries every brand must supply, generated from brand.css.\n *\n * A brand file is CSS, so this cannot check it directly. What it does check is\n * the object form: build a brand in TypeScript, satisfy this type, and a missing\n * or misspelled role is a compile error rather than an unresolved var() that\n * drops a declaration with no warning at all.\n */\nexport interface BrandMapBase {\n '--haus-brand-surface-default': string\n '--haus-brand-surface-subtle': string\n '--haus-brand-surface-raised': string\n '--haus-brand-surface-overlay': string\n '--haus-brand-surface-sunken': string\n '--haus-brand-surface-inverse': string\n '--haus-brand-surface-disabled': string\n '--haus-brand-surface-inverse-hover': string\n '--haus-brand-ink-primary': string\n '--haus-brand-ink-secondary': string\n '--haus-brand-ink-tertiary': string\n '--haus-brand-ink-disabled': string\n '--haus-brand-ink-inverse': string\n '--haus-brand-ink-link': string\n '--haus-brand-ink-on-primary': string\n '--haus-brand-border-subtle': string\n '--haus-brand-border-default': string\n '--haus-brand-border-strong': string\n '--haus-brand-border-disabled': string\n '--haus-brand-border-inverse': string\n '--haus-brand-border-inverse-hover': string\n '--haus-brand-primary-default': string\n '--haus-brand-primary-hover': string\n '--haus-brand-primary-pressed': string\n '--haus-brand-primary-subtle': string\n '--haus-brand-primary-on-subtle': string\n '--haus-brand-primary-disabled': string\n '--haus-brand-backdrop': string\n}\n\n/**\n * The optional half: info, success, warning and error.\n *\n * A product whose statuses are not those four semantics omits this tier and\n * inherits haus's from :root, because custom properties inherit and a named\n * brand only overrides what it declares. Optional here, and all-or-nothing per\n * ramp in brand.test.ts, which types cannot express.\n */\nexport interface BrandMapFeedback {\n '--haus-brand-info-subtle': string\n '--haus-brand-info-border': string\n '--haus-brand-info-default': string\n '--haus-brand-info-on-subtle': string\n '--haus-brand-info-on-default': string\n '--haus-brand-info-emphasis': string\n '--haus-brand-success-subtle': string\n '--haus-brand-success-border': string\n '--haus-brand-success-default': string\n '--haus-brand-success-on-subtle': string\n '--haus-brand-success-on-default': string\n '--haus-brand-success-solid': string\n '--haus-brand-success-emphasis': string\n '--haus-brand-warning-subtle': string\n '--haus-brand-warning-border': string\n '--haus-brand-warning-default': string\n '--haus-brand-warning-on-subtle': string\n '--haus-brand-warning-on-default': string\n '--haus-brand-warning-solid': string\n '--haus-brand-warning-emphasis': string\n '--haus-brand-error-subtle': string\n '--haus-brand-error-border': string\n '--haus-brand-error-default': string\n '--haus-brand-error-on-subtle': string\n '--haus-brand-error-on-default': string\n '--haus-brand-error-emphasis': string\n}\n\n/**\n * The other optional half: what a product re-decides that is not a colour.\n *\n * Radius and elevation, taken from what drift and vault actually changed. Not\n * z-index, opacity, border-width or spacing: nobody re-decides those, and the\n * overrides that looked like it were the literal values of haus's own\n * primitives typed out. All-or-nothing per group, in brand.test.ts.\n */\nexport interface BrandMapForm {\n '--haus-brand-radius-control': string\n '--haus-brand-radius-surface': string\n '--haus-brand-radius-overlay': string\n '--haus-brand-radius-marker': string\n '--haus-brand-elevation-raised': string\n '--haus-brand-elevation-floating': string\n '--haus-brand-elevation-overlay': string\n '--haus-brand-modal-width-sm': string\n '--haus-brand-modal-width-md': string\n '--haus-brand-modal-width-lg': string\n}\n\n/** A complete brand: the base tier, and as much of the optional tiers as applies. */\nexport type BrandMap = BrandMapBase & Partial<BrandMapFeedback> & Partial<BrandMapForm>\n\n/** The role names themselves, for anyone generating a brand rather than writing one. */\nexport const brandRoles = [\n '--haus-brand-surface-default',\n '--haus-brand-surface-subtle',\n '--haus-brand-surface-raised',\n '--haus-brand-surface-overlay',\n '--haus-brand-surface-sunken',\n '--haus-brand-surface-inverse',\n '--haus-brand-surface-disabled',\n '--haus-brand-surface-inverse-hover',\n '--haus-brand-ink-primary',\n '--haus-brand-ink-secondary',\n '--haus-brand-ink-tertiary',\n '--haus-brand-ink-disabled',\n '--haus-brand-ink-inverse',\n '--haus-brand-ink-link',\n '--haus-brand-ink-on-primary',\n '--haus-brand-border-subtle',\n '--haus-brand-border-default',\n '--haus-brand-border-strong',\n '--haus-brand-border-disabled',\n '--haus-brand-border-inverse',\n '--haus-brand-border-inverse-hover',\n '--haus-brand-primary-default',\n '--haus-brand-primary-hover',\n '--haus-brand-primary-pressed',\n '--haus-brand-primary-subtle',\n '--haus-brand-primary-on-subtle',\n '--haus-brand-primary-disabled',\n '--haus-brand-backdrop',\n '--haus-brand-info-subtle',\n '--haus-brand-info-border',\n '--haus-brand-info-default',\n '--haus-brand-info-on-subtle',\n '--haus-brand-info-on-default',\n '--haus-brand-info-emphasis',\n '--haus-brand-success-subtle',\n '--haus-brand-success-border',\n '--haus-brand-success-default',\n '--haus-brand-success-on-subtle',\n '--haus-brand-success-on-default',\n '--haus-brand-success-solid',\n '--haus-brand-success-emphasis',\n '--haus-brand-warning-subtle',\n '--haus-brand-warning-border',\n '--haus-brand-warning-default',\n '--haus-brand-warning-on-subtle',\n '--haus-brand-warning-on-default',\n '--haus-brand-warning-solid',\n '--haus-brand-warning-emphasis',\n '--haus-brand-error-subtle',\n '--haus-brand-error-border',\n '--haus-brand-error-default',\n '--haus-brand-error-on-subtle',\n '--haus-brand-error-on-default',\n '--haus-brand-error-emphasis',\n '--haus-brand-radius-control',\n '--haus-brand-radius-surface',\n '--haus-brand-radius-overlay',\n '--haus-brand-radius-marker',\n '--haus-brand-elevation-raised',\n '--haus-brand-elevation-floating',\n '--haus-brand-elevation-overlay',\n '--haus-brand-modal-width-sm',\n '--haus-brand-modal-width-md',\n '--haus-brand-modal-width-lg',\n] as const\n\n/** The required half. A brand supplying fewer than these renders unstyled. */\nexport const brandRolesBase = [\n '--haus-brand-surface-default',\n '--haus-brand-surface-subtle',\n '--haus-brand-surface-raised',\n '--haus-brand-surface-overlay',\n '--haus-brand-surface-sunken',\n '--haus-brand-surface-inverse',\n '--haus-brand-surface-disabled',\n '--haus-brand-surface-inverse-hover',\n '--haus-brand-ink-primary',\n '--haus-brand-ink-secondary',\n '--haus-brand-ink-tertiary',\n '--haus-brand-ink-disabled',\n '--haus-brand-ink-inverse',\n '--haus-brand-ink-link',\n '--haus-brand-ink-on-primary',\n '--haus-brand-border-subtle',\n '--haus-brand-border-default',\n '--haus-brand-border-strong',\n '--haus-brand-border-disabled',\n '--haus-brand-border-inverse',\n '--haus-brand-border-inverse-hover',\n '--haus-brand-primary-default',\n '--haus-brand-primary-hover',\n '--haus-brand-primary-pressed',\n '--haus-brand-primary-subtle',\n '--haus-brand-primary-on-subtle',\n '--haus-brand-primary-disabled',\n '--haus-brand-backdrop',\n] as const\n\n/** The optional colour half, grouped by the ramp that has to be complete or absent. */\nexport const brandRolesFeedback = [\n '--haus-brand-info-subtle',\n '--haus-brand-info-border',\n '--haus-brand-info-default',\n '--haus-brand-info-on-subtle',\n '--haus-brand-info-on-default',\n '--haus-brand-info-emphasis',\n '--haus-brand-success-subtle',\n '--haus-brand-success-border',\n '--haus-brand-success-default',\n '--haus-brand-success-on-subtle',\n '--haus-brand-success-on-default',\n '--haus-brand-success-solid',\n '--haus-brand-success-emphasis',\n '--haus-brand-warning-subtle',\n '--haus-brand-warning-border',\n '--haus-brand-warning-default',\n '--haus-brand-warning-on-subtle',\n '--haus-brand-warning-on-default',\n '--haus-brand-warning-solid',\n '--haus-brand-warning-emphasis',\n '--haus-brand-error-subtle',\n '--haus-brand-error-border',\n '--haus-brand-error-default',\n '--haus-brand-error-on-subtle',\n '--haus-brand-error-on-default',\n '--haus-brand-error-emphasis',\n] as const\n\n/** The optional non-colour half: radius and elevation. */\nexport const brandRolesForm = [\n '--haus-brand-radius-control',\n '--haus-brand-radius-surface',\n '--haus-brand-radius-overlay',\n '--haus-brand-radius-marker',\n '--haus-brand-elevation-raised',\n '--haus-brand-elevation-floating',\n '--haus-brand-elevation-overlay',\n '--haus-brand-modal-width-sm',\n '--haus-brand-modal-width-md',\n '--haus-brand-modal-width-lg',\n] as const\n","/* ─── haus / tokens ──────────────────────────────────────────────────────────\n Typed constants for the primitive layer.\n\n The CSS custom properties are the runtime form; this exists for the places\n they cannot reach: @media conditions, build config, style-in-JS. Semantic\n tokens are deliberately absent: their whole job is to be swappable at\n runtime, which freezing them into a constant would defeat.\n\n GENERATED FROM src/tokens.json. Do not edit.\n Regenerate with `npm run tokens`; `npm run tokens:check` fails CI if stale.\n ─────────────────────────────────────────────────────────────────────────── */\n\nexport const tokens = {\n color: {\n aronia: {\n \"100\": \"oklch(97% 0.012 300)\",\n \"200\": \"oklch(92% 0.028 300)\",\n \"300\": \"oklch(84% 0.058 300)\",\n \"400\": \"oklch(72% 0.100 300)\",\n \"500\": \"oklch(52% 0.138 300)\",\n \"600\": \"oklch(43% 0.125 300)\",\n \"700\": \"oklch(35% 0.105 300)\",\n \"800\": \"oklch(26% 0.080 300)\",\n \"850\": \"oklch(22% 0.066 300)\",\n \"900\": \"oklch(18% 0.052 300)\",\n \"950\": \"oklch(12% 0.032 300)\",\n },\n damson: {\n \"0\": \"oklch(100% 0 0)\",\n \"50\": \"oklch(99% 0.003 290)\",\n \"100\": \"oklch(97% 0.006 290)\",\n \"200\": \"oklch(93% 0.008 290)\",\n \"300\": \"oklch(86% 0.010 290)\",\n \"400\": \"oklch(74% 0.010 290)\",\n \"500\": \"oklch(60% 0.008 290)\",\n \"600\": \"oklch(48% 0.007 290)\",\n \"700\": \"oklch(37% 0.006 290)\",\n \"800\": \"oklch(27% 0.005 290)\",\n \"900\": \"oklch(18% 0.003 290)\",\n \"950\": \"oklch(11% 0.002 290)\",\n },\n elderberry: {\n \"100\": \"oklch(97% 0.020 265)\",\n \"200\": \"oklch(93% 0.040 265)\",\n \"500\": \"oklch(55% 0.200 265)\",\n \"700\": \"oklch(42% 0.160 265)\",\n \"900\": \"oklch(30% 0.120 265)\",\n },\n greengage: {\n \"100\": \"oklch(97% 0.030 148)\",\n \"200\": \"oklch(93% 0.055 148)\",\n \"500\": \"oklch(58% 0.185 148)\",\n \"700\": \"oklch(45% 0.150 148)\",\n \"900\": \"oklch(33% 0.110 148)\",\n },\n mango: {\n \"100\": \"oklch(97% 0.025 65)\",\n \"200\": \"oklch(93% 0.045 65)\",\n \"500\": \"oklch(60% 0.175 65)\",\n \"700\": \"oklch(47% 0.142 65)\",\n \"900\": \"oklch(38% 0.110 65)\",\n },\n cherry: {\n \"100\": \"oklch(97% 0.030 27)\",\n \"200\": \"oklch(93% 0.055 27)\",\n \"500\": \"oklch(58% 0.200 27)\",\n \"700\": \"oklch(44% 0.168 27)\",\n \"900\": \"oklch(33% 0.110 27)\",\n },\n },\n font: {\n family: {\n sans: \"'Manrope', system-ui, sans-serif\",\n mono: \"'Fira Code', ui-monospace, monospace\",\n },\n size: {\n \"11\": \"0.6875rem\",\n \"12\": \"0.75rem\",\n \"13\": \"0.8125rem\",\n \"14\": \"0.875rem\",\n \"16\": \"1rem\",\n \"20\": \"1.25rem\",\n \"24\": \"1.5rem\",\n \"30\": \"1.875rem\",\n },\n weight: {\n regular: 400,\n medium: 500,\n semibold: 600,\n bold: 700,\n },\n lineHeight: {\n tight: 1.15,\n tighter: 1.2,\n snug: 1.25,\n compact: 1.3,\n normal: 1.4,\n relaxed: 1.5,\n loose: 1.6,\n },\n tracking: {\n tightest: \"-0.03em\",\n tighter: \"-0.02em\",\n tight: \"-0.01em\",\n normal: \"0em\",\n wide: \"0.02em\",\n wider: \"0.04em\",\n widest: \"0.08em\",\n },\n },\n spacing: {\n \"1\": \"0.25rem\",\n \"2\": \"0.5rem\",\n \"3\": \"0.75rem\",\n \"4\": \"1rem\",\n \"5\": \"1.25rem\",\n \"6\": \"1.5rem\",\n \"7\": \"1.75rem\",\n \"8\": \"2rem\",\n \"10\": \"2.5rem\",\n \"12\": \"3rem\",\n \"16\": \"4rem\",\n \"20\": \"5rem\",\n },\n radius: {\n none: \"0\",\n sm: \"0.25rem\",\n md: \"0.5rem\",\n lg: \"0.75rem\",\n xl: \"1rem\",\n \"2xl\": \"1.5rem\",\n full: \"9999px\",\n },\n duration: {\n instant: \"50ms\",\n fast: \"100ms\",\n normal: \"200ms\",\n moderate: \"300ms\",\n slow: \"500ms\",\n reduced: \"0ms\",\n },\n easing: {\n enter: \"cubic-bezier(0.00, 0.00, 0.20, 1.00)\",\n exit: \"cubic-bezier(0.40, 0.00, 1.00, 1.00)\",\n move: \"cubic-bezier(0.40, 0.00, 0.20, 1.00)\",\n spring: \"cubic-bezier(0.34, 1.56, 0.64, 1.00)\",\n linear: \"linear\",\n },\n motion: {\n \"fade-in\": \"200ms cubic-bezier(0.00, 0.00, 0.20, 1.00)\",\n \"fade-out\": \"100ms cubic-bezier(0.40, 0.00, 1.00, 1.00)\",\n \"slide-in\": \"300ms cubic-bezier(0.00, 0.00, 0.20, 1.00)\",\n \"slide-out\": \"100ms cubic-bezier(0.40, 0.00, 1.00, 1.00)\",\n micro: \"100ms cubic-bezier(0.40, 0.00, 0.20, 1.00)\",\n interactive: \"200ms cubic-bezier(0.40, 0.00, 0.20, 1.00)\",\n },\n shadow: {\n none: \"none\",\n sm: \"0 1px 2px oklch(18% 0.003 290 / 0.06)\",\n md: \"0 4px 6px -1px oklch(18% 0.003 290 / 0.10), 0 2px 4px -2px oklch(18% 0.003 290 / 0.10)\",\n lg: \"0 10px 15px -3px oklch(18% 0.003 290 / 0.10), 0 4px 6px -4px oklch(18% 0.003 290 / 0.07)\",\n xl: \"0 20px 25px -5px oklch(18% 0.003 290 / 0.10), 0 8px 10px -6px oklch(18% 0.003 290 / 0.10)\",\n },\n controlHeight: {\n sm: \"1.75rem\",\n md: \"2.25rem\",\n lg: \"2.75rem\",\n },\n zIndex: {\n \"0\": 0,\n \"10\": 10,\n \"100\": 100,\n \"200\": 200,\n \"300\": 300,\n \"400\": 400,\n \"500\": 500,\n \"600\": 600,\n },\n borderWidth: {\n \"1\": \"1px\",\n \"2\": \"2px\",\n },\n opacity: {\n \"40\": 0.4,\n \"60\": 0.6,\n },\n iconSize: {\n xs: \"0.75rem\",\n sm: \"1rem\",\n md: \"1.25rem\",\n lg: \"1.5rem\",\n xl: \"2rem\",\n },\n breakpoint: {\n sm: \"640px\",\n md: \"768px\",\n lg: \"1024px\",\n xl: \"1280px\",\n \"2xl\": \"1536px\",\n },\n} as const\n\nexport type Tokens = typeof tokens\n\n/* The brand map's type and role list, generated from brand.css. Re-exported here\n so a consumer has one entry point rather than two. */\nexport type { BrandMap, BrandMapBase, BrandMapFeedback, BrandMapForm } from './brand'\nexport { brandRoles, brandRolesBase, brandRolesFeedback, brandRolesForm } from './brand'\n"]}
1
+ {"version":3,"sources":["../src/brand.ts","../src/index.ts"],"names":[],"mappings":"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","file":"index.cjs","sourcesContent":["/* ─── haus / primitives ──────────────────────────────────────────────────────\n Raw values only. No component or semantic meaning.\n Nothing outside this file should define raw values.\n Components must never reference these directly. Use semantics.css.\n\n GENERATED FROM src/tokens.json. Do not edit.\n Regenerate with `npm run tokens`; `npm run tokens:check` fails CI if stale.\n ─────────────────────────────────────────────────────────────────────────── */\n\n/**\n * The entries every brand must supply, generated from brand.css.\n *\n * A brand file is CSS, so this cannot check it directly. What it does check is\n * the object form: build a brand in TypeScript, satisfy this type, and a missing\n * or misspelled role is a compile error rather than an unresolved var() that\n * drops a declaration with no warning at all.\n */\nexport interface BrandMapBase {\n '--haus-brand-surface-default': string\n '--haus-brand-surface-subtle': string\n '--haus-brand-surface-raised': string\n '--haus-brand-surface-overlay': string\n '--haus-brand-surface-sunken': string\n '--haus-brand-surface-inverse': string\n '--haus-brand-surface-disabled': string\n '--haus-brand-surface-inverse-hover': string\n '--haus-brand-ink-primary': string\n '--haus-brand-ink-secondary': string\n '--haus-brand-ink-tertiary': string\n '--haus-brand-ink-disabled': string\n '--haus-brand-ink-inverse': string\n '--haus-brand-ink-link': string\n '--haus-brand-ink-on-primary': string\n '--haus-brand-border-subtle': string\n '--haus-brand-border-default': string\n '--haus-brand-border-strong': string\n '--haus-brand-border-disabled': string\n '--haus-brand-border-inverse': string\n '--haus-brand-border-inverse-hover': string\n '--haus-brand-primary-default': string\n '--haus-brand-primary-hover': string\n '--haus-brand-primary-pressed': string\n '--haus-brand-primary-subtle': string\n '--haus-brand-primary-on-subtle': string\n '--haus-brand-primary-disabled': string\n '--haus-brand-backdrop': string\n}\n\n/**\n * The optional half: info, success, warning and error.\n *\n * A product whose statuses are not those four semantics omits this tier and\n * inherits haus's from :root, because custom properties inherit and a named\n * brand only overrides what it declares. Optional here, and all-or-nothing per\n * ramp in brand.test.ts, which types cannot express.\n */\nexport interface BrandMapFeedback {\n '--haus-brand-info-subtle': string\n '--haus-brand-info-border': string\n '--haus-brand-info-default': string\n '--haus-brand-info-on-subtle': string\n '--haus-brand-info-on-default': string\n '--haus-brand-info-emphasis': string\n '--haus-brand-success-subtle': string\n '--haus-brand-success-border': string\n '--haus-brand-success-default': string\n '--haus-brand-success-on-subtle': string\n '--haus-brand-success-on-default': string\n '--haus-brand-success-solid': string\n '--haus-brand-success-emphasis': string\n '--haus-brand-warning-subtle': string\n '--haus-brand-warning-border': string\n '--haus-brand-warning-default': string\n '--haus-brand-warning-on-subtle': string\n '--haus-brand-warning-on-default': string\n '--haus-brand-warning-solid': string\n '--haus-brand-warning-emphasis': string\n '--haus-brand-error-subtle': string\n '--haus-brand-error-border': string\n '--haus-brand-error-default': string\n '--haus-brand-error-on-subtle': string\n '--haus-brand-error-on-default': string\n '--haus-brand-error-emphasis': string\n}\n\n/**\n * The other optional half: what a product re-decides that is not a colour.\n *\n * Radius, elevation, modal width and typeface, taken from what drift and vault\n * actually changed. Not z-index, opacity, border-width or spacing: nobody\n * re-decides those, and the overrides that looked like it were the literal\n * values of haus's own primitives typed out. All-or-nothing per group, in\n * brand.test.ts.\n */\nexport interface BrandMapForm {\n '--haus-brand-radius-control': string\n '--haus-brand-radius-surface': string\n '--haus-brand-radius-overlay': string\n '--haus-brand-radius-marker': string\n '--haus-brand-elevation-raised': string\n '--haus-brand-elevation-floating': string\n '--haus-brand-elevation-overlay': string\n '--haus-brand-modal-width-sm': string\n '--haus-brand-modal-width-md': string\n '--haus-brand-modal-width-lg': string\n '--haus-brand-font-sans': string\n '--haus-brand-font-mono': string\n}\n\n/** A complete brand: the base tier, and as much of the optional tiers as applies. */\nexport type BrandMap = BrandMapBase & Partial<BrandMapFeedback> & Partial<BrandMapForm>\n\n/** The role names themselves, for anyone generating a brand rather than writing one. */\nexport const brandRoles = [\n '--haus-brand-surface-default',\n '--haus-brand-surface-subtle',\n '--haus-brand-surface-raised',\n '--haus-brand-surface-overlay',\n '--haus-brand-surface-sunken',\n '--haus-brand-surface-inverse',\n '--haus-brand-surface-disabled',\n '--haus-brand-surface-inverse-hover',\n '--haus-brand-ink-primary',\n '--haus-brand-ink-secondary',\n '--haus-brand-ink-tertiary',\n '--haus-brand-ink-disabled',\n '--haus-brand-ink-inverse',\n '--haus-brand-ink-link',\n '--haus-brand-ink-on-primary',\n '--haus-brand-border-subtle',\n '--haus-brand-border-default',\n '--haus-brand-border-strong',\n '--haus-brand-border-disabled',\n '--haus-brand-border-inverse',\n '--haus-brand-border-inverse-hover',\n '--haus-brand-primary-default',\n '--haus-brand-primary-hover',\n '--haus-brand-primary-pressed',\n '--haus-brand-primary-subtle',\n '--haus-brand-primary-on-subtle',\n '--haus-brand-primary-disabled',\n '--haus-brand-backdrop',\n '--haus-brand-info-subtle',\n '--haus-brand-info-border',\n '--haus-brand-info-default',\n '--haus-brand-info-on-subtle',\n '--haus-brand-info-on-default',\n '--haus-brand-info-emphasis',\n '--haus-brand-success-subtle',\n '--haus-brand-success-border',\n '--haus-brand-success-default',\n '--haus-brand-success-on-subtle',\n '--haus-brand-success-on-default',\n '--haus-brand-success-solid',\n '--haus-brand-success-emphasis',\n '--haus-brand-warning-subtle',\n '--haus-brand-warning-border',\n '--haus-brand-warning-default',\n '--haus-brand-warning-on-subtle',\n '--haus-brand-warning-on-default',\n '--haus-brand-warning-solid',\n '--haus-brand-warning-emphasis',\n '--haus-brand-error-subtle',\n '--haus-brand-error-border',\n '--haus-brand-error-default',\n '--haus-brand-error-on-subtle',\n '--haus-brand-error-on-default',\n '--haus-brand-error-emphasis',\n '--haus-brand-radius-control',\n '--haus-brand-radius-surface',\n '--haus-brand-radius-overlay',\n '--haus-brand-radius-marker',\n '--haus-brand-elevation-raised',\n '--haus-brand-elevation-floating',\n '--haus-brand-elevation-overlay',\n '--haus-brand-modal-width-sm',\n '--haus-brand-modal-width-md',\n '--haus-brand-modal-width-lg',\n '--haus-brand-font-sans',\n '--haus-brand-font-mono',\n] as const\n\n/** The required half. A brand supplying fewer than these renders unstyled. */\nexport const brandRolesBase = [\n '--haus-brand-surface-default',\n '--haus-brand-surface-subtle',\n '--haus-brand-surface-raised',\n '--haus-brand-surface-overlay',\n '--haus-brand-surface-sunken',\n '--haus-brand-surface-inverse',\n '--haus-brand-surface-disabled',\n '--haus-brand-surface-inverse-hover',\n '--haus-brand-ink-primary',\n '--haus-brand-ink-secondary',\n '--haus-brand-ink-tertiary',\n '--haus-brand-ink-disabled',\n '--haus-brand-ink-inverse',\n '--haus-brand-ink-link',\n '--haus-brand-ink-on-primary',\n '--haus-brand-border-subtle',\n '--haus-brand-border-default',\n '--haus-brand-border-strong',\n '--haus-brand-border-disabled',\n '--haus-brand-border-inverse',\n '--haus-brand-border-inverse-hover',\n '--haus-brand-primary-default',\n '--haus-brand-primary-hover',\n '--haus-brand-primary-pressed',\n '--haus-brand-primary-subtle',\n '--haus-brand-primary-on-subtle',\n '--haus-brand-primary-disabled',\n '--haus-brand-backdrop',\n] as const\n\n/** The optional colour half, grouped by the ramp that has to be complete or absent. */\nexport const brandRolesFeedback = [\n '--haus-brand-info-subtle',\n '--haus-brand-info-border',\n '--haus-brand-info-default',\n '--haus-brand-info-on-subtle',\n '--haus-brand-info-on-default',\n '--haus-brand-info-emphasis',\n '--haus-brand-success-subtle',\n '--haus-brand-success-border',\n '--haus-brand-success-default',\n '--haus-brand-success-on-subtle',\n '--haus-brand-success-on-default',\n '--haus-brand-success-solid',\n '--haus-brand-success-emphasis',\n '--haus-brand-warning-subtle',\n '--haus-brand-warning-border',\n '--haus-brand-warning-default',\n '--haus-brand-warning-on-subtle',\n '--haus-brand-warning-on-default',\n '--haus-brand-warning-solid',\n '--haus-brand-warning-emphasis',\n '--haus-brand-error-subtle',\n '--haus-brand-error-border',\n '--haus-brand-error-default',\n '--haus-brand-error-on-subtle',\n '--haus-brand-error-on-default',\n '--haus-brand-error-emphasis',\n] as const\n\n/** The optional non-colour half: radius, elevation, modal width and typeface. */\nexport const brandRolesForm = [\n '--haus-brand-radius-control',\n '--haus-brand-radius-surface',\n '--haus-brand-radius-overlay',\n '--haus-brand-radius-marker',\n '--haus-brand-elevation-raised',\n '--haus-brand-elevation-floating',\n '--haus-brand-elevation-overlay',\n '--haus-brand-modal-width-sm',\n '--haus-brand-modal-width-md',\n '--haus-brand-modal-width-lg',\n '--haus-brand-font-sans',\n '--haus-brand-font-mono',\n] as const\n","/* ─── haus / tokens ──────────────────────────────────────────────────────────\n Typed constants for the primitive layer.\n\n The CSS custom properties are the runtime form; this exists for the places\n they cannot reach: @media conditions, build config, style-in-JS. Semantic\n tokens are deliberately absent: their whole job is to be swappable at\n runtime, which freezing them into a constant would defeat.\n\n GENERATED FROM src/tokens.json. Do not edit.\n Regenerate with `npm run tokens`; `npm run tokens:check` fails CI if stale.\n ─────────────────────────────────────────────────────────────────────────── */\n\nexport const tokens = {\n color: {\n aronia: {\n \"100\": \"oklch(97% 0.012 300)\",\n \"200\": \"oklch(92% 0.028 300)\",\n \"300\": \"oklch(84% 0.058 300)\",\n \"400\": \"oklch(72% 0.100 300)\",\n \"500\": \"oklch(52% 0.138 300)\",\n \"600\": \"oklch(43% 0.125 300)\",\n \"700\": \"oklch(35% 0.105 300)\",\n \"800\": \"oklch(26% 0.080 300)\",\n \"850\": \"oklch(22% 0.066 300)\",\n \"900\": \"oklch(18% 0.052 300)\",\n \"950\": \"oklch(12% 0.032 300)\",\n },\n damson: {\n \"0\": \"oklch(100% 0 0)\",\n \"50\": \"oklch(99% 0.003 290)\",\n \"100\": \"oklch(97% 0.006 290)\",\n \"200\": \"oklch(93% 0.008 290)\",\n \"300\": \"oklch(86% 0.010 290)\",\n \"400\": \"oklch(74% 0.010 290)\",\n \"500\": \"oklch(60% 0.008 290)\",\n \"600\": \"oklch(48% 0.007 290)\",\n \"700\": \"oklch(37% 0.006 290)\",\n \"800\": \"oklch(27% 0.005 290)\",\n \"900\": \"oklch(18% 0.003 290)\",\n \"950\": \"oklch(11% 0.002 290)\",\n },\n elderberry: {\n \"100\": \"oklch(97% 0.020 265)\",\n \"200\": \"oklch(93% 0.040 265)\",\n \"500\": \"oklch(55% 0.200 265)\",\n \"700\": \"oklch(42% 0.160 265)\",\n \"900\": \"oklch(30% 0.120 265)\",\n },\n greengage: {\n \"100\": \"oklch(97% 0.030 148)\",\n \"200\": \"oklch(93% 0.055 148)\",\n \"500\": \"oklch(58% 0.185 148)\",\n \"700\": \"oklch(45% 0.150 148)\",\n \"900\": \"oklch(33% 0.110 148)\",\n },\n mango: {\n \"100\": \"oklch(97% 0.025 65)\",\n \"200\": \"oklch(93% 0.045 65)\",\n \"500\": \"oklch(60% 0.175 65)\",\n \"700\": \"oklch(47% 0.142 65)\",\n \"900\": \"oklch(38% 0.110 65)\",\n },\n cherry: {\n \"100\": \"oklch(97% 0.030 27)\",\n \"200\": \"oklch(93% 0.055 27)\",\n \"500\": \"oklch(58% 0.200 27)\",\n \"700\": \"oklch(44% 0.168 27)\",\n \"900\": \"oklch(33% 0.110 27)\",\n },\n },\n font: {\n // family removed with haus#54; it is a brand entry now, not a primitive.\n size: {\n \"11\": \"0.6875rem\",\n \"12\": \"0.75rem\",\n \"13\": \"0.8125rem\",\n \"14\": \"0.875rem\",\n \"16\": \"1rem\",\n \"20\": \"1.25rem\",\n \"24\": \"1.5rem\",\n \"30\": \"1.875rem\",\n },\n weight: {\n regular: 400,\n medium: 500,\n semibold: 600,\n bold: 700,\n },\n lineHeight: {\n tight: 1.15,\n tighter: 1.2,\n snug: 1.25,\n compact: 1.3,\n normal: 1.4,\n relaxed: 1.5,\n loose: 1.6,\n },\n tracking: {\n tightest: \"-0.03em\",\n tighter: \"-0.02em\",\n tight: \"-0.01em\",\n normal: \"0em\",\n wide: \"0.02em\",\n wider: \"0.04em\",\n widest: \"0.08em\",\n },\n },\n spacing: {\n \"1\": \"0.25rem\",\n \"2\": \"0.5rem\",\n \"3\": \"0.75rem\",\n \"4\": \"1rem\",\n \"5\": \"1.25rem\",\n \"6\": \"1.5rem\",\n \"7\": \"1.75rem\",\n \"8\": \"2rem\",\n \"10\": \"2.5rem\",\n \"12\": \"3rem\",\n \"16\": \"4rem\",\n \"20\": \"5rem\",\n },\n radius: {\n none: \"0\",\n sm: \"0.25rem\",\n md: \"0.5rem\",\n lg: \"0.75rem\",\n xl: \"1rem\",\n \"2xl\": \"1.5rem\",\n full: \"9999px\",\n },\n duration: {\n instant: \"50ms\",\n fast: \"100ms\",\n normal: \"200ms\",\n moderate: \"300ms\",\n slow: \"500ms\",\n reduced: \"0ms\",\n },\n easing: {\n enter: \"cubic-bezier(0.00, 0.00, 0.20, 1.00)\",\n exit: \"cubic-bezier(0.40, 0.00, 1.00, 1.00)\",\n move: \"cubic-bezier(0.40, 0.00, 0.20, 1.00)\",\n spring: \"cubic-bezier(0.34, 1.56, 0.64, 1.00)\",\n linear: \"linear\",\n },\n motion: {\n \"fade-in\": \"200ms cubic-bezier(0.00, 0.00, 0.20, 1.00)\",\n \"fade-out\": \"100ms cubic-bezier(0.40, 0.00, 1.00, 1.00)\",\n \"slide-in\": \"300ms cubic-bezier(0.00, 0.00, 0.20, 1.00)\",\n \"slide-out\": \"100ms cubic-bezier(0.40, 0.00, 1.00, 1.00)\",\n micro: \"100ms cubic-bezier(0.40, 0.00, 0.20, 1.00)\",\n interactive: \"200ms cubic-bezier(0.40, 0.00, 0.20, 1.00)\",\n },\n shadow: {\n none: \"none\",\n sm: \"0 1px 2px oklch(18% 0.003 290 / 0.06)\",\n md: \"0 4px 6px -1px oklch(18% 0.003 290 / 0.10), 0 2px 4px -2px oklch(18% 0.003 290 / 0.10)\",\n lg: \"0 10px 15px -3px oklch(18% 0.003 290 / 0.10), 0 4px 6px -4px oklch(18% 0.003 290 / 0.07)\",\n xl: \"0 20px 25px -5px oklch(18% 0.003 290 / 0.10), 0 8px 10px -6px oklch(18% 0.003 290 / 0.10)\",\n },\n controlHeight: {\n sm: \"1.75rem\",\n md: \"2.25rem\",\n lg: \"2.75rem\",\n },\n zIndex: {\n \"0\": 0,\n \"10\": 10,\n \"100\": 100,\n \"200\": 200,\n \"300\": 300,\n \"400\": 400,\n \"500\": 500,\n \"600\": 600,\n },\n borderWidth: {\n \"1\": \"1px\",\n \"2\": \"2px\",\n },\n opacity: {\n \"40\": 0.4,\n \"60\": 0.6,\n },\n iconSize: {\n xs: \"0.75rem\",\n sm: \"1rem\",\n md: \"1.25rem\",\n lg: \"1.5rem\",\n xl: \"2rem\",\n },\n breakpoint: {\n sm: \"640px\",\n md: \"768px\",\n lg: \"1024px\",\n xl: \"1280px\",\n \"2xl\": \"1536px\",\n },\n} as const\n\nexport type Tokens = typeof tokens\n\n/* The brand map's type and role list, generated from brand.css. Re-exported here\n so a consumer has one entry point rather than two. */\nexport type { BrandMap, BrandMapBase, BrandMapFeedback, BrandMapForm } from './brand'\nexport { brandRoles, brandRolesBase, brandRolesFeedback, brandRolesForm } from './brand'\n"]}
package/dist/index.d.cts CHANGED
@@ -75,10 +75,11 @@ interface BrandMapFeedback {
75
75
  /**
76
76
  * The other optional half: what a product re-decides that is not a colour.
77
77
  *
78
- * Radius and elevation, taken from what drift and vault actually changed. Not
79
- * z-index, opacity, border-width or spacing: nobody re-decides those, and the
80
- * overrides that looked like it were the literal values of haus's own
81
- * primitives typed out. All-or-nothing per group, in brand.test.ts.
78
+ * Radius, elevation, modal width and typeface, taken from what drift and vault
79
+ * actually changed. Not z-index, opacity, border-width or spacing: nobody
80
+ * re-decides those, and the overrides that looked like it were the literal
81
+ * values of haus's own primitives typed out. All-or-nothing per group, in
82
+ * brand.test.ts.
82
83
  */
83
84
  interface BrandMapForm {
84
85
  '--haus-brand-radius-control': string;
@@ -91,17 +92,19 @@ interface BrandMapForm {
91
92
  '--haus-brand-modal-width-sm': string;
92
93
  '--haus-brand-modal-width-md': string;
93
94
  '--haus-brand-modal-width-lg': string;
95
+ '--haus-brand-font-sans': string;
96
+ '--haus-brand-font-mono': string;
94
97
  }
95
98
  /** A complete brand: the base tier, and as much of the optional tiers as applies. */
96
99
  type BrandMap = BrandMapBase & Partial<BrandMapFeedback> & Partial<BrandMapForm>;
97
100
  /** The role names themselves, for anyone generating a brand rather than writing one. */
98
- declare const brandRoles: readonly ["--haus-brand-surface-default", "--haus-brand-surface-subtle", "--haus-brand-surface-raised", "--haus-brand-surface-overlay", "--haus-brand-surface-sunken", "--haus-brand-surface-inverse", "--haus-brand-surface-disabled", "--haus-brand-surface-inverse-hover", "--haus-brand-ink-primary", "--haus-brand-ink-secondary", "--haus-brand-ink-tertiary", "--haus-brand-ink-disabled", "--haus-brand-ink-inverse", "--haus-brand-ink-link", "--haus-brand-ink-on-primary", "--haus-brand-border-subtle", "--haus-brand-border-default", "--haus-brand-border-strong", "--haus-brand-border-disabled", "--haus-brand-border-inverse", "--haus-brand-border-inverse-hover", "--haus-brand-primary-default", "--haus-brand-primary-hover", "--haus-brand-primary-pressed", "--haus-brand-primary-subtle", "--haus-brand-primary-on-subtle", "--haus-brand-primary-disabled", "--haus-brand-backdrop", "--haus-brand-info-subtle", "--haus-brand-info-border", "--haus-brand-info-default", "--haus-brand-info-on-subtle", "--haus-brand-info-on-default", "--haus-brand-info-emphasis", "--haus-brand-success-subtle", "--haus-brand-success-border", "--haus-brand-success-default", "--haus-brand-success-on-subtle", "--haus-brand-success-on-default", "--haus-brand-success-solid", "--haus-brand-success-emphasis", "--haus-brand-warning-subtle", "--haus-brand-warning-border", "--haus-brand-warning-default", "--haus-brand-warning-on-subtle", "--haus-brand-warning-on-default", "--haus-brand-warning-solid", "--haus-brand-warning-emphasis", "--haus-brand-error-subtle", "--haus-brand-error-border", "--haus-brand-error-default", "--haus-brand-error-on-subtle", "--haus-brand-error-on-default", "--haus-brand-error-emphasis", "--haus-brand-radius-control", "--haus-brand-radius-surface", "--haus-brand-radius-overlay", "--haus-brand-radius-marker", "--haus-brand-elevation-raised", "--haus-brand-elevation-floating", "--haus-brand-elevation-overlay", "--haus-brand-modal-width-sm", "--haus-brand-modal-width-md", "--haus-brand-modal-width-lg"];
101
+ declare const brandRoles: readonly ["--haus-brand-surface-default", "--haus-brand-surface-subtle", "--haus-brand-surface-raised", "--haus-brand-surface-overlay", "--haus-brand-surface-sunken", "--haus-brand-surface-inverse", "--haus-brand-surface-disabled", "--haus-brand-surface-inverse-hover", "--haus-brand-ink-primary", "--haus-brand-ink-secondary", "--haus-brand-ink-tertiary", "--haus-brand-ink-disabled", "--haus-brand-ink-inverse", "--haus-brand-ink-link", "--haus-brand-ink-on-primary", "--haus-brand-border-subtle", "--haus-brand-border-default", "--haus-brand-border-strong", "--haus-brand-border-disabled", "--haus-brand-border-inverse", "--haus-brand-border-inverse-hover", "--haus-brand-primary-default", "--haus-brand-primary-hover", "--haus-brand-primary-pressed", "--haus-brand-primary-subtle", "--haus-brand-primary-on-subtle", "--haus-brand-primary-disabled", "--haus-brand-backdrop", "--haus-brand-info-subtle", "--haus-brand-info-border", "--haus-brand-info-default", "--haus-brand-info-on-subtle", "--haus-brand-info-on-default", "--haus-brand-info-emphasis", "--haus-brand-success-subtle", "--haus-brand-success-border", "--haus-brand-success-default", "--haus-brand-success-on-subtle", "--haus-brand-success-on-default", "--haus-brand-success-solid", "--haus-brand-success-emphasis", "--haus-brand-warning-subtle", "--haus-brand-warning-border", "--haus-brand-warning-default", "--haus-brand-warning-on-subtle", "--haus-brand-warning-on-default", "--haus-brand-warning-solid", "--haus-brand-warning-emphasis", "--haus-brand-error-subtle", "--haus-brand-error-border", "--haus-brand-error-default", "--haus-brand-error-on-subtle", "--haus-brand-error-on-default", "--haus-brand-error-emphasis", "--haus-brand-radius-control", "--haus-brand-radius-surface", "--haus-brand-radius-overlay", "--haus-brand-radius-marker", "--haus-brand-elevation-raised", "--haus-brand-elevation-floating", "--haus-brand-elevation-overlay", "--haus-brand-modal-width-sm", "--haus-brand-modal-width-md", "--haus-brand-modal-width-lg", "--haus-brand-font-sans", "--haus-brand-font-mono"];
99
102
  /** The required half. A brand supplying fewer than these renders unstyled. */
100
103
  declare const brandRolesBase: readonly ["--haus-brand-surface-default", "--haus-brand-surface-subtle", "--haus-brand-surface-raised", "--haus-brand-surface-overlay", "--haus-brand-surface-sunken", "--haus-brand-surface-inverse", "--haus-brand-surface-disabled", "--haus-brand-surface-inverse-hover", "--haus-brand-ink-primary", "--haus-brand-ink-secondary", "--haus-brand-ink-tertiary", "--haus-brand-ink-disabled", "--haus-brand-ink-inverse", "--haus-brand-ink-link", "--haus-brand-ink-on-primary", "--haus-brand-border-subtle", "--haus-brand-border-default", "--haus-brand-border-strong", "--haus-brand-border-disabled", "--haus-brand-border-inverse", "--haus-brand-border-inverse-hover", "--haus-brand-primary-default", "--haus-brand-primary-hover", "--haus-brand-primary-pressed", "--haus-brand-primary-subtle", "--haus-brand-primary-on-subtle", "--haus-brand-primary-disabled", "--haus-brand-backdrop"];
101
104
  /** The optional colour half, grouped by the ramp that has to be complete or absent. */
102
105
  declare const brandRolesFeedback: readonly ["--haus-brand-info-subtle", "--haus-brand-info-border", "--haus-brand-info-default", "--haus-brand-info-on-subtle", "--haus-brand-info-on-default", "--haus-brand-info-emphasis", "--haus-brand-success-subtle", "--haus-brand-success-border", "--haus-brand-success-default", "--haus-brand-success-on-subtle", "--haus-brand-success-on-default", "--haus-brand-success-solid", "--haus-brand-success-emphasis", "--haus-brand-warning-subtle", "--haus-brand-warning-border", "--haus-brand-warning-default", "--haus-brand-warning-on-subtle", "--haus-brand-warning-on-default", "--haus-brand-warning-solid", "--haus-brand-warning-emphasis", "--haus-brand-error-subtle", "--haus-brand-error-border", "--haus-brand-error-default", "--haus-brand-error-on-subtle", "--haus-brand-error-on-default", "--haus-brand-error-emphasis"];
103
- /** The optional non-colour half: radius and elevation. */
104
- declare const brandRolesForm: readonly ["--haus-brand-radius-control", "--haus-brand-radius-surface", "--haus-brand-radius-overlay", "--haus-brand-radius-marker", "--haus-brand-elevation-raised", "--haus-brand-elevation-floating", "--haus-brand-elevation-overlay", "--haus-brand-modal-width-sm", "--haus-brand-modal-width-md", "--haus-brand-modal-width-lg"];
106
+ /** The optional non-colour half: radius, elevation, modal width and typeface. */
107
+ declare const brandRolesForm: readonly ["--haus-brand-radius-control", "--haus-brand-radius-surface", "--haus-brand-radius-overlay", "--haus-brand-radius-marker", "--haus-brand-elevation-raised", "--haus-brand-elevation-floating", "--haus-brand-elevation-overlay", "--haus-brand-modal-width-sm", "--haus-brand-modal-width-md", "--haus-brand-modal-width-lg", "--haus-brand-font-sans", "--haus-brand-font-mono"];
105
108
 
106
109
  declare const tokens: {
107
110
  readonly color: {
@@ -162,10 +165,6 @@ declare const tokens: {
162
165
  };
163
166
  };
164
167
  readonly font: {
165
- readonly family: {
166
- readonly sans: "'Manrope', system-ui, sans-serif";
167
- readonly mono: "'Fira Code', ui-monospace, monospace";
168
- };
169
168
  readonly size: {
170
169
  readonly "11": "0.6875rem";
171
170
  readonly "12": "0.75rem";
package/dist/index.d.ts CHANGED
@@ -75,10 +75,11 @@ interface BrandMapFeedback {
75
75
  /**
76
76
  * The other optional half: what a product re-decides that is not a colour.
77
77
  *
78
- * Radius and elevation, taken from what drift and vault actually changed. Not
79
- * z-index, opacity, border-width or spacing: nobody re-decides those, and the
80
- * overrides that looked like it were the literal values of haus's own
81
- * primitives typed out. All-or-nothing per group, in brand.test.ts.
78
+ * Radius, elevation, modal width and typeface, taken from what drift and vault
79
+ * actually changed. Not z-index, opacity, border-width or spacing: nobody
80
+ * re-decides those, and the overrides that looked like it were the literal
81
+ * values of haus's own primitives typed out. All-or-nothing per group, in
82
+ * brand.test.ts.
82
83
  */
83
84
  interface BrandMapForm {
84
85
  '--haus-brand-radius-control': string;
@@ -91,17 +92,19 @@ interface BrandMapForm {
91
92
  '--haus-brand-modal-width-sm': string;
92
93
  '--haus-brand-modal-width-md': string;
93
94
  '--haus-brand-modal-width-lg': string;
95
+ '--haus-brand-font-sans': string;
96
+ '--haus-brand-font-mono': string;
94
97
  }
95
98
  /** A complete brand: the base tier, and as much of the optional tiers as applies. */
96
99
  type BrandMap = BrandMapBase & Partial<BrandMapFeedback> & Partial<BrandMapForm>;
97
100
  /** The role names themselves, for anyone generating a brand rather than writing one. */
98
- declare const brandRoles: readonly ["--haus-brand-surface-default", "--haus-brand-surface-subtle", "--haus-brand-surface-raised", "--haus-brand-surface-overlay", "--haus-brand-surface-sunken", "--haus-brand-surface-inverse", "--haus-brand-surface-disabled", "--haus-brand-surface-inverse-hover", "--haus-brand-ink-primary", "--haus-brand-ink-secondary", "--haus-brand-ink-tertiary", "--haus-brand-ink-disabled", "--haus-brand-ink-inverse", "--haus-brand-ink-link", "--haus-brand-ink-on-primary", "--haus-brand-border-subtle", "--haus-brand-border-default", "--haus-brand-border-strong", "--haus-brand-border-disabled", "--haus-brand-border-inverse", "--haus-brand-border-inverse-hover", "--haus-brand-primary-default", "--haus-brand-primary-hover", "--haus-brand-primary-pressed", "--haus-brand-primary-subtle", "--haus-brand-primary-on-subtle", "--haus-brand-primary-disabled", "--haus-brand-backdrop", "--haus-brand-info-subtle", "--haus-brand-info-border", "--haus-brand-info-default", "--haus-brand-info-on-subtle", "--haus-brand-info-on-default", "--haus-brand-info-emphasis", "--haus-brand-success-subtle", "--haus-brand-success-border", "--haus-brand-success-default", "--haus-brand-success-on-subtle", "--haus-brand-success-on-default", "--haus-brand-success-solid", "--haus-brand-success-emphasis", "--haus-brand-warning-subtle", "--haus-brand-warning-border", "--haus-brand-warning-default", "--haus-brand-warning-on-subtle", "--haus-brand-warning-on-default", "--haus-brand-warning-solid", "--haus-brand-warning-emphasis", "--haus-brand-error-subtle", "--haus-brand-error-border", "--haus-brand-error-default", "--haus-brand-error-on-subtle", "--haus-brand-error-on-default", "--haus-brand-error-emphasis", "--haus-brand-radius-control", "--haus-brand-radius-surface", "--haus-brand-radius-overlay", "--haus-brand-radius-marker", "--haus-brand-elevation-raised", "--haus-brand-elevation-floating", "--haus-brand-elevation-overlay", "--haus-brand-modal-width-sm", "--haus-brand-modal-width-md", "--haus-brand-modal-width-lg"];
101
+ declare const brandRoles: readonly ["--haus-brand-surface-default", "--haus-brand-surface-subtle", "--haus-brand-surface-raised", "--haus-brand-surface-overlay", "--haus-brand-surface-sunken", "--haus-brand-surface-inverse", "--haus-brand-surface-disabled", "--haus-brand-surface-inverse-hover", "--haus-brand-ink-primary", "--haus-brand-ink-secondary", "--haus-brand-ink-tertiary", "--haus-brand-ink-disabled", "--haus-brand-ink-inverse", "--haus-brand-ink-link", "--haus-brand-ink-on-primary", "--haus-brand-border-subtle", "--haus-brand-border-default", "--haus-brand-border-strong", "--haus-brand-border-disabled", "--haus-brand-border-inverse", "--haus-brand-border-inverse-hover", "--haus-brand-primary-default", "--haus-brand-primary-hover", "--haus-brand-primary-pressed", "--haus-brand-primary-subtle", "--haus-brand-primary-on-subtle", "--haus-brand-primary-disabled", "--haus-brand-backdrop", "--haus-brand-info-subtle", "--haus-brand-info-border", "--haus-brand-info-default", "--haus-brand-info-on-subtle", "--haus-brand-info-on-default", "--haus-brand-info-emphasis", "--haus-brand-success-subtle", "--haus-brand-success-border", "--haus-brand-success-default", "--haus-brand-success-on-subtle", "--haus-brand-success-on-default", "--haus-brand-success-solid", "--haus-brand-success-emphasis", "--haus-brand-warning-subtle", "--haus-brand-warning-border", "--haus-brand-warning-default", "--haus-brand-warning-on-subtle", "--haus-brand-warning-on-default", "--haus-brand-warning-solid", "--haus-brand-warning-emphasis", "--haus-brand-error-subtle", "--haus-brand-error-border", "--haus-brand-error-default", "--haus-brand-error-on-subtle", "--haus-brand-error-on-default", "--haus-brand-error-emphasis", "--haus-brand-radius-control", "--haus-brand-radius-surface", "--haus-brand-radius-overlay", "--haus-brand-radius-marker", "--haus-brand-elevation-raised", "--haus-brand-elevation-floating", "--haus-brand-elevation-overlay", "--haus-brand-modal-width-sm", "--haus-brand-modal-width-md", "--haus-brand-modal-width-lg", "--haus-brand-font-sans", "--haus-brand-font-mono"];
99
102
  /** The required half. A brand supplying fewer than these renders unstyled. */
100
103
  declare const brandRolesBase: readonly ["--haus-brand-surface-default", "--haus-brand-surface-subtle", "--haus-brand-surface-raised", "--haus-brand-surface-overlay", "--haus-brand-surface-sunken", "--haus-brand-surface-inverse", "--haus-brand-surface-disabled", "--haus-brand-surface-inverse-hover", "--haus-brand-ink-primary", "--haus-brand-ink-secondary", "--haus-brand-ink-tertiary", "--haus-brand-ink-disabled", "--haus-brand-ink-inverse", "--haus-brand-ink-link", "--haus-brand-ink-on-primary", "--haus-brand-border-subtle", "--haus-brand-border-default", "--haus-brand-border-strong", "--haus-brand-border-disabled", "--haus-brand-border-inverse", "--haus-brand-border-inverse-hover", "--haus-brand-primary-default", "--haus-brand-primary-hover", "--haus-brand-primary-pressed", "--haus-brand-primary-subtle", "--haus-brand-primary-on-subtle", "--haus-brand-primary-disabled", "--haus-brand-backdrop"];
101
104
  /** The optional colour half, grouped by the ramp that has to be complete or absent. */
102
105
  declare const brandRolesFeedback: readonly ["--haus-brand-info-subtle", "--haus-brand-info-border", "--haus-brand-info-default", "--haus-brand-info-on-subtle", "--haus-brand-info-on-default", "--haus-brand-info-emphasis", "--haus-brand-success-subtle", "--haus-brand-success-border", "--haus-brand-success-default", "--haus-brand-success-on-subtle", "--haus-brand-success-on-default", "--haus-brand-success-solid", "--haus-brand-success-emphasis", "--haus-brand-warning-subtle", "--haus-brand-warning-border", "--haus-brand-warning-default", "--haus-brand-warning-on-subtle", "--haus-brand-warning-on-default", "--haus-brand-warning-solid", "--haus-brand-warning-emphasis", "--haus-brand-error-subtle", "--haus-brand-error-border", "--haus-brand-error-default", "--haus-brand-error-on-subtle", "--haus-brand-error-on-default", "--haus-brand-error-emphasis"];
103
- /** The optional non-colour half: radius and elevation. */
104
- declare const brandRolesForm: readonly ["--haus-brand-radius-control", "--haus-brand-radius-surface", "--haus-brand-radius-overlay", "--haus-brand-radius-marker", "--haus-brand-elevation-raised", "--haus-brand-elevation-floating", "--haus-brand-elevation-overlay", "--haus-brand-modal-width-sm", "--haus-brand-modal-width-md", "--haus-brand-modal-width-lg"];
106
+ /** The optional non-colour half: radius, elevation, modal width and typeface. */
107
+ declare const brandRolesForm: readonly ["--haus-brand-radius-control", "--haus-brand-radius-surface", "--haus-brand-radius-overlay", "--haus-brand-radius-marker", "--haus-brand-elevation-raised", "--haus-brand-elevation-floating", "--haus-brand-elevation-overlay", "--haus-brand-modal-width-sm", "--haus-brand-modal-width-md", "--haus-brand-modal-width-lg", "--haus-brand-font-sans", "--haus-brand-font-mono"];
105
108
 
106
109
  declare const tokens: {
107
110
  readonly color: {
@@ -162,10 +165,6 @@ declare const tokens: {
162
165
  };
163
166
  };
164
167
  readonly font: {
165
- readonly family: {
166
- readonly sans: "'Manrope', system-ui, sans-serif";
167
- readonly mono: "'Fira Code', ui-monospace, monospace";
168
- };
169
168
  readonly size: {
170
169
  readonly "11": "0.6875rem";
171
170
  readonly "12": "0.75rem";
package/dist/index.js CHANGED
@@ -63,7 +63,9 @@ var brandRoles = [
63
63
  "--haus-brand-elevation-overlay",
64
64
  "--haus-brand-modal-width-sm",
65
65
  "--haus-brand-modal-width-md",
66
- "--haus-brand-modal-width-lg"
66
+ "--haus-brand-modal-width-lg",
67
+ "--haus-brand-font-sans",
68
+ "--haus-brand-font-mono"
67
69
  ];
68
70
  var brandRolesBase = [
69
71
  "--haus-brand-surface-default",
@@ -133,7 +135,9 @@ var brandRolesForm = [
133
135
  "--haus-brand-elevation-overlay",
134
136
  "--haus-brand-modal-width-sm",
135
137
  "--haus-brand-modal-width-md",
136
- "--haus-brand-modal-width-lg"
138
+ "--haus-brand-modal-width-lg",
139
+ "--haus-brand-font-sans",
140
+ "--haus-brand-font-mono"
137
141
  ];
138
142
 
139
143
  // src/index.ts
@@ -196,10 +200,7 @@ var tokens = {
196
200
  }
197
201
  },
198
202
  font: {
199
- family: {
200
- sans: "'Manrope', system-ui, sans-serif",
201
- mono: "'Fira Code', ui-monospace, monospace"
202
- },
203
+ // family removed with haus#54; it is a brand entry now, not a primitive.
203
204
  size: {
204
205
  "11": "0.6875rem",
205
206
  "12": "0.75rem",
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/brand.ts","../src/index.ts"],"names":[],"mappings":";AA8GO,IAAM,UAAA,GAAa;AAAA,EACxB,8BAAA;AAAA,EACA,6BAAA;AAAA,EACA,6BAAA;AAAA,EACA,8BAAA;AAAA,EACA,6BAAA;AAAA,EACA,8BAAA;AAAA,EACA,+BAAA;AAAA,EACA,oCAAA;AAAA,EACA,0BAAA;AAAA,EACA,4BAAA;AAAA,EACA,2BAAA;AAAA,EACA,2BAAA;AAAA,EACA,0BAAA;AAAA,EACA,uBAAA;AAAA,EACA,6BAAA;AAAA,EACA,4BAAA;AAAA,EACA,6BAAA;AAAA,EACA,4BAAA;AAAA,EACA,8BAAA;AAAA,EACA,6BAAA;AAAA,EACA,mCAAA;AAAA,EACA,8BAAA;AAAA,EACA,4BAAA;AAAA,EACA,8BAAA;AAAA,EACA,6BAAA;AAAA,EACA,gCAAA;AAAA,EACA,+BAAA;AAAA,EACA,uBAAA;AAAA,EACA,0BAAA;AAAA,EACA,0BAAA;AAAA,EACA,2BAAA;AAAA,EACA,6BAAA;AAAA,EACA,8BAAA;AAAA,EACA,4BAAA;AAAA,EACA,6BAAA;AAAA,EACA,6BAAA;AAAA,EACA,8BAAA;AAAA,EACA,gCAAA;AAAA,EACA,iCAAA;AAAA,EACA,4BAAA;AAAA,EACA,+BAAA;AAAA,EACA,6BAAA;AAAA,EACA,6BAAA;AAAA,EACA,8BAAA;AAAA,EACA,gCAAA;AAAA,EACA,iCAAA;AAAA,EACA,4BAAA;AAAA,EACA,+BAAA;AAAA,EACA,2BAAA;AAAA,EACA,2BAAA;AAAA,EACA,4BAAA;AAAA,EACA,8BAAA;AAAA,EACA,+BAAA;AAAA,EACA,6BAAA;AAAA,EACA,6BAAA;AAAA,EACA,6BAAA;AAAA,EACA,6BAAA;AAAA,EACA,4BAAA;AAAA,EACA,+BAAA;AAAA,EACA,iCAAA;AAAA,EACA,gCAAA;AAAA,EACA,6BAAA;AAAA,EACA,6BAAA;AAAA,EACA;AACF;AAGO,IAAM,cAAA,GAAiB;AAAA,EAC5B,8BAAA;AAAA,EACA,6BAAA;AAAA,EACA,6BAAA;AAAA,EACA,8BAAA;AAAA,EACA,6BAAA;AAAA,EACA,8BAAA;AAAA,EACA,+BAAA;AAAA,EACA,oCAAA;AAAA,EACA,0BAAA;AAAA,EACA,4BAAA;AAAA,EACA,2BAAA;AAAA,EACA,2BAAA;AAAA,EACA,0BAAA;AAAA,EACA,uBAAA;AAAA,EACA,6BAAA;AAAA,EACA,4BAAA;AAAA,EACA,6BAAA;AAAA,EACA,4BAAA;AAAA,EACA,8BAAA;AAAA,EACA,6BAAA;AAAA,EACA,mCAAA;AAAA,EACA,8BAAA;AAAA,EACA,4BAAA;AAAA,EACA,8BAAA;AAAA,EACA,6BAAA;AAAA,EACA,gCAAA;AAAA,EACA,+BAAA;AAAA,EACA;AACF;AAGO,IAAM,kBAAA,GAAqB;AAAA,EAChC,0BAAA;AAAA,EACA,0BAAA;AAAA,EACA,2BAAA;AAAA,EACA,6BAAA;AAAA,EACA,8BAAA;AAAA,EACA,4BAAA;AAAA,EACA,6BAAA;AAAA,EACA,6BAAA;AAAA,EACA,8BAAA;AAAA,EACA,gCAAA;AAAA,EACA,iCAAA;AAAA,EACA,4BAAA;AAAA,EACA,+BAAA;AAAA,EACA,6BAAA;AAAA,EACA,6BAAA;AAAA,EACA,8BAAA;AAAA,EACA,gCAAA;AAAA,EACA,iCAAA;AAAA,EACA,4BAAA;AAAA,EACA,+BAAA;AAAA,EACA,2BAAA;AAAA,EACA,2BAAA;AAAA,EACA,4BAAA;AAAA,EACA,8BAAA;AAAA,EACA,+BAAA;AAAA,EACA;AACF;AAGO,IAAM,cAAA,GAAiB;AAAA,EAC5B,6BAAA;AAAA,EACA,6BAAA;AAAA,EACA,6BAAA;AAAA,EACA,4BAAA;AAAA,EACA,+BAAA;AAAA,EACA,iCAAA;AAAA,EACA,gCAAA;AAAA,EACA,6BAAA;AAAA,EACA,6BAAA;AAAA,EACA;AACF;;;AC/OO,IAAM,MAAA,GAAS;AAAA,EACpB,KAAA,EAAO;AAAA,IACL,MAAA,EAAQ;AAAA,MACN,KAAA,EAAO,sBAAA;AAAA,MACP,KAAA,EAAO,sBAAA;AAAA,MACP,KAAA,EAAO,sBAAA;AAAA,MACP,KAAA,EAAO,sBAAA;AAAA,MACP,KAAA,EAAO,sBAAA;AAAA,MACP,KAAA,EAAO,sBAAA;AAAA,MACP,KAAA,EAAO,sBAAA;AAAA,MACP,KAAA,EAAO,sBAAA;AAAA,MACP,KAAA,EAAO,sBAAA;AAAA,MACP,KAAA,EAAO,sBAAA;AAAA,MACP,KAAA,EAAO;AAAA,KACT;AAAA,IACA,MAAA,EAAQ;AAAA,MACN,GAAA,EAAK,iBAAA;AAAA,MACL,IAAA,EAAM,sBAAA;AAAA,MACN,KAAA,EAAO,sBAAA;AAAA,MACP,KAAA,EAAO,sBAAA;AAAA,MACP,KAAA,EAAO,sBAAA;AAAA,MACP,KAAA,EAAO,sBAAA;AAAA,MACP,KAAA,EAAO,sBAAA;AAAA,MACP,KAAA,EAAO,sBAAA;AAAA,MACP,KAAA,EAAO,sBAAA;AAAA,MACP,KAAA,EAAO,sBAAA;AAAA,MACP,KAAA,EAAO,sBAAA;AAAA,MACP,KAAA,EAAO;AAAA,KACT;AAAA,IACA,UAAA,EAAY;AAAA,MACV,KAAA,EAAO,sBAAA;AAAA,MACP,KAAA,EAAO,sBAAA;AAAA,MACP,KAAA,EAAO,sBAAA;AAAA,MACP,KAAA,EAAO,sBAAA;AAAA,MACP,KAAA,EAAO;AAAA,KACT;AAAA,IACA,SAAA,EAAW;AAAA,MACT,KAAA,EAAO,sBAAA;AAAA,MACP,KAAA,EAAO,sBAAA;AAAA,MACP,KAAA,EAAO,sBAAA;AAAA,MACP,KAAA,EAAO,sBAAA;AAAA,MACP,KAAA,EAAO;AAAA,KACT;AAAA,IACA,KAAA,EAAO;AAAA,MACL,KAAA,EAAO,qBAAA;AAAA,MACP,KAAA,EAAO,qBAAA;AAAA,MACP,KAAA,EAAO,qBAAA;AAAA,MACP,KAAA,EAAO,qBAAA;AAAA,MACP,KAAA,EAAO;AAAA,KACT;AAAA,IACA,MAAA,EAAQ;AAAA,MACN,KAAA,EAAO,qBAAA;AAAA,MACP,KAAA,EAAO,qBAAA;AAAA,MACP,KAAA,EAAO,qBAAA;AAAA,MACP,KAAA,EAAO,qBAAA;AAAA,MACP,KAAA,EAAO;AAAA;AACT,GACF;AAAA,EACA,IAAA,EAAM;AAAA,IACJ,MAAA,EAAQ;AAAA,MACN,IAAA,EAAM,kCAAA;AAAA,MACN,IAAA,EAAM;AAAA,KACR;AAAA,IACA,IAAA,EAAM;AAAA,MACJ,IAAA,EAAM,WAAA;AAAA,MACN,IAAA,EAAM,SAAA;AAAA,MACN,IAAA,EAAM,WAAA;AAAA,MACN,IAAA,EAAM,UAAA;AAAA,MACN,IAAA,EAAM,MAAA;AAAA,MACN,IAAA,EAAM,SAAA;AAAA,MACN,IAAA,EAAM,QAAA;AAAA,MACN,IAAA,EAAM;AAAA,KACR;AAAA,IACA,MAAA,EAAQ;AAAA,MACN,OAAA,EAAS,GAAA;AAAA,MACT,MAAA,EAAQ,GAAA;AAAA,MACR,QAAA,EAAU,GAAA;AAAA,MACV,IAAA,EAAM;AAAA,KACR;AAAA,IACA,UAAA,EAAY;AAAA,MACV,KAAA,EAAO,IAAA;AAAA,MACP,OAAA,EAAS,GAAA;AAAA,MACT,IAAA,EAAM,IAAA;AAAA,MACN,OAAA,EAAS,GAAA;AAAA,MACT,MAAA,EAAQ,GAAA;AAAA,MACR,OAAA,EAAS,GAAA;AAAA,MACT,KAAA,EAAO;AAAA,KACT;AAAA,IACA,QAAA,EAAU;AAAA,MACR,QAAA,EAAU,SAAA;AAAA,MACV,OAAA,EAAS,SAAA;AAAA,MACT,KAAA,EAAO,SAAA;AAAA,MACP,MAAA,EAAQ,KAAA;AAAA,MACR,IAAA,EAAM,QAAA;AAAA,MACN,KAAA,EAAO,QAAA;AAAA,MACP,MAAA,EAAQ;AAAA;AACV,GACF;AAAA,EACA,OAAA,EAAS;AAAA,IACP,GAAA,EAAK,SAAA;AAAA,IACL,GAAA,EAAK,QAAA;AAAA,IACL,GAAA,EAAK,SAAA;AAAA,IACL,GAAA,EAAK,MAAA;AAAA,IACL,GAAA,EAAK,SAAA;AAAA,IACL,GAAA,EAAK,QAAA;AAAA,IACL,GAAA,EAAK,SAAA;AAAA,IACL,GAAA,EAAK,MAAA;AAAA,IACL,IAAA,EAAM,QAAA;AAAA,IACN,IAAA,EAAM,MAAA;AAAA,IACN,IAAA,EAAM,MAAA;AAAA,IACN,IAAA,EAAM;AAAA,GACR;AAAA,EACA,MAAA,EAAQ;AAAA,IACN,IAAA,EAAM,GAAA;AAAA,IACN,EAAA,EAAI,SAAA;AAAA,IACJ,EAAA,EAAI,QAAA;AAAA,IACJ,EAAA,EAAI,SAAA;AAAA,IACJ,EAAA,EAAI,MAAA;AAAA,IACJ,KAAA,EAAO,QAAA;AAAA,IACP,IAAA,EAAM;AAAA,GACR;AAAA,EACA,QAAA,EAAU;AAAA,IACR,OAAA,EAAS,MAAA;AAAA,IACT,IAAA,EAAM,OAAA;AAAA,IACN,MAAA,EAAQ,OAAA;AAAA,IACR,QAAA,EAAU,OAAA;AAAA,IACV,IAAA,EAAM,OAAA;AAAA,IACN,OAAA,EAAS;AAAA,GACX;AAAA,EACA,MAAA,EAAQ;AAAA,IACN,KAAA,EAAO,sCAAA;AAAA,IACP,IAAA,EAAM,sCAAA;AAAA,IACN,IAAA,EAAM,sCAAA;AAAA,IACN,MAAA,EAAQ,sCAAA;AAAA,IACR,MAAA,EAAQ;AAAA,GACV;AAAA,EACA,MAAA,EAAQ;AAAA,IACN,SAAA,EAAW,4CAAA;AAAA,IACX,UAAA,EAAY,4CAAA;AAAA,IACZ,UAAA,EAAY,4CAAA;AAAA,IACZ,WAAA,EAAa,4CAAA;AAAA,IACb,KAAA,EAAO,4CAAA;AAAA,IACP,WAAA,EAAa;AAAA,GACf;AAAA,EACA,MAAA,EAAQ;AAAA,IACN,IAAA,EAAM,MAAA;AAAA,IACN,EAAA,EAAI,uCAAA;AAAA,IACJ,EAAA,EAAI,wFAAA;AAAA,IACJ,EAAA,EAAI,0FAAA;AAAA,IACJ,EAAA,EAAI;AAAA,GACN;AAAA,EACA,aAAA,EAAe;AAAA,IACb,EAAA,EAAI,SAAA;AAAA,IACJ,EAAA,EAAI,SAAA;AAAA,IACJ,EAAA,EAAI;AAAA,GACN;AAAA,EACA,MAAA,EAAQ;AAAA,IACN,GAAA,EAAK,CAAA;AAAA,IACL,IAAA,EAAM,EAAA;AAAA,IACN,KAAA,EAAO,GAAA;AAAA,IACP,KAAA,EAAO,GAAA;AAAA,IACP,KAAA,EAAO,GAAA;AAAA,IACP,KAAA,EAAO,GAAA;AAAA,IACP,KAAA,EAAO,GAAA;AAAA,IACP,KAAA,EAAO;AAAA,GACT;AAAA,EACA,WAAA,EAAa;AAAA,IACX,GAAA,EAAK,KAAA;AAAA,IACL,GAAA,EAAK;AAAA,GACP;AAAA,EACA,OAAA,EAAS;AAAA,IACP,IAAA,EAAM,GAAA;AAAA,IACN,IAAA,EAAM;AAAA,GACR;AAAA,EACA,QAAA,EAAU;AAAA,IACR,EAAA,EAAI,SAAA;AAAA,IACJ,EAAA,EAAI,MAAA;AAAA,IACJ,EAAA,EAAI,SAAA;AAAA,IACJ,EAAA,EAAI,QAAA;AAAA,IACJ,EAAA,EAAI;AAAA,GACN;AAAA,EACA,UAAA,EAAY;AAAA,IACV,EAAA,EAAI,OAAA;AAAA,IACJ,EAAA,EAAI,OAAA;AAAA,IACJ,EAAA,EAAI,QAAA;AAAA,IACJ,EAAA,EAAI,QAAA;AAAA,IACJ,KAAA,EAAO;AAAA;AAEX","file":"index.js","sourcesContent":["/* ─── haus / primitives ──────────────────────────────────────────────────────\n Raw values only. No component or semantic meaning.\n Nothing outside this file should define raw values.\n Components must never reference these directly. Use semantics.css.\n\n GENERATED FROM src/tokens.json. Do not edit.\n Regenerate with `npm run tokens`; `npm run tokens:check` fails CI if stale.\n ─────────────────────────────────────────────────────────────────────────── */\n\n/**\n * The entries every brand must supply, generated from brand.css.\n *\n * A brand file is CSS, so this cannot check it directly. What it does check is\n * the object form: build a brand in TypeScript, satisfy this type, and a missing\n * or misspelled role is a compile error rather than an unresolved var() that\n * drops a declaration with no warning at all.\n */\nexport interface BrandMapBase {\n '--haus-brand-surface-default': string\n '--haus-brand-surface-subtle': string\n '--haus-brand-surface-raised': string\n '--haus-brand-surface-overlay': string\n '--haus-brand-surface-sunken': string\n '--haus-brand-surface-inverse': string\n '--haus-brand-surface-disabled': string\n '--haus-brand-surface-inverse-hover': string\n '--haus-brand-ink-primary': string\n '--haus-brand-ink-secondary': string\n '--haus-brand-ink-tertiary': string\n '--haus-brand-ink-disabled': string\n '--haus-brand-ink-inverse': string\n '--haus-brand-ink-link': string\n '--haus-brand-ink-on-primary': string\n '--haus-brand-border-subtle': string\n '--haus-brand-border-default': string\n '--haus-brand-border-strong': string\n '--haus-brand-border-disabled': string\n '--haus-brand-border-inverse': string\n '--haus-brand-border-inverse-hover': string\n '--haus-brand-primary-default': string\n '--haus-brand-primary-hover': string\n '--haus-brand-primary-pressed': string\n '--haus-brand-primary-subtle': string\n '--haus-brand-primary-on-subtle': string\n '--haus-brand-primary-disabled': string\n '--haus-brand-backdrop': string\n}\n\n/**\n * The optional half: info, success, warning and error.\n *\n * A product whose statuses are not those four semantics omits this tier and\n * inherits haus's from :root, because custom properties inherit and a named\n * brand only overrides what it declares. Optional here, and all-or-nothing per\n * ramp in brand.test.ts, which types cannot express.\n */\nexport interface BrandMapFeedback {\n '--haus-brand-info-subtle': string\n '--haus-brand-info-border': string\n '--haus-brand-info-default': string\n '--haus-brand-info-on-subtle': string\n '--haus-brand-info-on-default': string\n '--haus-brand-info-emphasis': string\n '--haus-brand-success-subtle': string\n '--haus-brand-success-border': string\n '--haus-brand-success-default': string\n '--haus-brand-success-on-subtle': string\n '--haus-brand-success-on-default': string\n '--haus-brand-success-solid': string\n '--haus-brand-success-emphasis': string\n '--haus-brand-warning-subtle': string\n '--haus-brand-warning-border': string\n '--haus-brand-warning-default': string\n '--haus-brand-warning-on-subtle': string\n '--haus-brand-warning-on-default': string\n '--haus-brand-warning-solid': string\n '--haus-brand-warning-emphasis': string\n '--haus-brand-error-subtle': string\n '--haus-brand-error-border': string\n '--haus-brand-error-default': string\n '--haus-brand-error-on-subtle': string\n '--haus-brand-error-on-default': string\n '--haus-brand-error-emphasis': string\n}\n\n/**\n * The other optional half: what a product re-decides that is not a colour.\n *\n * Radius and elevation, taken from what drift and vault actually changed. Not\n * z-index, opacity, border-width or spacing: nobody re-decides those, and the\n * overrides that looked like it were the literal values of haus's own\n * primitives typed out. All-or-nothing per group, in brand.test.ts.\n */\nexport interface BrandMapForm {\n '--haus-brand-radius-control': string\n '--haus-brand-radius-surface': string\n '--haus-brand-radius-overlay': string\n '--haus-brand-radius-marker': string\n '--haus-brand-elevation-raised': string\n '--haus-brand-elevation-floating': string\n '--haus-brand-elevation-overlay': string\n '--haus-brand-modal-width-sm': string\n '--haus-brand-modal-width-md': string\n '--haus-brand-modal-width-lg': string\n}\n\n/** A complete brand: the base tier, and as much of the optional tiers as applies. */\nexport type BrandMap = BrandMapBase & Partial<BrandMapFeedback> & Partial<BrandMapForm>\n\n/** The role names themselves, for anyone generating a brand rather than writing one. */\nexport const brandRoles = [\n '--haus-brand-surface-default',\n '--haus-brand-surface-subtle',\n '--haus-brand-surface-raised',\n '--haus-brand-surface-overlay',\n '--haus-brand-surface-sunken',\n '--haus-brand-surface-inverse',\n '--haus-brand-surface-disabled',\n '--haus-brand-surface-inverse-hover',\n '--haus-brand-ink-primary',\n '--haus-brand-ink-secondary',\n '--haus-brand-ink-tertiary',\n '--haus-brand-ink-disabled',\n '--haus-brand-ink-inverse',\n '--haus-brand-ink-link',\n '--haus-brand-ink-on-primary',\n '--haus-brand-border-subtle',\n '--haus-brand-border-default',\n '--haus-brand-border-strong',\n '--haus-brand-border-disabled',\n '--haus-brand-border-inverse',\n '--haus-brand-border-inverse-hover',\n '--haus-brand-primary-default',\n '--haus-brand-primary-hover',\n '--haus-brand-primary-pressed',\n '--haus-brand-primary-subtle',\n '--haus-brand-primary-on-subtle',\n '--haus-brand-primary-disabled',\n '--haus-brand-backdrop',\n '--haus-brand-info-subtle',\n '--haus-brand-info-border',\n '--haus-brand-info-default',\n '--haus-brand-info-on-subtle',\n '--haus-brand-info-on-default',\n '--haus-brand-info-emphasis',\n '--haus-brand-success-subtle',\n '--haus-brand-success-border',\n '--haus-brand-success-default',\n '--haus-brand-success-on-subtle',\n '--haus-brand-success-on-default',\n '--haus-brand-success-solid',\n '--haus-brand-success-emphasis',\n '--haus-brand-warning-subtle',\n '--haus-brand-warning-border',\n '--haus-brand-warning-default',\n '--haus-brand-warning-on-subtle',\n '--haus-brand-warning-on-default',\n '--haus-brand-warning-solid',\n '--haus-brand-warning-emphasis',\n '--haus-brand-error-subtle',\n '--haus-brand-error-border',\n '--haus-brand-error-default',\n '--haus-brand-error-on-subtle',\n '--haus-brand-error-on-default',\n '--haus-brand-error-emphasis',\n '--haus-brand-radius-control',\n '--haus-brand-radius-surface',\n '--haus-brand-radius-overlay',\n '--haus-brand-radius-marker',\n '--haus-brand-elevation-raised',\n '--haus-brand-elevation-floating',\n '--haus-brand-elevation-overlay',\n '--haus-brand-modal-width-sm',\n '--haus-brand-modal-width-md',\n '--haus-brand-modal-width-lg',\n] as const\n\n/** The required half. A brand supplying fewer than these renders unstyled. */\nexport const brandRolesBase = [\n '--haus-brand-surface-default',\n '--haus-brand-surface-subtle',\n '--haus-brand-surface-raised',\n '--haus-brand-surface-overlay',\n '--haus-brand-surface-sunken',\n '--haus-brand-surface-inverse',\n '--haus-brand-surface-disabled',\n '--haus-brand-surface-inverse-hover',\n '--haus-brand-ink-primary',\n '--haus-brand-ink-secondary',\n '--haus-brand-ink-tertiary',\n '--haus-brand-ink-disabled',\n '--haus-brand-ink-inverse',\n '--haus-brand-ink-link',\n '--haus-brand-ink-on-primary',\n '--haus-brand-border-subtle',\n '--haus-brand-border-default',\n '--haus-brand-border-strong',\n '--haus-brand-border-disabled',\n '--haus-brand-border-inverse',\n '--haus-brand-border-inverse-hover',\n '--haus-brand-primary-default',\n '--haus-brand-primary-hover',\n '--haus-brand-primary-pressed',\n '--haus-brand-primary-subtle',\n '--haus-brand-primary-on-subtle',\n '--haus-brand-primary-disabled',\n '--haus-brand-backdrop',\n] as const\n\n/** The optional colour half, grouped by the ramp that has to be complete or absent. */\nexport const brandRolesFeedback = [\n '--haus-brand-info-subtle',\n '--haus-brand-info-border',\n '--haus-brand-info-default',\n '--haus-brand-info-on-subtle',\n '--haus-brand-info-on-default',\n '--haus-brand-info-emphasis',\n '--haus-brand-success-subtle',\n '--haus-brand-success-border',\n '--haus-brand-success-default',\n '--haus-brand-success-on-subtle',\n '--haus-brand-success-on-default',\n '--haus-brand-success-solid',\n '--haus-brand-success-emphasis',\n '--haus-brand-warning-subtle',\n '--haus-brand-warning-border',\n '--haus-brand-warning-default',\n '--haus-brand-warning-on-subtle',\n '--haus-brand-warning-on-default',\n '--haus-brand-warning-solid',\n '--haus-brand-warning-emphasis',\n '--haus-brand-error-subtle',\n '--haus-brand-error-border',\n '--haus-brand-error-default',\n '--haus-brand-error-on-subtle',\n '--haus-brand-error-on-default',\n '--haus-brand-error-emphasis',\n] as const\n\n/** The optional non-colour half: radius and elevation. */\nexport const brandRolesForm = [\n '--haus-brand-radius-control',\n '--haus-brand-radius-surface',\n '--haus-brand-radius-overlay',\n '--haus-brand-radius-marker',\n '--haus-brand-elevation-raised',\n '--haus-brand-elevation-floating',\n '--haus-brand-elevation-overlay',\n '--haus-brand-modal-width-sm',\n '--haus-brand-modal-width-md',\n '--haus-brand-modal-width-lg',\n] as const\n","/* ─── haus / tokens ──────────────────────────────────────────────────────────\n Typed constants for the primitive layer.\n\n The CSS custom properties are the runtime form; this exists for the places\n they cannot reach: @media conditions, build config, style-in-JS. Semantic\n tokens are deliberately absent: their whole job is to be swappable at\n runtime, which freezing them into a constant would defeat.\n\n GENERATED FROM src/tokens.json. Do not edit.\n Regenerate with `npm run tokens`; `npm run tokens:check` fails CI if stale.\n ─────────────────────────────────────────────────────────────────────────── */\n\nexport const tokens = {\n color: {\n aronia: {\n \"100\": \"oklch(97% 0.012 300)\",\n \"200\": \"oklch(92% 0.028 300)\",\n \"300\": \"oklch(84% 0.058 300)\",\n \"400\": \"oklch(72% 0.100 300)\",\n \"500\": \"oklch(52% 0.138 300)\",\n \"600\": \"oklch(43% 0.125 300)\",\n \"700\": \"oklch(35% 0.105 300)\",\n \"800\": \"oklch(26% 0.080 300)\",\n \"850\": \"oklch(22% 0.066 300)\",\n \"900\": \"oklch(18% 0.052 300)\",\n \"950\": \"oklch(12% 0.032 300)\",\n },\n damson: {\n \"0\": \"oklch(100% 0 0)\",\n \"50\": \"oklch(99% 0.003 290)\",\n \"100\": \"oklch(97% 0.006 290)\",\n \"200\": \"oklch(93% 0.008 290)\",\n \"300\": \"oklch(86% 0.010 290)\",\n \"400\": \"oklch(74% 0.010 290)\",\n \"500\": \"oklch(60% 0.008 290)\",\n \"600\": \"oklch(48% 0.007 290)\",\n \"700\": \"oklch(37% 0.006 290)\",\n \"800\": \"oklch(27% 0.005 290)\",\n \"900\": \"oklch(18% 0.003 290)\",\n \"950\": \"oklch(11% 0.002 290)\",\n },\n elderberry: {\n \"100\": \"oklch(97% 0.020 265)\",\n \"200\": \"oklch(93% 0.040 265)\",\n \"500\": \"oklch(55% 0.200 265)\",\n \"700\": \"oklch(42% 0.160 265)\",\n \"900\": \"oklch(30% 0.120 265)\",\n },\n greengage: {\n \"100\": \"oklch(97% 0.030 148)\",\n \"200\": \"oklch(93% 0.055 148)\",\n \"500\": \"oklch(58% 0.185 148)\",\n \"700\": \"oklch(45% 0.150 148)\",\n \"900\": \"oklch(33% 0.110 148)\",\n },\n mango: {\n \"100\": \"oklch(97% 0.025 65)\",\n \"200\": \"oklch(93% 0.045 65)\",\n \"500\": \"oklch(60% 0.175 65)\",\n \"700\": \"oklch(47% 0.142 65)\",\n \"900\": \"oklch(38% 0.110 65)\",\n },\n cherry: {\n \"100\": \"oklch(97% 0.030 27)\",\n \"200\": \"oklch(93% 0.055 27)\",\n \"500\": \"oklch(58% 0.200 27)\",\n \"700\": \"oklch(44% 0.168 27)\",\n \"900\": \"oklch(33% 0.110 27)\",\n },\n },\n font: {\n family: {\n sans: \"'Manrope', system-ui, sans-serif\",\n mono: \"'Fira Code', ui-monospace, monospace\",\n },\n size: {\n \"11\": \"0.6875rem\",\n \"12\": \"0.75rem\",\n \"13\": \"0.8125rem\",\n \"14\": \"0.875rem\",\n \"16\": \"1rem\",\n \"20\": \"1.25rem\",\n \"24\": \"1.5rem\",\n \"30\": \"1.875rem\",\n },\n weight: {\n regular: 400,\n medium: 500,\n semibold: 600,\n bold: 700,\n },\n lineHeight: {\n tight: 1.15,\n tighter: 1.2,\n snug: 1.25,\n compact: 1.3,\n normal: 1.4,\n relaxed: 1.5,\n loose: 1.6,\n },\n tracking: {\n tightest: \"-0.03em\",\n tighter: \"-0.02em\",\n tight: \"-0.01em\",\n normal: \"0em\",\n wide: \"0.02em\",\n wider: \"0.04em\",\n widest: \"0.08em\",\n },\n },\n spacing: {\n \"1\": \"0.25rem\",\n \"2\": \"0.5rem\",\n \"3\": \"0.75rem\",\n \"4\": \"1rem\",\n \"5\": \"1.25rem\",\n \"6\": \"1.5rem\",\n \"7\": \"1.75rem\",\n \"8\": \"2rem\",\n \"10\": \"2.5rem\",\n \"12\": \"3rem\",\n \"16\": \"4rem\",\n \"20\": \"5rem\",\n },\n radius: {\n none: \"0\",\n sm: \"0.25rem\",\n md: \"0.5rem\",\n lg: \"0.75rem\",\n xl: \"1rem\",\n \"2xl\": \"1.5rem\",\n full: \"9999px\",\n },\n duration: {\n instant: \"50ms\",\n fast: \"100ms\",\n normal: \"200ms\",\n moderate: \"300ms\",\n slow: \"500ms\",\n reduced: \"0ms\",\n },\n easing: {\n enter: \"cubic-bezier(0.00, 0.00, 0.20, 1.00)\",\n exit: \"cubic-bezier(0.40, 0.00, 1.00, 1.00)\",\n move: \"cubic-bezier(0.40, 0.00, 0.20, 1.00)\",\n spring: \"cubic-bezier(0.34, 1.56, 0.64, 1.00)\",\n linear: \"linear\",\n },\n motion: {\n \"fade-in\": \"200ms cubic-bezier(0.00, 0.00, 0.20, 1.00)\",\n \"fade-out\": \"100ms cubic-bezier(0.40, 0.00, 1.00, 1.00)\",\n \"slide-in\": \"300ms cubic-bezier(0.00, 0.00, 0.20, 1.00)\",\n \"slide-out\": \"100ms cubic-bezier(0.40, 0.00, 1.00, 1.00)\",\n micro: \"100ms cubic-bezier(0.40, 0.00, 0.20, 1.00)\",\n interactive: \"200ms cubic-bezier(0.40, 0.00, 0.20, 1.00)\",\n },\n shadow: {\n none: \"none\",\n sm: \"0 1px 2px oklch(18% 0.003 290 / 0.06)\",\n md: \"0 4px 6px -1px oklch(18% 0.003 290 / 0.10), 0 2px 4px -2px oklch(18% 0.003 290 / 0.10)\",\n lg: \"0 10px 15px -3px oklch(18% 0.003 290 / 0.10), 0 4px 6px -4px oklch(18% 0.003 290 / 0.07)\",\n xl: \"0 20px 25px -5px oklch(18% 0.003 290 / 0.10), 0 8px 10px -6px oklch(18% 0.003 290 / 0.10)\",\n },\n controlHeight: {\n sm: \"1.75rem\",\n md: \"2.25rem\",\n lg: \"2.75rem\",\n },\n zIndex: {\n \"0\": 0,\n \"10\": 10,\n \"100\": 100,\n \"200\": 200,\n \"300\": 300,\n \"400\": 400,\n \"500\": 500,\n \"600\": 600,\n },\n borderWidth: {\n \"1\": \"1px\",\n \"2\": \"2px\",\n },\n opacity: {\n \"40\": 0.4,\n \"60\": 0.6,\n },\n iconSize: {\n xs: \"0.75rem\",\n sm: \"1rem\",\n md: \"1.25rem\",\n lg: \"1.5rem\",\n xl: \"2rem\",\n },\n breakpoint: {\n sm: \"640px\",\n md: \"768px\",\n lg: \"1024px\",\n xl: \"1280px\",\n \"2xl\": \"1536px\",\n },\n} as const\n\nexport type Tokens = typeof tokens\n\n/* The brand map's type and role list, generated from brand.css. Re-exported here\n so a consumer has one entry point rather than two. */\nexport type { BrandMap, BrandMapBase, BrandMapFeedback, BrandMapForm } from './brand'\nexport { brandRoles, brandRolesBase, brandRolesFeedback, brandRolesForm } from './brand'\n"]}
1
+ {"version":3,"sources":["../src/brand.ts","../src/index.ts"],"names":[],"mappings":";AAiHO,IAAM,UAAA,GAAa;AAAA,EACxB,8BAAA;AAAA,EACA,6BAAA;AAAA,EACA,6BAAA;AAAA,EACA,8BAAA;AAAA,EACA,6BAAA;AAAA,EACA,8BAAA;AAAA,EACA,+BAAA;AAAA,EACA,oCAAA;AAAA,EACA,0BAAA;AAAA,EACA,4BAAA;AAAA,EACA,2BAAA;AAAA,EACA,2BAAA;AAAA,EACA,0BAAA;AAAA,EACA,uBAAA;AAAA,EACA,6BAAA;AAAA,EACA,4BAAA;AAAA,EACA,6BAAA;AAAA,EACA,4BAAA;AAAA,EACA,8BAAA;AAAA,EACA,6BAAA;AAAA,EACA,mCAAA;AAAA,EACA,8BAAA;AAAA,EACA,4BAAA;AAAA,EACA,8BAAA;AAAA,EACA,6BAAA;AAAA,EACA,gCAAA;AAAA,EACA,+BAAA;AAAA,EACA,uBAAA;AAAA,EACA,0BAAA;AAAA,EACA,0BAAA;AAAA,EACA,2BAAA;AAAA,EACA,6BAAA;AAAA,EACA,8BAAA;AAAA,EACA,4BAAA;AAAA,EACA,6BAAA;AAAA,EACA,6BAAA;AAAA,EACA,8BAAA;AAAA,EACA,gCAAA;AAAA,EACA,iCAAA;AAAA,EACA,4BAAA;AAAA,EACA,+BAAA;AAAA,EACA,6BAAA;AAAA,EACA,6BAAA;AAAA,EACA,8BAAA;AAAA,EACA,gCAAA;AAAA,EACA,iCAAA;AAAA,EACA,4BAAA;AAAA,EACA,+BAAA;AAAA,EACA,2BAAA;AAAA,EACA,2BAAA;AAAA,EACA,4BAAA;AAAA,EACA,8BAAA;AAAA,EACA,+BAAA;AAAA,EACA,6BAAA;AAAA,EACA,6BAAA;AAAA,EACA,6BAAA;AAAA,EACA,6BAAA;AAAA,EACA,4BAAA;AAAA,EACA,+BAAA;AAAA,EACA,iCAAA;AAAA,EACA,gCAAA;AAAA,EACA,6BAAA;AAAA,EACA,6BAAA;AAAA,EACA,6BAAA;AAAA,EACA,wBAAA;AAAA,EACA;AACF;AAGO,IAAM,cAAA,GAAiB;AAAA,EAC5B,8BAAA;AAAA,EACA,6BAAA;AAAA,EACA,6BAAA;AAAA,EACA,8BAAA;AAAA,EACA,6BAAA;AAAA,EACA,8BAAA;AAAA,EACA,+BAAA;AAAA,EACA,oCAAA;AAAA,EACA,0BAAA;AAAA,EACA,4BAAA;AAAA,EACA,2BAAA;AAAA,EACA,2BAAA;AAAA,EACA,0BAAA;AAAA,EACA,uBAAA;AAAA,EACA,6BAAA;AAAA,EACA,4BAAA;AAAA,EACA,6BAAA;AAAA,EACA,4BAAA;AAAA,EACA,8BAAA;AAAA,EACA,6BAAA;AAAA,EACA,mCAAA;AAAA,EACA,8BAAA;AAAA,EACA,4BAAA;AAAA,EACA,8BAAA;AAAA,EACA,6BAAA;AAAA,EACA,gCAAA;AAAA,EACA,+BAAA;AAAA,EACA;AACF;AAGO,IAAM,kBAAA,GAAqB;AAAA,EAChC,0BAAA;AAAA,EACA,0BAAA;AAAA,EACA,2BAAA;AAAA,EACA,6BAAA;AAAA,EACA,8BAAA;AAAA,EACA,4BAAA;AAAA,EACA,6BAAA;AAAA,EACA,6BAAA;AAAA,EACA,8BAAA;AAAA,EACA,gCAAA;AAAA,EACA,iCAAA;AAAA,EACA,4BAAA;AAAA,EACA,+BAAA;AAAA,EACA,6BAAA;AAAA,EACA,6BAAA;AAAA,EACA,8BAAA;AAAA,EACA,gCAAA;AAAA,EACA,iCAAA;AAAA,EACA,4BAAA;AAAA,EACA,+BAAA;AAAA,EACA,2BAAA;AAAA,EACA,2BAAA;AAAA,EACA,4BAAA;AAAA,EACA,8BAAA;AAAA,EACA,+BAAA;AAAA,EACA;AACF;AAGO,IAAM,cAAA,GAAiB;AAAA,EAC5B,6BAAA;AAAA,EACA,6BAAA;AAAA,EACA,6BAAA;AAAA,EACA,4BAAA;AAAA,EACA,+BAAA;AAAA,EACA,iCAAA;AAAA,EACA,gCAAA;AAAA,EACA,6BAAA;AAAA,EACA,6BAAA;AAAA,EACA,6BAAA;AAAA,EACA,wBAAA;AAAA,EACA;AACF;;;ACtPO,IAAM,MAAA,GAAS;AAAA,EACpB,KAAA,EAAO;AAAA,IACL,MAAA,EAAQ;AAAA,MACN,KAAA,EAAO,sBAAA;AAAA,MACP,KAAA,EAAO,sBAAA;AAAA,MACP,KAAA,EAAO,sBAAA;AAAA,MACP,KAAA,EAAO,sBAAA;AAAA,MACP,KAAA,EAAO,sBAAA;AAAA,MACP,KAAA,EAAO,sBAAA;AAAA,MACP,KAAA,EAAO,sBAAA;AAAA,MACP,KAAA,EAAO,sBAAA;AAAA,MACP,KAAA,EAAO,sBAAA;AAAA,MACP,KAAA,EAAO,sBAAA;AAAA,MACP,KAAA,EAAO;AAAA,KACT;AAAA,IACA,MAAA,EAAQ;AAAA,MACN,GAAA,EAAK,iBAAA;AAAA,MACL,IAAA,EAAM,sBAAA;AAAA,MACN,KAAA,EAAO,sBAAA;AAAA,MACP,KAAA,EAAO,sBAAA;AAAA,MACP,KAAA,EAAO,sBAAA;AAAA,MACP,KAAA,EAAO,sBAAA;AAAA,MACP,KAAA,EAAO,sBAAA;AAAA,MACP,KAAA,EAAO,sBAAA;AAAA,MACP,KAAA,EAAO,sBAAA;AAAA,MACP,KAAA,EAAO,sBAAA;AAAA,MACP,KAAA,EAAO,sBAAA;AAAA,MACP,KAAA,EAAO;AAAA,KACT;AAAA,IACA,UAAA,EAAY;AAAA,MACV,KAAA,EAAO,sBAAA;AAAA,MACP,KAAA,EAAO,sBAAA;AAAA,MACP,KAAA,EAAO,sBAAA;AAAA,MACP,KAAA,EAAO,sBAAA;AAAA,MACP,KAAA,EAAO;AAAA,KACT;AAAA,IACA,SAAA,EAAW;AAAA,MACT,KAAA,EAAO,sBAAA;AAAA,MACP,KAAA,EAAO,sBAAA;AAAA,MACP,KAAA,EAAO,sBAAA;AAAA,MACP,KAAA,EAAO,sBAAA;AAAA,MACP,KAAA,EAAO;AAAA,KACT;AAAA,IACA,KAAA,EAAO;AAAA,MACL,KAAA,EAAO,qBAAA;AAAA,MACP,KAAA,EAAO,qBAAA;AAAA,MACP,KAAA,EAAO,qBAAA;AAAA,MACP,KAAA,EAAO,qBAAA;AAAA,MACP,KAAA,EAAO;AAAA,KACT;AAAA,IACA,MAAA,EAAQ;AAAA,MACN,KAAA,EAAO,qBAAA;AAAA,MACP,KAAA,EAAO,qBAAA;AAAA,MACP,KAAA,EAAO,qBAAA;AAAA,MACP,KAAA,EAAO,qBAAA;AAAA,MACP,KAAA,EAAO;AAAA;AACT,GACF;AAAA,EACA,IAAA,EAAM;AAAA;AAAA,IAEJ,IAAA,EAAM;AAAA,MACJ,IAAA,EAAM,WAAA;AAAA,MACN,IAAA,EAAM,SAAA;AAAA,MACN,IAAA,EAAM,WAAA;AAAA,MACN,IAAA,EAAM,UAAA;AAAA,MACN,IAAA,EAAM,MAAA;AAAA,MACN,IAAA,EAAM,SAAA;AAAA,MACN,IAAA,EAAM,QAAA;AAAA,MACN,IAAA,EAAM;AAAA,KACR;AAAA,IACA,MAAA,EAAQ;AAAA,MACN,OAAA,EAAS,GAAA;AAAA,MACT,MAAA,EAAQ,GAAA;AAAA,MACR,QAAA,EAAU,GAAA;AAAA,MACV,IAAA,EAAM;AAAA,KACR;AAAA,IACA,UAAA,EAAY;AAAA,MACV,KAAA,EAAO,IAAA;AAAA,MACP,OAAA,EAAS,GAAA;AAAA,MACT,IAAA,EAAM,IAAA;AAAA,MACN,OAAA,EAAS,GAAA;AAAA,MACT,MAAA,EAAQ,GAAA;AAAA,MACR,OAAA,EAAS,GAAA;AAAA,MACT,KAAA,EAAO;AAAA,KACT;AAAA,IACA,QAAA,EAAU;AAAA,MACR,QAAA,EAAU,SAAA;AAAA,MACV,OAAA,EAAS,SAAA;AAAA,MACT,KAAA,EAAO,SAAA;AAAA,MACP,MAAA,EAAQ,KAAA;AAAA,MACR,IAAA,EAAM,QAAA;AAAA,MACN,KAAA,EAAO,QAAA;AAAA,MACP,MAAA,EAAQ;AAAA;AACV,GACF;AAAA,EACA,OAAA,EAAS;AAAA,IACP,GAAA,EAAK,SAAA;AAAA,IACL,GAAA,EAAK,QAAA;AAAA,IACL,GAAA,EAAK,SAAA;AAAA,IACL,GAAA,EAAK,MAAA;AAAA,IACL,GAAA,EAAK,SAAA;AAAA,IACL,GAAA,EAAK,QAAA;AAAA,IACL,GAAA,EAAK,SAAA;AAAA,IACL,GAAA,EAAK,MAAA;AAAA,IACL,IAAA,EAAM,QAAA;AAAA,IACN,IAAA,EAAM,MAAA;AAAA,IACN,IAAA,EAAM,MAAA;AAAA,IACN,IAAA,EAAM;AAAA,GACR;AAAA,EACA,MAAA,EAAQ;AAAA,IACN,IAAA,EAAM,GAAA;AAAA,IACN,EAAA,EAAI,SAAA;AAAA,IACJ,EAAA,EAAI,QAAA;AAAA,IACJ,EAAA,EAAI,SAAA;AAAA,IACJ,EAAA,EAAI,MAAA;AAAA,IACJ,KAAA,EAAO,QAAA;AAAA,IACP,IAAA,EAAM;AAAA,GACR;AAAA,EACA,QAAA,EAAU;AAAA,IACR,OAAA,EAAS,MAAA;AAAA,IACT,IAAA,EAAM,OAAA;AAAA,IACN,MAAA,EAAQ,OAAA;AAAA,IACR,QAAA,EAAU,OAAA;AAAA,IACV,IAAA,EAAM,OAAA;AAAA,IACN,OAAA,EAAS;AAAA,GACX;AAAA,EACA,MAAA,EAAQ;AAAA,IACN,KAAA,EAAO,sCAAA;AAAA,IACP,IAAA,EAAM,sCAAA;AAAA,IACN,IAAA,EAAM,sCAAA;AAAA,IACN,MAAA,EAAQ,sCAAA;AAAA,IACR,MAAA,EAAQ;AAAA,GACV;AAAA,EACA,MAAA,EAAQ;AAAA,IACN,SAAA,EAAW,4CAAA;AAAA,IACX,UAAA,EAAY,4CAAA;AAAA,IACZ,UAAA,EAAY,4CAAA;AAAA,IACZ,WAAA,EAAa,4CAAA;AAAA,IACb,KAAA,EAAO,4CAAA;AAAA,IACP,WAAA,EAAa;AAAA,GACf;AAAA,EACA,MAAA,EAAQ;AAAA,IACN,IAAA,EAAM,MAAA;AAAA,IACN,EAAA,EAAI,uCAAA;AAAA,IACJ,EAAA,EAAI,wFAAA;AAAA,IACJ,EAAA,EAAI,0FAAA;AAAA,IACJ,EAAA,EAAI;AAAA,GACN;AAAA,EACA,aAAA,EAAe;AAAA,IACb,EAAA,EAAI,SAAA;AAAA,IACJ,EAAA,EAAI,SAAA;AAAA,IACJ,EAAA,EAAI;AAAA,GACN;AAAA,EACA,MAAA,EAAQ;AAAA,IACN,GAAA,EAAK,CAAA;AAAA,IACL,IAAA,EAAM,EAAA;AAAA,IACN,KAAA,EAAO,GAAA;AAAA,IACP,KAAA,EAAO,GAAA;AAAA,IACP,KAAA,EAAO,GAAA;AAAA,IACP,KAAA,EAAO,GAAA;AAAA,IACP,KAAA,EAAO,GAAA;AAAA,IACP,KAAA,EAAO;AAAA,GACT;AAAA,EACA,WAAA,EAAa;AAAA,IACX,GAAA,EAAK,KAAA;AAAA,IACL,GAAA,EAAK;AAAA,GACP;AAAA,EACA,OAAA,EAAS;AAAA,IACP,IAAA,EAAM,GAAA;AAAA,IACN,IAAA,EAAM;AAAA,GACR;AAAA,EACA,QAAA,EAAU;AAAA,IACR,EAAA,EAAI,SAAA;AAAA,IACJ,EAAA,EAAI,MAAA;AAAA,IACJ,EAAA,EAAI,SAAA;AAAA,IACJ,EAAA,EAAI,QAAA;AAAA,IACJ,EAAA,EAAI;AAAA,GACN;AAAA,EACA,UAAA,EAAY;AAAA,IACV,EAAA,EAAI,OAAA;AAAA,IACJ,EAAA,EAAI,OAAA;AAAA,IACJ,EAAA,EAAI,QAAA;AAAA,IACJ,EAAA,EAAI,QAAA;AAAA,IACJ,KAAA,EAAO;AAAA;AAEX","file":"index.js","sourcesContent":["/* ─── haus / primitives ──────────────────────────────────────────────────────\n Raw values only. No component or semantic meaning.\n Nothing outside this file should define raw values.\n Components must never reference these directly. Use semantics.css.\n\n GENERATED FROM src/tokens.json. Do not edit.\n Regenerate with `npm run tokens`; `npm run tokens:check` fails CI if stale.\n ─────────────────────────────────────────────────────────────────────────── */\n\n/**\n * The entries every brand must supply, generated from brand.css.\n *\n * A brand file is CSS, so this cannot check it directly. What it does check is\n * the object form: build a brand in TypeScript, satisfy this type, and a missing\n * or misspelled role is a compile error rather than an unresolved var() that\n * drops a declaration with no warning at all.\n */\nexport interface BrandMapBase {\n '--haus-brand-surface-default': string\n '--haus-brand-surface-subtle': string\n '--haus-brand-surface-raised': string\n '--haus-brand-surface-overlay': string\n '--haus-brand-surface-sunken': string\n '--haus-brand-surface-inverse': string\n '--haus-brand-surface-disabled': string\n '--haus-brand-surface-inverse-hover': string\n '--haus-brand-ink-primary': string\n '--haus-brand-ink-secondary': string\n '--haus-brand-ink-tertiary': string\n '--haus-brand-ink-disabled': string\n '--haus-brand-ink-inverse': string\n '--haus-brand-ink-link': string\n '--haus-brand-ink-on-primary': string\n '--haus-brand-border-subtle': string\n '--haus-brand-border-default': string\n '--haus-brand-border-strong': string\n '--haus-brand-border-disabled': string\n '--haus-brand-border-inverse': string\n '--haus-brand-border-inverse-hover': string\n '--haus-brand-primary-default': string\n '--haus-brand-primary-hover': string\n '--haus-brand-primary-pressed': string\n '--haus-brand-primary-subtle': string\n '--haus-brand-primary-on-subtle': string\n '--haus-brand-primary-disabled': string\n '--haus-brand-backdrop': string\n}\n\n/**\n * The optional half: info, success, warning and error.\n *\n * A product whose statuses are not those four semantics omits this tier and\n * inherits haus's from :root, because custom properties inherit and a named\n * brand only overrides what it declares. Optional here, and all-or-nothing per\n * ramp in brand.test.ts, which types cannot express.\n */\nexport interface BrandMapFeedback {\n '--haus-brand-info-subtle': string\n '--haus-brand-info-border': string\n '--haus-brand-info-default': string\n '--haus-brand-info-on-subtle': string\n '--haus-brand-info-on-default': string\n '--haus-brand-info-emphasis': string\n '--haus-brand-success-subtle': string\n '--haus-brand-success-border': string\n '--haus-brand-success-default': string\n '--haus-brand-success-on-subtle': string\n '--haus-brand-success-on-default': string\n '--haus-brand-success-solid': string\n '--haus-brand-success-emphasis': string\n '--haus-brand-warning-subtle': string\n '--haus-brand-warning-border': string\n '--haus-brand-warning-default': string\n '--haus-brand-warning-on-subtle': string\n '--haus-brand-warning-on-default': string\n '--haus-brand-warning-solid': string\n '--haus-brand-warning-emphasis': string\n '--haus-brand-error-subtle': string\n '--haus-brand-error-border': string\n '--haus-brand-error-default': string\n '--haus-brand-error-on-subtle': string\n '--haus-brand-error-on-default': string\n '--haus-brand-error-emphasis': string\n}\n\n/**\n * The other optional half: what a product re-decides that is not a colour.\n *\n * Radius, elevation, modal width and typeface, taken from what drift and vault\n * actually changed. Not z-index, opacity, border-width or spacing: nobody\n * re-decides those, and the overrides that looked like it were the literal\n * values of haus's own primitives typed out. All-or-nothing per group, in\n * brand.test.ts.\n */\nexport interface BrandMapForm {\n '--haus-brand-radius-control': string\n '--haus-brand-radius-surface': string\n '--haus-brand-radius-overlay': string\n '--haus-brand-radius-marker': string\n '--haus-brand-elevation-raised': string\n '--haus-brand-elevation-floating': string\n '--haus-brand-elevation-overlay': string\n '--haus-brand-modal-width-sm': string\n '--haus-brand-modal-width-md': string\n '--haus-brand-modal-width-lg': string\n '--haus-brand-font-sans': string\n '--haus-brand-font-mono': string\n}\n\n/** A complete brand: the base tier, and as much of the optional tiers as applies. */\nexport type BrandMap = BrandMapBase & Partial<BrandMapFeedback> & Partial<BrandMapForm>\n\n/** The role names themselves, for anyone generating a brand rather than writing one. */\nexport const brandRoles = [\n '--haus-brand-surface-default',\n '--haus-brand-surface-subtle',\n '--haus-brand-surface-raised',\n '--haus-brand-surface-overlay',\n '--haus-brand-surface-sunken',\n '--haus-brand-surface-inverse',\n '--haus-brand-surface-disabled',\n '--haus-brand-surface-inverse-hover',\n '--haus-brand-ink-primary',\n '--haus-brand-ink-secondary',\n '--haus-brand-ink-tertiary',\n '--haus-brand-ink-disabled',\n '--haus-brand-ink-inverse',\n '--haus-brand-ink-link',\n '--haus-brand-ink-on-primary',\n '--haus-brand-border-subtle',\n '--haus-brand-border-default',\n '--haus-brand-border-strong',\n '--haus-brand-border-disabled',\n '--haus-brand-border-inverse',\n '--haus-brand-border-inverse-hover',\n '--haus-brand-primary-default',\n '--haus-brand-primary-hover',\n '--haus-brand-primary-pressed',\n '--haus-brand-primary-subtle',\n '--haus-brand-primary-on-subtle',\n '--haus-brand-primary-disabled',\n '--haus-brand-backdrop',\n '--haus-brand-info-subtle',\n '--haus-brand-info-border',\n '--haus-brand-info-default',\n '--haus-brand-info-on-subtle',\n '--haus-brand-info-on-default',\n '--haus-brand-info-emphasis',\n '--haus-brand-success-subtle',\n '--haus-brand-success-border',\n '--haus-brand-success-default',\n '--haus-brand-success-on-subtle',\n '--haus-brand-success-on-default',\n '--haus-brand-success-solid',\n '--haus-brand-success-emphasis',\n '--haus-brand-warning-subtle',\n '--haus-brand-warning-border',\n '--haus-brand-warning-default',\n '--haus-brand-warning-on-subtle',\n '--haus-brand-warning-on-default',\n '--haus-brand-warning-solid',\n '--haus-brand-warning-emphasis',\n '--haus-brand-error-subtle',\n '--haus-brand-error-border',\n '--haus-brand-error-default',\n '--haus-brand-error-on-subtle',\n '--haus-brand-error-on-default',\n '--haus-brand-error-emphasis',\n '--haus-brand-radius-control',\n '--haus-brand-radius-surface',\n '--haus-brand-radius-overlay',\n '--haus-brand-radius-marker',\n '--haus-brand-elevation-raised',\n '--haus-brand-elevation-floating',\n '--haus-brand-elevation-overlay',\n '--haus-brand-modal-width-sm',\n '--haus-brand-modal-width-md',\n '--haus-brand-modal-width-lg',\n '--haus-brand-font-sans',\n '--haus-brand-font-mono',\n] as const\n\n/** The required half. A brand supplying fewer than these renders unstyled. */\nexport const brandRolesBase = [\n '--haus-brand-surface-default',\n '--haus-brand-surface-subtle',\n '--haus-brand-surface-raised',\n '--haus-brand-surface-overlay',\n '--haus-brand-surface-sunken',\n '--haus-brand-surface-inverse',\n '--haus-brand-surface-disabled',\n '--haus-brand-surface-inverse-hover',\n '--haus-brand-ink-primary',\n '--haus-brand-ink-secondary',\n '--haus-brand-ink-tertiary',\n '--haus-brand-ink-disabled',\n '--haus-brand-ink-inverse',\n '--haus-brand-ink-link',\n '--haus-brand-ink-on-primary',\n '--haus-brand-border-subtle',\n '--haus-brand-border-default',\n '--haus-brand-border-strong',\n '--haus-brand-border-disabled',\n '--haus-brand-border-inverse',\n '--haus-brand-border-inverse-hover',\n '--haus-brand-primary-default',\n '--haus-brand-primary-hover',\n '--haus-brand-primary-pressed',\n '--haus-brand-primary-subtle',\n '--haus-brand-primary-on-subtle',\n '--haus-brand-primary-disabled',\n '--haus-brand-backdrop',\n] as const\n\n/** The optional colour half, grouped by the ramp that has to be complete or absent. */\nexport const brandRolesFeedback = [\n '--haus-brand-info-subtle',\n '--haus-brand-info-border',\n '--haus-brand-info-default',\n '--haus-brand-info-on-subtle',\n '--haus-brand-info-on-default',\n '--haus-brand-info-emphasis',\n '--haus-brand-success-subtle',\n '--haus-brand-success-border',\n '--haus-brand-success-default',\n '--haus-brand-success-on-subtle',\n '--haus-brand-success-on-default',\n '--haus-brand-success-solid',\n '--haus-brand-success-emphasis',\n '--haus-brand-warning-subtle',\n '--haus-brand-warning-border',\n '--haus-brand-warning-default',\n '--haus-brand-warning-on-subtle',\n '--haus-brand-warning-on-default',\n '--haus-brand-warning-solid',\n '--haus-brand-warning-emphasis',\n '--haus-brand-error-subtle',\n '--haus-brand-error-border',\n '--haus-brand-error-default',\n '--haus-brand-error-on-subtle',\n '--haus-brand-error-on-default',\n '--haus-brand-error-emphasis',\n] as const\n\n/** The optional non-colour half: radius, elevation, modal width and typeface. */\nexport const brandRolesForm = [\n '--haus-brand-radius-control',\n '--haus-brand-radius-surface',\n '--haus-brand-radius-overlay',\n '--haus-brand-radius-marker',\n '--haus-brand-elevation-raised',\n '--haus-brand-elevation-floating',\n '--haus-brand-elevation-overlay',\n '--haus-brand-modal-width-sm',\n '--haus-brand-modal-width-md',\n '--haus-brand-modal-width-lg',\n '--haus-brand-font-sans',\n '--haus-brand-font-mono',\n] as const\n","/* ─── haus / tokens ──────────────────────────────────────────────────────────\n Typed constants for the primitive layer.\n\n The CSS custom properties are the runtime form; this exists for the places\n they cannot reach: @media conditions, build config, style-in-JS. Semantic\n tokens are deliberately absent: their whole job is to be swappable at\n runtime, which freezing them into a constant would defeat.\n\n GENERATED FROM src/tokens.json. Do not edit.\n Regenerate with `npm run tokens`; `npm run tokens:check` fails CI if stale.\n ─────────────────────────────────────────────────────────────────────────── */\n\nexport const tokens = {\n color: {\n aronia: {\n \"100\": \"oklch(97% 0.012 300)\",\n \"200\": \"oklch(92% 0.028 300)\",\n \"300\": \"oklch(84% 0.058 300)\",\n \"400\": \"oklch(72% 0.100 300)\",\n \"500\": \"oklch(52% 0.138 300)\",\n \"600\": \"oklch(43% 0.125 300)\",\n \"700\": \"oklch(35% 0.105 300)\",\n \"800\": \"oklch(26% 0.080 300)\",\n \"850\": \"oklch(22% 0.066 300)\",\n \"900\": \"oklch(18% 0.052 300)\",\n \"950\": \"oklch(12% 0.032 300)\",\n },\n damson: {\n \"0\": \"oklch(100% 0 0)\",\n \"50\": \"oklch(99% 0.003 290)\",\n \"100\": \"oklch(97% 0.006 290)\",\n \"200\": \"oklch(93% 0.008 290)\",\n \"300\": \"oklch(86% 0.010 290)\",\n \"400\": \"oklch(74% 0.010 290)\",\n \"500\": \"oklch(60% 0.008 290)\",\n \"600\": \"oklch(48% 0.007 290)\",\n \"700\": \"oklch(37% 0.006 290)\",\n \"800\": \"oklch(27% 0.005 290)\",\n \"900\": \"oklch(18% 0.003 290)\",\n \"950\": \"oklch(11% 0.002 290)\",\n },\n elderberry: {\n \"100\": \"oklch(97% 0.020 265)\",\n \"200\": \"oklch(93% 0.040 265)\",\n \"500\": \"oklch(55% 0.200 265)\",\n \"700\": \"oklch(42% 0.160 265)\",\n \"900\": \"oklch(30% 0.120 265)\",\n },\n greengage: {\n \"100\": \"oklch(97% 0.030 148)\",\n \"200\": \"oklch(93% 0.055 148)\",\n \"500\": \"oklch(58% 0.185 148)\",\n \"700\": \"oklch(45% 0.150 148)\",\n \"900\": \"oklch(33% 0.110 148)\",\n },\n mango: {\n \"100\": \"oklch(97% 0.025 65)\",\n \"200\": \"oklch(93% 0.045 65)\",\n \"500\": \"oklch(60% 0.175 65)\",\n \"700\": \"oklch(47% 0.142 65)\",\n \"900\": \"oklch(38% 0.110 65)\",\n },\n cherry: {\n \"100\": \"oklch(97% 0.030 27)\",\n \"200\": \"oklch(93% 0.055 27)\",\n \"500\": \"oklch(58% 0.200 27)\",\n \"700\": \"oklch(44% 0.168 27)\",\n \"900\": \"oklch(33% 0.110 27)\",\n },\n },\n font: {\n // family removed with haus#54; it is a brand entry now, not a primitive.\n size: {\n \"11\": \"0.6875rem\",\n \"12\": \"0.75rem\",\n \"13\": \"0.8125rem\",\n \"14\": \"0.875rem\",\n \"16\": \"1rem\",\n \"20\": \"1.25rem\",\n \"24\": \"1.5rem\",\n \"30\": \"1.875rem\",\n },\n weight: {\n regular: 400,\n medium: 500,\n semibold: 600,\n bold: 700,\n },\n lineHeight: {\n tight: 1.15,\n tighter: 1.2,\n snug: 1.25,\n compact: 1.3,\n normal: 1.4,\n relaxed: 1.5,\n loose: 1.6,\n },\n tracking: {\n tightest: \"-0.03em\",\n tighter: \"-0.02em\",\n tight: \"-0.01em\",\n normal: \"0em\",\n wide: \"0.02em\",\n wider: \"0.04em\",\n widest: \"0.08em\",\n },\n },\n spacing: {\n \"1\": \"0.25rem\",\n \"2\": \"0.5rem\",\n \"3\": \"0.75rem\",\n \"4\": \"1rem\",\n \"5\": \"1.25rem\",\n \"6\": \"1.5rem\",\n \"7\": \"1.75rem\",\n \"8\": \"2rem\",\n \"10\": \"2.5rem\",\n \"12\": \"3rem\",\n \"16\": \"4rem\",\n \"20\": \"5rem\",\n },\n radius: {\n none: \"0\",\n sm: \"0.25rem\",\n md: \"0.5rem\",\n lg: \"0.75rem\",\n xl: \"1rem\",\n \"2xl\": \"1.5rem\",\n full: \"9999px\",\n },\n duration: {\n instant: \"50ms\",\n fast: \"100ms\",\n normal: \"200ms\",\n moderate: \"300ms\",\n slow: \"500ms\",\n reduced: \"0ms\",\n },\n easing: {\n enter: \"cubic-bezier(0.00, 0.00, 0.20, 1.00)\",\n exit: \"cubic-bezier(0.40, 0.00, 1.00, 1.00)\",\n move: \"cubic-bezier(0.40, 0.00, 0.20, 1.00)\",\n spring: \"cubic-bezier(0.34, 1.56, 0.64, 1.00)\",\n linear: \"linear\",\n },\n motion: {\n \"fade-in\": \"200ms cubic-bezier(0.00, 0.00, 0.20, 1.00)\",\n \"fade-out\": \"100ms cubic-bezier(0.40, 0.00, 1.00, 1.00)\",\n \"slide-in\": \"300ms cubic-bezier(0.00, 0.00, 0.20, 1.00)\",\n \"slide-out\": \"100ms cubic-bezier(0.40, 0.00, 1.00, 1.00)\",\n micro: \"100ms cubic-bezier(0.40, 0.00, 0.20, 1.00)\",\n interactive: \"200ms cubic-bezier(0.40, 0.00, 0.20, 1.00)\",\n },\n shadow: {\n none: \"none\",\n sm: \"0 1px 2px oklch(18% 0.003 290 / 0.06)\",\n md: \"0 4px 6px -1px oklch(18% 0.003 290 / 0.10), 0 2px 4px -2px oklch(18% 0.003 290 / 0.10)\",\n lg: \"0 10px 15px -3px oklch(18% 0.003 290 / 0.10), 0 4px 6px -4px oklch(18% 0.003 290 / 0.07)\",\n xl: \"0 20px 25px -5px oklch(18% 0.003 290 / 0.10), 0 8px 10px -6px oklch(18% 0.003 290 / 0.10)\",\n },\n controlHeight: {\n sm: \"1.75rem\",\n md: \"2.25rem\",\n lg: \"2.75rem\",\n },\n zIndex: {\n \"0\": 0,\n \"10\": 10,\n \"100\": 100,\n \"200\": 200,\n \"300\": 300,\n \"400\": 400,\n \"500\": 500,\n \"600\": 600,\n },\n borderWidth: {\n \"1\": \"1px\",\n \"2\": \"2px\",\n },\n opacity: {\n \"40\": 0.4,\n \"60\": 0.6,\n },\n iconSize: {\n xs: \"0.75rem\",\n sm: \"1rem\",\n md: \"1.25rem\",\n lg: \"1.5rem\",\n xl: \"2rem\",\n },\n breakpoint: {\n sm: \"640px\",\n md: \"768px\",\n lg: \"1024px\",\n xl: \"1280px\",\n \"2xl\": \"1536px\",\n },\n} as const\n\nexport type Tokens = typeof tokens\n\n/* The brand map's type and role list, generated from brand.css. Re-exported here\n so a consumer has one entry point rather than two. */\nexport type { BrandMap, BrandMapBase, BrandMapFeedback, BrandMapForm } from './brand'\nexport { brandRoles, brandRolesBase, brandRolesFeedback, brandRolesForm } from './brand'\n"]}
@@ -68,9 +68,6 @@
68
68
  --haus-cherry-900: oklch(33% 0.110 27); /* Emphasis / high-contrast text */
69
69
 
70
70
  /* ── Type scale ──────────────────────────────────────────────────────────── */
71
- --haus-font-sans: 'Manrope', system-ui, sans-serif;
72
- --haus-font-mono: 'Fira Code', ui-monospace, monospace;
73
-
74
71
  --haus-text-11: 0.6875rem;
75
72
  --haus-text-12: 0.75rem;
76
73
  --haus-text-13: 0.8125rem;
@@ -13,16 +13,22 @@
13
13
  textarea's minimum height and the select chevron's offset. A size is a
14
14
  value, not a role, and calling a 16px checkbox --haus-space-inset-md
15
15
  would say something untrue.
16
- · 50 read a primitive that has no alias here because its own name already
17
- is the role: 32 --haus-font-sans, five control heights, and thirteen icon
18
- sizes (three --haus-icon-sm, four --haus-icon-lg, six --haus-icon-xs). A
19
- font family is not a role and there is no honest alias to invent for it.
20
- Button used to read --haus-tracking-normal here too; haus#37 moved it onto
16
+ · 22 read a primitive that has no alias here because its own name already
17
+ is the role: five control heights and seventeen icon sizes (five
18
+ --haus-icon-sm, six --haus-icon-lg, six --haus-icon-xs). Button used to
19
+ read --haus-tracking-normal here too; haus#37 moved it onto
21
20
  --haus-type-label-tracking, so tracking is a role everywhere and no
22
21
  component reads the tracking ladder. haus#43 added the icon reads: the
23
22
  chevron and the two close buttons bind their box and glyph to the icon
24
23
  scale rather than a raw size.
25
24
 
25
+ This was 54 until haus#54, which took the 32 --haus-font-sans reads out of
26
+ this count: typeface became brandable, so the font role now lives in this
27
+ file (reading --haus-brand-font-sans) rather than being a primitive the
28
+ components reach for, and a role read is not a primitive read. (The header
29
+ read 50 here until haus#54, stale since haus#55's Spinner took the icon
30
+ reads from thirteen to seventeen; corrected in the same pass.)
31
+
26
32
  This was 71 before haus#27. Stacking, border width and opacity used to be
27
33
  primitives wearing role names, so a product that wanted the stacking order
28
34
  had to read primitives.css, and drift and vault each decided one for
@@ -138,6 +144,15 @@
138
144
  /* so an invalid field stays legible as invalid while focused. */
139
145
  --haus-focus-ring-error: 0 0 0 2px var(--haus-color-surface-default), 0 0 0 4px var(--haus-color-error-default);
140
146
 
147
+ /* ── Typeface ─────────────────────────────────────────────────────────── */
148
+ /* haus#54. These two kept their names and moved here from primitives.css.
149
+ The name is unchanged so the 32 component reads did not move; what changed
150
+ is that they now resolve through a brand entry instead of a primitive, so
151
+ typeface is brandable and a primitives-only consumer no longer sees them
152
+ (the removal that makes haus#54 a major). */
153
+ --haus-font-sans: var(--haus-brand-font-sans);
154
+ --haus-font-mono: var(--haus-brand-font-mono);
155
+
141
156
  /* ── Typography roles ─────────────────────────────────────────────────── */
142
157
  /* Use all four props together. Components must not mix roles. */
143
158
 
package/dist/tokens.json CHANGED
@@ -184,24 +184,6 @@
184
184
  }
185
185
  },
186
186
  "font": {
187
- "family": {
188
- "sans": {
189
- "$type": "fontFamily",
190
- "$value": [
191
- "Manrope",
192
- "system-ui",
193
- "sans-serif"
194
- ]
195
- },
196
- "mono": {
197
- "$type": "fontFamily",
198
- "$value": [
199
- "Fira Code",
200
- "ui-monospace",
201
- "monospace"
202
- ]
203
- }
204
- },
205
187
  "size": {
206
188
  "11": {
207
189
  "$type": "dimension",
@@ -603,6 +585,12 @@
603
585
  },
604
586
  "modal-width-lg": {
605
587
  "$value": "var(--haus-overlay-width-lg)"
588
+ },
589
+ "font-sans": {
590
+ "$value": "'Manrope', system-ui, sans-serif"
591
+ },
592
+ "font-mono": {
593
+ "$value": "'Fira Code', ui-monospace, monospace"
606
594
  }
607
595
  }
608
596
  },
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "haus-tokens",
3
- "version": "2.3.1",
3
+ "version": "3.0.0",
4
4
  "description": "haus design tokens: OKLCH colour, type, spacing, radius, shadow and motion, as W3C-DTCG JSON, CSS custom properties, and typed JS constants.",
5
5
  "license": "MIT",
6
6
  "engines": {