@jxsuite/studio 4.0.0 → 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.
Files changed (86) hide show
  1. package/dist/chunks/{2020-xp8vnwma.js → 2020-n6tfwnda.js} +2 -2
  2. package/dist/chunks/{Overlay.dev-723bv0df.js → Overlay.dev-etqjwyf9.js} +4 -4
  3. package/dist/chunks/cf-account-picker-en86v7x7.js +163 -0
  4. package/dist/chunks/{content-source-t88vb2dr.js → content-source-48xg86wj.js} +17 -17
  5. package/dist/chunks/{convert-to-repeater-dhw1nrz9.js → convert-to-repeater-43tfn7cs.js} +24 -24
  6. package/dist/chunks/{entry-commands-6z6bhxg0.js → entry-commands-e63f1xc0.js} +20 -20
  7. package/dist/chunks/{extension-sections-3ydgjbdy.js → extension-sections-txv08xxg.js} +23 -23
  8. package/dist/chunks/{file-ops-rskmhxyq.js → file-ops-wbh4hhsx.js} +16 -16
  9. package/dist/chunks/{files-0cratsr0.js → files-3kfkwhk4.js} +25 -24
  10. package/dist/chunks/{focus-trap.esm-ggawf1hy.js → focus-trap.esm-9t2drp0g.js} +6 -5
  11. package/dist/chunks/{format-host-tgcmfs4p.js → format-host-w16q81tf.js} +2 -2
  12. package/dist/chunks/fs-events-hrrg328g.js +1 -1
  13. package/dist/chunks/{git-panel-0yywyk76.js → git-panel-532whr1y.js} +16 -15
  14. package/dist/chunks/{index-nj44jpzj.js → index-wcnt3r9g.js} +2 -2
  15. package/dist/chunks/{jx-validate-8q2g05x1.js → jx-validate-8er6gbxy.js} +3 -3
  16. package/dist/chunks/{layers-panel-z3tqe5cd.js → layers-panel-07hm7g5j.js} +19 -19
  17. package/dist/chunks/{monaco-setup-rws7k4br.js → monaco-setup-vx9bhp1d.js} +2 -2
  18. package/dist/chunks/{publish-panel-54jvhskq.js → publish-panel-v9st96ja.js} +11 -10
  19. package/dist/chunks/{quick-search-cgfmjwq5.js → quick-search-zccjp6gv.js} +26 -25
  20. package/dist/chunks/{right-panel-cqp8bc4v.js → right-panel-vm3b6kwy.js} +17 -17
  21. package/dist/chunks/{sp-overlay.dev-yztmtrs1.js → sp-overlay.dev-qgvhnxf4.js} +5 -5
  22. package/dist/chunks/{sp-tooltip.dev-xcvpnqr0.js → sp-tooltip.dev-4sastdnw.js} +3 -3
  23. package/dist/chunks/{studio-txwkm6p9.js → studio-0bq6eh7v.js} +2 -2
  24. package/dist/chunks/studio-1ngbejft.js +181 -0
  25. package/dist/chunks/{studio-gv8vvshc.js → studio-1wagb550.js} +3 -3
  26. package/dist/chunks/{studio-kjjsjak4.js → studio-2b946z26.js} +58 -57
  27. package/dist/chunks/{studio-4pqqxbrt.js → studio-3bqpr0zh.js} +16 -16
  28. package/dist/chunks/{studio-v38hmvx1.js → studio-4b5z1x43.js} +42 -8
  29. package/dist/chunks/{studio-9c4k4vhv.js → studio-4n2b5gzb.js} +4 -4
  30. package/dist/chunks/{studio-p8j86wag.js → studio-4r1pv6zf.js} +2 -2
  31. package/dist/chunks/{studio-mmv72a27.js → studio-5fx3g9jg.js} +29 -48
  32. package/dist/chunks/{studio-5rywrkxz.js → studio-5myknm0a.js} +42 -42
  33. package/dist/chunks/{studio-sf7zjgv1.js → studio-6yw4y3my.js} +3 -3
  34. package/dist/chunks/{studio-pdfjntbk.js → studio-950k0dx6.js} +35 -35
  35. package/dist/chunks/{studio-eenfkt4e.js → studio-ahn3pdgx.js} +5 -5
  36. package/dist/chunks/{studio-eesa1myv.js → studio-b55y6ewx.js} +9 -9
  37. package/dist/chunks/{studio-cb12yz9w.js → studio-cmb03bg5.js} +99 -1264
  38. package/dist/chunks/studio-dm19q43r.js +195 -0
  39. package/dist/chunks/{studio-ahjfdy6e.js → studio-ef49pnzx.js} +6 -6
  40. package/dist/chunks/{studio-wx5609xd.js → studio-ew0djmhg.js} +10 -10
  41. package/dist/chunks/{studio-9r6j5ev1.js → studio-f3wqjtk5.js} +4 -3
  42. package/dist/chunks/{studio-8swrjbny.js → studio-fbf92ckf.js} +14 -14
  43. package/dist/chunks/{studio-4q0wznzf.js → studio-gcye7qka.js} +442 -126
  44. package/dist/chunks/{studio-ex8zyp98.js → studio-gfgb8pe6.js} +23 -184
  45. package/dist/chunks/{studio-r1r7afxx.js → studio-jc994dnr.js} +24 -24
  46. package/dist/chunks/{studio-yxrkyv8a.js → studio-jkftxyvz.js} +52 -3416
  47. package/dist/chunks/{studio-hbtp0eh1.js → studio-msd847zn.js} +13 -13
  48. package/dist/chunks/{studio-kyk2v92a.js → studio-mtfnaqs9.js} +14 -14
  49. package/dist/chunks/{studio-vadzgkrz.js → studio-n6j9t10q.js} +2 -2
  50. package/dist/chunks/{studio-68n67094.js → studio-q9jd1a60.js} +4 -4
  51. package/dist/chunks/studio-qcy05dp8.js +1743 -0
  52. package/dist/chunks/{studio-htsf0w6m.js → studio-qjy2z9bv.js} +12 -30
  53. package/dist/chunks/{studio-2zkz8evn.js → studio-trxrabqf.js} +12 -12
  54. package/dist/chunks/{studio-5q69gfag.js → studio-x4qkdat5.js} +12 -11
  55. package/dist/chunks/studio-x813zp48.js +195 -0
  56. package/dist/chunks/{studio-1hbqnt19.js → studio-zqazsct2.js} +29 -29
  57. package/dist/chunks/{workspace-xpres40v.js → workspace-fjx52ryv.js} +4 -4
  58. package/dist/iframe-entry.js +34 -33
  59. package/dist/manifest.json +7 -0
  60. package/dist/studio.js +534 -546
  61. package/favicon.ico +0 -0
  62. package/index.html +1 -0
  63. package/package.json +15 -14
  64. package/src/about/about-modal.ts +4 -3
  65. package/src/files/files.ts +6 -4
  66. package/src/files/media-paths.ts +13 -42
  67. package/src/files/media-usage.ts +41 -131
  68. package/src/hosting/document.ts +2 -0
  69. package/src/hosting/layout.ts +8 -0
  70. package/src/new-project/import-tab.ts +37 -15
  71. package/src/new-project/location-fields.ts +8 -5
  72. package/src/panels/ai-chat/composer.ts +10 -0
  73. package/src/platforms/cloud.ts +241 -70
  74. package/src/publish/publish-panel.ts +62 -2
  75. package/src/services/ai-import-tools.ts +50 -12
  76. package/src/services/ai-models.ts +108 -1
  77. package/src/services/context-manager.ts +12 -1
  78. package/src/services/tool-executor.ts +11 -0
  79. package/src/settings/preferences-accounts.ts +193 -12
  80. package/src/settings/preferences-dialog.ts +75 -18
  81. package/src/types.ts +27 -3
  82. package/src/ui/ai-managed-connect.ts +62 -13
  83. package/src/ui/ai-model-picker.ts +29 -2
  84. package/src/ui/cf-account-picker.ts +200 -0
  85. package/styles/shell.css +36 -0
  86. package/dist/chunks/studio-bw5dz6km.js +0 -608
@@ -0,0 +1,1743 @@
1
+ import {
2
+ __export
3
+ } from "./studio-a0tswy0w.js";
4
+
5
+ // src/services/cem-export.ts
6
+ function collectSlots(node, slots = []) {
7
+ if (node?.tagName === "slot") {
8
+ const name = node.attributes?.name;
9
+ slots.push(typeof name === "string" ? name.trim() : "");
10
+ }
11
+ if (Array.isArray(node?.children)) {
12
+ for (const c of node.children) {
13
+ collectSlots(typeof c === "string" ? undefined : c, slots);
14
+ }
15
+ }
16
+ return slots;
17
+ }
18
+ function validateComponentSlots(doc) {
19
+ const names = collectSlots(doc);
20
+ const unnamed = names.filter((n) => n === "").length;
21
+ if (unnamed > 1) {
22
+ return `Component has ${unnamed} unnamed <slot> elements — only one default slot is allowed. Give extra slots a name attribute.`;
23
+ }
24
+ const seen = new Set;
25
+ for (const n of names) {
26
+ if (n && seen.has(n)) {
27
+ return `Duplicate slot name "${n}" — slot names must be unique within a component.`;
28
+ }
29
+ seen.add(n);
30
+ }
31
+ return null;
32
+ }
33
+
34
+ // ../../node_modules/property-information/lib/util/info.js
35
+ class Info {
36
+ constructor(property, attribute) {
37
+ this.attribute = attribute;
38
+ this.property = property;
39
+ }
40
+ }
41
+ Info.prototype.attribute = "";
42
+ Info.prototype.booleanish = false;
43
+ Info.prototype.boolean = false;
44
+ Info.prototype.commaOrSpaceSeparated = false;
45
+ Info.prototype.commaSeparated = false;
46
+ Info.prototype.defined = false;
47
+ Info.prototype.mustUseProperty = false;
48
+ Info.prototype.number = false;
49
+ Info.prototype.overloadedBoolean = false;
50
+ Info.prototype.property = "";
51
+ Info.prototype.spaceSeparated = false;
52
+ Info.prototype.space = undefined;
53
+
54
+ // ../../node_modules/property-information/lib/util/types.js
55
+ var exports_types = {};
56
+ __export(exports_types, {
57
+ boolean: () => boolean,
58
+ booleanish: () => booleanish,
59
+ commaOrSpaceSeparated: () => commaOrSpaceSeparated,
60
+ commaSeparated: () => commaSeparated,
61
+ number: () => number,
62
+ overloadedBoolean: () => overloadedBoolean,
63
+ spaceSeparated: () => spaceSeparated
64
+ });
65
+ var powers = 0;
66
+ var boolean = increment();
67
+ var booleanish = increment();
68
+ var overloadedBoolean = increment();
69
+ var number = increment();
70
+ var spaceSeparated = increment();
71
+ var commaSeparated = increment();
72
+ var commaOrSpaceSeparated = increment();
73
+ function increment() {
74
+ return 2 ** ++powers;
75
+ }
76
+
77
+ // ../../node_modules/property-information/lib/util/defined-info.js
78
+ var checks = Object.keys(exports_types);
79
+
80
+ class DefinedInfo extends Info {
81
+ constructor(property, attribute, mask, space) {
82
+ let index = -1;
83
+ super(property, attribute);
84
+ mark(this, "space", space);
85
+ if (typeof mask === "number") {
86
+ while (++index < checks.length) {
87
+ const check = checks[index];
88
+ mark(this, checks[index], (mask & exports_types[check]) === exports_types[check]);
89
+ }
90
+ }
91
+ }
92
+ }
93
+ DefinedInfo.prototype.defined = true;
94
+ function mark(values, key, value) {
95
+ if (value) {
96
+ values[key] = value;
97
+ }
98
+ }
99
+
100
+ // ../../node_modules/property-information/lib/normalize.js
101
+ function normalize(value) {
102
+ return value.toLowerCase();
103
+ }
104
+
105
+ // ../../node_modules/property-information/lib/find.js
106
+ var cap = /[A-Z]/g;
107
+ var dash = /-[a-z]/g;
108
+ var valid = /^data[-\w.:]+$/i;
109
+ function find(schema, value) {
110
+ const normal = normalize(value);
111
+ let property = value;
112
+ let Type = Info;
113
+ if (normal in schema.normal) {
114
+ return schema.property[schema.normal[normal]];
115
+ }
116
+ if (normal.length > 4 && normal.slice(0, 4) === "data" && valid.test(value)) {
117
+ if (value.charAt(4) === "-") {
118
+ const rest = value.slice(5).replace(dash, camelcase);
119
+ property = "data" + rest.charAt(0).toUpperCase() + rest.slice(1);
120
+ } else {
121
+ const rest = value.slice(4);
122
+ if (!dash.test(rest)) {
123
+ let dashes = rest.replace(cap, kebab);
124
+ if (dashes.charAt(0) !== "-") {
125
+ dashes = "-" + dashes;
126
+ }
127
+ value = "data" + dashes;
128
+ }
129
+ }
130
+ Type = DefinedInfo;
131
+ }
132
+ return new Type(property, value);
133
+ }
134
+ function kebab($0) {
135
+ return "-" + $0.toLowerCase();
136
+ }
137
+ function camelcase($0) {
138
+ return $0.charAt(1).toUpperCase();
139
+ }
140
+
141
+ // ../../node_modules/property-information/lib/util/schema.js
142
+ class Schema {
143
+ constructor(property, normal, space) {
144
+ this.normal = normal;
145
+ this.property = property;
146
+ if (space) {
147
+ this.space = space;
148
+ }
149
+ }
150
+ }
151
+ Schema.prototype.normal = {};
152
+ Schema.prototype.property = {};
153
+ Schema.prototype.space = undefined;
154
+
155
+ // ../../node_modules/property-information/lib/util/merge.js
156
+ function merge(definitions, space) {
157
+ const property = {};
158
+ const normal = {};
159
+ for (const definition of definitions) {
160
+ Object.assign(property, definition.property);
161
+ Object.assign(normal, definition.normal);
162
+ }
163
+ return new Schema(property, normal, space);
164
+ }
165
+
166
+ // ../../node_modules/property-information/lib/util/create.js
167
+ function create(definition) {
168
+ const properties = {};
169
+ const normals = {};
170
+ for (const [property, value] of Object.entries(definition.properties)) {
171
+ const info = new DefinedInfo(property, definition.transform(definition.attributes || {}, property), value, definition.space);
172
+ if (definition.mustUseProperty && definition.mustUseProperty.includes(property)) {
173
+ info.mustUseProperty = true;
174
+ }
175
+ properties[property] = info;
176
+ normals[normalize(property)] = property;
177
+ normals[normalize(info.attribute)] = property;
178
+ }
179
+ return new Schema(properties, normals, definition.space);
180
+ }
181
+
182
+ // ../../node_modules/property-information/lib/aria.js
183
+ var aria = create({
184
+ properties: {
185
+ ariaActiveDescendant: null,
186
+ ariaAtomic: booleanish,
187
+ ariaAutoComplete: null,
188
+ ariaBusy: booleanish,
189
+ ariaChecked: booleanish,
190
+ ariaColCount: number,
191
+ ariaColIndex: number,
192
+ ariaColSpan: number,
193
+ ariaControls: spaceSeparated,
194
+ ariaCurrent: null,
195
+ ariaDescribedBy: spaceSeparated,
196
+ ariaDetails: null,
197
+ ariaDisabled: booleanish,
198
+ ariaDropEffect: spaceSeparated,
199
+ ariaErrorMessage: null,
200
+ ariaExpanded: booleanish,
201
+ ariaFlowTo: spaceSeparated,
202
+ ariaGrabbed: booleanish,
203
+ ariaHasPopup: null,
204
+ ariaHidden: booleanish,
205
+ ariaInvalid: null,
206
+ ariaKeyShortcuts: null,
207
+ ariaLabel: null,
208
+ ariaLabelledBy: spaceSeparated,
209
+ ariaLevel: number,
210
+ ariaLive: null,
211
+ ariaModal: booleanish,
212
+ ariaMultiLine: booleanish,
213
+ ariaMultiSelectable: booleanish,
214
+ ariaOrientation: null,
215
+ ariaOwns: spaceSeparated,
216
+ ariaPlaceholder: null,
217
+ ariaPosInSet: number,
218
+ ariaPressed: booleanish,
219
+ ariaReadOnly: booleanish,
220
+ ariaRelevant: null,
221
+ ariaRequired: booleanish,
222
+ ariaRoleDescription: spaceSeparated,
223
+ ariaRowCount: number,
224
+ ariaRowIndex: number,
225
+ ariaRowSpan: number,
226
+ ariaSelected: booleanish,
227
+ ariaSetSize: number,
228
+ ariaSort: null,
229
+ ariaValueMax: number,
230
+ ariaValueMin: number,
231
+ ariaValueNow: number,
232
+ ariaValueText: null,
233
+ role: null
234
+ },
235
+ transform(_, property) {
236
+ return property === "role" ? property : "aria-" + property.slice(4).toLowerCase();
237
+ }
238
+ });
239
+
240
+ // ../../node_modules/property-information/lib/util/case-sensitive-transform.js
241
+ function caseSensitiveTransform(attributes, attribute) {
242
+ return attribute in attributes ? attributes[attribute] : attribute;
243
+ }
244
+
245
+ // ../../node_modules/property-information/lib/util/case-insensitive-transform.js
246
+ function caseInsensitiveTransform(attributes, property) {
247
+ return caseSensitiveTransform(attributes, property.toLowerCase());
248
+ }
249
+
250
+ // ../../node_modules/property-information/lib/html.js
251
+ var html = create({
252
+ attributes: {
253
+ acceptcharset: "accept-charset",
254
+ classname: "class",
255
+ htmlfor: "for",
256
+ httpequiv: "http-equiv"
257
+ },
258
+ mustUseProperty: ["checked", "multiple", "muted", "selected"],
259
+ properties: {
260
+ abbr: null,
261
+ accept: commaSeparated,
262
+ acceptCharset: spaceSeparated,
263
+ accessKey: spaceSeparated,
264
+ action: null,
265
+ allow: null,
266
+ allowFullScreen: boolean,
267
+ allowPaymentRequest: boolean,
268
+ allowUserMedia: boolean,
269
+ alpha: boolean,
270
+ alt: null,
271
+ as: null,
272
+ async: boolean,
273
+ autoCapitalize: null,
274
+ autoComplete: spaceSeparated,
275
+ autoFocus: boolean,
276
+ autoPlay: boolean,
277
+ blocking: spaceSeparated,
278
+ capture: null,
279
+ charSet: null,
280
+ checked: boolean,
281
+ cite: null,
282
+ className: spaceSeparated,
283
+ closedBy: null,
284
+ colorSpace: null,
285
+ cols: number,
286
+ colSpan: number,
287
+ command: null,
288
+ commandFor: null,
289
+ content: null,
290
+ contentEditable: booleanish,
291
+ controls: boolean,
292
+ controlsList: spaceSeparated,
293
+ coords: number | commaSeparated,
294
+ crossOrigin: null,
295
+ data: null,
296
+ dateTime: null,
297
+ decoding: null,
298
+ default: boolean,
299
+ defer: boolean,
300
+ dir: null,
301
+ dirName: null,
302
+ disabled: boolean,
303
+ download: overloadedBoolean,
304
+ draggable: booleanish,
305
+ encType: null,
306
+ enterKeyHint: null,
307
+ fetchPriority: null,
308
+ form: null,
309
+ formAction: null,
310
+ formEncType: null,
311
+ formMethod: null,
312
+ formNoValidate: boolean,
313
+ formTarget: null,
314
+ headers: spaceSeparated,
315
+ height: number,
316
+ hidden: overloadedBoolean,
317
+ high: number,
318
+ href: null,
319
+ hrefLang: null,
320
+ htmlFor: spaceSeparated,
321
+ httpEquiv: spaceSeparated,
322
+ id: null,
323
+ imageSizes: null,
324
+ imageSrcSet: null,
325
+ inert: boolean,
326
+ inputMode: null,
327
+ integrity: null,
328
+ is: null,
329
+ isMap: boolean,
330
+ itemId: null,
331
+ itemProp: spaceSeparated,
332
+ itemRef: spaceSeparated,
333
+ itemScope: boolean,
334
+ itemType: spaceSeparated,
335
+ kind: null,
336
+ label: null,
337
+ lang: null,
338
+ language: null,
339
+ list: null,
340
+ loading: null,
341
+ loop: boolean,
342
+ low: number,
343
+ manifest: null,
344
+ max: null,
345
+ maxLength: number,
346
+ media: null,
347
+ method: null,
348
+ min: null,
349
+ minLength: number,
350
+ multiple: boolean,
351
+ muted: boolean,
352
+ name: null,
353
+ nonce: null,
354
+ noModule: boolean,
355
+ noValidate: boolean,
356
+ onAbort: null,
357
+ onAfterPrint: null,
358
+ onAuxClick: null,
359
+ onBeforeMatch: null,
360
+ onBeforePrint: null,
361
+ onBeforeToggle: null,
362
+ onBeforeUnload: null,
363
+ onBlur: null,
364
+ onCancel: null,
365
+ onCanPlay: null,
366
+ onCanPlayThrough: null,
367
+ onChange: null,
368
+ onClick: null,
369
+ onClose: null,
370
+ onContextLost: null,
371
+ onContextMenu: null,
372
+ onContextRestored: null,
373
+ onCopy: null,
374
+ onCueChange: null,
375
+ onCut: null,
376
+ onDblClick: null,
377
+ onDrag: null,
378
+ onDragEnd: null,
379
+ onDragEnter: null,
380
+ onDragExit: null,
381
+ onDragLeave: null,
382
+ onDragOver: null,
383
+ onDragStart: null,
384
+ onDrop: null,
385
+ onDurationChange: null,
386
+ onEmptied: null,
387
+ onEnded: null,
388
+ onError: null,
389
+ onFocus: null,
390
+ onFormData: null,
391
+ onHashChange: null,
392
+ onInput: null,
393
+ onInvalid: null,
394
+ onKeyDown: null,
395
+ onKeyPress: null,
396
+ onKeyUp: null,
397
+ onLanguageChange: null,
398
+ onLoad: null,
399
+ onLoadedData: null,
400
+ onLoadedMetadata: null,
401
+ onLoadEnd: null,
402
+ onLoadStart: null,
403
+ onMessage: null,
404
+ onMessageError: null,
405
+ onMouseDown: null,
406
+ onMouseEnter: null,
407
+ onMouseLeave: null,
408
+ onMouseMove: null,
409
+ onMouseOut: null,
410
+ onMouseOver: null,
411
+ onMouseUp: null,
412
+ onOffline: null,
413
+ onOnline: null,
414
+ onPageHide: null,
415
+ onPageShow: null,
416
+ onPaste: null,
417
+ onPause: null,
418
+ onPlay: null,
419
+ onPlaying: null,
420
+ onPopState: null,
421
+ onProgress: null,
422
+ onRateChange: null,
423
+ onRejectionHandled: null,
424
+ onReset: null,
425
+ onResize: null,
426
+ onScroll: null,
427
+ onScrollEnd: null,
428
+ onSecurityPolicyViolation: null,
429
+ onSeeked: null,
430
+ onSeeking: null,
431
+ onSelect: null,
432
+ onSlotChange: null,
433
+ onStalled: null,
434
+ onStorage: null,
435
+ onSubmit: null,
436
+ onSuspend: null,
437
+ onTimeUpdate: null,
438
+ onToggle: null,
439
+ onUnhandledRejection: null,
440
+ onUnload: null,
441
+ onVolumeChange: null,
442
+ onWaiting: null,
443
+ onWheel: null,
444
+ open: boolean,
445
+ optimum: number,
446
+ pattern: null,
447
+ ping: spaceSeparated,
448
+ placeholder: null,
449
+ playsInline: boolean,
450
+ popover: null,
451
+ popoverTarget: null,
452
+ popoverTargetAction: null,
453
+ poster: null,
454
+ preload: null,
455
+ readOnly: boolean,
456
+ referrerPolicy: null,
457
+ rel: spaceSeparated,
458
+ required: boolean,
459
+ reversed: boolean,
460
+ rows: number,
461
+ rowSpan: number,
462
+ sandbox: spaceSeparated,
463
+ scope: null,
464
+ scoped: boolean,
465
+ seamless: boolean,
466
+ selected: boolean,
467
+ shadowRootClonable: boolean,
468
+ shadowRootCustomElementRegistry: boolean,
469
+ shadowRootDelegatesFocus: boolean,
470
+ shadowRootMode: null,
471
+ shadowRootSerializable: boolean,
472
+ shape: null,
473
+ size: number,
474
+ sizes: null,
475
+ slot: null,
476
+ span: number,
477
+ spellCheck: booleanish,
478
+ src: null,
479
+ srcDoc: null,
480
+ srcLang: null,
481
+ srcSet: null,
482
+ start: number,
483
+ step: null,
484
+ style: null,
485
+ tabIndex: number,
486
+ target: null,
487
+ title: null,
488
+ translate: null,
489
+ type: null,
490
+ typeMustMatch: boolean,
491
+ useMap: null,
492
+ value: booleanish,
493
+ width: number,
494
+ wrap: null,
495
+ writingSuggestions: null,
496
+ align: null,
497
+ aLink: null,
498
+ archive: spaceSeparated,
499
+ axis: null,
500
+ background: null,
501
+ bgColor: null,
502
+ border: number,
503
+ borderColor: null,
504
+ bottomMargin: number,
505
+ cellPadding: null,
506
+ cellSpacing: null,
507
+ char: null,
508
+ charOff: null,
509
+ classId: null,
510
+ clear: null,
511
+ code: null,
512
+ codeBase: null,
513
+ codeType: null,
514
+ color: null,
515
+ compact: boolean,
516
+ declare: boolean,
517
+ event: null,
518
+ face: null,
519
+ frame: null,
520
+ frameBorder: null,
521
+ hSpace: number,
522
+ leftMargin: number,
523
+ link: null,
524
+ longDesc: null,
525
+ lowSrc: null,
526
+ marginHeight: number,
527
+ marginWidth: number,
528
+ noResize: boolean,
529
+ noHref: boolean,
530
+ noShade: boolean,
531
+ noWrap: boolean,
532
+ object: null,
533
+ profile: null,
534
+ prompt: null,
535
+ rev: null,
536
+ rightMargin: number,
537
+ rules: null,
538
+ scheme: null,
539
+ scrolling: booleanish,
540
+ standby: null,
541
+ summary: null,
542
+ text: null,
543
+ topMargin: number,
544
+ valueType: null,
545
+ version: null,
546
+ vAlign: null,
547
+ vLink: null,
548
+ vSpace: number,
549
+ allowTransparency: null,
550
+ autoCorrect: null,
551
+ autoSave: null,
552
+ credentialless: boolean,
553
+ disablePictureInPicture: boolean,
554
+ disableRemotePlayback: boolean,
555
+ exportParts: commaSeparated,
556
+ part: spaceSeparated,
557
+ prefix: null,
558
+ property: null,
559
+ results: number,
560
+ security: null,
561
+ unselectable: null
562
+ },
563
+ space: "html",
564
+ transform: caseInsensitiveTransform
565
+ });
566
+
567
+ // ../../node_modules/property-information/lib/svg.js
568
+ var svg = create({
569
+ attributes: {
570
+ accentHeight: "accent-height",
571
+ alignmentBaseline: "alignment-baseline",
572
+ arabicForm: "arabic-form",
573
+ baselineShift: "baseline-shift",
574
+ capHeight: "cap-height",
575
+ className: "class",
576
+ clipPath: "clip-path",
577
+ clipRule: "clip-rule",
578
+ colorInterpolation: "color-interpolation",
579
+ colorInterpolationFilters: "color-interpolation-filters",
580
+ colorProfile: "color-profile",
581
+ colorRendering: "color-rendering",
582
+ crossOrigin: "crossorigin",
583
+ dataType: "datatype",
584
+ dominantBaseline: "dominant-baseline",
585
+ enableBackground: "enable-background",
586
+ fillOpacity: "fill-opacity",
587
+ fillRule: "fill-rule",
588
+ floodColor: "flood-color",
589
+ floodOpacity: "flood-opacity",
590
+ fontFamily: "font-family",
591
+ fontSize: "font-size",
592
+ fontSizeAdjust: "font-size-adjust",
593
+ fontStretch: "font-stretch",
594
+ fontStyle: "font-style",
595
+ fontVariant: "font-variant",
596
+ fontWeight: "font-weight",
597
+ glyphName: "glyph-name",
598
+ glyphOrientationHorizontal: "glyph-orientation-horizontal",
599
+ glyphOrientationVertical: "glyph-orientation-vertical",
600
+ hrefLang: "hreflang",
601
+ horizAdvX: "horiz-adv-x",
602
+ horizOriginX: "horiz-origin-x",
603
+ horizOriginY: "horiz-origin-y",
604
+ imageRendering: "image-rendering",
605
+ letterSpacing: "letter-spacing",
606
+ lightingColor: "lighting-color",
607
+ markerEnd: "marker-end",
608
+ markerMid: "marker-mid",
609
+ markerStart: "marker-start",
610
+ maskType: "mask-type",
611
+ navDown: "nav-down",
612
+ navDownLeft: "nav-down-left",
613
+ navDownRight: "nav-down-right",
614
+ navLeft: "nav-left",
615
+ navNext: "nav-next",
616
+ navPrev: "nav-prev",
617
+ navRight: "nav-right",
618
+ navUp: "nav-up",
619
+ navUpLeft: "nav-up-left",
620
+ navUpRight: "nav-up-right",
621
+ onAbort: "onabort",
622
+ onActivate: "onactivate",
623
+ onAfterPrint: "onafterprint",
624
+ onBeforePrint: "onbeforeprint",
625
+ onBegin: "onbegin",
626
+ onCancel: "oncancel",
627
+ onCanPlay: "oncanplay",
628
+ onCanPlayThrough: "oncanplaythrough",
629
+ onChange: "onchange",
630
+ onClick: "onclick",
631
+ onClose: "onclose",
632
+ onCopy: "oncopy",
633
+ onCueChange: "oncuechange",
634
+ onCut: "oncut",
635
+ onDblClick: "ondblclick",
636
+ onDrag: "ondrag",
637
+ onDragEnd: "ondragend",
638
+ onDragEnter: "ondragenter",
639
+ onDragExit: "ondragexit",
640
+ onDragLeave: "ondragleave",
641
+ onDragOver: "ondragover",
642
+ onDragStart: "ondragstart",
643
+ onDrop: "ondrop",
644
+ onDurationChange: "ondurationchange",
645
+ onEmptied: "onemptied",
646
+ onEnd: "onend",
647
+ onEnded: "onended",
648
+ onError: "onerror",
649
+ onFocus: "onfocus",
650
+ onFocusIn: "onfocusin",
651
+ onFocusOut: "onfocusout",
652
+ onHashChange: "onhashchange",
653
+ onInput: "oninput",
654
+ onInvalid: "oninvalid",
655
+ onKeyDown: "onkeydown",
656
+ onKeyPress: "onkeypress",
657
+ onKeyUp: "onkeyup",
658
+ onLoad: "onload",
659
+ onLoadedData: "onloadeddata",
660
+ onLoadedMetadata: "onloadedmetadata",
661
+ onLoadStart: "onloadstart",
662
+ onMessage: "onmessage",
663
+ onMouseDown: "onmousedown",
664
+ onMouseEnter: "onmouseenter",
665
+ onMouseLeave: "onmouseleave",
666
+ onMouseMove: "onmousemove",
667
+ onMouseOut: "onmouseout",
668
+ onMouseOver: "onmouseover",
669
+ onMouseUp: "onmouseup",
670
+ onMouseWheel: "onmousewheel",
671
+ onOffline: "onoffline",
672
+ onOnline: "ononline",
673
+ onPageHide: "onpagehide",
674
+ onPageShow: "onpageshow",
675
+ onPaste: "onpaste",
676
+ onPause: "onpause",
677
+ onPlay: "onplay",
678
+ onPlaying: "onplaying",
679
+ onPopState: "onpopstate",
680
+ onProgress: "onprogress",
681
+ onRateChange: "onratechange",
682
+ onRepeat: "onrepeat",
683
+ onReset: "onreset",
684
+ onResize: "onresize",
685
+ onScroll: "onscroll",
686
+ onSeeked: "onseeked",
687
+ onSeeking: "onseeking",
688
+ onSelect: "onselect",
689
+ onShow: "onshow",
690
+ onStalled: "onstalled",
691
+ onStorage: "onstorage",
692
+ onSubmit: "onsubmit",
693
+ onSuspend: "onsuspend",
694
+ onTimeUpdate: "ontimeupdate",
695
+ onToggle: "ontoggle",
696
+ onUnload: "onunload",
697
+ onVolumeChange: "onvolumechange",
698
+ onWaiting: "onwaiting",
699
+ onZoom: "onzoom",
700
+ overlinePosition: "overline-position",
701
+ overlineThickness: "overline-thickness",
702
+ paintOrder: "paint-order",
703
+ panose1: "panose-1",
704
+ pointerEvents: "pointer-events",
705
+ referrerPolicy: "referrerpolicy",
706
+ renderingIntent: "rendering-intent",
707
+ shapeRendering: "shape-rendering",
708
+ stopColor: "stop-color",
709
+ stopOpacity: "stop-opacity",
710
+ strikethroughPosition: "strikethrough-position",
711
+ strikethroughThickness: "strikethrough-thickness",
712
+ strokeDashArray: "stroke-dasharray",
713
+ strokeDashOffset: "stroke-dashoffset",
714
+ strokeLineCap: "stroke-linecap",
715
+ strokeLineJoin: "stroke-linejoin",
716
+ strokeMiterLimit: "stroke-miterlimit",
717
+ strokeOpacity: "stroke-opacity",
718
+ strokeWidth: "stroke-width",
719
+ tabIndex: "tabindex",
720
+ textAnchor: "text-anchor",
721
+ textDecoration: "text-decoration",
722
+ textRendering: "text-rendering",
723
+ transformOrigin: "transform-origin",
724
+ typeOf: "typeof",
725
+ underlinePosition: "underline-position",
726
+ underlineThickness: "underline-thickness",
727
+ unicodeBidi: "unicode-bidi",
728
+ unicodeRange: "unicode-range",
729
+ unitsPerEm: "units-per-em",
730
+ vAlphabetic: "v-alphabetic",
731
+ vHanging: "v-hanging",
732
+ vIdeographic: "v-ideographic",
733
+ vMathematical: "v-mathematical",
734
+ vectorEffect: "vector-effect",
735
+ vertAdvY: "vert-adv-y",
736
+ vertOriginX: "vert-origin-x",
737
+ vertOriginY: "vert-origin-y",
738
+ wordSpacing: "word-spacing",
739
+ writingMode: "writing-mode",
740
+ xHeight: "x-height",
741
+ playbackOrder: "playbackorder",
742
+ timelineBegin: "timelinebegin"
743
+ },
744
+ properties: {
745
+ about: commaOrSpaceSeparated,
746
+ accentHeight: number,
747
+ accumulate: null,
748
+ additive: null,
749
+ alignmentBaseline: null,
750
+ alphabetic: number,
751
+ amplitude: number,
752
+ arabicForm: null,
753
+ ascent: number,
754
+ attributeName: null,
755
+ attributeType: null,
756
+ azimuth: number,
757
+ bandwidth: null,
758
+ baselineShift: null,
759
+ baseFrequency: null,
760
+ baseProfile: null,
761
+ bbox: null,
762
+ begin: null,
763
+ bias: number,
764
+ by: null,
765
+ calcMode: null,
766
+ capHeight: number,
767
+ className: spaceSeparated,
768
+ clip: null,
769
+ clipPath: null,
770
+ clipPathUnits: null,
771
+ clipRule: null,
772
+ color: null,
773
+ colorInterpolation: null,
774
+ colorInterpolationFilters: null,
775
+ colorProfile: null,
776
+ colorRendering: null,
777
+ content: null,
778
+ contentScriptType: null,
779
+ contentStyleType: null,
780
+ crossOrigin: null,
781
+ cursor: null,
782
+ cx: null,
783
+ cy: null,
784
+ d: null,
785
+ dataType: null,
786
+ defaultAction: null,
787
+ descent: number,
788
+ diffuseConstant: number,
789
+ direction: null,
790
+ display: null,
791
+ dur: null,
792
+ divisor: number,
793
+ dominantBaseline: null,
794
+ download: boolean,
795
+ dx: null,
796
+ dy: null,
797
+ edgeMode: null,
798
+ editable: null,
799
+ elevation: number,
800
+ enableBackground: null,
801
+ end: null,
802
+ event: null,
803
+ exponent: number,
804
+ externalResourcesRequired: null,
805
+ fill: null,
806
+ fillOpacity: number,
807
+ fillRule: null,
808
+ filter: null,
809
+ filterRes: null,
810
+ filterUnits: null,
811
+ floodColor: null,
812
+ floodOpacity: null,
813
+ focusable: null,
814
+ focusHighlight: null,
815
+ fontFamily: null,
816
+ fontSize: null,
817
+ fontSizeAdjust: null,
818
+ fontStretch: null,
819
+ fontStyle: null,
820
+ fontVariant: null,
821
+ fontWeight: null,
822
+ format: null,
823
+ fr: null,
824
+ from: null,
825
+ fx: null,
826
+ fy: null,
827
+ g1: commaSeparated,
828
+ g2: commaSeparated,
829
+ glyphName: commaSeparated,
830
+ glyphOrientationHorizontal: null,
831
+ glyphOrientationVertical: null,
832
+ glyphRef: null,
833
+ gradientTransform: null,
834
+ gradientUnits: null,
835
+ handler: null,
836
+ hanging: number,
837
+ hatchContentUnits: null,
838
+ hatchUnits: null,
839
+ height: null,
840
+ href: null,
841
+ hrefLang: null,
842
+ horizAdvX: number,
843
+ horizOriginX: number,
844
+ horizOriginY: number,
845
+ id: null,
846
+ ideographic: number,
847
+ imageRendering: null,
848
+ initialVisibility: null,
849
+ in: null,
850
+ in2: null,
851
+ intercept: number,
852
+ k: number,
853
+ k1: number,
854
+ k2: number,
855
+ k3: number,
856
+ k4: number,
857
+ kernelMatrix: commaOrSpaceSeparated,
858
+ kernelUnitLength: null,
859
+ keyPoints: null,
860
+ keySplines: null,
861
+ keyTimes: null,
862
+ kerning: null,
863
+ lang: null,
864
+ lengthAdjust: null,
865
+ letterSpacing: null,
866
+ lightingColor: null,
867
+ limitingConeAngle: number,
868
+ local: null,
869
+ markerEnd: null,
870
+ markerMid: null,
871
+ markerStart: null,
872
+ markerHeight: null,
873
+ markerUnits: null,
874
+ markerWidth: null,
875
+ mask: null,
876
+ maskContentUnits: null,
877
+ maskType: null,
878
+ maskUnits: null,
879
+ mathematical: null,
880
+ max: null,
881
+ media: null,
882
+ mediaCharacterEncoding: null,
883
+ mediaContentEncodings: null,
884
+ mediaSize: number,
885
+ mediaTime: null,
886
+ method: null,
887
+ min: null,
888
+ mode: null,
889
+ name: null,
890
+ navDown: null,
891
+ navDownLeft: null,
892
+ navDownRight: null,
893
+ navLeft: null,
894
+ navNext: null,
895
+ navPrev: null,
896
+ navRight: null,
897
+ navUp: null,
898
+ navUpLeft: null,
899
+ navUpRight: null,
900
+ numOctaves: null,
901
+ observer: null,
902
+ offset: null,
903
+ onAbort: null,
904
+ onActivate: null,
905
+ onAfterPrint: null,
906
+ onBeforePrint: null,
907
+ onBegin: null,
908
+ onCancel: null,
909
+ onCanPlay: null,
910
+ onCanPlayThrough: null,
911
+ onChange: null,
912
+ onClick: null,
913
+ onClose: null,
914
+ onCopy: null,
915
+ onCueChange: null,
916
+ onCut: null,
917
+ onDblClick: null,
918
+ onDrag: null,
919
+ onDragEnd: null,
920
+ onDragEnter: null,
921
+ onDragExit: null,
922
+ onDragLeave: null,
923
+ onDragOver: null,
924
+ onDragStart: null,
925
+ onDrop: null,
926
+ onDurationChange: null,
927
+ onEmptied: null,
928
+ onEnd: null,
929
+ onEnded: null,
930
+ onError: null,
931
+ onFocus: null,
932
+ onFocusIn: null,
933
+ onFocusOut: null,
934
+ onHashChange: null,
935
+ onInput: null,
936
+ onInvalid: null,
937
+ onKeyDown: null,
938
+ onKeyPress: null,
939
+ onKeyUp: null,
940
+ onLoad: null,
941
+ onLoadedData: null,
942
+ onLoadedMetadata: null,
943
+ onLoadStart: null,
944
+ onMessage: null,
945
+ onMouseDown: null,
946
+ onMouseEnter: null,
947
+ onMouseLeave: null,
948
+ onMouseMove: null,
949
+ onMouseOut: null,
950
+ onMouseOver: null,
951
+ onMouseUp: null,
952
+ onMouseWheel: null,
953
+ onOffline: null,
954
+ onOnline: null,
955
+ onPageHide: null,
956
+ onPageShow: null,
957
+ onPaste: null,
958
+ onPause: null,
959
+ onPlay: null,
960
+ onPlaying: null,
961
+ onPopState: null,
962
+ onProgress: null,
963
+ onRateChange: null,
964
+ onRepeat: null,
965
+ onReset: null,
966
+ onResize: null,
967
+ onScroll: null,
968
+ onSeeked: null,
969
+ onSeeking: null,
970
+ onSelect: null,
971
+ onShow: null,
972
+ onStalled: null,
973
+ onStorage: null,
974
+ onSubmit: null,
975
+ onSuspend: null,
976
+ onTimeUpdate: null,
977
+ onToggle: null,
978
+ onUnload: null,
979
+ onVolumeChange: null,
980
+ onWaiting: null,
981
+ onZoom: null,
982
+ opacity: null,
983
+ operator: null,
984
+ order: null,
985
+ orient: null,
986
+ orientation: null,
987
+ origin: null,
988
+ overflow: null,
989
+ overlay: null,
990
+ overlinePosition: number,
991
+ overlineThickness: number,
992
+ paintOrder: null,
993
+ panose1: null,
994
+ path: null,
995
+ pathLength: number,
996
+ patternContentUnits: null,
997
+ patternTransform: null,
998
+ patternUnits: null,
999
+ phase: null,
1000
+ ping: spaceSeparated,
1001
+ pitch: null,
1002
+ playbackOrder: null,
1003
+ pointerEvents: null,
1004
+ points: null,
1005
+ pointsAtX: number,
1006
+ pointsAtY: number,
1007
+ pointsAtZ: number,
1008
+ preserveAlpha: null,
1009
+ preserveAspectRatio: null,
1010
+ primitiveUnits: null,
1011
+ propagate: null,
1012
+ property: commaOrSpaceSeparated,
1013
+ r: null,
1014
+ radius: null,
1015
+ referrerPolicy: null,
1016
+ refX: null,
1017
+ refY: null,
1018
+ rel: commaOrSpaceSeparated,
1019
+ rev: commaOrSpaceSeparated,
1020
+ renderingIntent: null,
1021
+ repeatCount: null,
1022
+ repeatDur: null,
1023
+ requiredExtensions: commaOrSpaceSeparated,
1024
+ requiredFeatures: commaOrSpaceSeparated,
1025
+ requiredFonts: commaOrSpaceSeparated,
1026
+ requiredFormats: commaOrSpaceSeparated,
1027
+ resource: null,
1028
+ restart: null,
1029
+ result: null,
1030
+ rotate: null,
1031
+ rx: null,
1032
+ ry: null,
1033
+ scale: null,
1034
+ seed: null,
1035
+ shapeRendering: null,
1036
+ side: null,
1037
+ slope: null,
1038
+ snapshotTime: null,
1039
+ specularConstant: number,
1040
+ specularExponent: number,
1041
+ spreadMethod: null,
1042
+ spacing: null,
1043
+ startOffset: null,
1044
+ stdDeviation: null,
1045
+ stemh: null,
1046
+ stemv: null,
1047
+ stitchTiles: null,
1048
+ stopColor: null,
1049
+ stopOpacity: null,
1050
+ strikethroughPosition: number,
1051
+ strikethroughThickness: number,
1052
+ string: null,
1053
+ stroke: null,
1054
+ strokeDashArray: commaOrSpaceSeparated,
1055
+ strokeDashOffset: null,
1056
+ strokeLineCap: null,
1057
+ strokeLineJoin: null,
1058
+ strokeMiterLimit: number,
1059
+ strokeOpacity: number,
1060
+ strokeWidth: null,
1061
+ style: null,
1062
+ surfaceScale: number,
1063
+ syncBehavior: null,
1064
+ syncBehaviorDefault: null,
1065
+ syncMaster: null,
1066
+ syncTolerance: null,
1067
+ syncToleranceDefault: null,
1068
+ systemLanguage: commaOrSpaceSeparated,
1069
+ tabIndex: number,
1070
+ tableValues: null,
1071
+ target: null,
1072
+ targetX: number,
1073
+ targetY: number,
1074
+ textAnchor: null,
1075
+ textDecoration: null,
1076
+ textRendering: null,
1077
+ textLength: null,
1078
+ timelineBegin: null,
1079
+ title: null,
1080
+ transformBehavior: null,
1081
+ type: null,
1082
+ typeOf: commaOrSpaceSeparated,
1083
+ to: null,
1084
+ transform: null,
1085
+ transformOrigin: null,
1086
+ u1: null,
1087
+ u2: null,
1088
+ underlinePosition: number,
1089
+ underlineThickness: number,
1090
+ unicode: null,
1091
+ unicodeBidi: null,
1092
+ unicodeRange: null,
1093
+ unitsPerEm: number,
1094
+ values: null,
1095
+ vAlphabetic: number,
1096
+ vMathematical: number,
1097
+ vectorEffect: null,
1098
+ vHanging: number,
1099
+ vIdeographic: number,
1100
+ version: null,
1101
+ vertAdvY: number,
1102
+ vertOriginX: number,
1103
+ vertOriginY: number,
1104
+ viewBox: null,
1105
+ viewTarget: null,
1106
+ visibility: null,
1107
+ width: null,
1108
+ widths: null,
1109
+ wordSpacing: null,
1110
+ writingMode: null,
1111
+ x: null,
1112
+ x1: null,
1113
+ x2: null,
1114
+ xChannelSelector: null,
1115
+ xHeight: number,
1116
+ y: null,
1117
+ y1: null,
1118
+ y2: null,
1119
+ yChannelSelector: null,
1120
+ z: null,
1121
+ zoomAndPan: null
1122
+ },
1123
+ space: "svg",
1124
+ transform: caseSensitiveTransform
1125
+ });
1126
+
1127
+ // ../../node_modules/property-information/lib/xlink.js
1128
+ var xlink = create({
1129
+ properties: {
1130
+ xLinkActuate: null,
1131
+ xLinkArcRole: null,
1132
+ xLinkHref: null,
1133
+ xLinkRole: null,
1134
+ xLinkShow: null,
1135
+ xLinkTitle: null,
1136
+ xLinkType: null
1137
+ },
1138
+ space: "xlink",
1139
+ transform(_, property) {
1140
+ return "xlink:" + property.slice(5).toLowerCase();
1141
+ }
1142
+ });
1143
+
1144
+ // ../../node_modules/property-information/lib/xmlns.js
1145
+ var xmlns = create({
1146
+ attributes: { xmlnsxlink: "xmlns:xlink" },
1147
+ properties: { xmlnsXLink: null, xmlns: null },
1148
+ space: "xmlns",
1149
+ transform: caseInsensitiveTransform
1150
+ });
1151
+
1152
+ // ../../node_modules/property-information/lib/xml.js
1153
+ var xml = create({
1154
+ properties: { xmlBase: null, xmlLang: null, xmlSpace: null },
1155
+ space: "xml",
1156
+ transform(_, property) {
1157
+ return "xml:" + property.slice(3).toLowerCase();
1158
+ }
1159
+ });
1160
+
1161
+ // ../../node_modules/property-information/index.js
1162
+ var html2 = merge([aria, html, xlink, xmlns, xml], "html");
1163
+ var svg2 = merge([aria, svg, xlink, xmlns, xml], "svg");
1164
+
1165
+ // ../../node_modules/hast-util-whitespace/lib/index.js
1166
+ var re = /[ \t\n\f\r]/g;
1167
+ function whitespace(thing) {
1168
+ return typeof thing === "object" ? thing.type === "text" ? empty(thing.value) : false : empty(thing);
1169
+ }
1170
+ function empty(value) {
1171
+ return value.replace(re, "") === "";
1172
+ }
1173
+ // ../../node_modules/devlop/lib/development.js
1174
+ var codesWarned = new Set;
1175
+
1176
+ class AssertionError extends Error {
1177
+ name = "Assertion";
1178
+ code = "ERR_ASSERTION";
1179
+ constructor(message, actual, expected, operator, generated) {
1180
+ super(message);
1181
+ if (Error.captureStackTrace) {
1182
+ Error.captureStackTrace(this, this.constructor);
1183
+ }
1184
+ this.actual = actual;
1185
+ this.expected = expected;
1186
+ this.generated = generated;
1187
+ this.operator = operator;
1188
+ }
1189
+ }
1190
+ function ok(value, message) {
1191
+ assert(Boolean(value), false, true, "ok", "Expected value to be truthy", message);
1192
+ }
1193
+ function assert(bool, actual, expected, operator, defaultMessage, userMessage) {
1194
+ if (!bool) {
1195
+ throw userMessage instanceof Error ? userMessage : new AssertionError(userMessage || defaultMessage, actual, expected, operator, !userMessage);
1196
+ }
1197
+ }
1198
+
1199
+ // ../../node_modules/unist-util-stringify-position/lib/index.js
1200
+ function stringifyPosition(value) {
1201
+ if (!value || typeof value !== "object") {
1202
+ return "";
1203
+ }
1204
+ if ("position" in value || "type" in value) {
1205
+ return position(value.position);
1206
+ }
1207
+ if ("start" in value || "end" in value) {
1208
+ return position(value);
1209
+ }
1210
+ if ("line" in value || "column" in value) {
1211
+ return point(value);
1212
+ }
1213
+ return "";
1214
+ }
1215
+ function point(point2) {
1216
+ return index(point2 && point2.line) + ":" + index(point2 && point2.column);
1217
+ }
1218
+ function position(pos) {
1219
+ return point(pos && pos.start) + "-" + point(pos && pos.end);
1220
+ }
1221
+ function index(value) {
1222
+ return value && typeof value === "number" ? value : 1;
1223
+ }
1224
+ // ../../node_modules/vfile-message/lib/index.js
1225
+ class VFileMessage extends Error {
1226
+ constructor(causeOrReason, optionsOrParentOrPlace, origin) {
1227
+ super();
1228
+ if (typeof optionsOrParentOrPlace === "string") {
1229
+ origin = optionsOrParentOrPlace;
1230
+ optionsOrParentOrPlace = undefined;
1231
+ }
1232
+ let reason = "";
1233
+ let options = {};
1234
+ let legacyCause = false;
1235
+ if (optionsOrParentOrPlace) {
1236
+ if ("line" in optionsOrParentOrPlace && "column" in optionsOrParentOrPlace) {
1237
+ options = { place: optionsOrParentOrPlace };
1238
+ } else if ("start" in optionsOrParentOrPlace && "end" in optionsOrParentOrPlace) {
1239
+ options = { place: optionsOrParentOrPlace };
1240
+ } else if ("type" in optionsOrParentOrPlace) {
1241
+ options = {
1242
+ ancestors: [optionsOrParentOrPlace],
1243
+ place: optionsOrParentOrPlace.position
1244
+ };
1245
+ } else {
1246
+ options = { ...optionsOrParentOrPlace };
1247
+ }
1248
+ }
1249
+ if (typeof causeOrReason === "string") {
1250
+ reason = causeOrReason;
1251
+ } else if (!options.cause && causeOrReason) {
1252
+ legacyCause = true;
1253
+ reason = causeOrReason.message;
1254
+ options.cause = causeOrReason;
1255
+ }
1256
+ if (!options.ruleId && !options.source && typeof origin === "string") {
1257
+ const index2 = origin.indexOf(":");
1258
+ if (index2 === -1) {
1259
+ options.ruleId = origin;
1260
+ } else {
1261
+ options.source = origin.slice(0, index2);
1262
+ options.ruleId = origin.slice(index2 + 1);
1263
+ }
1264
+ }
1265
+ if (!options.place && options.ancestors && options.ancestors) {
1266
+ const parent = options.ancestors[options.ancestors.length - 1];
1267
+ if (parent) {
1268
+ options.place = parent.position;
1269
+ }
1270
+ }
1271
+ const start = options.place && "start" in options.place ? options.place.start : options.place;
1272
+ this.ancestors = options.ancestors || undefined;
1273
+ this.cause = options.cause || undefined;
1274
+ this.column = start ? start.column : undefined;
1275
+ this.fatal = undefined;
1276
+ this.file = "";
1277
+ this.message = reason;
1278
+ this.line = start ? start.line : undefined;
1279
+ this.name = stringifyPosition(options.place) || "1:1";
1280
+ this.place = options.place || undefined;
1281
+ this.reason = this.message;
1282
+ this.ruleId = options.ruleId || undefined;
1283
+ this.source = options.source || undefined;
1284
+ this.stack = legacyCause && options.cause && typeof options.cause.stack === "string" ? options.cause.stack : "";
1285
+ this.actual = undefined;
1286
+ this.expected = undefined;
1287
+ this.note = undefined;
1288
+ this.url = undefined;
1289
+ }
1290
+ }
1291
+ VFileMessage.prototype.file = "";
1292
+ VFileMessage.prototype.name = "";
1293
+ VFileMessage.prototype.reason = "";
1294
+ VFileMessage.prototype.message = "";
1295
+ VFileMessage.prototype.stack = "";
1296
+ VFileMessage.prototype.column = undefined;
1297
+ VFileMessage.prototype.line = undefined;
1298
+ VFileMessage.prototype.ancestors = undefined;
1299
+ VFileMessage.prototype.cause = undefined;
1300
+ VFileMessage.prototype.fatal = undefined;
1301
+ VFileMessage.prototype.place = undefined;
1302
+ VFileMessage.prototype.ruleId = undefined;
1303
+ VFileMessage.prototype.source = undefined;
1304
+ // ../../node_modules/vfile/lib/minpath.browser.js
1305
+ var minpath = { basename, dirname, extname, join, sep: "/" };
1306
+ function basename(path, extname) {
1307
+ if (extname !== undefined && typeof extname !== "string") {
1308
+ throw new TypeError('"ext" argument must be a string');
1309
+ }
1310
+ assertPath(path);
1311
+ let start = 0;
1312
+ let end = -1;
1313
+ let index2 = path.length;
1314
+ let seenNonSlash;
1315
+ if (extname === undefined || extname.length === 0 || extname.length > path.length) {
1316
+ while (index2--) {
1317
+ if (path.codePointAt(index2) === 47) {
1318
+ if (seenNonSlash) {
1319
+ start = index2 + 1;
1320
+ break;
1321
+ }
1322
+ } else if (end < 0) {
1323
+ seenNonSlash = true;
1324
+ end = index2 + 1;
1325
+ }
1326
+ }
1327
+ return end < 0 ? "" : path.slice(start, end);
1328
+ }
1329
+ if (extname === path) {
1330
+ return "";
1331
+ }
1332
+ let firstNonSlashEnd = -1;
1333
+ let extnameIndex = extname.length - 1;
1334
+ while (index2--) {
1335
+ if (path.codePointAt(index2) === 47) {
1336
+ if (seenNonSlash) {
1337
+ start = index2 + 1;
1338
+ break;
1339
+ }
1340
+ } else {
1341
+ if (firstNonSlashEnd < 0) {
1342
+ seenNonSlash = true;
1343
+ firstNonSlashEnd = index2 + 1;
1344
+ }
1345
+ if (extnameIndex > -1) {
1346
+ if (path.codePointAt(index2) === extname.codePointAt(extnameIndex--)) {
1347
+ if (extnameIndex < 0) {
1348
+ end = index2;
1349
+ }
1350
+ } else {
1351
+ extnameIndex = -1;
1352
+ end = firstNonSlashEnd;
1353
+ }
1354
+ }
1355
+ }
1356
+ }
1357
+ if (start === end) {
1358
+ end = firstNonSlashEnd;
1359
+ } else if (end < 0) {
1360
+ end = path.length;
1361
+ }
1362
+ return path.slice(start, end);
1363
+ }
1364
+ function dirname(path) {
1365
+ assertPath(path);
1366
+ if (path.length === 0) {
1367
+ return ".";
1368
+ }
1369
+ let end = -1;
1370
+ let index2 = path.length;
1371
+ let unmatchedSlash;
1372
+ while (--index2) {
1373
+ if (path.codePointAt(index2) === 47) {
1374
+ if (unmatchedSlash) {
1375
+ end = index2;
1376
+ break;
1377
+ }
1378
+ } else if (!unmatchedSlash) {
1379
+ unmatchedSlash = true;
1380
+ }
1381
+ }
1382
+ return end < 0 ? path.codePointAt(0) === 47 ? "/" : "." : end === 1 && path.codePointAt(0) === 47 ? "//" : path.slice(0, end);
1383
+ }
1384
+ function extname(path) {
1385
+ assertPath(path);
1386
+ let index2 = path.length;
1387
+ let end = -1;
1388
+ let startPart = 0;
1389
+ let startDot = -1;
1390
+ let preDotState = 0;
1391
+ let unmatchedSlash;
1392
+ while (index2--) {
1393
+ const code = path.codePointAt(index2);
1394
+ if (code === 47) {
1395
+ if (unmatchedSlash) {
1396
+ startPart = index2 + 1;
1397
+ break;
1398
+ }
1399
+ continue;
1400
+ }
1401
+ if (end < 0) {
1402
+ unmatchedSlash = true;
1403
+ end = index2 + 1;
1404
+ }
1405
+ if (code === 46) {
1406
+ if (startDot < 0) {
1407
+ startDot = index2;
1408
+ } else if (preDotState !== 1) {
1409
+ preDotState = 1;
1410
+ }
1411
+ } else if (startDot > -1) {
1412
+ preDotState = -1;
1413
+ }
1414
+ }
1415
+ if (startDot < 0 || end < 0 || preDotState === 0 || preDotState === 1 && startDot === end - 1 && startDot === startPart + 1) {
1416
+ return "";
1417
+ }
1418
+ return path.slice(startDot, end);
1419
+ }
1420
+ function join(...segments) {
1421
+ let index2 = -1;
1422
+ let joined;
1423
+ while (++index2 < segments.length) {
1424
+ assertPath(segments[index2]);
1425
+ if (segments[index2]) {
1426
+ joined = joined === undefined ? segments[index2] : joined + "/" + segments[index2];
1427
+ }
1428
+ }
1429
+ return joined === undefined ? "." : normalize2(joined);
1430
+ }
1431
+ function normalize2(path) {
1432
+ assertPath(path);
1433
+ const absolute = path.codePointAt(0) === 47;
1434
+ let value = normalizeString(path, !absolute);
1435
+ if (value.length === 0 && !absolute) {
1436
+ value = ".";
1437
+ }
1438
+ if (value.length > 0 && path.codePointAt(path.length - 1) === 47) {
1439
+ value += "/";
1440
+ }
1441
+ return absolute ? "/" + value : value;
1442
+ }
1443
+ function normalizeString(path, allowAboveRoot) {
1444
+ let result = "";
1445
+ let lastSegmentLength = 0;
1446
+ let lastSlash = -1;
1447
+ let dots = 0;
1448
+ let index2 = -1;
1449
+ let code;
1450
+ let lastSlashIndex;
1451
+ while (++index2 <= path.length) {
1452
+ if (index2 < path.length) {
1453
+ code = path.codePointAt(index2);
1454
+ } else if (code === 47) {
1455
+ break;
1456
+ } else {
1457
+ code = 47;
1458
+ }
1459
+ if (code === 47) {
1460
+ if (lastSlash === index2 - 1 || dots === 1) {} else if (lastSlash !== index2 - 1 && dots === 2) {
1461
+ if (result.length < 2 || lastSegmentLength !== 2 || result.codePointAt(result.length - 1) !== 46 || result.codePointAt(result.length - 2) !== 46) {
1462
+ if (result.length > 2) {
1463
+ lastSlashIndex = result.lastIndexOf("/");
1464
+ if (lastSlashIndex !== result.length - 1) {
1465
+ if (lastSlashIndex < 0) {
1466
+ result = "";
1467
+ lastSegmentLength = 0;
1468
+ } else {
1469
+ result = result.slice(0, lastSlashIndex);
1470
+ lastSegmentLength = result.length - 1 - result.lastIndexOf("/");
1471
+ }
1472
+ lastSlash = index2;
1473
+ dots = 0;
1474
+ continue;
1475
+ }
1476
+ } else if (result.length > 0) {
1477
+ result = "";
1478
+ lastSegmentLength = 0;
1479
+ lastSlash = index2;
1480
+ dots = 0;
1481
+ continue;
1482
+ }
1483
+ }
1484
+ if (allowAboveRoot) {
1485
+ result = result.length > 0 ? result + "/.." : "..";
1486
+ lastSegmentLength = 2;
1487
+ }
1488
+ } else {
1489
+ if (result.length > 0) {
1490
+ result += "/" + path.slice(lastSlash + 1, index2);
1491
+ } else {
1492
+ result = path.slice(lastSlash + 1, index2);
1493
+ }
1494
+ lastSegmentLength = index2 - lastSlash - 1;
1495
+ }
1496
+ lastSlash = index2;
1497
+ dots = 0;
1498
+ } else if (code === 46 && dots > -1) {
1499
+ dots++;
1500
+ } else {
1501
+ dots = -1;
1502
+ }
1503
+ }
1504
+ return result;
1505
+ }
1506
+ function assertPath(path) {
1507
+ if (typeof path !== "string") {
1508
+ throw new TypeError("Path must be a string. Received " + JSON.stringify(path));
1509
+ }
1510
+ }
1511
+
1512
+ // ../../node_modules/vfile/lib/minproc.browser.js
1513
+ var minproc = { cwd };
1514
+ function cwd() {
1515
+ return "/";
1516
+ }
1517
+
1518
+ // ../../node_modules/vfile/lib/minurl.shared.js
1519
+ function isUrl(fileUrlOrPath) {
1520
+ return Boolean(fileUrlOrPath !== null && typeof fileUrlOrPath === "object" && "href" in fileUrlOrPath && fileUrlOrPath.href && "protocol" in fileUrlOrPath && fileUrlOrPath.protocol && fileUrlOrPath.auth === undefined);
1521
+ }
1522
+
1523
+ // ../../node_modules/vfile/lib/minurl.browser.js
1524
+ function urlToPath(path) {
1525
+ if (typeof path === "string") {
1526
+ path = new URL(path);
1527
+ } else if (!isUrl(path)) {
1528
+ const error = new TypeError('The "path" argument must be of type string or an instance of URL. Received `' + path + "`");
1529
+ error.code = "ERR_INVALID_ARG_TYPE";
1530
+ throw error;
1531
+ }
1532
+ if (path.protocol !== "file:") {
1533
+ const error = new TypeError("The URL must be of scheme file");
1534
+ error.code = "ERR_INVALID_URL_SCHEME";
1535
+ throw error;
1536
+ }
1537
+ return getPathFromURLPosix(path);
1538
+ }
1539
+ function getPathFromURLPosix(url) {
1540
+ if (url.hostname !== "") {
1541
+ const error = new TypeError('File URL host must be "localhost" or empty on darwin');
1542
+ error.code = "ERR_INVALID_FILE_URL_HOST";
1543
+ throw error;
1544
+ }
1545
+ const pathname = url.pathname;
1546
+ let index2 = -1;
1547
+ while (++index2 < pathname.length) {
1548
+ if (pathname.codePointAt(index2) === 37 && pathname.codePointAt(index2 + 1) === 50) {
1549
+ const third = pathname.codePointAt(index2 + 2);
1550
+ if (third === 70 || third === 102) {
1551
+ const error = new TypeError("File URL path must not include encoded / characters");
1552
+ error.code = "ERR_INVALID_FILE_URL_PATH";
1553
+ throw error;
1554
+ }
1555
+ }
1556
+ }
1557
+ return decodeURIComponent(pathname);
1558
+ }
1559
+
1560
+ // ../../node_modules/vfile/lib/index.js
1561
+ var order = [
1562
+ "history",
1563
+ "path",
1564
+ "basename",
1565
+ "stem",
1566
+ "extname",
1567
+ "dirname"
1568
+ ];
1569
+
1570
+ class VFile {
1571
+ constructor(value) {
1572
+ let options;
1573
+ if (!value) {
1574
+ options = {};
1575
+ } else if (isUrl(value)) {
1576
+ options = { path: value };
1577
+ } else if (typeof value === "string" || isUint8Array(value)) {
1578
+ options = { value };
1579
+ } else {
1580
+ options = value;
1581
+ }
1582
+ this.cwd = "cwd" in options ? "" : minproc.cwd();
1583
+ this.data = {};
1584
+ this.history = [];
1585
+ this.messages = [];
1586
+ this.value;
1587
+ this.map;
1588
+ this.result;
1589
+ this.stored;
1590
+ let index2 = -1;
1591
+ while (++index2 < order.length) {
1592
+ const field2 = order[index2];
1593
+ if (field2 in options && options[field2] !== undefined && options[field2] !== null) {
1594
+ this[field2] = field2 === "history" ? [...options[field2]] : options[field2];
1595
+ }
1596
+ }
1597
+ let field;
1598
+ for (field in options) {
1599
+ if (!order.includes(field)) {
1600
+ this[field] = options[field];
1601
+ }
1602
+ }
1603
+ }
1604
+ get basename() {
1605
+ return typeof this.path === "string" ? minpath.basename(this.path) : undefined;
1606
+ }
1607
+ set basename(basename2) {
1608
+ assertNonEmpty(basename2, "basename");
1609
+ assertPart(basename2, "basename");
1610
+ this.path = minpath.join(this.dirname || "", basename2);
1611
+ }
1612
+ get dirname() {
1613
+ return typeof this.path === "string" ? minpath.dirname(this.path) : undefined;
1614
+ }
1615
+ set dirname(dirname2) {
1616
+ assertPath2(this.basename, "dirname");
1617
+ this.path = minpath.join(dirname2 || "", this.basename);
1618
+ }
1619
+ get extname() {
1620
+ return typeof this.path === "string" ? minpath.extname(this.path) : undefined;
1621
+ }
1622
+ set extname(extname2) {
1623
+ assertPart(extname2, "extname");
1624
+ assertPath2(this.dirname, "extname");
1625
+ if (extname2) {
1626
+ if (extname2.codePointAt(0) !== 46) {
1627
+ throw new Error("`extname` must start with `.`");
1628
+ }
1629
+ if (extname2.includes(".", 1)) {
1630
+ throw new Error("`extname` cannot contain multiple dots");
1631
+ }
1632
+ }
1633
+ this.path = minpath.join(this.dirname, this.stem + (extname2 || ""));
1634
+ }
1635
+ get path() {
1636
+ return this.history[this.history.length - 1];
1637
+ }
1638
+ set path(path) {
1639
+ if (isUrl(path)) {
1640
+ path = urlToPath(path);
1641
+ }
1642
+ assertNonEmpty(path, "path");
1643
+ if (this.path !== path) {
1644
+ this.history.push(path);
1645
+ }
1646
+ }
1647
+ get stem() {
1648
+ return typeof this.path === "string" ? minpath.basename(this.path, this.extname) : undefined;
1649
+ }
1650
+ set stem(stem) {
1651
+ assertNonEmpty(stem, "stem");
1652
+ assertPart(stem, "stem");
1653
+ this.path = minpath.join(this.dirname || "", stem + (this.extname || ""));
1654
+ }
1655
+ fail(causeOrReason, optionsOrParentOrPlace, origin) {
1656
+ const message = this.message(causeOrReason, optionsOrParentOrPlace, origin);
1657
+ message.fatal = true;
1658
+ throw message;
1659
+ }
1660
+ info(causeOrReason, optionsOrParentOrPlace, origin) {
1661
+ const message = this.message(causeOrReason, optionsOrParentOrPlace, origin);
1662
+ message.fatal = undefined;
1663
+ return message;
1664
+ }
1665
+ message(causeOrReason, optionsOrParentOrPlace, origin) {
1666
+ const message = new VFileMessage(causeOrReason, optionsOrParentOrPlace, origin);
1667
+ if (this.path) {
1668
+ message.name = this.path + ":" + message.name;
1669
+ message.file = this.path;
1670
+ }
1671
+ message.fatal = false;
1672
+ this.messages.push(message);
1673
+ return message;
1674
+ }
1675
+ toString(encoding) {
1676
+ if (this.value === undefined) {
1677
+ return "";
1678
+ }
1679
+ if (typeof this.value === "string") {
1680
+ return this.value;
1681
+ }
1682
+ const decoder = new TextDecoder(encoding || undefined);
1683
+ return decoder.decode(this.value);
1684
+ }
1685
+ }
1686
+ function assertPart(part, name) {
1687
+ if (part && part.includes(minpath.sep)) {
1688
+ throw new Error("`" + name + "` cannot be a path: did not expect `" + minpath.sep + "`");
1689
+ }
1690
+ }
1691
+ function assertNonEmpty(part, name) {
1692
+ if (!part) {
1693
+ throw new Error("`" + name + "` cannot be empty");
1694
+ }
1695
+ }
1696
+ function assertPath2(path, name) {
1697
+ if (!path) {
1698
+ throw new Error("Setting `" + name + "` requires `path` to be set too");
1699
+ }
1700
+ }
1701
+ function isUint8Array(value) {
1702
+ return Boolean(value && typeof value === "object" && "byteLength" in value && "byteOffset" in value);
1703
+ }
1704
+ // ../../node_modules/comma-separated-tokens/index.js
1705
+ function parse(value) {
1706
+ const tokens = [];
1707
+ const input = String(value || "");
1708
+ let index2 = input.indexOf(",");
1709
+ let start = 0;
1710
+ let end = false;
1711
+ while (!end) {
1712
+ if (index2 === -1) {
1713
+ index2 = input.length;
1714
+ end = true;
1715
+ }
1716
+ const token = input.slice(start, index2).trim();
1717
+ if (token || !end) {
1718
+ tokens.push(token);
1719
+ }
1720
+ start = index2 + 1;
1721
+ index2 = input.indexOf(",", start);
1722
+ }
1723
+ return tokens;
1724
+ }
1725
+ function stringify(values, options) {
1726
+ const settings = options || {};
1727
+ const input = values[values.length - 1] === "" ? [...values, ""] : values;
1728
+ return input.join((settings.padRight ? " " : "") + "," + (settings.padLeft === false ? "" : " ")).trim();
1729
+ }
1730
+
1731
+ // ../../node_modules/space-separated-tokens/index.js
1732
+ function parse2(value) {
1733
+ const input = String(value || "").trim();
1734
+ return input ? input.split(/[ \t\n\r\f]+/g) : [];
1735
+ }
1736
+ function stringify2(values) {
1737
+ return values.join(" ").trim();
1738
+ }
1739
+
1740
+ export { normalize, find, html2 as html, svg2 as svg, parse, stringify, parse2 as parse1, stringify2 as stringify1, whitespace, ok, stringifyPosition, VFileMessage, VFile, validateComponentSlots };
1741
+
1742
+ //# debugId=A2C40FC33DB9947564756E2164756E21
1743
+ //# sourceMappingURL=studio-qcy05dp8.js.map