@eocrm/design-tokens 0.0.0-stage → 0.6.17

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/README.md CHANGED
@@ -1,3 +1,100 @@
1
- # Temporary Holding Version
1
+ # @eocrm/design-tokens
2
2
 
3
- This version is a temporary placeholder for this package. An operational version to replace this has been submitted for review and is awaiting a staged release.
3
+ Shared EOCRM visual tokens for web and Kotlin Multiplatform/Compose. The npm
4
+ package contains generated Sass; the Maven artifact contains a generated,
5
+ strongly typed Compose API. Both are published with the same version as
6
+ `@eocrm/design-system`.
7
+
8
+ ## Web
9
+
10
+ Configure npm for GitHub Packages, then install the package:
11
+
12
+ ```text
13
+ @eocrm:registry=https://npm.pkg.github.com
14
+ //npm.pkg.github.com/:_authToken=${GITHUB_TOKEN}
15
+ ```
16
+
17
+ ```bash
18
+ npm install @eocrm/design-tokens
19
+ ```
20
+
21
+ Import the light/theme-neutral contract and dark-theme overrides:
22
+
23
+ ```scss
24
+ @use '@eocrm/design-tokens/styles/tokens.scss';
25
+ @use '@eocrm/design-tokens/styles/dark.scss';
26
+ ```
27
+
28
+ Existing `@eocrm/design-system/styles/*.scss` imports remain the recommended
29
+ entry points for React consumers. They forward to this package, so applications
30
+ do not need an import migration.
31
+
32
+ ## Kotlin Multiplatform and Compose
33
+
34
+ GitHub Packages requires authentication even for public Maven packages. For
35
+ local development, use a classic personal access token with `read:packages`;
36
+ keep `gpr.user` and `gpr.key` in your user-level `~/.gradle/gradle.properties`,
37
+ not in a repository. In GitHub Actions, grant the consuming repository access
38
+ to the package and use the workflow's `GITHUB_TOKEN`.
39
+
40
+ ```kotlin
41
+ repositories {
42
+ maven {
43
+ url = uri("https://maven.pkg.github.com/eocrm/design-system")
44
+ credentials {
45
+ username = providers.gradleProperty("gpr.user").orNull
46
+ password = providers.gradleProperty("gpr.key").orNull
47
+ }
48
+ }
49
+ }
50
+
51
+ dependencies {
52
+ commonMainImplementation("com.eocrm.design:design-tokens-compose:1.2.3")
53
+ }
54
+ ```
55
+
56
+ Use the generated theme objects directly:
57
+
58
+ ```kotlin
59
+ import com.eocrm.design.tokens.EocrmDarkTokens
60
+ import com.eocrm.design.tokens.EocrmLightTokens
61
+
62
+ val background = EocrmLightTokens.colors.background
63
+ val darkBackground = EocrmDarkTokens.colors.background
64
+ val spacing = EocrmLightTokens.dimensions.space4
65
+ ```
66
+
67
+ The artifact supports JVM, Android, iOS device (`iosArm64`), and Apple Silicon
68
+ iOS simulator (`iosSimulatorArm64`). It intentionally does not publish an
69
+ Intel `iosX64` target.
70
+
71
+ ## Accents
72
+
73
+ `tokens.json` may have a root `accents` key: `{ "<name>": { "<tokenId>": { "light": "#rrggbb", "dark": "#rrggbb" } } }`. Each accent emits a `[data-accent='<name>']` block overriding those tokens in every theme block (light, forced dark, OS dark), and a Compose `Eocrm<Name>LightTokens` / `Eocrm<Name>DarkTokens` pair. The validator rejects:
74
+
75
+ - `unknown-accent-token` — the token id does not exist
76
+ - `accent-non-color` — the token is not a colour
77
+ - `accent-unthemed` — the base token is not light/dark themed
78
+ - `accent-alias` — the value is an alias instead of a colour
79
+ - `invalid-token-value` — a malformed colour
80
+
81
+ ## Contributing
82
+
83
+ `src/tokens.json` is the only editable source of token values. Do not edit
84
+ anything under `generated/` or generated Kotlin files under
85
+ `compose/src/commonMain`; regeneration replaces them.
86
+
87
+ ```bash
88
+ npm run tokens:validate
89
+ npm run tokens:generate
90
+ npm run tokens:test
91
+ npm run tokens:check
92
+ packages/design-tokens/compose/gradlew --no-daemon -p packages/design-tokens/compose jvmTest assemble
93
+ ```
94
+
95
+ Commit generated outputs alongside source changes. `tokens:check` validates the
96
+ schema and semantic contract, runs tests, and fails on generated drift.
97
+
98
+ See [Shared design ownership](../../docs/shared-design-boundary.md) for the
99
+ boundary between neutral tokens, React components, Compose product UI, and
100
+ native platform behavior.
@@ -0,0 +1,8 @@
1
+ {
2
+ "schemaVersion": 1,
3
+ "contractVersion": "0.6.17",
4
+ "artifacts": {
5
+ "npm": "@eocrm/design-tokens",
6
+ "maven": "com.eocrm.design:design-tokens-compose"
7
+ }
8
+ }
@@ -0,0 +1,293 @@
1
+ // GENERATED FILE — DO NOT EDIT.
2
+ // Source: packages/design-tokens/src/tokens.json
3
+ // Schema version: 1
4
+
5
+ :root[data-theme='dark'] {
6
+ color-scheme: dark;
7
+ --color-accent: #68a7ff;
8
+ --color-accent-bg-subtle: #1c3a5e;
9
+ --color-accent-fg: #1d2125;
10
+ --color-accent-hover: #8cc4ff;
11
+ --color-accent-pressed: #cce0ff;
12
+ --color-accent-subtle-bg: #1c3a5e;
13
+ --color-bg: #1d2125;
14
+ --color-bg-danger-subtle: #42201d;
15
+ --color-bg-hover: var(--color-bg-muted);
16
+ --color-bg-muted: #282e33;
17
+ --color-bg-muted-hover: #343c42;
18
+ --color-bg-overlay: rgb(0 0 0 / 55%);
19
+ --color-bg-overlay-blur: rgb(0 0 0 / 45%);
20
+ --color-bg-subtle: #22272b;
21
+ --color-bg-sunken: #161a1d;
22
+ --color-border: #38414a;
23
+ --color-border-strong: #50585f;
24
+ --color-chart-series-1: #3987e5;
25
+ --color-chart-series-2: #d95926;
26
+ --color-chart-series-3: #199e70;
27
+ --color-chart-series-4: #c98500;
28
+ --color-chart-series-5: #d55181;
29
+ --color-chart-series-7: #9085e9;
30
+ --color-chart-series-8: #e66767;
31
+ --color-danger: #f87168;
32
+ --color-danger-bg-subtle: #42201d;
33
+ --color-danger-fg: #1d2125;
34
+ --color-danger-hover: #ff9c8f;
35
+ --color-fg: #dee4ea;
36
+ --color-fg-disabled: #5a6472;
37
+ --color-fg-muted: #9aa7b5;
38
+ --color-fg-subtle: #8591a0;
39
+ --color-info: #579dff;
40
+ --color-info-bg-subtle: #16324f;
41
+ --color-palette-amber-bg: #483919;
42
+ --color-palette-amber-fg: #f9d994;
43
+ --color-palette-blue-bg: #192c48;
44
+ --color-palette-blue-fg: #94bdf9;
45
+ --color-palette-brown-bg: #483419;
46
+ --color-palette-brown-fg: #e6cba8;
47
+ --color-palette-charcoal-bg: #2c3035;
48
+ --color-palette-charcoal-fg: #c1c7cc;
49
+ --color-palette-coral-bg: #482619;
50
+ --color-palette-coral-fg: #f2b39b;
51
+ --color-palette-cyan-bg: #194048;
52
+ --color-palette-cyan-fg: #94e8f9;
53
+ --color-palette-emerald-bg: #194839;
54
+ --color-palette-emerald-fg: #94f9d9;
55
+ --color-palette-fuchsia-bg: #481943;
56
+ --color-palette-fuchsia-fg: #eaa4e3;
57
+ --color-palette-gold-bg: #483c19;
58
+ --color-palette-gold-fg: #f9e194;
59
+ --color-palette-green-bg: #194830;
60
+ --color-palette-green-fg: #94f9c7;
61
+ --color-palette-indigo-bg: #191a48;
62
+ --color-palette-indigo-fg: #acace2;
63
+ --color-palette-lavender-bg: #251e43;
64
+ --color-palette-lavender-fg: #bab2dc;
65
+ --color-palette-lime-bg: #344819;
66
+ --color-palette-lime-fg: #cef994;
67
+ --color-palette-magenta-bg: #481935;
68
+ --color-palette-magenta-fg: #eea0cf;
69
+ --color-palette-mint-bg: #19483d;
70
+ --color-palette-mint-fg: #94f9e2;
71
+ --color-palette-navy-bg: #192648;
72
+ --color-palette-navy-fg: #a6b8e8;
73
+ --color-palette-olive-bg: #414819;
74
+ --color-palette-olive-fg: #ebf994;
75
+ --color-palette-orange-bg: #483219;
76
+ --color-palette-orange-fg: #f9c994;
77
+ --color-palette-pink-bg: #48192a;
78
+ --color-palette-pink-fg: #f19dbb;
79
+ --color-palette-plum-bg: #441c45;
80
+ --color-palette-plum-fg: #deafdf;
81
+ --color-palette-purple-bg: #201948;
82
+ --color-palette-purple-fg: #b3abe3;
83
+ --color-palette-red-bg: #482219;
84
+ --color-palette-red-fg: #f9a994;
85
+ --color-palette-rose-bg: #481923;
86
+ --color-palette-rose-fg: #ef9eaf;
87
+ --color-palette-sky-bg: #193048;
88
+ --color-palette-sky-fg: #a4c7ea;
89
+ --color-palette-slate-bg: #242d3d;
90
+ --color-palette-slate-fg: #b9c2d5;
91
+ --color-palette-stone-bg: #33312d;
92
+ --color-palette-stone-fg: #cac7c3;
93
+ --color-palette-taupe-bg: #3b3026;
94
+ --color-palette-taupe-fg: #d3c7bb;
95
+ --color-palette-teal-bg: #194548;
96
+ --color-palette-teal-fg: #94f3f9;
97
+ --color-palette-violet-bg: #201948;
98
+ --color-palette-violet-fg: #b0a8e6;
99
+ --color-palette-yellow-bg: #484219;
100
+ --color-palette-yellow-fg: #f9ee94;
101
+ --color-presence-offline: #7e8b9a;
102
+ --color-success: #4bce97;
103
+ --color-success-bg-subtle: #1c3d31;
104
+ --color-success-fg: #1d2125;
105
+ --color-success-hover: #7ee2b8;
106
+ --color-tone-danger-bg: #42201d;
107
+ --color-tone-danger-fg: #ff9c8f;
108
+ --color-tone-info-bg: #16324f;
109
+ --color-tone-info-fg: #9dc3ff;
110
+ --color-tone-neutral-bg: #2c333a;
111
+ --color-tone-neutral-fg: #c7d1db;
112
+ --color-tone-purple-bg: #2b2c4d;
113
+ --color-tone-purple-fg: #b8acf6;
114
+ --color-tone-success-bg: #1c3d31;
115
+ --color-tone-success-fg: #7ee2b8;
116
+ --color-tone-warning-bg: #3d3216;
117
+ --color-tone-warning-fg: #f5cd47;
118
+ --color-warning: #f5cd47;
119
+ --color-warning-bg-subtle: #3d3216;
120
+ --color-warning-fg: #1d2125;
121
+ --color-warning-strong: #f5cd47;
122
+ --ring-accent: #68a7ff;
123
+ --ring-danger: #f87168;
124
+ --ring-success: #4bce97;
125
+ --shadow-lg: 0 4px 12px -2px rgb(0 0 0 / 50%), 0 0 1px rgb(0 0 0 / 56%);
126
+ --shadow-md: 0 2px 4px rgb(0 0 0 / 40%), 0 0 1px rgb(0 0 0 / 56%);
127
+ --shadow-sm: 0 1px 2px rgb(0 0 0 / 40%);
128
+ --shadow-table-pinned-edge: 4px 0 8px -4px rgb(0 0 0 / 50%);
129
+ --shadow-table-pinned-edge-right: -4px 0 8px -4px rgb(0 0 0 / 50%);
130
+ --tooltip-arrow-bg: #39424b;
131
+ --tooltip-bg: #39424b;
132
+ --tooltip-fg: #f0f3f6;
133
+ }
134
+
135
+ :root[data-accent='tealpine'][data-theme='dark'] {
136
+ --color-accent: #6dcfc4;
137
+ --color-accent-bg-subtle: #173f3c;
138
+ --color-accent-fg: #1d2125;
139
+ --color-accent-hover: #9ddfd7;
140
+ --color-accent-pressed: #c6efea;
141
+ --color-accent-subtle-bg: #173f3c;
142
+ --color-link-fg: #6dcfc4;
143
+ --color-link-fg-hover: #9ddfd7;
144
+ --ring-accent: #6dcfc4;
145
+ }
146
+
147
+ @media (prefers-color-scheme: dark) {
148
+ :root:not([data-theme='light']) {
149
+ color-scheme: dark;
150
+ --color-accent: #68a7ff;
151
+ --color-accent-bg-subtle: #1c3a5e;
152
+ --color-accent-fg: #1d2125;
153
+ --color-accent-hover: #8cc4ff;
154
+ --color-accent-pressed: #cce0ff;
155
+ --color-accent-subtle-bg: #1c3a5e;
156
+ --color-bg: #1d2125;
157
+ --color-bg-danger-subtle: #42201d;
158
+ --color-bg-hover: var(--color-bg-muted);
159
+ --color-bg-muted: #282e33;
160
+ --color-bg-muted-hover: #343c42;
161
+ --color-bg-overlay: rgb(0 0 0 / 55%);
162
+ --color-bg-overlay-blur: rgb(0 0 0 / 45%);
163
+ --color-bg-subtle: #22272b;
164
+ --color-bg-sunken: #161a1d;
165
+ --color-border: #38414a;
166
+ --color-border-strong: #50585f;
167
+ --color-chart-series-1: #3987e5;
168
+ --color-chart-series-2: #d95926;
169
+ --color-chart-series-3: #199e70;
170
+ --color-chart-series-4: #c98500;
171
+ --color-chart-series-5: #d55181;
172
+ --color-chart-series-7: #9085e9;
173
+ --color-chart-series-8: #e66767;
174
+ --color-danger: #f87168;
175
+ --color-danger-bg-subtle: #42201d;
176
+ --color-danger-fg: #1d2125;
177
+ --color-danger-hover: #ff9c8f;
178
+ --color-fg: #dee4ea;
179
+ --color-fg-disabled: #5a6472;
180
+ --color-fg-muted: #9aa7b5;
181
+ --color-fg-subtle: #8591a0;
182
+ --color-info: #579dff;
183
+ --color-info-bg-subtle: #16324f;
184
+ --color-palette-amber-bg: #483919;
185
+ --color-palette-amber-fg: #f9d994;
186
+ --color-palette-blue-bg: #192c48;
187
+ --color-palette-blue-fg: #94bdf9;
188
+ --color-palette-brown-bg: #483419;
189
+ --color-palette-brown-fg: #e6cba8;
190
+ --color-palette-charcoal-bg: #2c3035;
191
+ --color-palette-charcoal-fg: #c1c7cc;
192
+ --color-palette-coral-bg: #482619;
193
+ --color-palette-coral-fg: #f2b39b;
194
+ --color-palette-cyan-bg: #194048;
195
+ --color-palette-cyan-fg: #94e8f9;
196
+ --color-palette-emerald-bg: #194839;
197
+ --color-palette-emerald-fg: #94f9d9;
198
+ --color-palette-fuchsia-bg: #481943;
199
+ --color-palette-fuchsia-fg: #eaa4e3;
200
+ --color-palette-gold-bg: #483c19;
201
+ --color-palette-gold-fg: #f9e194;
202
+ --color-palette-green-bg: #194830;
203
+ --color-palette-green-fg: #94f9c7;
204
+ --color-palette-indigo-bg: #191a48;
205
+ --color-palette-indigo-fg: #acace2;
206
+ --color-palette-lavender-bg: #251e43;
207
+ --color-palette-lavender-fg: #bab2dc;
208
+ --color-palette-lime-bg: #344819;
209
+ --color-palette-lime-fg: #cef994;
210
+ --color-palette-magenta-bg: #481935;
211
+ --color-palette-magenta-fg: #eea0cf;
212
+ --color-palette-mint-bg: #19483d;
213
+ --color-palette-mint-fg: #94f9e2;
214
+ --color-palette-navy-bg: #192648;
215
+ --color-palette-navy-fg: #a6b8e8;
216
+ --color-palette-olive-bg: #414819;
217
+ --color-palette-olive-fg: #ebf994;
218
+ --color-palette-orange-bg: #483219;
219
+ --color-palette-orange-fg: #f9c994;
220
+ --color-palette-pink-bg: #48192a;
221
+ --color-palette-pink-fg: #f19dbb;
222
+ --color-palette-plum-bg: #441c45;
223
+ --color-palette-plum-fg: #deafdf;
224
+ --color-palette-purple-bg: #201948;
225
+ --color-palette-purple-fg: #b3abe3;
226
+ --color-palette-red-bg: #482219;
227
+ --color-palette-red-fg: #f9a994;
228
+ --color-palette-rose-bg: #481923;
229
+ --color-palette-rose-fg: #ef9eaf;
230
+ --color-palette-sky-bg: #193048;
231
+ --color-palette-sky-fg: #a4c7ea;
232
+ --color-palette-slate-bg: #242d3d;
233
+ --color-palette-slate-fg: #b9c2d5;
234
+ --color-palette-stone-bg: #33312d;
235
+ --color-palette-stone-fg: #cac7c3;
236
+ --color-palette-taupe-bg: #3b3026;
237
+ --color-palette-taupe-fg: #d3c7bb;
238
+ --color-palette-teal-bg: #194548;
239
+ --color-palette-teal-fg: #94f3f9;
240
+ --color-palette-violet-bg: #201948;
241
+ --color-palette-violet-fg: #b0a8e6;
242
+ --color-palette-yellow-bg: #484219;
243
+ --color-palette-yellow-fg: #f9ee94;
244
+ --color-presence-offline: #7e8b9a;
245
+ --color-success: #4bce97;
246
+ --color-success-bg-subtle: #1c3d31;
247
+ --color-success-fg: #1d2125;
248
+ --color-success-hover: #7ee2b8;
249
+ --color-tone-danger-bg: #42201d;
250
+ --color-tone-danger-fg: #ff9c8f;
251
+ --color-tone-info-bg: #16324f;
252
+ --color-tone-info-fg: #9dc3ff;
253
+ --color-tone-neutral-bg: #2c333a;
254
+ --color-tone-neutral-fg: #c7d1db;
255
+ --color-tone-purple-bg: #2b2c4d;
256
+ --color-tone-purple-fg: #b8acf6;
257
+ --color-tone-success-bg: #1c3d31;
258
+ --color-tone-success-fg: #7ee2b8;
259
+ --color-tone-warning-bg: #3d3216;
260
+ --color-tone-warning-fg: #f5cd47;
261
+ --color-warning: #f5cd47;
262
+ --color-warning-bg-subtle: #3d3216;
263
+ --color-warning-fg: #1d2125;
264
+ --color-warning-strong: #f5cd47;
265
+ --ring-accent: #68a7ff;
266
+ --ring-danger: #f87168;
267
+ --ring-success: #4bce97;
268
+ --shadow-lg: 0 4px 12px -2px rgb(0 0 0 / 50%), 0 0 1px rgb(0 0 0 / 56%);
269
+ --shadow-md: 0 2px 4px rgb(0 0 0 / 40%), 0 0 1px rgb(0 0 0 / 56%);
270
+ --shadow-sm: 0 1px 2px rgb(0 0 0 / 40%);
271
+ --shadow-table-pinned-edge: 4px 0 8px -4px rgb(0 0 0 / 50%);
272
+ --shadow-table-pinned-edge-right: -4px 0 8px -4px rgb(0 0 0 / 50%);
273
+ --tooltip-arrow-bg: #39424b;
274
+ --tooltip-bg: #39424b;
275
+ --tooltip-fg: #f0f3f6;
276
+ }
277
+
278
+ :root[data-accent='tealpine']:not([data-theme='light']) {
279
+ --color-accent: #6dcfc4;
280
+ --color-accent-bg-subtle: #173f3c;
281
+ --color-accent-fg: #1d2125;
282
+ --color-accent-hover: #9ddfd7;
283
+ --color-accent-pressed: #c6efea;
284
+ --color-accent-subtle-bg: #173f3c;
285
+ --color-link-fg: #6dcfc4;
286
+ --color-link-fg-hover: #9ddfd7;
287
+ --ring-accent: #6dcfc4;
288
+ }
289
+ }
290
+
291
+ :root[data-theme='light'] {
292
+ color-scheme: light;
293
+ }
@@ -0,0 +1,289 @@
1
+ // GENERATED FILE — DO NOT EDIT.
2
+ // Source: packages/design-tokens/src/tokens.json
3
+ // Schema version: 1
4
+
5
+ :root {
6
+ color-scheme: light;
7
+ --avatar-overlap-lg: calc(var(--size-lg) * -0.3);
8
+ --avatar-overlap-md: calc(var(--size-md) * -0.3);
9
+ --avatar-overlap-sm: calc(var(--size-sm) * -0.3);
10
+ --avatar-overlap-xl: calc(var(--size-xl) * -0.3);
11
+ --border-width: 1px;
12
+ --border-width-emphasis: 2px;
13
+ --border-width-strong: 3px;
14
+ --color-accent: #0052cc;
15
+ --color-accent-bg-subtle: #deebff;
16
+ --color-accent-fg: #ffffff;
17
+ --color-accent-hover: #0747a6;
18
+ --color-accent-pressed: #053585;
19
+ --color-accent-subtle-bg: #deebff;
20
+ --color-avatar-1: #00758a;
21
+ --color-avatar-2: #247653;
22
+ --color-avatar-3: #a65a00;
23
+ --color-avatar-4: #6554c0;
24
+ --color-avatar-5: #de350b;
25
+ --color-avatar-6: #0052cc;
26
+ --color-avatar-fg: #ffffff;
27
+ --color-bg: #ffffff;
28
+ --color-bg-danger-subtle: #ffebe6;
29
+ --color-bg-hover: var(--color-bg-sunken);
30
+ --color-bg-muted: #f4f5f7;
31
+ --color-bg-muted-hover: #e4e6eb;
32
+ --color-bg-overlay: rgb(15 23 42 / 35%);
33
+ --color-bg-overlay-blur: rgb(255 255 255 / 30%);
34
+ --color-bg-overlay-strong: rgb(15 23 42 / 92%);
35
+ --color-bg-row-pinned: var(--color-accent-bg-subtle);
36
+ --color-bg-subtle: #fafbfc;
37
+ --color-bg-sunken: #ebecf0;
38
+ --color-border: #dfe1e6;
39
+ --color-border-strong: #c1c7d0;
40
+ --color-chart-series-1: #2a78d6;
41
+ --color-chart-series-2: #e0602c;
42
+ --color-chart-series-3: #13946a;
43
+ --color-chart-series-4: #a87600;
44
+ --color-chart-series-5: #d0558a;
45
+ --color-chart-series-6: #008300;
46
+ --color-chart-series-7: #6250d6;
47
+ --color-chart-series-8: #e34948;
48
+ --color-danger: #c8300a;
49
+ --color-danger-bg-subtle: #ffebe6;
50
+ --color-danger-fg: #ffffff;
51
+ --color-danger-hover: #a72808;
52
+ --color-fg: #172b4d;
53
+ --color-fg-disabled: #a5adba;
54
+ --color-fg-muted: #5b6980;
55
+ --color-fg-on-overlay: #ffffff;
56
+ --color-fg-subtle: #687388;
57
+ --color-info: #0052cc;
58
+ --color-info-bg-subtle: #ebf3ff;
59
+ --color-link-fg: var(--color-accent);
60
+ --color-link-fg-hover: var(--color-accent-hover);
61
+ --color-palette-amber-bg: #fff7d6;
62
+ --color-palette-amber-fg: #7a5300;
63
+ --color-palette-blue-bg: #deebff;
64
+ --color-palette-blue-fg: #0747a6;
65
+ --color-palette-brown-bg: #f1e3d3;
66
+ --color-palette-brown-fg: #6b4a1f;
67
+ --color-palette-charcoal-bg: #d8dadc;
68
+ --color-palette-charcoal-fg: #2e3338;
69
+ --color-palette-coral-bg: #ffe5dd;
70
+ --color-palette-coral-fg: #9e3a14;
71
+ --color-palette-cyan-bg: #dff5f9;
72
+ --color-palette-cyan-fg: #00657a;
73
+ --color-palette-emerald-bg: #d2f0e1;
74
+ --color-palette-emerald-fg: #00714d;
75
+ --color-palette-fuchsia-bg: #fbdef5;
76
+ --color-palette-fuchsia-fg: #7a1c70;
77
+ --color-palette-gold-bg: #fff3c0;
78
+ --color-palette-gold-fg: #806100;
79
+ --color-palette-green-bg: #d4f5dd;
80
+ --color-palette-green-fg: #006633;
81
+ --color-palette-indigo-bg: #e2e2f7;
82
+ --color-palette-indigo-fg: #2c2d80;
83
+ --color-palette-lavender-bg: #ece6ff;
84
+ --color-palette-lavender-fg: #5d4ba6;
85
+ --color-palette-lime-bg: #e8f7c8;
86
+ --color-palette-lime-fg: #3c6900;
87
+ --color-palette-magenta-bg: #ffd9f0;
88
+ --color-palette-magenta-fg: #8c195e;
89
+ --color-palette-mint-bg: #d6f5ec;
90
+ --color-palette-mint-fg: #00755a;
91
+ --color-palette-navy-bg: #d8e0f0;
92
+ --color-palette-navy-fg: #1a2e63;
93
+ --color-palette-olive-bg: #f0f3cc;
94
+ --color-palette-olive-fg: #4d5a00;
95
+ --color-palette-orange-bg: #fff0db;
96
+ --color-palette-orange-fg: #974f00;
97
+ --color-palette-pink-bg: #ffe0eb;
98
+ --color-palette-pink-fg: #a3174a;
99
+ --color-palette-plum-bg: #efddf0;
100
+ --color-palette-plum-fg: #6a2b6b;
101
+ --color-palette-purple-bg: #eae6ff;
102
+ --color-palette-purple-fg: #403294;
103
+ --color-palette-red-bg: #ffebe6;
104
+ --color-palette-red-fg: #bf2600;
105
+ --color-palette-rose-bg: #ffe1e1;
106
+ --color-palette-rose-fg: #a01a35;
107
+ --color-palette-sky-bg: #dceefb;
108
+ --color-palette-sky-fg: #1f5285;
109
+ --color-palette-slate-bg: #e2e6ed;
110
+ --color-palette-slate-fg: #3d4b66;
111
+ --color-palette-stone-bg: #e9e7e3;
112
+ --color-palette-stone-fg: #4d4944;
113
+ --color-palette-taupe-bg: #ece5db;
114
+ --color-palette-taupe-fg: #5a4a3a;
115
+ --color-palette-teal-bg: #d6f0f0;
116
+ --color-palette-teal-fg: #006970;
117
+ --color-palette-violet-bg: #e3deff;
118
+ --color-palette-violet-fg: #4030a6;
119
+ --color-palette-yellow-bg: #fffacc;
120
+ --color-palette-yellow-fg: #6b5f00;
121
+ --color-presence-away: var(--color-palette-amber-fg);
122
+ --color-presence-busy: var(--color-danger);
123
+ --color-presence-offline: #6b778c;
124
+ --color-presence-online: var(--color-success);
125
+ --color-success: #007e54;
126
+ --color-success-bg-subtle: #e3fcef;
127
+ --color-success-fg: #ffffff;
128
+ --color-success-hover: #006644;
129
+ --color-table-bg: var(--color-bg);
130
+ --color-table-border: var(--color-border);
131
+ --color-table-caption-fg: var(--color-fg-muted);
132
+ --color-table-fg: var(--color-fg);
133
+ --color-table-header-bg: var(--color-bg-muted);
134
+ --color-table-header-bg-hover: var(--color-bg-muted-hover);
135
+ --color-table-header-fg: var(--color-fg-muted);
136
+ --color-table-row-bg-hover: var(--color-info-bg-subtle);
137
+ --color-table-row-bg-selected: var(--color-accent-bg-subtle);
138
+ --color-table-row-bg-striped: var(--color-bg-subtle);
139
+ --color-table-row-fg-selected: var(--color-fg);
140
+ --color-tone-danger-bg: #ffebe6;
141
+ --color-tone-danger-fg: #bf2600;
142
+ --color-tone-info-bg: #deebff;
143
+ --color-tone-info-fg: #0747a6;
144
+ --color-tone-neutral-bg: #f4f5f7;
145
+ --color-tone-neutral-fg: #42526e;
146
+ --color-tone-purple-bg: #eae6ff;
147
+ --color-tone-purple-fg: #403294;
148
+ --color-tone-success-bg: #e3fcef;
149
+ --color-tone-success-fg: #006644;
150
+ --color-tone-warning-bg: #fffae6;
151
+ --color-tone-warning-fg: #974f00;
152
+ --color-warning: #ff991f;
153
+ --color-warning-bg-subtle: #fff7ed;
154
+ --color-warning-fg: #172b4d;
155
+ --color-warning-strong: #a54800;
156
+ --document-background: var(--color-bg-subtle);
157
+ --font-family-mono: ui-monospace, 'SF Mono', Menlo, Monaco, Consolas, monospace;
158
+ --font-family-sans:
159
+ -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
160
+ --font-size-2xl: 24px;
161
+ --font-size-3xl: 29px;
162
+ --font-size-code: 0.92em;
163
+ --font-size-lg: 16px;
164
+ --font-size-md: 14px;
165
+ --font-size-sm: 12px;
166
+ --font-size-xl: 20px;
167
+ --font-size-xs: 11px;
168
+ --font-weight-bold: 700;
169
+ --font-weight-medium: 500;
170
+ --font-weight-regular: 400;
171
+ --font-weight-semibold: 600;
172
+ --letter-spacing-caps: 0.03em;
173
+ --line-height-none: 1;
174
+ --line-height-normal: 1.42857;
175
+ --line-height-tight: 1.2;
176
+ --measure-2xs: 160px;
177
+ --measure-lg: 640px;
178
+ --measure-md: 448px;
179
+ --measure-sm: 320px;
180
+ --measure-xl: 800px;
181
+ --measure-xs: 200px;
182
+ --opacity-disabled: 0.5;
183
+ --opacity-dragging: 0.4;
184
+ --opacity-hidden: 0;
185
+ --opacity-muted: 0.75;
186
+ --opacity-subtle: 0.6;
187
+ --opacity-thumb-hover: 0.85;
188
+ --opacity-thumb-idle: 0.55;
189
+ --opacity-visible: 1;
190
+ --radius-full: 9999px;
191
+ --radius-lg: 8px;
192
+ --radius-md: 4px;
193
+ --radius-sm: 3px;
194
+ --ring-accent: #0052cc;
195
+ --ring-danger: #c8300a;
196
+ --ring-offset: 2px;
197
+ --ring-on-scrim: #ffffff;
198
+ --ring-success: #007e54;
199
+ --ring-width: 2px;
200
+ --shadow-lg: 0 4px 8px -2px rgb(9 30 66 / 25%), 0 0 1px rgb(9 30 66 / 31%);
201
+ --shadow-md: 0 2px 4px rgb(9 30 66 / 8%), 0 0 1px rgb(9 30 66 / 31%);
202
+ --shadow-sm: 0 1px 2px rgb(9 30 66 / 8%);
203
+ --shadow-table-pinned-edge: 4px 0 8px -4px rgb(0 0 0 / 8%);
204
+ --shadow-table-pinned-edge-right: -4px 0 8px -4px rgb(0 0 0 / 8%);
205
+ --size-badge: 20px;
206
+ --size-badge-dot: 6px;
207
+ --size-badge-sm: 16px;
208
+ --size-calendar-agenda-gutter: 8rem;
209
+ --size-calendar-day-cell-min-height: 6.5rem;
210
+ --size-checkbox-lg: 20px;
211
+ --size-checkbox-md: 16px;
212
+ --size-checkbox-sm: 14px;
213
+ --size-chip: 18px;
214
+ --size-control-country: 8rem;
215
+ --size-control-currency: 8rem;
216
+ --size-datepicker-cell: 2rem;
217
+ --size-datepicker-popover-width: 15rem;
218
+ --size-daterange-popover-width: 32rem;
219
+ --size-drawer-lg: 640px;
220
+ --size-drawer-md: 440px;
221
+ --size-drawer-sm: 320px;
222
+ --size-dropdown-indicator: 16px;
223
+ --size-dropdown-min-width: 160px;
224
+ --size-lg: 40px;
225
+ --size-listbox-max-height: 240px;
226
+ --size-md: 32px;
227
+ --size-modal-lg: 800px;
228
+ --size-modal-md: 560px;
229
+ --size-modal-sm: 400px;
230
+ --size-otp-cell-xl: 48px;
231
+ --size-popover-max-width: 360px;
232
+ --size-popover-min-width: 220px;
233
+ --size-presence-lg: 12px;
234
+ --size-presence-md: 10px;
235
+ --size-presence-sm: 8px;
236
+ --size-presence-xl: 16px;
237
+ --size-radio-dot-lg: 12px;
238
+ --size-radio-dot-md: 8px;
239
+ --size-radio-dot-sm: 6px;
240
+ --size-radio-lg: var(--size-checkbox-lg);
241
+ --size-radio-md: var(--size-checkbox-md);
242
+ --size-radio-sm: var(--size-checkbox-sm);
243
+ --size-rich-text-image-max-height: 480px;
244
+ --size-scroll-area-lg: 560px;
245
+ --size-scroll-area-md: 400px;
246
+ --size-scroll-area-sm: 240px;
247
+ --size-sm: 24px;
248
+ --size-sparkline: 40px;
249
+ --size-spinner: 14px;
250
+ --size-xl: 80px;
251
+ --size-xs: 20px;
252
+ --space-0: 0;
253
+ --space-05: 2px;
254
+ --space-1: 4px;
255
+ --space-10: 40px;
256
+ --space-12: 48px;
257
+ --space-16: 64px;
258
+ --space-2: 8px;
259
+ --space-3: 12px;
260
+ --space-4: 16px;
261
+ --space-5: 20px;
262
+ --space-6: 24px;
263
+ --space-8: 32px;
264
+ --transition-base: 140ms ease-out;
265
+ --transition-fast: 100ms ease-out;
266
+ --transition-slow: 260ms ease-in-out;
267
+ --z-app-chrome: 500;
268
+ --z-chat-launcher: 900;
269
+ --z-dropdown: 1000;
270
+ --z-flowcanvas-maximized: 1090;
271
+ --z-modal: 1100;
272
+ --z-overlay-floating: 1190;
273
+ --z-popover: 1050;
274
+ --z-toast: 1200;
275
+ --z-tooltip: 1300;
276
+ --z-tour: 1150;
277
+ }
278
+
279
+ :root[data-accent='tealpine'] {
280
+ --color-accent: #0b6d67;
281
+ --color-accent-bg-subtle: #ddeeec;
282
+ --color-accent-fg: #ffffff;
283
+ --color-accent-hover: #085752;
284
+ --color-accent-pressed: #054440;
285
+ --color-accent-subtle-bg: #ddeeec;
286
+ --color-link-fg: #007676;
287
+ --color-link-fg-hover: #006666;
288
+ --ring-accent: #0b6d67;
289
+ }
package/package.json CHANGED
@@ -1,6 +1,32 @@
1
1
  {
2
2
  "name": "@eocrm/design-tokens",
3
- "version": "0.0.0-stage",
4
- "stub": true,
5
- "description": "Temporary package placeholder for staged publishing"
6
- }
3
+ "version": "0.6.17",
4
+ "private": false,
5
+ "type": "module",
6
+ "files": [
7
+ "generated",
8
+ "README.md"
9
+ ],
10
+ "exports": {
11
+ "./styles/tokens.scss": "./generated/web/tokens.scss",
12
+ "./styles/dark.scss": "./generated/web/dark.scss",
13
+ "./manifest.json": "./generated/manifest.json",
14
+ "./package.json": "./package.json"
15
+ },
16
+ "publishConfig": {
17
+ "registry": "https://npm.pkg.github.com",
18
+ "access": "public"
19
+ },
20
+ "scripts": {
21
+ "test": "node --test test/*.test.mjs",
22
+ "test:tooling": "node --test test/tooling/*.test.mjs",
23
+ "validate": "node scripts/generate.mjs --validate-only",
24
+ "generate": "node scripts/generate.mjs",
25
+ "check": "node scripts/check-generated.mjs && node scripts/check-web-compat.mjs"
26
+ },
27
+ "devDependencies": {
28
+ "ajv": "^8.17.1",
29
+ "ajv-formats": "^3.0.1",
30
+ "yaml": "^2.9.1"
31
+ }
32
+ }