@ekanos/ui 0.1.1 → 0.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +174 -15
- package/dist/base.css +116 -0
- package/dist/styles.css +2159 -0
- package/dist/switch.d.ts +8 -0
- package/dist/switch.js +44 -0
- package/dist/textarea.d.ts +5 -0
- package/dist/textarea.js +25 -0
- package/dist/theme.css +221 -0
- package/dist/tokens.css +414 -0
- package/package.json +18 -5
package/dist/tokens.css
ADDED
|
@@ -0,0 +1,414 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* @ekanos/ui — Fusion design tokens (values only)
|
|
3
|
+
* ------------------------------------------------------------------
|
|
4
|
+
* Plain CSS custom properties. No Tailwind required to consume this file.
|
|
5
|
+
*
|
|
6
|
+
* ── Scope: the full Fusion SEMANTIC surface, on purpose ──
|
|
7
|
+
* This ships every semantic token a Fusion-styled component can reference —
|
|
8
|
+
* NOT just the subset `@ekanos/ui`'s own ~20 primitives happen to touch. That
|
|
9
|
+
* is deliberate, and it is the one place this file's scope differs from the
|
|
10
|
+
* compiled `dist/styles.css`:
|
|
11
|
+
*
|
|
12
|
+
* • `dist/styles.css` is a CLOSED artifact — it can only ever style the
|
|
13
|
+
* components this package ships, so `scripts/build-css.mjs` compiles it
|
|
14
|
+
* against the components' class strings and Tailwind prunes every token no
|
|
15
|
+
* component uses. It stays minimal automatically.
|
|
16
|
+
*
|
|
17
|
+
* • `tokens.css` + `theme.css` are the OPEN preset — their consumer is a
|
|
18
|
+
* PARTNER authoring their OWN Fusion-styled widgets against `@ekanos/ui`
|
|
19
|
+
* (this is exactly what `ekanos dev` scaffolds). A partner writing an
|
|
20
|
+
* ordinary `bg-chart-1`, `text-info`, `bg-sidebar` or `shadow-widget` has
|
|
21
|
+
* no `packages/ui` and no `apps/web/styles` to fall back on — this preset
|
|
22
|
+
* is their ONLY channel to Fusion's tokens. Scoping it to what THIS
|
|
23
|
+
* package's components use would leave those utilities resolving to
|
|
24
|
+
* nothing in a partner project, with no error. So the preset carries the
|
|
25
|
+
* whole semantic set: surfaces, brand, status, chart, sidebar, assistant,
|
|
26
|
+
* info, the full elevation scale, radius and fonts.
|
|
27
|
+
*
|
|
28
|
+
* The drift gate in `scripts/build-css.mjs` enforces a FLOOR, not a ceiling:
|
|
29
|
+
* its COVERAGE check fails the build if a component uses a Fusion token this
|
|
30
|
+
* file does NOT define; it never objects to this file defining MORE. So a
|
|
31
|
+
* superset is safe, and the compiled `styles.css` above still prunes back to
|
|
32
|
+
* exactly what the components use.
|
|
33
|
+
*
|
|
34
|
+
* Values are a verbatim copy of Fusion's canonical `apps/web/styles/
|
|
35
|
+
* shadcn-ui.css`. This file (a published npm subpath) plus `packages/ui` are
|
|
36
|
+
* the two supported ways to consume those tokens; `apps/harness` imports THIS
|
|
37
|
+
* one via `@ekanos/ui/theme.css` rather than forking the values again.
|
|
38
|
+
*
|
|
39
|
+
* Still NOT shipped, because they are not part of the semantic utility
|
|
40
|
+
* surface: `--assistant*` beyond the two aliases below stays out, and no icon
|
|
41
|
+
* font data ships (Fusion uses Font Awesome Pro — see base.css / README).
|
|
42
|
+
*
|
|
43
|
+
* ── Theme switching ──
|
|
44
|
+
* Three states, in cascade order:
|
|
45
|
+
* 1. `:root` → light (the default)
|
|
46
|
+
* 2. `@media (prefers-color-scheme: dark)` → dark, unless the page has
|
|
47
|
+
* explicitly opted into light
|
|
48
|
+
* 3. `.dark` / `[data-theme='dark']` → dark, explicitly, beating the
|
|
49
|
+
* media query in both directions
|
|
50
|
+
*
|
|
51
|
+
* The dark declarations are written out twice on purpose: CSS has no way to
|
|
52
|
+
* share one declaration block between a media query and a plain selector.
|
|
53
|
+
* `scripts/build-css.mjs` asserts the two dark blocks declare the same
|
|
54
|
+
* tokens with the same values.
|
|
55
|
+
*/
|
|
56
|
+
|
|
57
|
+
:root {
|
|
58
|
+
/* Typography. Fusion loads Figtree + Bricolage Grotesque through
|
|
59
|
+
`next/font`; a partner who has not loaded them falls through to the
|
|
60
|
+
system UI stack. See the README for the exact <link> tags. */
|
|
61
|
+
--font-sans:
|
|
62
|
+
'Figtree', ui-sans-serif, -apple-system, BlinkMacSystemFont, 'Segoe UI',
|
|
63
|
+
Roboto, 'Helvetica Neue', system-ui, sans-serif;
|
|
64
|
+
--font-heading: 'Bricolage Grotesque', var(--font-sans);
|
|
65
|
+
|
|
66
|
+
/* Surfaces */
|
|
67
|
+
--background: oklch(0.97 0.005 30);
|
|
68
|
+
--foreground: oklch(0.15 0.012 30);
|
|
69
|
+
--card: oklch(0.995 0.0015 30);
|
|
70
|
+
--card-foreground: oklch(0.15 0.012 30);
|
|
71
|
+
--popover: oklch(0.995 0.0015 30);
|
|
72
|
+
--popover-foreground: oklch(0.15 0.012 30);
|
|
73
|
+
|
|
74
|
+
/* Brand accent — coral-orange, OKLCH hue ~30 */
|
|
75
|
+
--primary: oklch(0.62 0.19 30);
|
|
76
|
+
--primary-foreground: oklch(0.99 0 0);
|
|
77
|
+
--primary-strong: oklch(0.51 0.17 30);
|
|
78
|
+
|
|
79
|
+
--secondary: oklch(0.94 0.008 30);
|
|
80
|
+
--secondary-foreground: oklch(0.24 0.015 30);
|
|
81
|
+
|
|
82
|
+
--muted: oklch(0.945 0.005 30);
|
|
83
|
+
--muted-foreground: oklch(0.48 0.015 30);
|
|
84
|
+
|
|
85
|
+
--accent: oklch(0.95 0.012 30);
|
|
86
|
+
--accent-foreground: oklch(0.24 0.015 30);
|
|
87
|
+
|
|
88
|
+
/* Status */
|
|
89
|
+
--destructive: oklch(0.55 0.2 25);
|
|
90
|
+
--destructive-foreground: oklch(0.99 0 0);
|
|
91
|
+
--destructive-strong: oklch(0.55 0.2 25);
|
|
92
|
+
|
|
93
|
+
--warning: oklch(0.52 0.13 70);
|
|
94
|
+
--warning-foreground: oklch(0.99 0 0);
|
|
95
|
+
|
|
96
|
+
--success: oklch(0.55 0.13 150);
|
|
97
|
+
--success-foreground: oklch(0.99 0 0);
|
|
98
|
+
--success-strong: oklch(0.51 0.13 150);
|
|
99
|
+
|
|
100
|
+
--info: oklch(0.55 0.15 245);
|
|
101
|
+
--info-foreground: oklch(0.99 0 0);
|
|
102
|
+
|
|
103
|
+
/* Lines and focus */
|
|
104
|
+
--border: oklch(0.91 0.006 30);
|
|
105
|
+
--input: oklch(0.9 0.005 30);
|
|
106
|
+
--ring: oklch(0.62 0.19 30);
|
|
107
|
+
|
|
108
|
+
--radius: 0.5rem;
|
|
109
|
+
|
|
110
|
+
/* Data visualization */
|
|
111
|
+
--chart-1: oklch(0.62 0.19 30);
|
|
112
|
+
--chart-2: oklch(0.61 0.12 205);
|
|
113
|
+
--chart-3: oklch(0.72 0.17 148);
|
|
114
|
+
--chart-4: oklch(0.6 0.18 260);
|
|
115
|
+
--chart-5: oklch(0.7 0.12 80);
|
|
116
|
+
|
|
117
|
+
/* Sidebar */
|
|
118
|
+
--sidebar-background: oklch(0.97 0.005 30);
|
|
119
|
+
--sidebar-foreground: oklch(0.15 0.012 30);
|
|
120
|
+
--sidebar-primary: oklch(0.62 0.19 30);
|
|
121
|
+
--sidebar-primary-foreground: oklch(0.99 0 0);
|
|
122
|
+
--sidebar-accent: oklch(0.955 0.006 30);
|
|
123
|
+
--sidebar-accent-foreground: oklch(0.35 0.015 30);
|
|
124
|
+
--sidebar-border: oklch(0.92 0.006 30);
|
|
125
|
+
--sidebar-ring: oklch(0.62 0.19 30);
|
|
126
|
+
|
|
127
|
+
/* Assistant — aliases onto the sidebar accent */
|
|
128
|
+
--assistant: var(--sidebar-primary);
|
|
129
|
+
--assistant-foreground: var(--sidebar-primary-foreground);
|
|
130
|
+
|
|
131
|
+
/* ── Elevation shadow system ── Stacked diffusion (light mode)
|
|
132
|
+
* Ambient ring + layers using 1→3→6→12→24→48 doubling.
|
|
133
|
+
* Spread = -(blur / 2) keeps each layer tight. */
|
|
134
|
+
--shadow-color: rgba(0, 0, 0, 0.04);
|
|
135
|
+
|
|
136
|
+
--el-flat: 0px 0px 0px 1px var(--shadow-color);
|
|
137
|
+
|
|
138
|
+
--el-sunken: 0px 0px 0px 1px var(--shadow-color);
|
|
139
|
+
|
|
140
|
+
--el-inset:
|
|
141
|
+
0px 0px 0px 1px var(--shadow-color), 0px 1px 1px -0.5px var(--shadow-color);
|
|
142
|
+
|
|
143
|
+
--el-card:
|
|
144
|
+
0px 0px 0px 1px var(--shadow-color), 0px 1px 1px -0.5px var(--shadow-color),
|
|
145
|
+
0px 3px 3px -1.5px var(--shadow-color);
|
|
146
|
+
|
|
147
|
+
--shadow-widget-color: rgba(0, 0, 0, 0.07);
|
|
148
|
+
--el-widget:
|
|
149
|
+
0px 0px 0px 1px var(--shadow-widget-color),
|
|
150
|
+
0px 1px 1px -0.5px var(--shadow-widget-color),
|
|
151
|
+
0px 3px 3px -1.5px var(--shadow-widget-color),
|
|
152
|
+
0px 6px 6px -3px var(--shadow-widget-color);
|
|
153
|
+
|
|
154
|
+
/* Left-facing variant of the widget shadow — same color, redirected along
|
|
155
|
+
* -X so a full-height rail/dock casts its shadow onto the content beside it
|
|
156
|
+
* and reads as floating above the app. No hard edge ring: a soft, widening
|
|
157
|
+
* falloff only, so the seam stays gentle rather than a crisp line. */
|
|
158
|
+
--el-rail:
|
|
159
|
+
-1px 0px 2px -0.5px var(--shadow-widget-color),
|
|
160
|
+
-4px 0px 6px -2px var(--shadow-widget-color),
|
|
161
|
+
-10px 0px 14px -6px var(--shadow-widget-color);
|
|
162
|
+
|
|
163
|
+
--el-popover:
|
|
164
|
+
0px 0px 0px 1px var(--shadow-color), 0px 1px 1px -0.5px var(--shadow-color),
|
|
165
|
+
0px 3px 3px -1.5px var(--shadow-color), 0px 6px 6px -3px var(--shadow-color);
|
|
166
|
+
|
|
167
|
+
--el-sticky:
|
|
168
|
+
0px 0px 0px 1px var(--shadow-color), 0px 1px 1px -0.5px var(--shadow-color),
|
|
169
|
+
0px 3px 3px -1.5px var(--shadow-color),
|
|
170
|
+
0px 6px 6px -3px var(--shadow-color), 0px 12px 12px -6px var(--shadow-color);
|
|
171
|
+
|
|
172
|
+
--el-modal:
|
|
173
|
+
0px 0px 0px 1px var(--shadow-color), 0px 1px 1px -0.5px var(--shadow-color),
|
|
174
|
+
0px 3px 3px -1.5px var(--shadow-color),
|
|
175
|
+
0px 6px 6px -3px var(--shadow-color),
|
|
176
|
+
0px 12px 12px -6px var(--shadow-color),
|
|
177
|
+
0px 24px 24px -12px var(--shadow-color);
|
|
178
|
+
|
|
179
|
+
--el-overlay:
|
|
180
|
+
0px 0px 0px 1px var(--shadow-color), 0px 1px 1px -0.5px var(--shadow-color),
|
|
181
|
+
0px 3px 3px -1.5px var(--shadow-color),
|
|
182
|
+
0px 6px 6px -3px var(--shadow-color),
|
|
183
|
+
0px 12px 12px -6px var(--shadow-color),
|
|
184
|
+
0px 24px 24px -12px var(--shadow-color),
|
|
185
|
+
0px 48px 48px -24px var(--shadow-color);
|
|
186
|
+
}
|
|
187
|
+
|
|
188
|
+
/* ── State 2: system dark, unless the page opted into light ── */
|
|
189
|
+
@media (prefers-color-scheme: dark) {
|
|
190
|
+
:root:not(.light):not([data-theme='light']) {
|
|
191
|
+
--background: oklch(0.155 0.002 30);
|
|
192
|
+
--foreground: oklch(0.94 0.004 30);
|
|
193
|
+
--card: oklch(0.21 0.003 30);
|
|
194
|
+
--card-foreground: oklch(0.94 0.004 30);
|
|
195
|
+
--popover: oklch(0.21 0.003 30);
|
|
196
|
+
--popover-foreground: oklch(0.94 0.004 30);
|
|
197
|
+
|
|
198
|
+
--primary: oklch(0.72 0.17 30);
|
|
199
|
+
--primary-foreground: oklch(0.14 0.01 30);
|
|
200
|
+
--primary-strong: oklch(0.72 0.17 30);
|
|
201
|
+
|
|
202
|
+
--secondary: oklch(0.22 0.003 30);
|
|
203
|
+
--secondary-foreground: oklch(0.94 0.004 30);
|
|
204
|
+
|
|
205
|
+
--muted: oklch(0.22 0.003 30);
|
|
206
|
+
--muted-foreground: oklch(0.62 0.006 30);
|
|
207
|
+
|
|
208
|
+
--accent: oklch(0.25 0.004 30);
|
|
209
|
+
--accent-foreground: oklch(0.94 0.004 30);
|
|
210
|
+
|
|
211
|
+
--destructive: oklch(0.5 0.2 25);
|
|
212
|
+
--destructive-foreground: oklch(0.94 0.005 30);
|
|
213
|
+
--destructive-strong: oklch(0.66 0.2 18);
|
|
214
|
+
|
|
215
|
+
--warning: oklch(0.78 0.14 75);
|
|
216
|
+
--warning-foreground: oklch(0.2 0.03 70);
|
|
217
|
+
|
|
218
|
+
--success: oklch(0.72 0.15 150);
|
|
219
|
+
--success-foreground: oklch(0.18 0.03 150);
|
|
220
|
+
--success-strong: oklch(0.72 0.15 150);
|
|
221
|
+
|
|
222
|
+
--info: oklch(0.7 0.13 245);
|
|
223
|
+
--info-foreground: oklch(0.18 0.03 245);
|
|
224
|
+
|
|
225
|
+
--border: oklch(0.25 0.003 30);
|
|
226
|
+
--input: oklch(0.3 0.003 30);
|
|
227
|
+
--ring: oklch(0.72 0.17 30);
|
|
228
|
+
|
|
229
|
+
--chart-1: oklch(0.72 0.17 30);
|
|
230
|
+
--chart-2: oklch(0.7 0.1 205);
|
|
231
|
+
--chart-3: oklch(0.75 0.17 148);
|
|
232
|
+
--chart-4: oklch(0.65 0.18 260);
|
|
233
|
+
--chart-5: oklch(0.75 0.12 80);
|
|
234
|
+
|
|
235
|
+
--sidebar-background: oklch(0.155 0.002 30);
|
|
236
|
+
--sidebar-foreground: oklch(0.94 0.004 30);
|
|
237
|
+
--sidebar-primary: oklch(0.72 0.17 30);
|
|
238
|
+
--sidebar-primary-foreground: oklch(0.14 0.01 30);
|
|
239
|
+
--sidebar-accent: oklch(0.2 0.003 30);
|
|
240
|
+
--sidebar-accent-foreground: oklch(0.94 0.004 30);
|
|
241
|
+
--sidebar-border: oklch(0.27 0.004 30);
|
|
242
|
+
--sidebar-ring: oklch(0.72 0.17 30);
|
|
243
|
+
|
|
244
|
+
--assistant: var(--sidebar-primary);
|
|
245
|
+
--assistant-foreground: var(--sidebar-primary-foreground);
|
|
246
|
+
|
|
247
|
+
--el-flat: none;
|
|
248
|
+
|
|
249
|
+
--el-sunken: inset 0 0 0 1px rgba(255, 255, 255, 0.02);
|
|
250
|
+
|
|
251
|
+
--el-inset:
|
|
252
|
+
inset 0 1px 0 0 rgba(255, 255, 255, 0.02),
|
|
253
|
+
inset 0 0 0 1px rgba(255, 255, 255, 0.02),
|
|
254
|
+
0 1px 1px -0.5px rgba(0, 0, 0, 0.18);
|
|
255
|
+
|
|
256
|
+
--el-card:
|
|
257
|
+
inset 0 1px 0 0 rgba(255, 255, 255, 0.05),
|
|
258
|
+
inset 0 0 0 1px rgba(255, 255, 255, 0.02), 0 0 0 1px rgba(0, 0, 0, 0.12),
|
|
259
|
+
0 1px 1px -0.5px rgba(0, 0, 0, 0.18), 0 3px 3px -1.5px rgba(0, 0, 0, 0.18);
|
|
260
|
+
|
|
261
|
+
--el-widget:
|
|
262
|
+
inset 0 1px 0 0 rgba(255, 255, 255, 0.07),
|
|
263
|
+
inset 0 0 0 1px rgba(255, 255, 255, 0.03), 0 0 0 1px rgba(0, 0, 0, 0.14),
|
|
264
|
+
0 1px 1px -0.5px rgba(0, 0, 0, 0.22),
|
|
265
|
+
0 3px 3px -1.5px rgba(0, 0, 0, 0.22), 0 6px 6px -3px rgba(0, 0, 0, 0.22);
|
|
266
|
+
|
|
267
|
+
--el-rail:
|
|
268
|
+
inset 1px 0 0 0 rgba(255, 255, 255, 0.05),
|
|
269
|
+
-1px 0 2px -0.5px rgba(0, 0, 0, 0.22),
|
|
270
|
+
-4px 0 6px -2px rgba(0, 0, 0, 0.22), -10px 0 14px -6px rgba(0, 0, 0, 0.22);
|
|
271
|
+
|
|
272
|
+
--el-popover:
|
|
273
|
+
inset 0 1px 0 0 rgba(255, 255, 255, 0.05),
|
|
274
|
+
inset 0 0 0 1px rgba(255, 255, 255, 0.04), 0 0 0 1px rgba(0, 0, 0, 0.14),
|
|
275
|
+
0 1px 1px -0.5px rgba(0, 0, 0, 0.18),
|
|
276
|
+
0 3px 3px -1.5px rgba(0, 0, 0, 0.18), 0 6px 6px -3px rgba(0, 0, 0, 0.18);
|
|
277
|
+
|
|
278
|
+
--el-sticky:
|
|
279
|
+
inset 0 1px 0 0 rgba(255, 255, 255, 0.08),
|
|
280
|
+
inset 0 0 0 1px rgba(255, 255, 255, 0.04), 0 0 0 1px rgba(0, 0, 0, 0.16),
|
|
281
|
+
0 1px 1px -0.5px rgba(0, 0, 0, 0.18),
|
|
282
|
+
0 3px 3px -1.5px rgba(0, 0, 0, 0.18), 0 6px 6px -3px rgba(0, 0, 0, 0.18),
|
|
283
|
+
0 12px 12px -6px rgba(0, 0, 0, 0.18);
|
|
284
|
+
|
|
285
|
+
--el-modal:
|
|
286
|
+
inset 0 1px 0 0 rgba(255, 255, 255, 0.08),
|
|
287
|
+
inset 0 0 0 1px rgba(255, 255, 255, 0.06), 0 0 0 1px rgba(0, 0, 0, 0.18),
|
|
288
|
+
0 1px 1px -0.5px rgba(0, 0, 0, 0.18),
|
|
289
|
+
0 3px 3px -1.5px rgba(0, 0, 0, 0.18), 0 6px 6px -3px rgba(0, 0, 0, 0.18),
|
|
290
|
+
0 12px 12px -6px rgba(0, 0, 0, 0.18),
|
|
291
|
+
0 24px 24px -12px rgba(0, 0, 0, 0.18);
|
|
292
|
+
|
|
293
|
+
--el-overlay:
|
|
294
|
+
inset 0 1px 0 0 rgba(255, 255, 255, 0.11),
|
|
295
|
+
inset 0 0 0 1px rgba(255, 255, 255, 0.06), 0 0 0 1px rgba(0, 0, 0, 0.2),
|
|
296
|
+
0 1px 1px -0.5px rgba(0, 0, 0, 0.18),
|
|
297
|
+
0 3px 3px -1.5px rgba(0, 0, 0, 0.18), 0 6px 6px -3px rgba(0, 0, 0, 0.18),
|
|
298
|
+
0 12px 12px -6px rgba(0, 0, 0, 0.18),
|
|
299
|
+
0 24px 24px -12px rgba(0, 0, 0, 0.18),
|
|
300
|
+
0 48px 48px -24px rgba(0, 0, 0, 0.18);
|
|
301
|
+
}
|
|
302
|
+
}
|
|
303
|
+
|
|
304
|
+
/* ── State 3: explicit dark. Same declarations as the media block above —
|
|
305
|
+
kept in lockstep by scripts/build-css.mjs. ── */
|
|
306
|
+
.dark,
|
|
307
|
+
[data-theme='dark'] {
|
|
308
|
+
--background: oklch(0.155 0.002 30);
|
|
309
|
+
--foreground: oklch(0.94 0.004 30);
|
|
310
|
+
--card: oklch(0.21 0.003 30);
|
|
311
|
+
--card-foreground: oklch(0.94 0.004 30);
|
|
312
|
+
--popover: oklch(0.21 0.003 30);
|
|
313
|
+
--popover-foreground: oklch(0.94 0.004 30);
|
|
314
|
+
|
|
315
|
+
--primary: oklch(0.72 0.17 30);
|
|
316
|
+
--primary-foreground: oklch(0.14 0.01 30);
|
|
317
|
+
--primary-strong: oklch(0.72 0.17 30);
|
|
318
|
+
|
|
319
|
+
--secondary: oklch(0.22 0.003 30);
|
|
320
|
+
--secondary-foreground: oklch(0.94 0.004 30);
|
|
321
|
+
|
|
322
|
+
--muted: oklch(0.22 0.003 30);
|
|
323
|
+
--muted-foreground: oklch(0.62 0.006 30);
|
|
324
|
+
|
|
325
|
+
--accent: oklch(0.25 0.004 30);
|
|
326
|
+
--accent-foreground: oklch(0.94 0.004 30);
|
|
327
|
+
|
|
328
|
+
--destructive: oklch(0.5 0.2 25);
|
|
329
|
+
--destructive-foreground: oklch(0.94 0.005 30);
|
|
330
|
+
--destructive-strong: oklch(0.66 0.2 18);
|
|
331
|
+
|
|
332
|
+
--warning: oklch(0.78 0.14 75);
|
|
333
|
+
--warning-foreground: oklch(0.2 0.03 70);
|
|
334
|
+
|
|
335
|
+
--success: oklch(0.72 0.15 150);
|
|
336
|
+
--success-foreground: oklch(0.18 0.03 150);
|
|
337
|
+
--success-strong: oklch(0.72 0.15 150);
|
|
338
|
+
|
|
339
|
+
--info: oklch(0.7 0.13 245);
|
|
340
|
+
--info-foreground: oklch(0.18 0.03 245);
|
|
341
|
+
|
|
342
|
+
--border: oklch(0.25 0.003 30);
|
|
343
|
+
--input: oklch(0.3 0.003 30);
|
|
344
|
+
--ring: oklch(0.72 0.17 30);
|
|
345
|
+
|
|
346
|
+
--chart-1: oklch(0.72 0.17 30);
|
|
347
|
+
--chart-2: oklch(0.7 0.1 205);
|
|
348
|
+
--chart-3: oklch(0.75 0.17 148);
|
|
349
|
+
--chart-4: oklch(0.65 0.18 260);
|
|
350
|
+
--chart-5: oklch(0.75 0.12 80);
|
|
351
|
+
|
|
352
|
+
--sidebar-background: oklch(0.155 0.002 30);
|
|
353
|
+
--sidebar-foreground: oklch(0.94 0.004 30);
|
|
354
|
+
--sidebar-primary: oklch(0.72 0.17 30);
|
|
355
|
+
--sidebar-primary-foreground: oklch(0.14 0.01 30);
|
|
356
|
+
--sidebar-accent: oklch(0.2 0.003 30);
|
|
357
|
+
--sidebar-accent-foreground: oklch(0.94 0.004 30);
|
|
358
|
+
--sidebar-border: oklch(0.27 0.004 30);
|
|
359
|
+
--sidebar-ring: oklch(0.72 0.17 30);
|
|
360
|
+
|
|
361
|
+
--assistant: var(--sidebar-primary);
|
|
362
|
+
--assistant-foreground: var(--sidebar-primary-foreground);
|
|
363
|
+
|
|
364
|
+
--el-flat: none;
|
|
365
|
+
|
|
366
|
+
--el-sunken: inset 0 0 0 1px rgba(255, 255, 255, 0.02);
|
|
367
|
+
|
|
368
|
+
--el-inset:
|
|
369
|
+
inset 0 1px 0 0 rgba(255, 255, 255, 0.02),
|
|
370
|
+
inset 0 0 0 1px rgba(255, 255, 255, 0.02),
|
|
371
|
+
0 1px 1px -0.5px rgba(0, 0, 0, 0.18);
|
|
372
|
+
|
|
373
|
+
--el-card:
|
|
374
|
+
inset 0 1px 0 0 rgba(255, 255, 255, 0.05),
|
|
375
|
+
inset 0 0 0 1px rgba(255, 255, 255, 0.02), 0 0 0 1px rgba(0, 0, 0, 0.12),
|
|
376
|
+
0 1px 1px -0.5px rgba(0, 0, 0, 0.18), 0 3px 3px -1.5px rgba(0, 0, 0, 0.18);
|
|
377
|
+
|
|
378
|
+
--el-widget:
|
|
379
|
+
inset 0 1px 0 0 rgba(255, 255, 255, 0.07),
|
|
380
|
+
inset 0 0 0 1px rgba(255, 255, 255, 0.03), 0 0 0 1px rgba(0, 0, 0, 0.14),
|
|
381
|
+
0 1px 1px -0.5px rgba(0, 0, 0, 0.22), 0 3px 3px -1.5px rgba(0, 0, 0, 0.22),
|
|
382
|
+
0 6px 6px -3px rgba(0, 0, 0, 0.22);
|
|
383
|
+
|
|
384
|
+
--el-rail:
|
|
385
|
+
inset 1px 0 0 0 rgba(255, 255, 255, 0.05),
|
|
386
|
+
-1px 0 2px -0.5px rgba(0, 0, 0, 0.22), -4px 0 6px -2px rgba(0, 0, 0, 0.22),
|
|
387
|
+
-10px 0 14px -6px rgba(0, 0, 0, 0.22);
|
|
388
|
+
|
|
389
|
+
--el-popover:
|
|
390
|
+
inset 0 1px 0 0 rgba(255, 255, 255, 0.05),
|
|
391
|
+
inset 0 0 0 1px rgba(255, 255, 255, 0.04), 0 0 0 1px rgba(0, 0, 0, 0.14),
|
|
392
|
+
0 1px 1px -0.5px rgba(0, 0, 0, 0.18), 0 3px 3px -1.5px rgba(0, 0, 0, 0.18),
|
|
393
|
+
0 6px 6px -3px rgba(0, 0, 0, 0.18);
|
|
394
|
+
|
|
395
|
+
--el-sticky:
|
|
396
|
+
inset 0 1px 0 0 rgba(255, 255, 255, 0.08),
|
|
397
|
+
inset 0 0 0 1px rgba(255, 255, 255, 0.04), 0 0 0 1px rgba(0, 0, 0, 0.16),
|
|
398
|
+
0 1px 1px -0.5px rgba(0, 0, 0, 0.18), 0 3px 3px -1.5px rgba(0, 0, 0, 0.18),
|
|
399
|
+
0 6px 6px -3px rgba(0, 0, 0, 0.18), 0 12px 12px -6px rgba(0, 0, 0, 0.18);
|
|
400
|
+
|
|
401
|
+
--el-modal:
|
|
402
|
+
inset 0 1px 0 0 rgba(255, 255, 255, 0.08),
|
|
403
|
+
inset 0 0 0 1px rgba(255, 255, 255, 0.06), 0 0 0 1px rgba(0, 0, 0, 0.18),
|
|
404
|
+
0 1px 1px -0.5px rgba(0, 0, 0, 0.18), 0 3px 3px -1.5px rgba(0, 0, 0, 0.18),
|
|
405
|
+
0 6px 6px -3px rgba(0, 0, 0, 0.18), 0 12px 12px -6px rgba(0, 0, 0, 0.18),
|
|
406
|
+
0 24px 24px -12px rgba(0, 0, 0, 0.18);
|
|
407
|
+
|
|
408
|
+
--el-overlay:
|
|
409
|
+
inset 0 1px 0 0 rgba(255, 255, 255, 0.11),
|
|
410
|
+
inset 0 0 0 1px rgba(255, 255, 255, 0.06), 0 0 0 1px rgba(0, 0, 0, 0.2),
|
|
411
|
+
0 1px 1px -0.5px rgba(0, 0, 0, 0.18), 0 3px 3px -1.5px rgba(0, 0, 0, 0.18),
|
|
412
|
+
0 6px 6px -3px rgba(0, 0, 0, 0.18), 0 12px 12px -6px rgba(0, 0, 0, 0.18),
|
|
413
|
+
0 24px 24px -12px rgba(0, 0, 0, 0.18), 0 48px 48px -24px rgba(0, 0, 0, 0.18);
|
|
414
|
+
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ekanos/ui",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.2",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "Fusion-styled UI primitives for building Ekanos integrations outside the monorepo. A curated, published slice of the internal @kit/ui library.",
|
|
6
6
|
"license": "MIT",
|
|
@@ -14,6 +14,10 @@
|
|
|
14
14
|
"LICENSE"
|
|
15
15
|
],
|
|
16
16
|
"exports": {
|
|
17
|
+
"./styles.css": "./dist/styles.css",
|
|
18
|
+
"./theme.css": "./dist/theme.css",
|
|
19
|
+
"./tokens.css": "./dist/tokens.css",
|
|
20
|
+
"./base.css": "./dist/base.css",
|
|
17
21
|
"./alert": {
|
|
18
22
|
"types": "./dist/alert.d.ts",
|
|
19
23
|
"default": "./dist/alert.js"
|
|
@@ -54,6 +58,14 @@
|
|
|
54
58
|
"types": "./dist/input.d.ts",
|
|
55
59
|
"default": "./dist/input.js"
|
|
56
60
|
},
|
|
61
|
+
"./textarea": {
|
|
62
|
+
"types": "./dist/textarea.d.ts",
|
|
63
|
+
"default": "./dist/textarea.js"
|
|
64
|
+
},
|
|
65
|
+
"./switch": {
|
|
66
|
+
"types": "./dist/switch.d.ts",
|
|
67
|
+
"default": "./dist/switch.js"
|
|
68
|
+
},
|
|
57
69
|
"./dropdown-menu": {
|
|
58
70
|
"types": "./dist/dropdown-menu.d.ts",
|
|
59
71
|
"default": "./dist/dropdown-menu.js"
|
|
@@ -119,13 +131,14 @@
|
|
|
119
131
|
"react": "19.2.8",
|
|
120
132
|
"react-dom": "19.2.8",
|
|
121
133
|
"react-hook-form": "^7.68.0",
|
|
134
|
+
"tailwindcss": "4.3.3",
|
|
122
135
|
"tsup": "8.5.1",
|
|
123
136
|
"typescript": "^5.9.3",
|
|
124
137
|
"vitest": "4.1.10",
|
|
125
|
-
"@kit/
|
|
138
|
+
"@kit/eslint-config": "0.2.0",
|
|
126
139
|
"@kit/tsconfig": "0.1.0",
|
|
127
|
-
"@kit/
|
|
128
|
-
"@kit/
|
|
140
|
+
"@kit/prettier-config": "0.1.0",
|
|
141
|
+
"@kit/ui": "0.1.0"
|
|
129
142
|
},
|
|
130
143
|
"prettier": "@kit/prettier-config",
|
|
131
144
|
"typesVersions": {
|
|
@@ -136,7 +149,7 @@
|
|
|
136
149
|
}
|
|
137
150
|
},
|
|
138
151
|
"scripts": {
|
|
139
|
-
"build": "tsup",
|
|
152
|
+
"build": "tsup && node scripts/build-css.mjs",
|
|
140
153
|
"clean": "git clean -xdf .turbo node_modules dist",
|
|
141
154
|
"format": "prettier --check \"**/*.{ts,tsx,mjs}\"",
|
|
142
155
|
"lint": "eslint .",
|