@thebes/cadmea 1.6.0 → 1.7.1

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.
@@ -20,16 +20,17 @@ var _tmpl$$4 = ["<p class=\"text-sm text-error\" role=\"alert\">", "</p>"], _tmp
20
20
  "<span class=\"text-base-content/60 self-center px-1 text-xs\" aria-live=\"polite\">",
21
21
  "",
22
22
  "</span>"
23
- ], _tmpl$7$1 = [
23
+ ], _tmpl$7$1 = "<div class=\"modal modal-open\" role=\"dialog\" aria-modal=\"true\"><div class=\"modal-box\"><h3 class=\"text-lg font-semibold\">Publish changes?</h3><p class=\"text-base-content/70 py-2 text-sm\">Your latest saved draft will go live on the site.</p><div class=\"modal-action\"><button type=\"button\" class=\"btn btn-ghost\">Cancel</button><button type=\"button\" class=\"btn btn-primary\">Publish</button></div></div><button type=\"button\" class=\"modal-backdrop\" aria-label=\"Cancel\"></button></div>", _tmpl$8$1 = [
24
24
  "<form class=\"flex flex-col gap-4\">",
25
25
  "",
26
26
  "<div class=\"bg-base-100 sticky bottom-0 flex gap-2 border-t py-3\">",
27
- "</div></form>"
28
- ], _tmpl$8$1 = [
27
+ "</div>",
28
+ "</form>"
29
+ ], _tmpl$9$1 = [
29
30
  "<fieldset class=\"border-base-300 rounded-box border p-4\"><legend class=\"px-2 text-sm font-semibold\">",
30
31
  "</legend>",
31
32
  "</fieldset>"
32
- ], _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 = [
33
+ ], _tmpl$0$1 = ["<div class=\"grid grid-cols-1 gap-4 md:grid-cols-2\">", "</div>"], _tmpl$1$1 = "<span class=\"text-error\"> *</span>", _tmpl$10$1 = ["<p class=\"text-base-content/60 mb-1 text-xs\">", "</p>"], _tmpl$11$1 = ["<p class=\"text-error mt-1 text-sm\" role=\"alert\">", "</p>"], _tmpl$12$1 = [
33
34
  "<div class=\"",
34
35
  "\"><label class=\"label\"",
35
36
  ">",
@@ -38,37 +39,37 @@ var _tmpl$$4 = ["<p class=\"text-sm text-error\" role=\"alert\">", "</p>"], _tmp
38
39
  "",
39
40
  "",
40
41
  "</div>"
41
- ], _tmpl$12$1 = [
42
+ ], _tmpl$13$1 = [
42
43
  "<input",
43
44
  " class=\"input\" type=\"text\"",
44
45
  "",
45
46
  ">"
46
- ], _tmpl$13$1 = [
47
+ ], _tmpl$14$1 = [
47
48
  "<select",
48
49
  " class=\"select\"",
49
50
  "",
50
51
  "",
51
52
  ">",
52
53
  "</select>"
53
- ], _tmpl$14$1 = [
54
+ ], _tmpl$15$1 = [
54
55
  "<option",
55
56
  ">",
56
57
  "</option>"
57
- ], _tmpl$15$1 = [
58
+ ], _tmpl$16 = [
58
59
  "<input",
59
60
  " class=\"input\" type=\"number\"",
60
61
  "",
61
62
  ">"
62
- ], _tmpl$16 = [
63
+ ], _tmpl$17 = [
63
64
  "<input",
64
65
  " class=\"input\" type=\"text\" readonly",
65
66
  ">"
66
- ], _tmpl$17 = [
67
+ ], _tmpl$18 = [
67
68
  "<input",
68
69
  " class=\"checkbox\" type=\"checkbox\"",
69
70
  "",
70
71
  ">"
71
- ], _tmpl$18 = ["<p class=\"text-sm opacity-70 break-all\">", "</p>"], _tmpl$19 = ["<p class=\"text-sm text-error\">", "</p>"], _tmpl$20 = [
72
+ ], _tmpl$19 = ["<p class=\"text-sm opacity-70 break-all\">", "</p>"], _tmpl$20 = ["<p class=\"text-sm text-error\">", "</p>"], _tmpl$21 = [
72
73
  "<div class=\"flex flex-col gap-2\">",
73
74
  "<input",
74
75
  " class=\"file-input\" type=\"file\"",
@@ -76,11 +77,11 @@ var _tmpl$$4 = ["<p class=\"text-sm text-error\" role=\"alert\">", "</p>"], _tmp
76
77
  ">",
77
78
  "",
78
79
  "</div>"
79
- ], _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 = [
80
+ ], _tmpl$22 = ["<div class=\"mb-1 flex flex-wrap gap-1\">", "</div>"], _tmpl$23 = "<button type=\"button\" aria-label=\"Clear\" class=\"absolute top-2 right-2 cursor-pointer opacity-60\">×</button>", _tmpl$24 = [
80
81
  "<div",
81
82
  " 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\">",
82
83
  "</div>"
83
- ], _tmpl$24 = [
84
+ ], _tmpl$25 = [
84
85
  "<div class=\"relative\">",
85
86
  "<input",
86
87
  " type=\"text\" role=\"combobox\"",
@@ -89,27 +90,27 @@ var _tmpl$$4 = ["<p class=\"text-sm text-error\" role=\"alert\">", "</p>"], _tmp
89
90
  ">",
90
91
  "",
91
92
  "</div>"
92
- ], _tmpl$25 = [
93
+ ], _tmpl$26 = [
93
94
  "<span class=\"badge badge-primary gap-1\">",
94
95
  "<button type=\"button\" aria-label=\"",
95
96
  "\" class=\"cursor-pointer\">×</button></span>"
96
- ], _tmpl$26 = [
97
+ ], _tmpl$27 = [
97
98
  "<button type=\"button\" role=\"option\"",
98
99
  " class=\"",
99
100
  "\">",
100
101
  "</button>"
101
- ], _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 = [
102
+ ], _tmpl$28 = ["<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$29 = [
102
103
  "<div class=\"relative self-start\"><button type=\"button\" class=\"btn btn-outline btn-sm\" aria-haspopup=\"menu\"",
103
104
  ">Add block</button>",
104
105
  "</div>"
105
- ], _tmpl$29 = [
106
+ ], _tmpl$30 = [
106
107
  "<div class=\"form-control md:col-span-2\"><div class=\"label font-medium\">",
107
108
  "",
108
109
  "</div>",
109
110
  "<div class=\"flex flex-col gap-3\">",
110
111
  "",
111
112
  "</div></div>"
112
- ], _tmpl$30 = ["<span class=\"text-base-content/60 truncate text-sm\">", "</span>"], _tmpl$31 = ["<div class=\"flex flex-col gap-2\">", "</div>"], _tmpl$32 = [
113
+ ], _tmpl$31 = ["<span class=\"text-base-content/60 truncate text-sm\">", "</span>"], _tmpl$32 = ["<div class=\"flex flex-col gap-2\">", "</div>"], _tmpl$33 = [
113
114
  "<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\"",
114
115
  "><span aria-hidden=\"true\">",
115
116
  "</span><span class=\"font-semibold\">",
@@ -118,7 +119,7 @@ var _tmpl$$4 = ["<p class=\"text-sm text-error\" role=\"alert\">", "</p>"], _tmp
118
119
  ">↑</button><button type=\"button\" class=\"btn btn-ghost btn-xs\" aria-label=\"Move down\"",
119
120
  ">↓</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>",
120
121
  "</div>"
121
- ], _tmpl$33 = ["<button type=\"button\" class=\"btn btn-outline btn-sm self-start\">Add ", "</button>"], _tmpl$34 = ["<i", " aria-hidden=\"true\"></i>"], _tmpl$35 = [
122
+ ], _tmpl$34 = ["<button type=\"button\" class=\"btn btn-outline btn-sm self-start\">Add ", "</button>"], _tmpl$35 = ["<i", " aria-hidden=\"true\"></i>"], _tmpl$36 = [
122
123
  "<button type=\"button\" role=\"menuitem\" class=\"flex items-center gap-2 rounded px-3 py-2 text-left\">",
123
124
  "",
124
125
  "</button>"
@@ -188,6 +189,7 @@ function CollectionEdit(props) {
188
189
  const fieldGroups = groupFields(editableFields(props.config));
189
190
  const versioned = () => props.config.versions?.drafts && props.draftActions;
190
191
  const [autosaveStatus, setAutosaveStatus] = createSignal("idle");
192
+ const [confirmingPublish, setConfirmingPublish] = createSignal(false);
191
193
  let autosaveTimer;
192
194
  createEffect(() => {
193
195
  const dirty = !isDefaultValue();
@@ -209,7 +211,7 @@ function CollectionEdit(props) {
209
211
  }, props.draftActions?.autosaveMs ?? 1500);
210
212
  });
211
213
  onCleanup(() => clearTimeout(autosaveTimer));
212
- return ssr(_tmpl$7$1, escape(createComponent(Show, {
214
+ return ssr(_tmpl$8$1, escape(createComponent(Show, {
213
215
  get when() {
214
216
  return props.error;
215
217
  },
@@ -233,7 +235,7 @@ function CollectionEdit(props) {
233
235
  });
234
236
  },
235
237
  get children() {
236
- return ssr(_tmpl$8$1, escape(group.name), escape(createComponent(FieldsGrid, {
238
+ return ssr(_tmpl$9$1, escape(group.name), escape(createComponent(FieldsGrid, {
237
239
  form,
238
240
  ctx,
239
241
  get fields() {
@@ -329,10 +331,17 @@ function CollectionEdit(props) {
329
331
  })
330
332
  ];
331
333
  }
334
+ })), escape(createComponent(Show, {
335
+ get when() {
336
+ return confirmingPublish();
337
+ },
338
+ get children() {
339
+ return ssr(_tmpl$7$1);
340
+ }
332
341
  })));
333
342
  }
334
343
  function FieldsGrid(props) {
335
- return ssr(_tmpl$9$1, escape(createComponent(For, {
344
+ return ssr(_tmpl$0$1, escape(createComponent(For, {
336
345
  get each() {
337
346
  return props.fields;
338
347
  },
@@ -351,26 +360,26 @@ function renderField(form, ctx, name, field, label) {
351
360
  const spanClass = field.admin?.width === "half" ? "md:col-span-1" : "md:col-span-2";
352
361
  return createComponent(form.Field, {
353
362
  name,
354
- children: (fieldApi) => ssr(_tmpl$11$1, `form-control ${escape(spanClass, true)}`, ssrAttribute("for", escape(name, true), false), escape(label), escape(createComponent(Show, {
363
+ children: (fieldApi) => ssr(_tmpl$12$1, `form-control ${escape(spanClass, true)}`, ssrAttribute("for", escape(name, true), false), escape(label), escape(createComponent(Show, {
355
364
  get when() {
356
365
  return field.required;
357
366
  },
358
367
  get children() {
359
- return ssr(_tmpl$0$1);
368
+ return ssr(_tmpl$1$1);
360
369
  }
361
370
  })), escape(createComponent(Show, {
362
371
  get when() {
363
372
  return field.admin?.description;
364
373
  },
365
374
  get children() {
366
- return ssr(_tmpl$1$1, escape(field.admin?.description));
375
+ return ssr(_tmpl$10$1, escape(field.admin?.description));
367
376
  }
368
377
  })), escape(renderControl(ctx, name, field, fieldApi)), escape(createComponent(Show, {
369
378
  get when() {
370
379
  return (fieldApi().state.meta.errors?.length ?? 0) > 0;
371
380
  },
372
381
  get children() {
373
- return ssr(_tmpl$10$1, escape(fieldApi().state.meta.errors.filter(Boolean).join(", ")));
382
+ return ssr(_tmpl$11$1, escape(fieldApi().state.meta.errors.filter(Boolean).join(", ")));
374
383
  }
375
384
  })))
376
385
  });
@@ -390,16 +399,16 @@ function renderControl(ctx, name, field, fieldApi) {
390
399
  const readOnly = field.admin?.readOnly;
391
400
  const change = (v) => fieldApi().handleChange(v);
392
401
  switch (field.type) {
393
- 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));
394
- 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, {
402
+ case "text": return ssr(_tmpl$13$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));
403
+ case "select": return ssr(_tmpl$14$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, {
395
404
  get each() {
396
405
  return field.options;
397
406
  },
398
- children: (option) => ssr(_tmpl$14$1, ssrAttribute("value", escape(option, true), false), escape(option))
407
+ children: (option) => ssr(_tmpl$15$1, ssrAttribute("value", escape(option, true), false), escape(option))
399
408
  })));
400
- 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));
401
- case "date": return ssr(_tmpl$16, ssrAttribute("id", escape(name, true), false), ssrAttribute("value", escape(formatDateValue(fieldApi().state.value), true), false));
402
- case "checkbox": return ssr(_tmpl$17, ssrAttribute("id", escape(name, true), false), ssrAttribute("disabled", readOnly, true), ssrAttribute("checked", fieldApi().state.value ?? false, true));
409
+ case "number": return ssr(_tmpl$16, 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));
410
+ case "date": return ssr(_tmpl$17, ssrAttribute("id", escape(name, true), false), ssrAttribute("value", escape(formatDateValue(fieldApi().state.value), true), false));
411
+ case "checkbox": return ssr(_tmpl$18, ssrAttribute("id", escape(name, true), false), ssrAttribute("disabled", readOnly, true), ssrAttribute("checked", fieldApi().state.value ?? false, true));
403
412
  case "upload": return createComponent(UploadControl, {
404
413
  name,
405
414
  field,
@@ -438,12 +447,12 @@ function UploadControl(props) {
438
447
  const [uploading, setUploading] = createSignal(false);
439
448
  const [uploadError, setUploadError] = createSignal();
440
449
  const value = () => props.fieldApi().state.value;
441
- return ssr(_tmpl$20, escape(createComponent(Show, {
450
+ return ssr(_tmpl$21, escape(createComponent(Show, {
442
451
  get when() {
443
452
  return value();
444
453
  },
445
454
  get children() {
446
- return ssr(_tmpl$18, escape(value()));
455
+ return ssr(_tmpl$19, escape(value()));
447
456
  }
448
457
  })), 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, {
449
458
  get when() {
@@ -457,7 +466,7 @@ function UploadControl(props) {
457
466
  return uploadError();
458
467
  },
459
468
  get children() {
460
- return ssr(_tmpl$19, escape(uploadError()));
469
+ return ssr(_tmpl$20, escape(uploadError()));
461
470
  }
462
471
  })));
463
472
  }
@@ -479,16 +488,16 @@ function RelationshipField(props) {
479
488
  return props.options.filter((o) => o.label.toLowerCase().includes(q) && (!isMulti() || !selectedIds().includes(o.id)));
480
489
  };
481
490
  const singleLabel = () => selectedOptions()[0]?.label ?? "";
482
- return ssr(_tmpl$24, escape(createComponent(Show, {
491
+ return ssr(_tmpl$25, escape(createComponent(Show, {
483
492
  get when() {
484
493
  return isMulti() && selectedOptions().length > 0;
485
494
  },
486
495
  get children() {
487
- return ssr(_tmpl$21, escape(createComponent(For, {
496
+ return ssr(_tmpl$22, escape(createComponent(For, {
488
497
  get each() {
489
498
  return selectedOptions();
490
499
  },
491
- children: (option) => ssr(_tmpl$25, escape(option.label), `Remove ${escape(option.label, true)}`)
500
+ children: (option) => ssr(_tmpl$26, escape(option.label), `Remove ${escape(option.label, true)}`)
492
501
  })));
493
502
  }
494
503
  })), 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, {
@@ -496,18 +505,18 @@ function RelationshipField(props) {
496
505
  return !isMulti() && value() != null && !props.field.required;
497
506
  },
498
507
  get children() {
499
- return ssr(_tmpl$22);
508
+ return ssr(_tmpl$23);
500
509
  }
501
510
  })), escape(createComponent(Show, {
502
511
  get when() {
503
512
  return open() && filtered().length > 0;
504
513
  },
505
514
  get children() {
506
- return ssr(_tmpl$23, ssrAttribute("id", escape(listId, true), false), escape(createComponent(For, {
515
+ return ssr(_tmpl$24, ssrAttribute("id", escape(listId, true), false), escape(createComponent(For, {
507
516
  get each() {
508
517
  return filtered();
509
518
  },
510
- 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))
519
+ children: (option, i) => ssr(_tmpl$27, 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
520
  })));
512
521
  }
513
522
  })));
@@ -549,19 +558,19 @@ function BlockEditor(props) {
549
558
  }
550
559
  return "";
551
560
  }
552
- return ssr(_tmpl$29, escape(props.label), escape(createComponent(Show, {
561
+ return ssr(_tmpl$30, escape(props.label), escape(createComponent(Show, {
553
562
  get when() {
554
563
  return props.field.required;
555
564
  },
556
565
  get children() {
557
- return ssr(_tmpl$0$1);
566
+ return ssr(_tmpl$1$1);
558
567
  }
559
568
  })), escape(createComponent(Show, {
560
569
  get when() {
561
570
  return props.field.admin?.description;
562
571
  },
563
572
  get children() {
564
- return ssr(_tmpl$1$1, escape(props.field.admin?.description));
573
+ return ssr(_tmpl$10$1, escape(props.field.admin?.description));
565
574
  }
566
575
  })), escape(createComponent(Index, {
567
576
  get each() {
@@ -569,19 +578,19 @@ function BlockEditor(props) {
569
578
  },
570
579
  children: (item, index) => {
571
580
  const isCollapsed = () => collapsed().has(index);
572
- return ssr(_tmpl$32, ssrAttribute("aria-expanded", !isCollapsed(), false), isCollapsed() ? "▸" : "▾", escape(blockTitle(item())), escape(createComponent(Show, {
581
+ return ssr(_tmpl$33, ssrAttribute("aria-expanded", !isCollapsed(), false), isCollapsed() ? "▸" : "▾", escape(blockTitle(item())), escape(createComponent(Show, {
573
582
  get when() {
574
583
  return isCollapsed() && blockSummary(item());
575
584
  },
576
585
  get children() {
577
- return ssr(_tmpl$30, escape(blockSummary(item())));
586
+ return ssr(_tmpl$31, escape(blockSummary(item())));
578
587
  }
579
588
  })), ssrAttribute("disabled", index === 0, true), ssrAttribute("disabled", index === items().length - 1, true), escape(createComponent(Show, {
580
589
  get when() {
581
590
  return !isCollapsed();
582
591
  },
583
592
  get children() {
584
- return ssr(_tmpl$31, escape(createComponent(For, {
593
+ return ssr(_tmpl$32, escape(createComponent(For, {
585
594
  get each() {
586
595
  return fieldsForItem(props.field, item());
587
596
  },
@@ -595,22 +604,22 @@ function BlockEditor(props) {
595
604
  return disc && variants.length > 0;
596
605
  },
597
606
  get fallback() {
598
- return ssr(_tmpl$33, escape(props.label));
607
+ return ssr(_tmpl$34, escape(props.label));
599
608
  },
600
609
  get children() {
601
- return ssr(_tmpl$28, ssrAttribute("aria-expanded", escape(menuOpen(), true), false), escape(createComponent(Show, {
610
+ return ssr(_tmpl$29, ssrAttribute("aria-expanded", escape(menuOpen(), true), false), escape(createComponent(Show, {
602
611
  get when() {
603
612
  return menuOpen();
604
613
  },
605
614
  get children() {
606
- return ssr(_tmpl$27, escape(createComponent(For, {
615
+ return ssr(_tmpl$28, escape(createComponent(For, {
607
616
  each: variants,
608
- children: (variant) => ssr(_tmpl$35, escape(createComponent(Show, {
617
+ children: (variant) => ssr(_tmpl$36, escape(createComponent(Show, {
609
618
  get when() {
610
619
  return disc?.variantsAdmin?.[variant]?.icon;
611
620
  },
612
621
  get children() {
613
- return ssr(_tmpl$34, ssrAttribute("class", escape(disc?.variantsAdmin?.[variant]?.icon, true), false));
622
+ return ssr(_tmpl$35, ssrAttribute("class", escape(disc?.variantsAdmin?.[variant]?.icon, true), false));
614
623
  }
615
624
  })), escape(variantLabel(disc, variant)))
616
625
  })));
@@ -658,7 +667,7 @@ var _tmpl$$3 = ["<button type=\"button\" class=\"btn btn-outline btn-sm\">", "</
658
667
  "<option",
659
668
  ">",
660
669
  "</option>"
661
- ], _tmpl$8 = ["<p class=\"text-sm opacity-70\">No ", " yet.</p>"], _tmpl$9 = "<th></th>", _tmpl$0 = [
670
+ ], _tmpl$8 = ["<div class=\"border-base-300 rounded-box flex flex-col items-center gap-1 border border-dashed py-12 text-center\"><p class=\"text-base-content/70 m-0\">No ", " yet.</p></div>"], _tmpl$9 = "<th></th>", _tmpl$0 = [
662
671
  "<tr>",
663
672
  "",
664
673
  "</tr>"
@@ -733,7 +742,7 @@ function CollectionList(props) {
733
742
  return props.rows.length > 0;
734
743
  },
735
744
  get fallback() {
736
- return ssr(_tmpl$8, escape(props.config.slug));
745
+ return props.emptyState ?? ssr(_tmpl$8, escape(props.config.slug));
737
746
  },
738
747
  get children() {
739
748
  return [ssr(_tmpl$3$2, escape(createComponent(For, {