@zeturn/watercolor-core 1.2.6 → 1.2.7
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/core.es.js
CHANGED
|
@@ -297,6 +297,49 @@ async function x(e, t = {}) {
|
|
|
297
297
|
};
|
|
298
298
|
}
|
|
299
299
|
}
|
|
300
|
+
async function S(e, t = {}) {
|
|
301
|
+
let n = t.isCurrent ?? (() => !0);
|
|
302
|
+
if (typeof e != "string" || !e.trim() || typeof fetch > "u") return {
|
|
303
|
+
ok: !1,
|
|
304
|
+
url: e,
|
|
305
|
+
errors: [{
|
|
306
|
+
path: "$",
|
|
307
|
+
message: "Theme config URL or fetch is unavailable."
|
|
308
|
+
}],
|
|
309
|
+
warnings: []
|
|
310
|
+
};
|
|
311
|
+
try {
|
|
312
|
+
let r = await fetch(e, {
|
|
313
|
+
cache: "no-store",
|
|
314
|
+
signal: t.signal
|
|
315
|
+
});
|
|
316
|
+
if (!n()) return null;
|
|
317
|
+
if (!r.ok) return {
|
|
318
|
+
ok: !1,
|
|
319
|
+
url: e,
|
|
320
|
+
errors: [{
|
|
321
|
+
path: "$",
|
|
322
|
+
message: `Theme request failed with ${r.status}.`
|
|
323
|
+
}],
|
|
324
|
+
warnings: []
|
|
325
|
+
};
|
|
326
|
+
let i = await r.json();
|
|
327
|
+
return n() ? {
|
|
328
|
+
...b(i, { target: t.target }),
|
|
329
|
+
url: e
|
|
330
|
+
} : null;
|
|
331
|
+
} catch (t) {
|
|
332
|
+
return n() ? {
|
|
333
|
+
ok: !1,
|
|
334
|
+
url: e,
|
|
335
|
+
errors: [{
|
|
336
|
+
path: "$",
|
|
337
|
+
message: t instanceof Error ? t.message : "Theme request failed."
|
|
338
|
+
}],
|
|
339
|
+
warnings: []
|
|
340
|
+
} : null;
|
|
341
|
+
}
|
|
342
|
+
}
|
|
300
343
|
function te(e) {
|
|
301
344
|
let t = g(e);
|
|
302
345
|
if (!t.ok) return t;
|
|
@@ -310,29 +353,29 @@ function te(e) {
|
|
|
310
353
|
}
|
|
311
354
|
//#endregion
|
|
312
355
|
//#region src/theme/controller.ts
|
|
313
|
-
var
|
|
356
|
+
var C = [
|
|
314
357
|
"light",
|
|
315
358
|
"dark",
|
|
316
359
|
"system"
|
|
317
|
-
],
|
|
318
|
-
function
|
|
360
|
+
], w = "wc-mode", T = "wc-scheme", E = (e) => typeof e == "string" && C.includes(e), D = (e, t = !1) => e === "system" ? t ? "dark" : "light" : e;
|
|
361
|
+
function O(e, t, n) {
|
|
319
362
|
e.dataset.theme = t, e.dataset.resolvedTheme = n, e.classList.toggle("dark", n === "dark"), e.classList.toggle("light", n === "light"), e.style.colorScheme = n;
|
|
320
363
|
}
|
|
321
|
-
function
|
|
322
|
-
let t =
|
|
364
|
+
function ne(e = {}) {
|
|
365
|
+
let t = E(e.initialMode) ? e.initialMode : "system", n = e.initialResolvedMode === "dark", r = !1, i = null, a = null, o = null, s = null, c = typeof e.storageKey == "string" && e.storageKey.trim() ? e.storageKey : w, l = /* @__PURE__ */ new Set(), u = () => D(t, n), d = () => ({
|
|
323
366
|
mode: t,
|
|
324
367
|
resolvedMode: u(),
|
|
325
368
|
dark: u() === "dark"
|
|
326
369
|
}), f = () => l.forEach((e) => e(d())), p = (e = !0) => {
|
|
327
370
|
let n = d();
|
|
328
|
-
if (i &&
|
|
371
|
+
if (i && O(i, n.mode, n.resolvedMode), e) try {
|
|
329
372
|
o?.setItem(c, t);
|
|
330
373
|
} catch {}
|
|
331
374
|
f();
|
|
332
375
|
}, m = (e) => {
|
|
333
376
|
n = e.matches, t === "system" && p(!1);
|
|
334
377
|
}, h = (e) => {
|
|
335
|
-
e.key !== c || !
|
|
378
|
+
e.key !== c || !E(e.newValue) || e.newValue === t || (t = e.newValue, p(!1));
|
|
336
379
|
};
|
|
337
380
|
return {
|
|
338
381
|
get mode() {
|
|
@@ -361,14 +404,14 @@ function O(e = {}) {
|
|
|
361
404
|
}
|
|
362
405
|
else o = e.storage;
|
|
363
406
|
if (s = typeof globalThis.matchMedia == "function" ? globalThis.matchMedia("(prefers-color-scheme: dark)") : null, n = s?.matches ?? n, e.readStorage !== !1) try {
|
|
364
|
-
let n = o?.getItem(c), r = e.storageKey === void 0 ? o?.getItem(
|
|
365
|
-
|
|
407
|
+
let n = o?.getItem(c), r = e.storageKey === void 0 ? o?.getItem(T) : null;
|
|
408
|
+
E(n) ? t = n : (r === "light" || r === "dark") && (t = r, o?.setItem(c, r));
|
|
366
409
|
} catch {}
|
|
367
410
|
s?.addEventListener?.("change", m), s?.addEventListener || s?.addListener?.(m), window.addEventListener("storage", h), p(!1);
|
|
368
411
|
}
|
|
369
412
|
},
|
|
370
413
|
setMode(e) {
|
|
371
|
-
!
|
|
414
|
+
!E(e) || e === t || (t = e, p(r));
|
|
372
415
|
},
|
|
373
416
|
toggleMode() {
|
|
374
417
|
t = u() === "dark" ? "light" : "dark", p(r);
|
|
@@ -383,13 +426,13 @@ function O(e = {}) {
|
|
|
383
426
|
}
|
|
384
427
|
//#endregion
|
|
385
428
|
//#region src/theme/ssr.ts
|
|
386
|
-
function
|
|
387
|
-
let t =
|
|
429
|
+
function re(e = {}) {
|
|
430
|
+
let t = E(e.defaultMode) ? e.defaultMode : "system", n = typeof e.storageKey == "string" && e.storageKey.trim() ? e.storageKey : w;
|
|
388
431
|
return `(()=>{const d=document.documentElement;let m=${JSON.stringify(t)};try{const s=localStorage.getItem(${JSON.stringify(n).replace(/</g, "\\u003c")});if(s==='light'||s==='dark'||s==='system')m=s}catch{}const r=m==='system'&&matchMedia('(prefers-color-scheme: dark)').matches?'dark':m==='system'?'light':m;d.dataset.theme=m;d.dataset.resolvedTheme=r;d.classList.toggle('dark',r==='dark');d.classList.toggle('light',r==='light');d.style.colorScheme=r})()`;
|
|
389
432
|
}
|
|
390
433
|
//#endregion
|
|
391
434
|
//#region src/composition/index.ts
|
|
392
|
-
var
|
|
435
|
+
var k = [
|
|
393
436
|
"none",
|
|
394
437
|
"2xs",
|
|
395
438
|
"xs",
|
|
@@ -399,40 +442,40 @@ var re = [
|
|
|
399
442
|
"xl",
|
|
400
443
|
"2xl",
|
|
401
444
|
"3xl"
|
|
402
|
-
],
|
|
445
|
+
], A = [
|
|
403
446
|
"stretch",
|
|
404
447
|
"start",
|
|
405
448
|
"center",
|
|
406
449
|
"end"
|
|
407
|
-
],
|
|
450
|
+
], j = [
|
|
408
451
|
"sm",
|
|
409
452
|
"md",
|
|
410
453
|
"lg",
|
|
411
454
|
"xl",
|
|
412
455
|
"full"
|
|
413
|
-
],
|
|
456
|
+
], M = [
|
|
414
457
|
"none",
|
|
415
458
|
"sm",
|
|
416
459
|
"md",
|
|
417
460
|
"lg"
|
|
418
|
-
],
|
|
461
|
+
], N = [
|
|
419
462
|
"start",
|
|
420
463
|
"center",
|
|
421
464
|
"end",
|
|
422
465
|
"between",
|
|
423
466
|
"around"
|
|
424
|
-
],
|
|
467
|
+
], ie = [
|
|
425
468
|
"equal",
|
|
426
469
|
"sidebar",
|
|
427
470
|
"sidebar-end",
|
|
428
471
|
"wide-start",
|
|
429
472
|
"wide-end"
|
|
430
|
-
],
|
|
473
|
+
], ae = [
|
|
431
474
|
"none",
|
|
432
475
|
"sm",
|
|
433
476
|
"md",
|
|
434
477
|
"lg"
|
|
435
|
-
], P = 1e3,
|
|
478
|
+
], P = 1e3, oe = 10, se = 1, F = [], I = /* @__PURE__ */ new WeakMap(), ce = () => typeof document < "u", L = (e) => {
|
|
436
479
|
let t = [
|
|
437
480
|
"a[href]",
|
|
438
481
|
"area[href]",
|
|
@@ -505,8 +548,8 @@ var re = [
|
|
|
505
548
|
}, Y = (e) => {
|
|
506
549
|
let t = U(q(e));
|
|
507
550
|
!t || t.closeOnPointerDownOutside === !1 || H(t, e.target) || t.onPointerDownOutside?.(e);
|
|
508
|
-
},
|
|
509
|
-
if (!
|
|
551
|
+
}, le = (e) => {
|
|
552
|
+
if (!ce()) return {
|
|
510
553
|
id: 0,
|
|
511
554
|
zIndex: e.zIndex ?? P,
|
|
512
555
|
update: () => {},
|
|
@@ -514,9 +557,9 @@ var re = [
|
|
|
514
557
|
};
|
|
515
558
|
let t = e.element.ownerDocument;
|
|
516
559
|
G(t);
|
|
517
|
-
let n = e.zIndex ?? P + F.length *
|
|
560
|
+
let n = e.zIndex ?? P + F.length * oe, r = {
|
|
518
561
|
...e,
|
|
519
|
-
id:
|
|
562
|
+
id: se++,
|
|
520
563
|
zIndex: n,
|
|
521
564
|
ownerDocument: t,
|
|
522
565
|
previousActiveElement: t.activeElement
|
|
@@ -538,7 +581,7 @@ var re = [
|
|
|
538
581
|
side: t,
|
|
539
582
|
alignment: n ?? "center"
|
|
540
583
|
};
|
|
541
|
-
}, Z = (e, t) => t === "center" ? e : `${e}-${t}`,
|
|
584
|
+
}, Z = (e, t) => t === "center" ? e : `${e}-${t}`, ue = (e) => {
|
|
542
585
|
let { side: t, alignment: n } = X(e);
|
|
543
586
|
switch (t) {
|
|
544
587
|
case "top": return Z("bottom", n);
|
|
@@ -557,7 +600,7 @@ var re = [
|
|
|
557
600
|
}, $ = (e, t, n = {}) => {
|
|
558
601
|
let r = n.placement ?? "bottom", i = n.offset ?? 8, a = n.boundaryPadding ?? 8, o = e.getBoundingClientRect(), s = t.getBoundingClientRect(), c = e.ownerDocument.defaultView?.innerWidth ?? 0, l = e.ownerDocument.defaultView?.innerHeight ?? 0, u = r;
|
|
559
602
|
if (!Q(o, s, r, i, a, c, l)) {
|
|
560
|
-
let e =
|
|
603
|
+
let e = ue(r);
|
|
561
604
|
Q(o, s, e, i, a, c, l) && (u = e);
|
|
562
605
|
}
|
|
563
606
|
let d = 0, f = 0, { side: p, alignment: m } = X(u);
|
|
@@ -581,9 +624,9 @@ var re = [
|
|
|
581
624
|
left: Math.min(Math.max(f, a), h),
|
|
582
625
|
top: Math.min(Math.max(d, a), g)
|
|
583
626
|
};
|
|
584
|
-
},
|
|
627
|
+
}, de = (e, t, n = {}) => {
|
|
585
628
|
let r = $(e, t, n);
|
|
586
629
|
return t.style.position = "fixed", t.style.top = `${r.top}px`, t.style.left = `${r.left}px`, t.dataset.placement = r.placement, r;
|
|
587
630
|
};
|
|
588
631
|
//#endregion
|
|
589
|
-
export {
|
|
632
|
+
export { A as COMPOSITION_ALIGNS, k as COMPOSITION_GAPS, N as INLINE_JUSTIFY, T as LEGACY_THEME_STORAGE_KEY, M as PAGE_GUTTERS, j as PAGE_SIZES, ae as SPLIT_COLLAPSE, ie as SPLIT_RATIOS, e as THEME_CONFIG_VERSION, C as THEME_MODES, w as THEME_STORAGE_KEY, de as applyFloatingPosition, b as applyThemeConfig, O as applyThemeMode, $ as computeFloatingPosition, B as createFocusTrap, le as createOverlayLayer, ne as createThemeController, re as createThemeInitScript, R as focusFirstElement, L as getFocusableElements, E as isThemeMode, S as loadProviderThemeConfig, x as loadThemeConfig, V as lockDocumentScroll, y as resetThemeConfig, D as resolveThemeMode, z as restoreFocus, te as serializeThemeConfig, g as validateThemeConfig };
|
|
@@ -64,10 +64,14 @@ export interface ThemeApplyOptions {
|
|
|
64
64
|
export interface ThemeLoadOptions extends ThemeApplyOptions {
|
|
65
65
|
signal?: AbortSignal;
|
|
66
66
|
}
|
|
67
|
+
export interface ThemeProviderLoadOptions extends ThemeLoadOptions {
|
|
68
|
+
isCurrent?: () => boolean;
|
|
69
|
+
}
|
|
67
70
|
export declare function validateThemeConfig(input: unknown): ThemeValidationResult;
|
|
68
71
|
export declare function resetThemeConfig(target?: HTMLElement | null): void;
|
|
69
72
|
export declare function applyThemeConfig(input: unknown, options?: ThemeApplyOptions): ThemeApplyResult;
|
|
70
73
|
export declare function loadThemeConfig(url: string, options?: ThemeLoadOptions): Promise<ThemeLoadResult>;
|
|
74
|
+
export declare function loadProviderThemeConfig(url: string, options?: ThemeProviderLoadOptions): Promise<ThemeLoadResult | null>;
|
|
71
75
|
export declare function serializeThemeConfig(input: unknown): ThemeApplyResult & {
|
|
72
76
|
css?: string;
|
|
73
77
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../src/theme/config.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../src/theme/config.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
/** Component state contract.
|
|
2
|
+
* These tokens are intentionally semantic, not component-specific. They define
|
|
3
|
+
* how quiet Watercolor components reveal affordance across React and Vue.
|
|
4
|
+
*/
|
|
5
|
+
:root {
|
|
6
|
+
--wc-state-default-bg: transparent;
|
|
7
|
+
--wc-state-default-fg: var(--wc-text-primary);
|
|
8
|
+
--wc-state-muted-fg: var(--wc-text-secondary);
|
|
9
|
+
--wc-state-hover-bg: var(--wc-action-hover);
|
|
10
|
+
--wc-state-active-bg: var(--wc-action-active);
|
|
11
|
+
--wc-state-selected-bg: var(--wc-action-selected);
|
|
12
|
+
--wc-state-selected-hover-bg: var(--wc-action-selected-hover);
|
|
13
|
+
--wc-state-disabled-bg: var(--wc-action-disabled);
|
|
14
|
+
--wc-state-disabled-fg: var(--wc-text-disabled);
|
|
15
|
+
--wc-state-error-bg: var(--wc-danger-subtle);
|
|
16
|
+
--wc-state-error-fg: var(--wc-danger);
|
|
17
|
+
--wc-state-error-ring: var(--wc-danger);
|
|
18
|
+
--wc-state-open-bg: var(--wc-surface-overlay);
|
|
19
|
+
--wc-state-open-shadow: var(--wc-shadow-lg);
|
|
20
|
+
--wc-state-empty-fg: var(--wc-text-tertiary);
|
|
21
|
+
--wc-state-focus-ring: var(--wc-focus-ring);
|
|
22
|
+
--wc-state-focus-width: 2px;
|
|
23
|
+
--wc-state-focus-offset: 2px;
|
|
24
|
+
--wc-state-min-touch-target: 44px;
|
|
25
|
+
--wc-state-control-sm: 32px;
|
|
26
|
+
--wc-state-control-md: 40px;
|
|
27
|
+
--wc-state-control-lg: 48px;
|
|
28
|
+
--wc-state-row-compact: 36px;
|
|
29
|
+
--wc-state-row-default: 44px;
|
|
30
|
+
--wc-state-row-comfortable: 52px;
|
|
31
|
+
--wc-state-field-radius: var(--wc-radius-xl);
|
|
32
|
+
--wc-state-item-radius: var(--wc-radius-lg);
|
|
33
|
+
--wc-state-overlay-radius: var(--wc-radius-xl);
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
.wc-state-layer {
|
|
37
|
+
background: var(--wc-state-default-bg);
|
|
38
|
+
color: var(--wc-state-default-fg);
|
|
39
|
+
transition:
|
|
40
|
+
background-color var(--wc-motion-fast) var(--wc-ease-standard),
|
|
41
|
+
color var(--wc-motion-fast) var(--wc-ease-standard),
|
|
42
|
+
opacity var(--wc-motion-fast) var(--wc-ease-standard);
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
.wc-state-layer:hover,
|
|
46
|
+
.wc-state-layer[data-state='hover'] {
|
|
47
|
+
background: var(--wc-state-hover-bg);
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
.wc-state-layer:active,
|
|
51
|
+
.wc-state-layer[data-state='active'] {
|
|
52
|
+
background: var(--wc-state-active-bg);
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
.wc-state-layer:focus-visible,
|
|
56
|
+
.wc-state-layer[data-state='focus'] {
|
|
57
|
+
outline: var(--wc-state-focus-width) solid var(--wc-state-focus-ring);
|
|
58
|
+
outline-offset: var(--wc-state-focus-offset);
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
.wc-state-layer[aria-selected='true'],
|
|
62
|
+
.wc-state-layer[data-selected='true'],
|
|
63
|
+
.wc-state-layer[data-state='selected'] {
|
|
64
|
+
background: var(--wc-state-selected-bg);
|
|
65
|
+
color: var(--wc-text-primary);
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
.wc-state-layer[aria-selected='true']:hover,
|
|
69
|
+
.wc-state-layer[data-selected='true']:hover {
|
|
70
|
+
background: var(--wc-state-selected-hover-bg);
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
.wc-state-layer:disabled,
|
|
74
|
+
.wc-state-layer[aria-disabled='true'],
|
|
75
|
+
.wc-state-layer[data-disabled='true'],
|
|
76
|
+
.wc-state-layer[data-state='disabled'] {
|
|
77
|
+
background: transparent;
|
|
78
|
+
color: var(--wc-state-disabled-fg);
|
|
79
|
+
cursor: not-allowed;
|
|
80
|
+
opacity: 1;
|
|
81
|
+
pointer-events: none;
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
.wc-state-layer[aria-busy='true'],
|
|
85
|
+
.wc-state-layer[data-loading='true'],
|
|
86
|
+
.wc-state-layer[data-state='loading'] {
|
|
87
|
+
cursor: wait;
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
.wc-state-layer[aria-invalid='true'],
|
|
91
|
+
.wc-state-layer[data-invalid='true'],
|
|
92
|
+
.wc-state-layer[data-state='error'] {
|
|
93
|
+
color: var(--wc-state-error-fg);
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
.wc-state-field {
|
|
97
|
+
min-height: var(--wc-state-control-md);
|
|
98
|
+
border: 0;
|
|
99
|
+
border-radius: var(--wc-state-field-radius);
|
|
100
|
+
background: var(--wc-surface-subtle);
|
|
101
|
+
color: var(--wc-text-primary);
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
.wc-state-field:hover:not(:disabled):not([aria-disabled='true']) {
|
|
105
|
+
background: var(--wc-state-hover-bg);
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
.wc-state-field:focus-visible,
|
|
109
|
+
.wc-state-field[data-state='focus'] {
|
|
110
|
+
outline: var(--wc-state-focus-width) solid var(--wc-state-focus-ring);
|
|
111
|
+
outline-offset: 0;
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
.wc-state-field[aria-invalid='true'],
|
|
115
|
+
.wc-state-field[data-invalid='true'],
|
|
116
|
+
.wc-state-field[data-state='error'] {
|
|
117
|
+
outline: var(--wc-state-focus-width) solid var(--wc-state-error-ring);
|
|
118
|
+
outline-offset: 0;
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
.wc-state-field:disabled,
|
|
122
|
+
.wc-state-field[aria-disabled='true'],
|
|
123
|
+
.wc-state-field[data-disabled='true'] {
|
|
124
|
+
background: var(--wc-state-disabled-bg);
|
|
125
|
+
color: var(--wc-state-disabled-fg);
|
|
126
|
+
cursor: not-allowed;
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
.wc-state-overlay {
|
|
130
|
+
border: 0;
|
|
131
|
+
border-radius: var(--wc-state-overlay-radius);
|
|
132
|
+
background: var(--wc-state-open-bg);
|
|
133
|
+
box-shadow: var(--wc-state-open-shadow);
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
.wc-state-empty {
|
|
137
|
+
color: var(--wc-state-empty-fg);
|
|
138
|
+
text-align: center;
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
@media (pointer: coarse) {
|
|
142
|
+
:root {
|
|
143
|
+
--wc-state-control-sm: var(--wc-state-min-touch-target);
|
|
144
|
+
--wc-state-row-compact: var(--wc-state-min-touch-target);
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
@media (prefers-reduced-motion: reduce) {
|
|
149
|
+
.wc-state-layer {
|
|
150
|
+
transition: none;
|
|
151
|
+
}
|
|
152
|
+
}
|