@thebes/cadmea 1.3.0 → 1.4.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.
@@ -1,6 +1,6 @@
1
1
  import { createComponent, escape, ssr, ssrAttribute } from "solid-js/web";
2
2
  import { createMutation, createQuery, useQueryClient } from "@tanstack/solid-query";
3
- import { For, Index, Show, Suspense, createEffect, createSignal, lazy } from "solid-js";
3
+ import { For, Index, Show, Suspense, createEffect, createSignal, lazy, onCleanup } from "solid-js";
4
4
  import { createForm } from "@tanstack/solid-form";
5
5
  import { validateDocument } from "@thebes/cadmus/cms";
6
6
  import { Link, useBlocker } from "@tanstack/solid-router";
@@ -19,15 +19,19 @@ var _tmpl$$4 = ["<p class=\"text-sm text-error\" role=\"alert\">", "</p>"], _tmp
19
19
  ">",
20
20
  "</button>"
21
21
  ], _tmpl$6$1 = [
22
+ "<span class=\"text-base-content/60 self-center px-1 text-xs\" aria-live=\"polite\">",
23
+ "",
24
+ "</span>"
25
+ ], _tmpl$7$1 = [
22
26
  "<form class=\"flex flex-col gap-4\">",
23
27
  "",
24
28
  "<div class=\"bg-base-100 sticky bottom-0 flex gap-2 border-t py-3\">",
25
29
  "</div></form>"
26
- ], _tmpl$7$1 = [
30
+ ], _tmpl$8$1 = [
27
31
  "<fieldset class=\"border-base-300 rounded-box border p-4\"><legend class=\"px-2 text-sm font-semibold\">",
28
32
  "</legend>",
29
33
  "</fieldset>"
30
- ], _tmpl$8$1 = ["<div class=\"grid grid-cols-1 gap-4 md:grid-cols-2\">", "</div>"], _tmpl$9$1 = "<span class=\"text-error\"> *</span>", _tmpl$0$1 = ["<p class=\"text-base-content/60 mb-1 text-xs\">", "</p>"], _tmpl$1$1 = ["<p class=\"text-error mt-1 text-sm\" role=\"alert\">", "</p>"], _tmpl$10$1 = [
34
+ ], _tmpl$9$1 = ["<div class=\"grid grid-cols-1 gap-4 md:grid-cols-2\">", "</div>"], _tmpl$0$1 = "<span class=\"text-error\"> *</span>", _tmpl$1$1 = ["<p class=\"text-base-content/60 mb-1 text-xs\">", "</p>"], _tmpl$10$1 = ["<p class=\"text-error mt-1 text-sm\" role=\"alert\">", "</p>"], _tmpl$11$1 = [
31
35
  "<div class=\"",
32
36
  "\"><label class=\"label\"",
33
37
  ">",
@@ -36,37 +40,37 @@ var _tmpl$$4 = ["<p class=\"text-sm text-error\" role=\"alert\">", "</p>"], _tmp
36
40
  "",
37
41
  "",
38
42
  "</div>"
39
- ], _tmpl$11$1 = [
43
+ ], _tmpl$12$1 = [
40
44
  "<input",
41
45
  " class=\"input\" type=\"text\"",
42
46
  "",
43
47
  ">"
44
- ], _tmpl$12$1 = [
48
+ ], _tmpl$13$1 = [
45
49
  "<select",
46
50
  " class=\"select\"",
47
51
  "",
48
52
  "",
49
53
  ">",
50
54
  "</select>"
51
- ], _tmpl$13$1 = [
55
+ ], _tmpl$14$1 = [
52
56
  "<option",
53
57
  ">",
54
58
  "</option>"
55
- ], _tmpl$14$1 = [
59
+ ], _tmpl$15$1 = [
56
60
  "<input",
57
61
  " class=\"input\" type=\"number\"",
58
62
  "",
59
63
  ">"
60
- ], _tmpl$15$1 = [
64
+ ], _tmpl$16 = [
61
65
  "<input",
62
66
  " class=\"input\" type=\"text\" readonly",
63
67
  ">"
64
- ], _tmpl$16 = [
68
+ ], _tmpl$17 = [
65
69
  "<input",
66
70
  " class=\"checkbox\" type=\"checkbox\"",
67
71
  "",
68
72
  ">"
69
- ], _tmpl$17 = ["<p class=\"text-sm opacity-70 break-all\">", "</p>"], _tmpl$18 = ["<p class=\"text-sm text-error\">", "</p>"], _tmpl$19 = [
73
+ ], _tmpl$18 = ["<p class=\"text-sm opacity-70 break-all\">", "</p>"], _tmpl$19 = ["<p class=\"text-sm text-error\">", "</p>"], _tmpl$20 = [
70
74
  "<div class=\"flex flex-col gap-2\">",
71
75
  "<input",
72
76
  " class=\"file-input\" type=\"file\"",
@@ -74,11 +78,11 @@ var _tmpl$$4 = ["<p class=\"text-sm text-error\" role=\"alert\">", "</p>"], _tmp
74
78
  ">",
75
79
  "",
76
80
  "</div>"
77
- ], _tmpl$20 = ["<div class=\"mb-1 flex flex-wrap gap-1\">", "</div>"], _tmpl$21 = "<button type=\"button\" aria-label=\"Clear\" class=\"absolute top-2 right-2 cursor-pointer opacity-60\">×</button>", _tmpl$22 = [
81
+ ], _tmpl$21 = ["<div class=\"mb-1 flex flex-wrap gap-1\">", "</div>"], _tmpl$22 = "<button type=\"button\" aria-label=\"Clear\" class=\"absolute top-2 right-2 cursor-pointer opacity-60\">×</button>", _tmpl$23 = [
78
82
  "<div",
79
83
  " role=\"listbox\" class=\"bg-base-100 border-base-300 rounded-box absolute z-10 mt-1 flex max-h-56 w-full flex-col overflow-auto border p-1 shadow\">",
80
84
  "</div>"
81
- ], _tmpl$23 = [
85
+ ], _tmpl$24 = [
82
86
  "<div class=\"relative\">",
83
87
  "<input",
84
88
  " type=\"text\" role=\"combobox\"",
@@ -87,27 +91,27 @@ var _tmpl$$4 = ["<p class=\"text-sm text-error\" role=\"alert\">", "</p>"], _tmp
87
91
  ">",
88
92
  "",
89
93
  "</div>"
90
- ], _tmpl$24 = [
94
+ ], _tmpl$25 = [
91
95
  "<span class=\"badge badge-primary gap-1\">",
92
96
  "<button type=\"button\" aria-label=\"",
93
97
  "\" class=\"cursor-pointer\">×</button></span>"
94
- ], _tmpl$25 = [
98
+ ], _tmpl$26 = [
95
99
  "<button type=\"button\" role=\"option\"",
96
100
  " class=\"",
97
101
  "\">",
98
102
  "</button>"
99
- ], _tmpl$26 = ["<div role=\"menu\" class=\"bg-base-100 border-base-300 rounded-box absolute z-10 mt-1 flex flex-col border p-1 shadow\">", "</div>"], _tmpl$27 = [
103
+ ], _tmpl$27 = ["<div role=\"menu\" class=\"bg-base-100 border-base-300 rounded-box absolute z-10 mt-1 flex flex-col border p-1 shadow\">", "</div>"], _tmpl$28 = [
100
104
  "<div class=\"relative self-start\"><button type=\"button\" class=\"btn btn-outline btn-sm\" aria-haspopup=\"menu\"",
101
105
  ">Add block</button>",
102
106
  "</div>"
103
- ], _tmpl$28 = [
107
+ ], _tmpl$29 = [
104
108
  "<div class=\"form-control md:col-span-2\"><div class=\"label font-medium\">",
105
109
  "",
106
110
  "</div>",
107
111
  "<div class=\"flex flex-col gap-3\">",
108
112
  "",
109
113
  "</div></div>"
110
- ], _tmpl$29 = ["<span class=\"text-base-content/60 truncate text-sm\">", "</span>"], _tmpl$30 = ["<div class=\"flex flex-col gap-2\">", "</div>"], _tmpl$31 = [
114
+ ], _tmpl$30 = ["<span class=\"text-base-content/60 truncate text-sm\">", "</span>"], _tmpl$31 = ["<div class=\"flex flex-col gap-2\">", "</div>"], _tmpl$32 = [
111
115
  "<div class=\"card bg-base-200 flex flex-col gap-2 p-3\"><div class=\"flex items-center gap-2\"><button type=\"button\" class=\"btn btn-ghost btn-sm gap-2\"",
112
116
  "><span aria-hidden=\"true\">",
113
117
  "</span><span class=\"font-semibold\">",
@@ -116,7 +120,7 @@ var _tmpl$$4 = ["<p class=\"text-sm text-error\" role=\"alert\">", "</p>"], _tmp
116
120
  ">↑</button><button type=\"button\" class=\"btn btn-ghost btn-xs\" aria-label=\"Move down\"",
117
121
  ">↓</button><button type=\"button\" class=\"btn btn-ghost btn-xs\" aria-label=\"Duplicate\">⧉</button><button type=\"button\" class=\"btn btn-ghost btn-xs text-error\" aria-label=\"Remove\">Remove</button></div></div>",
118
122
  "</div>"
119
- ], _tmpl$32 = ["<button type=\"button\" class=\"btn btn-outline btn-sm self-start\">Add ", "</button>"], _tmpl$33 = ["<i", " aria-hidden=\"true\"></i>"], _tmpl$34 = [
123
+ ], _tmpl$33 = ["<button type=\"button\" class=\"btn btn-outline btn-sm self-start\">Add ", "</button>"], _tmpl$34 = ["<i", " aria-hidden=\"true\"></i>"], _tmpl$35 = [
120
124
  "<button type=\"button\" role=\"menuitem\" class=\"flex items-center gap-2 rounded px-3 py-2 text-left\">",
121
125
  "",
122
126
  "</button>"
@@ -184,7 +188,29 @@ function CollectionEdit(props) {
184
188
  };
185
189
  const fieldGroups = groupFields(editableFields(props.config));
186
190
  const versioned = () => props.config.versions?.drafts && props.draftActions;
187
- return ssr(_tmpl$6$1, escape(createComponent(Show, {
191
+ const [autosaveStatus, setAutosaveStatus] = createSignal("idle");
192
+ let autosaveTimer;
193
+ createEffect(() => {
194
+ const dirty = !isDefaultValue();
195
+ const values = formValues();
196
+ if (!versioned() || !props.draftActions?.autosave) return;
197
+ if (!dirty) {
198
+ setAutosaveStatus("idle");
199
+ return;
200
+ }
201
+ clearTimeout(autosaveTimer);
202
+ autosaveTimer = setTimeout(async () => {
203
+ setAutosaveStatus("saving");
204
+ try {
205
+ await props.draftActions?.onSaveDraft(editablePayload(values));
206
+ setAutosaveStatus("saved");
207
+ } catch {
208
+ setAutosaveStatus("idle");
209
+ }
210
+ }, props.draftActions?.autosaveMs ?? 1500);
211
+ });
212
+ onCleanup(() => clearTimeout(autosaveTimer));
213
+ return ssr(_tmpl$7$1, escape(createComponent(Show, {
188
214
  get when() {
189
215
  return props.error;
190
216
  },
@@ -208,7 +234,7 @@ function CollectionEdit(props) {
208
234
  });
209
235
  },
210
236
  get children() {
211
- return ssr(_tmpl$7$1, escape(group.name), escape(createComponent(FieldsGrid, {
237
+ return ssr(_tmpl$8$1, escape(group.name), escape(createComponent(FieldsGrid, {
212
238
  form,
213
239
  ctx,
214
240
  get fields() {
@@ -283,13 +309,31 @@ function CollectionEdit(props) {
283
309
  }
284
310
  })));
285
311
  }
312
+ }),
313
+ createComponent(Show, {
314
+ get when() {
315
+ return props.draftActions?.autosave;
316
+ },
317
+ get children() {
318
+ return ssr(_tmpl$6$1, escape(createComponent(Show, {
319
+ get when() {
320
+ return autosaveStatus() === "saving";
321
+ },
322
+ children: "Saving…"
323
+ })), escape(createComponent(Show, {
324
+ get when() {
325
+ return autosaveStatus() === "saved";
326
+ },
327
+ children: "Saved"
328
+ })));
329
+ }
286
330
  })
287
331
  ];
288
332
  }
289
333
  })));
290
334
  }
291
335
  function FieldsGrid(props) {
292
- return ssr(_tmpl$8$1, escape(createComponent(For, {
336
+ return ssr(_tmpl$9$1, escape(createComponent(For, {
293
337
  get each() {
294
338
  return props.fields;
295
339
  },
@@ -308,26 +352,26 @@ function renderField(form, ctx, name, field, label) {
308
352
  const spanClass = field.admin?.width === "half" ? "md:col-span-1" : "md:col-span-2";
309
353
  return createComponent(form.Field, {
310
354
  name,
311
- children: (fieldApi) => ssr(_tmpl$10$1, `form-control ${escape(spanClass, true)}`, ssrAttribute("for", escape(name, true), false), escape(label), escape(createComponent(Show, {
355
+ children: (fieldApi) => ssr(_tmpl$11$1, `form-control ${escape(spanClass, true)}`, ssrAttribute("for", escape(name, true), false), escape(label), escape(createComponent(Show, {
312
356
  get when() {
313
357
  return field.required;
314
358
  },
315
359
  get children() {
316
- return ssr(_tmpl$9$1);
360
+ return ssr(_tmpl$0$1);
317
361
  }
318
362
  })), escape(createComponent(Show, {
319
363
  get when() {
320
364
  return field.admin?.description;
321
365
  },
322
366
  get children() {
323
- return ssr(_tmpl$0$1, escape(field.admin?.description));
367
+ return ssr(_tmpl$1$1, escape(field.admin?.description));
324
368
  }
325
369
  })), escape(renderControl(ctx, name, field, fieldApi)), escape(createComponent(Show, {
326
370
  get when() {
327
371
  return (fieldApi().state.meta.errors?.length ?? 0) > 0;
328
372
  },
329
373
  get children() {
330
- return ssr(_tmpl$1$1, escape(fieldApi().state.meta.errors.filter(Boolean).join(", ")));
374
+ return ssr(_tmpl$10$1, escape(fieldApi().state.meta.errors.filter(Boolean).join(", ")));
331
375
  }
332
376
  })))
333
377
  });
@@ -347,16 +391,16 @@ function renderControl(ctx, name, field, fieldApi) {
347
391
  const readOnly = field.admin?.readOnly;
348
392
  const change = (v) => fieldApi().handleChange(v);
349
393
  switch (field.type) {
350
- case "text": return ssr(_tmpl$11$1, ssrAttribute("id", escape(name, true), false), ssrAttribute("placeholder", escape(field.admin?.placeholder, true), false) + ssrAttribute("readonly", escape(readOnly, true), false) + ssrAttribute("value", escape(fieldApi().state.value ?? "", true), false), ssrAttribute("required", field.required, true));
351
- case "select": return ssr(_tmpl$12$1, ssrAttribute("id", escape(name, true), false), ssrAttribute("value", escape(fieldApi().state.value ?? "", true), false), ssrAttribute("required", field.required, true), ssrAttribute("disabled", readOnly, true), escape(createComponent(For, {
394
+ case "text": return ssr(_tmpl$12$1, ssrAttribute("id", escape(name, true), false), ssrAttribute("placeholder", escape(field.admin?.placeholder, true), false) + ssrAttribute("readonly", escape(readOnly, true), false) + ssrAttribute("value", escape(fieldApi().state.value ?? "", true), false), ssrAttribute("required", field.required, true));
395
+ case "select": return ssr(_tmpl$13$1, ssrAttribute("id", escape(name, true), false), ssrAttribute("value", escape(fieldApi().state.value ?? "", true), false), ssrAttribute("required", field.required, true), ssrAttribute("disabled", readOnly, true), escape(createComponent(For, {
352
396
  get each() {
353
397
  return field.options;
354
398
  },
355
- children: (option) => ssr(_tmpl$13$1, ssrAttribute("value", escape(option, true), false), escape(option))
399
+ children: (option) => ssr(_tmpl$14$1, ssrAttribute("value", escape(option, true), false), escape(option))
356
400
  })));
357
- case "number": return ssr(_tmpl$14$1, ssrAttribute("id", escape(name, true), false), ssrAttribute("placeholder", escape(field.admin?.placeholder, true), false) + ssrAttribute("readonly", escape(readOnly, true), false) + ssrAttribute("value", escape(fieldApi().state.value ?? "", true), false), ssrAttribute("required", field.required, true));
358
- case "date": return ssr(_tmpl$15$1, ssrAttribute("id", escape(name, true), false), ssrAttribute("value", escape(formatDateValue(fieldApi().state.value), true), false));
359
- case "checkbox": return ssr(_tmpl$16, ssrAttribute("id", escape(name, true), false), ssrAttribute("disabled", readOnly, true), ssrAttribute("checked", fieldApi().state.value ?? false, true));
401
+ case "number": return ssr(_tmpl$15$1, ssrAttribute("id", escape(name, true), false), ssrAttribute("placeholder", escape(field.admin?.placeholder, true), false) + ssrAttribute("readonly", escape(readOnly, true), false) + ssrAttribute("value", escape(fieldApi().state.value ?? "", true), false), ssrAttribute("required", field.required, true));
402
+ case "date": return ssr(_tmpl$16, ssrAttribute("id", escape(name, true), false), ssrAttribute("value", escape(formatDateValue(fieldApi().state.value), true), false));
403
+ case "checkbox": return ssr(_tmpl$17, ssrAttribute("id", escape(name, true), false), ssrAttribute("disabled", readOnly, true), ssrAttribute("checked", fieldApi().state.value ?? false, true));
360
404
  case "upload": return createComponent(UploadControl, {
361
405
  name,
362
406
  field,
@@ -395,12 +439,12 @@ function UploadControl(props) {
395
439
  const [uploading, setUploading] = createSignal(false);
396
440
  const [uploadError, setUploadError] = createSignal();
397
441
  const value = () => props.fieldApi().state.value;
398
- return ssr(_tmpl$19, escape(createComponent(Show, {
442
+ return ssr(_tmpl$20, escape(createComponent(Show, {
399
443
  get when() {
400
444
  return value();
401
445
  },
402
446
  get children() {
403
- return ssr(_tmpl$17, escape(value()));
447
+ return ssr(_tmpl$18, escape(value()));
404
448
  }
405
449
  })), ssrAttribute("id", escape(props.name, true), false), ssrAttribute("required", props.field.required && !value(), true), ssrAttribute("disabled", uploading() || props.field.admin?.readOnly, true), escape(createComponent(Show, {
406
450
  get when() {
@@ -414,7 +458,7 @@ function UploadControl(props) {
414
458
  return uploadError();
415
459
  },
416
460
  get children() {
417
- return ssr(_tmpl$18, escape(uploadError()));
461
+ return ssr(_tmpl$19, escape(uploadError()));
418
462
  }
419
463
  })));
420
464
  }
@@ -436,16 +480,16 @@ function RelationshipField(props) {
436
480
  return props.options.filter((o) => o.label.toLowerCase().includes(q) && (!isMulti() || !selectedIds().includes(o.id)));
437
481
  };
438
482
  const singleLabel = () => selectedOptions()[0]?.label ?? "";
439
- return ssr(_tmpl$23, escape(createComponent(Show, {
483
+ return ssr(_tmpl$24, escape(createComponent(Show, {
440
484
  get when() {
441
485
  return isMulti() && selectedOptions().length > 0;
442
486
  },
443
487
  get children() {
444
- return ssr(_tmpl$20, escape(createComponent(For, {
488
+ return ssr(_tmpl$21, escape(createComponent(For, {
445
489
  get each() {
446
490
  return selectedOptions();
447
491
  },
448
- children: (option) => ssr(_tmpl$24, escape(option.label), `Remove ${escape(option.label, true)}`)
492
+ children: (option) => ssr(_tmpl$25, escape(option.label), `Remove ${escape(option.label, true)}`)
449
493
  })));
450
494
  }
451
495
  })), ssrAttribute("id", escape(props.name, true), false), ssrAttribute("aria-expanded", escape(open(), true), false) + ssrAttribute("aria-controls", escape(listId, true), false), ssrAttribute("required", props.field.required && selectedIds().length === 0, true), ssrAttribute("disabled", props.field.admin?.readOnly, true) + ssrAttribute("placeholder", escape(props.field.admin?.placeholder ?? "Search…", true), false) + ssrAttribute("value", open() || isMulti() ? escape(query(), true) : escape(singleLabel(), true), false), escape(createComponent(Show, {
@@ -453,18 +497,18 @@ function RelationshipField(props) {
453
497
  return !isMulti() && value() != null && !props.field.required;
454
498
  },
455
499
  get children() {
456
- return ssr(_tmpl$21);
500
+ return ssr(_tmpl$22);
457
501
  }
458
502
  })), escape(createComponent(Show, {
459
503
  get when() {
460
504
  return open() && filtered().length > 0;
461
505
  },
462
506
  get children() {
463
- return ssr(_tmpl$22, ssrAttribute("id", escape(listId, true), false), escape(createComponent(For, {
507
+ return ssr(_tmpl$23, ssrAttribute("id", escape(listId, true), false), escape(createComponent(For, {
464
508
  get each() {
465
509
  return filtered();
466
510
  },
467
- children: (option, i) => ssr(_tmpl$25, ssrAttribute("aria-selected", escape(selectedIds().includes(option.id), true), false), `rounded px-3 py-2 text-left ${i() === active() ? "bg-base-200" : ""}`, escape(option.label))
511
+ children: (option, i) => ssr(_tmpl$26, ssrAttribute("aria-selected", escape(selectedIds().includes(option.id), true), false), `rounded px-3 py-2 text-left ${i() === active() ? "bg-base-200" : ""}`, escape(option.label))
468
512
  })));
469
513
  }
470
514
  })));
@@ -506,19 +550,19 @@ function BlockEditor(props) {
506
550
  }
507
551
  return "";
508
552
  }
509
- return ssr(_tmpl$28, escape(props.label), escape(createComponent(Show, {
553
+ return ssr(_tmpl$29, escape(props.label), escape(createComponent(Show, {
510
554
  get when() {
511
555
  return props.field.required;
512
556
  },
513
557
  get children() {
514
- return ssr(_tmpl$9$1);
558
+ return ssr(_tmpl$0$1);
515
559
  }
516
560
  })), escape(createComponent(Show, {
517
561
  get when() {
518
562
  return props.field.admin?.description;
519
563
  },
520
564
  get children() {
521
- return ssr(_tmpl$0$1, escape(props.field.admin?.description));
565
+ return ssr(_tmpl$1$1, escape(props.field.admin?.description));
522
566
  }
523
567
  })), escape(createComponent(Index, {
524
568
  get each() {
@@ -526,19 +570,19 @@ function BlockEditor(props) {
526
570
  },
527
571
  children: (item, index) => {
528
572
  const isCollapsed = () => collapsed().has(index);
529
- return ssr(_tmpl$31, ssrAttribute("aria-expanded", !isCollapsed(), false), isCollapsed() ? "▸" : "▾", escape(blockTitle(item())), escape(createComponent(Show, {
573
+ return ssr(_tmpl$32, ssrAttribute("aria-expanded", !isCollapsed(), false), isCollapsed() ? "▸" : "▾", escape(blockTitle(item())), escape(createComponent(Show, {
530
574
  get when() {
531
575
  return isCollapsed() && blockSummary(item());
532
576
  },
533
577
  get children() {
534
- return ssr(_tmpl$29, escape(blockSummary(item())));
578
+ return ssr(_tmpl$30, escape(blockSummary(item())));
535
579
  }
536
580
  })), ssrAttribute("disabled", index === 0, true), ssrAttribute("disabled", index === items().length - 1, true), escape(createComponent(Show, {
537
581
  get when() {
538
582
  return !isCollapsed();
539
583
  },
540
584
  get children() {
541
- return ssr(_tmpl$30, escape(createComponent(For, {
585
+ return ssr(_tmpl$31, escape(createComponent(For, {
542
586
  get each() {
543
587
  return fieldsForItem(props.field, item());
544
588
  },
@@ -552,22 +596,22 @@ function BlockEditor(props) {
552
596
  return disc && variants.length > 0;
553
597
  },
554
598
  get fallback() {
555
- return ssr(_tmpl$32, escape(props.label));
599
+ return ssr(_tmpl$33, escape(props.label));
556
600
  },
557
601
  get children() {
558
- return ssr(_tmpl$27, ssrAttribute("aria-expanded", escape(menuOpen(), true), false), escape(createComponent(Show, {
602
+ return ssr(_tmpl$28, ssrAttribute("aria-expanded", escape(menuOpen(), true), false), escape(createComponent(Show, {
559
603
  get when() {
560
604
  return menuOpen();
561
605
  },
562
606
  get children() {
563
- return ssr(_tmpl$26, escape(createComponent(For, {
607
+ return ssr(_tmpl$27, escape(createComponent(For, {
564
608
  each: variants,
565
- children: (variant) => ssr(_tmpl$34, escape(createComponent(Show, {
609
+ children: (variant) => ssr(_tmpl$35, escape(createComponent(Show, {
566
610
  get when() {
567
611
  return disc?.variantsAdmin?.[variant]?.icon;
568
612
  },
569
613
  get children() {
570
- return ssr(_tmpl$33, ssrAttribute("class", escape(disc?.variantsAdmin?.[variant]?.icon, true), false));
614
+ return ssr(_tmpl$34, ssrAttribute("class", escape(disc?.variantsAdmin?.[variant]?.icon, true), false));
571
615
  }
572
616
  })), escape(variantLabel(disc, variant)))
573
617
  })));