praxis-kit 4.0.3 → 4.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/_shared/diagnostics.d.ts +14 -17
- package/dist/{chunk-DRGZ4ZI2.js → chunk-LA6WGQA6.js} +963 -633
- package/dist/contract/index.d.ts +39 -27
- package/dist/lit/index.d.ts +42 -30
- package/dist/lit/index.js +649 -413
- package/dist/preact/index.d.ts +45 -31
- package/dist/preact/index.js +1004 -684
- package/dist/react/index.d.ts +24 -11
- package/dist/react/index.js +21 -143
- package/dist/react/legacy.d.ts +3 -3
- package/dist/react/legacy.js +28 -147
- package/dist/{merge-refs-B0YcfdtP.d.ts → react-options-XrRof248.d.ts} +156 -100
- package/dist/solid/index.d.ts +45 -31
- package/dist/solid/index.js +517 -296
- package/dist/svelte/index.d.ts +55 -34
- package/dist/svelte/index.js +500 -296
- package/dist/tailwind/index.d.ts +29 -22
- package/dist/vite-plugin/index.d.ts +10 -12
- package/dist/vue/index.d.ts +45 -31
- package/dist/vue/index.js +893 -692
- package/dist/web/index.d.ts +43 -31
- package/dist/web/index.js +648 -406
- package/package.json +4 -4
package/dist/lit/index.js
CHANGED
|
@@ -1,11 +1,16 @@
|
|
|
1
|
-
// ../../
|
|
2
|
-
|
|
1
|
+
// ../../lib/adapter-utils/src/runtime/define-component.ts
|
|
2
|
+
function defineContractComponent(options) {
|
|
3
|
+
return (factory) => factory(options);
|
|
4
|
+
}
|
|
3
5
|
|
|
4
|
-
// ../../lib/primitive/src/
|
|
5
|
-
function
|
|
6
|
-
return
|
|
7
|
-
|
|
8
|
-
|
|
6
|
+
// ../../lib/primitive/src/guards/foundational/is-defined.ts
|
|
7
|
+
function isUndefined(value) {
|
|
8
|
+
return value === void 0;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
// ../../lib/primitive/src/guards/foundational/is-null.ts
|
|
12
|
+
function isNull(value) {
|
|
13
|
+
return value === null;
|
|
9
14
|
}
|
|
10
15
|
|
|
11
16
|
// ../../lib/primitive/src/utils/is-object.ts
|
|
@@ -20,195 +25,6 @@ function isNumber(value) {
|
|
|
20
25
|
return typeof value === "number";
|
|
21
26
|
}
|
|
22
27
|
|
|
23
|
-
// ../../lib/primitive/src/utils/assert-never.ts
|
|
24
|
-
function assertNever(value) {
|
|
25
|
-
throw new Error(`Unexpected value: ${String(value)}`);
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
// ../../lib/primitive/src/utils/cn.ts
|
|
29
|
-
import { clsx } from "clsx";
|
|
30
|
-
function cn(...inputs) {
|
|
31
|
-
return clsx(...inputs);
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
// ../../lib/primitive/src/utils/iterate.ts
|
|
35
|
-
function find(iterable, callback) {
|
|
36
|
-
for (const value of iterable) {
|
|
37
|
-
const result = callback(value);
|
|
38
|
-
if (result != null) {
|
|
39
|
-
return result;
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
return null;
|
|
43
|
-
}
|
|
44
|
-
function some(iterable, predicate) {
|
|
45
|
-
for (const value of iterable) {
|
|
46
|
-
if (predicate(value)) return true;
|
|
47
|
-
}
|
|
48
|
-
return false;
|
|
49
|
-
}
|
|
50
|
-
function every(iterable, predicate) {
|
|
51
|
-
let index = 0;
|
|
52
|
-
for (const value of iterable) {
|
|
53
|
-
if (!predicate(value, index++)) {
|
|
54
|
-
return false;
|
|
55
|
-
}
|
|
56
|
-
}
|
|
57
|
-
return true;
|
|
58
|
-
}
|
|
59
|
-
function* filter(iterable, predicate) {
|
|
60
|
-
let index = 0;
|
|
61
|
-
for (const value of iterable) {
|
|
62
|
-
if (predicate(value, index++)) {
|
|
63
|
-
yield value;
|
|
64
|
-
}
|
|
65
|
-
}
|
|
66
|
-
}
|
|
67
|
-
function* map(iterable, callback) {
|
|
68
|
-
let index = 0;
|
|
69
|
-
for (const value of iterable) {
|
|
70
|
-
yield callback(value, index++);
|
|
71
|
-
}
|
|
72
|
-
}
|
|
73
|
-
function forEach(iterable, callback) {
|
|
74
|
-
let index = 0;
|
|
75
|
-
for (const value of iterable) {
|
|
76
|
-
callback(value, index++);
|
|
77
|
-
}
|
|
78
|
-
}
|
|
79
|
-
function reduce(iterable, initial, callback) {
|
|
80
|
-
let accumulator = initial;
|
|
81
|
-
let index = 0;
|
|
82
|
-
for (const value of iterable) {
|
|
83
|
-
accumulator = callback(accumulator, value, index++);
|
|
84
|
-
}
|
|
85
|
-
return accumulator;
|
|
86
|
-
}
|
|
87
|
-
function collect(iterable, callback) {
|
|
88
|
-
const result = {};
|
|
89
|
-
let index = 0;
|
|
90
|
-
for (const value of iterable) {
|
|
91
|
-
const entry = callback(value, index++);
|
|
92
|
-
if (entry === null) {
|
|
93
|
-
return null;
|
|
94
|
-
}
|
|
95
|
-
result[entry[0]] = entry[1];
|
|
96
|
-
}
|
|
97
|
-
return result;
|
|
98
|
-
}
|
|
99
|
-
function findLast(value, callback) {
|
|
100
|
-
for (let index = value.length - 1; index >= 0; index--) {
|
|
101
|
-
const result = callback(value[index], index);
|
|
102
|
-
if (result != null) {
|
|
103
|
-
return result;
|
|
104
|
-
}
|
|
105
|
-
}
|
|
106
|
-
return null;
|
|
107
|
-
}
|
|
108
|
-
function* items(collection) {
|
|
109
|
-
for (let i = 0; i < collection.length; i++) {
|
|
110
|
-
const item = collection.item(i);
|
|
111
|
-
if (item !== null) {
|
|
112
|
-
yield item;
|
|
113
|
-
}
|
|
114
|
-
}
|
|
115
|
-
}
|
|
116
|
-
function nodeList(list) {
|
|
117
|
-
return {
|
|
118
|
-
*[Symbol.iterator]() {
|
|
119
|
-
for (let i = 0; i < list.length; i++) {
|
|
120
|
-
const node = list.item(i);
|
|
121
|
-
if (node !== null) {
|
|
122
|
-
yield node;
|
|
123
|
-
}
|
|
124
|
-
}
|
|
125
|
-
}
|
|
126
|
-
};
|
|
127
|
-
}
|
|
128
|
-
function mapEntries(m) {
|
|
129
|
-
return m.entries();
|
|
130
|
-
}
|
|
131
|
-
function set(s) {
|
|
132
|
-
return s.values();
|
|
133
|
-
}
|
|
134
|
-
function hasOwn(object, key) {
|
|
135
|
-
return Object.hasOwn(object, key);
|
|
136
|
-
}
|
|
137
|
-
function* entries(object) {
|
|
138
|
-
for (const key in object) {
|
|
139
|
-
if (!hasOwn(object, key)) continue;
|
|
140
|
-
yield [key, object[key]];
|
|
141
|
-
}
|
|
142
|
-
}
|
|
143
|
-
function* keys(object) {
|
|
144
|
-
for (const [key] of entries(object)) {
|
|
145
|
-
yield key;
|
|
146
|
-
}
|
|
147
|
-
}
|
|
148
|
-
function* values(object) {
|
|
149
|
-
for (const [, value] of entries(object)) {
|
|
150
|
-
yield value;
|
|
151
|
-
}
|
|
152
|
-
}
|
|
153
|
-
function mapValues(object, callback) {
|
|
154
|
-
const result = {};
|
|
155
|
-
for (const [key, value] of entries(object)) {
|
|
156
|
-
result[key] = callback(value, key);
|
|
157
|
-
}
|
|
158
|
-
return result;
|
|
159
|
-
}
|
|
160
|
-
function forEachEntry(object, callback) {
|
|
161
|
-
for (const [key, value] of entries(object)) {
|
|
162
|
-
callback(key, value);
|
|
163
|
-
}
|
|
164
|
-
}
|
|
165
|
-
function forEachKey(object, callback) {
|
|
166
|
-
for (const key of keys(object)) {
|
|
167
|
-
callback(key);
|
|
168
|
-
}
|
|
169
|
-
}
|
|
170
|
-
function forEachValue(object, callback) {
|
|
171
|
-
for (const value of values(object)) {
|
|
172
|
-
callback(value);
|
|
173
|
-
}
|
|
174
|
-
}
|
|
175
|
-
function forEachSet(s, callback) {
|
|
176
|
-
for (const value of s) {
|
|
177
|
-
callback(value);
|
|
178
|
-
}
|
|
179
|
-
}
|
|
180
|
-
var iterate = Object.freeze({
|
|
181
|
-
entries,
|
|
182
|
-
filter,
|
|
183
|
-
find,
|
|
184
|
-
findLast,
|
|
185
|
-
forEach,
|
|
186
|
-
forEachEntry,
|
|
187
|
-
forEachKey,
|
|
188
|
-
forEachSet,
|
|
189
|
-
forEachValue,
|
|
190
|
-
items,
|
|
191
|
-
keys,
|
|
192
|
-
map,
|
|
193
|
-
mapEntries,
|
|
194
|
-
mapValues,
|
|
195
|
-
nodeList,
|
|
196
|
-
reduce,
|
|
197
|
-
collect,
|
|
198
|
-
set,
|
|
199
|
-
some,
|
|
200
|
-
every,
|
|
201
|
-
values
|
|
202
|
-
});
|
|
203
|
-
|
|
204
|
-
// ../../lib/primitive/src/utils/merge-props.ts
|
|
205
|
-
function mergeProps(defaultProps, props) {
|
|
206
|
-
return {
|
|
207
|
-
...defaultProps ?? {},
|
|
208
|
-
...props
|
|
209
|
-
};
|
|
210
|
-
}
|
|
211
|
-
|
|
212
28
|
// ../../lib/primitive/src/constants/aria/global-aria-attributes.ts
|
|
213
29
|
var GLOBAL_ARIA_ATTRIBUTES = /* @__PURE__ */ new Set([
|
|
214
30
|
"aria-atomic",
|
|
@@ -231,7 +47,7 @@ var GLOBAL_ARIA_ATTRIBUTES = /* @__PURE__ */ new Set([
|
|
|
231
47
|
]);
|
|
232
48
|
|
|
233
49
|
// ../../lib/primitive/src/constants/aria/implicit-role-record.ts
|
|
234
|
-
var IMPLICIT_ROLE_RECORD = {
|
|
50
|
+
var IMPLICIT_ROLE_RECORD = Object.freeze({
|
|
235
51
|
// Landmarks
|
|
236
52
|
article: "article",
|
|
237
53
|
aside: "complementary",
|
|
@@ -267,8 +83,8 @@ var IMPLICIT_ROLE_RECORD = {
|
|
|
267
83
|
meter: "meter",
|
|
268
84
|
output: "status",
|
|
269
85
|
progress: "progressbar"
|
|
270
|
-
};
|
|
271
|
-
var INPUT_TYPE_ROLE_MAP = {
|
|
86
|
+
});
|
|
87
|
+
var INPUT_TYPE_ROLE_MAP = Object.freeze({
|
|
272
88
|
checkbox: "checkbox",
|
|
273
89
|
radio: "radio",
|
|
274
90
|
range: "slider",
|
|
@@ -282,15 +98,17 @@ var INPUT_TYPE_ROLE_MAP = {
|
|
|
282
98
|
submit: "button",
|
|
283
99
|
reset: "button",
|
|
284
100
|
image: "button"
|
|
285
|
-
};
|
|
286
|
-
var STRONG_ROLES = [
|
|
101
|
+
});
|
|
102
|
+
var STRONG_ROLES = Object.freeze([
|
|
287
103
|
"main",
|
|
288
104
|
"navigation",
|
|
289
105
|
"complementary",
|
|
290
106
|
"contentinfo",
|
|
291
107
|
"banner"
|
|
292
|
-
];
|
|
293
|
-
var STANDALONE_ROLES = [
|
|
108
|
+
]);
|
|
109
|
+
var STANDALONE_ROLES = Object.freeze([
|
|
110
|
+
"article"
|
|
111
|
+
]);
|
|
294
112
|
var STRONG_ROLES_SET = new Set(STRONG_ROLES);
|
|
295
113
|
var STANDALONE_ROLES_SET = new Set(STANDALONE_ROLES);
|
|
296
114
|
|
|
@@ -445,16 +263,6 @@ var ROLE_RESTRICTED_ATTRIBUTES = /* @__PURE__ */ new Map([
|
|
|
445
263
|
]
|
|
446
264
|
]);
|
|
447
265
|
|
|
448
|
-
// ../../lib/primitive/src/guards/foundational/is-defined.ts
|
|
449
|
-
function isUndefined(value) {
|
|
450
|
-
return value === void 0;
|
|
451
|
-
}
|
|
452
|
-
|
|
453
|
-
// ../../lib/primitive/src/guards/foundational/is-null.ts
|
|
454
|
-
function isNull(value) {
|
|
455
|
-
return value === null;
|
|
456
|
-
}
|
|
457
|
-
|
|
458
266
|
// ../../lib/primitive/src/guards/aria/is-aria-attribute.ts
|
|
459
267
|
function isGlobalAriaAttribute(attr) {
|
|
460
268
|
return GLOBAL_ARIA_ATTRIBUTES.has(attr);
|
|
@@ -465,49 +273,270 @@ function isAriaAttributeValidForRole(attr, role) {
|
|
|
465
273
|
if (isUndefined(role)) return false;
|
|
466
274
|
return allowedRoles.has(role);
|
|
467
275
|
}
|
|
468
|
-
|
|
469
|
-
// ../../lib/primitive/src/guards/aria/is-aria-role.ts
|
|
470
|
-
function isStrongImplicitRole(tag) {
|
|
471
|
-
if (!(tag in IMPLICIT_ROLE_RECORD)) return false;
|
|
472
|
-
return STRONG_ROLES_SET.has(IMPLICIT_ROLE_RECORD[tag]);
|
|
276
|
+
|
|
277
|
+
// ../../lib/primitive/src/guards/aria/is-aria-role.ts
|
|
278
|
+
function isStrongImplicitRole(tag) {
|
|
279
|
+
if (!(tag in IMPLICIT_ROLE_RECORD)) return false;
|
|
280
|
+
return STRONG_ROLES_SET.has(IMPLICIT_ROLE_RECORD[tag]);
|
|
281
|
+
}
|
|
282
|
+
function isStandaloneTag(tag) {
|
|
283
|
+
if (!(tag in IMPLICIT_ROLE_RECORD)) return false;
|
|
284
|
+
return STANDALONE_ROLES_SET.has(IMPLICIT_ROLE_RECORD[tag]);
|
|
285
|
+
}
|
|
286
|
+
function getInputImplicitRole(type) {
|
|
287
|
+
if (!isString(type) || !(type in INPUT_TYPE_ROLE_MAP)) return void 0;
|
|
288
|
+
return INPUT_TYPE_ROLE_MAP[type];
|
|
289
|
+
}
|
|
290
|
+
function getConditionalImplicitRole(tag, ariaLabel, ariaLabelledBy) {
|
|
291
|
+
const isNamed = isString(ariaLabel) || isString(ariaLabelledBy);
|
|
292
|
+
if (!isNamed) return void 0;
|
|
293
|
+
if (tag === "section") return "region";
|
|
294
|
+
if (tag === "form") return "form";
|
|
295
|
+
return void 0;
|
|
296
|
+
}
|
|
297
|
+
|
|
298
|
+
// ../../lib/contract/src/aria/aria-role-policy.ts
|
|
299
|
+
function getImplicitRole(tag, props) {
|
|
300
|
+
if (tag in IMPLICIT_ROLE_RECORD) return IMPLICIT_ROLE_RECORD[tag];
|
|
301
|
+
if (tag === "input") return getInputImplicitRole(props?.type);
|
|
302
|
+
if (tag === "img") return props?.alt === "" ? "none" : "img";
|
|
303
|
+
if (tag === "section" || tag === "form") {
|
|
304
|
+
return getConditionalImplicitRole(tag, props?.["aria-label"], props?.["aria-labelledby"]);
|
|
305
|
+
}
|
|
306
|
+
return void 0;
|
|
307
|
+
}
|
|
308
|
+
|
|
309
|
+
// ../../lib/primitive/src/tag/resolve-tag.ts
|
|
310
|
+
function makeResolveTag(defaultTag) {
|
|
311
|
+
return function tag(as) {
|
|
312
|
+
return as ?? defaultTag;
|
|
313
|
+
};
|
|
314
|
+
}
|
|
315
|
+
|
|
316
|
+
// ../../lib/primitive/src/utils/assert-never.ts
|
|
317
|
+
function assertNever(value) {
|
|
318
|
+
throw new Error(`Unexpected value: ${String(value)}`);
|
|
319
|
+
}
|
|
320
|
+
|
|
321
|
+
// ../../lib/primitive/src/utils/cn.ts
|
|
322
|
+
import { clsx } from "clsx";
|
|
323
|
+
function cn(...inputs) {
|
|
324
|
+
return clsx(...inputs);
|
|
325
|
+
}
|
|
326
|
+
|
|
327
|
+
// ../../lib/primitive/src/utils/iterate.ts
|
|
328
|
+
function find(iterable, callback) {
|
|
329
|
+
for (const value of iterable) {
|
|
330
|
+
const result = callback(value);
|
|
331
|
+
if (result != null) {
|
|
332
|
+
return result;
|
|
333
|
+
}
|
|
334
|
+
}
|
|
335
|
+
return null;
|
|
336
|
+
}
|
|
337
|
+
function some(iterable, predicate) {
|
|
338
|
+
for (const value of iterable) {
|
|
339
|
+
if (predicate(value)) return true;
|
|
340
|
+
}
|
|
341
|
+
return false;
|
|
342
|
+
}
|
|
343
|
+
function every(iterable, predicate) {
|
|
344
|
+
let index = 0;
|
|
345
|
+
for (const value of iterable) {
|
|
346
|
+
if (!predicate(value, index++)) {
|
|
347
|
+
return false;
|
|
348
|
+
}
|
|
349
|
+
}
|
|
350
|
+
return true;
|
|
351
|
+
}
|
|
352
|
+
function* filter(iterable, predicate) {
|
|
353
|
+
let index = 0;
|
|
354
|
+
for (const value of iterable) {
|
|
355
|
+
if (predicate(value, index++)) {
|
|
356
|
+
yield value;
|
|
357
|
+
}
|
|
358
|
+
}
|
|
359
|
+
}
|
|
360
|
+
function* map(iterable, callback) {
|
|
361
|
+
let index = 0;
|
|
362
|
+
for (const value of iterable) {
|
|
363
|
+
yield callback(value, index++);
|
|
364
|
+
}
|
|
365
|
+
}
|
|
366
|
+
function forEach(iterable, callback) {
|
|
367
|
+
let index = 0;
|
|
368
|
+
for (const value of iterable) {
|
|
369
|
+
callback(value, index++);
|
|
370
|
+
}
|
|
371
|
+
}
|
|
372
|
+
function reduce(iterable, initial, callback) {
|
|
373
|
+
let accumulator = initial;
|
|
374
|
+
let index = 0;
|
|
375
|
+
for (const value of iterable) {
|
|
376
|
+
accumulator = callback(accumulator, value, index++);
|
|
377
|
+
}
|
|
378
|
+
return accumulator;
|
|
379
|
+
}
|
|
380
|
+
function collect(iterable, callback) {
|
|
381
|
+
const result = {};
|
|
382
|
+
let index = 0;
|
|
383
|
+
for (const value of iterable) {
|
|
384
|
+
const entry = callback(value, index++);
|
|
385
|
+
if (entry === null) {
|
|
386
|
+
return null;
|
|
387
|
+
}
|
|
388
|
+
result[entry[0]] = entry[1];
|
|
389
|
+
}
|
|
390
|
+
return result;
|
|
391
|
+
}
|
|
392
|
+
function findLast(value, callback) {
|
|
393
|
+
for (let index = value.length - 1; index >= 0; index--) {
|
|
394
|
+
const result = callback(value[index], index);
|
|
395
|
+
if (result != null) {
|
|
396
|
+
return result;
|
|
397
|
+
}
|
|
398
|
+
}
|
|
399
|
+
return null;
|
|
400
|
+
}
|
|
401
|
+
function* items(collection) {
|
|
402
|
+
for (let i = 0; i < collection.length; i++) {
|
|
403
|
+
const item = collection.item(i);
|
|
404
|
+
if (item !== null) {
|
|
405
|
+
yield item;
|
|
406
|
+
}
|
|
407
|
+
}
|
|
408
|
+
}
|
|
409
|
+
function nodeList(list) {
|
|
410
|
+
return {
|
|
411
|
+
*[Symbol.iterator]() {
|
|
412
|
+
for (let i = 0; i < list.length; i++) {
|
|
413
|
+
const node = list.item(i);
|
|
414
|
+
if (node !== null) {
|
|
415
|
+
yield node;
|
|
416
|
+
}
|
|
417
|
+
}
|
|
418
|
+
}
|
|
419
|
+
};
|
|
420
|
+
}
|
|
421
|
+
function mapEntries(m) {
|
|
422
|
+
return m.entries();
|
|
423
|
+
}
|
|
424
|
+
function set(s) {
|
|
425
|
+
return s.values();
|
|
426
|
+
}
|
|
427
|
+
function hasOwn(object, key) {
|
|
428
|
+
return Object.hasOwn(object, key);
|
|
429
|
+
}
|
|
430
|
+
function* entries(object) {
|
|
431
|
+
for (const key in object) {
|
|
432
|
+
if (!hasOwn(object, key)) continue;
|
|
433
|
+
yield [key, object[key]];
|
|
434
|
+
}
|
|
435
|
+
}
|
|
436
|
+
function* keys(object) {
|
|
437
|
+
for (const [key] of entries(object)) {
|
|
438
|
+
yield key;
|
|
439
|
+
}
|
|
440
|
+
}
|
|
441
|
+
function* values(object) {
|
|
442
|
+
for (const [, value] of entries(object)) {
|
|
443
|
+
yield value;
|
|
444
|
+
}
|
|
445
|
+
}
|
|
446
|
+
function mapValues(object, callback) {
|
|
447
|
+
const result = {};
|
|
448
|
+
for (const [key, value] of entries(object)) {
|
|
449
|
+
result[key] = callback(value, key);
|
|
450
|
+
}
|
|
451
|
+
return result;
|
|
452
|
+
}
|
|
453
|
+
function forEachEntry(object, callback) {
|
|
454
|
+
for (const [key, value] of entries(object)) {
|
|
455
|
+
callback(key, value);
|
|
456
|
+
}
|
|
473
457
|
}
|
|
474
|
-
function
|
|
475
|
-
|
|
476
|
-
|
|
458
|
+
function forEachKey(object, callback) {
|
|
459
|
+
for (const key of keys(object)) {
|
|
460
|
+
callback(key);
|
|
461
|
+
}
|
|
477
462
|
}
|
|
478
|
-
function
|
|
479
|
-
|
|
480
|
-
|
|
463
|
+
function forEachValue(object, callback) {
|
|
464
|
+
for (const value of values(object)) {
|
|
465
|
+
callback(value);
|
|
466
|
+
}
|
|
481
467
|
}
|
|
482
|
-
function
|
|
483
|
-
const
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
if (tag === "form") return "form";
|
|
487
|
-
return void 0;
|
|
468
|
+
function forEachSet(s, callback) {
|
|
469
|
+
for (const value of s) {
|
|
470
|
+
callback(value);
|
|
471
|
+
}
|
|
488
472
|
}
|
|
473
|
+
var iterate = Object.freeze({
|
|
474
|
+
entries,
|
|
475
|
+
filter,
|
|
476
|
+
find,
|
|
477
|
+
findLast,
|
|
478
|
+
forEach,
|
|
479
|
+
forEachEntry,
|
|
480
|
+
forEachKey,
|
|
481
|
+
forEachSet,
|
|
482
|
+
forEachValue,
|
|
483
|
+
items,
|
|
484
|
+
keys,
|
|
485
|
+
map,
|
|
486
|
+
mapEntries,
|
|
487
|
+
mapValues,
|
|
488
|
+
nodeList,
|
|
489
|
+
reduce,
|
|
490
|
+
collect,
|
|
491
|
+
set,
|
|
492
|
+
some,
|
|
493
|
+
every,
|
|
494
|
+
values
|
|
495
|
+
});
|
|
489
496
|
|
|
490
|
-
// ../../lib/
|
|
491
|
-
function
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
out[k] = props[k];
|
|
497
|
-
});
|
|
498
|
-
return out;
|
|
497
|
+
// ../../lib/primitive/src/utils/merge-props.ts
|
|
498
|
+
function mergeProps(defaultProps, props) {
|
|
499
|
+
return {
|
|
500
|
+
...defaultProps ?? {},
|
|
501
|
+
...props
|
|
502
|
+
};
|
|
499
503
|
}
|
|
500
504
|
|
|
501
|
-
// ../../lib/
|
|
502
|
-
|
|
503
|
-
|
|
504
|
-
|
|
505
|
-
|
|
506
|
-
if (
|
|
507
|
-
|
|
505
|
+
// ../../lib/primitive/src/guards/children/component-id.ts
|
|
506
|
+
var COMPONENT_DEFAULT_TAG = /* @__PURE__ */ Symbol.for("praxis.component-default-tag");
|
|
507
|
+
|
|
508
|
+
// ../../lib/primitive/src/guards/children/is-tag.ts
|
|
509
|
+
function getAsProp(child) {
|
|
510
|
+
if (!isObject(child) || !("props" in child)) return void 0;
|
|
511
|
+
const props = child.props;
|
|
512
|
+
if (!isObject(props)) return void 0;
|
|
513
|
+
const as = props.as;
|
|
514
|
+
return isString(as) && as !== "" ? as : void 0;
|
|
515
|
+
}
|
|
516
|
+
function getTag(child) {
|
|
517
|
+
if (!isObject(child) || !("type" in child)) return void 0;
|
|
518
|
+
const t = child.type;
|
|
519
|
+
if (isString(t)) return t;
|
|
520
|
+
if (typeof t === "function" || isObject(t)) {
|
|
521
|
+
const defaultTag = t[COMPONENT_DEFAULT_TAG];
|
|
522
|
+
if (!isString(defaultTag)) return void 0;
|
|
523
|
+
return getAsProp(child) ?? defaultTag;
|
|
508
524
|
}
|
|
509
525
|
return void 0;
|
|
510
526
|
}
|
|
527
|
+
function isTag(...args) {
|
|
528
|
+
if (isString(args[0])) {
|
|
529
|
+
const set3 = new Set(args);
|
|
530
|
+
return (child2) => {
|
|
531
|
+
const tag2 = getTag(child2);
|
|
532
|
+
return tag2 !== void 0 && set3.has(tag2);
|
|
533
|
+
};
|
|
534
|
+
}
|
|
535
|
+
const [child, ...tags] = args;
|
|
536
|
+
const set2 = new Set(tags);
|
|
537
|
+
const tag = getTag(child);
|
|
538
|
+
return tag !== void 0 && set2.has(tag);
|
|
539
|
+
}
|
|
511
540
|
|
|
512
541
|
// ../../lib/contract/src/strict/invariant-base.ts
|
|
513
542
|
var InvariantBase = class {
|
|
@@ -1518,7 +1547,7 @@ function getTypeName(value) {
|
|
|
1518
1547
|
return primitive;
|
|
1519
1548
|
}
|
|
1520
1549
|
const name = value.constructor?.name;
|
|
1521
|
-
return
|
|
1550
|
+
return isString(name) && name !== "Object" ? name : "object";
|
|
1522
1551
|
}
|
|
1523
1552
|
|
|
1524
1553
|
// ../../lib/contract/src/children/normalize-child-rule.ts
|
|
@@ -1769,6 +1798,9 @@ var readonlyProps = ({
|
|
|
1769
1798
|
};
|
|
1770
1799
|
};
|
|
1771
1800
|
|
|
1801
|
+
// ../core/src/html/evaluators.ts
|
|
1802
|
+
import { warnDiagnostics as warnDiagnostics2 } from "../_shared/diagnostics.js";
|
|
1803
|
+
|
|
1772
1804
|
// ../core/src/html/aria-rules.ts
|
|
1773
1805
|
var LANDMARK_TAG_SET = /* @__PURE__ */ new Set(["article", "aside", "footer", "header", "main", "nav"]);
|
|
1774
1806
|
var removeLandmarkRoleOverride = {
|
|
@@ -1811,6 +1843,167 @@ function landmarkNameAdvisory(ctx) {
|
|
|
1811
1843
|
}
|
|
1812
1844
|
var HTML_ARIA_RULES = [landmarkRoleRule, landmarkNameAdvisory];
|
|
1813
1845
|
|
|
1846
|
+
// ../core/src/html/contracts.ts
|
|
1847
|
+
import { warnDiagnostics } from "../_shared/diagnostics.js";
|
|
1848
|
+
function isOpenContent(...blockedTags) {
|
|
1849
|
+
const set2 = new Set(blockedTags);
|
|
1850
|
+
return (child) => isObject(child) && "type" in child && (!isString(child.type) || !set2.has(child.type));
|
|
1851
|
+
}
|
|
1852
|
+
var METADATA_TAGS = ["script", "template"];
|
|
1853
|
+
var metadataMatch = isTag(...METADATA_TAGS);
|
|
1854
|
+
function metadata(name = "metadata") {
|
|
1855
|
+
return { name, match: metadataMatch };
|
|
1856
|
+
}
|
|
1857
|
+
function firstOptional(name, tag) {
|
|
1858
|
+
return { name, match: isTag(tag), cardinality: { max: 1 }, position: "first" };
|
|
1859
|
+
}
|
|
1860
|
+
function contract(children) {
|
|
1861
|
+
return { diagnostics: warnDiagnostics, children };
|
|
1862
|
+
}
|
|
1863
|
+
function ariaContract(aria) {
|
|
1864
|
+
return { diagnostics: warnDiagnostics, aria };
|
|
1865
|
+
}
|
|
1866
|
+
function firstChildContract(name, tag) {
|
|
1867
|
+
return contract([firstOptional(name, tag), { name: "content", match: isOpenContent(tag) }]);
|
|
1868
|
+
}
|
|
1869
|
+
var VOID_TAGS = [
|
|
1870
|
+
"area",
|
|
1871
|
+
"base",
|
|
1872
|
+
"br",
|
|
1873
|
+
"col",
|
|
1874
|
+
"embed",
|
|
1875
|
+
"hr",
|
|
1876
|
+
"img",
|
|
1877
|
+
"input",
|
|
1878
|
+
"link",
|
|
1879
|
+
"meta",
|
|
1880
|
+
"param",
|
|
1881
|
+
"source",
|
|
1882
|
+
"track",
|
|
1883
|
+
"wbr"
|
|
1884
|
+
];
|
|
1885
|
+
var TEXT_ONLY_TAGS = ["option", "script", "style", "textarea", "title"];
|
|
1886
|
+
var LANDMARK_TAGS = ["article", "aside", "footer", "header", "main", "nav"];
|
|
1887
|
+
var listContract = contract([{ name: "list-item", match: isTag("li", ...METADATA_TAGS) }]);
|
|
1888
|
+
var tableContract = contract([
|
|
1889
|
+
firstOptional("caption", "caption"),
|
|
1890
|
+
{ name: "colgroup", match: isTag("colgroup") },
|
|
1891
|
+
{ name: "thead", match: isTag("thead"), cardinality: { max: 1 } },
|
|
1892
|
+
{ name: "tbody", match: isTag("tbody") },
|
|
1893
|
+
{ name: "tfoot", match: isTag("tfoot"), cardinality: { max: 1 } },
|
|
1894
|
+
{ name: "table-row", match: isTag("tr", ...METADATA_TAGS) }
|
|
1895
|
+
]);
|
|
1896
|
+
var tableBodyContract = contract([
|
|
1897
|
+
{ name: "table-row", match: isTag("tr", ...METADATA_TAGS) }
|
|
1898
|
+
]);
|
|
1899
|
+
var tableRowContract = contract([
|
|
1900
|
+
{ name: "table-cell", match: isTag("td", "th", ...METADATA_TAGS) }
|
|
1901
|
+
]);
|
|
1902
|
+
var colgroupContract = contract([{ name: "column", match: isTag("col", "template") }]);
|
|
1903
|
+
var dlContract = contract([
|
|
1904
|
+
{ name: "term", match: isTag("dt") },
|
|
1905
|
+
{ name: "description", match: isTag("dd") },
|
|
1906
|
+
{ name: "group", match: isTag("div") },
|
|
1907
|
+
metadata()
|
|
1908
|
+
]);
|
|
1909
|
+
var selectContract = contract([
|
|
1910
|
+
{ name: "option", match: isTag("option", "optgroup", "hr", ...METADATA_TAGS) }
|
|
1911
|
+
]);
|
|
1912
|
+
var optgroupContract = contract([
|
|
1913
|
+
{ name: "option", match: isTag("option", ...METADATA_TAGS) }
|
|
1914
|
+
]);
|
|
1915
|
+
var datalistContract = contract([
|
|
1916
|
+
{ name: "option", match: isTag("option", ...METADATA_TAGS) }
|
|
1917
|
+
]);
|
|
1918
|
+
var pictureContract = contract([
|
|
1919
|
+
{ name: "source", match: isTag("source", ...METADATA_TAGS) },
|
|
1920
|
+
{ name: "image", match: isTag("img"), cardinality: { min: 1, max: 1 }, position: "last" }
|
|
1921
|
+
]);
|
|
1922
|
+
var figureContract = contract([
|
|
1923
|
+
{ name: "caption", match: isTag("figcaption"), cardinality: { max: 1 } },
|
|
1924
|
+
{ name: "content", match: isOpenContent("figcaption") }
|
|
1925
|
+
]);
|
|
1926
|
+
var detailsContract = firstChildContract("summary", "summary");
|
|
1927
|
+
var fieldsetContract = firstChildContract("legend", "legend");
|
|
1928
|
+
var mediaContract = contract([
|
|
1929
|
+
{ name: "source", match: isTag("source") },
|
|
1930
|
+
{ name: "track", match: isTag("track") },
|
|
1931
|
+
metadata(),
|
|
1932
|
+
{ name: "content", match: isOpenContent("source", "track", ...METADATA_TAGS) }
|
|
1933
|
+
]);
|
|
1934
|
+
var headContract = contract([
|
|
1935
|
+
{
|
|
1936
|
+
name: "metadata",
|
|
1937
|
+
match: isTag("base", "link", "meta", "noscript", "script", "style", "template", "title")
|
|
1938
|
+
}
|
|
1939
|
+
]);
|
|
1940
|
+
var htmlContract = contract([
|
|
1941
|
+
{ name: "head", match: isTag("head"), cardinality: { min: 1, max: 1 }, position: "first" },
|
|
1942
|
+
{ name: "body", match: isTag("body"), cardinality: { min: 1, max: 1 } }
|
|
1943
|
+
]);
|
|
1944
|
+
var voidContract = contract([]);
|
|
1945
|
+
var textOnlyContract = contract([
|
|
1946
|
+
{
|
|
1947
|
+
name: "text",
|
|
1948
|
+
match: (child) => isString(child) || isNumber(child)
|
|
1949
|
+
}
|
|
1950
|
+
]);
|
|
1951
|
+
var landmarkContract = ariaContract([landmarkRoleRule, landmarkNameAdvisory]);
|
|
1952
|
+
var dialogContract = ariaContract([requireAccessibleName]);
|
|
1953
|
+
var menuContract = ariaContract([requireAccessibleName]);
|
|
1954
|
+
var menubarContract = ariaContract([requireAccessibleName]);
|
|
1955
|
+
var treeContract = ariaContract([requireAccessibleName]);
|
|
1956
|
+
var gridContract = ariaContract([requireAccessibleName]);
|
|
1957
|
+
var listboxContract = ariaContract([requireAccessibleName]);
|
|
1958
|
+
var tablistContract = ariaContract([requireAccessibleName]);
|
|
1959
|
+
var radiogroupContract = ariaContract([requireAccessibleName]);
|
|
1960
|
+
var CONTRACT_GROUPS = [
|
|
1961
|
+
[VOID_TAGS, voidContract],
|
|
1962
|
+
[TEXT_ONLY_TAGS, textOnlyContract],
|
|
1963
|
+
[LANDMARK_TAGS, landmarkContract],
|
|
1964
|
+
[["ul", "ol", "menu"], listContract],
|
|
1965
|
+
[["audio", "video"], mediaContract],
|
|
1966
|
+
[["thead", "tbody", "tfoot"], tableBodyContract]
|
|
1967
|
+
];
|
|
1968
|
+
function contractMap(groups) {
|
|
1969
|
+
return Object.fromEntries(
|
|
1970
|
+
groups.flatMap(([tags, enforcement]) => tags.map((tag) => [tag, enforcement]))
|
|
1971
|
+
);
|
|
1972
|
+
}
|
|
1973
|
+
var htmlContracts = {
|
|
1974
|
+
...contractMap(CONTRACT_GROUPS),
|
|
1975
|
+
table: tableContract,
|
|
1976
|
+
tr: tableRowContract,
|
|
1977
|
+
colgroup: colgroupContract,
|
|
1978
|
+
dl: dlContract,
|
|
1979
|
+
select: selectContract,
|
|
1980
|
+
optgroup: optgroupContract,
|
|
1981
|
+
datalist: datalistContract,
|
|
1982
|
+
picture: pictureContract,
|
|
1983
|
+
figure: figureContract,
|
|
1984
|
+
details: detailsContract,
|
|
1985
|
+
fieldset: fieldsetContract,
|
|
1986
|
+
dialog: dialogContract,
|
|
1987
|
+
head: headContract,
|
|
1988
|
+
html: htmlContract
|
|
1989
|
+
};
|
|
1990
|
+
|
|
1991
|
+
// ../core/src/html/evaluators.ts
|
|
1992
|
+
var htmlDiagnostics = warnDiagnostics2;
|
|
1993
|
+
function buildEvaluatorMap() {
|
|
1994
|
+
const map2 = /* @__PURE__ */ new Map();
|
|
1995
|
+
iterate.forEachEntry(htmlContracts, (tag, { children }) => {
|
|
1996
|
+
if (children?.length) {
|
|
1997
|
+
map2.set(tag, new ChildrenEvaluator(children, htmlDiagnostics, `<${tag}>`));
|
|
1998
|
+
}
|
|
1999
|
+
});
|
|
2000
|
+
return map2;
|
|
2001
|
+
}
|
|
2002
|
+
var HTML_EVALUATORS = buildEvaluatorMap();
|
|
2003
|
+
function getHtmlChildrenEvaluator(tag) {
|
|
2004
|
+
return typeof tag === "string" ? HTML_EVALUATORS.get(tag) : void 0;
|
|
2005
|
+
}
|
|
2006
|
+
|
|
1814
2007
|
// ../core/src/html/prop-normalizers.ts
|
|
1815
2008
|
var HTML_FORM_NORMALIZERS = /* @__PURE__ */ new Map([
|
|
1816
2009
|
["button", [disabledProps]],
|
|
@@ -1998,6 +2191,19 @@ function createClassPipeline(resolved) {
|
|
|
1998
2191
|
};
|
|
1999
2192
|
}
|
|
2000
2193
|
|
|
2194
|
+
// ../../lib/pipeline-kit/src/factory/define-pipeline.ts
|
|
2195
|
+
function definePipeline(factory) {
|
|
2196
|
+
const cache = /* @__PURE__ */ new WeakMap();
|
|
2197
|
+
return (resolved) => {
|
|
2198
|
+
let pipeline = cache.get(resolved);
|
|
2199
|
+
if (!pipeline) {
|
|
2200
|
+
pipeline = factory(resolved);
|
|
2201
|
+
cache.set(resolved, pipeline);
|
|
2202
|
+
}
|
|
2203
|
+
return pipeline;
|
|
2204
|
+
};
|
|
2205
|
+
}
|
|
2206
|
+
|
|
2001
2207
|
// ../core/src/options/resolve-factory-options.ts
|
|
2002
2208
|
import { silentDiagnostics } from "../_shared/diagnostics.js";
|
|
2003
2209
|
var EMPTY_VARIANT_KEYS = /* @__PURE__ */ new Set();
|
|
@@ -2133,89 +2339,82 @@ function guardPipeline(pipeline) {
|
|
|
2133
2339
|
};
|
|
2134
2340
|
}
|
|
2135
2341
|
|
|
2136
|
-
// ../core/src/factory/create-
|
|
2137
|
-
var
|
|
2138
|
-
|
|
2139
|
-
|
|
2140
|
-
|
|
2141
|
-
|
|
2142
|
-
|
|
2143
|
-
|
|
2144
|
-
|
|
2342
|
+
// ../core/src/factory/create-polymorphic2.ts
|
|
2343
|
+
var createTagPipeline = (resolved) => makeResolveTag(resolved.defaultTag);
|
|
2344
|
+
var createPropsPipeline = (resolved) => (props) => mergeProps(resolved.defaultProps, props);
|
|
2345
|
+
var createHtmlPropNormalizersPipeline = () => getHtmlPropNormalizers;
|
|
2346
|
+
var createHtmlChildrenEvaluatorPipeline = () => getHtmlChildrenEvaluator;
|
|
2347
|
+
var createStylingClassPipeline = (resolved) => createClassPipeline(resolved);
|
|
2348
|
+
function resolveAriaRules(resolved) {
|
|
2349
|
+
return [.../* @__PURE__ */ new Set([...HTML_ARIA_RULES, ...resolved.ariaRules ?? []])];
|
|
2350
|
+
}
|
|
2351
|
+
var createAriaPipeline = (resolved) => {
|
|
2352
|
+
const rules = resolveAriaRules(resolved);
|
|
2353
|
+
const engine = new AriaPolicyEngine(resolved.diagnostics, rules.length ? { rules } : void 0);
|
|
2354
|
+
return (tag, props) => engine.validate(tag, props);
|
|
2355
|
+
};
|
|
2356
|
+
var memoizedTagPipeline = definePipeline(createTagPipeline);
|
|
2357
|
+
var memoizedPropsPipeline = definePipeline(createPropsPipeline);
|
|
2358
|
+
var memoizedHtmlPropNormalizersPipeline = definePipeline(createHtmlPropNormalizersPipeline);
|
|
2359
|
+
var memoizedHtmlChildrenEvaluatorPipeline = definePipeline(createHtmlChildrenEvaluatorPipeline);
|
|
2360
|
+
var memoizedClassPipeline = definePipeline(createStylingClassPipeline);
|
|
2361
|
+
var memoizedAriaPipeline = definePipeline(createAriaPipeline);
|
|
2362
|
+
function resolveAriaPassthrough(_tag, props) {
|
|
2363
|
+
return { props };
|
|
2364
|
+
}
|
|
2365
|
+
function resolveClassPlugin(factory, resolved, diagnostics) {
|
|
2366
|
+
if (!factory) return { pluginResult: void 0, classPipeline: memoizedClassPipeline(resolved) };
|
|
2145
2367
|
const pluginResult = factory(resolved, diagnostics);
|
|
2146
2368
|
assertPluginShape(pluginResult);
|
|
2147
|
-
|
|
2148
|
-
return { pluginResult, classPipeline };
|
|
2369
|
+
return { pluginResult, classPipeline: guardPipeline(pluginResult.pipeline) };
|
|
2149
2370
|
}
|
|
2150
|
-
function
|
|
2151
|
-
|
|
2152
|
-
|
|
2153
|
-
|
|
2154
|
-
|
|
2155
|
-
|
|
2371
|
+
function createPolymorphic2(options = {}) {
|
|
2372
|
+
const baseResolved = resolveFactoryOptions(options);
|
|
2373
|
+
const anyBaseResolved = baseResolved;
|
|
2374
|
+
const resolved = Object.freeze({
|
|
2375
|
+
...baseResolved,
|
|
2376
|
+
htmlPropNormalizersFn: memoizedHtmlPropNormalizersPipeline(anyBaseResolved),
|
|
2377
|
+
htmlChildrenEvaluatorFn: memoizedHtmlChildrenEvaluatorPipeline(anyBaseResolved)
|
|
2378
|
+
});
|
|
2379
|
+
const anyResolved = resolved;
|
|
2380
|
+
if (process.env.NODE_ENV !== "production") {
|
|
2381
|
+
validateFactoryOptions(resolved, resolved.diagnostics);
|
|
2382
|
+
}
|
|
2383
|
+
const { pluginResult, classPipeline } = resolveClassPlugin(
|
|
2384
|
+
options.styling?.plugin,
|
|
2385
|
+
anyResolved,
|
|
2386
|
+
resolved.diagnostics
|
|
2387
|
+
);
|
|
2388
|
+
const resolveTag2 = memoizedTagPipeline(anyResolved);
|
|
2389
|
+
const resolveProps = memoizedPropsPipeline(anyResolved);
|
|
2390
|
+
const resolveAriaFn = options.enforcement !== void 0 ? memoizedAriaPipeline(anyResolved) : resolveAriaPassthrough;
|
|
2391
|
+
const methods = {
|
|
2392
|
+
resolveTag: resolveTag2,
|
|
2393
|
+
resolveProps,
|
|
2156
2394
|
resolveClasses(tag, props, className, recipe) {
|
|
2157
2395
|
if (process.env.NODE_ENV !== "production") {
|
|
2158
|
-
validateRenderProps(
|
|
2396
|
+
validateRenderProps(resolved.diagnostics, resolved, props, recipe);
|
|
2159
2397
|
}
|
|
2160
2398
|
return classPipeline(tag, props, className, recipe);
|
|
2161
2399
|
},
|
|
2162
2400
|
resolveAria(tag, props) {
|
|
2163
|
-
|
|
2164
|
-
const result = engine.validate(tag, props);
|
|
2165
|
-
return { props: result.props };
|
|
2401
|
+
return resolveAriaFn(tag, props);
|
|
2166
2402
|
}
|
|
2167
2403
|
};
|
|
2168
|
-
}
|
|
2169
|
-
|
|
2170
|
-
return pluginResult ? { ...methods, options: resolved, hasStyling: true, classPlugin: pluginResult } : { ...methods, options: resolved };
|
|
2171
|
-
}
|
|
2172
|
-
function createPolymorphic(options = {}, capabilities) {
|
|
2173
|
-
const baseResolved = resolveFactoryOptions(options);
|
|
2174
|
-
const resolved = capabilities?.htmlPropNormalizersFn !== void 0 ? Object.freeze({
|
|
2175
|
-
...baseResolved,
|
|
2176
|
-
htmlPropNormalizersFn: capabilities.htmlPropNormalizersFn
|
|
2177
|
-
}) : baseResolved;
|
|
2178
|
-
if (process.env.NODE_ENV !== "production") {
|
|
2179
|
-
validateFactoryOptions(resolved, resolved.diagnostics);
|
|
2180
|
-
}
|
|
2181
|
-
const { pluginResult, classPipeline } = resolveClassPipeline(
|
|
2182
|
-
options,
|
|
2183
|
-
resolved,
|
|
2184
|
-
resolved.diagnostics,
|
|
2185
|
-
capabilities
|
|
2186
|
-
);
|
|
2187
|
-
const allAriaRules = [
|
|
2188
|
-
.../* @__PURE__ */ new Set([...capabilities?.htmlAriaRules ?? [], ...resolved.ariaRules ?? []])
|
|
2189
|
-
];
|
|
2190
|
-
const engine = options.enforcement !== void 0 && capabilities?.AriaEngine ? new capabilities.AriaEngine(
|
|
2191
|
-
resolved.diagnostics,
|
|
2192
|
-
allAriaRules.length ? { rules: allAriaRules } : void 0
|
|
2193
|
-
) : null;
|
|
2194
|
-
const methods = createRuntimeMethods(resolved, classPipeline, engine, resolved.diagnostics);
|
|
2195
|
-
return createRuntimeObject(
|
|
2196
|
-
methods,
|
|
2197
|
-
resolved,
|
|
2198
|
-
pluginResult
|
|
2199
|
-
);
|
|
2200
|
-
}
|
|
2201
|
-
|
|
2202
|
-
// ../core/src/factory/create-polymorphic-full.ts
|
|
2203
|
-
var FULL_CAPABILITIES = {
|
|
2204
|
-
createClassPipeline,
|
|
2205
|
-
AriaEngine: AriaPolicyEngine,
|
|
2206
|
-
htmlAriaRules: HTML_ARIA_RULES,
|
|
2207
|
-
htmlPropNormalizersFn: getHtmlPropNormalizers
|
|
2208
|
-
};
|
|
2209
|
-
function createPolymorphic2(options = {}) {
|
|
2210
|
-
return createPolymorphic(options, FULL_CAPABILITIES);
|
|
2404
|
+
const runtimeObject = pluginResult ? { ...methods, options: resolved, hasStyling: true, classPlugin: pluginResult } : { ...methods, options: resolved };
|
|
2405
|
+
return runtimeObject;
|
|
2211
2406
|
}
|
|
2212
2407
|
|
|
2213
|
-
//
|
|
2214
|
-
|
|
2215
|
-
|
|
2408
|
+
// ../core/src/resolver/resolver.ts
|
|
2409
|
+
import { silentDiagnostics as silentDiagnostics2 } from "../_shared/diagnostics.js";
|
|
2410
|
+
function enforceAllowedAs(tag, allowedAs, diagnostics, displayName) {
|
|
2411
|
+
if (allowedAs.includes(tag)) return;
|
|
2412
|
+
if (!diagnostics) return;
|
|
2413
|
+
const component = displayName ?? String(tag);
|
|
2414
|
+
diagnostics.error(ContractDiagnostics.allowedAsViolation(String(tag), allowedAs, component));
|
|
2216
2415
|
}
|
|
2217
2416
|
|
|
2218
|
-
// ../../lib/adapter-utils/src/build-core-runtime.ts
|
|
2417
|
+
// ../../lib/adapter-utils/src/runtime/build-core-runtime.ts
|
|
2219
2418
|
var EMPTY_SET = /* @__PURE__ */ new Set();
|
|
2220
2419
|
function buildCoreRuntime(normalized) {
|
|
2221
2420
|
const runtime = createPolymorphic2(normalized);
|
|
@@ -2223,22 +2422,13 @@ function buildCoreRuntime(normalized) {
|
|
|
2223
2422
|
return { runtime, ownedKeys };
|
|
2224
2423
|
}
|
|
2225
2424
|
|
|
2226
|
-
// ../../lib/adapter-utils/src/build-engines.ts
|
|
2425
|
+
// ../../lib/adapter-utils/src/runtime/build-engines.ts
|
|
2227
2426
|
function buildEngines(diagnostics, childRules, context) {
|
|
2228
2427
|
return childRules?.length ? { childrenEvaluator: new ChildrenEvaluator(childRules, diagnostics, context) } : {};
|
|
2229
2428
|
}
|
|
2230
2429
|
|
|
2231
|
-
// ../../lib/adapter-utils/src/
|
|
2232
|
-
|
|
2233
|
-
const defaultFilter = (key, variantKeys) => variantKeys.has(key) || ownedKeys.has(key);
|
|
2234
|
-
if (!filterProps) {
|
|
2235
|
-
return defaultFilter;
|
|
2236
|
-
}
|
|
2237
|
-
return (key, variantKeys) => defaultFilter(key, variantKeys) || filterProps(key, variantKeys);
|
|
2238
|
-
}
|
|
2239
|
-
|
|
2240
|
-
// ../../lib/adapter-utils/src/resolve-adapter-common-options.ts
|
|
2241
|
-
import { throwDiagnostics as throwDiagnostics2, silentDiagnostics as silentDiagnostics2 } from "../_shared/diagnostics.js";
|
|
2430
|
+
// ../../lib/adapter-utils/src/runtime/resolve-adapter-common-options.ts
|
|
2431
|
+
import { throwDiagnostics as throwDiagnostics2, silentDiagnostics as silentDiagnostics3 } from "../_shared/diagnostics.js";
|
|
2242
2432
|
function resolveAdapterCommonOptions(options, defaultName = "PolymorphicComponent", defaultDiagnostics = throwDiagnostics2) {
|
|
2243
2433
|
return {
|
|
2244
2434
|
name: options.name ?? defaultName,
|
|
@@ -2246,36 +2436,27 @@ function resolveAdapterCommonOptions(options, defaultName = "PolymorphicComponen
|
|
|
2246
2436
|
};
|
|
2247
2437
|
}
|
|
2248
2438
|
|
|
2249
|
-
// ../../
|
|
2250
|
-
|
|
2251
|
-
|
|
2252
|
-
|
|
2253
|
-
|
|
2254
|
-
|
|
2255
|
-
|
|
2256
|
-
}
|
|
2257
|
-
|
|
2258
|
-
const { filterProps: customFilter, enforcement } = options;
|
|
2259
|
-
const normalized = normalizeOptions(options);
|
|
2260
|
-
const { runtime, ownedKeys } = buildCoreRuntime(normalized);
|
|
2261
|
-
const { childrenEvaluator } = buildEngines(
|
|
2262
|
-
normalized.diagnostics,
|
|
2263
|
-
enforcement?.children,
|
|
2264
|
-
normalized.name
|
|
2265
|
-
);
|
|
2266
|
-
const filterProps = composeFilter(ownedKeys, customFilter);
|
|
2267
|
-
return {
|
|
2268
|
-
runtime,
|
|
2269
|
-
filterProps,
|
|
2270
|
-
...childrenEvaluator !== void 0 && { childrenEvaluator }
|
|
2271
|
-
};
|
|
2439
|
+
// ../../lib/adapter-utils/src/props/apply-filter.ts
|
|
2440
|
+
function applyFilter(props, filterProps, variantKeys) {
|
|
2441
|
+
const out = {};
|
|
2442
|
+
iterate.forEachEntry(props, (k) => {
|
|
2443
|
+
if (!Object.hasOwn(props, k)) return;
|
|
2444
|
+
if (filterProps(k, variantKeys)) return;
|
|
2445
|
+
out[k] = props[k];
|
|
2446
|
+
});
|
|
2447
|
+
return out;
|
|
2272
2448
|
}
|
|
2273
2449
|
|
|
2274
|
-
// ../../
|
|
2275
|
-
|
|
2276
|
-
|
|
2277
|
-
|
|
2450
|
+
// ../../lib/adapter-utils/src/props/compose-filter.ts
|
|
2451
|
+
function composeFilter(ownedKeys, filterProps) {
|
|
2452
|
+
const defaultFilter = (key, variantKeys) => variantKeys.has(key) || ownedKeys.has(key);
|
|
2453
|
+
if (!filterProps) {
|
|
2454
|
+
return defaultFilter;
|
|
2455
|
+
}
|
|
2456
|
+
return (key, variantKeys) => defaultFilter(key, variantKeys) || filterProps(key, variantKeys);
|
|
2278
2457
|
}
|
|
2458
|
+
|
|
2459
|
+
// ../../lib/adapter-utils/src/render/render-to-string.ts
|
|
2279
2460
|
function escapeAttr(value) {
|
|
2280
2461
|
return value.replace(/&/g, "&").replace(/"/g, """).replace(/</g, "<");
|
|
2281
2462
|
}
|
|
@@ -2289,51 +2470,51 @@ function buildAttrString(attributes) {
|
|
|
2289
2470
|
parts.push(`${key}="${escapeAttr(String(value))}"`);
|
|
2290
2471
|
}
|
|
2291
2472
|
});
|
|
2292
|
-
return parts.length > 0 ?
|
|
2473
|
+
return parts.length > 0 ? ` ${parts.join(" ")}` : "";
|
|
2293
2474
|
}
|
|
2294
|
-
function
|
|
2295
|
-
const
|
|
2296
|
-
|
|
2297
|
-
|
|
2298
|
-
|
|
2299
|
-
`[renderToString] ${name} was not registered for SSR. Ensure it was created with createContractComponent from @praxis-kit/lit.`
|
|
2300
|
-
);
|
|
2301
|
-
}
|
|
2302
|
-
const { bundle } = entry;
|
|
2475
|
+
function renderBundleToString(bundle, props = {}, innerHTML = "") {
|
|
2476
|
+
const {
|
|
2477
|
+
filterProps,
|
|
2478
|
+
runtime: { options, resolveAria, resolveClasses, resolveProps, resolveTag: resolveTag2 }
|
|
2479
|
+
} = bundle;
|
|
2303
2480
|
const { as, className, recipe, class: classAttr, ...rest } = props;
|
|
2304
|
-
const tag =
|
|
2305
|
-
|
|
2306
|
-
|
|
2481
|
+
const tag = resolveTag2(as);
|
|
2482
|
+
if (options.allowedAs !== void 0) {
|
|
2483
|
+
enforceAllowedAs(tag, options.allowedAs, options.diagnostics, options.displayName);
|
|
2484
|
+
}
|
|
2485
|
+
const mergedProps = resolveProps(rest);
|
|
2486
|
+
const normalizedProps = typeof options.normalizeFn === "function" ? options.normalizeFn(mergedProps) : mergedProps;
|
|
2487
|
+
const htmlNormalizers = options.htmlPropNormalizersFn?.(tag);
|
|
2488
|
+
const finalProps = { ...normalizedProps };
|
|
2489
|
+
if (htmlNormalizers) {
|
|
2490
|
+
for (const normalize of htmlNormalizers) {
|
|
2491
|
+
Object.assign(finalProps, normalize(finalProps));
|
|
2492
|
+
}
|
|
2493
|
+
}
|
|
2494
|
+
const resolvedClass = resolveClasses(
|
|
2307
2495
|
tag,
|
|
2308
|
-
|
|
2496
|
+
finalProps,
|
|
2309
2497
|
// Accept both React-style className and HTML-native class
|
|
2310
2498
|
className ?? classAttr,
|
|
2311
2499
|
recipe
|
|
2312
2500
|
);
|
|
2313
|
-
const ariaResult =
|
|
2314
|
-
const filtered = applyFilter(
|
|
2315
|
-
ariaResult.props,
|
|
2316
|
-
bundle.filterProps,
|
|
2317
|
-
bundle.runtime.options.variantKeys
|
|
2318
|
-
);
|
|
2501
|
+
const ariaResult = resolveAria(tag, finalProps);
|
|
2502
|
+
const filtered = applyFilter(ariaResult.props, filterProps, options.variantKeys);
|
|
2319
2503
|
const attrs = { ...filtered, class: resolvedClass || void 0 };
|
|
2320
2504
|
const attrStr = buildAttrString(attrs);
|
|
2321
2505
|
return `<${tag}${attrStr}>${innerHTML}</${tag}>`;
|
|
2322
2506
|
}
|
|
2323
2507
|
|
|
2324
|
-
// ../../
|
|
2325
|
-
function isObject2(value) {
|
|
2326
|
-
return typeof value === "object" && value !== null;
|
|
2327
|
-
}
|
|
2508
|
+
// ../../lib/adapter-utils/src/render/host-state.ts
|
|
2328
2509
|
function isLooseBundle(arg) {
|
|
2329
|
-
if (!
|
|
2510
|
+
if (!isObject(arg)) return false;
|
|
2330
2511
|
const { runtime, filterProps, childrenEvaluator } = arg;
|
|
2331
|
-
if (!
|
|
2332
|
-
if (!
|
|
2512
|
+
if (!isObject(runtime)) return false;
|
|
2513
|
+
if (!isObject(runtime["options"])) return false;
|
|
2333
2514
|
if (typeof runtime["resolveTag"] !== "function" || typeof runtime["resolveProps"] !== "function" || typeof runtime["resolveClasses"] !== "function" || typeof runtime["resolveAria"] !== "function")
|
|
2334
2515
|
return false;
|
|
2335
2516
|
if (typeof filterProps !== "function") return false;
|
|
2336
|
-
if (childrenEvaluator !== void 0 && (!
|
|
2517
|
+
if (childrenEvaluator !== void 0 && (!isObject(childrenEvaluator) || typeof childrenEvaluator["evaluate"] !== "function"))
|
|
2337
2518
|
return false;
|
|
2338
2519
|
return true;
|
|
2339
2520
|
}
|
|
@@ -2345,41 +2526,46 @@ function toLooseBundle(bundle) {
|
|
|
2345
2526
|
}
|
|
2346
2527
|
function resolveHostState(bundle, props) {
|
|
2347
2528
|
const { as, className, recipe, ...rest } = props;
|
|
2348
|
-
const
|
|
2349
|
-
const
|
|
2350
|
-
|
|
2351
|
-
|
|
2352
|
-
|
|
2353
|
-
const
|
|
2529
|
+
const { options, resolveAria, resolveClasses, resolveProps, resolveTag: resolveTag2 } = bundle.runtime;
|
|
2530
|
+
const tag = resolveTag2(as);
|
|
2531
|
+
if (options.allowedAs !== void 0) {
|
|
2532
|
+
enforceAllowedAs(tag, options.allowedAs, options.diagnostics, options.displayName);
|
|
2533
|
+
}
|
|
2534
|
+
const mergedProps = resolveProps(rest);
|
|
2535
|
+
const normalizedProps = typeof options.normalizeFn === "function" ? options.normalizeFn(mergedProps) : mergedProps;
|
|
2536
|
+
const htmlNormalizers = options.htmlPropNormalizersFn?.(tag);
|
|
2537
|
+
const finalProps = { ...normalizedProps };
|
|
2538
|
+
if (htmlNormalizers) {
|
|
2539
|
+
for (const normalize of htmlNormalizers) {
|
|
2540
|
+
Object.assign(finalProps, normalize(finalProps));
|
|
2541
|
+
}
|
|
2542
|
+
}
|
|
2543
|
+
const resolvedClass = resolveClasses(
|
|
2354
2544
|
tag,
|
|
2355
|
-
|
|
2545
|
+
finalProps,
|
|
2356
2546
|
className,
|
|
2357
2547
|
recipe
|
|
2358
2548
|
);
|
|
2359
|
-
const ariaResult =
|
|
2360
|
-
const attributes = applyFilter(
|
|
2361
|
-
ariaResult.props,
|
|
2362
|
-
bundle.filterProps,
|
|
2363
|
-
bundle.runtime.options.variantKeys
|
|
2364
|
-
);
|
|
2549
|
+
const ariaResult = resolveAria(tag, finalProps);
|
|
2550
|
+
const attributes = applyFilter(ariaResult.props, bundle.filterProps, options.variantKeys);
|
|
2365
2551
|
return { className: resolvedClass, attributes };
|
|
2366
2552
|
}
|
|
2367
|
-
function
|
|
2553
|
+
function diffAndApplyAttributes(host, state, prevPipelineAttrs, incomingProps) {
|
|
2554
|
+
const hasOwn2 = Object.hasOwn;
|
|
2555
|
+
const attrs = state.attributes;
|
|
2368
2556
|
host.className = state.className;
|
|
2369
|
-
|
|
2370
|
-
if (!
|
|
2371
|
-
|
|
2372
|
-
}
|
|
2373
|
-
});
|
|
2557
|
+
for (const key of prevPipelineAttrs) {
|
|
2558
|
+
if (!hasOwn2(attrs, key)) host.removeAttribute(key);
|
|
2559
|
+
}
|
|
2374
2560
|
prevPipelineAttrs.clear();
|
|
2375
|
-
|
|
2376
|
-
if (!
|
|
2377
|
-
if (!key.startsWith("aria-") && key !== "role")
|
|
2378
|
-
if (!
|
|
2379
|
-
}
|
|
2380
|
-
|
|
2381
|
-
if (!
|
|
2382
|
-
const value =
|
|
2561
|
+
for (const key in incomingProps) {
|
|
2562
|
+
if (!hasOwn2(incomingProps, key)) continue;
|
|
2563
|
+
if (!key.startsWith("aria-") && key !== "role") continue;
|
|
2564
|
+
if (!hasOwn2(attrs, key)) host.removeAttribute(key);
|
|
2565
|
+
}
|
|
2566
|
+
for (const key in attrs) {
|
|
2567
|
+
if (!hasOwn2(attrs, key)) continue;
|
|
2568
|
+
const value = attrs[key];
|
|
2383
2569
|
if (value === void 0 || value === null || value === false) {
|
|
2384
2570
|
host.removeAttribute(key);
|
|
2385
2571
|
} else if (value === true) {
|
|
@@ -2389,8 +2575,54 @@ function applyHostState(host, state, prevPipelineAttrs, incomingProps) {
|
|
|
2389
2575
|
host.setAttribute(key, String(value));
|
|
2390
2576
|
prevPipelineAttrs.add(key);
|
|
2391
2577
|
}
|
|
2392
|
-
}
|
|
2578
|
+
}
|
|
2579
|
+
}
|
|
2580
|
+
|
|
2581
|
+
// ../../adapters/lit/src/create-contract-component.ts
|
|
2582
|
+
import { LitElement, html } from "lit";
|
|
2583
|
+
|
|
2584
|
+
// ../../adapters/lit/src/build-runtime.ts
|
|
2585
|
+
import { silentDiagnostics as silentDiagnostics4 } from "../_shared/diagnostics.js";
|
|
2586
|
+
function normalizeOptions(options) {
|
|
2587
|
+
return {
|
|
2588
|
+
...options,
|
|
2589
|
+
...resolveAdapterCommonOptions(options, "PolymorphicElement", silentDiagnostics4)
|
|
2590
|
+
};
|
|
2591
|
+
}
|
|
2592
|
+
function buildRuntime(options) {
|
|
2593
|
+
const { filterProps: customFilter, enforcement } = options;
|
|
2594
|
+
const normalized = normalizeOptions(options);
|
|
2595
|
+
const { runtime, ownedKeys } = buildCoreRuntime(normalized);
|
|
2596
|
+
const { childrenEvaluator } = buildEngines(
|
|
2597
|
+
normalized.diagnostics,
|
|
2598
|
+
enforcement?.children,
|
|
2599
|
+
normalized.name
|
|
2600
|
+
);
|
|
2601
|
+
const filterProps = composeFilter(ownedKeys, customFilter);
|
|
2602
|
+
return {
|
|
2603
|
+
runtime,
|
|
2604
|
+
filterProps,
|
|
2605
|
+
...childrenEvaluator !== void 0 && { childrenEvaluator }
|
|
2606
|
+
};
|
|
2607
|
+
}
|
|
2608
|
+
|
|
2609
|
+
// ../../adapters/lit/src/render-to-string.ts
|
|
2610
|
+
var ssrRegistry = /* @__PURE__ */ new WeakMap();
|
|
2611
|
+
function registerForSsr(cls, bundle) {
|
|
2612
|
+
ssrRegistry.set(cls, { bundle });
|
|
2613
|
+
}
|
|
2614
|
+
function renderToString(component, props = {}, innerHTML = "") {
|
|
2615
|
+
const entry = ssrRegistry.get(component);
|
|
2616
|
+
if (!entry) {
|
|
2617
|
+
const name = component.name ?? "AnonymousComponent";
|
|
2618
|
+
throw new Error(
|
|
2619
|
+
`[renderToString] ${name} was not registered for SSR. Ensure it was created with createContractComponent from @praxis-kit/lit.`
|
|
2620
|
+
);
|
|
2621
|
+
}
|
|
2622
|
+
return renderBundleToString(entry.bundle, props, innerHTML);
|
|
2393
2623
|
}
|
|
2624
|
+
|
|
2625
|
+
// ../../adapters/lit/src/create-contract-component.ts
|
|
2394
2626
|
function createContractComponent(options) {
|
|
2395
2627
|
const bundle = buildRuntime(options);
|
|
2396
2628
|
const looseBundle = toLooseBundle(bundle);
|
|
@@ -2458,7 +2690,8 @@ function createContractComponent(options) {
|
|
|
2458
2690
|
const self = this._self;
|
|
2459
2691
|
const props = {};
|
|
2460
2692
|
iterate.forEach(iterate.items(this.attributes), (attr) => {
|
|
2461
|
-
if (attr.name
|
|
2693
|
+
if (attr.name === "class") return;
|
|
2694
|
+
props[attr.name] = attr.name === "disabled" ? true : attr.value;
|
|
2462
2695
|
});
|
|
2463
2696
|
props["as"] = self.as;
|
|
2464
2697
|
props["recipe"] = self.recipe;
|
|
@@ -2467,12 +2700,15 @@ function createContractComponent(options) {
|
|
|
2467
2700
|
const val = self[key];
|
|
2468
2701
|
if (val != null) props[key] = val;
|
|
2469
2702
|
});
|
|
2470
|
-
|
|
2703
|
+
diffAndApplyAttributes(this, resolveHostState(looseBundle, props), this._pipelineAttrs, props);
|
|
2471
2704
|
}
|
|
2472
2705
|
render() {
|
|
2706
|
+
const children = Array.from(this.childNodes);
|
|
2473
2707
|
if (bundle.childrenEvaluator) {
|
|
2474
|
-
bundle.childrenEvaluator.evaluate(
|
|
2708
|
+
bundle.childrenEvaluator.evaluate(children);
|
|
2475
2709
|
}
|
|
2710
|
+
const tag = bundle.runtime.resolveTag(this._self.as);
|
|
2711
|
+
bundle.runtime.options.htmlChildrenEvaluatorFn?.(tag)?.evaluate(children);
|
|
2476
2712
|
return html`<slot></slot>`;
|
|
2477
2713
|
}
|
|
2478
2714
|
}
|