@vertz/ui 0.2.38 → 0.2.42
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/shared/{chunk-xz8jq6w6.js → chunk-29x7mbne.js} +1 -1
- package/dist/shared/{chunk-pmyavtdp.js → chunk-2k26a794.js} +35 -2
- package/dist/shared/{chunk-9cbb9fbs.js → chunk-7479q3cz.js} +1 -1
- package/dist/shared/{chunk-ka8jeq0f.js → chunk-8ft6568m.js} +3 -3
- package/dist/shared/{chunk-14vwqf7c.js → chunk-96hnx5jk.js} +2 -2
- package/dist/shared/{chunk-5eszqmat.js → chunk-abv8ax3j.js} +32 -31
- package/dist/shared/{chunk-4an2s6d7.js → chunk-dxfd1ptg.js} +1 -1
- package/dist/shared/{chunk-khtsbadc.js → chunk-f0f80gxe.js} +2 -2
- package/dist/shared/{chunk-veqs3jgz.js → chunk-hgtmh07c.js} +45 -4
- package/dist/shared/{chunk-dvzkge4z.js → chunk-kt7127xc.js} +1 -1
- package/dist/shared/{chunk-ksetw5t2.js → chunk-pbw64893.js} +1 -1
- package/dist/shared/{chunk-mwc4v48d.js → chunk-w6a0t2xs.js} +10 -9
- package/dist/shared/{chunk-g5vzhext.js → chunk-xs4hak0m.js} +1 -1
- package/dist/src/auth/public.d.ts +20 -1
- package/dist/src/auth/public.js +4 -4
- package/dist/src/components/index.js +1 -1
- package/dist/src/css/public.d.ts +34 -1
- package/dist/src/css/public.js +5 -3
- package/dist/src/form/public.js +2 -2
- package/dist/src/index.d.ts +17 -2
- package/dist/src/index.js +13 -13
- package/dist/src/internals.d.ts +32 -5
- package/dist/src/internals.js +63 -18
- package/dist/src/query/public.js +4 -4
- package/dist/src/router/public.d.ts +4 -2
- package/dist/src/router/public.js +7 -7
- package/dist/src/test/index.js +3 -3
- package/package.json +3 -3
|
@@ -54,6 +54,37 @@ function wrapSignalProps(value) {
|
|
|
54
54
|
}
|
|
55
55
|
return wrapped;
|
|
56
56
|
}
|
|
57
|
+
function wrapSignalPropsLazy(propsObj, initial) {
|
|
58
|
+
if (initial == null || typeof initial !== "object" || Array.isArray(initial)) {
|
|
59
|
+
return wrapSignalProps(initial);
|
|
60
|
+
}
|
|
61
|
+
const source = initial;
|
|
62
|
+
const keys = Object.keys(source);
|
|
63
|
+
const wrapped = {};
|
|
64
|
+
for (const key of keys) {
|
|
65
|
+
const propValue = source[key];
|
|
66
|
+
if (isSignalLike(propValue)) {
|
|
67
|
+
Object.defineProperty(wrapped, key, {
|
|
68
|
+
get() {
|
|
69
|
+
return propValue.value;
|
|
70
|
+
},
|
|
71
|
+
enumerable: true,
|
|
72
|
+
configurable: true
|
|
73
|
+
});
|
|
74
|
+
} else if (typeof propValue === "function") {
|
|
75
|
+
wrapped[key] = propValue;
|
|
76
|
+
} else {
|
|
77
|
+
Object.defineProperty(wrapped, key, {
|
|
78
|
+
get() {
|
|
79
|
+
return propsObj.value[key];
|
|
80
|
+
},
|
|
81
|
+
enumerable: true,
|
|
82
|
+
configurable: true
|
|
83
|
+
});
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
return wrapped;
|
|
87
|
+
}
|
|
57
88
|
function asKey(ctx) {
|
|
58
89
|
return ctx;
|
|
59
90
|
}
|
|
@@ -87,8 +118,10 @@ function createContext(defaultValue, __stableId) {
|
|
|
87
118
|
return;
|
|
88
119
|
}
|
|
89
120
|
const props = valueOrProps;
|
|
90
|
-
const
|
|
91
|
-
const
|
|
121
|
+
const rawValue = props.value;
|
|
122
|
+
const { children } = props;
|
|
123
|
+
const valueDesc = Object.getOwnPropertyDescriptor(props, "value");
|
|
124
|
+
const value = valueDesc?.get ? wrapSignalPropsLazy(props, rawValue) : wrapSignalProps(rawValue);
|
|
92
125
|
const parentScope = getContextScope();
|
|
93
126
|
const scope = parentScope ? new Map(parentScope) : new Map;
|
|
94
127
|
scope.set(asKey(ctx), value);
|
|
@@ -3,10 +3,10 @@ import {
|
|
|
3
3
|
} from "./chunk-jrtrk5z4.js";
|
|
4
4
|
import {
|
|
5
5
|
registerActiveQuery
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-kt7127xc.js";
|
|
7
7
|
import {
|
|
8
8
|
isBrowser
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-xs4hak0m.js";
|
|
10
10
|
import {
|
|
11
11
|
_tryOnCleanup,
|
|
12
12
|
batch,
|
|
@@ -16,7 +16,7 @@ import {
|
|
|
16
16
|
setReadValueCallback,
|
|
17
17
|
signal,
|
|
18
18
|
untrack
|
|
19
|
-
} from "./chunk-
|
|
19
|
+
} from "./chunk-2k26a794.js";
|
|
20
20
|
|
|
21
21
|
// src/query/cache.ts
|
|
22
22
|
class MemoryCache {
|
|
@@ -3,36 +3,38 @@ import {
|
|
|
3
3
|
beginDeferringMounts,
|
|
4
4
|
discardDeferredMounts,
|
|
5
5
|
flushDeferredMounts
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-pbw64893.js";
|
|
7
7
|
import {
|
|
8
8
|
__append,
|
|
9
9
|
__classList,
|
|
10
10
|
__element,
|
|
11
11
|
__enterChildren,
|
|
12
12
|
__exitChildren,
|
|
13
|
-
|
|
14
|
-
} from "./chunk-
|
|
13
|
+
__insert
|
|
14
|
+
} from "./chunk-29x7mbne.js";
|
|
15
15
|
import {
|
|
16
16
|
RouterContext
|
|
17
|
-
} from "./chunk-
|
|
17
|
+
} from "./chunk-dxfd1ptg.js";
|
|
18
18
|
import {
|
|
19
19
|
isBrowser
|
|
20
|
-
} from "./chunk-
|
|
20
|
+
} from "./chunk-xs4hak0m.js";
|
|
21
21
|
import {
|
|
22
22
|
_tryOnCleanup,
|
|
23
23
|
createContext,
|
|
24
24
|
domEffect,
|
|
25
25
|
endHydration,
|
|
26
|
+
getContextScope,
|
|
26
27
|
getIsHydrating,
|
|
27
28
|
getSSRContext,
|
|
28
29
|
popScope,
|
|
29
30
|
pushScope,
|
|
30
31
|
runCleanups,
|
|
32
|
+
setContextScope,
|
|
31
33
|
signal,
|
|
32
34
|
startHydration,
|
|
33
35
|
untrack,
|
|
34
36
|
useContext
|
|
35
|
-
} from "./chunk-
|
|
37
|
+
} from "./chunk-2k26a794.js";
|
|
36
38
|
|
|
37
39
|
// src/component/error-boundary-context.ts
|
|
38
40
|
var handlerStack = [];
|
|
@@ -130,18 +132,7 @@ function createLink(currentPath, navigate, factoryOptions) {
|
|
|
130
132
|
const el = __element("a", props);
|
|
131
133
|
__on(el, "click", handleClick);
|
|
132
134
|
__enterChildren(el);
|
|
133
|
-
|
|
134
|
-
const result = children();
|
|
135
|
-
if (typeof result === "string") {
|
|
136
|
-
__append(el, __staticText(result));
|
|
137
|
-
} else {
|
|
138
|
-
__append(el, result);
|
|
139
|
-
}
|
|
140
|
-
} else if (typeof children === "string") {
|
|
141
|
-
__append(el, __staticText(children));
|
|
142
|
-
} else {
|
|
143
|
-
__append(el, children);
|
|
144
|
-
}
|
|
135
|
+
__insert(el, children);
|
|
145
136
|
__exitChildren();
|
|
146
137
|
if (activeClass) {
|
|
147
138
|
__classList(el, {
|
|
@@ -190,18 +181,7 @@ function Link({
|
|
|
190
181
|
const el = __element("a", props);
|
|
191
182
|
__on(el, "click", handleClick);
|
|
192
183
|
__enterChildren(el);
|
|
193
|
-
|
|
194
|
-
const result = children();
|
|
195
|
-
if (typeof result === "string") {
|
|
196
|
-
__append(el, __staticText(result));
|
|
197
|
-
} else {
|
|
198
|
-
__append(el, result);
|
|
199
|
-
}
|
|
200
|
-
} else if (typeof children === "string") {
|
|
201
|
-
__append(el, __staticText(children));
|
|
202
|
-
} else {
|
|
203
|
-
__append(el, children);
|
|
204
|
-
}
|
|
184
|
+
__insert(el, children);
|
|
205
185
|
__exitChildren();
|
|
206
186
|
if (activeClass) {
|
|
207
187
|
__classList(el, {
|
|
@@ -243,6 +223,7 @@ function Outlet() {
|
|
|
243
223
|
const gen = ++renderGen;
|
|
244
224
|
childCleanups = pushScope();
|
|
245
225
|
if (factory) {
|
|
226
|
+
const capturedScope = getContextScope();
|
|
246
227
|
const result = factory();
|
|
247
228
|
if (result instanceof Promise) {
|
|
248
229
|
const router = ctx.router;
|
|
@@ -252,6 +233,7 @@ function Outlet() {
|
|
|
252
233
|
return;
|
|
253
234
|
let node;
|
|
254
235
|
childCleanups = pushScope();
|
|
236
|
+
const prevScope = setContextScope(capturedScope);
|
|
255
237
|
try {
|
|
256
238
|
if (wasHydrating) {
|
|
257
239
|
beginDeferringMounts();
|
|
@@ -287,9 +269,10 @@ function Outlet() {
|
|
|
287
269
|
});
|
|
288
270
|
}
|
|
289
271
|
} finally {
|
|
272
|
+
setContextScope(prevScope);
|
|
290
273
|
popScope();
|
|
291
274
|
}
|
|
292
|
-
});
|
|
275
|
+
}).catch(() => {});
|
|
293
276
|
} else {
|
|
294
277
|
__append(container, result);
|
|
295
278
|
if (getIsHydrating() && !container.contains(result)) {
|
|
@@ -376,6 +359,7 @@ function RouterView({ router, fallback, errorFallback }) {
|
|
|
376
359
|
const lazyFallback = match ? match.route.errorComponent ?? errorFallback : undefined;
|
|
377
360
|
let asyncRoute = false;
|
|
378
361
|
RouterContext.Provider(router, () => {
|
|
362
|
+
const capturedScope = getContextScope();
|
|
379
363
|
const result = rootFactory();
|
|
380
364
|
if (result instanceof Promise) {
|
|
381
365
|
asyncRoute = true;
|
|
@@ -385,6 +369,7 @@ function RouterView({ router, fallback, errorFallback }) {
|
|
|
385
369
|
return;
|
|
386
370
|
let node;
|
|
387
371
|
pageCleanups = pushScope();
|
|
372
|
+
const prevScope = setContextScope(capturedScope);
|
|
388
373
|
try {
|
|
389
374
|
if (wasHydrating) {
|
|
390
375
|
beginDeferringMounts();
|
|
@@ -441,8 +426,24 @@ function RouterView({ router, fallback, errorFallback }) {
|
|
|
441
426
|
throw thrown;
|
|
442
427
|
}
|
|
443
428
|
} finally {
|
|
429
|
+
setContextScope(prevScope);
|
|
444
430
|
popScope();
|
|
445
431
|
}
|
|
432
|
+
}).catch((thrown) => {
|
|
433
|
+
if (gen !== renderGen)
|
|
434
|
+
return;
|
|
435
|
+
if (lazyFallback) {
|
|
436
|
+
pageCleanups = pushScope();
|
|
437
|
+
try {
|
|
438
|
+
const error = thrown instanceof Error ? thrown : new Error(String(thrown));
|
|
439
|
+
while (container.firstChild) {
|
|
440
|
+
container.removeChild(container.firstChild);
|
|
441
|
+
}
|
|
442
|
+
container.appendChild(lazyFallback({ error, retry: () => {} }));
|
|
443
|
+
} finally {
|
|
444
|
+
popScope();
|
|
445
|
+
}
|
|
446
|
+
}
|
|
446
447
|
});
|
|
447
448
|
} else {
|
|
448
449
|
if (gen !== renderGen) {
|
|
@@ -7,14 +7,14 @@ import {
|
|
|
7
7
|
} from "./chunk-jrtrk5z4.js";
|
|
8
8
|
import {
|
|
9
9
|
isBrowser
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-xs4hak0m.js";
|
|
11
11
|
import {
|
|
12
12
|
batch,
|
|
13
13
|
getReadValueCallback,
|
|
14
14
|
getSSRContext,
|
|
15
15
|
getSubscriber,
|
|
16
16
|
signal
|
|
17
|
-
} from "./chunk-
|
|
17
|
+
} from "./chunk-2k26a794.js";
|
|
18
18
|
|
|
19
19
|
// src/router/reactive-search-params.ts
|
|
20
20
|
function shallowEqual(a, b) {
|
|
@@ -4,10 +4,10 @@ import {
|
|
|
4
4
|
__element,
|
|
5
5
|
__enterChildren,
|
|
6
6
|
__exitChildren
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-29x7mbne.js";
|
|
8
8
|
import {
|
|
9
9
|
getSSRContext
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-2k26a794.js";
|
|
11
11
|
|
|
12
12
|
// src/component/children.ts
|
|
13
13
|
var MAX_RESOLVE_DEPTH = 100;
|
|
@@ -88,6 +88,12 @@ var PROPERTY_MAP = {
|
|
|
88
88
|
overflow: { properties: ["overflow"], valueType: "raw" },
|
|
89
89
|
"overflow-x": { properties: ["overflow-x"], valueType: "raw" },
|
|
90
90
|
"overflow-y": { properties: ["overflow-y"], valueType: "raw" },
|
|
91
|
+
top: { properties: ["top"], valueType: "raw" },
|
|
92
|
+
right: { properties: ["right"], valueType: "raw" },
|
|
93
|
+
bottom: { properties: ["bottom"], valueType: "raw" },
|
|
94
|
+
left: { properties: ["left"], valueType: "raw" },
|
|
95
|
+
object: { properties: ["object-fit"], valueType: "raw" },
|
|
96
|
+
aspect: { properties: ["aspect-ratio"], valueType: "raw" },
|
|
91
97
|
cursor: { properties: ["cursor"], valueType: "raw" },
|
|
92
98
|
transition: { properties: ["transition"], valueType: "raw" },
|
|
93
99
|
resize: { properties: ["resize"], valueType: "raw" },
|
|
@@ -655,12 +661,20 @@ function resolveRaw(value, property) {
|
|
|
655
661
|
return `repeat(${num}, minmax(0, 1fr))`;
|
|
656
662
|
return value;
|
|
657
663
|
}
|
|
658
|
-
if (property === "inset") {
|
|
664
|
+
if (property === "inset" || property === "top" || property === "right" || property === "bottom" || property === "left") {
|
|
659
665
|
const spaced = SPACING_SCALE[value];
|
|
660
666
|
if (spaced !== undefined)
|
|
661
667
|
return spaced;
|
|
662
668
|
return value;
|
|
663
669
|
}
|
|
670
|
+
if (property === "aspect") {
|
|
671
|
+
const ASPECT_MAP = {
|
|
672
|
+
square: "1 / 1",
|
|
673
|
+
video: "16 / 9",
|
|
674
|
+
photo: "4 / 3"
|
|
675
|
+
};
|
|
676
|
+
return ASPECT_MAP[value] ?? value;
|
|
677
|
+
}
|
|
664
678
|
return value;
|
|
665
679
|
}
|
|
666
680
|
function formatShorthand(parsed) {
|
|
@@ -958,6 +972,33 @@ ${cssVars.join(`
|
|
|
958
972
|
return { fontFaceCss, cssVarsCss, cssVarLines, preloadTags, preloadItems };
|
|
959
973
|
}
|
|
960
974
|
|
|
975
|
+
// src/css/google-font.ts
|
|
976
|
+
function googleFont(family, options) {
|
|
977
|
+
const style = options.style ?? "normal";
|
|
978
|
+
const styles = Array.isArray(style) ? style : [style];
|
|
979
|
+
const display = options.display ?? "swap";
|
|
980
|
+
const subsets = options.subsets ?? ["latin"];
|
|
981
|
+
const weight = typeof options.weight === "number" ? String(options.weight) : options.weight;
|
|
982
|
+
return {
|
|
983
|
+
__brand: "FontDescriptor",
|
|
984
|
+
family,
|
|
985
|
+
weight: Array.isArray(weight) ? weight.join(";") : String(weight),
|
|
986
|
+
style: styles[0] ?? "normal",
|
|
987
|
+
display,
|
|
988
|
+
src: undefined,
|
|
989
|
+
fallback: options.fallback ?? [],
|
|
990
|
+
subsets,
|
|
991
|
+
adjustFontFallback: options.adjustFontFallback ?? true,
|
|
992
|
+
__google: {
|
|
993
|
+
family,
|
|
994
|
+
weight: options.weight,
|
|
995
|
+
style: styles,
|
|
996
|
+
subsets,
|
|
997
|
+
display
|
|
998
|
+
}
|
|
999
|
+
};
|
|
1000
|
+
}
|
|
1001
|
+
|
|
961
1002
|
// src/css/global-css.ts
|
|
962
1003
|
function globalCss(input) {
|
|
963
1004
|
const rules = [];
|
|
@@ -1247,4 +1288,4 @@ function variants(config) {
|
|
|
1247
1288
|
return fn;
|
|
1248
1289
|
}
|
|
1249
1290
|
|
|
1250
|
-
export { resolveChildren, children, PROPERTY_MAP, KEYWORD_MAP, DISPLAY_MAP, SPACING_SCALE, RADIUS_SCALE, SHADOW_SCALE, FONT_SIZE_SCALE, FONT_WEIGHT_SCALE, LINE_HEIGHT_SCALE, ALIGNMENT_MAP, SIZE_KEYWORDS, HEIGHT_AXIS_PROPERTIES, COLOR_NAMESPACES, CSS_COLOR_KEYWORDS, CONTENT_MAP, PSEUDO_PREFIXES, PSEUDO_MAP, injectCSS, resetInjectedStyles, getInjectedCSS, css, font, compileFonts, globalCss, s, defineTheme, compileTheme, ThemeProvider, variants };
|
|
1291
|
+
export { resolveChildren, children, PROPERTY_MAP, KEYWORD_MAP, DISPLAY_MAP, SPACING_SCALE, RADIUS_SCALE, SHADOW_SCALE, FONT_SIZE_SCALE, FONT_WEIGHT_SCALE, LINE_HEIGHT_SCALE, ALIGNMENT_MAP, SIZE_KEYWORDS, HEIGHT_AXIS_PROPERTIES, COLOR_NAMESPACES, CSS_COLOR_KEYWORDS, CONTENT_MAP, PSEUDO_PREFIXES, PSEUDO_MAP, injectCSS, resetInjectedStyles, getInjectedCSS, css, font, compileFonts, googleFont, globalCss, s, defineTheme, compileTheme, ThemeProvider, variants };
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
// src/theme/registry.ts
|
|
2
|
-
var
|
|
3
|
-
var _primitives = null;
|
|
2
|
+
var _resolved = null;
|
|
4
3
|
function registerTheme(resolved) {
|
|
5
|
-
if (!resolved || typeof resolved !== "object" || !
|
|
4
|
+
if (!resolved || typeof resolved !== "object" || !("components" in resolved) || !resolved.components) {
|
|
6
5
|
throw new Error(`registerTheme() expects an object with a "components" property.
|
|
7
6
|
|
|
8
7
|
` + `Example:
|
|
@@ -11,11 +10,10 @@ function registerTheme(resolved) {
|
|
|
11
10
|
` + ` registerTheme(configureTheme({ palette: 'zinc' }));
|
|
12
11
|
`);
|
|
13
12
|
}
|
|
14
|
-
|
|
15
|
-
_primitives = resolved.components.primitives ?? {};
|
|
13
|
+
_resolved = resolved;
|
|
16
14
|
}
|
|
17
15
|
function _getComponent(name) {
|
|
18
|
-
if (!
|
|
16
|
+
if (!_resolved) {
|
|
19
17
|
throw new Error(`No theme registered. Call registerTheme() before using components from @vertz/ui/components.
|
|
20
18
|
|
|
21
19
|
` + `Example:
|
|
@@ -24,13 +22,16 @@ function _getComponent(name) {
|
|
|
24
22
|
` + ` registerTheme(configureTheme({ palette: 'zinc' }));
|
|
25
23
|
`);
|
|
26
24
|
}
|
|
27
|
-
return Reflect.get(
|
|
25
|
+
return Reflect.get(_resolved.components, name);
|
|
28
26
|
}
|
|
29
27
|
function _getPrimitive(name) {
|
|
30
|
-
if (!
|
|
28
|
+
if (!_resolved) {
|
|
31
29
|
throw new Error(`No theme registered. Call registerTheme() before using components from @vertz/ui/components.`);
|
|
32
30
|
}
|
|
33
|
-
|
|
31
|
+
const primitives = _resolved.components.primitives;
|
|
32
|
+
if (!primitives)
|
|
33
|
+
return;
|
|
34
|
+
return Reflect.get(primitives, name);
|
|
34
35
|
}
|
|
35
36
|
|
|
36
37
|
export { registerTheme, _getComponent, _getPrimitive };
|
|
@@ -164,13 +164,22 @@ declare function can(entitlement: Entitlement, entity?: {
|
|
|
164
164
|
declare function canSignals(entitlement: Entitlement, entity?: {
|
|
165
165
|
__access?: Record<string, AccessCheckData>;
|
|
166
166
|
}): RawAccessCheck;
|
|
167
|
-
/**
|
|
167
|
+
/**
|
|
168
|
+
* Client-side access events.
|
|
169
|
+
*
|
|
170
|
+
* Includes resourceType/resourceId for client-side resource-level filtering.
|
|
171
|
+
* orgId is stripped (routing is server-side only via WebSocket connection keying).
|
|
172
|
+
*/
|
|
168
173
|
type ClientAccessEvent = {
|
|
169
174
|
type: "access:flag_toggled";
|
|
175
|
+
resourceType: string;
|
|
176
|
+
resourceId: string;
|
|
170
177
|
flag: string;
|
|
171
178
|
enabled: boolean;
|
|
172
179
|
} | {
|
|
173
180
|
type: "access:limit_updated";
|
|
181
|
+
resourceType: string;
|
|
182
|
+
resourceId: string;
|
|
174
183
|
entitlement: string;
|
|
175
184
|
consumed: number;
|
|
176
185
|
remaining: number;
|
|
@@ -179,17 +188,27 @@ type ClientAccessEvent = {
|
|
|
179
188
|
type: "access:role_changed";
|
|
180
189
|
} | {
|
|
181
190
|
type: "access:plan_changed";
|
|
191
|
+
resourceType: string;
|
|
192
|
+
resourceId: string;
|
|
182
193
|
} | {
|
|
183
194
|
type: "access:plan_assigned";
|
|
195
|
+
resourceType: string;
|
|
196
|
+
resourceId: string;
|
|
184
197
|
planId: string;
|
|
185
198
|
} | {
|
|
186
199
|
type: "access:addon_attached";
|
|
200
|
+
resourceType: string;
|
|
201
|
+
resourceId: string;
|
|
187
202
|
addonId: string;
|
|
188
203
|
} | {
|
|
189
204
|
type: "access:addon_detached";
|
|
205
|
+
resourceType: string;
|
|
206
|
+
resourceId: string;
|
|
190
207
|
addonId: string;
|
|
191
208
|
} | {
|
|
192
209
|
type: "access:limit_reset";
|
|
210
|
+
resourceType: string;
|
|
211
|
+
resourceId: string;
|
|
193
212
|
entitlement: string;
|
|
194
213
|
max: number;
|
|
195
214
|
};
|
package/dist/src/auth/public.js
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import {
|
|
2
2
|
RouterContext
|
|
3
|
-
} from "../../shared/chunk-
|
|
3
|
+
} from "../../shared/chunk-dxfd1ptg.js";
|
|
4
4
|
import {
|
|
5
5
|
invalidateTenantQueries
|
|
6
|
-
} from "../../shared/chunk-
|
|
6
|
+
} from "../../shared/chunk-kt7127xc.js";
|
|
7
7
|
import {
|
|
8
8
|
isBrowser
|
|
9
|
-
} from "../../shared/chunk-
|
|
9
|
+
} from "../../shared/chunk-xs4hak0m.js";
|
|
10
10
|
import {
|
|
11
11
|
_tryOnCleanup,
|
|
12
12
|
computed,
|
|
@@ -14,7 +14,7 @@ import {
|
|
|
14
14
|
getSSRContext,
|
|
15
15
|
signal,
|
|
16
16
|
useContext
|
|
17
|
-
} from "../../shared/chunk-
|
|
17
|
+
} from "../../shared/chunk-2k26a794.js";
|
|
18
18
|
|
|
19
19
|
// src/auth/access-context.ts
|
|
20
20
|
var AccessContext = createContext(undefined, "@vertz/ui::AccessContext");
|
package/dist/src/css/public.d.ts
CHANGED
|
@@ -103,6 +103,14 @@ interface FontOptions {
|
|
|
103
103
|
}
|
|
104
104
|
type FontStyle = "normal" | "italic";
|
|
105
105
|
type FontDisplay = "auto" | "block" | "swap" | "fallback" | "optional";
|
|
106
|
+
/** @internal Metadata for Google Fonts descriptors. Present only on googleFont() results. */
|
|
107
|
+
interface GoogleFontMeta {
|
|
108
|
+
readonly family: string;
|
|
109
|
+
readonly weight: string | number | number[];
|
|
110
|
+
readonly style: FontStyle[];
|
|
111
|
+
readonly subsets: string[];
|
|
112
|
+
readonly display: FontDisplay;
|
|
113
|
+
}
|
|
106
114
|
interface FontDescriptor {
|
|
107
115
|
readonly __brand: "FontDescriptor";
|
|
108
116
|
readonly family: string;
|
|
@@ -114,6 +122,8 @@ interface FontDescriptor {
|
|
|
114
122
|
readonly subsets: string[];
|
|
115
123
|
readonly unicodeRange?: string;
|
|
116
124
|
readonly adjustFontFallback: boolean | FallbackFontName;
|
|
125
|
+
/** @internal — Google Fonts metadata. Present only for googleFont() descriptors. */
|
|
126
|
+
readonly __google?: GoogleFontMeta;
|
|
117
127
|
}
|
|
118
128
|
/** Structured description of a resource to preload. */
|
|
119
129
|
interface PreloadItem {
|
|
@@ -150,6 +160,29 @@ declare function font(family: string, options: FontOptions): FontDescriptor;
|
|
|
150
160
|
* @returns Compiled @font-face CSS, CSS var lines, and preload link tags.
|
|
151
161
|
*/
|
|
152
162
|
declare function compileFonts(fonts: Record<string, FontDescriptor>, options?: CompileFontsOptions): CompiledFonts;
|
|
163
|
+
type FontStyle2 = "normal" | "italic";
|
|
164
|
+
type FontDisplay2 = "auto" | "block" | "swap" | "fallback" | "optional";
|
|
165
|
+
interface GoogleFontOptions {
|
|
166
|
+
/** Weight range ('100..900') or specific weights ([400, 700]). */
|
|
167
|
+
weight: string | number | number[];
|
|
168
|
+
/** Font style(s). Default: 'normal'. */
|
|
169
|
+
style?: FontStyle2 | FontStyle2[];
|
|
170
|
+
/** font-display strategy. Default: 'swap'. */
|
|
171
|
+
display?: FontDisplay2;
|
|
172
|
+
/** Character subsets. Default: ['latin']. */
|
|
173
|
+
subsets?: string[];
|
|
174
|
+
/** Fallback fonts. Auto-detected from Google's font category if omitted. */
|
|
175
|
+
fallback?: string[];
|
|
176
|
+
/** Enable metric-adjusted fallback @font-face. Default: true. */
|
|
177
|
+
adjustFontFallback?: boolean;
|
|
178
|
+
}
|
|
179
|
+
/**
|
|
180
|
+
* Declare a Google Font for auto-fetch at dev/build time.
|
|
181
|
+
*
|
|
182
|
+
* Returns a FontDescriptor with `src: undefined` and `__google` metadata.
|
|
183
|
+
* The dev server / build pipeline resolves the metadata to local .woff2 files.
|
|
184
|
+
*/
|
|
185
|
+
declare function googleFont(family: string, options: GoogleFontOptions): FontDescriptor;
|
|
153
186
|
/** Input to globalCss(): selector → property-value map. */
|
|
154
187
|
type GlobalCSSInput = Record<string, Record<string, string>>;
|
|
155
188
|
/** Output of globalCss(): extracted CSS string. */
|
|
@@ -301,4 +334,4 @@ interface VariantFunction<V extends VariantDefinitions> {
|
|
|
301
334
|
* @returns A function that accepts variant props and returns a className string.
|
|
302
335
|
*/
|
|
303
336
|
declare function variants<V extends VariantDefinitions>(config: VariantsConfig<V>): VariantFunction<V>;
|
|
304
|
-
export { variants, s, globalCss, font, defineTheme, css, compileTheme, compileFonts, VariantsConfig, VariantProps, VariantFunction, UtilityClass, ThemeProviderProps, ThemeProvider, ThemeInput, Theme, StyleValue, StyleEntry, PreloadItem, GlobalCSSOutput, GlobalCSSInput, FontSrc, FontOptions, FontFallbackMetrics, FontDescriptor, FallbackFontName, CompiledTheme, CompiledFonts, CompileThemeOptions, CompileFontsOptions, CSSOutput, CSSInput };
|
|
337
|
+
export { variants, s, googleFont, globalCss, font, defineTheme, css, compileTheme, compileFonts, VariantsConfig, VariantProps, VariantFunction, UtilityClass, ThemeProviderProps, ThemeProvider, ThemeInput, Theme, StyleValue, StyleEntry, PreloadItem, GoogleFontOptions, GoogleFontMeta, GlobalCSSOutput, GlobalCSSInput, FontSrc, FontOptions, FontFallbackMetrics, FontDescriptor, FallbackFontName, CompiledTheme, CompiledFonts, CompileThemeOptions, CompileFontsOptions, CSSOutput, CSSInput };
|
package/dist/src/css/public.js
CHANGED
|
@@ -6,15 +6,17 @@ import {
|
|
|
6
6
|
defineTheme,
|
|
7
7
|
font,
|
|
8
8
|
globalCss,
|
|
9
|
+
googleFont,
|
|
9
10
|
s,
|
|
10
11
|
variants
|
|
11
|
-
} from "../../shared/chunk-
|
|
12
|
-
import"../../shared/chunk-
|
|
12
|
+
} from "../../shared/chunk-hgtmh07c.js";
|
|
13
|
+
import"../../shared/chunk-29x7mbne.js";
|
|
13
14
|
import"../../shared/chunk-h1fsr8kv.js";
|
|
14
|
-
import"../../shared/chunk-
|
|
15
|
+
import"../../shared/chunk-2k26a794.js";
|
|
15
16
|
export {
|
|
16
17
|
variants,
|
|
17
18
|
s,
|
|
19
|
+
googleFont,
|
|
18
20
|
globalCss,
|
|
19
21
|
font,
|
|
20
22
|
defineTheme,
|
package/dist/src/form/public.js
CHANGED
package/dist/src/index.d.ts
CHANGED
|
@@ -400,6 +400,14 @@ interface FontOptions {
|
|
|
400
400
|
}
|
|
401
401
|
type FontStyle = "normal" | "italic";
|
|
402
402
|
type FontDisplay = "auto" | "block" | "swap" | "fallback" | "optional";
|
|
403
|
+
/** @internal Metadata for Google Fonts descriptors. Present only on googleFont() results. */
|
|
404
|
+
interface GoogleFontMeta {
|
|
405
|
+
readonly family: string;
|
|
406
|
+
readonly weight: string | number | number[];
|
|
407
|
+
readonly style: FontStyle[];
|
|
408
|
+
readonly subsets: string[];
|
|
409
|
+
readonly display: FontDisplay;
|
|
410
|
+
}
|
|
403
411
|
interface FontDescriptor {
|
|
404
412
|
readonly __brand: "FontDescriptor";
|
|
405
413
|
readonly family: string;
|
|
@@ -411,6 +419,8 @@ interface FontDescriptor {
|
|
|
411
419
|
readonly subsets: string[];
|
|
412
420
|
readonly unicodeRange?: string;
|
|
413
421
|
readonly adjustFontFallback: boolean | FallbackFontName;
|
|
422
|
+
/** @internal — Google Fonts metadata. Present only for googleFont() descriptors. */
|
|
423
|
+
readonly __google?: GoogleFontMeta;
|
|
414
424
|
}
|
|
415
425
|
/** Structured description of a resource to preload. */
|
|
416
426
|
interface PreloadItem {
|
|
@@ -1543,8 +1553,8 @@ declare function defineRoutes<const T extends Record<string, RouteConfigLike>>(m
|
|
|
1543
1553
|
interface LinkProps<T extends Record<string, RouteConfigLike> = RouteDefinitionMap> {
|
|
1544
1554
|
/** The target URL path. */
|
|
1545
1555
|
href: RoutePaths<T>;
|
|
1546
|
-
/**
|
|
1547
|
-
children:
|
|
1556
|
+
/** Content for the link. Accepts string, Node, arrays, or thunks — same as JSX children. */
|
|
1557
|
+
children: ChildValue;
|
|
1548
1558
|
/** Class applied when the link's href matches the current path. */
|
|
1549
1559
|
activeClass?: string;
|
|
1550
1560
|
/** Static class name for the anchor element. */
|
|
@@ -2140,6 +2150,11 @@ interface RegisterThemeInput {
|
|
|
2140
2150
|
* Call once at app startup, before any component from `@vertz/ui/components` is used.
|
|
2141
2151
|
* Calling again replaces the previously registered theme.
|
|
2142
2152
|
*
|
|
2153
|
+
* IMPORTANT: This stores the resolved theme WITHOUT accessing `.components`.
|
|
2154
|
+
* Accessing `.components` would trigger eager compilation of all ~40 component
|
|
2155
|
+
* styles (~74KB CSS) at startup time. Instead, styles are compiled lazily
|
|
2156
|
+
* per-component when first accessed via _getComponent()/_getPrimitive(). (#1979)
|
|
2157
|
+
*
|
|
2143
2158
|
* @example
|
|
2144
2159
|
* ```ts
|
|
2145
2160
|
* import { registerTheme } from '@vertz/ui';
|
package/dist/src/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
registerTheme
|
|
3
|
-
} from "../shared/chunk-
|
|
3
|
+
} from "../shared/chunk-w6a0t2xs.js";
|
|
4
4
|
import {
|
|
5
5
|
ANIMATION_DURATION,
|
|
6
6
|
ANIMATION_EASING,
|
|
@@ -25,7 +25,7 @@ import {
|
|
|
25
25
|
slideOutToTop,
|
|
26
26
|
zoomIn,
|
|
27
27
|
zoomOut
|
|
28
|
-
} from "../shared/chunk-
|
|
28
|
+
} from "../shared/chunk-96hnx5jk.js";
|
|
29
29
|
import {
|
|
30
30
|
ErrorBoundary,
|
|
31
31
|
Link,
|
|
@@ -36,16 +36,16 @@ import {
|
|
|
36
36
|
getCurrentErrorHandler,
|
|
37
37
|
parseSearchParams,
|
|
38
38
|
useSearchParams
|
|
39
|
-
} from "../shared/chunk-
|
|
39
|
+
} from "../shared/chunk-abv8ax3j.js";
|
|
40
40
|
import {
|
|
41
41
|
beginDeferringMounts,
|
|
42
42
|
discardDeferredMounts,
|
|
43
43
|
flushDeferredMounts,
|
|
44
44
|
onMount
|
|
45
|
-
} from "../shared/chunk-
|
|
45
|
+
} from "../shared/chunk-pbw64893.js";
|
|
46
46
|
import {
|
|
47
47
|
createRouter
|
|
48
|
-
} from "../shared/chunk-
|
|
48
|
+
} from "../shared/chunk-f0f80gxe.js";
|
|
49
49
|
import {
|
|
50
50
|
defineRoutes
|
|
51
51
|
} from "../shared/chunk-ah86rm07.js";
|
|
@@ -54,7 +54,7 @@ import {
|
|
|
54
54
|
form,
|
|
55
55
|
formDataToObject,
|
|
56
56
|
validate
|
|
57
|
-
} from "../shared/chunk-
|
|
57
|
+
} from "../shared/chunk-7479q3cz.js";
|
|
58
58
|
import {
|
|
59
59
|
EntityStore,
|
|
60
60
|
FieldSelectionTracker,
|
|
@@ -66,7 +66,7 @@ import {
|
|
|
66
66
|
query,
|
|
67
67
|
registerRelationSchema,
|
|
68
68
|
resetRelationSchemas_TEST_ONLY
|
|
69
|
-
} from "../shared/chunk-
|
|
69
|
+
} from "../shared/chunk-8ft6568m.js";
|
|
70
70
|
import"../shared/chunk-jrtrk5z4.js";
|
|
71
71
|
import {
|
|
72
72
|
ThemeProvider,
|
|
@@ -83,7 +83,7 @@ import {
|
|
|
83
83
|
resolveChildren,
|
|
84
84
|
s,
|
|
85
85
|
variants
|
|
86
|
-
} from "../shared/chunk-
|
|
86
|
+
} from "../shared/chunk-hgtmh07c.js";
|
|
87
87
|
import {
|
|
88
88
|
RENDER_NODE_BRAND,
|
|
89
89
|
__append,
|
|
@@ -96,20 +96,20 @@ import {
|
|
|
96
96
|
getAdapter,
|
|
97
97
|
isRenderNode,
|
|
98
98
|
setAdapter
|
|
99
|
-
} from "../shared/chunk-
|
|
99
|
+
} from "../shared/chunk-29x7mbne.js";
|
|
100
100
|
import"../shared/chunk-h1fsr8kv.js";
|
|
101
101
|
import {
|
|
102
102
|
RouterContext,
|
|
103
103
|
useParams,
|
|
104
104
|
useRouter
|
|
105
|
-
} from "../shared/chunk-
|
|
105
|
+
} from "../shared/chunk-dxfd1ptg.js";
|
|
106
106
|
import {
|
|
107
107
|
invalidate,
|
|
108
108
|
invalidateTenantQueries
|
|
109
|
-
} from "../shared/chunk-
|
|
109
|
+
} from "../shared/chunk-kt7127xc.js";
|
|
110
110
|
import {
|
|
111
111
|
isBrowser
|
|
112
|
-
} from "../shared/chunk-
|
|
112
|
+
} from "../shared/chunk-xs4hak0m.js";
|
|
113
113
|
import {
|
|
114
114
|
DisposalScopeError,
|
|
115
115
|
_tryOnCleanup,
|
|
@@ -134,7 +134,7 @@ import {
|
|
|
134
134
|
startHydration,
|
|
135
135
|
untrack,
|
|
136
136
|
useContext
|
|
137
|
-
} from "../shared/chunk-
|
|
137
|
+
} from "../shared/chunk-2k26a794.js";
|
|
138
138
|
// src/component/default-error-fallback.ts
|
|
139
139
|
function DefaultErrorFallback({ error, retry }) {
|
|
140
140
|
const container = document.createElement("div");
|
package/dist/src/internals.d.ts
CHANGED
|
@@ -197,6 +197,14 @@ interface CompileFontsOptions {
|
|
|
197
197
|
}
|
|
198
198
|
type FontStyle = "normal" | "italic";
|
|
199
199
|
type FontDisplay = "auto" | "block" | "swap" | "fallback" | "optional";
|
|
200
|
+
/** @internal Metadata for Google Fonts descriptors. Present only on googleFont() results. */
|
|
201
|
+
interface GoogleFontMeta {
|
|
202
|
+
readonly family: string;
|
|
203
|
+
readonly weight: string | number | number[];
|
|
204
|
+
readonly style: FontStyle[];
|
|
205
|
+
readonly subsets: string[];
|
|
206
|
+
readonly display: FontDisplay;
|
|
207
|
+
}
|
|
200
208
|
interface FontDescriptor {
|
|
201
209
|
readonly __brand: "FontDescriptor";
|
|
202
210
|
readonly family: string;
|
|
@@ -208,6 +216,8 @@ interface FontDescriptor {
|
|
|
208
216
|
readonly subsets: string[];
|
|
209
217
|
readonly unicodeRange?: string;
|
|
210
218
|
readonly adjustFontFallback: boolean | FallbackFontName;
|
|
219
|
+
/** @internal — Google Fonts metadata. Present only for googleFont() descriptors. */
|
|
220
|
+
readonly __google?: GoogleFontMeta;
|
|
211
221
|
}
|
|
212
222
|
/** Structured description of a resource to preload. */
|
|
213
223
|
interface PreloadItem {
|
|
@@ -492,10 +502,13 @@ declare function clearChildren(container: Node): void;
|
|
|
492
502
|
* also accepts a raw Signal for direct use in tests.
|
|
493
503
|
* @param keyFn - Extracts a unique key from each item (receives item and index).
|
|
494
504
|
* Pass `null` for unkeyed lists — triggers full-replacement mode (safe but slower).
|
|
495
|
-
* @param renderFn - Creates a DOM node for an item (called once per key)
|
|
505
|
+
* @param renderFn - Creates a DOM node for an item (called once per key).
|
|
506
|
+
* Receives the item and its index in the array. Note: for keyed lists,
|
|
507
|
+
* the index is the position at creation time and is NOT updated when
|
|
508
|
+
* items reorder — use a key-based approach for stable ordering display.
|
|
496
509
|
* @returns A dispose function to stop the reactive list reconciliation
|
|
497
510
|
*/
|
|
498
|
-
declare function __list<T>(container: HTMLElement, items: Signal<T[]> | (() => T[]), keyFn: ((item: T, index: number) => string | number) | null, renderFn: (item: T) => Node): DisposeFn;
|
|
511
|
+
declare function __list<T>(container: HTMLElement, items: Signal<T[]> | (() => T[]), keyFn: ((item: T, index: number) => string | number) | null, renderFn: (item: T, index: number) => Node): DisposeFn;
|
|
499
512
|
/**
|
|
500
513
|
* Lifecycle hooks for list animation (enter/exit/reorder).
|
|
501
514
|
*
|
|
@@ -533,21 +546,29 @@ declare const ListAnimationContext: Context<ListAnimationHooks | undefined>;
|
|
|
533
546
|
*
|
|
534
547
|
* @param items - A signal or getter function containing the array of items
|
|
535
548
|
* @param keyFn - Extracts a unique key from each item. Pass null for unkeyed mode.
|
|
536
|
-
* @param renderFn - Creates a DOM node for an item (called once per key)
|
|
549
|
+
* @param renderFn - Creates a DOM node for an item (called once per key).
|
|
550
|
+
* Receives the item and its index in the array. Note: for keyed lists,
|
|
551
|
+
* the index is the position at creation time and is NOT updated when
|
|
552
|
+
* items reorder — use a key-based approach for stable ordering display.
|
|
537
553
|
* @returns A DisposableNode (DocumentFragment with dispose method)
|
|
538
554
|
*/
|
|
539
|
-
declare function __listValue<T>(items: Signal<T[]> | (() => T[]), keyFn: ((item: T, index: number) => string | number) | null, renderFn: (item: T) => Node): DisposableNode;
|
|
555
|
+
declare function __listValue<T>(items: Signal<T[]> | (() => T[]), keyFn: ((item: T, index: number) => string | number) | null, renderFn: (item: T, index: number) => Node): DisposableNode;
|
|
540
556
|
/**
|
|
541
557
|
* Apply a spread props object to a DOM element.
|
|
542
558
|
*
|
|
543
559
|
* Compiler output target for JSX spread attributes on intrinsic elements:
|
|
544
560
|
* <button {...rest} /> → __spread(el, rest)
|
|
561
|
+
* <button {...rest} /> → __spread(el, rest, __props) (inside components)
|
|
562
|
+
*
|
|
563
|
+
* When `source` is provided (the original __props with getter descriptors),
|
|
564
|
+
* keys that have getters on source get reactive effects (like __attr/__prop).
|
|
565
|
+
* Keys without getters are set one-shot from the `props` rest object.
|
|
545
566
|
*
|
|
546
567
|
* Handles event handlers (on*), ref, style, class/className, htmlFor,
|
|
547
568
|
* SVG attribute normalization, and standard HTML attributes.
|
|
548
569
|
* Uses replace (not merge) semantics — last-wins, matching source order.
|
|
549
570
|
*/
|
|
550
|
-
declare function __spread(el: Element, props: Record<string, unknown>): void;
|
|
571
|
+
declare function __spread(el: Element, props: Record<string, unknown>, source?: Record<string, unknown>): void;
|
|
551
572
|
declare function styleObjectToString(style: Record<string, string | number | null | undefined>): string;
|
|
552
573
|
/**
|
|
553
574
|
* Returns true when running in a real browser environment.
|
|
@@ -1146,6 +1167,12 @@ interface SSRRenderContext {
|
|
|
1146
1167
|
* response only includes CSS for components actually rendered.
|
|
1147
1168
|
*/
|
|
1148
1169
|
cssTracker?: Set<string>;
|
|
1170
|
+
/**
|
|
1171
|
+
* Request cookies (from the `Cookie` header).
|
|
1172
|
+
* Set by the SSR handler before rendering so that `document.cookie`
|
|
1173
|
+
* reads the real request cookies during SSR — same as in a browser.
|
|
1174
|
+
*/
|
|
1175
|
+
cookies?: string;
|
|
1149
1176
|
}
|
|
1150
1177
|
/** Auth state injected into SSRRenderContext by the server. */
|
|
1151
1178
|
type SSRAuth = ({
|
package/dist/src/internals.js
CHANGED
|
@@ -3,13 +3,13 @@ import {
|
|
|
3
3
|
deserializeProps,
|
|
4
4
|
onAnimationsComplete,
|
|
5
5
|
resolveComponent
|
|
6
|
-
} from "../shared/chunk-
|
|
6
|
+
} from "../shared/chunk-96hnx5jk.js";
|
|
7
7
|
import {
|
|
8
8
|
__discardMountFrame,
|
|
9
9
|
__flushMountFrame,
|
|
10
10
|
__on,
|
|
11
11
|
__pushMountFrame
|
|
12
|
-
} from "../shared/chunk-
|
|
12
|
+
} from "../shared/chunk-pbw64893.js";
|
|
13
13
|
import {
|
|
14
14
|
executeLoaders,
|
|
15
15
|
matchPath,
|
|
@@ -20,7 +20,7 @@ import {
|
|
|
20
20
|
MemoryCache,
|
|
21
21
|
QueryEnvelopeStore,
|
|
22
22
|
deriveKey
|
|
23
|
-
} from "../shared/chunk-
|
|
23
|
+
} from "../shared/chunk-8ft6568m.js";
|
|
24
24
|
import"../shared/chunk-jrtrk5z4.js";
|
|
25
25
|
import {
|
|
26
26
|
ALIGNMENT_MAP,
|
|
@@ -41,7 +41,7 @@ import {
|
|
|
41
41
|
SIZE_KEYWORDS,
|
|
42
42
|
SPACING_SCALE,
|
|
43
43
|
compileTheme
|
|
44
|
-
} from "../shared/chunk-
|
|
44
|
+
} from "../shared/chunk-hgtmh07c.js";
|
|
45
45
|
import {
|
|
46
46
|
RENDER_NODE_BRAND,
|
|
47
47
|
__append,
|
|
@@ -60,20 +60,21 @@ import {
|
|
|
60
60
|
getAdapter,
|
|
61
61
|
isRenderNode,
|
|
62
62
|
setAdapter
|
|
63
|
-
} from "../shared/chunk-
|
|
63
|
+
} from "../shared/chunk-29x7mbne.js";
|
|
64
64
|
import {
|
|
65
65
|
SVG_NS,
|
|
66
66
|
normalizeSVGAttr,
|
|
67
67
|
styleObjectToString
|
|
68
68
|
} from "../shared/chunk-h1fsr8kv.js";
|
|
69
|
-
import"../shared/chunk-
|
|
69
|
+
import"../shared/chunk-kt7127xc.js";
|
|
70
70
|
import {
|
|
71
71
|
isBrowser
|
|
72
|
-
} from "../shared/chunk-
|
|
72
|
+
} from "../shared/chunk-xs4hak0m.js";
|
|
73
73
|
import {
|
|
74
74
|
_tryOnCleanup,
|
|
75
75
|
claimComment,
|
|
76
76
|
claimText,
|
|
77
|
+
deferredDomEffect,
|
|
77
78
|
domEffect,
|
|
78
79
|
getContextScope,
|
|
79
80
|
getIsHydrating,
|
|
@@ -90,7 +91,7 @@ import {
|
|
|
90
91
|
startSignalCollection,
|
|
91
92
|
stopSignalCollection,
|
|
92
93
|
useContext
|
|
93
|
-
} from "../shared/chunk-
|
|
94
|
+
} from "../shared/chunk-2k26a794.js";
|
|
94
95
|
// src/dom/conditional.ts
|
|
95
96
|
function clearBetween(start, end) {
|
|
96
97
|
let current = start.nextSibling;
|
|
@@ -300,11 +301,11 @@ function __list(container, items, keyFn, renderFn) {
|
|
|
300
301
|
if (keyFn) {
|
|
301
302
|
const itemSig = signal(item);
|
|
302
303
|
const proxy = createItemProxy(itemSig);
|
|
303
|
-
const node = renderFn(proxy);
|
|
304
|
+
const node = renderFn(proxy, i);
|
|
304
305
|
itemSignalMap.set(key, itemSig);
|
|
305
306
|
nodeMap.set(key, node);
|
|
306
307
|
} else {
|
|
307
|
-
const node = renderFn(item);
|
|
308
|
+
const node = renderFn(item, i);
|
|
308
309
|
nodeMap.set(key, node);
|
|
309
310
|
}
|
|
310
311
|
popScope();
|
|
@@ -324,9 +325,9 @@ function __list(container, items, keyFn, renderFn) {
|
|
|
324
325
|
}
|
|
325
326
|
nodeMap.clear();
|
|
326
327
|
itemSignalMap.clear();
|
|
327
|
-
for (const item of newItems) {
|
|
328
|
+
for (const [i, item] of newItems.entries()) {
|
|
328
329
|
const scope = pushScope();
|
|
329
|
-
const node = renderFn(item);
|
|
330
|
+
const node = renderFn(item, i);
|
|
330
331
|
popScope();
|
|
331
332
|
container.appendChild(node);
|
|
332
333
|
const internalKey = nodeMap.size;
|
|
@@ -357,7 +358,7 @@ function __list(container, items, keyFn, renderFn) {
|
|
|
357
358
|
const itemSig = signal(item);
|
|
358
359
|
const proxy = createItemProxy(itemSig);
|
|
359
360
|
const scope = pushScope();
|
|
360
|
-
node = renderFn(proxy);
|
|
361
|
+
node = renderFn(proxy, i);
|
|
361
362
|
popScope();
|
|
362
363
|
nodeMap.set(key, node);
|
|
363
364
|
scopeMap.set(key, scope);
|
|
@@ -479,7 +480,7 @@ function __listValue(items, keyFn, renderFn) {
|
|
|
479
480
|
itemSignalMap.clear();
|
|
480
481
|
for (const [i, item] of newItems.entries()) {
|
|
481
482
|
const scope = pushScope();
|
|
482
|
-
const node = renderFn(item);
|
|
483
|
+
const node = renderFn(item, i);
|
|
483
484
|
popScope();
|
|
484
485
|
endMarker.parentNode?.insertBefore(node, endMarker);
|
|
485
486
|
nodeMap.set(i, node);
|
|
@@ -494,7 +495,7 @@ function __listValue(items, keyFn, renderFn) {
|
|
|
494
495
|
const itemSig = signal(item);
|
|
495
496
|
const proxy = createItemProxy2(itemSig);
|
|
496
497
|
const scope = pushScope();
|
|
497
|
-
const node = renderFn(proxy);
|
|
498
|
+
const node = renderFn(proxy, i);
|
|
498
499
|
popScope();
|
|
499
500
|
nodeMap.set(key, node);
|
|
500
501
|
scopeMap.set(key, scope);
|
|
@@ -548,7 +549,7 @@ function __listValue(items, keyFn, renderFn) {
|
|
|
548
549
|
const itemSig = signal(item);
|
|
549
550
|
const proxy = createItemProxy2(itemSig);
|
|
550
551
|
const scope = pushScope();
|
|
551
|
-
node = renderFn(proxy);
|
|
552
|
+
node = renderFn(proxy, i);
|
|
552
553
|
popScope();
|
|
553
554
|
nodeMap.set(key, node);
|
|
554
555
|
scopeMap.set(key, scope);
|
|
@@ -609,7 +610,12 @@ var PROP_ALIASES = {
|
|
|
609
610
|
className: "class",
|
|
610
611
|
htmlFor: "for"
|
|
611
612
|
};
|
|
612
|
-
|
|
613
|
+
var IDL_PROPS = {
|
|
614
|
+
INPUT: new Set(["value", "checked"]),
|
|
615
|
+
SELECT: new Set(["value"]),
|
|
616
|
+
TEXTAREA: new Set(["value"])
|
|
617
|
+
};
|
|
618
|
+
function __spread(el, props, source) {
|
|
613
619
|
const isSvg = el.namespaceURI === SVG_NS;
|
|
614
620
|
for (const key of Object.keys(props)) {
|
|
615
621
|
if (SKIP_KEYS.has(key))
|
|
@@ -626,8 +632,47 @@ function __spread(el, props) {
|
|
|
626
632
|
el.addEventListener(eventName, value);
|
|
627
633
|
continue;
|
|
628
634
|
}
|
|
629
|
-
|
|
635
|
+
const descriptor = source && Object.getOwnPropertyDescriptor(source, key);
|
|
636
|
+
if (descriptor?.get) {
|
|
637
|
+
const getter = descriptor.get;
|
|
638
|
+
const isIdl = IDL_PROPS[el.tagName]?.has(key);
|
|
639
|
+
if (isIdl) {
|
|
640
|
+
deferredDomEffect(() => {
|
|
641
|
+
const v = getter();
|
|
642
|
+
if (v == null) {
|
|
643
|
+
Reflect.set(el, key, typeof Reflect.get(el, key) === "boolean" ? false : "");
|
|
644
|
+
} else {
|
|
645
|
+
Reflect.set(el, key, v);
|
|
646
|
+
}
|
|
647
|
+
});
|
|
648
|
+
} else {
|
|
649
|
+
const attrName2 = PROP_ALIASES[key] ?? key;
|
|
650
|
+
const finalName2 = isSvg ? normalizeSVGAttr(attrName2) : attrName2;
|
|
651
|
+
deferredDomEffect(() => {
|
|
652
|
+
const v = getter();
|
|
653
|
+
if (v == null || v === false) {
|
|
654
|
+
el.removeAttribute(finalName2);
|
|
655
|
+
} else if (v === true) {
|
|
656
|
+
el.setAttribute(finalName2, "");
|
|
657
|
+
} else if (finalName2 === "style" && typeof v === "object") {
|
|
658
|
+
el.setAttribute("style", styleObjectToString(v));
|
|
659
|
+
} else {
|
|
660
|
+
el.setAttribute(finalName2, String(v));
|
|
661
|
+
}
|
|
662
|
+
});
|
|
663
|
+
}
|
|
664
|
+
continue;
|
|
665
|
+
}
|
|
666
|
+
if (value == null || value === false) {
|
|
667
|
+
if (value === false && IDL_PROPS[el.tagName]?.has(key)) {
|
|
668
|
+
Reflect.set(el, key, false);
|
|
669
|
+
}
|
|
630
670
|
continue;
|
|
671
|
+
}
|
|
672
|
+
if (IDL_PROPS[el.tagName]?.has(key)) {
|
|
673
|
+
Reflect.set(el, key, value);
|
|
674
|
+
continue;
|
|
675
|
+
}
|
|
631
676
|
const attrName = PROP_ALIASES[key] ?? key;
|
|
632
677
|
if (attrName === "style") {
|
|
633
678
|
if (typeof value === "object") {
|
package/dist/src/query/public.js
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import {
|
|
2
2
|
query
|
|
3
|
-
} from "../../shared/chunk-
|
|
3
|
+
} from "../../shared/chunk-8ft6568m.js";
|
|
4
4
|
import"../../shared/chunk-jrtrk5z4.js";
|
|
5
|
-
import"../../shared/chunk-
|
|
6
|
-
import"../../shared/chunk-
|
|
7
|
-
import"../../shared/chunk-
|
|
5
|
+
import"../../shared/chunk-kt7127xc.js";
|
|
6
|
+
import"../../shared/chunk-xs4hak0m.js";
|
|
7
|
+
import"../../shared/chunk-2k26a794.js";
|
|
8
8
|
|
|
9
9
|
// src/query/public.ts
|
|
10
10
|
import { isQueryDescriptor } from "@vertz/fetch";
|
|
@@ -267,6 +267,8 @@ type LoaderData<T> = T extends {
|
|
|
267
267
|
* Returns an array of compiled routes preserving definition order.
|
|
268
268
|
*/
|
|
269
269
|
declare function defineRoutes<const T extends Record<string, RouteConfigLike>>(map: T): TypedRoutes<T>;
|
|
270
|
+
/** A single child value: DOM node, string, number, null, undefined, thunk, or nested array. */
|
|
271
|
+
type ChildValue = Node | string | number | null | undefined | ChildValue[] | (() => ChildValue);
|
|
270
272
|
/**
|
|
271
273
|
* A reactive signal that holds a value and notifies subscribers on change.
|
|
272
274
|
*/
|
|
@@ -320,8 +322,8 @@ type UnwrapSignals<T> = T extends object ? { [K in keyof T] : Unwrapped<T[K]> }
|
|
|
320
322
|
interface LinkProps<T extends Record<string, RouteConfigLike> = RouteDefinitionMap> {
|
|
321
323
|
/** The target URL path. */
|
|
322
324
|
href: RoutePaths<T>;
|
|
323
|
-
/**
|
|
324
|
-
children:
|
|
325
|
+
/** Content for the link. Accepts string, Node, arrays, or thunks — same as JSX children. */
|
|
326
|
+
children: ChildValue;
|
|
325
327
|
/** Class applied when the link's href matches the current path. */
|
|
326
328
|
activeClass?: string;
|
|
327
329
|
/** Static class name for the anchor element. */
|
|
@@ -6,24 +6,24 @@ import {
|
|
|
6
6
|
createLink,
|
|
7
7
|
parseSearchParams,
|
|
8
8
|
useSearchParams
|
|
9
|
-
} from "../../shared/chunk-
|
|
10
|
-
import"../../shared/chunk-
|
|
9
|
+
} from "../../shared/chunk-abv8ax3j.js";
|
|
10
|
+
import"../../shared/chunk-pbw64893.js";
|
|
11
11
|
import {
|
|
12
12
|
createRouter
|
|
13
|
-
} from "../../shared/chunk-
|
|
13
|
+
} from "../../shared/chunk-f0f80gxe.js";
|
|
14
14
|
import {
|
|
15
15
|
defineRoutes
|
|
16
16
|
} from "../../shared/chunk-ah86rm07.js";
|
|
17
17
|
import"../../shared/chunk-jrtrk5z4.js";
|
|
18
|
-
import"../../shared/chunk-
|
|
18
|
+
import"../../shared/chunk-29x7mbne.js";
|
|
19
19
|
import"../../shared/chunk-h1fsr8kv.js";
|
|
20
20
|
import {
|
|
21
21
|
RouterContext,
|
|
22
22
|
useParams,
|
|
23
23
|
useRouter
|
|
24
|
-
} from "../../shared/chunk-
|
|
25
|
-
import"../../shared/chunk-
|
|
26
|
-
import"../../shared/chunk-
|
|
24
|
+
} from "../../shared/chunk-dxfd1ptg.js";
|
|
25
|
+
import"../../shared/chunk-xs4hak0m.js";
|
|
26
|
+
import"../../shared/chunk-2k26a794.js";
|
|
27
27
|
export {
|
|
28
28
|
useSearchParams,
|
|
29
29
|
useRouter,
|
package/dist/src/test/index.js
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import {
|
|
2
2
|
createRouter
|
|
3
|
-
} from "../../shared/chunk-
|
|
3
|
+
} from "../../shared/chunk-f0f80gxe.js";
|
|
4
4
|
import {
|
|
5
5
|
defineRoutes
|
|
6
6
|
} from "../../shared/chunk-ah86rm07.js";
|
|
7
7
|
import"../../shared/chunk-jrtrk5z4.js";
|
|
8
|
-
import"../../shared/chunk-
|
|
9
|
-
import"../../shared/chunk-
|
|
8
|
+
import"../../shared/chunk-xs4hak0m.js";
|
|
9
|
+
import"../../shared/chunk-2k26a794.js";
|
|
10
10
|
|
|
11
11
|
// src/test/interactions.ts
|
|
12
12
|
async function click(el) {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@vertz/ui",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.42",
|
|
4
4
|
"description": "Vertz UI framework — signals, components, JSX runtime",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
@@ -77,11 +77,11 @@
|
|
|
77
77
|
"typecheck": "tsc --noEmit"
|
|
78
78
|
},
|
|
79
79
|
"dependencies": {
|
|
80
|
-
"@vertz/fetch": "^0.2.
|
|
80
|
+
"@vertz/fetch": "^0.2.41"
|
|
81
81
|
},
|
|
82
82
|
"devDependencies": {
|
|
83
83
|
"@happy-dom/global-registrator": "^20.7.0",
|
|
84
|
-
"@vertz/schema": "^0.2.
|
|
84
|
+
"@vertz/schema": "^0.2.41",
|
|
85
85
|
"bunup": "^0.16.31",
|
|
86
86
|
"happy-dom": "^20.7.0",
|
|
87
87
|
"typescript": "^5.7.0"
|