From e6f05ae99f671ddb4ff0c9be2057019ef88b2d88 Mon Sep 17 00:00:00 2001 From: Claude Date: Fri, 29 May 2026 11:28:56 +0000 Subject: [PATCH 1/4] =?UTF-8?q?feat(admin):=20richer=20live=20preview=20?= =?UTF-8?q?=E2=80=94=20motion,=20focus=20ring,=20card,=20dark=20mode=20tog?= =?UTF-8?q?gle,=20CSS=20export?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit LivePreview: - Replace static dark section with ☀/☾ Light/Dark toggle; all swatches, buttons and card instantly flip to the selected mode's color variants. - Extend inlineStyle to compute --preview-radius-* and --preview-shadow from the live radius_scale / shadow_strength tokens so the card updates when those tabs change. - Add a card component preview showing colors + typography + radius + shadow together (header accent strip, avatar, badges, action button). - Add Outline and Ghost button variants to the button row. MiscTab: - Add motion preview: 5 animated fill-bars (instant → slower) running at their computed duration (base ms × motionScale) so the effect of changing Motion Scale is immediately visible. - Add focus ring preview: a live focusable button that renders the exact outline-width, outline-offset and outline-style set in the fields above. SpacingPreview: - Add a container card below the scale bars showing padding (space-m) and gap (space-s) applied to a real card layout; values update with the viewport slider so fluid spacing is visible in context. ExportImportTab: - Add "Download CSS file" button alongside "Download token file (.json)" so the standalone @layer CSS can be grabbed directly from this tab (mirrors the Export CSS button already present in SaveBar). https://claude.ai/code/session_019MD9F8rrpYzCeDTmSTLA1K --- .../src/components/ExportImportTab.svelte | 21 +- .../src/components/LivePreview.svelte | 363 ++++++++++++++---- .../admin-app/src/components/MiscTab.svelte | 134 +++++++ .../src/components/SpacingPreview.svelte | 118 ++++++ integrations/bricks/assets/admin-app/app.css | 2 +- integrations/bricks/assets/admin-app/app.js | 35 +- 6 files changed, 570 insertions(+), 103 deletions(-) diff --git a/integrations/bricks/admin-app/src/components/ExportImportTab.svelte b/integrations/bricks/admin-app/src/components/ExportImportTab.svelte index 792e24df..296eff19 100644 --- a/integrations/bricks/admin-app/src/components/ExportImportTab.svelte +++ b/integrations/bricks/admin-app/src/components/ExportImportTab.svelte @@ -1,10 +1,26 @@ -
-

Live preview

+
+ +
+

Live preview

+
+ + +
+
+

The quick brown fox jumps over the lazy dog

- This is a preview of your design token configuration. Adjust values above - and see changes reflected here in real time. Brand and status colors are - rendered as swatches; the heading and this paragraph reflect the current - body and heading font stacks. + Body and heading fonts update as you adjust typography settings. Colors below + reflect brand and status tokens for the selected mode.

+
{#each brand as name (name)}
- {name} -
+ >{name}
{/each} {#each statuses as name (name)}
- {name} -
+ >{name}
{/each}
+ +
Primary Action + Outline + Ghost
-
-

Dark mode

-
-
- {#each brand as name (name)} -
- {name} -
- {/each} - {#each statuses as name (name)} -
- {name} -
- {/each} + +
+
+
+
+
+
+

Card Component

+

Design token preview

+
+ Active +
+

+ This card shows radius, shadow, spacing, colors, and typography + working together. All values update live as you adjust tokens. +

+
+
Generated CSS: {css || '/* (defaults — no overrides set) */'} diff --git a/integrations/bricks/admin-app/src/components/MiscTab.svelte b/integrations/bricks/admin-app/src/components/MiscTab.svelte index 2b6c4c07..aa50f89b 100644 --- a/integrations/bricks/admin-app/src/components/MiscTab.svelte +++ b/integrations/bricks/admin-app/src/components/MiscTab.svelte @@ -40,6 +40,34 @@ parseFloat(tokens.shadows?.shadow_strength ?? shadowDefaults.shadow_strength ?? 0.08) ); + // ── Motion preview ──────────────────────────────────────────────────────── + const motionScale = $derived( + parseFloat(tokens.motion?.motion_scale ?? motionDefaults.motion_scale ?? 1) || 1 + ); + + const DURATION_STEPS = ['instant', 'fast', 'normal', 'slow', 'slower']; + + const durationMs = $derived( + DURATION_STEPS.map((name) => { + const saved = tokens.motion?.[`duration_${name}`]; + const base = saved !== undefined && saved !== '' + ? parseFloat(saved) + : parseFloat(durations[name] ?? 0); + return { name, ms: Math.round(base * motionScale) }; + }) + ); + + // ── Focus ring preview ──────────────────────────────────────────────────── + const focusRingWidth = $derived( + parseFloat(tokens.contrast?.focus_ring_width ?? contrastDefaults.focus_ring_width ?? 2) + ); + const focusRingOffset = $derived( + parseFloat(tokens.contrast?.focus_ring_offset ?? contrastDefaults.focus_ring_offset ?? 2) + ); + const focusRingStyle = $derived( + tokens.contrast?.focus_ring_style ?? contrastDefaults.focus_ring_style ?? 'solid' + ); + const shadowPreviews = $derived([ { label: 'xs', @@ -137,6 +165,19 @@ />
+ +
+ {#each durationMs as d (d.name)} +
+ {d.name} +
+
+
+ {d.ms}ms +
+ {/each} +
+

Accessibility

@@ -172,6 +213,19 @@ />
+ +
+ + + {focusRingWidth}px {focusRingStyle} · {focusRingOffset}px offset + +
+ @@ -299,6 +353,86 @@ text-align: center; } + /* ── Motion preview ───────────────────────────────────────────────── */ + @keyframes slashed-mp-fill { + 0% { width: 0; } + 50% { width: 100%; } + 100% { width: 0; } + } + + .motion-preview { + display: flex; + flex-direction: column; + gap: 8px; + margin-top: 12px; + padding: 16px; + background: #fff; + border: 1px solid #c3c4c7; + border-radius: 4px; + } + .motion-preview__item { + display: grid; + grid-template-columns: 60px 1fr 56px; + align-items: center; + gap: 10px; + } + .motion-preview__label { + font-size: 11px; + font-weight: 600; + color: #50575e; + text-align: right; + } + .motion-preview__track { + height: 6px; + background: #f0f0f1; + border-radius: 3px; + overflow: hidden; + } + .motion-preview__fill { + height: 100%; + background: #2271b1; + border-radius: 3px; + animation: slashed-mp-fill ease-in-out infinite; + } + .motion-preview__ms { + font-size: 11px; + color: #8c8f94; + text-align: right; + font-variant-numeric: tabular-nums; + } + + /* ── Focus ring preview ─────────────────────────────────────────────── */ + .focus-ring-preview { + display: flex; + align-items: center; + gap: 12px; + margin-top: 12px; + padding: 16px; + background: #fff; + border: 1px solid #c3c4c7; + border-radius: 4px; + } + .focus-ring-preview__btn { + padding: 7px 16px; + border: 1px solid #c3c4c7; + border-radius: 4px; + background: #f0f0f1; + color: #1d2327; + cursor: pointer; + font-size: 13px; + } + .focus-ring-preview__btn:focus-visible { + outline-width: var(--fp-width, 2px); + outline-offset: var(--fp-offset, 2px); + outline-style: var(--fp-style, solid); + outline-color: #2271b1; + } + .focus-ring-preview__desc { + font-size: 12px; + color: #50575e; + font-family: monospace; + } + /* ── Shadow preview ────────────────────────────────────────────────── */ .shadow-preview { display: flex; diff --git a/integrations/bricks/admin-app/src/components/SpacingPreview.svelte b/integrations/bricks/admin-app/src/components/SpacingPreview.svelte index becde6c6..1f4c451c 100644 --- a/integrations/bricks/admin-app/src/components/SpacingPreview.svelte +++ b/integrations/bricks/admin-app/src/components/SpacingPreview.svelte @@ -57,6 +57,17 @@ return { name, sizeRem: sizeRem.toFixed(3), barPct: Math.min(barPct, 100) }; }); }); + + /** Spacing values at current vw for the container card preview. */ + const cardSpacing = $derived.by(() => { + const spaceScale = parseFloat(tokens.spacing?.space_scale ?? defaults.space_scale ?? 1) || 1; + const t = Math.max(0, Math.min(1, (vw - VW_MIN) / (VW_MAX - VW_MIN))); + const resolve = (name) => { + const { min, max } = resolveStep(name); + return ((min + (max - min) * t) * spaceScale).toFixed(3); + }; + return { xs: resolve('xs'), s: resolve('s'), m: resolve('m'), l: resolve('l') }; + });
@@ -92,6 +103,32 @@
{/each}
+ + +
+

Container context at {vw}px

+
+
+
+
+
Card heading
+
padding: {cardSpacing.m}rem
+
+
+
+ Body section · gap between rows: {cardSpacing.s}rem +
+ +
+
diff --git a/integrations/bricks/assets/admin-app/app.css b/integrations/bricks/assets/admin-app/app.css index 8ee480b4..eec88bff 100644 --- a/integrations/bricks/assets/admin-app/app.css +++ b/integrations/bricks/assets/admin-app/app.css @@ -1 +1 @@ -.tab-nav.svelte-yyiz68{display:flex;gap:2px;border-bottom:1px solid #c3c4c7;flex-wrap:wrap}.tab-nav__btn.svelte-yyiz68{background:transparent;border:1px solid transparent;border-bottom:none;padding:8px 14px;cursor:pointer;font-size:14px;color:#2c3338;border-radius:4px 4px 0 0}.tab-nav__btn.svelte-yyiz68:hover{background:#f0f0f1}.tab-nav__btn.active.svelte-yyiz68{background:#fff;border-color:#c3c4c7;margin-bottom:-1px;color:#1d2327;font-weight:500}.row.svelte-1es83p3{display:grid;grid-template-columns:220px 1fr;align-items:center;gap:12px;padding:10px 0;border-bottom:1px solid #f0f0f1}.row.svelte-1es83p3:last-child{border-bottom:none}.row__label.svelte-1es83p3 label:where(.svelte-1es83p3){font-weight:500;display:block;color:#1d2327}.row__var.svelte-1es83p3{display:inline-block;margin-top:4px;background:#f6f7f7;padding:1px 6px;border-radius:3px;font-size:11px;color:#50575e}.row__inputs.svelte-1es83p3{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.row__swatch.svelte-1es83p3{width:28px;height:28px;border-radius:4px;border:1px solid #c3c4c7;flex-shrink:0}.row__hex.svelte-1es83p3{width:44px;height:28px;padding:0;border:1px solid #8c8f94;border-radius:3px;cursor:pointer;background:#fff}.row__hex-text.svelte-1es83p3{width:110px}.row__raw.svelte-1es83p3{flex:1;min-width:240px;font-family:ui-monospace,monospace}.row__toggle.svelte-1es83p3{background:transparent;border:none;color:#2271b1;cursor:pointer;padding:4px 8px;font-size:12px;text-decoration:underline}.row__toggle.svelte-1es83p3:hover{color:#135e96}.advanced-section.svelte-imklo1{margin-top:24px}.advanced-section__toggle.svelte-imklo1{background:none;border:none;color:#2271b1;font-size:13px;cursor:pointer;padding:6px 0;display:flex;align-items:center;gap:6px;font-weight:500}.advanced-section__toggle.svelte-imklo1:hover{text-decoration:underline}.advanced-section__body.svelte-imklo1{margin-top:12px}h2.svelte-1vle0rm{margin-top:0}.status-heading.svelte-1vle0rm,.dark-heading.svelte-1vle0rm{margin-top:24px}.hint.svelte-1vle0rm{color:#50575e;margin-bottom:16px;max-width:720px}.rows.svelte-1vle0rm{border:1px solid #f0f0f1;border-radius:4px;padding:0 12px;background:#fcfcfd}.rows--dark.svelte-1vle0rm{background:#f8f8fc;border-color:#e2e4e9}.row.svelte-miyob8{display:grid;grid-template-columns:220px 1fr;align-items:center;gap:12px;padding:10px 0;border-bottom:1px solid #f0f0f1}.row.svelte-miyob8:last-child{border-bottom:none}.row__label.svelte-miyob8 label:where(.svelte-miyob8),.row__label-text.svelte-miyob8{font-weight:500;display:block;color:#1d2327}.row__var.svelte-miyob8{display:inline-block;margin-top:4px;background:#f6f7f7;padding:1px 6px;border-radius:3px;font-size:11px;color:#50575e}.row__inputs.svelte-miyob8{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.row__desc.svelte-miyob8{flex-basis:100%;margin:4px 0 0;color:#50575e;font-size:12px}.text.mono.svelte-j8yw6l{font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.unit.svelte-1pjh3bn{color:#50575e;font-size:12px}.typo-preview.svelte-10qc8pz{background:#fff;border:1px solid #c3c4c7;border-radius:4px;padding:16px 20px;margin-top:8px}.typo-preview__header.svelte-10qc8pz{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px;margin-bottom:14px}.typo-preview__title.svelte-10qc8pz{font-size:13px;font-weight:600;color:#1d2327;margin:0}.typo-preview__slider-wrap.svelte-10qc8pz{display:flex;align-items:center;gap:8px;font-size:12px;color:#50575e}.typo-preview__slider.svelte-10qc8pz{width:180px;cursor:pointer;accent-color:#2271b1}.typo-preview__vw-label.svelte-10qc8pz{min-width:58px;text-align:right;font-variant-numeric:tabular-nums;color:#1d2327;font-weight:500}.typo-preview__rows.svelte-10qc8pz{display:flex;flex-direction:column;gap:0}.typo-preview__row.svelte-10qc8pz{display:grid;grid-template-columns:52px 1fr 120px;align-items:baseline;gap:12px;padding:6px 0;border-bottom:1px solid #f0f0f1;overflow:hidden}.typo-preview__row.svelte-10qc8pz:last-child{border-bottom:none}.typo-preview__step-name.svelte-10qc8pz{font-size:11px;font-weight:600;color:#50575e;text-transform:uppercase;letter-spacing:.05em;flex-shrink:0}.typo-preview__sample.svelte-10qc8pz{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#1d2327;line-height:1.2}.typo-preview__meta.svelte-10qc8pz{font-size:10px;color:#787c82;text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}.typo-preview__group-heading.svelte-10qc8pz{font-size:11px;font-weight:600;color:#50575e;text-transform:uppercase;letter-spacing:.07em;margin:0 0 6px;padding:6px 0 4px;border-bottom:1px solid #f0f0f1}.typo-preview__rows--display.svelte-10qc8pz{margin-top:16px;padding-top:4px;border-top:2px solid #f0f0f1}.scale-gen.svelte-1y8fkhh{background:#f6f7f7;border:1px solid #c3c4c7;border-radius:4px;padding:14px 16px;margin-bottom:16px}.scale-gen__header.svelte-1y8fkhh{display:flex;align-items:baseline;gap:10px;margin-bottom:12px;flex-wrap:wrap}.scale-gen__title.svelte-1y8fkhh{font-size:12px;font-weight:600;color:#1d2327;text-transform:uppercase;letter-spacing:.06em}.scale-gen__hint.svelte-1y8fkhh{font-size:12px;color:#787c82}.scale-gen__controls.svelte-1y8fkhh{display:flex;gap:12px;flex-wrap:wrap;align-items:flex-end;margin-bottom:12px}.scale-gen__field.svelte-1y8fkhh{display:flex;flex-direction:column;gap:4px}.scale-gen__label.svelte-1y8fkhh{font-size:11px;color:#50575e;font-weight:500}.scale-gen__field.svelte-1y8fkhh input[type=number]:where(.svelte-1y8fkhh){width:68px;height:28px;border:1px solid #8c8f94;border-radius:3px;padding:0 6px;font-size:13px;background:#fff;color:#1d2327}.scale-gen__field.svelte-1y8fkhh select:where(.svelte-1y8fkhh){height:28px;border:1px solid #8c8f94;border-radius:3px;padding:0 4px;font-size:12px;background:#fff;color:#1d2327;cursor:pointer}.scale-gen__input-wrap.svelte-1y8fkhh{display:flex;align-items:center;gap:4px}.scale-gen__unit.svelte-1y8fkhh{font-size:11px;color:#787c82}.scale-gen__preview.svelte-1y8fkhh{display:flex;flex-wrap:wrap;gap:4px 12px;margin-bottom:12px}.scale-gen__step.svelte-1y8fkhh{display:flex;gap:4px;font-size:11px;color:#50575e;font-family:ui-monospace,monospace}.scale-gen__step.display.svelte-1y8fkhh{color:#2271b1}.scale-gen__step-name.svelte-1y8fkhh{font-weight:600;min-width:52px}.scale-gen__step-val.svelte-1y8fkhh{color:#787c82}.scale-gen__footer.svelte-1y8fkhh{display:flex;justify-content:flex-end}.scale-gen__apply.svelte-1y8fkhh{background:#2271b1;color:#fff;border:none;border-radius:3px;padding:6px 14px;font-size:13px;cursor:pointer}.scale-gen__apply.svelte-1y8fkhh:hover{background:#135e96}h2.svelte-743nsg{margin-top:0}.group-heading.svelte-743nsg{margin-top:24px}.hint.svelte-743nsg{color:#50575e;margin-bottom:16px;max-width:720px}.hint.svelte-743nsg code:where(.svelte-743nsg){background:#f0f0f1;padding:1px 5px;border-radius:3px;font-size:90%}.rows.svelte-743nsg{border:1px solid #f0f0f1;border-radius:4px;padding:0 12px;background:#fcfcfd}.size-row.svelte-743nsg{display:grid;grid-template-columns:220px 1fr;align-items:center;gap:12px;padding:10px 0;border-bottom:1px solid #f0f0f1}.size-row.svelte-743nsg:last-child{border-bottom:none}.size-row__name.svelte-743nsg{font-weight:500;color:#1d2327;display:block}.size-row__var.svelte-743nsg{display:inline-block;margin-top:4px;background:#f6f7f7;padding:1px 6px;border-radius:3px;font-size:11px;color:#50575e}.size-row__inputs.svelte-743nsg{display:flex;align-items:center;gap:16px;flex-wrap:wrap}.size-row__inputs.svelte-743nsg .row{display:flex!important;grid-template-columns:none;gap:6px;padding:0;border:none;align-items:center}.size-row__inputs.svelte-743nsg .row__label-text,.size-row__inputs.svelte-743nsg .row__label label{font-weight:400;color:#50575e;font-size:12px}.spacing-preview.svelte-11lwg9t{background:#fff;border:1px solid #c3c4c7;border-radius:4px;padding:16px 20px;margin-top:16px}.spacing-preview__header.svelte-11lwg9t{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px;margin-bottom:14px}.spacing-preview__title.svelte-11lwg9t{font-size:13px;font-weight:600;color:#1d2327;margin:0}.spacing-preview__slider-wrap.svelte-11lwg9t{display:flex;align-items:center;gap:8px;font-size:12px;color:#50575e}.spacing-preview__slider.svelte-11lwg9t{width:180px;cursor:pointer;accent-color:#2271b1}.spacing-preview__vw-label.svelte-11lwg9t{min-width:58px;text-align:right;font-variant-numeric:tabular-nums;color:#1d2327;font-weight:500}.spacing-preview__rows.svelte-11lwg9t{display:flex;flex-direction:column;gap:6px}.spacing-preview__row.svelte-11lwg9t{display:grid;grid-template-columns:160px 1fr 70px;align-items:center;gap:12px}.spacing-preview__token.svelte-11lwg9t{font-family:monospace;font-size:11px;color:#50575e;white-space:nowrap}.spacing-preview__bar-wrap.svelte-11lwg9t{background:#f0f0f1;border-radius:2px;height:16px;overflow:hidden}.spacing-preview__bar.svelte-11lwg9t{height:100%;background:#2271b1;border-radius:2px;transition:width 80ms ease;min-width:2px}.spacing-preview__value.svelte-11lwg9t{font-size:11px;color:#787c82;text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}h2.svelte-1sn1epc{margin-top:0}.group-heading.svelte-1sn1epc{margin-top:24px}.hint.svelte-1sn1epc{color:#50575e;margin-bottom:16px;max-width:720px}.hint.svelte-1sn1epc code:where(.svelte-1sn1epc){background:#f0f0f1;padding:1px 5px;border-radius:3px;font-size:90%}.rows.svelte-1sn1epc{border:1px solid #f0f0f1;border-radius:4px;padding:0 12px;background:#fcfcfd}.size-row.svelte-1sn1epc{display:grid;grid-template-columns:220px 1fr;align-items:center;gap:12px;padding:10px 0;border-bottom:1px solid #f0f0f1}.size-row.svelte-1sn1epc:last-child{border-bottom:none}.size-row__name.svelte-1sn1epc{font-weight:500;color:#1d2327;display:block}.size-row__var.svelte-1sn1epc{display:inline-block;margin-top:4px;background:#f6f7f7;padding:1px 6px;border-radius:3px;font-size:11px;color:#50575e}.size-row__inputs.svelte-1sn1epc{display:flex;align-items:center;gap:16px;flex-wrap:wrap}.size-row__inputs.svelte-1sn1epc .row{display:flex!important;grid-template-columns:none;gap:6px;padding:0;border:none;align-items:center}.size-row__inputs.svelte-1sn1epc .row__label-text,.size-row__inputs.svelte-1sn1epc .row__label label{font-weight:400;color:#50575e;font-size:12px}.range.svelte-cifrt1{flex:1;min-width:160px;max-width:320px;accent-color:#2271b1}.number.svelte-cifrt1{width:90px}.unit.svelte-cifrt1{color:#50575e;font-size:12px}.select.svelte-r7dp44{min-width:160px}h2.svelte-ieamrv{margin-top:0}.group-heading.svelte-ieamrv{margin-top:24px}.hint.svelte-ieamrv{color:#50575e;margin-bottom:16px;max-width:720px;font-size:13px}.rows.svelte-ieamrv{border:1px solid #f0f0f1;border-radius:4px;padding:0 12px;background:#fcfcfd}.radius-preview.svelte-ieamrv{display:flex;flex-wrap:wrap;gap:16px;margin-top:12px;padding:16px;background:#fff;border:1px solid #c3c4c7;border-radius:4px}.radius-preview__item.svelte-ieamrv{display:flex;flex-direction:column;align-items:center;gap:6px}.radius-preview__swatch.svelte-ieamrv{width:40px;height:40px;background:#2271b1}.radius-preview__label.svelte-ieamrv{font-size:10px;color:#50575e;text-align:center}.shadow-preview.svelte-ieamrv{display:flex;flex-wrap:wrap;gap:24px;margin-top:12px;padding:20px 16px;background:#fff;border:1px solid #c3c4c7;border-radius:4px}.shadow-preview__item.svelte-ieamrv{display:flex;flex-direction:column;align-items:center;gap:10px}.shadow-preview__card.svelte-ieamrv{width:60px;height:60px;background:#fff;border:1px solid #f0f0f1;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:600;color:#50575e;border-radius:4px}h2.svelte-1nfz83c{margin-top:0}.hint.svelte-1nfz83c{color:#50575e;margin-bottom:16px;max-width:720px}.hint.svelte-1nfz83c code:where(.svelte-1nfz83c){background:#f0f0f1;padding:1px 6px;border-radius:3px;font-size:90%}.category.svelte-1nfz83c{border:1px solid #f0f0f1;border-radius:4px;margin-bottom:4px;background:#fcfcfd}.category__toggle.svelte-1nfz83c{all:unset;display:flex;align-items:center;gap:8px;width:100%;padding:10px 12px;cursor:pointer;font-size:14px;font-weight:500}.category__toggle.svelte-1nfz83c:hover{background:#f6f7f7}.category__toggle.svelte-1nfz83c:focus-visible{outline:2px solid #2271b1;outline-offset:2px;border-radius:4px}.category__arrow.svelte-1nfz83c{font-size:10px;width:14px;text-align:center}.category__count.svelte-1nfz83c{color:#787c82;font-weight:400;font-size:13px}.category__list.svelte-1nfz83c{list-style:none;margin:0;padding:0 12px 12px 34px;display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:4px}.category__list.svelte-1nfz83c li:where(.svelte-1nfz83c) code:where(.svelte-1nfz83c){font-size:12px;background:#f0f0f1;padding:2px 6px;border-radius:3px;word-break:break-all}h2.svelte-1yljizh{margin-top:0}.hint.svelte-1yljizh{color:#50575e;margin-bottom:16px;max-width:720px}.category.svelte-1yljizh{border:1px solid #f0f0f1;border-radius:4px;margin-bottom:4px;background:#fcfcfd}.category__toggle.svelte-1yljizh{all:unset;display:flex;align-items:center;gap:8px;width:100%;padding:10px 12px;cursor:pointer;font-size:14px;font-weight:500}.category__toggle.svelte-1yljizh:hover{background:#f6f7f7}.category__toggle.svelte-1yljizh:focus-visible{outline:2px solid #2271b1;outline-offset:2px;border-radius:4px}.category__arrow.svelte-1yljizh{font-size:10px;width:14px;text-align:center}.category__count.svelte-1yljizh{color:#787c82;font-weight:400;font-size:13px}.category__list.svelte-1yljizh{list-style:none;margin:0;padding:0 12px 12px 34px;display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:4px}.category__list.svelte-1yljizh li:where(.svelte-1yljizh) code:where(.svelte-1yljizh){font-size:12px;background:#f0f0f1;padding:2px 6px;border-radius:3px}h2.svelte-13231hj{margin-top:0}.settings-heading.svelte-13231hj{margin-top:24px}.hint.svelte-13231hj{color:#50575e;margin-bottom:16px;max-width:720px}.info.svelte-13231hj{display:grid;grid-template-columns:max-content 1fr;gap:4px 16px;margin-bottom:24px;font-size:14px}.info.svelte-13231hj dt:where(.svelte-13231hj){font-weight:500}.info.svelte-13231hj dd:where(.svelte-13231hj){margin:0;color:#50575e}.setting-row.svelte-13231hj{margin-bottom:20px}.setting-row.svelte-13231hj label:where(.svelte-13231hj){display:block;font-weight:500;margin-bottom:6px}.setting-row.svelte-13231hj select:where(.svelte-13231hj){padding:6px 10px;border:1px solid #8c8f94;border-radius:4px;font-size:14px}.description.svelte-13231hj{color:#50575e;font-size:13px;margin-top:6px}.save-row.svelte-13231hj{display:flex;align-items:center;gap:12px;margin-top:16px}.save-btn.svelte-13231hj{background:#2271b1;color:#fff;border:none;padding:8px 16px;border-radius:4px;cursor:pointer;font-size:13px;font-weight:500}.save-btn.svelte-13231hj:hover{background:#135e96}.save-btn.svelte-13231hj:disabled{opacity:.6;cursor:not-allowed}.status.svelte-13231hj{font-size:13px;font-weight:500}.status--ok.svelte-13231hj{color:#00a32a}.status--err.svelte-13231hj{color:#d63638}h2.svelte-19399h6{margin-top:0}.hint.svelte-19399h6{color:#50575e;max-width:720px;margin-bottom:20px}.card.svelte-19399h6{border:1px solid #c3c4c7;border-radius:4px;padding:16px 20px;margin-bottom:16px}.card--info.svelte-19399h6{background:#f6f7f7}.card.svelte-19399h6 h3:where(.svelte-19399h6){margin:0 0 6px;font-size:14px}.card-desc.svelte-19399h6{color:#50575e;font-size:13px;margin:0 0 12px;max-width:640px}.action-row.svelte-19399h6{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.btn.svelte-19399h6{padding:8px 16px;border:none;border-radius:4px;cursor:pointer;font-size:13px;font-weight:500}.btn.svelte-19399h6:disabled{opacity:.6;cursor:not-allowed}.btn--primary.svelte-19399h6{background:#2271b1;color:#fff}.btn--primary.svelte-19399h6:hover:not(:disabled){background:#135e96}.btn--secondary.svelte-19399h6{background:#f0f0f1;color:#2c3338;border:1px solid #8c8f94}.btn--secondary.svelte-19399h6:hover:not(:disabled){background:#e0e0e0}.file-input.svelte-19399h6{font-size:13px}.status.svelte-19399h6{font-size:13px;font-weight:500}.status--ok.svelte-19399h6{color:#00a32a}.status--err.svelte-19399h6{color:#d63638}.steps.svelte-19399h6{margin:8px 0 0;padding-left:20px;font-size:13px;line-height:1.6;color:#2c3338}.steps.svelte-19399h6 li:where(.svelte-19399h6){margin-bottom:8px}.steps.svelte-19399h6 li:where(.svelte-19399h6):last-child{margin-bottom:0}code.svelte-19399h6{background:#f0f0f1;padding:1px 4px;border-radius:3px;font-size:12px}h2.svelte-a36hjt{margin-top:0}.hint.svelte-a36hjt{color:#50575e;margin-bottom:20px;max-width:720px}.hook.svelte-a36hjt{border:1px solid #f0f0f1;border-radius:4px;padding:16px;margin-bottom:12px;background:#fcfcfd}.hook__name.svelte-a36hjt{margin:0 0 8px;font-size:14px}.hook__name.svelte-a36hjt code:where(.svelte-a36hjt){background:#e7e8ea;padding:3px 8px;border-radius:3px;font-size:13px}.hook__desc.svelte-a36hjt{margin:0 0 8px;color:#1d2327;font-size:14px}.hook__params.svelte-a36hjt{margin:0 0 12px;font-size:13px;color:#50575e}.hook__params.svelte-a36hjt code:where(.svelte-a36hjt){background:#f0f0f1;padding:1px 4px;border-radius:2px;font-size:12px}.hook__example.svelte-a36hjt{margin:0;padding:12px;background:#1d2327;color:#e4e6e8;border-radius:4px;overflow-x:auto;font-size:12px;line-height:1.5}.hook__example.svelte-a36hjt code:where(.svelte-a36hjt){background:none;padding:0;color:inherit}.cheatsheet.svelte-osej3t{display:flex;flex-direction:column;gap:16px}.cheatsheet__header.svelte-osej3t h2:where(.svelte-osej3t){margin:0 0 4px;font-size:18px}.cheatsheet__counts.svelte-osej3t{margin:0;font-size:13px;color:#50575e}.cheatsheet__controls.svelte-osej3t{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.cheatsheet__search.svelte-osej3t{flex:1;min-width:200px;padding:6px 10px;border:1px solid #c3c4c7;border-radius:4px;font-size:13px}.cheatsheet__search.svelte-osej3t:focus{border-color:#2271b1;outline:none;box-shadow:0 0 0 1px #2271b1}.cheatsheet__view-toggle.svelte-osej3t{display:flex;gap:0}.cheatsheet__view-toggle.svelte-osej3t button:where(.svelte-osej3t){padding:5px 12px;border:1px solid #c3c4c7;background:#fff;font-size:12px;cursor:pointer;color:#50575e}.cheatsheet__view-toggle.svelte-osej3t button:where(.svelte-osej3t):first-child{border-radius:3px 0 0 3px}.cheatsheet__view-toggle.svelte-osej3t button:where(.svelte-osej3t):last-child{border-radius:0 3px 3px 0}.cheatsheet__view-toggle.svelte-osej3t button:where(.svelte-osej3t):not(:first-child){border-left:none}.cheatsheet__view-toggle.svelte-osej3t button.active:where(.svelte-osej3t){background:#2271b1;border-color:#2271b1;color:#fff}.cheatsheet__section.svelte-osej3t{display:flex;flex-direction:column;gap:8px}.cheatsheet__section-title.svelte-osej3t{font-size:15px;margin:8px 0 0;padding-bottom:6px;border-bottom:1px solid #e2e4e7}.cheatsheet__group.svelte-osej3t{border:1px solid #e2e4e7;border-radius:4px;overflow:hidden}.cheatsheet__group-header.svelte-osej3t{padding:8px 12px;background:#f6f7f7;cursor:pointer;font-size:13px;display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}.cheatsheet__group-header.svelte-osej3t::-webkit-details-marker{margin-right:4px}.cheatsheet__group-desc.svelte-osej3t{font-size:12px;color:#646970;font-weight:400}.cheatsheet__list.svelte-osej3t{list-style:none;margin:0;padding:0}.cheatsheet__item.svelte-osej3t{display:flex;align-items:baseline;gap:12px;padding:5px 12px;border-top:1px solid #f0f0f1;font-size:12px;line-height:1.5}.cheatsheet__item.svelte-osej3t:first-child{border-top:1px solid #e2e4e7}.cheatsheet__name.svelte-osej3t{flex-shrink:0;font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,monospace;font-size:11.5px;background:#f0f0f1;padding:1px 5px;border-radius:3px;color:#1e1e1e;white-space:nowrap}.cheatsheet__desc.svelte-osej3t{color:#50575e;font-size:12px}.cheatsheet__empty.svelte-osej3t{text-align:center;color:#646970;padding:32px 16px;font-style:italic}.slashed-preview.svelte-g79qke{background:#fff;border:1px solid #c3c4c7;border-radius:4px;padding:20px;margin-top:8px}.slashed-preview.svelte-g79qke h3:where(.svelte-g79qke){margin-top:0}.slashed-preview__type-heading.svelte-g79qke{font-family:var(--sf-font-heading, system-ui, sans-serif);margin:8px 0 6px;font-size:22px;color:#1d2327}.slashed-preview__type-body.svelte-g79qke{font-family:var(--sf-font-body, system-ui, sans-serif);color:#2c3338;margin:0 0 16px;max-width:640px}.slashed-preview__swatches.svelte-g79qke{display:flex;gap:10px;margin-top:10px;flex-wrap:wrap}.slashed-preview__swatch.svelte-g79qke{width:56px;height:56px;border-radius:6px;border:1px solid #c3c4c7;display:flex;align-items:flex-end;justify-content:center;font-size:10px;color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.5);padding:4px}.slashed-preview__buttons.svelte-g79qke{display:flex;gap:8px;margin-top:14px}.slashed-preview__btn.svelte-g79qke{color:#fff;padding:8px 16px;border-radius:4px;font-weight:500;border:none;cursor:default}.slashed-preview__dark-section.svelte-g79qke{margin-top:14px;padding-top:12px;border-top:1px solid #e9eaeb}.slashed-preview__dark-heading.svelte-g79qke{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:#50575e;margin:0 0 8px}.slashed-preview__dark-bg.svelte-g79qke{background:#1d2327;border-radius:6px;padding:10px 12px}.slashed-preview__caption.svelte-g79qke{margin-top:16px;color:#50575e;font-size:12px}.slashed-preview__caption.svelte-g79qke code:where(.svelte-g79qke){display:block;background:#f6f7f7;padding:8px;border-radius:3px;margin-top:4px;white-space:pre-wrap;font-size:11px;max-height:120px;overflow:auto}.bar.svelte-1oj49qa{position:fixed;bottom:0;left:160px;right:0;background:#fff;border-top:2px solid #c3c4c7;padding:10px 24px;display:flex;align-items:center;justify-content:space-between;gap:16px;z-index:100;transition:border-color .15s}.bar.dirty.svelte-1oj49qa{border-top-color:#2271b1}.bar__status.svelte-1oj49qa{font-size:13px}.bar__dirty.svelte-1oj49qa{color:#2271b1;font-weight:500}.bar__pending.svelte-1oj49qa{color:#50575e}.bar__saved.svelte-1oj49qa{color:#00a32a;font-weight:500}.bar__clean.svelte-1oj49qa{color:#50575e}.bar__error.svelte-1oj49qa{color:#d63638;font-weight:500}.bar__actions.svelte-1oj49qa{display:flex;gap:8px}.bar__save.svelte-1oj49qa,.bar__reset.svelte-1oj49qa{padding:6px 14px;border-radius:3px;border:1px solid #2271b1;background:#fff;color:#2271b1;cursor:pointer;font-size:13px}.bar__save.svelte-1oj49qa{background:#2271b1;color:#fff}.bar__save.svelte-1oj49qa:disabled,.bar__reset.svelte-1oj49qa:disabled{opacity:.5;cursor:not-allowed}.bar__reset.svelte-1oj49qa{border-color:#d63638;color:#d63638}.bar__export.svelte-1oj49qa{padding:6px 14px;border-radius:3px;border:1px solid #2271b1;background:#fff;color:#2271b1;cursor:pointer;font-size:13px}.bar__export.svelte-1oj49qa:disabled{opacity:.5;cursor:not-allowed}@media(max-width:782px){.bar.svelte-1oj49qa{left:0}}.slashed-svelte-admin.svelte-1n46o8q{--gap: 16px;display:flex;flex-direction:column;gap:var(--gap);max-width:1100px;padding-bottom:80px}.slashed-svelte-admin__header-top.svelte-1n46o8q{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.slashed-svelte-admin__header.svelte-1n46o8q h1:where(.svelte-1n46o8q){margin:0}.slashed-svelte-admin__versions.svelte-1n46o8q{display:flex;gap:6px;flex-wrap:wrap}.version-pill.svelte-1n46o8q{background:#f0f0f1;border:1px solid #c3c4c7;border-radius:3px;padding:2px 8px;font-size:11px;color:#50575e;font-family:ui-monospace,monospace;white-space:nowrap}.muted.svelte-1n46o8q{color:#50575e;margin:4px 0 0}.slashed-svelte-admin__body.svelte-1n46o8q{background:#fff;border:1px solid #c3c4c7;border-radius:4px;padding:20px} +.tab-nav.svelte-yyiz68{display:flex;gap:2px;border-bottom:1px solid #c3c4c7;flex-wrap:wrap}.tab-nav__btn.svelte-yyiz68{background:transparent;border:1px solid transparent;border-bottom:none;padding:8px 14px;cursor:pointer;font-size:14px;color:#2c3338;border-radius:4px 4px 0 0}.tab-nav__btn.svelte-yyiz68:hover{background:#f0f0f1}.tab-nav__btn.active.svelte-yyiz68{background:#fff;border-color:#c3c4c7;margin-bottom:-1px;color:#1d2327;font-weight:500}.row.svelte-1es83p3{display:grid;grid-template-columns:220px 1fr;align-items:center;gap:12px;padding:10px 0;border-bottom:1px solid #f0f0f1}.row.svelte-1es83p3:last-child{border-bottom:none}.row__label.svelte-1es83p3 label:where(.svelte-1es83p3){font-weight:500;display:block;color:#1d2327}.row__var.svelte-1es83p3{display:inline-block;margin-top:4px;background:#f6f7f7;padding:1px 6px;border-radius:3px;font-size:11px;color:#50575e}.row__inputs.svelte-1es83p3{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.row__swatch.svelte-1es83p3{width:28px;height:28px;border-radius:4px;border:1px solid #c3c4c7;flex-shrink:0}.row__hex.svelte-1es83p3{width:44px;height:28px;padding:0;border:1px solid #8c8f94;border-radius:3px;cursor:pointer;background:#fff}.row__hex-text.svelte-1es83p3{width:110px}.row__raw.svelte-1es83p3{flex:1;min-width:240px;font-family:ui-monospace,monospace}.row__toggle.svelte-1es83p3{background:transparent;border:none;color:#2271b1;cursor:pointer;padding:4px 8px;font-size:12px;text-decoration:underline}.row__toggle.svelte-1es83p3:hover{color:#135e96}.advanced-section.svelte-imklo1{margin-top:24px}.advanced-section__toggle.svelte-imklo1{background:none;border:none;color:#2271b1;font-size:13px;cursor:pointer;padding:6px 0;display:flex;align-items:center;gap:6px;font-weight:500}.advanced-section__toggle.svelte-imklo1:hover{text-decoration:underline}.advanced-section__body.svelte-imklo1{margin-top:12px}h2.svelte-1vle0rm{margin-top:0}.status-heading.svelte-1vle0rm,.dark-heading.svelte-1vle0rm{margin-top:24px}.hint.svelte-1vle0rm{color:#50575e;margin-bottom:16px;max-width:720px}.rows.svelte-1vle0rm{border:1px solid #f0f0f1;border-radius:4px;padding:0 12px;background:#fcfcfd}.rows--dark.svelte-1vle0rm{background:#f8f8fc;border-color:#e2e4e9}.row.svelte-miyob8{display:grid;grid-template-columns:220px 1fr;align-items:center;gap:12px;padding:10px 0;border-bottom:1px solid #f0f0f1}.row.svelte-miyob8:last-child{border-bottom:none}.row__label.svelte-miyob8 label:where(.svelte-miyob8),.row__label-text.svelte-miyob8{font-weight:500;display:block;color:#1d2327}.row__var.svelte-miyob8{display:inline-block;margin-top:4px;background:#f6f7f7;padding:1px 6px;border-radius:3px;font-size:11px;color:#50575e}.row__inputs.svelte-miyob8{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.row__desc.svelte-miyob8{flex-basis:100%;margin:4px 0 0;color:#50575e;font-size:12px}.text.mono.svelte-j8yw6l{font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.unit.svelte-1pjh3bn{color:#50575e;font-size:12px}.typo-preview.svelte-10qc8pz{background:#fff;border:1px solid #c3c4c7;border-radius:4px;padding:16px 20px;margin-top:8px}.typo-preview__header.svelte-10qc8pz{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px;margin-bottom:14px}.typo-preview__title.svelte-10qc8pz{font-size:13px;font-weight:600;color:#1d2327;margin:0}.typo-preview__slider-wrap.svelte-10qc8pz{display:flex;align-items:center;gap:8px;font-size:12px;color:#50575e}.typo-preview__slider.svelte-10qc8pz{width:180px;cursor:pointer;accent-color:#2271b1}.typo-preview__vw-label.svelte-10qc8pz{min-width:58px;text-align:right;font-variant-numeric:tabular-nums;color:#1d2327;font-weight:500}.typo-preview__rows.svelte-10qc8pz{display:flex;flex-direction:column;gap:0}.typo-preview__row.svelte-10qc8pz{display:grid;grid-template-columns:52px 1fr 120px;align-items:baseline;gap:12px;padding:6px 0;border-bottom:1px solid #f0f0f1;overflow:hidden}.typo-preview__row.svelte-10qc8pz:last-child{border-bottom:none}.typo-preview__step-name.svelte-10qc8pz{font-size:11px;font-weight:600;color:#50575e;text-transform:uppercase;letter-spacing:.05em;flex-shrink:0}.typo-preview__sample.svelte-10qc8pz{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#1d2327;line-height:1.2}.typo-preview__meta.svelte-10qc8pz{font-size:10px;color:#787c82;text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}.typo-preview__group-heading.svelte-10qc8pz{font-size:11px;font-weight:600;color:#50575e;text-transform:uppercase;letter-spacing:.07em;margin:0 0 6px;padding:6px 0 4px;border-bottom:1px solid #f0f0f1}.typo-preview__rows--display.svelte-10qc8pz{margin-top:16px;padding-top:4px;border-top:2px solid #f0f0f1}.scale-gen.svelte-1y8fkhh{background:#f6f7f7;border:1px solid #c3c4c7;border-radius:4px;padding:14px 16px;margin-bottom:16px}.scale-gen__header.svelte-1y8fkhh{display:flex;align-items:baseline;gap:10px;margin-bottom:12px;flex-wrap:wrap}.scale-gen__title.svelte-1y8fkhh{font-size:12px;font-weight:600;color:#1d2327;text-transform:uppercase;letter-spacing:.06em}.scale-gen__hint.svelte-1y8fkhh{font-size:12px;color:#787c82}.scale-gen__controls.svelte-1y8fkhh{display:flex;gap:12px;flex-wrap:wrap;align-items:flex-end;margin-bottom:12px}.scale-gen__field.svelte-1y8fkhh{display:flex;flex-direction:column;gap:4px}.scale-gen__label.svelte-1y8fkhh{font-size:11px;color:#50575e;font-weight:500}.scale-gen__field.svelte-1y8fkhh input[type=number]:where(.svelte-1y8fkhh){width:68px;height:28px;border:1px solid #8c8f94;border-radius:3px;padding:0 6px;font-size:13px;background:#fff;color:#1d2327}.scale-gen__field.svelte-1y8fkhh select:where(.svelte-1y8fkhh){height:28px;border:1px solid #8c8f94;border-radius:3px;padding:0 4px;font-size:12px;background:#fff;color:#1d2327;cursor:pointer}.scale-gen__input-wrap.svelte-1y8fkhh{display:flex;align-items:center;gap:4px}.scale-gen__unit.svelte-1y8fkhh{font-size:11px;color:#787c82}.scale-gen__preview.svelte-1y8fkhh{display:flex;flex-wrap:wrap;gap:4px 12px;margin-bottom:12px}.scale-gen__step.svelte-1y8fkhh{display:flex;gap:4px;font-size:11px;color:#50575e;font-family:ui-monospace,monospace}.scale-gen__step.display.svelte-1y8fkhh{color:#2271b1}.scale-gen__step-name.svelte-1y8fkhh{font-weight:600;min-width:52px}.scale-gen__step-val.svelte-1y8fkhh{color:#787c82}.scale-gen__footer.svelte-1y8fkhh{display:flex;justify-content:flex-end}.scale-gen__apply.svelte-1y8fkhh{background:#2271b1;color:#fff;border:none;border-radius:3px;padding:6px 14px;font-size:13px;cursor:pointer}.scale-gen__apply.svelte-1y8fkhh:hover{background:#135e96}h2.svelte-743nsg{margin-top:0}.group-heading.svelte-743nsg{margin-top:24px}.hint.svelte-743nsg{color:#50575e;margin-bottom:16px;max-width:720px}.hint.svelte-743nsg code:where(.svelte-743nsg){background:#f0f0f1;padding:1px 5px;border-radius:3px;font-size:90%}.rows.svelte-743nsg{border:1px solid #f0f0f1;border-radius:4px;padding:0 12px;background:#fcfcfd}.size-row.svelte-743nsg{display:grid;grid-template-columns:220px 1fr;align-items:center;gap:12px;padding:10px 0;border-bottom:1px solid #f0f0f1}.size-row.svelte-743nsg:last-child{border-bottom:none}.size-row__name.svelte-743nsg{font-weight:500;color:#1d2327;display:block}.size-row__var.svelte-743nsg{display:inline-block;margin-top:4px;background:#f6f7f7;padding:1px 6px;border-radius:3px;font-size:11px;color:#50575e}.size-row__inputs.svelte-743nsg{display:flex;align-items:center;gap:16px;flex-wrap:wrap}.size-row__inputs.svelte-743nsg .row{display:flex!important;grid-template-columns:none;gap:6px;padding:0;border:none;align-items:center}.size-row__inputs.svelte-743nsg .row__label-text,.size-row__inputs.svelte-743nsg .row__label label{font-weight:400;color:#50575e;font-size:12px}.spacing-preview.svelte-11lwg9t{background:#fff;border:1px solid #c3c4c7;border-radius:4px;padding:16px 20px;margin-top:16px}.spacing-preview__header.svelte-11lwg9t{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px;margin-bottom:14px}.spacing-preview__title.svelte-11lwg9t{font-size:13px;font-weight:600;color:#1d2327;margin:0}.spacing-preview__slider-wrap.svelte-11lwg9t{display:flex;align-items:center;gap:8px;font-size:12px;color:#50575e}.spacing-preview__slider.svelte-11lwg9t{width:180px;cursor:pointer;accent-color:#2271b1}.spacing-preview__vw-label.svelte-11lwg9t{min-width:58px;text-align:right;font-variant-numeric:tabular-nums;color:#1d2327;font-weight:500}.spacing-preview__rows.svelte-11lwg9t{display:flex;flex-direction:column;gap:6px}.spacing-preview__row.svelte-11lwg9t{display:grid;grid-template-columns:160px 1fr 70px;align-items:center;gap:12px}.spacing-preview__token.svelte-11lwg9t{font-family:monospace;font-size:11px;color:#50575e;white-space:nowrap}.spacing-preview__bar-wrap.svelte-11lwg9t{background:#f0f0f1;border-radius:2px;height:16px;overflow:hidden}.spacing-preview__bar.svelte-11lwg9t{height:100%;background:#2271b1;border-radius:2px;transition:width 80ms ease;min-width:2px}.spacing-preview__value.svelte-11lwg9t{font-size:11px;color:#787c82;text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.spacing-preview__card-section.svelte-11lwg9t{margin-top:20px;padding-top:16px;border-top:1px solid #e9eaeb}.spacing-preview__card-label.svelte-11lwg9t{font-size:12px;font-weight:600;color:#50575e;margin:0 0 10px}.spacing-preview__card.svelte-11lwg9t{display:flex;flex-direction:column;background:#fff;border:1px solid #c3c4c7;border-radius:6px;max-width:320px;box-shadow:0 1px 4px #00000012}.spacing-preview__card-row.svelte-11lwg9t{display:flex;align-items:center}.spacing-preview__card-avatar.svelte-11lwg9t{width:32px;height:32px;border-radius:50%;background:#2271b1;flex-shrink:0}.spacing-preview__card-meta.svelte-11lwg9t{display:flex;flex-direction:column;gap:2px}.spacing-preview__card-title.svelte-11lwg9t{font-size:13px;font-weight:600;color:#1d2327;line-height:1.2}.spacing-preview__card-sub.svelte-11lwg9t{font-size:11px;color:#787c82;font-variant-numeric:tabular-nums}.spacing-preview__card-body.svelte-11lwg9t{font-size:12px;color:#50575e;line-height:1.5;padding:8px 0;border-top:1px dashed #e9eaeb;border-bottom:1px dashed #e9eaeb;font-variant-numeric:tabular-nums}.spacing-preview__card-footer.svelte-11lwg9t{display:flex;align-items:center;flex-wrap:wrap}.spacing-preview__card-tag.svelte-11lwg9t{background:#f0f0f1;color:#50575e;font-size:10px;font-weight:600;padding:2px 8px;border-radius:3px;white-space:nowrap}.spacing-preview__card-cta.svelte-11lwg9t{margin-left:auto;background:#2271b1;color:#fff;font-size:11px;font-weight:500;padding:4px 10px;border-radius:3px}h2.svelte-1sn1epc{margin-top:0}.group-heading.svelte-1sn1epc{margin-top:24px}.hint.svelte-1sn1epc{color:#50575e;margin-bottom:16px;max-width:720px}.hint.svelte-1sn1epc code:where(.svelte-1sn1epc){background:#f0f0f1;padding:1px 5px;border-radius:3px;font-size:90%}.rows.svelte-1sn1epc{border:1px solid #f0f0f1;border-radius:4px;padding:0 12px;background:#fcfcfd}.size-row.svelte-1sn1epc{display:grid;grid-template-columns:220px 1fr;align-items:center;gap:12px;padding:10px 0;border-bottom:1px solid #f0f0f1}.size-row.svelte-1sn1epc:last-child{border-bottom:none}.size-row__name.svelte-1sn1epc{font-weight:500;color:#1d2327;display:block}.size-row__var.svelte-1sn1epc{display:inline-block;margin-top:4px;background:#f6f7f7;padding:1px 6px;border-radius:3px;font-size:11px;color:#50575e}.size-row__inputs.svelte-1sn1epc{display:flex;align-items:center;gap:16px;flex-wrap:wrap}.size-row__inputs.svelte-1sn1epc .row{display:flex!important;grid-template-columns:none;gap:6px;padding:0;border:none;align-items:center}.size-row__inputs.svelte-1sn1epc .row__label-text,.size-row__inputs.svelte-1sn1epc .row__label label{font-weight:400;color:#50575e;font-size:12px}.range.svelte-cifrt1{flex:1;min-width:160px;max-width:320px;accent-color:#2271b1}.number.svelte-cifrt1{width:90px}.unit.svelte-cifrt1{color:#50575e;font-size:12px}.select.svelte-r7dp44{min-width:160px}h2.svelte-ieamrv{margin-top:0}.group-heading.svelte-ieamrv{margin-top:24px}.hint.svelte-ieamrv{color:#50575e;margin-bottom:16px;max-width:720px;font-size:13px}.rows.svelte-ieamrv{border:1px solid #f0f0f1;border-radius:4px;padding:0 12px;background:#fcfcfd}.radius-preview.svelte-ieamrv{display:flex;flex-wrap:wrap;gap:16px;margin-top:12px;padding:16px;background:#fff;border:1px solid #c3c4c7;border-radius:4px}.radius-preview__item.svelte-ieamrv{display:flex;flex-direction:column;align-items:center;gap:6px}.radius-preview__swatch.svelte-ieamrv{width:40px;height:40px;background:#2271b1}.radius-preview__label.svelte-ieamrv{font-size:10px;color:#50575e;text-align:center}@keyframes svelte-ieamrv-slashed-mp-fill{0%{width:0}50%{width:100%}to{width:0}}.motion-preview.svelte-ieamrv{display:flex;flex-direction:column;gap:8px;margin-top:12px;padding:16px;background:#fff;border:1px solid #c3c4c7;border-radius:4px}.motion-preview__item.svelte-ieamrv{display:grid;grid-template-columns:60px 1fr 56px;align-items:center;gap:10px}.motion-preview__label.svelte-ieamrv{font-size:11px;font-weight:600;color:#50575e;text-align:right}.motion-preview__track.svelte-ieamrv{height:6px;background:#f0f0f1;border-radius:3px;overflow:hidden}.motion-preview__fill.svelte-ieamrv{height:100%;background:#2271b1;border-radius:3px;animation:svelte-ieamrv-slashed-mp-fill ease-in-out infinite}.motion-preview__ms.svelte-ieamrv{font-size:11px;color:#8c8f94;text-align:right;font-variant-numeric:tabular-nums}.focus-ring-preview.svelte-ieamrv{display:flex;align-items:center;gap:12px;margin-top:12px;padding:16px;background:#fff;border:1px solid #c3c4c7;border-radius:4px}.focus-ring-preview__btn.svelte-ieamrv{padding:7px 16px;border:1px solid #c3c4c7;border-radius:4px;background:#f0f0f1;color:#1d2327;cursor:pointer;font-size:13px}.focus-ring-preview__btn.svelte-ieamrv:focus-visible{outline-width:var(--fp-width, 2px);outline-offset:var(--fp-offset, 2px);outline-style:var(--fp-style, solid);outline-color:#2271b1}.focus-ring-preview__desc.svelte-ieamrv{font-size:12px;color:#50575e;font-family:monospace}.shadow-preview.svelte-ieamrv{display:flex;flex-wrap:wrap;gap:24px;margin-top:12px;padding:20px 16px;background:#fff;border:1px solid #c3c4c7;border-radius:4px}.shadow-preview__item.svelte-ieamrv{display:flex;flex-direction:column;align-items:center;gap:10px}.shadow-preview__card.svelte-ieamrv{width:60px;height:60px;background:#fff;border:1px solid #f0f0f1;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:600;color:#50575e;border-radius:4px}h2.svelte-1nfz83c{margin-top:0}.hint.svelte-1nfz83c{color:#50575e;margin-bottom:16px;max-width:720px}.hint.svelte-1nfz83c code:where(.svelte-1nfz83c){background:#f0f0f1;padding:1px 6px;border-radius:3px;font-size:90%}.category.svelte-1nfz83c{border:1px solid #f0f0f1;border-radius:4px;margin-bottom:4px;background:#fcfcfd}.category__toggle.svelte-1nfz83c{all:unset;display:flex;align-items:center;gap:8px;width:100%;padding:10px 12px;cursor:pointer;font-size:14px;font-weight:500}.category__toggle.svelte-1nfz83c:hover{background:#f6f7f7}.category__toggle.svelte-1nfz83c:focus-visible{outline:2px solid #2271b1;outline-offset:2px;border-radius:4px}.category__arrow.svelte-1nfz83c{font-size:10px;width:14px;text-align:center}.category__count.svelte-1nfz83c{color:#787c82;font-weight:400;font-size:13px}.category__list.svelte-1nfz83c{list-style:none;margin:0;padding:0 12px 12px 34px;display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:4px}.category__list.svelte-1nfz83c li:where(.svelte-1nfz83c) code:where(.svelte-1nfz83c){font-size:12px;background:#f0f0f1;padding:2px 6px;border-radius:3px;word-break:break-all}h2.svelte-1yljizh{margin-top:0}.hint.svelte-1yljizh{color:#50575e;margin-bottom:16px;max-width:720px}.category.svelte-1yljizh{border:1px solid #f0f0f1;border-radius:4px;margin-bottom:4px;background:#fcfcfd}.category__toggle.svelte-1yljizh{all:unset;display:flex;align-items:center;gap:8px;width:100%;padding:10px 12px;cursor:pointer;font-size:14px;font-weight:500}.category__toggle.svelte-1yljizh:hover{background:#f6f7f7}.category__toggle.svelte-1yljizh:focus-visible{outline:2px solid #2271b1;outline-offset:2px;border-radius:4px}.category__arrow.svelte-1yljizh{font-size:10px;width:14px;text-align:center}.category__count.svelte-1yljizh{color:#787c82;font-weight:400;font-size:13px}.category__list.svelte-1yljizh{list-style:none;margin:0;padding:0 12px 12px 34px;display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:4px}.category__list.svelte-1yljizh li:where(.svelte-1yljizh) code:where(.svelte-1yljizh){font-size:12px;background:#f0f0f1;padding:2px 6px;border-radius:3px}h2.svelte-13231hj{margin-top:0}.settings-heading.svelte-13231hj{margin-top:24px}.hint.svelte-13231hj{color:#50575e;margin-bottom:16px;max-width:720px}.info.svelte-13231hj{display:grid;grid-template-columns:max-content 1fr;gap:4px 16px;margin-bottom:24px;font-size:14px}.info.svelte-13231hj dt:where(.svelte-13231hj){font-weight:500}.info.svelte-13231hj dd:where(.svelte-13231hj){margin:0;color:#50575e}.setting-row.svelte-13231hj{margin-bottom:20px}.setting-row.svelte-13231hj label:where(.svelte-13231hj){display:block;font-weight:500;margin-bottom:6px}.setting-row.svelte-13231hj select:where(.svelte-13231hj){padding:6px 10px;border:1px solid #8c8f94;border-radius:4px;font-size:14px}.description.svelte-13231hj{color:#50575e;font-size:13px;margin-top:6px}.save-row.svelte-13231hj{display:flex;align-items:center;gap:12px;margin-top:16px}.save-btn.svelte-13231hj{background:#2271b1;color:#fff;border:none;padding:8px 16px;border-radius:4px;cursor:pointer;font-size:13px;font-weight:500}.save-btn.svelte-13231hj:hover{background:#135e96}.save-btn.svelte-13231hj:disabled{opacity:.6;cursor:not-allowed}.status.svelte-13231hj{font-size:13px;font-weight:500}.status--ok.svelte-13231hj{color:#00a32a}.status--err.svelte-13231hj{color:#d63638}h2.svelte-19399h6{margin-top:0}.hint.svelte-19399h6{color:#50575e;max-width:720px;margin-bottom:20px}.card.svelte-19399h6{border:1px solid #c3c4c7;border-radius:4px;padding:16px 20px;margin-bottom:16px}.card--info.svelte-19399h6{background:#f6f7f7}.card.svelte-19399h6 h3:where(.svelte-19399h6){margin:0 0 6px;font-size:14px}.card-desc.svelte-19399h6{color:#50575e;font-size:13px;margin:0 0 12px;max-width:640px}.action-row.svelte-19399h6{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.btn.svelte-19399h6{padding:8px 16px;border:none;border-radius:4px;cursor:pointer;font-size:13px;font-weight:500}.btn.svelte-19399h6:disabled{opacity:.6;cursor:not-allowed}.btn--primary.svelte-19399h6{background:#2271b1;color:#fff}.btn--primary.svelte-19399h6:hover:not(:disabled){background:#135e96}.btn--secondary.svelte-19399h6{background:#f0f0f1;color:#2c3338;border:1px solid #8c8f94}.btn--secondary.svelte-19399h6:hover:not(:disabled){background:#e0e0e0}.file-input.svelte-19399h6{font-size:13px}.status.svelte-19399h6{font-size:13px;font-weight:500}.status--ok.svelte-19399h6{color:#00a32a}.status--err.svelte-19399h6{color:#d63638}.steps.svelte-19399h6{margin:8px 0 0;padding-left:20px;font-size:13px;line-height:1.6;color:#2c3338}.steps.svelte-19399h6 li:where(.svelte-19399h6){margin-bottom:8px}.steps.svelte-19399h6 li:where(.svelte-19399h6):last-child{margin-bottom:0}code.svelte-19399h6{background:#f0f0f1;padding:1px 4px;border-radius:3px;font-size:12px}h2.svelte-a36hjt{margin-top:0}.hint.svelte-a36hjt{color:#50575e;margin-bottom:20px;max-width:720px}.hook.svelte-a36hjt{border:1px solid #f0f0f1;border-radius:4px;padding:16px;margin-bottom:12px;background:#fcfcfd}.hook__name.svelte-a36hjt{margin:0 0 8px;font-size:14px}.hook__name.svelte-a36hjt code:where(.svelte-a36hjt){background:#e7e8ea;padding:3px 8px;border-radius:3px;font-size:13px}.hook__desc.svelte-a36hjt{margin:0 0 8px;color:#1d2327;font-size:14px}.hook__params.svelte-a36hjt{margin:0 0 12px;font-size:13px;color:#50575e}.hook__params.svelte-a36hjt code:where(.svelte-a36hjt){background:#f0f0f1;padding:1px 4px;border-radius:2px;font-size:12px}.hook__example.svelte-a36hjt{margin:0;padding:12px;background:#1d2327;color:#e4e6e8;border-radius:4px;overflow-x:auto;font-size:12px;line-height:1.5}.hook__example.svelte-a36hjt code:where(.svelte-a36hjt){background:none;padding:0;color:inherit}.cheatsheet.svelte-osej3t{display:flex;flex-direction:column;gap:16px}.cheatsheet__header.svelte-osej3t h2:where(.svelte-osej3t){margin:0 0 4px;font-size:18px}.cheatsheet__counts.svelte-osej3t{margin:0;font-size:13px;color:#50575e}.cheatsheet__controls.svelte-osej3t{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.cheatsheet__search.svelte-osej3t{flex:1;min-width:200px;padding:6px 10px;border:1px solid #c3c4c7;border-radius:4px;font-size:13px}.cheatsheet__search.svelte-osej3t:focus{border-color:#2271b1;outline:none;box-shadow:0 0 0 1px #2271b1}.cheatsheet__view-toggle.svelte-osej3t{display:flex;gap:0}.cheatsheet__view-toggle.svelte-osej3t button:where(.svelte-osej3t){padding:5px 12px;border:1px solid #c3c4c7;background:#fff;font-size:12px;cursor:pointer;color:#50575e}.cheatsheet__view-toggle.svelte-osej3t button:where(.svelte-osej3t):first-child{border-radius:3px 0 0 3px}.cheatsheet__view-toggle.svelte-osej3t button:where(.svelte-osej3t):last-child{border-radius:0 3px 3px 0}.cheatsheet__view-toggle.svelte-osej3t button:where(.svelte-osej3t):not(:first-child){border-left:none}.cheatsheet__view-toggle.svelte-osej3t button.active:where(.svelte-osej3t){background:#2271b1;border-color:#2271b1;color:#fff}.cheatsheet__section.svelte-osej3t{display:flex;flex-direction:column;gap:8px}.cheatsheet__section-title.svelte-osej3t{font-size:15px;margin:8px 0 0;padding-bottom:6px;border-bottom:1px solid #e2e4e7}.cheatsheet__group.svelte-osej3t{border:1px solid #e2e4e7;border-radius:4px;overflow:hidden}.cheatsheet__group-header.svelte-osej3t{padding:8px 12px;background:#f6f7f7;cursor:pointer;font-size:13px;display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}.cheatsheet__group-header.svelte-osej3t::-webkit-details-marker{margin-right:4px}.cheatsheet__group-desc.svelte-osej3t{font-size:12px;color:#646970;font-weight:400}.cheatsheet__list.svelte-osej3t{list-style:none;margin:0;padding:0}.cheatsheet__item.svelte-osej3t{display:flex;align-items:baseline;gap:12px;padding:5px 12px;border-top:1px solid #f0f0f1;font-size:12px;line-height:1.5}.cheatsheet__item.svelte-osej3t:first-child{border-top:1px solid #e2e4e7}.cheatsheet__name.svelte-osej3t{flex-shrink:0;font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,monospace;font-size:11.5px;background:#f0f0f1;padding:1px 5px;border-radius:3px;color:#1e1e1e;white-space:nowrap}.cheatsheet__desc.svelte-osej3t{color:#50575e;font-size:12px}.cheatsheet__empty.svelte-osej3t{text-align:center;color:#646970;padding:32px 16px;font-style:italic}.slashed-preview.svelte-g79qke{background:#fff;border:1px solid #c3c4c7;border-radius:4px;padding:20px;margin-top:8px;transition:background .2s,color .2s}.slashed-preview.is-dark.svelte-g79qke{background:#1d2327;border-color:#3c434a;color:#f0f0f1}.slashed-preview__header.svelte-g79qke{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.slashed-preview__header.svelte-g79qke h3:where(.svelte-g79qke){margin:0}.slashed-preview.is-dark.svelte-g79qke .slashed-preview__header:where(.svelte-g79qke) h3:where(.svelte-g79qke){color:#f0f0f1}.slashed-preview__mode-toggle.svelte-g79qke{display:flex;border:1px solid #c3c4c7;border-radius:4px;overflow:hidden}.slashed-preview.is-dark.svelte-g79qke .slashed-preview__mode-toggle:where(.svelte-g79qke){border-color:#3c434a}.slashed-preview__mode-btn.svelte-g79qke{padding:4px 10px;font-size:12px;background:transparent;border:none;cursor:pointer;color:#50575e;line-height:1.4}.slashed-preview.is-dark.svelte-g79qke .slashed-preview__mode-btn:where(.svelte-g79qke){color:#a7aaad}.slashed-preview__mode-btn.active.svelte-g79qke{background:#2271b1;color:#fff}.slashed-preview__mode-btn.svelte-g79qke+.slashed-preview__mode-btn:where(.svelte-g79qke){border-left:1px solid #c3c4c7}.slashed-preview.is-dark.svelte-g79qke .slashed-preview__mode-btn:where(.svelte-g79qke)+.slashed-preview__mode-btn:where(.svelte-g79qke){border-left-color:#3c434a}.slashed-preview__type-heading.svelte-g79qke{font-family:var(--sf-font-heading, system-ui, sans-serif);margin:0 0 6px;font-size:20px;color:#1d2327}.slashed-preview.is-dark.svelte-g79qke .slashed-preview__type-heading:where(.svelte-g79qke){color:#f0f0f1}.slashed-preview__type-body.svelte-g79qke{font-family:var(--sf-font-body, system-ui, sans-serif);color:#50575e;margin:0 0 14px;font-size:13px;line-height:1.5}.slashed-preview.is-dark.svelte-g79qke .slashed-preview__type-body:where(.svelte-g79qke){color:#a7aaad}.slashed-preview__swatches.svelte-g79qke{display:flex;gap:8px;flex-wrap:wrap}.slashed-preview__swatch.svelte-g79qke{width:50px;height:50px;border-radius:var(--preview-radius-s, 4px);border:1px solid rgba(0,0,0,.1);display:flex;align-items:flex-end;justify-content:center;font-size:9px;color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.6);padding:3px}.slashed-preview__buttons.svelte-g79qke{display:flex;gap:8px;margin-top:12px;flex-wrap:wrap}.slashed-preview__btn.svelte-g79qke{color:#fff;padding:7px 14px;border-radius:var(--preview-radius-s, 4px);font-size:13px;font-weight:500;border:none;cursor:default;display:inline-flex;align-items:center}.slashed-preview__btn--outline.svelte-g79qke{background:transparent!important;border:1.5px solid}.slashed-preview__btn--ghost.svelte-g79qke{background:transparent!important;border:none;color:#50575e}.slashed-preview.is-dark.svelte-g79qke .slashed-preview__btn--ghost:where(.svelte-g79qke){color:#a7aaad}.slashed-preview__btn--sm.svelte-g79qke{padding:4px 10px;font-size:12px}.slashed-preview__card.svelte-g79qke{margin-top:14px;border:1px solid #e9eaeb;border-radius:var(--preview-radius-m, 8px);overflow:hidden;background:#fff;box-shadow:var(--preview-shadow)}.slashed-preview.is-dark.svelte-g79qke .slashed-preview__card:where(.svelte-g79qke){background:#2c3338;border-color:#3c434a}.slashed-preview__card-accent.svelte-g79qke{height:4px}.slashed-preview__card-body.svelte-g79qke{padding:14px 16px;display:flex;flex-direction:column;gap:10px}.slashed-preview__card-top.svelte-g79qke{display:flex;align-items:center;gap:10px}.slashed-preview__card-avatar.svelte-g79qke{width:36px;height:36px;border-radius:50%;flex-shrink:0}.slashed-preview__card-title.svelte-g79qke{margin:0;font-size:14px;font-weight:600;color:#1d2327;line-height:1.3}.slashed-preview.is-dark.svelte-g79qke .slashed-preview__card-title:where(.svelte-g79qke){color:#f0f0f1}.slashed-preview__card-sub.svelte-g79qke{margin:0;font-size:11px;color:#787c82;line-height:1.3}.slashed-preview__card-top.svelte-g79qke .slashed-preview__badge:where(.svelte-g79qke){margin-left:auto}.slashed-preview__card-text.svelte-g79qke{margin:0;font-size:12px;line-height:1.5;color:#50575e}.slashed-preview.is-dark.svelte-g79qke .slashed-preview__card-text:where(.svelte-g79qke){color:#a7aaad}.slashed-preview__card-footer.svelte-g79qke{display:flex;align-items:center;gap:6px;flex-wrap:wrap;padding-top:6px;border-top:1px solid #f0f0f1}.slashed-preview.is-dark.svelte-g79qke .slashed-preview__card-footer:where(.svelte-g79qke){border-top-color:#3c434a}.slashed-preview__card-footer.svelte-g79qke .slashed-preview__btn--sm:where(.svelte-g79qke){margin-left:auto}.slashed-preview__badge.svelte-g79qke{display:inline-flex;align-items:center;padding:2px 8px;border-radius:var(--preview-radius-l, 16px);font-size:10px;font-weight:600;color:#fff;white-space:nowrap}.slashed-preview__caption.svelte-g79qke{margin-top:16px;color:#50575e;font-size:12px;padding-top:12px;border-top:1px solid #e9eaeb}.slashed-preview.is-dark.svelte-g79qke .slashed-preview__caption:where(.svelte-g79qke){color:#a7aaad;border-top-color:#3c434a}.slashed-preview__caption.svelte-g79qke code:where(.svelte-g79qke){display:block;background:#f6f7f7;padding:8px;border-radius:3px;margin-top:4px;white-space:pre-wrap;font-size:11px;max-height:120px;overflow:auto}.slashed-preview.is-dark.svelte-g79qke .slashed-preview__caption:where(.svelte-g79qke) code:where(.svelte-g79qke){background:#1d2327;color:#a7aaad}.bar.svelte-1oj49qa{position:fixed;bottom:0;left:160px;right:0;background:#fff;border-top:2px solid #c3c4c7;padding:10px 24px;display:flex;align-items:center;justify-content:space-between;gap:16px;z-index:100;transition:border-color .15s}.bar.dirty.svelte-1oj49qa{border-top-color:#2271b1}.bar__status.svelte-1oj49qa{font-size:13px}.bar__dirty.svelte-1oj49qa{color:#2271b1;font-weight:500}.bar__pending.svelte-1oj49qa{color:#50575e}.bar__saved.svelte-1oj49qa{color:#00a32a;font-weight:500}.bar__clean.svelte-1oj49qa{color:#50575e}.bar__error.svelte-1oj49qa{color:#d63638;font-weight:500}.bar__actions.svelte-1oj49qa{display:flex;gap:8px}.bar__save.svelte-1oj49qa,.bar__reset.svelte-1oj49qa{padding:6px 14px;border-radius:3px;border:1px solid #2271b1;background:#fff;color:#2271b1;cursor:pointer;font-size:13px}.bar__save.svelte-1oj49qa{background:#2271b1;color:#fff}.bar__save.svelte-1oj49qa:disabled,.bar__reset.svelte-1oj49qa:disabled{opacity:.5;cursor:not-allowed}.bar__reset.svelte-1oj49qa{border-color:#d63638;color:#d63638}.bar__export.svelte-1oj49qa{padding:6px 14px;border-radius:3px;border:1px solid #2271b1;background:#fff;color:#2271b1;cursor:pointer;font-size:13px}.bar__export.svelte-1oj49qa:disabled{opacity:.5;cursor:not-allowed}@media(max-width:782px){.bar.svelte-1oj49qa{left:0}}.slashed-svelte-admin.svelte-1n46o8q{--gap: 16px;display:flex;flex-direction:column;gap:var(--gap);max-width:1100px;padding-bottom:80px}.slashed-svelte-admin__header-top.svelte-1n46o8q{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.slashed-svelte-admin__header.svelte-1n46o8q h1:where(.svelte-1n46o8q){margin:0}.slashed-svelte-admin__versions.svelte-1n46o8q{display:flex;gap:6px;flex-wrap:wrap}.version-pill.svelte-1n46o8q{background:#f0f0f1;border:1px solid #c3c4c7;border-radius:3px;padding:2px 8px;font-size:11px;color:#50575e;font-family:ui-monospace,monospace;white-space:nowrap}.muted.svelte-1n46o8q{color:#50575e;margin:4px 0 0}.slashed-svelte-admin__body.svelte-1n46o8q{background:#fff;border:1px solid #c3c4c7;border-radius:4px;padding:20px} diff --git a/integrations/bricks/assets/admin-app/app.js b/integrations/bricks/assets/admin-app/app.js index 77152da1..7aebd073 100644 --- a/integrations/bricks/assets/admin-app/app.js +++ b/integrations/bricks/assets/admin-app/app.js @@ -1,16 +1,20 @@ -var mn=Object.defineProperty;var Ya=e=>{throw TypeError(e)};var yn=(e,t,s)=>t in e?mn(e,t,{enumerable:!0,configurable:!0,writable:!0,value:s}):e[t]=s;var ze=(e,t,s)=>yn(e,typeof t!="symbol"?t+"":t,s),va=(e,t,s)=>t.has(e)||Ya("Cannot "+s);var _=(e,t,s)=>(va(e,t,"read from private field"),s?s.call(e):t.get(e)),U=(e,t,s)=>t.has(e)?Ya("Cannot add the same private member more than once"):t instanceof WeakSet?t.add(e):t.set(e,s),H=(e,t,s,a)=>(va(e,t,"write to private field"),a?a.call(e,s):t.set(e,s),s),se=(e,t,s)=>(va(e,t,"access private method"),s);var Ma=Array.isArray,bn=Array.prototype.indexOf,Vt=Array.prototype.includes,ra=Array.from,wn=Object.defineProperty,es=Object.getOwnPropertyDescriptor,xn=Object.getOwnPropertyDescriptors,kn=Object.prototype,Sn=Array.prototype,mr=Object.getPrototypeOf,Xa=Object.isExtensible;const yr=()=>{};function En(e){for(var t=0;t{e=a,t=r});return{promise:s,resolve:e,reject:t}}function Je(e,t){if(Array.isArray(e))return e;if(t===void 0||!(Symbol.iterator in e))return Array.from(e);const s=[];for(const a of e)if(s.push(a),s.length===t)break;return s}const ke=2,os=4,na=8,wr=1<<24,Qe=16,at=32,zt=64,wa=128,Ue=512,ye=1024,xe=2048,ot=4096,je=8192,Ge=16384,Yt=32768,xa=1<<25,Ht=65536,Us=1<<17,jn=1<<18,us=1<<19,Tn=1<<20,lt=1<<25,Ut=65536,Gs=1<<21,ts=1<<22,jt=1<<23,It=Symbol("$state"),zn=Symbol("legacy props"),An=Symbol(""),Vs=Symbol("attributes"),ka=Symbol("class"),Sa=Symbol("style"),_s=Symbol("text"),Is=Symbol("form reset"),ia=new class extends Error{constructor(){super(...arguments);ze(this,"name","StaleReactionError");ze(this,"message","The reaction that called `getAbortSignal()` was re-run or destroyed")}},Cn=!!globalThis.document?.contentType&&globalThis.document.contentType.includes("xml");function $n(){throw new Error("https://svelte.dev/e/async_derived_orphan")}function Fn(e,t,s){throw new Error("https://svelte.dev/e/each_key_duplicate")}function Rn(e){throw new Error("https://svelte.dev/e/effect_in_teardown")}function On(){throw new Error("https://svelte.dev/e/effect_in_unowned_derived")}function Pn(e){throw new Error("https://svelte.dev/e/effect_orphan")}function Mn(){throw new Error("https://svelte.dev/e/effect_update_depth_exceeded")}function Dn(e){throw new Error("https://svelte.dev/e/props_invalid_value")}function Ln(){throw new Error("https://svelte.dev/e/state_descriptors_fixed")}function Vn(){throw new Error("https://svelte.dev/e/state_prototype_fixed")}function In(){throw new Error("https://svelte.dev/e/state_unsafe_mutation")}function Nn(){throw new Error("https://svelte.dev/e/svelte_boundary_reset_onerror")}const qn=1,Bn=2,xr=4,Kn=8,Hn=16,Un=1,Gn=4,Wn=8,Yn=16,Xn=1,Zn=2,me=Symbol("uninitialized"),kr="http://www.w3.org/1999/xhtml";function Jn(){console.warn("https://svelte.dev/e/derived_inert")}function Qn(){console.warn("https://svelte.dev/e/select_multiple_invalid_value")}function ei(){console.warn("https://svelte.dev/e/svelte_boundary_reset_noop")}function Sr(e){return e===this.v}function ti(e,t){return e!=e?t==t:e!==t||e!==null&&typeof e=="object"||typeof e=="function"}function Er(e){return!ti(e,this.v)}let Le=null;function cs(e){Le=e}function de(e,t=!1,s){Le={p:Le,i:!1,c:null,e:null,s:e,x:null,r:J,l:null}}function fe(e){var t=Le,s=t.e;if(s!==null){t.e=null;for(var a of s)Yr(a)}return t.i=!0,Le=t.p,{}}function jr(){return!0}let Ct=[];function Tr(){var e=Ct;Ct=[],En(e)}function Nt(e){if(Ct.length===0&&!ys){var t=Ct;queueMicrotask(()=>{t===Ct&&Tr()})}Ct.push(e)}function si(){for(;Ct.length>0;)Tr()}function zr(e){var t=J;if(t===null)return X.f|=jt,e;if((t.f&Yt)===0&&(t.f&os)===0)throw e;Et(e,t)}function Et(e,t){for(;t!==null;){if((t.f&wa)!==0){if((t.f&Yt)===0)throw e;try{t.b.error(e);return}catch(s){e=s}}t=t.parent}throw e}const ai=-7169;function ue(e,t){e.f=e.f&ai|t}function Da(e){(e.f&Ue)!==0||e.deps===null?ue(e,ye):ue(e,ot)}function Ar(e){if(e!==null)for(const t of e)(t.f&ke)===0||(t.f&Ut)===0||(t.f^=Ut,Ar(t.deps))}function Cr(e,t,s){(e.f&xe)!==0?t.add(e):(e.f&ot)!==0&&s.add(e),Ar(e.deps),ue(e,ye)}let Ps=!1;function ri(e){var t=Ps;try{return Ps=!1,[e(),Ps]}finally{Ps=t}}let pa=null,Xt=null,G=null,Ea=null,et=null,ja=null,ys=!1,ha=!1,Qt=null,Ns=null;var Za=0;let ni=1;var ss,xt,Rt,as,rs,Ot,ns,ft,Es,Pe,js,kt,rt,nt,is,Pt,re,Ta,gs,za,$r,Fr,qs,ii,Aa,Jt;const ta=class ta{constructor(){U(this,re);ze(this,"id",ni++);U(this,ss,!1);ze(this,"linked",!0);U(this,xt,null);U(this,Rt,null);ze(this,"async_deriveds",new Map);ze(this,"current",new Map);ze(this,"previous",new Map);ze(this,"unblocked",new Set);U(this,as,new Set);U(this,rs,new Set);U(this,Ot,new Set);U(this,ns,0);U(this,ft,new Map);U(this,Es,null);U(this,Pe,[]);U(this,js,[]);U(this,kt,new Set);U(this,rt,new Set);U(this,nt,new Map);U(this,is,new Set);ze(this,"is_fork",!1);U(this,Pt,!1)}skip_effect(t){_(this,nt).has(t)||_(this,nt).set(t,{d:[],m:[]}),_(this,is).delete(t)}unskip_effect(t,s=a=>this.schedule(a)){var a=_(this,nt).get(t);if(a){_(this,nt).delete(t);for(var r of a.d)ue(r,xe),s(r);for(r of a.m)ue(r,ot),s(r)}_(this,is).add(t)}capture(t,s,a=!1){t.v!==me&&!this.previous.has(t)&&this.previous.set(t,t.v),(t.f&jt)===0&&(this.current.set(t,[s,a]),et?.set(t,s)),this.is_fork||(t.v=s)}activate(){G=this}deactivate(){G=null,et=null}flush(){try{ha=!0,G=this,se(this,re,gs).call(this)}finally{Za=0,ja=null,Qt=null,Ns=null,ha=!1,G=null,et=null,qt.clear()}}discard(){for(const t of _(this,rs))t(this);_(this,rs).clear(),_(this,Ot).clear(),se(this,re,Jt).call(this)}register_created_effect(t){_(this,js).push(t)}increment(t,s){if(H(this,ns,_(this,ns)+1),t){let a=_(this,ft).get(s)??0;_(this,ft).set(s,a+1)}}decrement(t,s){if(H(this,ns,_(this,ns)-1),t){let a=_(this,ft).get(s)??0;a===1?_(this,ft).delete(s):_(this,ft).set(s,a-1)}_(this,Pt)||(H(this,Pt,!0),Nt(()=>{H(this,Pt,!1),this.linked&&this.flush()}))}transfer_effects(t,s){for(const a of t)_(this,kt).add(a);for(const a of s)_(this,rt).add(a);t.clear(),s.clear()}oncommit(t){_(this,as).add(t)}ondiscard(t){_(this,rs).add(t)}on_fork_commit(t){_(this,Ot).add(t)}run_fork_commit_callbacks(){for(const t of _(this,Ot))t(this);_(this,Ot).clear()}settled(){return(_(this,Es)??H(this,Es,br())).promise}static ensure(){var t;if(G===null){const s=G=new ta;se(t=s,re,Aa).call(t),!ha&&!ys&&Nt(()=>{_(s,ss)||s.flush()})}return G}apply(){{et=null;return}}schedule(t){if(ja=t,t.b?.is_pending&&(t.f&(os|na|wr))!==0&&(t.f&Yt)===0){t.b.defer_effect(t);return}for(var s=t;s.parent!==null;){s=s.parent;var a=s.f;if(Qt!==null&&s===J&&(X===null||(X.f&ke)===0))return;if((a&(zt|at))!==0){if((a&ye)===0)return;s.f^=ye}}_(this,Pe).push(s)}};ss=new WeakMap,xt=new WeakMap,Rt=new WeakMap,as=new WeakMap,rs=new WeakMap,Ot=new WeakMap,ns=new WeakMap,ft=new WeakMap,Es=new WeakMap,Pe=new WeakMap,js=new WeakMap,kt=new WeakMap,rt=new WeakMap,nt=new WeakMap,is=new WeakMap,Pt=new WeakMap,re=new WeakSet,Ta=function(){if(this.is_fork)return!0;for(const a of _(this,ft).keys()){for(var t=a,s=!1;t.parent!==null;){if(_(this,nt).has(t)){s=!0;break}t=t.parent}if(!s)return!0}return!1},gs=function(){var l,d,h;if(H(this,ss,!0),Za++>1e3&&(se(this,re,Jt).call(this),oi()),!se(this,re,Ta).call(this)){for(const v of _(this,kt))_(this,rt).delete(v),ue(v,xe),this.schedule(v);for(const v of _(this,rt))ue(v,ot),this.schedule(v)}const t=_(this,Pe);H(this,Pe,[]),this.apply();var s=Qt=[],a=[],r=Ns=[];for(const v of t)try{se(this,re,za).call(this,v,s,a)}catch(u){throw Pr(v),u}if(G=null,r.length>0){var n=ta.ensure();for(const v of r)n.schedule(v)}if(Qt=null,Ns=null,se(this,re,Ta).call(this)){se(this,re,qs).call(this,a),se(this,re,qs).call(this,s);for(const[v,u]of _(this,nt))Or(v,u);r.length>0&&se(l=G,re,gs).call(l);return}const o=se(this,re,$r).call(this);if(o){se(d=o,re,Fr).call(d,this);return}_(this,kt).clear(),_(this,rt).clear();for(const v of _(this,as))v(this);_(this,as).clear(),Ea=this,Ja(a),Ja(s),Ea=null,_(this,Es)?.resolve();var c=G;if(this.linked&&_(this,ns)===0&&se(this,re,Jt).call(this),_(this,Pe).length>0){c===null&&(c=this,se(this,re,Aa).call(this));const v=c;_(v,Pe).push(..._(this,Pe).filter(u=>!_(v,Pe).includes(u)))}c!==null&&se(h=c,re,gs).call(h)},za=function(t,s,a){t.f^=ye;for(var r=t.first;r!==null;){var n=r.f,o=(n&(at|zt))!==0,c=o&&(n&ye)!==0,l=c||(n&je)!==0||_(this,nt).has(r);if(!l&&r.fn!==null){o?r.f^=ye:(n&os)!==0?s.push(r):Fs(r)&&((n&Qe)!==0&&_(this,rt).add(r),fs(r));var d=r.first;if(d!==null){r=d;continue}}for(;r!==null;){var h=r.next;if(h!==null){r=h;break}r=r.parent}}},$r=function(){for(var t=_(this,xt);t!==null;){if(!t.is_fork){for(const[s,[,a]]of this.current)if(t.current.has(s)&&!a)return t}t=_(t,xt)}return null},Fr=function(t){var a;for(const[r,n]of t.current)!this.previous.has(r)&&t.previous.has(r)&&this.previous.set(r,t.previous.get(r)),this.current.set(r,n);for(const[r,n]of t.async_deriveds){const o=this.async_deriveds.get(r);o&&n.promise.then(o.resolve)}const s=r=>{var n=r.reactions;if(n!==null)for(const l of n){var o=l.f;if((o&ke)!==0)s(l);else{var c=l;o&(ts|Qe)&&!this.async_deriveds.has(c)&&(_(this,rt).delete(c),ue(c,xe),this.schedule(c))}}};for(const r of this.current.keys())s(r);this.oncommit(()=>t.discard()),se(a=t,re,Jt).call(a),G=this,se(this,re,gs).call(this)},qs=function(t){for(var s=0;s!this.current.has(u));if(r.length===0)t&&v.discard();else if(s.length>0){if(t)for(const u of _(this,is))v.unskip_effect(u,m=>{var y;(m.f&(Qe|ts))!==0?v.schedule(m):se(y=v,re,qs).call(y,[m])});v.activate();var n=new Set,o=new Map;for(var c of s)Rr(c,r,n,o);o=new Map;var l=[...v.current.keys()].filter(u=>this.current.has(u)?this.current.get(u)[0]!==u.v:!0);if(l.length>0)for(const u of _(this,js))(u.f&(Ge|je|Us))===0&&La(u,l,o)&&((u.f&(ts|Qe))!==0?(ue(u,xe),v.schedule(u)):_(v,kt).add(u));if(_(v,Pe).length>0&&!_(v,Pt)){v.apply();for(var d of _(v,Pe))se(h=v,re,za).call(h,d,[],[]);H(v,Pe,[])}v.deactivate()}}}},Aa=function(){Xt===null?pa=Xt=this:(H(Xt,Rt,this),H(this,xt,Xt)),Xt=this},Jt=function(){var t=_(this,xt),s=_(this,Rt);t===null?pa=s:H(t,Rt,s),s===null?Xt=t:H(s,xt,t),this.linked=!1};let Gt=ta;function li(e){var t=ys;ys=!0;try{for(var s;;){if(si(),G===null)return s;G.flush()}}finally{ys=t}}function oi(){try{Mn()}catch(e){Et(e,ja)}}let dt=null;function Ja(e){var t=e.length;if(t!==0){for(var s=0;s0)){qt.clear();for(const r of dt){if((r.f&(Ge|je))!==0)continue;const n=[r];let o=r.parent;for(;o!==null;)dt.has(o)&&(dt.delete(o),n.push(o)),o=o.parent;for(let c=n.length-1;c>=0;c--){const l=n[c];(l.f&(Ge|je))===0&&fs(l)}}dt.clear()}}dt=null}}function Rr(e,t,s,a){if(!s.has(e)&&(s.add(e),e.reactions!==null))for(const r of e.reactions){const n=r.f;(n&ke)!==0?Rr(r,t,s,a):(n&(ts|Qe))!==0&&(n&xe)===0&&La(r,t,a)&&(ue(r,xe),Va(r))}}function La(e,t,s){const a=s.get(e);if(a!==void 0)return a;if(e.deps!==null)for(const r of e.deps){if(Vt.call(t,r))return!0;if((r.f&ke)!==0&&La(r,t,s))return s.set(r,!0),!0}return s.set(e,!1),!1}function Va(e){G.schedule(e)}function Or(e,t){if(!((e.f&at)!==0&&(e.f&ye)!==0)){(e.f&xe)!==0?t.d.push(e):(e.f&ot)!==0&&t.m.push(e),ue(e,ye);for(var s=e.first;s!==null;)Or(s,t),s=s.next}}function Pr(e){ue(e,ye);for(var t=e.first;t!==null;)Pr(t),t=t.next}function ci(e){let t=0,s=Wt(0),a;return()=>{qa()&&(i(s),Ba(()=>(t===0&&(a=oa(()=>e(()=>bs(s)))),t+=1,()=>{Nt(()=>{t-=1,t===0&&(a?.(),a=void 0,bs(s))})})))}}var di=Ht|us;function fi(e,t,s,a){new ui(e,t,s,a)}var qe,Pa,Be,Mt,Ae,Ke,Se,Me,ut,Dt,St,ls,Ts,zs,vt,sa,pe,vi,pi,hi,Ca,Bs,Ks,$a,Fa;class ui{constructor(t,s,a,r){U(this,pe);ze(this,"parent");ze(this,"is_pending",!1);ze(this,"transform_error");U(this,qe);U(this,Pa,null);U(this,Be);U(this,Mt);U(this,Ae);U(this,Ke,null);U(this,Se,null);U(this,Me,null);U(this,ut,null);U(this,Dt,0);U(this,St,0);U(this,ls,!1);U(this,Ts,new Set);U(this,zs,new Set);U(this,vt,null);U(this,sa,ci(()=>(H(this,vt,Wt(_(this,Dt))),()=>{H(this,vt,null)})));H(this,qe,t),H(this,Be,s),H(this,Mt,n=>{var o=J;o.b=this,o.f|=wa,a(n)}),this.parent=J.b,this.transform_error=r??this.parent?.transform_error??(n=>n),H(this,Ae,la(()=>{se(this,pe,Ca).call(this)},di))}defer_effect(t){Cr(t,_(this,Ts),_(this,zs))}is_rendered(){return!this.is_pending&&(!this.parent||this.parent.is_rendered())}has_pending_snippet(){return!!_(this,Be).pending}update_pending_count(t,s){se(this,pe,$a).call(this,t,s),H(this,Dt,_(this,Dt)+t),!(!_(this,vt)||_(this,ls))&&(H(this,ls,!0),Nt(()=>{H(this,ls,!1),_(this,vt)&&ds(_(this,vt),_(this,Dt))}))}get_effect_pending(){return _(this,sa).call(this),i(_(this,vt))}error(t){if(!_(this,Be).onerror&&!_(this,Be).failed)throw t;G?.is_fork?(_(this,Ke)&&G.skip_effect(_(this,Ke)),_(this,Se)&&G.skip_effect(_(this,Se)),_(this,Me)&&G.skip_effect(_(this,Me)),G.on_fork_commit(()=>{se(this,pe,Fa).call(this,t)})):se(this,pe,Fa).call(this,t)}}qe=new WeakMap,Pa=new WeakMap,Be=new WeakMap,Mt=new WeakMap,Ae=new WeakMap,Ke=new WeakMap,Se=new WeakMap,Me=new WeakMap,ut=new WeakMap,Dt=new WeakMap,St=new WeakMap,ls=new WeakMap,Ts=new WeakMap,zs=new WeakMap,vt=new WeakMap,sa=new WeakMap,pe=new WeakSet,vi=function(){try{H(this,Ke,He(()=>_(this,Mt).call(this,_(this,qe))))}catch(t){this.error(t)}},pi=function(t){const s=_(this,Be).failed;s&&H(this,Me,He(()=>{s(_(this,qe),()=>t,()=>()=>{})}))},hi=function(){const t=_(this,Be).pending;t&&(this.is_pending=!0,H(this,Se,He(()=>t(_(this,qe)))),Nt(()=>{var s=H(this,ut,document.createDocumentFragment()),a=pt();s.append(a),H(this,Ke,se(this,pe,Ks).call(this,()=>He(()=>_(this,Mt).call(this,a)))),_(this,St)===0&&(_(this,qe).before(s),H(this,ut,null),Bt(_(this,Se),()=>{H(this,Se,null)}),se(this,pe,Bs).call(this,G))}))},Ca=function(){try{if(this.is_pending=this.has_pending_snippet(),H(this,St,0),H(this,Dt,0),H(this,Ke,He(()=>{_(this,Mt).call(this,_(this,qe))})),_(this,St)>0){var t=H(this,ut,document.createDocumentFragment());Ua(_(this,Ke),t);const s=_(this,Be).pending;H(this,Se,He(()=>s(_(this,qe))))}else se(this,pe,Bs).call(this,G)}catch(s){this.error(s)}},Bs=function(t){this.is_pending=!1,t.transfer_effects(_(this,Ts),_(this,zs))},Ks=function(t){var s=J,a=X,r=Le;ct(_(this,Ae)),Ye(_(this,Ae)),cs(_(this,Ae).ctx);try{return Gt.ensure(),t()}catch(n){return zr(n),null}finally{ct(s),Ye(a),cs(r)}},$a=function(t,s){var a;if(!this.has_pending_snippet()){this.parent&&se(a=this.parent,pe,$a).call(a,t,s);return}H(this,St,_(this,St)+t),_(this,St)===0&&(se(this,pe,Bs).call(this,s),_(this,Se)&&Bt(_(this,Se),()=>{H(this,Se,null)}),_(this,ut)&&(_(this,qe).before(_(this,ut)),H(this,ut,null)))},Fa=function(t){_(this,Ke)&&(Fe(_(this,Ke)),H(this,Ke,null)),_(this,Se)&&(Fe(_(this,Se)),H(this,Se,null)),_(this,Me)&&(Fe(_(this,Me)),H(this,Me,null));var s=_(this,Be).onerror;let a=_(this,Be).failed;var r=!1,n=!1;const o=()=>{if(r){ei();return}r=!0,n&&Nn(),_(this,Me)!==null&&Bt(_(this,Me),()=>{H(this,Me,null)}),se(this,pe,Ks).call(this,()=>{se(this,pe,Ca).call(this)})},c=l=>{try{n=!0,s?.(l,o),n=!1}catch(d){Et(d,_(this,Ae)&&_(this,Ae).parent)}a&&H(this,Me,se(this,pe,Ks).call(this,()=>{try{return He(()=>{var d=J;d.b=this,d.f|=wa,a(_(this,qe),()=>l,()=>o)})}catch(d){return Et(d,_(this,Ae).parent),null}}))};Nt(()=>{var l;try{l=this.transform_error(t)}catch(d){Et(d,_(this,Ae)&&_(this,Ae).parent);return}l!==null&&typeof l=="object"&&typeof l.then=="function"?l.then(c,d=>Et(d,_(this,Ae)&&_(this,Ae).parent)):c(l)})};function _i(e,t,s,a){const r=xs;var n=e.filter(u=>!u.settled);if(s.length===0&&n.length===0){a(t.map(r));return}var o=J,c=gi(),l=n.length===1?n[0].promise:n.length>1?Promise.all(n.map(u=>u.promise)):null;function d(u){if((o.f&Ge)===0){c();try{a(u)}catch(m){Et(m,o)}Ws()}}var h=Mr();if(s.length===0){l.then(()=>d(t.map(r))).finally(h);return}function v(){Promise.all(s.map(u=>mi(u))).then(u=>d([...t.map(r),...u])).catch(u=>Et(u,o)).finally(h)}l?l.then(()=>{c(),v(),Ws()}):v()}function gi(){var e=J,t=X,s=Le,a=G;return function(n=!0){ct(e),Ye(t),cs(s),n&&(e.f&Ge)===0&&(a?.activate(),a?.apply())}}function Ws(e=!0){ct(null),Ye(null),cs(null),e&&G?.deactivate()}function Mr(){var e=J,t=e.b,s=G,a=t.is_rendered();return t.update_pending_count(1,s),s.increment(a,e),()=>{t.update_pending_count(-1,s),s.decrement(a,e)}}function xs(e){var t=ke|xe;return J!==null&&(J.f|=us),{ctx:Le,deps:null,effects:null,equals:Sr,f:t,fn:e,reactions:null,rv:0,v:me,wv:0,parent:J,ac:null}}const Ms=Symbol("obsolete");function mi(e,t,s){let a=J;a===null&&$n();var r=void 0,n=Wt(me),o=!X,c=new Set;return $i(()=>{var l=J,d=br();r=d.promise;try{Promise.resolve(e()).then(d.resolve,m=>{m!==ia&&d.reject(m)}).finally(Ws)}catch(m){d.reject(m),Ws()}var h=G;if(o){if((l.f&Yt)!==0)var v=Mr();if(a.b.is_rendered())h.async_deriveds.get(l)?.reject(Ms);else for(const m of c.values())m.reject(Ms);c.add(d),h.async_deriveds.set(l,d)}const u=(m,y=void 0)=>{v?.(),c.delete(d),y!==Ms&&(h.activate(),y?(n.f|=jt,ds(n,y)):((n.f&jt)!==0&&(n.f^=jt),ds(n,m)),h.deactivate())};d.promise.then(u,m=>u(null,m||"unknown"))}),Gr(()=>{for(const l of c)l.reject(Ms)}),new Promise(l=>{function d(h){function v(){h===r?l(n):d(r)}h.then(v,v)}d(r)})}function O(e){const t=xs(e);return tn(t),t}function Dr(e){const t=xs(e);return t.equals=Er,t}function yi(e){var t=e.effects;if(t!==null){e.effects=null;for(var s=0;s0&&!Ir&&xi()}return t}function xi(){Ir=!1;for(const e of Ys){(e.f&ye)!==0&&ue(e,ot);let t;try{t=Fs(e)}catch{t=!0}t&&fs(e)}Ys.clear()}function bs(e){q(e,e.v+1)}function Nr(e,t,s){var a=e.reactions;if(a!==null)for(var r=a.length,n=0;n{if(Kt===n)return c();var l=X,d=Kt;Ye(null),ar(n);var h=c();return Ye(l),ar(d),h};return a&&s.set("length",Z(e.length)),new Proxy(e,{defineProperty(c,l,d){(!("value"in d)||d.configurable===!1||d.enumerable===!1||d.writable===!1)&&Ln();var h=s.get(l);return h===void 0?o(()=>{var v=Z(d.value);return s.set(l,v),v}):q(h,d.value,!0),!0},deleteProperty(c,l){var d=s.get(l);if(d===void 0){if(l in c){const h=o(()=>Z(me));s.set(l,h),bs(r)}}else q(d,me),bs(r);return!0},get(c,l,d){if(l===It)return e;var h=s.get(l),v=l in c;if(h===void 0&&(!v||es(c,l)?.writable)&&(h=o(()=>{var m=$e(v?c[l]:me),y=Z(m);return y}),s.set(l,h)),h!==void 0){var u=i(h);return u===me?void 0:u}return Reflect.get(c,l,d)},getOwnPropertyDescriptor(c,l){var d=Reflect.getOwnPropertyDescriptor(c,l);if(d&&"value"in d){var h=s.get(l);h&&(d.value=i(h))}else if(d===void 0){var v=s.get(l),u=v?.v;if(v!==void 0&&u!==me)return{enumerable:!0,configurable:!0,value:u,writable:!0}}return d},has(c,l){if(l===It)return!0;var d=s.get(l),h=d!==void 0&&d.v!==me||Reflect.has(c,l);if(d!==void 0||J!==null&&(!h||es(c,l)?.writable)){d===void 0&&(d=o(()=>{var u=h?$e(c[l]):me,m=Z(u);return m}),s.set(l,d));var v=i(d);if(v===me)return!1}return h},set(c,l,d,h){var v=s.get(l),u=l in c;if(a&&l==="length")for(var m=d;mZ(me)),s.set(m+"",y))}if(v===void 0)(!u||es(c,l)?.writable)&&(v=o(()=>Z(void 0)),q(v,$e(d)),s.set(l,v));else{u=v.v!==me;var w=o(()=>$e(d));q(v,w)}var p=Reflect.getOwnPropertyDescriptor(c,l);if(p?.set&&p.set.call(h,d),!u){if(a&&typeof l=="string"){var b=s.get("length"),E=Number(l);Number.isInteger(E)&&E>=b.v&&q(b,E+1)}bs(r)}return!0},ownKeys(c){i(r);var l=Reflect.ownKeys(c).filter(v=>{var u=s.get(v);return u===void 0||u.v!==me});for(var[d,h]of s)h.v!==me&&!(d in c)&&l.push(d);return l},setPrototypeOf(){Vn()}})}function Qa(e){try{if(e!==null&&typeof e=="object"&&It in e)return e[It]}catch{}return e}function ki(e,t){return Object.is(Qa(e),Qa(t))}var er,qr,Br,Kr;function Si(){if(er===void 0){er=window,qr=/Firefox/.test(navigator.userAgent);var e=Element.prototype,t=Node.prototype,s=Text.prototype;Br=es(t,"firstChild").get,Kr=es(t,"nextSibling").get,Xa(e)&&(e[ka]=void 0,e[Vs]=null,e[Sa]=void 0,e.__e=void 0),Xa(s)&&(s[_s]=void 0)}}function pt(e=""){return document.createTextNode(e)}function Xs(e){return Br.call(e)}function $s(e){return Kr.call(e)}function f(e,t){return Xs(e)}function _t(e,t=!1){{var s=Xs(e);return s instanceof Comment&&s.data===""?$s(s):s}}function g(e,t=1,s=!1){let a=e;for(;t--;)a=$s(a);return a}function Ei(e){e.textContent=""}function Hr(){return!1}function ji(e,t,s){return document.createElementNS(kr,e,void 0)}let tr=!1;function Ti(){tr||(tr=!0,document.addEventListener("reset",e=>{Promise.resolve().then(()=>{if(!e.defaultPrevented)for(const t of e.target.elements)t[Is]?.()})},{capture:!0}))}function Na(e){var t=X,s=J;Ye(null),ct(null);try{return e()}finally{Ye(t),ct(s)}}function Ur(e,t,s,a=s){e.addEventListener(t,()=>Na(s));const r=e[Is];r?e[Is]=()=>{r(),a(!0)}:e[Is]=()=>a(!0),Ti()}function zi(e){J===null&&(X===null&&Pn(),On()),gt&&Rn()}function Ai(e,t){var s=t.last;s===null?t.last=t.first=e:(s.next=e,e.prev=s,t.last=e)}function mt(e,t){var s=J;s!==null&&(s.f&je)!==0&&(e|=je);var a={ctx:Le,deps:null,nodes:null,f:e|xe|Ue,first:null,fn:t,last:null,next:null,parent:s,b:s&&s.b,prev:null,teardown:null,wv:0,ac:null};G?.register_created_effect(a);var r=a;if((e&os)!==0)Qt!==null?Qt.push(a):Gt.ensure().schedule(a);else if(t!==null){try{fs(a)}catch(o){throw Fe(a),o}r.deps===null&&r.teardown===null&&r.nodes===null&&r.first===r.last&&(r.f&us)===0&&(r=r.first,(e&Qe)!==0&&(e&Ht)!==0&&r!==null&&(r.f|=Ht))}if(r!==null&&(r.parent=s,s!==null&&Ai(r,s),X!==null&&(X.f&ke)!==0&&(e&zt)===0)){var n=X;(n.effects??(n.effects=[])).push(r)}return a}function qa(){return X!==null&&!tt}function Gr(e){const t=mt(na,null);return ue(t,ye),t.teardown=e,t}function Wr(e){zi();var t=J.f,s=!X&&(t&at)!==0&&(t&Yt)===0;if(s){var a=Le;(a.e??(a.e=[])).push(e)}else return Yr(e)}function Yr(e){return mt(os|Tn,e)}function Ci(e){Gt.ensure();const t=mt(zt|us,e);return(s={})=>new Promise(a=>{s.outro?Bt(t,()=>{Fe(t),a(void 0)}):(Fe(t),a(void 0))})}function Xr(e){return mt(os,e)}function $i(e){return mt(ts|us,e)}function Ba(e,t=0){return mt(na|t,e)}function V(e,t=[],s=[],a=[]){_i(a,t,s,r=>{mt(na,()=>e(...r.map(i)))})}function la(e,t=0){var s=mt(Qe|t,e);return s}function He(e){return mt(at|us,e)}function Zr(e){var t=e.teardown;if(t!==null){const s=gt,a=X;sr(!0),Ye(null);try{t.call(null)}finally{sr(s),Ye(a)}}}function Ka(e,t=!1){var s=e.first;for(e.first=e.last=null;s!==null;){const r=s.ac;r!==null&&Na(()=>{r.abort(ia)});var a=s.next;(s.f&zt)!==0?s.parent=null:Fe(s,t),s=a}}function Fi(e){for(var t=e.first;t!==null;){var s=t.next;(t.f&at)===0&&Fe(t),t=s}}function Fe(e,t=!0){var s=!1;(t||(e.f&jn)!==0)&&e.nodes!==null&&e.nodes.end!==null&&(Ri(e.nodes.start,e.nodes.end),s=!0),ue(e,xa),Ka(e,t&&!s),ks(e,0);var a=e.nodes&&e.nodes.t;if(a!==null)for(const n of a)n.stop();Zr(e),e.f^=xa,e.f|=Ge;var r=e.parent;r!==null&&r.first!==null&&Jr(e),e.next=e.prev=e.teardown=e.ctx=e.deps=e.fn=e.nodes=e.ac=e.b=null}function Ri(e,t){for(;e!==null;){var s=e===t?null:$s(e);e.remove(),e=s}}function Jr(e){var t=e.parent,s=e.prev,a=e.next;s!==null&&(s.next=a),a!==null&&(a.prev=s),t!==null&&(t.first===e&&(t.first=a),t.last===e&&(t.last=s))}function Bt(e,t,s=!0){var a=[];Qr(e,a,!0);var r=()=>{s&&Fe(e),t&&t()},n=a.length;if(n>0){var o=()=>--n||r();for(var c of a)c.out(o)}else r()}function Qr(e,t,s){if((e.f&je)===0){e.f^=je;var a=e.nodes&&e.nodes.t;if(a!==null)for(const c of a)(c.is_global||s)&&t.push(c);for(var r=e.first;r!==null;){var n=r.next;if((r.f&zt)===0){var o=(r.f&Ht)!==0||(r.f&at)!==0&&(e.f&Qe)!==0;Qr(r,t,o?s:!1)}r=n}}}function Ha(e){en(e,!0)}function en(e,t){if((e.f&je)!==0){e.f^=je,(e.f&ye)===0&&(ue(e,xe),Gt.ensure().schedule(e));for(var s=e.first;s!==null;){var a=s.next,r=(s.f&Ht)!==0||(s.f&at)!==0;en(s,r?t:!1),s=a}var n=e.nodes&&e.nodes.t;if(n!==null)for(const o of n)(o.is_global||t)&&o.in()}}function Ua(e,t){if(e.nodes)for(var s=e.nodes.start,a=e.nodes.end;s!==null;){var r=s===a?null:$s(s);t.append(s),s=r}}let Hs=!1,gt=!1;function sr(e){gt=e}let X=null,tt=!1;function Ye(e){X=e}let J=null;function ct(e){J=e}let We=null;function tn(e){X!==null&&(We===null?We=[e]:We.push(e))}let Ce=null,Oe=0,Ne=null;function Oi(e){Ne=e}let sn=1,$t=0,Kt=$t;function ar(e){Kt=e}function an(){return++sn}function Fs(e){var t=e.f;if((t&xe)!==0)return!0;if(t&ke&&(e.f&=~Ut),(t&ot)!==0){for(var s=e.deps,a=s.length,r=0;re.wv)return!0}(t&Ue)!==0&&et===null&&ue(e,ye)}return!1}function rn(e,t,s=!0){var a=e.reactions;if(a!==null&&!(We!==null&&Vt.call(We,e)))for(var r=0;r{e.ac.abort(ia)}),e.ac=null);try{e.f|=Gs;var h=e.fn,v=h();e.f|=Yt;var u=e.deps,m=G?.is_fork;if(Ce!==null){var y;if(m||ks(e,Oe),u!==null&&Oe>0)for(u.length=Oe+Ce.length,y=0;y{throw p});throw u}}finally{e[Ft]=t,delete e.currentTarget,Ye(h),ct(v)}}}const Vi=globalThis?.window?.trustedTypes&&globalThis.window.trustedTypes.createPolicy("svelte-trusted-html",{createHTML:e=>e});function Ii(e){return Vi?.createHTML(e)??e}function Ni(e){var t=ji("template");return t.innerHTML=Ii(e.replaceAll("","")),t.content}function Zs(e,t){var s=J;s.nodes===null&&(s.nodes={start:e,end:t,a:null,t:null})}function P(e,t){var s=(t&Xn)!==0,a=(t&Zn)!==0,r,n=!e.startsWith("");return()=>{r===void 0&&(r=Ni(n?e:""+e),s||(r=Xs(r)));var o=a||qr?document.importNode(r,!0):r.cloneNode(!0);if(s){var c=Xs(o),l=o.lastChild;Zs(c,l)}else Zs(o,o);return o}}function qi(e=""){{var t=pt(e+"");return Zs(t,t),t}}function ir(){var e=document.createDocumentFragment(),t=document.createComment(""),s=pt();return e.append(t,s),Zs(t,s),e}function $(e,t){e!==null&&e.before(t)}function M(e,t){var s=t==null?"":typeof t=="object"?`${t}`:t;s!==(e[_s]??(e[_s]=e.nodeValue))&&(e[_s]=s,e.nodeValue=`${s}`)}function Bi(e,t){return Ki(e,t)}const Ds=new Map;function Ki(e,{target:t,anchor:s,props:a={},events:r,context:n,intro:o=!0,transformError:c}){Si();var l=void 0,d=Ci(()=>{var h=s??t.appendChild(pt());fi(h,{pending:()=>{}},m=>{de({});var y=Le;n&&(y.c=n),r&&(a.$$events=r),l=e(m,a)||{},fe()},c);var v=new Set,u=m=>{for(var y=0;y{for(var m of v)for(const p of[t,document]){var y=Ds.get(p),w=y.get(m);--w==0?(p.removeEventListener(m,nr),y.delete(m),y.size===0&&Ds.delete(p)):y.set(m,w)}Ra.delete(u),h!==s&&h.parentNode?.removeChild(h)}});return Hi.set(l,d),l}let Hi=new WeakMap;var Ze,it,De,Lt,As,Cs,aa;class dn{constructor(t,s=!0){ze(this,"anchor");U(this,Ze,new Map);U(this,it,new Map);U(this,De,new Map);U(this,Lt,new Set);U(this,As,!0);U(this,Cs,t=>{if(_(this,Ze).has(t)){var s=_(this,Ze).get(t),a=_(this,it).get(s);if(a)Ha(a),_(this,Lt).delete(s);else{var r=_(this,De).get(s);r&&(_(this,it).set(s,r.effect),_(this,De).delete(s),r.fragment.lastChild.remove(),this.anchor.before(r.fragment),a=r.effect)}for(const[n,o]of _(this,Ze)){if(_(this,Ze).delete(n),n===t)break;const c=_(this,De).get(o);c&&(Fe(c.effect),_(this,De).delete(o))}for(const[n,o]of _(this,it)){if(n===s||_(this,Lt).has(n))continue;const c=()=>{if(Array.from(_(this,Ze).values()).includes(n)){var d=document.createDocumentFragment();Ua(o,d),d.append(pt()),_(this,De).set(n,{effect:o,fragment:d})}else Fe(o);_(this,Lt).delete(n),_(this,it).delete(n)};_(this,As)||!a?(_(this,Lt).add(n),Bt(o,c,!1)):c()}}});U(this,aa,t=>{_(this,Ze).delete(t);const s=Array.from(_(this,Ze).values());for(const[a,r]of _(this,De))s.includes(a)||(Fe(r.effect),_(this,De).delete(a))});this.anchor=t,H(this,As,s)}ensure(t,s){var a=G,r=Hr();if(s&&!_(this,it).has(t)&&!_(this,De).has(t))if(r){var n=document.createDocumentFragment(),o=pt();n.append(o),_(this,De).set(t,{effect:He(()=>s(o)),fragment:n})}else _(this,it).set(t,He(()=>s(this.anchor)));if(_(this,Ze).set(a,t),r){for(const[c,l]of _(this,it))c===t?a.unskip_effect(l):a.skip_effect(l);for(const[c,l]of _(this,De))c===t?a.unskip_effect(l.effect):a.skip_effect(l.effect);a.oncommit(_(this,Cs)),a.ondiscard(_(this,aa))}else _(this,Cs).call(this,a)}}Ze=new WeakMap,it=new WeakMap,De=new WeakMap,Lt=new WeakMap,As=new WeakMap,Cs=new WeakMap,aa=new WeakMap;function ne(e,t,s=!1){var a=new dn(e),r=s?Ht:0;function n(o,c){a.ensure(o,c)}la(()=>{var o=!1;t((c,l=0)=>{o=!0,n(l,c)}),o||n(-1,null)},r)}function ps(e,t){return t}function Ui(e,t,s){for(var a=[],r=t.length,n,o=t.length,c=0;c{if(n){if(n.pending.delete(v),n.done.add(v),n.pending.size===0){var u=e.outrogroups;Oa(e,ra(n.done)),u.delete(n),u.size===0&&(e.outrogroups=null)}}else o-=1},!1)}if(o===0){var l=a.length===0&&s!==null;if(l){var d=s,h=d.parentNode;Ei(h),h.append(d),e.items.clear()}Oa(e,t,!l)}else n={pending:new Set(t),done:new Set},(e.outrogroups??(e.outrogroups=new Set)).add(n)}function Oa(e,t,s=!0){var a;if(e.pending.size>0){a=new Set;for(const o of e.pending.values())for(const c of o)a.add(e.items.get(c).e)}for(var r=0;r{var T=s();return Ma(T)?T:T==null?[]:ra(T)}),u,m=new Map,y=!0;function w(T){(E.effect.f&Ge)===0&&(E.pending.delete(T),E.fallback=h,Gi(E,u,o,t,a),h!==null&&(u.length===0?(h.f<)===0?Ha(h):(h.f^=lt,ms(h,null,o)):Bt(h,()=>{h=null})))}function p(T){E.pending.delete(T)}var b=la(()=>{u=i(v);for(var T=u.length,F=new Set,L=G,x=Hr(),j=0;jn(o)):(h=He(()=>n(lr??(lr=pt()))),h.f|=lt)),T>F.size&&Fn(),!y)if(m.set(L,F),x){for(const[R,k]of c)F.has(R)||L.skip_effect(k.e);L.oncommit(w),L.ondiscard(p)}else w(L);i(v)}),E={effect:b,items:c,pending:m,outrogroups:null,fallback:h};y=!1}function hs(e){for(;e!==null&&(e.f&at)===0;)e=e.next;return e}function Gi(e,t,s,a,r){var n=(a&Kn)!==0,o=t.length,c=e.items,l=hs(e.effect.first),d,h=null,v,u=[],m=[],y,w,p,b;if(n)for(b=0;b0){var C=(a&xr)!==0&&o===0?s:null;if(n){for(b=0;b{if(v!==void 0)for(p of v)p.nodes?.a?.apply()})}function Wi(e,t,s,a,r,n,o,c){var l=(o&qn)!==0?(o&Hn)===0?wi(s,!1,!1):Wt(s):null,d=(o&Bn)!==0?Wt(r):null;return{v:l,i:d,e:He(()=>(n(t,l??s,d??r,c),()=>{e.delete(a)}))}}function ms(e,t,s){if(e.nodes)for(var a=e.nodes.start,r=e.nodes.end,n=t&&(t.f<)===0?t.nodes.start:s;a!==null;){var o=$s(a);if(n.before(a),a===r)return;a=o}}function wt(e,t,s){t===null?e.effect.first=s:t.next=s,s===null?e.effect.last=t:s.prev=t}function fn(e,t,...s){var a=new dn(e);la(()=>{const r=t()??null;a.ensure(r,r&&(n=>r(n,...s)))},Ht)}const or=[...` -\r\f \v\uFEFF`];function Yi(e,t,s){var a=e==null?"":""+e;if(s){for(var r of Object.keys(s))if(s[r])a=a?a+" "+r:r;else if(a.length)for(var n=r.length,o=0;(o=a.indexOf(r,o))>=0;){var c=o+n;(o===0||or.includes(a[o-1]))&&(c===a.length||or.includes(a[c]))?a=(o===0?"":a.substring(0,o))+a.substring(c+1):o=c}}return a===""?null:a}function cr(e,t=!1){var s=t?" !important;":";",a="";for(var r of Object.keys(e)){var n=e[r];n!=null&&n!==""&&(a+=" "+r+": "+n+s)}return a}function _a(e){return e[0]!=="-"||e[1]!=="-"?e.toLowerCase():e}function Xi(e,t){if(t){var s="",a,r;if(Array.isArray(t)?(a=t[0],r=t[1]):a=t,e){e=String(e).replaceAll(/\s*\/\*.*?\*\/\s*/g,"").trim();var n=!1,o=0,c=!1,l=[];a&&l.push(...Object.keys(a).map(_a)),r&&l.push(...Object.keys(r).map(_a));var d=0,h=-1;const w=e.length;for(var v=0;v{Ga(e,e.__value)});t.observe(e,{childList:!0,subtree:!0,attributes:!0,attributeFilter:["value"]}),Gr(()=>{t.disconnect()})}function Js(e,t,s=t){var a=new WeakSet,r=!0;Ur(e,"change",n=>{var o=n?"[selected]":":checked",c;if(e.multiple)c=[].map.call(e.querySelectorAll(o),ws);else{var l=e.querySelector(o)??e.querySelector("option:not([disabled])");c=l&&ws(l)}s(c),e.__value=c,G!==null&&a.add(G)}),Xr(()=>{var n=t();if(e===document.activeElement){var o=G;if(a.has(o))return}if(Ga(e,n,r),r&&n===void 0){var c=e.querySelector(":checked");c!==null&&(n=ws(c),s(n))}e.__value=n,r=!1}),un(e)}function ws(e){return"__value"in e?e.__value:e.value}const Zi=Symbol("is custom element"),Ji=Symbol("is html"),Qi=Cn?"progress":"PROGRESS";function Qs(e,t){var s=vn(e);s.value===(s.value=t??void 0)||e.value===t&&(t!==0||e.nodeName!==Qi)||(e.value=t??"")}function Y(e,t,s,a){var r=vn(e);r[t]!==(r[t]=s)&&(t==="loading"&&(e[An]=s),s==null?e.removeAttribute(t):typeof s!="string"&&el(e).includes(t)?e[t]=s:e.setAttribute(t,s))}function vn(e){return e[Vs]??(e[Vs]={[Zi]:e.nodeName.includes("-"),[Ji]:e.namespaceURI===kr})}var dr=new Map;function el(e){var t=e.getAttribute("is")||e.nodeName,s=dr.get(t);if(s)return s;dr.set(t,s=[]);for(var a,r=e,n=Element.prototype;n!==r;){a=xn(r);for(var o in a)a[o].set&&o!=="innerHTML"&&o!=="textContent"&&o!=="innerText"&&s.push(o);r=mr(r)}return s}function ht(e,t,s=t){var a=new WeakSet;Ur(e,"input",async r=>{var n=r?e.defaultValue:e.value;if(n=ma(e)?ya(n):n,s(n),G!==null&&a.add(G),await Mi(),n!==(n=t())){var o=e.selectionStart,c=e.selectionEnd,l=e.value.length;if(e.value=n??"",c!==null){var d=e.value.length;o===c&&c===l&&d>l?(e.selectionStart=d,e.selectionEnd=d):(e.selectionStart=o,e.selectionEnd=Math.min(c,d))}}}),oa(t)==null&&e.value&&(s(ma(e)?ya(e.value):e.value),G!==null&&a.add(G)),Ba(()=>{var r=t();if(e===document.activeElement){var n=G;if(a.has(n))return}ma(e)&&r===ya(e.value)||e.type==="date"&&!r&&!e.value||r!==e.value&&(e.value=r??"")})}function ma(e){var t=e.type;return t==="number"||t==="range"}function ya(e){return e===""?null:+e}function ba(e,t){return e===t||e?.[It]===t}function tl(e={},t,s,a){var r=Le.r,n=J;return Xr(()=>{var o,c;return Ba(()=>{o=c,c=[],oa(()=>{ba(s(...c),e)||(t(e,...c),o&&ba(s(...o),e)&&t(null,...o))})}),()=>{let l=n;for(;l!==r&&l.parent!==null&&l.parent.f&xa;)l=l.parent;const d=()=>{c&&ba(s(...c),e)&&t(null,...c)},h=l.teardown;l.teardown=()=>{d(),h?.()}}}),e}function oe(e,t,s,a){var r=!0,n=(s&Wn)!==0,o=(s&Yn)!==0,c=a,l=!0,d=void 0,h=()=>o&&r?(d??(d=xs(a)),i(d)):(l&&(l=!1,c=o?oa(a):a),c);let v;if(n){var u=It in e||zn in e;v=es(e,t)?.set??(u&&t in e?F=>e[t]=F:void 0)}var m,y=!1;n?[m,y]=ri(()=>e[t]):m=e[t],m===void 0&&a!==void 0&&(m=h(),v&&(Dn(),v(m)));var w;if(w=()=>{var F=e[t];return F===void 0?h():(l=!0,F)},(s&Gn)===0)return w;if(v){var p=e.$$legacy;return(function(F,L){return arguments.length>0?((!L||p||y)&&v(L?w():F),F):w()})}var b=!1,E=((s&Un)!==0?xs:Dr)(()=>(b=!1,w()));n&&i(E);var T=J;return(function(F,L){if(arguments.length>0){const x=L?i(E):n?$e(F):F;return q(E,x),b=!0,c!==void 0&&(c=x),F}return gt&&b||(T.f&Ge)!==0?E.v:i(E)})}const sl="5";var gr;typeof window<"u"&&((gr=window.__svelte??(window.__svelte={})).v??(gr.v=new Set)).add(sl);const At=typeof window<"u"&&window.slashedBricksApp?window.slashedBricksApp:{defaults:{},settings:{},tabs:{},rest:{url:"",nonce:""}},ae={defaults:At.defaults||{},tabs:At.tabs||{},rest:At.rest||{url:"",nonce:""},inventory:At.inventory||{variables:[],sf_classes:[],is_classes:[]},pluginSettings:At.pluginSettings||{},versions:At.versions||{plugin:"",framework:""}},W=$e(structuredClone(At.settings||{})),B=$e({activeTab:al(ae.tabs)||"colors",dirty:!1,saving:!1,lastSavedAt:null,error:""});function al(e){for(const t in e)return t;return null}function Wa(){B.dirty=!0,B.error=""}function fr(e){W[e]&&delete W[e]}function Ss(e,t,s){W[e]||(W[e]={}),s===""||s===null||s===void 0||typeof s=="string"&&s.trim()===""?delete W[e][t]:W[e][t]=String(s),Wa()}var rl=P(''),nl=P('');function il(e,t){de(t,!0);var s=nl();Q(s,21,()=>Object.entries(ae.tabs),([a,r])=>a,(a,r)=>{var n=O(()=>Je(i(r),2));let o=()=>i(n)[0],c=()=>i(n)[1];var l=rl();let d;var h=f(l);V(()=>{d=Tt(l,1,"tab-nav__btn svelte-yyiz68",null,d,{active:B.activeTab===o()}),M(h,c())}),ce("click",l,()=>B.activeTab=o()),$(a,l)}),$(e,s),fe()}Re(["click"]);var ll=P(' '),ol=P(' ',1),cl=P(''),dl=P('
');function Ls(e,t){de(t,!0);let s=oe(t,"hexHint",3,""),a=oe(t,"rawHint",3,""),r=oe(t,"cssVar",3,"");const n=/^#([0-9a-fA-F]{3,4}|[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$/,o=(()=>{const R=(W.colors?.[t.storeKey]??"").trim(),k=R===""||n.test(R);return{mode:k?"hex":"raw",hex:k?R:"",raw:k?"":R}})();let c=Z($e(o.mode)),l=Z($e(o.hex)),d=Z($e(o.raw));function h(){W.colors||(W.colors={});const R=i(d).trim(),k=i(l).trim(),S=i(c)==="raw"?R:k;S===""?delete W.colors[t.storeKey]:W.colors[t.storeKey]=S,Wa()}function v(){i(c)==="hex"?(q(c,"raw"),q(l,"")):(q(c,"hex"),q(d,"")),h()}const u=O(()=>(i(c)==="raw"?i(d):i(l))||s()||"transparent");var m=dl(),y=f(m),w=f(y),p=f(w),b=g(w,2);{var E=R=>{var k=ll(),S=f(k);V(()=>M(S,r())),$(R,k)};ne(b,R=>{r()&&R(E)})}var T=g(y,2),F=f(T);let L;var x=g(F,2);{var j=R=>{var k=ol(),S=_t(k),D=g(S,2);V(()=>{Y(S,"id",t.storeKey),Y(D,"placeholder",s())}),ce("input",S,h),ht(S,()=>i(l),I=>q(l,I)),ce("input",D,h),ht(D,()=>i(l),I=>q(l,I)),$(R,k)},A=R=>{var k=cl();V(()=>{Y(k,"id",t.storeKey),Y(k,"placeholder",a())}),ce("input",k,h),ht(k,()=>i(d),S=>q(d,S)),$(R,k)};ne(x,R=>{i(c)==="hex"?R(j):R(A,-1)})}var C=g(x,2),z=f(C);V(()=>{Y(w,"for",t.storeKey),M(p,t.label),L=Ee(F,"",L,{background:i(u)}),M(z,i(c)==="hex"?"Advanced (oklch / raw)":"Use HEX picker")}),ce("click",C,v),$(e,m),fe()}Re(["input","click"]);var fl=P('
'),ul=P('
');function ca(e,t){de(t,!0);let s=Z(!1);const a=`adv-body-${Math.random().toString(36).slice(2,9)}`;var r=ul(),n=f(r),o=g(f(n));let c;var l=f(o),d=g(n,2);{var h=v=>{var u=fl(),m=f(u);fn(m,()=>t.children),V(()=>Y(u,"id",a)),$(v,u)};ne(d,v=>{i(s)&&v(h)})}V(()=>{Y(n,"aria-expanded",i(s)),Y(n,"aria-controls",a),c=Tt(o,1,"advanced-section__arrow",null,c,{open:i(s)}),M(l,i(s)?"▲":"▼")}),ce("click",n,()=>q(s,!i(s))),$(e,r),fe()}Re(["click"]);var vl=P(`

Status Colors — Light Mode

Brand Colors — Dark Mode

Optional overrides for dark mode. Leave empty to let the framework auto-derive +var Sn=Object.defineProperty;var sr=e=>{throw TypeError(e)};var En=(e,t,s)=>t in e?Sn(e,t,{enumerable:!0,configurable:!0,writable:!0,value:s}):e[t]=s;var Ve=(e,t,s)=>En(e,typeof t!="symbol"?t+"":t,s),ya=(e,t,s)=>t.has(e)||sr("Cannot "+s);var g=(e,t,s)=>(ya(e,t,"read from private field"),s?s.call(e):t.get(e)),Z=(e,t,s)=>t.has(e)?sr("Cannot add the same private member more than once"):t instanceof WeakSet?t.add(e):t.set(e,s),X=(e,t,s,a)=>(ya(e,t,"write to private field"),a?a.call(e,s):t.set(e,s),s),ie=(e,t,s)=>(ya(e,t,"access private method"),s);var Na=Array.isArray,jn=Array.prototype.indexOf,Yt=Array.prototype.includes,fa=Array.from,Tn=Object.defineProperty,ds=Object.getOwnPropertyDescriptor,$n=Object.getOwnPropertyDescriptors,zn=Object.prototype,Cn=Array.prototype,Er=Object.getPrototypeOf,ar=Object.isExtensible;const jr=()=>{};function An(e){for(var t=0;t{e=a,t=r});return{promise:s,resolve:e,reject:t}}function lt(e,t){if(Array.isArray(e))return e;if(t===void 0||!(Symbol.iterator in e))return Array.from(e);const s=[];for(const a of e)if(s.push(a),s.length===t)break;return s}const Me=2,ms=4,ua=8,$r=1<<24,ot=16,vt=32,Lt=64,Ta=128,tt=512,Ce=1024,Re=2048,yt=4096,Pe=8192,st=16384,ns=32768,$a=1<<25,ts=65536,Qs=1<<17,Fn=1<<18,xs=1<<19,Rn=1<<20,mt=1<<25,ss=65536,ea=1<<21,fs=1<<22,Pt=1<<23,Xt=Symbol("$state"),Mn=Symbol("legacy props"),On=Symbol(""),Us=Symbol("attributes"),za=Symbol("class"),Ca=Symbol("style"),Es=Symbol("text"),Gs=Symbol("form reset"),va=new class extends Error{constructor(){super(...arguments);Ve(this,"name","StaleReactionError");Ve(this,"message","The reaction that called `getAbortSignal()` was re-run or destroyed")}},Dn=!!globalThis.document?.contentType&&globalThis.document.contentType.includes("xml");function Pn(){throw new Error("https://svelte.dev/e/async_derived_orphan")}function Ln(e,t,s){throw new Error("https://svelte.dev/e/each_key_duplicate")}function Vn(e){throw new Error("https://svelte.dev/e/effect_in_teardown")}function In(){throw new Error("https://svelte.dev/e/effect_in_unowned_derived")}function qn(e){throw new Error("https://svelte.dev/e/effect_orphan")}function Nn(){throw new Error("https://svelte.dev/e/effect_update_depth_exceeded")}function Bn(e){throw new Error("https://svelte.dev/e/props_invalid_value")}function Kn(){throw new Error("https://svelte.dev/e/state_descriptors_fixed")}function Hn(){throw new Error("https://svelte.dev/e/state_prototype_fixed")}function Un(){throw new Error("https://svelte.dev/e/state_unsafe_mutation")}function Gn(){throw new Error("https://svelte.dev/e/svelte_boundary_reset_onerror")}const Wn=1,Yn=2,zr=4,Xn=8,Zn=16,Jn=1,Qn=4,ei=8,ti=16,si=1,ai=2,ze=Symbol("uninitialized"),Cr="http://www.w3.org/1999/xhtml";function ri(){console.warn("https://svelte.dev/e/derived_inert")}function ni(){console.warn("https://svelte.dev/e/select_multiple_invalid_value")}function ii(){console.warn("https://svelte.dev/e/svelte_boundary_reset_noop")}function Ar(e){return e===this.v}function li(e,t){return e!=e?t==t:e!==t||e!==null&&typeof e=="object"||typeof e=="function"}function Fr(e){return!li(e,this.v)}let Ye=null;function ys(e){Ye=e}function ye(e,t=!1,s){Ye={p:Ye,i:!1,c:null,e:null,s:e,x:null,r:ae,l:null}}function be(e){var t=Ye,s=t.e;if(s!==null){t.e=null;for(var a of s)sn(a)}return t.i=!0,Ye=t.p,{}}function Rr(){return!0}let It=[];function Mr(){var e=It;It=[],An(e)}function Zt(e){if(It.length===0&&!$s){var t=It;queueMicrotask(()=>{t===It&&Mr()})}It.push(e)}function oi(){for(;It.length>0;)Mr()}function Or(e){var t=ae;if(t===null)return te.f|=Pt,e;if((t.f&ns)===0&&(t.f&ms)===0)throw e;Dt(e,t)}function Dt(e,t){for(;t!==null;){if((t.f&Ta)!==0){if((t.f&ns)===0)throw e;try{t.b.error(e);return}catch(s){e=s}}t=t.parent}throw e}const ci=-7169;function ke(e,t){e.f=e.f&ci|t}function Ba(e){(e.f&tt)!==0||e.deps===null?ke(e,Ce):ke(e,yt)}function Dr(e){if(e!==null)for(const t of e)(t.f&Me)===0||(t.f&ss)===0||(t.f^=ss,Dr(t.deps))}function Pr(e,t,s){(e.f&Re)!==0?t.add(e):(e.f&yt)!==0&&s.add(e),Dr(e.deps),ke(e,Ce)}let Ns=!1;function di(e){var t=Ns;try{return Ns=!1,[e(),Ns]}finally{Ns=t}}let ba=null,is=null,J=null,Aa=null,ct=null,Fa=null,$s=!1,wa=!1,cs=null,Ws=null;var rr=0;let fi=1;var us,Rt,Bt,vs,ps,Kt,hs,St,Ms,Ue,Os,Mt,ht,_t,_s,Ht,ce,Ra,js,Ma,Lr,Vr,Ys,ui,Oa,os;const oa=class oa{constructor(){Z(this,ce);Ve(this,"id",fi++);Z(this,us,!1);Ve(this,"linked",!0);Z(this,Rt,null);Z(this,Bt,null);Ve(this,"async_deriveds",new Map);Ve(this,"current",new Map);Ve(this,"previous",new Map);Ve(this,"unblocked",new Set);Z(this,vs,new Set);Z(this,ps,new Set);Z(this,Kt,new Set);Z(this,hs,0);Z(this,St,new Map);Z(this,Ms,null);Z(this,Ue,[]);Z(this,Os,[]);Z(this,Mt,new Set);Z(this,ht,new Set);Z(this,_t,new Map);Z(this,_s,new Set);Ve(this,"is_fork",!1);Z(this,Ht,!1)}skip_effect(t){g(this,_t).has(t)||g(this,_t).set(t,{d:[],m:[]}),g(this,_s).delete(t)}unskip_effect(t,s=a=>this.schedule(a)){var a=g(this,_t).get(t);if(a){g(this,_t).delete(t);for(var r of a.d)ke(r,Re),s(r);for(r of a.m)ke(r,yt),s(r)}g(this,_s).add(t)}capture(t,s,a=!1){t.v!==ze&&!this.previous.has(t)&&this.previous.set(t,t.v),(t.f&Pt)===0&&(this.current.set(t,[s,a]),ct?.set(t,s)),this.is_fork||(t.v=s)}activate(){J=this}deactivate(){J=null,ct=null}flush(){try{wa=!0,J=this,ie(this,ce,js).call(this)}finally{rr=0,Fa=null,cs=null,Ws=null,wa=!1,J=null,ct=null,Jt.clear()}}discard(){for(const t of g(this,ps))t(this);g(this,ps).clear(),g(this,Kt).clear(),ie(this,ce,os).call(this)}register_created_effect(t){g(this,Os).push(t)}increment(t,s){if(X(this,hs,g(this,hs)+1),t){let a=g(this,St).get(s)??0;g(this,St).set(s,a+1)}}decrement(t,s){if(X(this,hs,g(this,hs)-1),t){let a=g(this,St).get(s)??0;a===1?g(this,St).delete(s):g(this,St).set(s,a-1)}g(this,Ht)||(X(this,Ht,!0),Zt(()=>{X(this,Ht,!1),this.linked&&this.flush()}))}transfer_effects(t,s){for(const a of t)g(this,Mt).add(a);for(const a of s)g(this,ht).add(a);t.clear(),s.clear()}oncommit(t){g(this,vs).add(t)}ondiscard(t){g(this,ps).add(t)}on_fork_commit(t){g(this,Kt).add(t)}run_fork_commit_callbacks(){for(const t of g(this,Kt))t(this);g(this,Kt).clear()}settled(){return(g(this,Ms)??X(this,Ms,Tr())).promise}static ensure(){var t;if(J===null){const s=J=new oa;ie(t=s,ce,Oa).call(t),!wa&&!$s&&Zt(()=>{g(s,us)||s.flush()})}return J}apply(){{ct=null;return}}schedule(t){if(Fa=t,t.b?.is_pending&&(t.f&(ms|ua|$r))!==0&&(t.f&ns)===0){t.b.defer_effect(t);return}for(var s=t;s.parent!==null;){s=s.parent;var a=s.f;if(cs!==null&&s===ae&&(te===null||(te.f&Me)===0))return;if((a&(Lt|vt))!==0){if((a&Ce)===0)return;s.f^=Ce}}g(this,Ue).push(s)}};us=new WeakMap,Rt=new WeakMap,Bt=new WeakMap,vs=new WeakMap,ps=new WeakMap,Kt=new WeakMap,hs=new WeakMap,St=new WeakMap,Ms=new WeakMap,Ue=new WeakMap,Os=new WeakMap,Mt=new WeakMap,ht=new WeakMap,_t=new WeakMap,_s=new WeakMap,Ht=new WeakMap,ce=new WeakSet,Ra=function(){if(this.is_fork)return!0;for(const a of g(this,St).keys()){for(var t=a,s=!1;t.parent!==null;){if(g(this,_t).has(t)){s=!0;break}t=t.parent}if(!s)return!0}return!1},js=function(){var o,d,_;if(X(this,us,!0),rr++>1e3&&(ie(this,ce,os).call(this),pi()),!ie(this,ce,Ra).call(this)){for(const u of g(this,Mt))g(this,ht).delete(u),ke(u,Re),this.schedule(u);for(const u of g(this,ht))ke(u,yt),this.schedule(u)}const t=g(this,Ue);X(this,Ue,[]),this.apply();var s=cs=[],a=[],r=Ws=[];for(const u of t)try{ie(this,ce,Ma).call(this,u,s,a)}catch(v){throw Nr(u),v}if(J=null,r.length>0){var n=oa.ensure();for(const u of r)n.schedule(u)}if(cs=null,Ws=null,ie(this,ce,Ra).call(this)){ie(this,ce,Ys).call(this,a),ie(this,ce,Ys).call(this,s);for(const[u,v]of g(this,_t))qr(u,v);r.length>0&&ie(o=J,ce,js).call(o);return}const c=ie(this,ce,Lr).call(this);if(c){ie(d=c,ce,Vr).call(d,this);return}g(this,Mt).clear(),g(this,ht).clear();for(const u of g(this,vs))u(this);g(this,vs).clear(),Aa=this,nr(a),nr(s),Aa=null,g(this,Ms)?.resolve();var l=J;if(this.linked&&g(this,hs)===0&&ie(this,ce,os).call(this),g(this,Ue).length>0){l===null&&(l=this,ie(this,ce,Oa).call(this));const u=l;g(u,Ue).push(...g(this,Ue).filter(v=>!g(u,Ue).includes(v)))}l!==null&&ie(_=l,ce,js).call(_)},Ma=function(t,s,a){t.f^=Ce;for(var r=t.first;r!==null;){var n=r.f,c=(n&(vt|Lt))!==0,l=c&&(n&Ce)!==0,o=l||(n&Pe)!==0||g(this,_t).has(r);if(!o&&r.fn!==null){c?r.f^=Ce:(n&ms)!==0?s.push(r):qs(r)&&((n&ot)!==0&&g(this,ht).add(r),ws(r));var d=r.first;if(d!==null){r=d;continue}}for(;r!==null;){var _=r.next;if(_!==null){r=_;break}r=r.parent}}},Lr=function(){for(var t=g(this,Rt);t!==null;){if(!t.is_fork){for(const[s,[,a]]of this.current)if(t.current.has(s)&&!a)return t}t=g(t,Rt)}return null},Vr=function(t){var a;for(const[r,n]of t.current)!this.previous.has(r)&&t.previous.has(r)&&this.previous.set(r,t.previous.get(r)),this.current.set(r,n);for(const[r,n]of t.async_deriveds){const c=this.async_deriveds.get(r);c&&n.promise.then(c.resolve)}const s=r=>{var n=r.reactions;if(n!==null)for(const o of n){var c=o.f;if((c&Me)!==0)s(o);else{var l=o;c&(fs|ot)&&!this.async_deriveds.has(l)&&(g(this,ht).delete(l),ke(l,Re),this.schedule(l))}}};for(const r of this.current.keys())s(r);this.oncommit(()=>t.discard()),ie(a=t,ce,os).call(a),J=this,ie(this,ce,js).call(this)},Ys=function(t){for(var s=0;s!this.current.has(v));if(r.length===0)t&&u.discard();else if(s.length>0){if(t)for(const v of g(this,_s))u.unskip_effect(v,m=>{var y;(m.f&(ot|fs))!==0?u.schedule(m):ie(y=u,ce,Ys).call(y,[m])});u.activate();var n=new Set,c=new Map;for(var l of s)Ir(l,r,n,c);c=new Map;var o=[...u.current.keys()].filter(v=>this.current.has(v)?this.current.get(v)[0]!==v.v:!0);if(o.length>0)for(const v of g(this,Os))(v.f&(st|Pe|Qs))===0&&Ka(v,o,c)&&((v.f&(fs|ot))!==0?(ke(v,Re),u.schedule(v)):g(u,Mt).add(v));if(g(u,Ue).length>0&&!g(u,Ht)){u.apply();for(var d of g(u,Ue))ie(_=u,ce,Ma).call(_,d,[],[]);X(u,Ue,[])}u.deactivate()}}}},Oa=function(){is===null?ba=is=this:(X(is,Bt,this),X(this,Rt,is)),is=this},os=function(){var t=g(this,Rt),s=g(this,Bt);t===null?ba=s:X(t,Bt,s),s===null?is=t:X(s,Rt,t),this.linked=!1};let as=oa;function vi(e){var t=$s;$s=!0;try{for(var s;;){if(oi(),J===null)return s;J.flush()}}finally{$s=t}}function pi(){try{Nn()}catch(e){Dt(e,Fa)}}let kt=null;function nr(e){var t=e.length;if(t!==0){for(var s=0;s0)){Jt.clear();for(const r of kt){if((r.f&(st|Pe))!==0)continue;const n=[r];let c=r.parent;for(;c!==null;)kt.has(c)&&(kt.delete(c),n.push(c)),c=c.parent;for(let l=n.length-1;l>=0;l--){const o=n[l];(o.f&(st|Pe))===0&&ws(o)}}kt.clear()}}kt=null}}function Ir(e,t,s,a){if(!s.has(e)&&(s.add(e),e.reactions!==null))for(const r of e.reactions){const n=r.f;(n&Me)!==0?Ir(r,t,s,a):(n&(fs|ot))!==0&&(n&Re)===0&&Ka(r,t,a)&&(ke(r,Re),Ha(r))}}function Ka(e,t,s){const a=s.get(e);if(a!==void 0)return a;if(e.deps!==null)for(const r of e.deps){if(Yt.call(t,r))return!0;if((r.f&Me)!==0&&Ka(r,t,s))return s.set(r,!0),!0}return s.set(e,!1),!1}function Ha(e){J.schedule(e)}function qr(e,t){if(!((e.f&vt)!==0&&(e.f&Ce)!==0)){(e.f&Re)!==0?t.d.push(e):(e.f&yt)!==0&&t.m.push(e),ke(e,Ce);for(var s=e.first;s!==null;)qr(s,t),s=s.next}}function Nr(e){ke(e,Ce);for(var t=e.first;t!==null;)Nr(t),t=t.next}function hi(e){let t=0,s=rs(0),a;return()=>{Wa()&&(i(s),Ya(()=>(t===0&&(a=ha(()=>e(()=>zs(s)))),t+=1,()=>{Zt(()=>{t-=1,t===0&&(a?.(),a=void 0,zs(s))})})))}}var _i=ts|xs;function gi(e,t,s,a){new mi(e,t,s,a)}var Ze,qa,Je,Ut,Ie,Qe,De,Ge,Et,Gt,Ot,gs,Ds,Ps,jt,ca,Ee,yi,bi,wi,Da,Xs,Zs,Pa,La;class mi{constructor(t,s,a,r){Z(this,Ee);Ve(this,"parent");Ve(this,"is_pending",!1);Ve(this,"transform_error");Z(this,Ze);Z(this,qa,null);Z(this,Je);Z(this,Ut);Z(this,Ie);Z(this,Qe,null);Z(this,De,null);Z(this,Ge,null);Z(this,Et,null);Z(this,Gt,0);Z(this,Ot,0);Z(this,gs,!1);Z(this,Ds,new Set);Z(this,Ps,new Set);Z(this,jt,null);Z(this,ca,hi(()=>(X(this,jt,rs(g(this,Gt))),()=>{X(this,jt,null)})));X(this,Ze,t),X(this,Je,s),X(this,Ut,n=>{var c=ae;c.b=this,c.f|=Ta,a(n)}),this.parent=ae.b,this.transform_error=r??this.parent?.transform_error??(n=>n),X(this,Ie,pa(()=>{ie(this,Ee,Da).call(this)},_i))}defer_effect(t){Pr(t,g(this,Ds),g(this,Ps))}is_rendered(){return!this.is_pending&&(!this.parent||this.parent.is_rendered())}has_pending_snippet(){return!!g(this,Je).pending}update_pending_count(t,s){ie(this,Ee,Pa).call(this,t,s),X(this,Gt,g(this,Gt)+t),!(!g(this,jt)||g(this,gs))&&(X(this,gs,!0),Zt(()=>{X(this,gs,!1),g(this,jt)&&bs(g(this,jt),g(this,Gt))}))}get_effect_pending(){return g(this,ca).call(this),i(g(this,jt))}error(t){if(!g(this,Je).onerror&&!g(this,Je).failed)throw t;J?.is_fork?(g(this,Qe)&&J.skip_effect(g(this,Qe)),g(this,De)&&J.skip_effect(g(this,De)),g(this,Ge)&&J.skip_effect(g(this,Ge)),J.on_fork_commit(()=>{ie(this,Ee,La).call(this,t)})):ie(this,Ee,La).call(this,t)}}Ze=new WeakMap,qa=new WeakMap,Je=new WeakMap,Ut=new WeakMap,Ie=new WeakMap,Qe=new WeakMap,De=new WeakMap,Ge=new WeakMap,Et=new WeakMap,Gt=new WeakMap,Ot=new WeakMap,gs=new WeakMap,Ds=new WeakMap,Ps=new WeakMap,jt=new WeakMap,ca=new WeakMap,Ee=new WeakSet,yi=function(){try{X(this,Qe,et(()=>g(this,Ut).call(this,g(this,Ze))))}catch(t){this.error(t)}},bi=function(t){const s=g(this,Je).failed;s&&X(this,Ge,et(()=>{s(g(this,Ze),()=>t,()=>()=>{})}))},wi=function(){const t=g(this,Je).pending;t&&(this.is_pending=!0,X(this,De,et(()=>t(g(this,Ze)))),Zt(()=>{var s=X(this,Et,document.createDocumentFragment()),a=Tt();s.append(a),X(this,Qe,ie(this,Ee,Zs).call(this,()=>et(()=>g(this,Ut).call(this,a)))),g(this,Ot)===0&&(g(this,Ze).before(s),X(this,Et,null),Qt(g(this,De),()=>{X(this,De,null)}),ie(this,Ee,Xs).call(this,J))}))},Da=function(){try{if(this.is_pending=this.has_pending_snippet(),X(this,Ot,0),X(this,Gt,0),X(this,Qe,et(()=>{g(this,Ut).call(this,g(this,Ze))})),g(this,Ot)>0){var t=X(this,Et,document.createDocumentFragment());Ja(g(this,Qe),t);const s=g(this,Je).pending;X(this,De,et(()=>s(g(this,Ze))))}else ie(this,Ee,Xs).call(this,J)}catch(s){this.error(s)}},Xs=function(t){this.is_pending=!1,t.transfer_effects(g(this,Ds),g(this,Ps))},Zs=function(t){var s=ae,a=te,r=Ye;bt(g(this,Ie)),rt(g(this,Ie)),ys(g(this,Ie).ctx);try{return as.ensure(),t()}catch(n){return Or(n),null}finally{bt(s),rt(a),ys(r)}},Pa=function(t,s){var a;if(!this.has_pending_snippet()){this.parent&&ie(a=this.parent,Ee,Pa).call(a,t,s);return}X(this,Ot,g(this,Ot)+t),g(this,Ot)===0&&(ie(this,Ee,Xs).call(this,s),g(this,De)&&Qt(g(this,De),()=>{X(this,De,null)}),g(this,Et)&&(g(this,Ze).before(g(this,Et)),X(this,Et,null)))},La=function(t){g(this,Qe)&&(Be(g(this,Qe)),X(this,Qe,null)),g(this,De)&&(Be(g(this,De)),X(this,De,null)),g(this,Ge)&&(Be(g(this,Ge)),X(this,Ge,null));var s=g(this,Je).onerror;let a=g(this,Je).failed;var r=!1,n=!1;const c=()=>{if(r){ii();return}r=!0,n&&Gn(),g(this,Ge)!==null&&Qt(g(this,Ge),()=>{X(this,Ge,null)}),ie(this,Ee,Zs).call(this,()=>{ie(this,Ee,Da).call(this)})},l=o=>{try{n=!0,s?.(o,c),n=!1}catch(d){Dt(d,g(this,Ie)&&g(this,Ie).parent)}a&&X(this,Ge,ie(this,Ee,Zs).call(this,()=>{try{return et(()=>{var d=ae;d.b=this,d.f|=Ta,a(g(this,Ze),()=>o,()=>c)})}catch(d){return Dt(d,g(this,Ie).parent),null}}))};Zt(()=>{var o;try{o=this.transform_error(t)}catch(d){Dt(d,g(this,Ie)&&g(this,Ie).parent);return}o!==null&&typeof o=="object"&&typeof o.then=="function"?o.then(l,d=>Dt(d,g(this,Ie)&&g(this,Ie).parent)):l(o)})};function xi(e,t,s,a){const r=As;var n=e.filter(v=>!v.settled);if(s.length===0&&n.length===0){a(t.map(r));return}var c=ae,l=ki(),o=n.length===1?n[0].promise:n.length>1?Promise.all(n.map(v=>v.promise)):null;function d(v){if((c.f&st)===0){l();try{a(v)}catch(m){Dt(m,c)}ta()}}var _=Br();if(s.length===0){o.then(()=>d(t.map(r))).finally(_);return}function u(){Promise.all(s.map(v=>Si(v))).then(v=>d([...t.map(r),...v])).catch(v=>Dt(v,c)).finally(_)}o?o.then(()=>{l(),u(),ta()}):u()}function ki(){var e=ae,t=te,s=Ye,a=J;return function(n=!0){bt(e),rt(t),ys(s),n&&(e.f&st)===0&&(a?.activate(),a?.apply())}}function ta(e=!0){bt(null),rt(null),ys(null),e&&J?.deactivate()}function Br(){var e=ae,t=e.b,s=J,a=t.is_rendered();return t.update_pending_count(1,s),s.increment(a,e),()=>{t.update_pending_count(-1,s),s.decrement(a,e)}}function As(e){var t=Me|Re;return ae!==null&&(ae.f|=xs),{ctx:Ye,deps:null,effects:null,equals:Ar,f:t,fn:e,reactions:null,rv:0,v:ze,wv:0,parent:ae,ac:null}}const Bs=Symbol("obsolete");function Si(e,t,s){let a=ae;a===null&&Pn();var r=void 0,n=rs(ze),c=!te,l=new Set;return Pi(()=>{var o=ae,d=Tr();r=d.promise;try{Promise.resolve(e()).then(d.resolve,m=>{m!==va&&d.reject(m)}).finally(ta)}catch(m){d.reject(m),ta()}var _=J;if(c){if((o.f&ns)!==0)var u=Br();if(a.b.is_rendered())_.async_deriveds.get(o)?.reject(Bs);else for(const m of l.values())m.reject(Bs);l.add(d),_.async_deriveds.set(o,d)}const v=(m,y=void 0)=>{u?.(),l.delete(d),y!==Bs&&(_.activate(),y?(n.f|=Pt,bs(n,y)):((n.f&Pt)!==0&&(n.f^=Pt),bs(n,m)),_.deactivate())};d.promise.then(v,m=>v(null,m||"unknown"))}),en(()=>{for(const o of l)o.reject(Bs)}),new Promise(o=>{function d(_){function u(){_===r?o(n):d(r)}_.then(u,u)}d(r)})}function E(e){const t=As(e);return cn(t),t}function Kr(e){const t=As(e);return t.equals=Fr,t}function Ei(e){var t=e.effects;if(t!==null){e.effects=null;for(var s=0;s0&&!Gr&&$i()}return t}function $i(){Gr=!1;for(const e of sa){(e.f&Ce)!==0&&ke(e,yt);let t;try{t=qs(e)}catch{t=!0}t&&ws(e)}sa.clear()}function zs(e){K(e,e.v+1)}function Wr(e,t,s){var a=e.reactions;if(a!==null)for(var r=a.length,n=0;n{if(es===n)return l();var o=te,d=es;rt(null),dr(n);var _=l();return rt(o),dr(d),_};return a&&s.set("length",se(e.length)),new Proxy(e,{defineProperty(l,o,d){(!("value"in d)||d.configurable===!1||d.enumerable===!1||d.writable===!1)&&Kn();var _=s.get(o);return _===void 0?c(()=>{var u=se(d.value);return s.set(o,u),u}):K(_,d.value,!0),!0},deleteProperty(l,o){var d=s.get(o);if(d===void 0){if(o in l){const _=c(()=>se(ze));s.set(o,_),zs(r)}}else K(d,ze),zs(r);return!0},get(l,o,d){if(o===Xt)return e;var _=s.get(o),u=o in l;if(_===void 0&&(!u||ds(l,o)?.writable)&&(_=c(()=>{var m=Ne(u?l[o]:ze),y=se(m);return y}),s.set(o,_)),_!==void 0){var v=i(_);return v===ze?void 0:v}return Reflect.get(l,o,d)},getOwnPropertyDescriptor(l,o){var d=Reflect.getOwnPropertyDescriptor(l,o);if(d&&"value"in d){var _=s.get(o);_&&(d.value=i(_))}else if(d===void 0){var u=s.get(o),v=u?.v;if(u!==void 0&&v!==ze)return{enumerable:!0,configurable:!0,value:v,writable:!0}}return d},has(l,o){if(o===Xt)return!0;var d=s.get(o),_=d!==void 0&&d.v!==ze||Reflect.has(l,o);if(d!==void 0||ae!==null&&(!_||ds(l,o)?.writable)){d===void 0&&(d=c(()=>{var v=_?Ne(l[o]):ze,m=se(v);return m}),s.set(o,d));var u=i(d);if(u===ze)return!1}return _},set(l,o,d,_){var u=s.get(o),v=o in l;if(a&&o==="length")for(var m=d;mse(ze)),s.set(m+"",y))}if(u===void 0)(!v||ds(l,o)?.writable)&&(u=c(()=>se(void 0)),K(u,Ne(d)),s.set(o,u));else{v=u.v!==ze;var w=c(()=>Ne(d));K(u,w)}var h=Reflect.getOwnPropertyDescriptor(l,o);if(h?.set&&h.set.call(_,d),!v){if(a&&typeof o=="string"){var b=s.get("length"),k=Number(o);Number.isInteger(k)&&k>=b.v&&K(b,k+1)}zs(r)}return!0},ownKeys(l){i(r);var o=Reflect.ownKeys(l).filter(u=>{var v=s.get(u);return v===void 0||v.v!==ze});for(var[d,_]of s)_.v!==ze&&!(d in l)&&o.push(d);return o},setPrototypeOf(){Hn()}})}function ir(e){try{if(e!==null&&typeof e=="object"&&Xt in e)return e[Xt]}catch{}return e}function zi(e,t){return Object.is(ir(e),ir(t))}var lr,Yr,Xr,Zr;function Ci(){if(lr===void 0){lr=window,Yr=/Firefox/.test(navigator.userAgent);var e=Element.prototype,t=Node.prototype,s=Text.prototype;Xr=ds(t,"firstChild").get,Zr=ds(t,"nextSibling").get,ar(e)&&(e[za]=void 0,e[Us]=null,e[Ca]=void 0,e.__e=void 0),ar(s)&&(s[Es]=void 0)}}function Tt(e=""){return document.createTextNode(e)}function aa(e){return Xr.call(e)}function Is(e){return Zr.call(e)}function f(e,t){return aa(e)}function zt(e,t=!1){{var s=aa(e);return s instanceof Comment&&s.data===""?Is(s):s}}function p(e,t=1,s=!1){let a=e;for(;t--;)a=Is(a);return a}function Ai(e){e.textContent=""}function Jr(){return!1}function Fi(e,t,s){return document.createElementNS(Cr,e,void 0)}let or=!1;function Ri(){or||(or=!0,document.addEventListener("reset",e=>{Promise.resolve().then(()=>{if(!e.defaultPrevented)for(const t of e.target.elements)t[Gs]?.()})},{capture:!0}))}function Ga(e){var t=te,s=ae;rt(null),bt(null);try{return e()}finally{rt(t),bt(s)}}function Qr(e,t,s,a=s){e.addEventListener(t,()=>Ga(s));const r=e[Gs];r?e[Gs]=()=>{r(),a(!0)}:e[Gs]=()=>a(!0),Ri()}function Mi(e){ae===null&&(te===null&&qn(),In()),Ct&&Vn()}function Oi(e,t){var s=t.last;s===null?t.last=t.first=e:(s.next=e,e.prev=s,t.last=e)}function At(e,t){var s=ae;s!==null&&(s.f&Pe)!==0&&(e|=Pe);var a={ctx:Ye,deps:null,nodes:null,f:e|Re|tt,first:null,fn:t,last:null,next:null,parent:s,b:s&&s.b,prev:null,teardown:null,wv:0,ac:null};J?.register_created_effect(a);var r=a;if((e&ms)!==0)cs!==null?cs.push(a):as.ensure().schedule(a);else if(t!==null){try{ws(a)}catch(c){throw Be(a),c}r.deps===null&&r.teardown===null&&r.nodes===null&&r.first===r.last&&(r.f&xs)===0&&(r=r.first,(e&ot)!==0&&(e&ts)!==0&&r!==null&&(r.f|=ts))}if(r!==null&&(r.parent=s,s!==null&&Oi(r,s),te!==null&&(te.f&Me)!==0&&(e&Lt)===0)){var n=te;(n.effects??(n.effects=[])).push(r)}return a}function Wa(){return te!==null&&!dt}function en(e){const t=At(ua,null);return ke(t,Ce),t.teardown=e,t}function tn(e){Mi();var t=ae.f,s=!te&&(t&vt)!==0&&(t&ns)===0;if(s){var a=Ye;(a.e??(a.e=[])).push(e)}else return sn(e)}function sn(e){return At(ms|Rn,e)}function Di(e){as.ensure();const t=At(Lt|xs,e);return(s={})=>new Promise(a=>{s.outro?Qt(t,()=>{Be(t),a(void 0)}):(Be(t),a(void 0))})}function an(e){return At(ms,e)}function Pi(e){return At(fs|xs,e)}function Ya(e,t=0){return At(ua|t,e)}function q(e,t=[],s=[],a=[]){xi(a,t,s,r=>{At(ua,()=>e(...r.map(i)))})}function pa(e,t=0){var s=At(ot|t,e);return s}function et(e){return At(vt|xs,e)}function rn(e){var t=e.teardown;if(t!==null){const s=Ct,a=te;cr(!0),rt(null);try{t.call(null)}finally{cr(s),rt(a)}}}function Xa(e,t=!1){var s=e.first;for(e.first=e.last=null;s!==null;){const r=s.ac;r!==null&&Ga(()=>{r.abort(va)});var a=s.next;(s.f&Lt)!==0?s.parent=null:Be(s,t),s=a}}function Li(e){for(var t=e.first;t!==null;){var s=t.next;(t.f&vt)===0&&Be(t),t=s}}function Be(e,t=!0){var s=!1;(t||(e.f&Fn)!==0)&&e.nodes!==null&&e.nodes.end!==null&&(Vi(e.nodes.start,e.nodes.end),s=!0),ke(e,$a),Xa(e,t&&!s),Fs(e,0);var a=e.nodes&&e.nodes.t;if(a!==null)for(const n of a)n.stop();rn(e),e.f^=$a,e.f|=st;var r=e.parent;r!==null&&r.first!==null&&nn(e),e.next=e.prev=e.teardown=e.ctx=e.deps=e.fn=e.nodes=e.ac=e.b=null}function Vi(e,t){for(;e!==null;){var s=e===t?null:Is(e);e.remove(),e=s}}function nn(e){var t=e.parent,s=e.prev,a=e.next;s!==null&&(s.next=a),a!==null&&(a.prev=s),t!==null&&(t.first===e&&(t.first=a),t.last===e&&(t.last=s))}function Qt(e,t,s=!0){var a=[];ln(e,a,!0);var r=()=>{s&&Be(e),t&&t()},n=a.length;if(n>0){var c=()=>--n||r();for(var l of a)l.out(c)}else r()}function ln(e,t,s){if((e.f&Pe)===0){e.f^=Pe;var a=e.nodes&&e.nodes.t;if(a!==null)for(const l of a)(l.is_global||s)&&t.push(l);for(var r=e.first;r!==null;){var n=r.next;if((r.f&Lt)===0){var c=(r.f&ts)!==0||(r.f&vt)!==0&&(e.f&ot)!==0;ln(r,t,c?s:!1)}r=n}}}function Za(e){on(e,!0)}function on(e,t){if((e.f&Pe)!==0){e.f^=Pe,(e.f&Ce)===0&&(ke(e,Re),as.ensure().schedule(e));for(var s=e.first;s!==null;){var a=s.next,r=(s.f&ts)!==0||(s.f&vt)!==0;on(s,r?t:!1),s=a}var n=e.nodes&&e.nodes.t;if(n!==null)for(const c of n)(c.is_global||t)&&c.in()}}function Ja(e,t){if(e.nodes)for(var s=e.nodes.start,a=e.nodes.end;s!==null;){var r=s===a?null:Is(s);t.append(s),s=r}}let Js=!1,Ct=!1;function cr(e){Ct=e}let te=null,dt=!1;function rt(e){te=e}let ae=null;function bt(e){ae=e}let at=null;function cn(e){te!==null&&(at===null?at=[e]:at.push(e))}let qe=null,He=0,Xe=null;function Ii(e){Xe=e}let dn=1,qt=0,es=qt;function dr(e){es=e}function fn(){return++dn}function qs(e){var t=e.f;if((t&Re)!==0)return!0;if(t&Me&&(e.f&=~ss),(t&yt)!==0){for(var s=e.deps,a=s.length,r=0;re.wv)return!0}(t&tt)!==0&&ct===null&&ke(e,Ce)}return!1}function un(e,t,s=!0){var a=e.reactions;if(a!==null&&!(at!==null&&Yt.call(at,e)))for(var r=0;r{e.ac.abort(va)}),e.ac=null);try{e.f|=ea;var _=e.fn,u=_();e.f|=ns;var v=e.deps,m=J?.is_fork;if(qe!==null){var y;if(m||Fs(e,He),v!==null&&He>0)for(v.length=He+qe.length,y=0;y{throw h});throw v}}finally{e[Nt]=t,delete e.currentTarget,rt(_),bt(u)}}}const Hi=globalThis?.window?.trustedTypes&&globalThis.window.trustedTypes.createPolicy("svelte-trusted-html",{createHTML:e=>e});function Ui(e){return Hi?.createHTML(e)??e}function Gi(e){var t=Fi("template");return t.innerHTML=Ui(e.replaceAll("","")),t.content}function ra(e,t){var s=ae;s.nodes===null&&(s.nodes={start:e,end:t,a:null,t:null})}function A(e,t){var s=(t&si)!==0,a=(t&ai)!==0,r,n=!e.startsWith("");return()=>{r===void 0&&(r=Gi(n?e:""+e),s||(r=aa(r)));var c=a||Yr?document.importNode(r,!0):r.cloneNode(!0);if(s){var l=aa(c),o=c.lastChild;ra(l,o)}else ra(c,c);return c}}function Wi(e=""){{var t=Tt(e+"");return ra(t,t),t}}function vr(){var e=document.createDocumentFragment(),t=document.createComment(""),s=Tt();return e.append(t,s),ra(t,s),e}function z(e,t){e!==null&&e.before(t)}function C(e,t){var s=t==null?"":typeof t=="object"?`${t}`:t;s!==(e[Es]??(e[Es]=e.nodeValue))&&(e[Es]=s,e.nodeValue=`${s}`)}function Yi(e,t){return Xi(e,t)}const Ks=new Map;function Xi(e,{target:t,anchor:s,props:a={},events:r,context:n,intro:c=!0,transformError:l}){Ci();var o=void 0,d=Di(()=>{var _=s??t.appendChild(Tt());gi(_,{pending:()=>{}},m=>{ye({});var y=Ye;n&&(y.c=n),r&&(a.$$events=r),o=e(m,a)||{},be()},l);var u=new Set,v=m=>{for(var y=0;y{for(var m of u)for(const h of[t,document]){var y=Ks.get(h),w=y.get(m);--w==0?(h.removeEventListener(m,ur),y.delete(m),y.size===0&&Ks.delete(h)):y.set(m,w)}Va.delete(v),_!==s&&_.parentNode?.removeChild(_)}});return Zi.set(o,d),o}let Zi=new WeakMap;var it,gt,We,Wt,Ls,Vs,da;class gn{constructor(t,s=!0){Ve(this,"anchor");Z(this,it,new Map);Z(this,gt,new Map);Z(this,We,new Map);Z(this,Wt,new Set);Z(this,Ls,!0);Z(this,Vs,t=>{if(g(this,it).has(t)){var s=g(this,it).get(t),a=g(this,gt).get(s);if(a)Za(a),g(this,Wt).delete(s);else{var r=g(this,We).get(s);r&&(g(this,gt).set(s,r.effect),g(this,We).delete(s),r.fragment.lastChild.remove(),this.anchor.before(r.fragment),a=r.effect)}for(const[n,c]of g(this,it)){if(g(this,it).delete(n),n===t)break;const l=g(this,We).get(c);l&&(Be(l.effect),g(this,We).delete(c))}for(const[n,c]of g(this,gt)){if(n===s||g(this,Wt).has(n))continue;const l=()=>{if(Array.from(g(this,it).values()).includes(n)){var d=document.createDocumentFragment();Ja(c,d),d.append(Tt()),g(this,We).set(n,{effect:c,fragment:d})}else Be(c);g(this,Wt).delete(n),g(this,gt).delete(n)};g(this,Ls)||!a?(g(this,Wt).add(n),Qt(c,l,!1)):l()}}});Z(this,da,t=>{g(this,it).delete(t);const s=Array.from(g(this,it).values());for(const[a,r]of g(this,We))s.includes(a)||(Be(r.effect),g(this,We).delete(a))});this.anchor=t,X(this,Ls,s)}ensure(t,s){var a=J,r=Jr();if(s&&!g(this,gt).has(t)&&!g(this,We).has(t))if(r){var n=document.createDocumentFragment(),c=Tt();n.append(c),g(this,We).set(t,{effect:et(()=>s(c)),fragment:n})}else g(this,gt).set(t,et(()=>s(this.anchor)));if(g(this,it).set(a,t),r){for(const[l,o]of g(this,gt))l===t?a.unskip_effect(o):a.skip_effect(o);for(const[l,o]of g(this,We))l===t?a.unskip_effect(o.effect):a.skip_effect(o.effect);a.oncommit(g(this,Vs)),a.ondiscard(g(this,da))}else g(this,Vs).call(this,a)}}it=new WeakMap,gt=new WeakMap,We=new WeakMap,Wt=new WeakMap,Ls=new WeakMap,Vs=new WeakMap,da=new WeakMap;function ue(e,t,s=!1){var a=new gn(e),r=s?ts:0;function n(c,l){a.ensure(c,l)}pa(()=>{var c=!1;t((l,o=0)=>{c=!0,n(o,l)}),c||n(-1,null)},r)}function ks(e,t){return t}function Ji(e,t,s){for(var a=[],r=t.length,n,c=t.length,l=0;l{if(n){if(n.pending.delete(u),n.done.add(u),n.pending.size===0){var v=e.outrogroups;Ia(e,fa(n.done)),v.delete(n),v.size===0&&(e.outrogroups=null)}}else c-=1},!1)}if(c===0){var o=a.length===0&&s!==null;if(o){var d=s,_=d.parentNode;Ai(_),_.append(d),e.items.clear()}Ia(e,t,!o)}else n={pending:new Set(t),done:new Set},(e.outrogroups??(e.outrogroups=new Set)).add(n)}function Ia(e,t,s=!0){var a;if(e.pending.size>0){a=new Set;for(const c of e.pending.values())for(const l of c)a.add(e.items.get(l).e)}for(var r=0;r{var j=s();return Na(j)?j:j==null?[]:fa(j)}),v,m=new Map,y=!0;function w(j){(k.effect.f&st)===0&&(k.pending.delete(j),k.fallback=_,Qi(k,v,c,t,a),_!==null&&(v.length===0?(_.f&mt)===0?Za(_):(_.f^=mt,Ts(_,null,c)):Qt(_,()=>{_=null})))}function h(j){k.pending.delete(j)}var b=pa(()=>{v=i(u);for(var j=v.length,F=new Set,V=J,S=Jr(),R=0;Rn(c)):(_=et(()=>n(pr??(pr=Tt()))),_.f|=mt)),j>F.size&&Ln(),!y)if(m.set(V,F),S){for(const[P,x]of l)F.has(P)||V.skip_effect(x.e);V.oncommit(w),V.ondiscard(h)}else w(V);i(u)}),k={effect:b,items:l,pending:m,outrogroups:null,fallback:_};y=!1}function Ss(e){for(;e!==null&&(e.f&vt)===0;)e=e.next;return e}function Qi(e,t,s,a,r){var n=(a&Xn)!==0,c=t.length,l=e.items,o=Ss(e.effect.first),d,_=null,u,v=[],m=[],y,w,h,b;if(n)for(b=0;b0){var N=(a&zr)!==0&&c===0?s:null;if(n){for(b=0;b{if(u!==void 0)for(h of u)h.nodes?.a?.apply()})}function el(e,t,s,a,r,n,c,l){var o=(c&Wn)!==0?(c&Zn)===0?Ti(s,!1,!1):rs(s):null,d=(c&Yn)!==0?rs(r):null;return{v:o,i:d,e:et(()=>(n(t,o??s,d??r,l),()=>{e.delete(a)}))}}function Ts(e,t,s){if(e.nodes)for(var a=e.nodes.start,r=e.nodes.end,n=t&&(t.f&mt)===0?t.nodes.start:s;a!==null;){var c=Is(a);if(n.before(a),a===r)return;a=c}}function Ft(e,t,s){t===null?e.effect.first=s:t.next=s,s===null?e.effect.last=t:s.prev=t}function mn(e,t,...s){var a=new gn(e);pa(()=>{const r=t()??null;a.ensure(r,r&&(n=>r(n,...s)))},ts)}const hr=[...` +\r\f \v\uFEFF`];function tl(e,t,s){var a=e==null?"":""+e;if(s){for(var r of Object.keys(s))if(s[r])a=a?a+" "+r:r;else if(a.length)for(var n=r.length,c=0;(c=a.indexOf(r,c))>=0;){var l=c+n;(c===0||hr.includes(a[c-1]))&&(l===a.length||hr.includes(a[l]))?a=(c===0?"":a.substring(0,c))+a.substring(l+1):c=l}}return a===""?null:a}function _r(e,t=!1){var s=t?" !important;":";",a="";for(var r of Object.keys(e)){var n=e[r];n!=null&&n!==""&&(a+=" "+r+": "+n+s)}return a}function xa(e){return e[0]!=="-"||e[1]!=="-"?e.toLowerCase():e}function sl(e,t){if(t){var s="",a,r;if(Array.isArray(t)?(a=t[0],r=t[1]):a=t,e){e=String(e).replaceAll(/\s*\/\*.*?\*\/\s*/g,"").trim();var n=!1,c=0,l=!1,o=[];a&&o.push(...Object.keys(a).map(xa)),r&&o.push(...Object.keys(r).map(xa));var d=0,_=-1;const w=e.length;for(var u=0;u{Qa(e,e.__value)});t.observe(e,{childList:!0,subtree:!0,attributes:!0,attributeFilter:["value"]}),en(()=>{t.disconnect()})}function na(e,t,s=t){var a=new WeakSet,r=!0;Qr(e,"change",n=>{var c=n?"[selected]":":checked",l;if(e.multiple)l=[].map.call(e.querySelectorAll(c),Cs);else{var o=e.querySelector(c)??e.querySelector("option:not([disabled])");l=o&&Cs(o)}s(l),e.__value=l,J!==null&&a.add(J)}),an(()=>{var n=t();if(e===document.activeElement){var c=J;if(a.has(c))return}if(Qa(e,n,r),r&&n===void 0){var l=e.querySelector(":checked");l!==null&&(n=Cs(l),s(n))}e.__value=n,r=!1}),yn(e)}function Cs(e){return"__value"in e?e.__value:e.value}const al=Symbol("is custom element"),rl=Symbol("is html"),nl=Dn?"progress":"PROGRESS";function ia(e,t){var s=bn(e);s.value===(s.value=t??void 0)||e.value===t&&(t!==0||e.nodeName!==nl)||(e.value=t??"")}function Q(e,t,s,a){var r=bn(e);r[t]!==(r[t]=s)&&(t==="loading"&&(e[On]=s),s==null?e.removeAttribute(t):typeof s!="string"&&il(e).includes(t)?e[t]=s:e.setAttribute(t,s))}function bn(e){return e[Us]??(e[Us]={[al]:e.nodeName.includes("-"),[rl]:e.namespaceURI===Cr})}var gr=new Map;function il(e){var t=e.getAttribute("is")||e.nodeName,s=gr.get(t);if(s)return s;gr.set(t,s=[]);for(var a,r=e,n=Element.prototype;n!==r;){a=$n(r);for(var c in a)a[c].set&&c!=="innerHTML"&&c!=="textContent"&&c!=="innerText"&&s.push(c);r=Er(r)}return s}function $t(e,t,s=t){var a=new WeakSet;Qr(e,"input",async r=>{var n=r?e.defaultValue:e.value;if(n=Sa(e)?Ea(n):n,s(n),J!==null&&a.add(J),await Ni(),n!==(n=t())){var c=e.selectionStart,l=e.selectionEnd,o=e.value.length;if(e.value=n??"",l!==null){var d=e.value.length;c===l&&l===o&&d>o?(e.selectionStart=d,e.selectionEnd=d):(e.selectionStart=c,e.selectionEnd=Math.min(l,d))}}}),ha(t)==null&&e.value&&(s(Sa(e)?Ea(e.value):e.value),J!==null&&a.add(J)),Ya(()=>{var r=t();if(e===document.activeElement){var n=J;if(a.has(n))return}Sa(e)&&r===Ea(e.value)||e.type==="date"&&!r&&!e.value||r!==e.value&&(e.value=r??"")})}function Sa(e){var t=e.type;return t==="number"||t==="range"}function Ea(e){return e===""?null:+e}function ja(e,t){return e===t||e?.[Xt]===t}function ll(e={},t,s,a){var r=Ye.r,n=ae;return an(()=>{var c,l;return Ya(()=>{c=l,l=[],ha(()=>{ja(s(...l),e)||(t(e,...l),c&&ja(s(...c),e)&&t(null,...c))})}),()=>{let o=n;for(;o!==r&&o.parent!==null&&o.parent.f&$a;)o=o.parent;const d=()=>{l&&ja(s(...l),e)&&t(null,...l)},_=o.teardown;o.teardown=()=>{d(),_?.()}}}),e}function me(e,t,s,a){var r=!0,n=(s&ei)!==0,c=(s&ti)!==0,l=a,o=!0,d=void 0,_=()=>c&&r?(d??(d=As(a)),i(d)):(o&&(o=!1,l=c?ha(a):a),l);let u;if(n){var v=Xt in e||Mn in e;u=ds(e,t)?.set??(v&&t in e?F=>e[t]=F:void 0)}var m,y=!1;n?[m,y]=di(()=>e[t]):m=e[t],m===void 0&&a!==void 0&&(m=_(),u&&(Bn(),u(m)));var w;if(w=()=>{var F=e[t];return F===void 0?_():(o=!0,F)},(s&Qn)===0)return w;if(u){var h=e.$$legacy;return(function(F,V){return arguments.length>0?((!V||h||y)&&u(V?w():F),F):w()})}var b=!1,k=((s&Jn)!==0?As:Kr)(()=>(b=!1,w()));n&&i(k);var j=ae;return(function(F,V){if(arguments.length>0){const S=V?i(k):n?Ne(F):F;return K(k,S),b=!0,l!==void 0&&(l=S),F}return Ct&&b||(j.f&st)!==0?k.v:i(k)})}const ol="5";var Sr;typeof window<"u"&&((Sr=window.__svelte??(window.__svelte={})).v??(Sr.v=new Set)).add(ol);const Vt=typeof window<"u"&&window.slashedBricksApp?window.slashedBricksApp:{defaults:{},settings:{},tabs:{},rest:{url:"",nonce:""}},re={defaults:Vt.defaults||{},tabs:Vt.tabs||{},rest:Vt.rest||{url:"",nonce:""},inventory:Vt.inventory||{variables:[],sf_classes:[],is_classes:[]},pluginSettings:Vt.pluginSettings||{},versions:Vt.versions||{plugin:"",framework:""}},H=Ne(structuredClone(Vt.settings||{})),U=Ne({activeTab:cl(re.tabs)||"colors",dirty:!1,saving:!1,lastSavedAt:null,error:""});function cl(e){for(const t in e)return t;return null}function er(){U.dirty=!0,U.error=""}function mr(e){H[e]&&delete H[e]}function Rs(e,t,s){H[e]||(H[e]={}),s===""||s===null||s===void 0||typeof s=="string"&&s.trim()===""?delete H[e][t]:H[e][t]=String(s),er()}var dl=A(''),fl=A('

');function ul(e,t){ye(t,!0);var s=fl();ne(s,21,()=>Object.entries(re.tabs),([a,r])=>a,(a,r)=>{var n=E(()=>lt(i(r),2));let c=()=>i(n)[0],l=()=>i(n)[1];var o=dl();let d;var _=f(o);q(()=>{d=ut(o,1,"tab-nav__btn svelte-yyiz68",null,d,{active:U.activeTab===c()}),C(_,l())}),ge("click",o,()=>U.activeTab=c()),z(a,o)}),z(e,s),be()}Le(["click"]);var vl=A(' '),pl=A(' ',1),hl=A(''),_l=A('
');function Hs(e,t){ye(t,!0);let s=me(t,"hexHint",3,""),a=me(t,"rawHint",3,""),r=me(t,"cssVar",3,"");const n=/^#([0-9a-fA-F]{3,4}|[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$/,c=(()=>{const P=(H.colors?.[t.storeKey]??"").trim(),x=P===""||n.test(P);return{mode:x?"hex":"raw",hex:x?P:"",raw:x?"":P}})();let l=se(Ne(c.mode)),o=se(Ne(c.hex)),d=se(Ne(c.raw));function _(){H.colors||(H.colors={});const P=i(d).trim(),x=i(o).trim(),T=i(l)==="raw"?P:x;T===""?delete H.colors[t.storeKey]:H.colors[t.storeKey]=T,er()}function u(){i(l)==="hex"?(K(l,"raw"),K(o,"")):(K(l,"hex"),K(d,"")),_()}const v=E(()=>(i(l)==="raw"?i(d):i(o))||s()||"transparent");var m=_l(),y=f(m),w=f(y),h=f(w),b=p(w,2);{var k=P=>{var x=vl(),T=f(x);q(()=>C(T,r())),z(P,x)};ue(b,P=>{r()&&P(k)})}var j=p(y,2),F=f(j);let V;var S=p(F,2);{var R=P=>{var x=pl(),T=zt(x),$=p(T,2);q(()=>{Q(T,"id",t.storeKey),Q($,"placeholder",s())}),ge("input",T,_),$t(T,()=>i(o),D=>K(o,D)),ge("input",$,_),$t($,()=>i(o),D=>K(o,D)),z(P,x)},O=P=>{var x=hl();q(()=>{Q(x,"id",t.storeKey),Q(x,"placeholder",a())}),ge("input",x,_),$t(x,()=>i(d),T=>K(d,T)),z(P,x)};ue(S,P=>{i(l)==="hex"?P(R):P(O,-1)})}var N=p(S,2),M=f(N);q(()=>{Q(w,"for",t.storeKey),C(h,t.label),V=fe(F,"",V,{background:i(v)}),C(M,i(l)==="hex"?"Advanced (oklch / raw)":"Use HEX picker")}),ge("click",N,u),z(e,m),be()}Le(["input","click"]);var gl=A('
'),ml=A('
');function _a(e,t){ye(t,!0);let s=se(!1);const a=`adv-body-${Math.random().toString(36).slice(2,9)}`;var r=ml(),n=f(r),c=p(f(n));let l;var o=f(c),d=p(n,2);{var _=u=>{var v=gl(),m=f(v);mn(m,()=>t.children),q(()=>Q(v,"id",a)),z(u,v)};ue(d,u=>{i(s)&&u(_)})}q(()=>{Q(n,"aria-expanded",i(s)),Q(n,"aria-controls",a),l=ut(c,1,"advanced-section__arrow",null,l,{open:i(s)}),C(o,i(s)?"▲":"▼")}),ge("click",n,()=>K(s,!i(s))),z(e,r),be()}Le(["click"]);var yl=A(`

Status Colors — Light Mode

Brand Colors — Dark Mode

Optional overrides for dark mode. Leave empty to let the framework auto-derive dark variants from the light source colors. Set explicit values for full - control over dark-mode appearance.

Status Colors — Dark Mode

Optional overrides for dark mode. Leave empty for auto-derivation.

`,1),pl=P(`

Brand Colors — Light Mode

Pick a color via the HEX input, or switch to Advanced to paste any + control over dark-mode appearance.

Status Colors — Dark Mode

Optional overrides for dark mode. Leave empty for auto-derivation.

`,1),bl=A(`

Brand Colors — Light Mode

Pick a color via the HEX input, or switch to Advanced to paste any CSS color value (oklch, rgb, hsl, var(...), etc). Whatever you save is fed - straight into the framework as the source of the brand scale.

`);function hl(e,t){de(t,!0);const s=ae.defaults?.colors??{},a=l=>l.charAt(0).toUpperCase()+l.slice(1),r=Object.entries(s.brand??{});var n=pl(),o=g(f(n),4);Q(o,21,()=>r,([l,d])=>l,(l,d)=>{var h=O(()=>Je(i(d),2));let v=()=>i(h)[0],u=()=>i(h)[1];{let m=O(()=>`brand_${v()}`),y=O(()=>a(v())),w=O(()=>s.brand_hex_hints?.[v()]??""),p=O(()=>`--sf-color-${v()}-light`);Ls(l,{get storeKey(){return i(m)},get label(){return i(y)},get hexHint(){return i(w)},get rawHint(){return u()},get cssVar(){return i(p)}})}});var c=g(o,2);ca(c,{children:(l,d)=>{var h=vl(),v=g(_t(h),2);Q(v,21,()=>Object.entries(s.status??{}),([y,w])=>y,(y,w)=>{var p=O(()=>Je(i(w),2));let b=()=>i(p)[0],E=()=>i(p)[1];{let T=O(()=>`status_${b()}`),F=O(()=>a(b())),L=O(()=>s.status_hex_hints?.[b()]??""),x=O(()=>`--sf-color-${b()}-light`);Ls(y,{get storeKey(){return i(T)},get label(){return i(F)},get hexHint(){return i(L)},get rawHint(){return E()},get cssVar(){return i(x)}})}});var u=g(v,6);Q(u,21,()=>Object.entries(s.brand_dark??s.brand??{}),([y])=>y,(y,w)=>{var p=O(()=>Je(i(w),1));let b=()=>i(p)[0];{let E=O(()=>`brand_dark_${b()}`),T=O(()=>a(b())),F=O(()=>s.brand_dark_hex_hints?.[b()]??""),L=O(()=>s.brand_dark?.[b()]??""),x=O(()=>`--sf-color-${b()}-dark`);Ls(y,{get storeKey(){return i(E)},get label(){return i(T)},get hexHint(){return i(F)},get rawHint(){return i(L)},get cssVar(){return i(x)}})}});var m=g(u,6);Q(m,21,()=>Object.entries(s.status_dark??s.status??{}),([y])=>y,(y,w)=>{var p=O(()=>Je(i(w),1));let b=()=>i(p)[0];{let E=O(()=>`status_dark_${b()}`),T=O(()=>a(b())),F=O(()=>s.status_dark_hex_hints?.[b()]??""),L=O(()=>s.status_dark?.[b()]??""),x=O(()=>`--sf-color-${b()}-dark`);Ls(y,{get storeKey(){return i(E)},get label(){return i(T)},get hexHint(){return i(F)},get rawHint(){return i(L)},get cssVar(){return i(x)}})}}),$(l,h)},$$slots:{default:!0}}),$(e,n),fe()}var _l=P(''),gl=P(' '),ml=P(' '),yl=P('

'),bl=P('
');function da(e,t){let s=oe(t,"cssVar",3,""),a=oe(t,"fieldId",3,""),r=oe(t,"description",3,"");var n=bl(),o=f(n),c=f(o);{var l=p=>{var b=_l(),E=f(b);V(()=>{Y(b,"for",a()),M(E,t.label)}),$(p,b)},d=p=>{var b=gl(),E=f(b);V(()=>M(E,t.label)),$(p,b)};ne(c,p=>{a()?p(l):p(d,-1)})}var h=g(c,2);{var v=p=>{var b=ml(),E=f(b);V(()=>M(E,s())),$(p,b)};ne(h,p=>{s()&&p(v)})}var u=g(o,2),m=f(u);fn(m,()=>t.children??yr);var y=g(m,2);{var w=p=>{var b=yl(),E=f(b);V(()=>M(E,r())),$(p,b)};ne(y,p=>{r()&&p(w)})}$(e,n)}var wl=P('');function ea(e,t){de(t,!0);let s=oe(t,"default",3,""),a=oe(t,"cssVar",3,""),r=oe(t,"description",3,""),n=oe(t,"mono",3,!1),o=oe(t,"width",3,"320px");const c=O(()=>W[t.section]?.[t.fieldKey]===void 0||W[t.section]?.[t.fieldKey]===null?"":String(W[t.section][t.fieldKey]));function l(d){Ss(t.section,t.fieldKey,d.currentTarget.value)}da(e,{get label(){return t.label},get cssVar(){return a()},get fieldId(){return t.fieldKey},get description(){return r()},children:(d,h)=>{var v=wl();let u,m;V(y=>{Y(v,"id",t.fieldKey),u=Tt(v,1,"text svelte-j8yw6l",null,u,{mono:n()}),Qs(v,i(c)),Y(v,"placeholder",y),m=Ee(v,"",m,{width:o()})},[()=>String(s())]),ce("input",v,l),$(d,v)},$$slots:{default:!0}}),fe()}Re(["input"]);var xl=P(' '),kl=P(' ',1);function st(e,t){de(t,!0);let s=oe(t,"min",3,void 0),a=oe(t,"max",3,void 0),r=oe(t,"step",3,void 0),n=oe(t,"default",3,""),o=oe(t,"cssVar",3,""),c=oe(t,"unit",3,""),l=oe(t,"description",3,""),d=oe(t,"width",3,"120px");const h=O(()=>W[t.section]?.[t.fieldKey]===void 0||W[t.section]?.[t.fieldKey]===null?"":String(W[t.section][t.fieldKey]));function v(u){Ss(t.section,t.fieldKey,u.currentTarget.value)}da(e,{get label(){return t.label},get cssVar(){return o()},get fieldId(){return t.fieldKey},get description(){return l()},children:(u,m)=>{var y=kl(),w=_t(y);let p;var b=g(w,2);{var E=T=>{var F=xl(),L=f(F);V(()=>M(L,c())),$(T,F)};ne(b,T=>{c()&&T(E)})}V(T=>{Y(w,"id",t.fieldKey),Y(w,"min",s()),Y(w,"max",a()),Y(w,"step",r()),Qs(w,i(h)),Y(w,"placeholder",T),p=Ee(w,"",p,{width:d()})},[()=>String(n())]),ce("input",w,v),$(u,y)},$$slots:{default:!0}}),fe()}Re(["input"]);var Sl=P('
'),El=P('
'),jl=P('

Display Scale

'),Tl=P('

Live Scale Preview

Text Scale

');function zl(e,t){de(t,!0);const s=16,a=360,r=1520;let n=Z(r);const c=(ae.defaults?.typography??{}).font_sizes??{};function l(z){const R=W.typography??{},k=c[z]??{},S=R[`size_${z}_min`],D=R[`size_${z}_max`],I=S!==void 0&&S!==""?parseFloat(S):k.min??.75,N=D!==void 0&&D!==""?parseFloat(D):k.max??1;return{min:I,max:N}}const d=O(()=>{const z=Math.max(0,Math.min(1,(i(n)-a)/(r-a))),R={};for(const k of Object.keys(c)){const{min:S,max:D}=l(k),I=S+(D-S)*z,N=I*s;R[k]={sizePx:N,sizeRem:I.toFixed(3)}}return R}),h=["2xs","xs","s","m","l","xl","2xl","3xl","4xl"],v=["display-s","display-m","display-l"],u=O(()=>h.filter(z=>c[z])),m=O(()=>v.filter(z=>c[z]));var y=Tl(),w=f(y),p=g(f(w),2),b=f(p);b.textContent="360px";var E=g(b,2);Y(E,"min",a),Y(E,"max",r);var T=g(E,2);T.textContent="1520px";var F=g(T,2),L=f(F),x=g(w,2),j=g(f(x),2);Q(j,16,()=>i(u),z=>z,(z,R)=>{const k=O(()=>i(d)[R]);var S=ir(),D=_t(S);{var I=N=>{var ee=Sl(),K=f(ee),ie=f(K),le=g(K,2);let be;var Te=f(le),ge=g(le,2),te=f(ge);V((he,_e)=>{M(ie,R),be=Ee(le,"",be,he),M(Te,R),M(te,`${i(k).sizeRem??""}rem / ${_e??""}px`)},[()=>({"font-size":`${i(k).sizePx.toFixed(1)??""}px`}),()=>i(k).sizePx.toFixed(1)]),$(N,ee)};ne(D,N=>{i(k)&&N(I)})}$(z,S)});var A=g(x,2);{var C=z=>{var R=jl(),k=g(f(R),2);Q(k,16,()=>i(m),S=>S,(S,D)=>{const I=O(()=>i(d)[D]);var N=ir(),ee=_t(N);{var K=ie=>{var le=El(),be=f(le),Te=f(be),ge=g(be,2);let te;var he=f(ge),_e=g(ge,2),we=f(_e);V((Ve,Ie)=>{M(Te,D),te=Ee(ge,"",te,Ve),M(he,D),M(we,`${i(I).sizeRem??""}rem / ${Ie??""}px`)},[()=>({"font-size":`${i(I).sizePx.toFixed(1)??""}px`}),()=>i(I).sizePx.toFixed(1)]),$(ie,le)};ne(ee,ie=>{i(I)&&ie(K)})}$(S,N)}),$(z,R)};ne(A,z=>{i(m).length>0&&z(C)})}V(()=>M(L,`${i(n)??""}px`)),ht(E,()=>i(n),z=>q(n,z)),$(e,y),fe()}var Al=P(""),Cl=P(""),$l=P('
'),Fl=P('
Scale Generator Computes all step min/max values from a modular scale. Click Apply to write them to the fields below.
');function Rl(e,t){de(t,!0);const s=[{label:"Minor Second (1.067)",value:1.067},{label:"Major Second (1.125)",value:1.125},{label:"Minor Third (1.200)",value:1.2},{label:"Major Third (1.250)",value:1.25},{label:"Perfect Fourth (1.333)",value:1.333},{label:"Aug. Fourth (1.414)",value:1.414},{label:"Perfect Fifth (1.500)",value:1.5},{label:"Golden Ratio (1.618)",value:1.618},{label:"Major Sixth (1.667)",value:1.667},{label:"Octave (2.000)",value:2}],a=[{name:"2xs",idx:-4},{name:"xs",idx:-3},{name:"s",idx:-2},{name:"m",idx:0},{name:"l",idx:1},{name:"xl",idx:2},{name:"2xl",idx:3},{name:"3xl",idx:4},{name:"4xl",idx:5},{name:"display-s",idx:5},{name:"display-m",idx:6},{name:"display-l",idx:7}];let r=Z(1),n=Z(1.25),o=Z(1.25),c=Z(1.333),l=Z(.85);const d=O(()=>a.map(({name:S,idx:D})=>{const N=S.startsWith("display")?i(l):1,ee=+(i(r)*N*Math.pow(i(o),D)).toFixed(4),K=+(i(n)*N*Math.pow(i(c),D)).toFixed(4);return{name:S,min:ee,max:K}}));function h(){W.typography||(W.typography={});for(const{name:S,min:D,max:I}of i(d))W.typography[`size_${S}_min`]=String(D),W.typography[`size_${S}_max`]=String(I);Wa()}var v=Fl(),u=g(f(v),2),m=f(u),y=g(f(m),2),w=f(y),p=g(m,2),b=g(f(p),2),E=f(b),T=g(p,2),F=g(f(T),2);Q(F,21,()=>s,S=>S.value,(S,D)=>{var I=Al(),N=f(I),ee={};V(()=>{M(N,i(D).label),ee!==(ee=i(D).value)&&(I.value=(I.__value=i(D).value)??"")}),$(S,I)});var L=g(T,2),x=g(f(L),2);Q(x,21,()=>s,S=>S.value,(S,D)=>{var I=Cl(),N=f(I),ee={};V(()=>{M(N,i(D).label),ee!==(ee=i(D).value)&&(I.value=(I.__value=i(D).value)??"")}),$(S,I)});var j=g(L,2),A=g(f(j),2),C=f(A),z=g(u,2);Q(z,21,()=>i(d),({name:S,min:D,max:I})=>S,(S,D)=>{let I=()=>i(D).name,N=()=>i(D).min,ee=()=>i(D).max;var K=$l();let ie;var le=f(K),be=f(le),Te=g(le,2),ge=f(Te);V((te,he,_e)=>{ie=Tt(K,1,"scale-gen__step svelte-1y8fkhh",null,ie,te),M(be,I()),M(ge,`${he??""} / ${_e??""}`)},[()=>({display:I().startsWith("display")}),()=>N().toFixed(3),()=>ee().toFixed(3)]),$(S,K)});var R=g(z,2),k=f(R);ht(w,()=>i(r),S=>q(r,S)),ht(E,()=>i(n),S=>q(n,S)),Js(F,()=>i(o),S=>q(o,S)),Js(x,()=>i(c),S=>q(c,S)),ht(C,()=>i(l),S=>q(l,S)),ce("click",k,h),$(e,v),fe()}Re(["click"]);var Ol=P('
'),Pl=P('

Additional Font Families

Scale Multipliers

',1),Ml=P('

Font Families

Font Size Scale

Min and max values in rem for fluid type scaling via clamp().

');function Dl(e,t){de(t,!0);const s="typography",a=ae.defaults?.[s]??{},r=a.font_families??{},n=a.font_sizes??{},o=p=>p.charAt(0).toUpperCase()+p.slice(1),c=["body","heading"],l=Object.fromEntries(Object.entries(r).filter(([p])=>c.includes(p))),d=Object.fromEntries(Object.entries(r).filter(([p])=>!c.includes(p)));var h=Ml(),v=g(f(h),2);Q(v,21,()=>Object.entries(l),([p,b])=>p,(p,b)=>{var E=O(()=>Je(i(b),2));let T=()=>i(E)[0],F=()=>i(E)[1];{let L=O(()=>`font_${T()}`),x=O(()=>o(T())),j=O(()=>`--sf-font-${T()}`);ea(p,{section:s,get fieldKey(){return i(L)},get label(){return i(x)},get default(){return F()},get cssVar(){return i(j)},width:"420px"})}});var u=g(v,6);Rl(u,{});var m=g(u,2);Q(m,21,()=>Object.entries(n),([p,b])=>p,(p,b)=>{var E=O(()=>Je(i(b),2));let T=()=>i(E)[0],F=()=>i(E)[1];var L=Ol(),x=f(L),j=f(x),A=f(j),C=g(j,2),z=f(C),R=g(x,2),k=f(R);{let D=O(()=>`size_${T()}_min`);st(k,{section:s,get fieldKey(){return i(D)},label:"Min",min:0,step:.01,get default(){return F().min},width:"80px"})}var S=g(k,2);{let D=O(()=>`size_${T()}_max`);st(S,{section:s,get fieldKey(){return i(D)},label:"Max",min:0,step:.01,get default(){return F().max},width:"80px"})}V(()=>{M(A,T()),M(z,`--sf-text-${T()??""}`)}),$(p,L)});var y=g(m,2);zl(y,{});var w=g(y,2);ca(w,{children:(p,b)=>{var E=Pl(),T=g(_t(E),2);Q(T,21,()=>Object.entries(d),([j,A])=>j,(j,A)=>{var C=O(()=>Je(i(A),2));let z=()=>i(C)[0],R=()=>i(C)[1];{let k=O(()=>`font_${z()}`),S=O(()=>o(z())),D=O(()=>`--sf-font-${z()}`);ea(j,{section:s,get fieldKey(){return i(k)},get label(){return i(S)},get default(){return R()},get cssVar(){return i(D)},width:"420px"})}});var F=g(T,4),L=f(F);{let j=O(()=>a.scale_multipliers?.text_scale??1);st(L,{section:s,fieldKey:"text_scale",label:"Text Scale",min:0,step:.05,get default(){return i(j)},cssVar:"--sf-text-scale"})}var x=g(L,2);{let j=O(()=>a.scale_multipliers?.text_display_scale??1);st(x,{section:s,fieldKey:"text_display_scale",label:"Display Scale",min:0,step:.05,get default(){return i(j)},cssVar:"--sf-text-display-scale"})}$(p,E)},$$slots:{default:!0}}),$(e,h),fe()}var Ll=P('
'),Vl=P('

Live Scale Preview

');function Il(e,t){de(t,!0);const s=360,a=1440;let r=Z(a);const n=ae.defaults?.spacing??{},o=n.space_sizes??{};function c(E){const T=W.spacing??{},F=o[E]??{},L=T[`space_${E}_min`],x=T[`space_${E}_max`],j=L!==void 0&&L!==""?parseFloat(L):F.min??1,A=x!==void 0&&x!==""?parseFloat(x):F.max??1;return{min:j,max:A}}const l=O(()=>{const E=parseFloat(W.spacing?.space_scale??n.space_scale??1)||1,T=Math.max(0,Math.min(1,(i(r)-s)/(a-s))),F=["2xs","xs","s","m","l","xl","2xl","3xl","4xl"],L=c("4xl").max*E;return F.map(x=>{const{min:j,max:A}=c(x),C=(j+(A-j)*T)*E,z=C/L*100;return{name:x,sizeRem:C.toFixed(3),barPct:Math.min(z,100)}})});var d=Vl(),h=f(d),v=g(f(h),2),u=f(v);u.textContent="360px";var m=g(u,2);Y(m,"min",s),Y(m,"max",a);var y=g(m,2);y.textContent="1440px";var w=g(y,2),p=f(w),b=g(h,2);Q(b,21,()=>i(l),E=>E.name,(E,T)=>{var F=Ll(),L=f(F),x=f(L),j=g(L,2),A=f(j);let C;var z=g(j,2),R=f(z);V(()=>{M(x,`--sf-space-${i(T).name??""}`),C=Ee(A,"",C,{width:`${i(T).barPct??""}%`}),M(R,`${i(T).sizeRem??""}rem`)}),$(E,F)}),V(()=>M(p,`${i(r)??""}px`)),ht(m,()=>i(r),E=>q(r,E)),$(e,d),fe()}var Nl=P('
'),ql=P('

Space Aliases

',1),Bl=P(`

Spacing

Space Scale Steps

Min and max values in rem for fluid spacing via clamp(). - Leave both fields blank to use the framework defaults.

`);function Kl(e,t){de(t,!0);const s="spacing",a=ae.defaults?.[s]??{},r=a.space_sizes??{},n=[{key:"gutter",label:"Gutter",cssVar:"--sf-space-gutter"},{key:"gap",label:"Gap",cssVar:"--sf-gap"},{key:"content_gap",label:"Content Gap",cssVar:"--sf-content-gap"},{key:"component_pad",label:"Component Pad",cssVar:"--sf-component-pad"},{key:"section_pad",label:"Section Pad",cssVar:"--sf-section-pad"}];var o=Bl(),c=g(f(o),2),l=f(c);{let u=O(()=>a.space_scale??1);st(l,{section:s,fieldKey:"space_scale",label:"Space Scale",min:0,step:.05,get default(){return i(u)},cssVar:"--sf-space-scale"})}var d=g(c,6);Q(d,21,()=>Object.entries(r),([u,m])=>u,(u,m)=>{var y=O(()=>Je(i(m),2));let w=()=>i(y)[0],p=()=>i(y)[1];var b=Nl(),E=f(b),T=f(E),F=f(T),L=g(T,2),x=f(L),j=g(E,2),A=f(j);{let z=O(()=>`space_${w()}_min`);st(A,{section:s,get fieldKey(){return i(z)},label:"Min",min:0,step:.01,get default(){return p().min},width:"80px"})}var C=g(A,2);{let z=O(()=>`space_${w()}_max`);st(C,{section:s,get fieldKey(){return i(z)},label:"Max",min:0,step:.01,get default(){return p().max},width:"80px"})}V(()=>{M(F,w()),M(x,`--sf-space-${w()??""}`)}),$(u,b)});var h=g(d,2);Il(h,{});var v=g(h,2);ca(v,{children:(u,m)=>{var y=ql(),w=g(_t(y),2);Q(w,21,()=>n,p=>p.key,(p,b)=>{{let E=O(()=>a[i(b).key]??"");ea(p,{section:s,get fieldKey(){return i(b).key},get label(){return i(b).label},get default(){return i(E)},get cssVar(){return i(b).cssVar},mono:!0})}}),$(u,y)},$$slots:{default:!0}}),$(e,o),fe()}var Hl=P(' '),Ul=P(' ',1);function Zt(e,t){de(t,!0);let s=oe(t,"cssVar",3,""),a=oe(t,"unit",3,""),r=oe(t,"description",3,"");const n=O(()=>W[t.section]?.[t.fieldKey]===void 0||W[t.section]?.[t.fieldKey]===null?"":String(W[t.section][t.fieldKey])),o=O(()=>i(n)===""||Number.isNaN(Number(i(n)))?Number(t.default):Number(i(n)));function c(d){Ss(t.section,t.fieldKey,d.currentTarget.value)}function l(d){Ss(t.section,t.fieldKey,d.currentTarget.value)}da(e,{get label(){return t.label},get cssVar(){return s()},get fieldId(){return t.fieldKey},get description(){return r()},children:(d,h)=>{var v=Ul(),u=_t(v),m=g(u,2),y=g(m,2);{var w=p=>{var b=Hl(),E=f(b);V(()=>M(E,a())),$(p,b)};ne(y,p=>{a()&&p(w)})}V(p=>{Y(u,"min",t.min),Y(u,"max",t.max),Y(u,"step",t.step),Qs(u,i(o)),Y(m,"id",t.fieldKey),Y(m,"min",t.min),Y(m,"max",t.max),Y(m,"step",t.step),Qs(m,i(n)),Y(m,"placeholder",p)},[()=>String(t.default)]),ce("input",u,c),ce("input",m,l),$(d,v)},$$slots:{default:!0}}),fe()}Re(["input"]);var Gl=P(""),Wl=P('');function Yl(e,t){de(t,!0);let s=oe(t,"options",19,()=>[]),a=oe(t,"default",3,""),r=oe(t,"cssVar",3,""),n=oe(t,"description",3,"");const o=O(()=>s().map(d=>typeof d=="string"?{value:d,label:d}:d)),c=O(()=>W[t.section]?.[t.fieldKey]===void 0||W[t.section]?.[t.fieldKey]===null?"":String(W[t.section][t.fieldKey]));function l(d){Ss(t.section,t.fieldKey,d.currentTarget.value)}da(e,{get label(){return t.label},get cssVar(){return r()},get fieldId(){return t.fieldKey},get description(){return n()},children:(d,h)=>{var v=Wl(),u=f(v),m=f(u);u.value=u.__value="";var y=g(u);Q(y,17,()=>i(o),p=>p.value,(p,b)=>{var E=Gl(),T=f(E),F={};V(()=>{M(T,i(b).label),F!==(F=i(b).value)&&(E.value=(E.__value=i(b).value)??"")}),$(p,E)});var w;un(v),V(()=>{Y(v,"id",t.fieldKey),M(m,`Default (${a()??""})`),w!==(w=i(c))&&(v.value=(v.__value=i(c))??"",Ga(v,i(c)))}),ce("change",v,l),$(d,v)},$$slots:{default:!0}}),fe()}Re(["change"]);var Xl=P('
'),Zl=P('
'),Jl=P('

Shadow

Motion — Durations

Base duration values in milliseconds.

Z-Index

Z-index layer values for stacking context management.

Contrast

',1),Ql=P('

Radius

Shadows

Motion

Accessibility

');function eo(e,t){de(t,!0);const s=ae.defaults?.radius??{},a=ae.defaults?.shadows??{},r=ae.defaults?.motion??{},n=ae.defaults?.zindex??{},o=ae.defaults?.contrast??{},c=r.durations??{},l=S=>S.charAt(0).toUpperCase()+S.slice(1),d=[0,2,4,8,12,16,24,9999],h=["none","xs","s","m","l","xl","2xl","full"],v=O(()=>parseFloat(W.radius?.radius_scale??ae.defaults?.radius?.radius_scale??1)),u=O(()=>d.map(S=>S*i(v))),m=O(()=>parseFloat(W.shadows?.shadow_strength??a.shadow_strength??.08)),y=O(()=>[{label:"xs",shadow:`0 1px 2px 0 rgba(0,0,0,${(i(m)*.5).toFixed(4)})`},{label:"s",shadow:`0 1px 2px 0 rgba(0,0,0,${(i(m)*.5).toFixed(4)}), 0 2px 6px 0 rgba(0,0,0,${i(m).toFixed(4)})`},{label:"m",shadow:`0 1px 3px 0 rgba(0,0,0,${(i(m)*.5).toFixed(4)}), 0 4px 12px 0 rgba(0,0,0,${(i(m)*2).toFixed(4)})`},{label:"l",shadow:`0 2px 4px 0 rgba(0,0,0,${(i(m)*.5).toFixed(4)}), 0 8px 24px 0 rgba(0,0,0,${(i(m)*3).toFixed(4)})`},{label:"xl",shadow:`0 2px 8px 0 rgba(0,0,0,${(i(m)*.5).toFixed(4)}), 0 12px 36px 0 rgba(0,0,0,${(i(m)*3.5).toFixed(4)})`},{label:"glow",shadow:`0 0 15px 2px rgba(74,48,208,${Math.min(i(m)*2,.7).toFixed(4)})`}]);var w=Ql(),p=g(f(w),2),b=f(p);{let S=O(()=>s.radius_scale??1);st(b,{section:"radius",fieldKey:"radius_scale",label:"Radius Scale",min:0,step:.1,get default(){return i(S)},cssVar:"--sf-radius-scale"})}var E=g(p,2);Q(E,23,()=>i(u),(S,D)=>h[D],(S,D,I)=>{var N=Xl(),ee=f(N);let K;var ie=g(ee,2),le=f(ie);V(()=>{K=Ee(ee,"",K,{"border-radius":d[i(I)]===9999?"9999px":`${i(D)}px`}),M(le,h[i(I)])}),$(S,N)});var T=g(E,4),F=f(T);{let S=O(()=>a.shadow_strength??.08);Zt(F,{section:"shadows",fieldKey:"shadow_strength",label:"Shadow Strength",description:"Base opacity for shadow layers (0–1).",min:0,max:1,step:.01,get default(){return i(S)},cssVar:"--sf-shadow-strength"})}var L=g(T,2);Q(L,21,()=>i(y),S=>S.label,(S,D)=>{var I=Zl(),N=f(I);let ee;var K=f(N);V(()=>{ee=Ee(N,"",ee,{"box-shadow":i(D).shadow}),M(K,i(D).label)}),$(S,I)});var x=g(L,4),j=f(x);{let S=O(()=>r.motion_scale??1);st(j,{section:"motion",fieldKey:"motion_scale",label:"Motion Scale",min:0,step:.1,get default(){return i(S)},cssVar:"--sf-motion-scale"})}var A=g(x,4),C=f(A);{let S=O(()=>o.focus_ring_width??2);Zt(C,{section:"contrast",fieldKey:"focus_ring_width",label:"Focus Ring Width",min:0,max:8,step:.5,get default(){return i(S)},cssVar:"--sf-focus-ring-width",unit:"px"})}var z=g(C,2);{let S=O(()=>o.focus_ring_offset??2);Zt(z,{section:"contrast",fieldKey:"focus_ring_offset",label:"Focus Ring Offset",min:0,max:8,step:.5,get default(){return i(S)},cssVar:"--sf-focus-ring-offset",unit:"px"})}var R=g(z,2);{let S=O(()=>o.focus_ring_style??"solid");Yl(R,{section:"contrast",fieldKey:"focus_ring_style",label:"Focus Ring Style",options:["solid","dashed","dotted","double","none"],get default(){return i(S)},cssVar:"--sf-focus-ring-style"})}var k=g(A,2);ca(k,{children:(S,D)=>{var I=Jl(),N=g(_t(I),2),ee=f(N);{let te=O(()=>a.glow_color??"");ea(ee,{section:"shadows",fieldKey:"glow_color",label:"Glow Color",get default(){return i(te)},cssVar:"--sf-shadow-glow-color",mono:!0})}var K=g(N,6);Q(K,21,()=>Object.entries(c),([te,he])=>te,(te,he)=>{var _e=O(()=>Je(i(he),2));let we=()=>i(_e)[0],Ve=()=>i(_e)[1];{let Ie=O(()=>`duration_${we()}`),Xe=O(()=>l(we())),yt=O(()=>`--sf-duration-${we()}`);st(te,{section:"motion",get fieldKey(){return i(Ie)},get label(){return i(Xe)},min:0,step:10,get default(){return Ve()},get cssVar(){return i(yt)},unit:"ms"})}});var ie=g(K,6);Q(ie,21,()=>Object.entries(n),([te,he])=>te,(te,he)=>{var _e=O(()=>Je(i(he),2));let we=()=>i(_e)[0],Ve=()=>i(_e)[1];{let Ie=O(()=>l(we())),Xe=O(()=>`--sf-z-${we()}`);st(te,{section:"zindex",get fieldKey(){return we()},get label(){return i(Ie)},step:1,get default(){return Ve()},get cssVar(){return i(Xe)}})}});var le=g(ie,4),be=f(le);{let te=O(()=>o.contrast_bias??0);Zt(be,{section:"contrast",fieldKey:"contrast_bias",label:"Contrast Bias",description:"Shifts derived shades up (positive) or down (negative).",min:-.2,max:.2,step:.01,get default(){return i(te)},cssVar:"--sf-contrast-bias"})}var Te=g(be,2);{let te=O(()=>o.contrast_threshold??.6);Zt(Te,{section:"contrast",fieldKey:"contrast_threshold",label:"Contrast Threshold",description:"Lightness threshold for text-on-color (white vs. black).",min:0,max:1,step:.01,get default(){return i(te)},cssVar:"--sf-contrast-threshold"})}var ge=g(Te,2);{let te=O(()=>o.opacity_disabled??.45);Zt(ge,{section:"contrast",fieldKey:"opacity_disabled",label:"Disabled Opacity",min:0,max:1,step:.01,get default(){return i(te)},cssVar:"--sf-opacity-disabled"})}$(S,I)},$$slots:{default:!0}}),$(e,w),fe()}var to=P('
  • '),so=P('
      '),ao=P('
      '),ro=P(`

      All --sf-* custom properties declared in the active SLASHED bundle, - grouped by category.

      `);function no(e,t){de(t,!0);const s=ae.inventory?.variables??[],a={color:"Colors",text:"Typography",font:"Typography",leading:"Typography",tracking:"Typography",body:"Typography",heading:"Typography",h1:"Typography",h2:"Typography",h3:"Typography",h4:"Typography",h5:"Typography",h6:"Typography",prose:"Typography",code:"Typography",optical:"Typography",line:"Typography",space:"Spacing",gap:"Spacing",gutter:"Spacing",component:"Spacing",section:"Spacing",flow:"Spacing",safe:"Spacing",header:"Spacing",sticky:"Spacing",size:"Sizing",aspect:"Sizing",ratio:"Sizing",touch:"Sizing",container:"Layout",stack:"Layout",cluster:"Layout",sidebar:"Layout",switcher:"Layout",grid:"Layout",cover:"Layout",frame:"Layout",reel:"Layout",imposter:"Layout",bento:"Layout",box:"Layout",center:"Layout",content:"Layout",breakout:"Layout",divider:"Layout",field:"Layout",border:"Borders",stroke:"Borders",radius:"Radius",shadow:"Shadows",blur:"Effects",opacity:"Effects",gradient:"Effects",mask:"Effects",perspective:"Effects",drop:"Effects",contrast:"Effects",duration:"Motion",ease:"Motion",transition:"Motion",motion:"Motion",animation:"Motion",icon:"Icons",z:"Z-Index",is:"States",current:"States",focus:"Focus",caret:"Focus",scroll:"Scroll",scrollbar:"Scroll",print:"Print",truncate:"Misc"},r=["Colors","Typography","Spacing","Sizing","Layout","Borders","Radius","Shadows","Effects","Motion","Icons","Z-Index","States","Focus","Scroll","Print","Misc"];function n(y){let w=y;w.startsWith("--sf-")&&(w=w.slice(5));const p=w.indexOf("-"),b=p===-1?w:w.slice(0,p);return a[b]||"Misc"}function o(y){const w={};for(const b of y){const E=n(b);w[E]||(w[E]=[]),w[E].push(b)}const p=[];for(const b of r)w[b]?.length&&(w[b].sort(),p.push({category:b,items:w[b]}));for(const b of Object.keys(w))!r.includes(b)&&w[b]?.length&&(w[b].sort(),p.push({category:b,items:w[b]}));return p}const c=o(s);let l=$e({});function d(y){l[y]=!l[y]}var h=ro(),v=f(h),u=f(v),m=g(v,4);Q(m,17,()=>c,({category:y,items:w})=>y,(y,w)=>{let p=()=>i(w).category,b=()=>i(w).items;var E=ao(),T=f(E),F=f(T),L=f(F),x=g(F,2),j=f(x),A=g(x,2),C=f(A),z=g(T,2);{var R=k=>{var S=so();Q(S,20,b,D=>D,(D,I)=>{var N=to(),ee=f(N),K=f(ee);V(()=>M(K,I)),$(D,N)}),$(k,S)};ne(z,k=>{l[p()]&&k(R)})}V(()=>{Y(T,"aria-expanded",l[p()]?"true":"false"),M(L,l[p()]?"▼":"▶"),M(j,p()),M(C,`(${b().length??""})`)}),ce("click",T,()=>d(p())),$(y,E)}),V(()=>M(u,`CSS Variables (${s.length??""})`)),$(e,h),fe()}Re(["click"]);var io=P('
    • '),lo=P('
        '),oo=P('
      • '),co=P('
          '),fo=P('

          All utility and state classes declared in the active SLASHED bundle.

          ');function uo(e,t){de(t,!0);const s=ae.inventory?.sf_classes??[],a=ae.inventory?.is_classes??[];let r=Z(!1),n=Z(!1);var o=fo(),c=f(o),l=f(c),d=g(c,4),h=f(d),v=f(h),u=f(v),m=g(v,4),y=f(m),w=g(h,2);{var p=C=>{var z=lo();Q(z,20,()=>s,R=>R,(R,k)=>{var S=io(),D=f(S),I=f(D);V(()=>M(I,`.${k??""}`)),$(R,S)}),$(C,z)};ne(w,C=>{i(r)&&C(p)})}var b=g(d,2),E=f(b),T=f(E),F=f(T),L=g(T,4),x=f(L),j=g(E,2);{var A=C=>{var z=co();Q(z,20,()=>a,R=>R,(R,k)=>{var S=oo(),D=f(S),I=f(D);V(()=>M(I,`.${k??""}`)),$(R,S)}),$(C,z)};ne(j,C=>{i(n)&&C(A)})}V(()=>{M(l,`Registered Classes (${s.length+a.length})`),Y(h,"aria-expanded",i(r)?"true":"false"),M(u,i(r)?"▼":"▶"),M(y,`(${s.length??""})`),Y(E,"aria-expanded",i(n)?"true":"false"),M(F,i(n)?"▼":"▶"),M(x,`(${a.length??""})`)}),ce("click",h,()=>q(r,!i(r))),ce("click",E,()=>q(n,!i(n))),$(e,o),fe()}Re(["click"]);async function fa(e,t){const{url:s,nonce:a}=ae.rest;if(!s)return console.info("[slashed-admin] (dev) would POST",e,t),{ok:!0,dev:!0};const r=await fetch(s+e,{method:"POST",credentials:"same-origin",headers:{"Content-Type":"application/json","X-WP-Nonce":a},body:JSON.stringify(t)});if(!r.ok){const n=await r.text();throw new Error(n||`HTTP ${r.status}`)}return r.json()}function ur(e,t){return fa("/tokens",{section:e,values:t})}function vr(e){return fa("/tokens/reset",{section:e})}function vo(e){return fa("/settings",e)}async function po(){const{url:e,nonce:t}=ae.rest;if(!e)return console.info("[slashed-admin] (dev) would GET /tokens/export"),{schema_version:"1",tokens:{},plugin_settings:{},dev:!0};const s=await fetch(e+"/tokens/export",{credentials:"same-origin",headers:{"X-WP-Nonce":t}});if(!s.ok)throw new Error(await s.text()||`HTTP ${s.status}`);return s.json()}function ho(e){return fa("/tokens/import",e)}var _o=P('Saved'),go=P(' '),mo=P(`

          Bundle Info

          The SLASHED CSS bundle is loaded automatically by the plugin. The inventory + straight into the framework as the source of the brand scale.

          `);function wl(e,t){ye(t,!0);const s=re.defaults?.colors??{},a=o=>o.charAt(0).toUpperCase()+o.slice(1),r=Object.entries(s.brand??{});var n=bl(),c=p(f(n),4);ne(c,21,()=>r,([o,d])=>o,(o,d)=>{var _=E(()=>lt(i(d),2));let u=()=>i(_)[0],v=()=>i(_)[1];{let m=E(()=>`brand_${u()}`),y=E(()=>a(u())),w=E(()=>s.brand_hex_hints?.[u()]??""),h=E(()=>`--sf-color-${u()}-light`);Hs(o,{get storeKey(){return i(m)},get label(){return i(y)},get hexHint(){return i(w)},get rawHint(){return v()},get cssVar(){return i(h)}})}});var l=p(c,2);_a(l,{children:(o,d)=>{var _=yl(),u=p(zt(_),2);ne(u,21,()=>Object.entries(s.status??{}),([y,w])=>y,(y,w)=>{var h=E(()=>lt(i(w),2));let b=()=>i(h)[0],k=()=>i(h)[1];{let j=E(()=>`status_${b()}`),F=E(()=>a(b())),V=E(()=>s.status_hex_hints?.[b()]??""),S=E(()=>`--sf-color-${b()}-light`);Hs(y,{get storeKey(){return i(j)},get label(){return i(F)},get hexHint(){return i(V)},get rawHint(){return k()},get cssVar(){return i(S)}})}});var v=p(u,6);ne(v,21,()=>Object.entries(s.brand_dark??s.brand??{}),([y])=>y,(y,w)=>{var h=E(()=>lt(i(w),1));let b=()=>i(h)[0];{let k=E(()=>`brand_dark_${b()}`),j=E(()=>a(b())),F=E(()=>s.brand_dark_hex_hints?.[b()]??""),V=E(()=>s.brand_dark?.[b()]??""),S=E(()=>`--sf-color-${b()}-dark`);Hs(y,{get storeKey(){return i(k)},get label(){return i(j)},get hexHint(){return i(F)},get rawHint(){return i(V)},get cssVar(){return i(S)}})}});var m=p(v,6);ne(m,21,()=>Object.entries(s.status_dark??s.status??{}),([y])=>y,(y,w)=>{var h=E(()=>lt(i(w),1));let b=()=>i(h)[0];{let k=E(()=>`status_dark_${b()}`),j=E(()=>a(b())),F=E(()=>s.status_dark_hex_hints?.[b()]??""),V=E(()=>s.status_dark?.[b()]??""),S=E(()=>`--sf-color-${b()}-dark`);Hs(y,{get storeKey(){return i(k)},get label(){return i(j)},get hexHint(){return i(F)},get rawHint(){return i(V)},get cssVar(){return i(S)}})}}),z(o,_)},$$slots:{default:!0}}),z(e,n),be()}var xl=A(''),kl=A(' '),Sl=A(' '),El=A('

          '),jl=A('
          ');function ga(e,t){let s=me(t,"cssVar",3,""),a=me(t,"fieldId",3,""),r=me(t,"description",3,"");var n=jl(),c=f(n),l=f(c);{var o=h=>{var b=xl(),k=f(b);q(()=>{Q(b,"for",a()),C(k,t.label)}),z(h,b)},d=h=>{var b=kl(),k=f(b);q(()=>C(k,t.label)),z(h,b)};ue(l,h=>{a()?h(o):h(d,-1)})}var _=p(l,2);{var u=h=>{var b=Sl(),k=f(b);q(()=>C(k,s())),z(h,b)};ue(_,h=>{s()&&h(u)})}var v=p(c,2),m=f(v);mn(m,()=>t.children??jr);var y=p(m,2);{var w=h=>{var b=El(),k=f(b);q(()=>C(k,r())),z(h,b)};ue(y,h=>{r()&&h(w)})}z(e,n)}var Tl=A('');function la(e,t){ye(t,!0);let s=me(t,"default",3,""),a=me(t,"cssVar",3,""),r=me(t,"description",3,""),n=me(t,"mono",3,!1),c=me(t,"width",3,"320px");const l=E(()=>H[t.section]?.[t.fieldKey]===void 0||H[t.section]?.[t.fieldKey]===null?"":String(H[t.section][t.fieldKey]));function o(d){Rs(t.section,t.fieldKey,d.currentTarget.value)}ga(e,{get label(){return t.label},get cssVar(){return a()},get fieldId(){return t.fieldKey},get description(){return r()},children:(d,_)=>{var u=Tl();let v,m;q(y=>{Q(u,"id",t.fieldKey),v=ut(u,1,"text svelte-j8yw6l",null,v,{mono:n()}),ia(u,i(l)),Q(u,"placeholder",y),m=fe(u,"",m,{width:c()})},[()=>String(s())]),ge("input",u,o),z(d,u)},$$slots:{default:!0}}),be()}Le(["input"]);var $l=A(' '),zl=A(' ',1);function ft(e,t){ye(t,!0);let s=me(t,"min",3,void 0),a=me(t,"max",3,void 0),r=me(t,"step",3,void 0),n=me(t,"default",3,""),c=me(t,"cssVar",3,""),l=me(t,"unit",3,""),o=me(t,"description",3,""),d=me(t,"width",3,"120px");const _=E(()=>H[t.section]?.[t.fieldKey]===void 0||H[t.section]?.[t.fieldKey]===null?"":String(H[t.section][t.fieldKey]));function u(v){Rs(t.section,t.fieldKey,v.currentTarget.value)}ga(e,{get label(){return t.label},get cssVar(){return c()},get fieldId(){return t.fieldKey},get description(){return o()},children:(v,m)=>{var y=zl(),w=zt(y);let h;var b=p(w,2);{var k=j=>{var F=$l(),V=f(F);q(()=>C(V,l())),z(j,F)};ue(b,j=>{l()&&j(k)})}q(j=>{Q(w,"id",t.fieldKey),Q(w,"min",s()),Q(w,"max",a()),Q(w,"step",r()),ia(w,i(_)),Q(w,"placeholder",j),h=fe(w,"",h,{width:d()})},[()=>String(n())]),ge("input",w,u),z(v,y)},$$slots:{default:!0}}),be()}Le(["input"]);var Cl=A('
          '),Al=A('
          '),Fl=A('

          Display Scale

          '),Rl=A('

          Live Scale Preview

          Text Scale

          ');function Ml(e,t){ye(t,!0);const s=16,a=360,r=1520;let n=se(r);const l=(re.defaults?.typography??{}).font_sizes??{};function o(M){const P=H.typography??{},x=l[M]??{},T=P[`size_${M}_min`],$=P[`size_${M}_max`],D=T!==void 0&&T!==""?parseFloat(T):x.min??.75,I=$!==void 0&&$!==""?parseFloat($):x.max??1;return{min:D,max:I}}const d=E(()=>{const M=Math.max(0,Math.min(1,(i(n)-a)/(r-a))),P={};for(const x of Object.keys(l)){const{min:T,max:$}=o(x),D=T+($-T)*M,I=D*s;P[x]={sizePx:I,sizeRem:D.toFixed(3)}}return P}),_=["2xs","xs","s","m","l","xl","2xl","3xl","4xl"],u=["display-s","display-m","display-l"],v=E(()=>_.filter(M=>l[M])),m=E(()=>u.filter(M=>l[M]));var y=Rl(),w=f(y),h=p(f(w),2),b=f(h);b.textContent="360px";var k=p(b,2);Q(k,"min",a),Q(k,"max",r);var j=p(k,2);j.textContent="1520px";var F=p(j,2),V=f(F),S=p(w,2),R=p(f(S),2);ne(R,16,()=>i(v),M=>M,(M,P)=>{const x=E(()=>i(d)[P]);var T=vr(),$=zt(T);{var D=I=>{var Y=Cl(),L=f(Y),G=f(L),W=p(L,2);let le;var ve=f(W),oe=p(W,2),pe=f(oe);q((B,ee)=>{C(G,P),le=fe(W,"",le,B),C(ve,P),C(pe,`${i(x).sizeRem??""}rem / ${ee??""}px`)},[()=>({"font-size":`${i(x).sizePx.toFixed(1)??""}px`}),()=>i(x).sizePx.toFixed(1)]),z(I,Y)};ue($,I=>{i(x)&&I(D)})}z(M,T)});var O=p(S,2);{var N=M=>{var P=Fl(),x=p(f(P),2);ne(x,16,()=>i(m),T=>T,(T,$)=>{const D=E(()=>i(d)[$]);var I=vr(),Y=zt(I);{var L=G=>{var W=Al(),le=f(W),ve=f(le),oe=p(le,2);let pe;var B=f(oe),ee=p(oe,2),he=f(ee);q((we,je)=>{C(ve,$),pe=fe(oe,"",pe,we),C(B,$),C(he,`${i(D).sizeRem??""}rem / ${je??""}px`)},[()=>({"font-size":`${i(D).sizePx.toFixed(1)??""}px`}),()=>i(D).sizePx.toFixed(1)]),z(G,W)};ue(Y,G=>{i(D)&&G(L)})}z(T,I)}),z(M,P)};ue(O,M=>{i(m).length>0&&M(N)})}q(()=>C(V,`${i(n)??""}px`)),$t(k,()=>i(n),M=>K(n,M)),z(e,y),be()}var Ol=A(""),Dl=A(""),Pl=A('
          '),Ll=A('
          Scale Generator Computes all step min/max values from a modular scale. Click Apply to write them to the fields below.
          ');function Vl(e,t){ye(t,!0);const s=[{label:"Minor Second (1.067)",value:1.067},{label:"Major Second (1.125)",value:1.125},{label:"Minor Third (1.200)",value:1.2},{label:"Major Third (1.250)",value:1.25},{label:"Perfect Fourth (1.333)",value:1.333},{label:"Aug. Fourth (1.414)",value:1.414},{label:"Perfect Fifth (1.500)",value:1.5},{label:"Golden Ratio (1.618)",value:1.618},{label:"Major Sixth (1.667)",value:1.667},{label:"Octave (2.000)",value:2}],a=[{name:"2xs",idx:-4},{name:"xs",idx:-3},{name:"s",idx:-2},{name:"m",idx:0},{name:"l",idx:1},{name:"xl",idx:2},{name:"2xl",idx:3},{name:"3xl",idx:4},{name:"4xl",idx:5},{name:"display-s",idx:5},{name:"display-m",idx:6},{name:"display-l",idx:7}];let r=se(1),n=se(1.25),c=se(1.25),l=se(1.333),o=se(.85);const d=E(()=>a.map(({name:T,idx:$})=>{const I=T.startsWith("display")?i(o):1,Y=+(i(r)*I*Math.pow(i(c),$)).toFixed(4),L=+(i(n)*I*Math.pow(i(l),$)).toFixed(4);return{name:T,min:Y,max:L}}));function _(){H.typography||(H.typography={});for(const{name:T,min:$,max:D}of i(d))H.typography[`size_${T}_min`]=String($),H.typography[`size_${T}_max`]=String(D);er()}var u=Ll(),v=p(f(u),2),m=f(v),y=p(f(m),2),w=f(y),h=p(m,2),b=p(f(h),2),k=f(b),j=p(h,2),F=p(f(j),2);ne(F,21,()=>s,T=>T.value,(T,$)=>{var D=Ol(),I=f(D),Y={};q(()=>{C(I,i($).label),Y!==(Y=i($).value)&&(D.value=(D.__value=i($).value)??"")}),z(T,D)});var V=p(j,2),S=p(f(V),2);ne(S,21,()=>s,T=>T.value,(T,$)=>{var D=Dl(),I=f(D),Y={};q(()=>{C(I,i($).label),Y!==(Y=i($).value)&&(D.value=(D.__value=i($).value)??"")}),z(T,D)});var R=p(V,2),O=p(f(R),2),N=f(O),M=p(v,2);ne(M,21,()=>i(d),({name:T,min:$,max:D})=>T,(T,$)=>{let D=()=>i($).name,I=()=>i($).min,Y=()=>i($).max;var L=Pl();let G;var W=f(L),le=f(W),ve=p(W,2),oe=f(ve);q((pe,B,ee)=>{G=ut(L,1,"scale-gen__step svelte-1y8fkhh",null,G,pe),C(le,D()),C(oe,`${B??""} / ${ee??""}`)},[()=>({display:D().startsWith("display")}),()=>I().toFixed(3),()=>Y().toFixed(3)]),z(T,L)});var P=p(M,2),x=f(P);$t(w,()=>i(r),T=>K(r,T)),$t(k,()=>i(n),T=>K(n,T)),na(F,()=>i(c),T=>K(c,T)),na(S,()=>i(l),T=>K(l,T)),$t(N,()=>i(o),T=>K(o,T)),ge("click",x,_),z(e,u),be()}Le(["click"]);var Il=A('
          '),ql=A('

          Additional Font Families

          Scale Multipliers

          ',1),Nl=A('

          Font Families

          Font Size Scale

          Min and max values in rem for fluid type scaling via clamp().

          ');function Bl(e,t){ye(t,!0);const s="typography",a=re.defaults?.[s]??{},r=a.font_families??{},n=a.font_sizes??{},c=h=>h.charAt(0).toUpperCase()+h.slice(1),l=["body","heading"],o=Object.fromEntries(Object.entries(r).filter(([h])=>l.includes(h))),d=Object.fromEntries(Object.entries(r).filter(([h])=>!l.includes(h)));var _=Nl(),u=p(f(_),2);ne(u,21,()=>Object.entries(o),([h,b])=>h,(h,b)=>{var k=E(()=>lt(i(b),2));let j=()=>i(k)[0],F=()=>i(k)[1];{let V=E(()=>`font_${j()}`),S=E(()=>c(j())),R=E(()=>`--sf-font-${j()}`);la(h,{section:s,get fieldKey(){return i(V)},get label(){return i(S)},get default(){return F()},get cssVar(){return i(R)},width:"420px"})}});var v=p(u,6);Vl(v,{});var m=p(v,2);ne(m,21,()=>Object.entries(n),([h,b])=>h,(h,b)=>{var k=E(()=>lt(i(b),2));let j=()=>i(k)[0],F=()=>i(k)[1];var V=Il(),S=f(V),R=f(S),O=f(R),N=p(R,2),M=f(N),P=p(S,2),x=f(P);{let $=E(()=>`size_${j()}_min`);ft(x,{section:s,get fieldKey(){return i($)},label:"Min",min:0,step:.01,get default(){return F().min},width:"80px"})}var T=p(x,2);{let $=E(()=>`size_${j()}_max`);ft(T,{section:s,get fieldKey(){return i($)},label:"Max",min:0,step:.01,get default(){return F().max},width:"80px"})}q(()=>{C(O,j()),C(M,`--sf-text-${j()??""}`)}),z(h,V)});var y=p(m,2);Ml(y,{});var w=p(y,2);_a(w,{children:(h,b)=>{var k=ql(),j=p(zt(k),2);ne(j,21,()=>Object.entries(d),([R,O])=>R,(R,O)=>{var N=E(()=>lt(i(O),2));let M=()=>i(N)[0],P=()=>i(N)[1];{let x=E(()=>`font_${M()}`),T=E(()=>c(M())),$=E(()=>`--sf-font-${M()}`);la(R,{section:s,get fieldKey(){return i(x)},get label(){return i(T)},get default(){return P()},get cssVar(){return i($)},width:"420px"})}});var F=p(j,4),V=f(F);{let R=E(()=>a.scale_multipliers?.text_scale??1);ft(V,{section:s,fieldKey:"text_scale",label:"Text Scale",min:0,step:.05,get default(){return i(R)},cssVar:"--sf-text-scale"})}var S=p(V,2);{let R=E(()=>a.scale_multipliers?.text_display_scale??1);ft(S,{section:s,fieldKey:"text_display_scale",label:"Display Scale",min:0,step:.05,get default(){return i(R)},cssVar:"--sf-text-display-scale"})}z(h,k)},$$slots:{default:!0}}),z(e,_),be()}var Kl=A('
          '),Hl=A('

          Live Scale Preview

          Card heading
          ');function Ul(e,t){ye(t,!0);const s=360,a=1440;let r=se(a);const n=re.defaults?.spacing??{},c=n.space_sizes??{};function l(L){const G=H.spacing??{},W=c[L]??{},le=G[`space_${L}_min`],ve=G[`space_${L}_max`],oe=le!==void 0&&le!==""?parseFloat(le):W.min??1,pe=ve!==void 0&&ve!==""?parseFloat(ve):W.max??1;return{min:oe,max:pe}}const o=E(()=>{const L=parseFloat(H.spacing?.space_scale??n.space_scale??1)||1,G=Math.max(0,Math.min(1,(i(r)-s)/(a-s))),W=["2xs","xs","s","m","l","xl","2xl","3xl","4xl"],le=l("4xl").max*L;return W.map(ve=>{const{min:oe,max:pe}=l(ve),B=(oe+(pe-oe)*G)*L,ee=B/le*100;return{name:ve,sizeRem:B.toFixed(3),barPct:Math.min(ee,100)}})}),d=E(()=>{const L=parseFloat(H.spacing?.space_scale??n.space_scale??1)||1,G=Math.max(0,Math.min(1,(i(r)-s)/(a-s))),W=le=>{const{min:ve,max:oe}=l(le);return((ve+(oe-ve)*G)*L).toFixed(3)};return{xs:W("xs"),s:W("s"),m:W("m"),l:W("l")}});var _=Hl(),u=f(_),v=p(f(u),2),m=f(v);m.textContent="360px";var y=p(m,2);Q(y,"min",s),Q(y,"max",a);var w=p(y,2);w.textContent="1440px";var h=p(w,2),b=f(h),k=p(u,2);ne(k,21,()=>i(o),L=>L.name,(L,G)=>{var W=Kl(),le=f(W),ve=f(le),oe=p(le,2),pe=f(oe);let B;var ee=p(oe,2),he=f(ee);q(()=>{C(ve,`--sf-space-${i(G).name??""}`),B=fe(pe,"",B,{width:`${i(G).barPct??""}%`}),C(he,`${i(G).sizeRem??""}rem`)}),z(L,W)});var j=p(k,2),F=f(j),V=f(F),S=p(F,2);let R;var O=f(S);let N;var M=p(f(O),2),P=p(f(M),2),x=f(P),T=p(O,2),$=f(T),D=p(T,2);let I;var Y=p(f(D),2);fe(Y,"",{},{width:"3rem"}),q(()=>{C(b,`${i(r)??""}px`),C(V,`Container context at ${i(r)??""}px`),R=fe(S,"",R,{padding:`${i(d).m??""}rem`,gap:`${i(d).s??""}rem`}),N=fe(O,"",N,{gap:`${i(d).s??""}rem`}),C(x,`padding: ${i(d).m??""}rem`),C($,`Body section · gap between rows: ${i(d).s??""}rem`),I=fe(D,"",I,{gap:`${i(d).xs??""}rem`,"padding-top":`${i(d).xs??""}rem`})}),$t(y,()=>i(r),L=>K(r,L)),z(e,_),be()}var Gl=A('
          '),Wl=A('

          Space Aliases

          ',1),Yl=A(`

          Spacing

          Space Scale Steps

          Min and max values in rem for fluid spacing via clamp(). + Leave both fields blank to use the framework defaults.

          `);function Xl(e,t){ye(t,!0);const s="spacing",a=re.defaults?.[s]??{},r=a.space_sizes??{},n=[{key:"gutter",label:"Gutter",cssVar:"--sf-space-gutter"},{key:"gap",label:"Gap",cssVar:"--sf-gap"},{key:"content_gap",label:"Content Gap",cssVar:"--sf-content-gap"},{key:"component_pad",label:"Component Pad",cssVar:"--sf-component-pad"},{key:"section_pad",label:"Section Pad",cssVar:"--sf-section-pad"}];var c=Yl(),l=p(f(c),2),o=f(l);{let v=E(()=>a.space_scale??1);ft(o,{section:s,fieldKey:"space_scale",label:"Space Scale",min:0,step:.05,get default(){return i(v)},cssVar:"--sf-space-scale"})}var d=p(l,6);ne(d,21,()=>Object.entries(r),([v,m])=>v,(v,m)=>{var y=E(()=>lt(i(m),2));let w=()=>i(y)[0],h=()=>i(y)[1];var b=Gl(),k=f(b),j=f(k),F=f(j),V=p(j,2),S=f(V),R=p(k,2),O=f(R);{let M=E(()=>`space_${w()}_min`);ft(O,{section:s,get fieldKey(){return i(M)},label:"Min",min:0,step:.01,get default(){return h().min},width:"80px"})}var N=p(O,2);{let M=E(()=>`space_${w()}_max`);ft(N,{section:s,get fieldKey(){return i(M)},label:"Max",min:0,step:.01,get default(){return h().max},width:"80px"})}q(()=>{C(F,w()),C(S,`--sf-space-${w()??""}`)}),z(v,b)});var _=p(d,2);Ul(_,{});var u=p(_,2);_a(u,{children:(v,m)=>{var y=Wl(),w=p(zt(y),2);ne(w,21,()=>n,h=>h.key,(h,b)=>{{let k=E(()=>a[i(b).key]??"");la(h,{section:s,get fieldKey(){return i(b).key},get label(){return i(b).label},get default(){return i(k)},get cssVar(){return i(b).cssVar},mono:!0})}}),z(v,y)},$$slots:{default:!0}}),z(e,c),be()}var Zl=A(' '),Jl=A(' ',1);function ls(e,t){ye(t,!0);let s=me(t,"cssVar",3,""),a=me(t,"unit",3,""),r=me(t,"description",3,"");const n=E(()=>H[t.section]?.[t.fieldKey]===void 0||H[t.section]?.[t.fieldKey]===null?"":String(H[t.section][t.fieldKey])),c=E(()=>i(n)===""||Number.isNaN(Number(i(n)))?Number(t.default):Number(i(n)));function l(d){Rs(t.section,t.fieldKey,d.currentTarget.value)}function o(d){Rs(t.section,t.fieldKey,d.currentTarget.value)}ga(e,{get label(){return t.label},get cssVar(){return s()},get fieldId(){return t.fieldKey},get description(){return r()},children:(d,_)=>{var u=Jl(),v=zt(u),m=p(v,2),y=p(m,2);{var w=h=>{var b=Zl(),k=f(b);q(()=>C(k,a())),z(h,b)};ue(y,h=>{a()&&h(w)})}q(h=>{Q(v,"min",t.min),Q(v,"max",t.max),Q(v,"step",t.step),ia(v,i(c)),Q(m,"id",t.fieldKey),Q(m,"min",t.min),Q(m,"max",t.max),Q(m,"step",t.step),ia(m,i(n)),Q(m,"placeholder",h)},[()=>String(t.default)]),ge("input",v,l),ge("input",m,o),z(d,u)},$$slots:{default:!0}}),be()}Le(["input"]);var Ql=A(""),eo=A('');function to(e,t){ye(t,!0);let s=me(t,"options",19,()=>[]),a=me(t,"default",3,""),r=me(t,"cssVar",3,""),n=me(t,"description",3,"");const c=E(()=>s().map(d=>typeof d=="string"?{value:d,label:d}:d)),l=E(()=>H[t.section]?.[t.fieldKey]===void 0||H[t.section]?.[t.fieldKey]===null?"":String(H[t.section][t.fieldKey]));function o(d){Rs(t.section,t.fieldKey,d.currentTarget.value)}ga(e,{get label(){return t.label},get cssVar(){return r()},get fieldId(){return t.fieldKey},get description(){return n()},children:(d,_)=>{var u=eo(),v=f(u),m=f(v);v.value=v.__value="";var y=p(v);ne(y,17,()=>i(c),h=>h.value,(h,b)=>{var k=Ql(),j=f(k),F={};q(()=>{C(j,i(b).label),F!==(F=i(b).value)&&(k.value=(k.__value=i(b).value)??"")}),z(h,k)});var w;yn(u),q(()=>{Q(u,"id",t.fieldKey),C(m,`Default (${a()??""})`),w!==(w=i(l))&&(u.value=(u.__value=i(l))??"",Qa(u,i(l)))}),ge("change",u,o),z(d,u)},$$slots:{default:!0}}),be()}Le(["change"]);var so=A('
          '),ao=A('
          '),ro=A('
          '),no=A('

          Shadow

          Motion — Durations

          Base duration values in milliseconds.

          Z-Index

          Z-index layer values for stacking context management.

          Contrast

          ',1),io=A('

          Radius

          Shadows

          Motion

          Accessibility

          ');function lo(e,t){ye(t,!0);const s=re.defaults?.radius??{},a=re.defaults?.shadows??{},r=re.defaults?.motion??{},n=re.defaults?.zindex??{},c=re.defaults?.contrast??{},l=r.durations??{},o=B=>B.charAt(0).toUpperCase()+B.slice(1),d=[0,2,4,8,12,16,24,9999],_=["none","xs","s","m","l","xl","2xl","full"],u=E(()=>parseFloat(H.radius?.radius_scale??re.defaults?.radius?.radius_scale??1)),v=E(()=>d.map(B=>B*i(u))),m=E(()=>parseFloat(H.shadows?.shadow_strength??a.shadow_strength??.08)),y=E(()=>parseFloat(H.motion?.motion_scale??r.motion_scale??1)||1),w=["instant","fast","normal","slow","slower"],h=E(()=>w.map(B=>{const ee=H.motion?.[`duration_${B}`],he=parseFloat(ee!==void 0&&ee!==""?ee:l[B]??0);return{name:B,ms:Math.round(he*i(y))}})),b=E(()=>parseFloat(H.contrast?.focus_ring_width??c.focus_ring_width??2)),k=E(()=>parseFloat(H.contrast?.focus_ring_offset??c.focus_ring_offset??2)),j=E(()=>H.contrast?.focus_ring_style??c.focus_ring_style??"solid"),F=E(()=>[{label:"xs",shadow:`0 1px 2px 0 rgba(0,0,0,${(i(m)*.5).toFixed(4)})`},{label:"s",shadow:`0 1px 2px 0 rgba(0,0,0,${(i(m)*.5).toFixed(4)}), 0 2px 6px 0 rgba(0,0,0,${i(m).toFixed(4)})`},{label:"m",shadow:`0 1px 3px 0 rgba(0,0,0,${(i(m)*.5).toFixed(4)}), 0 4px 12px 0 rgba(0,0,0,${(i(m)*2).toFixed(4)})`},{label:"l",shadow:`0 2px 4px 0 rgba(0,0,0,${(i(m)*.5).toFixed(4)}), 0 8px 24px 0 rgba(0,0,0,${(i(m)*3).toFixed(4)})`},{label:"xl",shadow:`0 2px 8px 0 rgba(0,0,0,${(i(m)*.5).toFixed(4)}), 0 12px 36px 0 rgba(0,0,0,${(i(m)*3.5).toFixed(4)})`},{label:"glow",shadow:`0 0 15px 2px rgba(74,48,208,${Math.min(i(m)*2,.7).toFixed(4)})`}]);var V=io(),S=p(f(V),2),R=f(S);{let B=E(()=>s.radius_scale??1);ft(R,{section:"radius",fieldKey:"radius_scale",label:"Radius Scale",min:0,step:.1,get default(){return i(B)},cssVar:"--sf-radius-scale"})}var O=p(S,2);ne(O,23,()=>i(v),(B,ee)=>_[ee],(B,ee,he)=>{var we=so(),je=f(we);let $e;var Oe=p(je,2),Ae=f(Oe);q(()=>{$e=fe(je,"",$e,{"border-radius":d[i(he)]===9999?"9999px":`${i(ee)}px`}),C(Ae,_[i(he)])}),z(B,we)});var N=p(O,4),M=f(N);{let B=E(()=>a.shadow_strength??.08);ls(M,{section:"shadows",fieldKey:"shadow_strength",label:"Shadow Strength",description:"Base opacity for shadow layers (0–1).",min:0,max:1,step:.01,get default(){return i(B)},cssVar:"--sf-shadow-strength"})}var P=p(N,2);ne(P,21,()=>i(F),B=>B.label,(B,ee)=>{var he=ao(),we=f(he);let je;var $e=f(we);q(()=>{je=fe(we,"",je,{"box-shadow":i(ee).shadow}),C($e,i(ee).label)}),z(B,he)});var x=p(P,4),T=f(x);{let B=E(()=>r.motion_scale??1);ft(T,{section:"motion",fieldKey:"motion_scale",label:"Motion Scale",min:0,step:.1,get default(){return i(B)},cssVar:"--sf-motion-scale"})}var $=p(x,2);ne($,21,()=>i(h),B=>B.name,(B,ee)=>{var he=ro(),we=f(he),je=f(we),$e=p(we,2),Oe=f($e);let Ae;var de=p($e,2),xe=f(de);q(()=>{C(je,i(ee).name),Ae=fe(Oe,"",Ae,{"animation-duration":`${i(ee).ms??""}ms`}),C(xe,`${i(ee).ms??""}ms`)}),z(B,he)});var D=p($,4),I=f(D);{let B=E(()=>c.focus_ring_width??2);ls(I,{section:"contrast",fieldKey:"focus_ring_width",label:"Focus Ring Width",min:0,max:8,step:.5,get default(){return i(B)},cssVar:"--sf-focus-ring-width",unit:"px"})}var Y=p(I,2);{let B=E(()=>c.focus_ring_offset??2);ls(Y,{section:"contrast",fieldKey:"focus_ring_offset",label:"Focus Ring Offset",min:0,max:8,step:.5,get default(){return i(B)},cssVar:"--sf-focus-ring-offset",unit:"px"})}var L=p(Y,2);{let B=E(()=>c.focus_ring_style??"solid");to(L,{section:"contrast",fieldKey:"focus_ring_style",label:"Focus Ring Style",options:["solid","dashed","dotted","double","none"],get default(){return i(B)},cssVar:"--sf-focus-ring-style"})}var G=p(D,2),W=f(G);let le;var ve=p(W,2),oe=f(ve),pe=p(G,2);_a(pe,{children:(B,ee)=>{var he=no(),we=p(zt(he),2),je=f(we);{let _e=E(()=>a.glow_color??"");la(je,{section:"shadows",fieldKey:"glow_color",label:"Glow Color",get default(){return i(_e)},cssVar:"--sf-shadow-glow-color",mono:!0})}var $e=p(we,6);ne($e,21,()=>Object.entries(l),([_e,Ke])=>_e,(_e,Ke)=>{var nt=E(()=>lt(i(Ke),2));let pt=()=>i(nt)[0],Fe=()=>i(nt)[1];{let wt=E(()=>`duration_${pt()}`),xt=E(()=>o(pt())),kn=E(()=>`--sf-duration-${pt()}`);ft(_e,{section:"motion",get fieldKey(){return i(wt)},get label(){return i(xt)},min:0,step:10,get default(){return Fe()},get cssVar(){return i(kn)},unit:"ms"})}});var Oe=p($e,6);ne(Oe,21,()=>Object.entries(n),([_e,Ke])=>_e,(_e,Ke)=>{var nt=E(()=>lt(i(Ke),2));let pt=()=>i(nt)[0],Fe=()=>i(nt)[1];{let wt=E(()=>o(pt())),xt=E(()=>`--sf-z-${pt()}`);ft(_e,{section:"zindex",get fieldKey(){return pt()},get label(){return i(wt)},step:1,get default(){return Fe()},get cssVar(){return i(xt)}})}});var Ae=p(Oe,4),de=f(Ae);{let _e=E(()=>c.contrast_bias??0);ls(de,{section:"contrast",fieldKey:"contrast_bias",label:"Contrast Bias",description:"Shifts derived shades up (positive) or down (negative).",min:-.2,max:.2,step:.01,get default(){return i(_e)},cssVar:"--sf-contrast-bias"})}var xe=p(de,2);{let _e=E(()=>c.contrast_threshold??.6);ls(xe,{section:"contrast",fieldKey:"contrast_threshold",label:"Contrast Threshold",description:"Lightness threshold for text-on-color (white vs. black).",min:0,max:1,step:.01,get default(){return i(_e)},cssVar:"--sf-contrast-threshold"})}var Te=p(xe,2);{let _e=E(()=>c.opacity_disabled??.45);ls(Te,{section:"contrast",fieldKey:"opacity_disabled",label:"Disabled Opacity",min:0,max:1,step:.01,get default(){return i(_e)},cssVar:"--sf-opacity-disabled"})}z(B,he)},$$slots:{default:!0}}),q(()=>{le=fe(W,"",le,{"--fp-width":`${i(b)??""}px`,"--fp-offset":`${i(k)??""}px`,"--fp-style":i(j)}),C(oe,`${i(b)??""}px ${i(j)??""} · ${i(k)??""}px offset`)}),z(e,V),be()}var oo=A('
        • '),co=A('
            '),fo=A('
            '),uo=A(`

            All --sf-* custom properties declared in the active SLASHED bundle, + grouped by category.

            `);function vo(e,t){ye(t,!0);const s=re.inventory?.variables??[],a={color:"Colors",text:"Typography",font:"Typography",leading:"Typography",tracking:"Typography",body:"Typography",heading:"Typography",h1:"Typography",h2:"Typography",h3:"Typography",h4:"Typography",h5:"Typography",h6:"Typography",prose:"Typography",code:"Typography",optical:"Typography",line:"Typography",space:"Spacing",gap:"Spacing",gutter:"Spacing",component:"Spacing",section:"Spacing",flow:"Spacing",safe:"Spacing",header:"Spacing",sticky:"Spacing",size:"Sizing",aspect:"Sizing",ratio:"Sizing",touch:"Sizing",container:"Layout",stack:"Layout",cluster:"Layout",sidebar:"Layout",switcher:"Layout",grid:"Layout",cover:"Layout",frame:"Layout",reel:"Layout",imposter:"Layout",bento:"Layout",box:"Layout",center:"Layout",content:"Layout",breakout:"Layout",divider:"Layout",field:"Layout",border:"Borders",stroke:"Borders",radius:"Radius",shadow:"Shadows",blur:"Effects",opacity:"Effects",gradient:"Effects",mask:"Effects",perspective:"Effects",drop:"Effects",contrast:"Effects",duration:"Motion",ease:"Motion",transition:"Motion",motion:"Motion",animation:"Motion",icon:"Icons",z:"Z-Index",is:"States",current:"States",focus:"Focus",caret:"Focus",scroll:"Scroll",scrollbar:"Scroll",print:"Print",truncate:"Misc"},r=["Colors","Typography","Spacing","Sizing","Layout","Borders","Radius","Shadows","Effects","Motion","Icons","Z-Index","States","Focus","Scroll","Print","Misc"];function n(y){let w=y;w.startsWith("--sf-")&&(w=w.slice(5));const h=w.indexOf("-"),b=h===-1?w:w.slice(0,h);return a[b]||"Misc"}function c(y){const w={};for(const b of y){const k=n(b);w[k]||(w[k]=[]),w[k].push(b)}const h=[];for(const b of r)w[b]?.length&&(w[b].sort(),h.push({category:b,items:w[b]}));for(const b of Object.keys(w))!r.includes(b)&&w[b]?.length&&(w[b].sort(),h.push({category:b,items:w[b]}));return h}const l=c(s);let o=Ne({});function d(y){o[y]=!o[y]}var _=uo(),u=f(_),v=f(u),m=p(u,4);ne(m,17,()=>l,({category:y,items:w})=>y,(y,w)=>{let h=()=>i(w).category,b=()=>i(w).items;var k=fo(),j=f(k),F=f(j),V=f(F),S=p(F,2),R=f(S),O=p(S,2),N=f(O),M=p(j,2);{var P=x=>{var T=co();ne(T,20,b,$=>$,($,D)=>{var I=oo(),Y=f(I),L=f(Y);q(()=>C(L,D)),z($,I)}),z(x,T)};ue(M,x=>{o[h()]&&x(P)})}q(()=>{Q(j,"aria-expanded",o[h()]?"true":"false"),C(V,o[h()]?"▼":"▶"),C(R,h()),C(N,`(${b().length??""})`)}),ge("click",j,()=>d(h())),z(y,k)}),q(()=>C(v,`CSS Variables (${s.length??""})`)),z(e,_),be()}Le(["click"]);var po=A('
          • '),ho=A('
              '),_o=A('
            • '),go=A('
                '),mo=A('

                All utility and state classes declared in the active SLASHED bundle.

                ');function yo(e,t){ye(t,!0);const s=re.inventory?.sf_classes??[],a=re.inventory?.is_classes??[];let r=se(!1),n=se(!1);var c=mo(),l=f(c),o=f(l),d=p(l,4),_=f(d),u=f(_),v=f(u),m=p(u,4),y=f(m),w=p(_,2);{var h=N=>{var M=ho();ne(M,20,()=>s,P=>P,(P,x)=>{var T=po(),$=f(T),D=f($);q(()=>C(D,`.${x??""}`)),z(P,T)}),z(N,M)};ue(w,N=>{i(r)&&N(h)})}var b=p(d,2),k=f(b),j=f(k),F=f(j),V=p(j,4),S=f(V),R=p(k,2);{var O=N=>{var M=go();ne(M,20,()=>a,P=>P,(P,x)=>{var T=_o(),$=f(T),D=f($);q(()=>C(D,`.${x??""}`)),z(P,T)}),z(N,M)};ue(R,N=>{i(n)&&N(O)})}q(()=>{C(o,`Registered Classes (${s.length+a.length})`),Q(_,"aria-expanded",i(r)?"true":"false"),C(v,i(r)?"▼":"▶"),C(y,`(${s.length??""})`),Q(k,"aria-expanded",i(n)?"true":"false"),C(F,i(n)?"▼":"▶"),C(S,`(${a.length??""})`)}),ge("click",_,()=>K(r,!i(r))),ge("click",k,()=>K(n,!i(n))),z(e,c),be()}Le(["click"]);async function ma(e,t){const{url:s,nonce:a}=re.rest;if(!s)return console.info("[slashed-admin] (dev) would POST",e,t),{ok:!0,dev:!0};const r=await fetch(s+e,{method:"POST",credentials:"same-origin",headers:{"Content-Type":"application/json","X-WP-Nonce":a},body:JSON.stringify(t)});if(!r.ok){const n=await r.text();throw new Error(n||`HTTP ${r.status}`)}return r.json()}function yr(e,t){return ma("/tokens",{section:e,values:t})}function br(e){return ma("/tokens/reset",{section:e})}function bo(e){return ma("/settings",e)}async function wo(){const{url:e,nonce:t}=re.rest;if(!e)return console.info("[slashed-admin] (dev) would GET /tokens/export"),{schema_version:"1",tokens:{},plugin_settings:{},dev:!0};const s=await fetch(e+"/tokens/export",{credentials:"same-origin",headers:{"X-WP-Nonce":t}});if(!s.ok)throw new Error(await s.text()||`HTTP ${s.status}`);return s.json()}function xo(e){return ma("/tokens/import",e)}var ko=A('Saved'),So=A(' '),Eo=A(`

                Bundle Info

                The SLASHED CSS bundle is loaded automatically by the plugin. The inventory is parsed from whichever bundle is active (essential / optimal / full) and - drives the variable pickers, class autocomplete, and color palette in Bricks.

                Variables registered
                Classes registered

                Plugin Settings

                Choose which SLASHED CSS bundle to load on the frontend and in the Bricks editor canvas.

                Override the HTML root font-size. Use this if Bricks forces a font-size you don't want.

                `);function yo(e,t){de(t,!0);let s=Z($e(ae.pluginSettings?.css_bundle??"optimal")),a=Z($e(ae.pluginSettings?.html_font_size??"")),r=Z(!1),n=Z(!1),o=Z(""),c=null;async function l(){q(r,!0),q(n,!1),q(o,"");try{await vo({css_bundle:i(s),html_font_size:i(a)}),q(n,!0),c&&clearTimeout(c),c=setTimeout(()=>{q(n,!1),c=null},3e3)}catch(N){q(o,N.message||"Save failed",!0)}finally{q(r,!1)}}var d=mo(),h=g(f(d),4),v=g(f(h),2),u=f(v),m=g(v,4),y=f(m),w=g(h,4),p=g(f(w),2),b=f(p);b.value=b.__value="essential";var E=g(b);E.value=E.__value="optimal";var T=g(E);T.value=T.__value="full";var F=g(w,2),L=g(f(F),2),x=f(L);x.value=x.__value="";var j=g(x);j.value=j.__value="100";var A=g(j);A.value=A.__value="62.5";var C=g(F,2),z=f(C),R=f(z),k=g(z,2);{var S=N=>{var ee=_o();$(N,ee)};ne(k,N=>{i(n)&&N(S)})}var D=g(k,2);{var I=N=>{var ee=go(),K=f(ee);V(()=>M(K,i(o))),$(N,ee)};ne(D,N=>{i(o)&&N(I)})}V(()=>{M(u,ae.inventory?.variables?.length??0),M(y,(ae.inventory?.sf_classes?.length??0)+(ae.inventory?.is_classes?.length??0)),z.disabled=i(r),M(R,i(r)?"Saving...":"Save Settings")}),Js(p,()=>i(s),N=>q(s,N)),Js(L,()=>i(a),N=>q(a,N)),ce("click",z,l),$(e,d),fe()}Re(["click"]);var bo=P(' '),wo=P('

                '),xo=P('

                '),ko=P(`

                Export / Import Tokens

                Export your current SLASHED token overrides (colors, typography, spacing, etc.) to a .json file and import them on any other WordPress site running this plugin. + drives the variable pickers, class autocomplete, and color palette in Bricks.

                Variables registered
                Classes registered

                Plugin Settings

                Choose which SLASHED CSS bundle to load on the frontend and in the Bricks editor canvas.

                Override the HTML root font-size. Use this if Bricks forces a font-size you don't want.

                `);function jo(e,t){ye(t,!0);let s=se(Ne(re.pluginSettings?.css_bundle??"optimal")),a=se(Ne(re.pluginSettings?.html_font_size??"")),r=se(!1),n=se(!1),c=se(""),l=null;async function o(){K(r,!0),K(n,!1),K(c,"");try{await bo({css_bundle:i(s),html_font_size:i(a)}),K(n,!0),l&&clearTimeout(l),l=setTimeout(()=>{K(n,!1),l=null},3e3)}catch(I){K(c,I.message||"Save failed",!0)}finally{K(r,!1)}}var d=Eo(),_=p(f(d),4),u=p(f(_),2),v=f(u),m=p(u,4),y=f(m),w=p(_,4),h=p(f(w),2),b=f(h);b.value=b.__value="essential";var k=p(b);k.value=k.__value="optimal";var j=p(k);j.value=j.__value="full";var F=p(w,2),V=p(f(F),2),S=f(V);S.value=S.__value="";var R=p(S);R.value=R.__value="100";var O=p(R);O.value=O.__value="62.5";var N=p(F,2),M=f(N),P=f(M),x=p(M,2);{var T=I=>{var Y=ko();z(I,Y)};ue(x,I=>{i(n)&&I(T)})}var $=p(x,2);{var D=I=>{var Y=So(),L=f(Y);q(()=>C(L,i(c))),z(I,Y)};ue($,I=>{i(c)&&I(D)})}q(()=>{C(v,re.inventory?.variables?.length??0),C(y,(re.inventory?.sf_classes?.length??0)+(re.inventory?.is_classes?.length??0)),M.disabled=i(r),C(P,i(r)?"Saving...":"Save Settings")}),na(h,()=>i(s),I=>K(s,I)),na(V,()=>i(a),I=>K(a,I)),ge("click",M,o),z(e,d),be()}Le(["click"]);const wr=22.5,To=95;function wn(e,t){if(e<=0||t<=0)return null;const s=To-wr,a=(t-e)/s,r=parseFloat(a.toFixed(6)),n=parseFloat(e.toFixed(4)),c=parseFloat(t.toFixed(4));return`clamp(${n}rem, calc(${r} * (100vw - ${wr}rem) + ${n}rem), ${c}rem)`}function xr(e){const t=parseFloat(e);if(isNaN(t))return"0";let s=t.toFixed(6).replace(/0+$/,"").replace(/\.$/,"");return s===""?"0":s}function Se(e){return e!=null&&e!==""}function $o(e){const t=[],s=["primary","secondary","tertiary","action","neutral","base"];for(const r of s){const n=`brand_${r}`;Se(e[n])&&t.push(`--sf-color-${r}-light: ${e[n]};`)}for(const r of s){const n=`brand_dark_${r}`;Se(e[n])&&t.push(`--sf-color-${r}-dark: ${e[n]};`)}const a=["success","warning","error","info","danger"];for(const r of a){const n=`status_${r}`;Se(e[n])&&t.push(`--sf-color-${r}-light: ${e[n]};`)}for(const r of a){const n=`status_dark_${r}`;Se(e[n])&&t.push(`--sf-color-${r}-dark: ${e[n]};`)}return t}function zo(e){const t=[],s=["body","heading","mono","display","humanist","geometric","slab"];for(const r of s){const n=`font_${r}`;Se(e[n])&&t.push(`--sf-font-${r}: ${e[n]};`)}Se(e.text_scale)&&t.push(`--sf-text-scale: ${e.text_scale};`),Se(e.text_display_scale)&&t.push(`--sf-text-display-scale: ${e.text_display_scale};`);const a=["2xs","xs","s","m","l","xl","2xl","3xl","4xl","display-s","display-m","display-l"];for(const r of a){const n=`size_${r}_min`,c=`size_${r}_max`,l=e[n],o=e[c];if(Se(l)&&Se(o)){const d=wn(parseFloat(l),parseFloat(o));d&&t.push(`--sf-text-${r}: ${d};`)}}return t}function Co(e){const t=[];Se(e.space_scale)&&t.push(`--sf-space-scale: ${e.space_scale};`);const s=["2xs","xs","s","m","l","xl","2xl","3xl","4xl"];for(const r of s){const n=e[`space_${r}_min`],c=e[`space_${r}_max`];if(Se(n)&&Se(c)){const l=wn(parseFloat(n),parseFloat(c));l&&t.push(`--sf-space-${r}: calc(${l} * var(--sf-space-scale));`)}}const a={gutter:"--sf-space-gutter",gap:"--sf-gap",content_gap:"--sf-content-gap",component_pad:"--sf-component-pad",section_pad:"--sf-section-pad"};for(const[r,n]of Object.entries(a))Se(e[r])&&t.push(`${n}: ${e[r]};`);return t}function Ao(e){const t=[];return Se(e.radius_scale)&&t.push(`--sf-radius-scale: ${e.radius_scale};`),t}function Fo(e){const t=[];return Se(e.shadow_strength)&&t.push(`--sf-shadow-strength: calc(${e.shadow_strength} + var(--sf-is-dark) * 0.17);`),Se(e.glow_color)&&t.push(`--sf-shadow-glow-color: ${e.glow_color};`),t}function Ro(e){const t=[];Se(e.motion_scale)&&t.push(`--sf-motion-scale: ${e.motion_scale};`);const s=["instant","fast","normal","slow","slower"];for(const a of s){const r=`duration_${a}`;Se(e[r])&&t.push(`--sf-duration-${a}: calc(${e[r]}ms * var(--sf-motion-scale));`)}return t}function Mo(e){const t=[],s=["below","base","raised","low","mid","high","top","max"];for(const a of s)Se(e[a])&&t.push(`--sf-z-${a}: ${parseInt(e[a],10)};`);return t}function Oo(e){const t=[],s={contrast_bias:"--sf-contrast-bias",contrast_threshold:"--sf-contrast-threshold",opacity_disabled:"--sf-opacity-disabled"};for(const[r,n]of Object.entries(s))Se(e[r])&&t.push(`${n}: ${xr(e[r])};`);const a={focus_ring_width:"--sf-focus-ring-width",focus_ring_offset:"--sf-focus-ring-offset"};for(const[r,n]of Object.entries(a))Se(e[r])&&t.push(`${n}: ${xr(e[r])}px;`);return Se(e.focus_ring_style)&&["solid","dashed","dotted","double","none"].includes(e.focus_ring_style)&&t.push(`--sf-focus-ring-style: ${e.focus_ring_style};`),t}function tr(e){const t=[];if(e.colors&&typeof e.colors=="object"&&t.push(...$o(e.colors)),e.typography&&typeof e.typography=="object"&&t.push(...zo(e.typography)),e.spacing&&typeof e.spacing=="object"&&t.push(...Co(e.spacing)),e.radius&&typeof e.radius=="object"&&t.push(...Ao(e.radius)),e.shadows&&typeof e.shadows=="object"&&t.push(...Fo(e.shadows)),e.motion&&typeof e.motion=="object"&&t.push(...Ro(e.motion)),e.zindex&&typeof e.zindex=="object"&&t.push(...Mo(e.zindex)),e.contrast&&typeof e.contrast=="object"&&t.push(...Oo(e.contrast)),t.length===0)return"";let s=`@layer slashed.overrides { + :root { +`;for(const a of t)s+=` ${a} +`;return s+=` } +}`,s}function xn(e){if(!e||typeof e!="object")return!1;for(const t of Object.values(e))if(!(!t||typeof t!="object")){for(const s of Object.values(t))if(typeof s=="object"&&s!==null){for(const a of Object.values(s))if(a!==""&&a!==null&&a!==void 0)return!0}else if(s!==""&&s!==null&&s!==void 0)return!0}return!1}var Do=A(' '),Po=A('

                '),Lo=A('

                '),Vo=A(`

                Export / Import Tokens

                Export your current SLASHED token overrides (colors, typography, spacing, etc.) to a .json file and import them on any other WordPress site running this plugin. This makes Bricks templates fully portable — the template JSON carries structure and class references; this file carries the brand tokens that drive the visual result.

                Export

                Downloads a .json file containing all your active token overrides and plugin settings. - Share this file alongside your Bricks template export so the visual result is identical on every site.

                Import

                Upload a .json file previously exported from this plugin. Each section is validated + Share this file alongside your Bricks template export so the visual result is identical on every site.

                Import

                Upload a .json file previously exported from this plugin. Each section is validated before saving. Unknown or malformed sections are skipped — existing settings are not touched unless the file provides a valid replacement.

                Bricks template workflow — quick reference

                1. Design using SLASHED tokens. In the Bricks color picker, always choose a swatch from the SLASHED · … palette groups (Primary, Secondary, Status, Semantic). Never type a hex value directly — that bakes a @@ -25,8 +29,8 @@ var mn=Object.defineProperty;var Ya=e=>{throw TypeError(e)};var yn=(e,t,s)=>t in import the token file via this tab, then import the Bricks template via Bricks → Templates. The plugin re-registers all SLASHED classes, variables, and color palettes automatically.
                2. Verify in the Bricks builder canvas that colors, spacing, and fonts match. If something looks off, check the browser console for unresolved var() calls — - this means the CSS bundle isn't loading or the token file wasn't imported yet.
                `);function So(e,t){de(t,!0);let s=Z(!1),a=Z("");async function r(){q(s,!0),q(a,"");try{const R=await po(),k=JSON.stringify(R,null,2),S=new Blob([k],{type:"application/json"}),D=URL.createObjectURL(S),I=document.createElement("a");I.href=D,I.download=`slashed-tokens-${new Date().toISOString().slice(0,10)}.json`,I.click(),URL.revokeObjectURL(D)}catch(R){q(a,R.message||"Export failed",!0)}finally{q(s,!1)}}let n=Z(null),o=Z(!1),c=Z(""),l=Z(""),d=Z(0);async function h(){const R=i(n)?.files?.[0];if(R){q(c,""),q(l,""),q(o,!0);try{const k=await R.text(),S=JSON.parse(k),D=await ho(S),I=D.settings_imported?" Plugin settings restored.":"";q(c,`Imported ${D.imported} section(s) successfully.${I}`),q(d,3);const N=setInterval(()=>{q(d,i(d)-1),i(d)<=0&&(clearInterval(N),window.location.reload())},1e3)}catch(k){q(l,k.message||"Import failed",!0)}finally{q(o,!1),i(n)&&(i(n).value="")}}}var v=ko(),u=g(f(v),4),m=g(f(u),4),y=f(m),w=f(y),p=g(y,2);{var b=R=>{var k=bo(),S=f(k);V(()=>M(S,i(a))),$(R,k)};ne(p,R=>{i(a)&&R(b)})}var E=g(u,2),T=g(f(E),4),F=f(T);tl(F,R=>q(n,R),()=>i(n));var L=g(F,2),x=f(L),j=g(T,2);{var A=R=>{var k=wo(),S=f(k),D=g(S);{var I=N=>{var ee=qi();V(()=>M(ee,`Reloading in ${i(d)??""}…`)),$(N,ee)};ne(D,N=>{i(d)>0&&N(I)})}V(()=>M(S,`${i(c)??""} `)),$(R,k)};ne(j,R=>{i(c)&&R(A)})}var C=g(j,2);{var z=R=>{var k=xo(),S=f(k);V(()=>M(S,i(l))),$(R,k)};ne(C,R=>{i(l)&&R(z)})}V(()=>{y.disabled=i(s),M(w,i(s)?"Exporting…":"Download token file"),L.disabled=i(o),M(x,i(o)?"Importing…":"Import token file")}),ce("click",y,r),ce("click",L,h),$(e,v),fe()}Re(["click"]);var Eo=P('

                Parameters:

                 
                '),jo=P(`

                Filter Hooks Reference

                These WordPress filter hooks let you customize the SLASHED Bricks integration - from your theme or a mu-plugin. Each hook fires during plugin initialization.

                `);function To(e){const t=[{name:"slashed_bricks/css_bundle_url",description:"Override which CSS bundle URL to load.",params:"$url (string) - The current CSS bundle URL.",example:`add_filter( 'slashed_bricks/css_bundle_url', function( $url ) { + this means the CSS bundle isn't loading or the token file wasn't imported yet.
                `);function Io(e,t){ye(t,!0);let s=se(!1),a=se("");const r=E(()=>xn(H));function n(){const $=tr(H);if(!$)return;const D=new Blob([$],{type:"text/css"}),I=URL.createObjectURL(D),Y=document.createElement("a");Y.href=I,Y.download=`slashed-custom-${new Date().toISOString().slice(0,10)}.css`,Y.click(),URL.revokeObjectURL(I)}async function c(){K(s,!0),K(a,"");try{const $=await wo(),D=JSON.stringify($,null,2),I=new Blob([D],{type:"application/json"}),Y=URL.createObjectURL(I),L=document.createElement("a");L.href=Y,L.download=`slashed-tokens-${new Date().toISOString().slice(0,10)}.json`,L.click(),URL.revokeObjectURL(Y)}catch($){K(a,$.message||"Export failed",!0)}finally{K(s,!1)}}let l=se(null),o=se(!1),d=se(""),_=se(""),u=se(0);async function v(){const $=i(l)?.files?.[0];if($){K(d,""),K(_,""),K(o,!0);try{const D=await $.text(),I=JSON.parse(D),Y=await xo(I),L=Y.settings_imported?" Plugin settings restored.":"";K(d,`Imported ${Y.imported} section(s) successfully.${L}`),K(u,3);const G=setInterval(()=>{K(u,i(u)-1),i(u)<=0&&(clearInterval(G),window.location.reload())},1e3)}catch(D){K(_,D.message||"Import failed",!0)}finally{K(o,!1),i(l)&&(i(l).value="")}}}var m=Vo(),y=p(f(m),4),w=p(f(y),4),h=f(w),b=f(h),k=p(h,2),j=p(k,2);{var F=$=>{var D=Do(),I=f(D);q(()=>C(I,i(a))),z($,D)};ue(j,$=>{i(a)&&$(F)})}var V=p(y,2),S=p(f(V),4),R=f(S);ll(R,$=>K(l,$),()=>i(l));var O=p(R,2),N=f(O),M=p(S,2);{var P=$=>{var D=Po(),I=f(D),Y=p(I);{var L=G=>{var W=Wi();q(()=>C(W,`Reloading in ${i(u)??""}…`)),z(G,W)};ue(Y,G=>{i(u)>0&&G(L)})}q(()=>C(I,`${i(d)??""} `)),z($,D)};ue(M,$=>{i(d)&&$(P)})}var x=p(M,2);{var T=$=>{var D=Lo(),I=f(D);q(()=>C(I,i(_))),z($,D)};ue(x,$=>{i(_)&&$(T)})}q(()=>{h.disabled=i(s),C(b,i(s)?"Exporting…":"Download token file (.json)"),k.disabled=!i(r),Q(k,"title",i(r)?"Download overrides as a standalone CSS file":"No overrides set yet"),O.disabled=i(o),C(N,i(o)?"Importing…":"Import token file")}),ge("click",h,c),ge("click",k,n),ge("click",O,v),z(e,m),be()}Le(["click"]);var qo=A('

                Parameters:

                 
                '),No=A(`

                Filter Hooks Reference

                These WordPress filter hooks let you customize the SLASHED Bricks integration + from your theme or a mu-plugin. Each hook fires during plugin initialization.

                `);function Bo(e){const t=[{name:"slashed_bricks/css_bundle_url",description:"Override which CSS bundle URL to load.",params:"$url (string) - The current CSS bundle URL.",example:`add_filter( 'slashed_bricks/css_bundle_url', function( $url ) { // Load from a CDN instead. return 'https://cdn.example.com/slashed/slashed.optimal.css'; } );`},{name:"slashed_bricks/registered_classes",description:"Filter the array of classes before registration with Bricks.",params:"$classes (array) - Array of class definitions with name and category.",example:`add_filter( 'slashed_bricks/registered_classes', function( $classes ) { @@ -55,12 +59,7 @@ add_filter( 'slashed_bricks/inventory_local_path', function() { 'SLASHED Primary', 'SLASHED Secondary', ] ) ); -} );`}];var s=jo(),a=g(f(s),4);Q(a,17,()=>t,r=>r.name,(r,n)=>{var o=Eo(),c=f(o),l=f(c),d=f(l),h=g(c,2),v=f(h),u=g(h,2),m=g(f(u),2),y=f(m),w=g(u,2),p=f(w),b=f(p);V(()=>{M(d,i(n).name),M(v,i(n).description),M(y,i(n).params),M(b,i(n).example)}),$(r,o)}),$(e,s)}const zo=[{category:"Colors",description:"Brand, status, semantic, and derived color tokens. Source colors use oklch(); the framework derives light-dark pairs, palettes, and alpha scales automatically.",tokens:[{name:"--sf-color-{brand}-light",description:"Source color for the brand (oklch registered value). Set this to rebrand."},{name:"--sf-color-{brand}-dark",description:"Optional dark-mode override. If set, replaces the auto-derived dark variant for full per-mode control."},{name:"--sf-color-{brand}",description:"Resolved light-dark adaptive color for use in rules."},{name:"--sf-color-{brand}-{50-950}",description:"Palette scale: 50 (lightest) to 950 (darkest) mixed with base/text."},{name:"--sf-color-{brand}-a{5-95}",description:"Alpha scale: 5% to 95% opacity of the brand color."},{name:"--sf-color-{brand}-hover/active/muted/subtle/ghost/lighter/darker/xlight/xdark/superlight/superdark",description:"Semantic aliases for common UI states, mapped to palette steps."},{name:"--sf-color-bg",description:"Page background color, derived from base."},{name:"--sf-color-text",description:"Main body text color, contrast-aware."},{name:"--sf-color-heading",description:"Heading text color, slightly stronger than body text."},{name:"--sf-color-link",description:"Link color, derived from action brand."},{name:"--sf-color-border",description:"Default border color."},{name:"--sf-color-surface",description:"Card/panel surface color (equals base)."},{name:"--sf-color-overlay",description:"Semi-transparent overlay for modals."},{name:"--sf-color-dim",description:"50% black overlay for dimming backgrounds."},{name:"--sf-color-success/warning/error/info/danger",description:"Status feedback colors with -light source, -muted, -strong, -subtle variants."}]},{category:"Typography",description:"Font families, sizes (fluid clamp-based scale), weights, line-heights, letter-spacing, and heading configuration.",tokens:[{name:"--sf-font-body",description:"Body font stack (system-ui default)."},{name:"--sf-font-heading",description:"Heading font stack (defaults to body)."},{name:"--sf-font-mono",description:"Monospace font stack."},{name:"--sf-font-display",description:"Display/hero font (defaults to heading)."},{name:"--sf-font-geometric/humanist/slab",description:"Curated fallback stacks for common typographic personalities."},{name:"--sf-text-{2xs..4xl}",description:"Fluid type scale using clamp(). Sizes: 2xs, xs, s, m, l, xl, 2xl, 3xl, 4xl."},{name:"--sf-text-display-{s,m,l}",description:"Extra-large display/hero sizes."},{name:"--sf-text-scale",description:"Global multiplier for the type scale (default 1)."},{name:"--sf-font-weight-{thin..black}",description:"Named weight tokens: thin(100), extralight(200), light(300), normal(400), medium(500), semibold(600), bold(700), extrabold(800), black(900)."},{name:"--sf-leading-{tight,snug,normal,relaxed}",description:"Line-height presets: 1.1, 1.3, 1.5, 1.625."},{name:"--sf-tracking-{tight,normal,wide,wider,widest}",description:"Letter-spacing presets from -0.025em to 0.1em."},{name:"--sf-h{1-6}-size/font-weight/line-height/letter-spacing",description:"Per-heading-level configuration tokens."},{name:"--sf-body-*",description:"Body text configuration: font-size, font-weight, line-height, color, text-wrap."}]},{category:"Spacing",description:"Fluid spacing scale (clamp-based), gutters, section padding, and component padding.",tokens:[{name:"--sf-space-{2xs..4xl}",description:"Fluid spacing scale. Sizes: none, px, 2xs, xs, s, m, l, xl, 2xl, 3xl, 4xl."},{name:"--sf-space-scale",description:"Global multiplier for all space tokens (default 1)."},{name:"--sf-space-gutter",description:"Page-edge gutter (defaults to space-l)."},{name:"--sf-gap",description:"Default gap for layouts (defaults to space-m)."},{name:"--sf-content-gap",description:"Gap between content elements (defaults to space-s)."},{name:"--sf-section-pad--{s,m,l,xl}",description:"Vertical padding for page sections."},{name:"--sf-component-pad",description:"Internal padding for components (defaults to space-m)."},{name:"--sf-header-height",description:"Expected fixed header height for sticky offset calculations."},{name:"--sf-safe-{top,right,bottom,left}",description:"Safe area insets for notched devices."}]},{category:"Sizing",description:"Component sizes, touch targets, and aspect ratios.",tokens:[{name:"--sf-size-{xs..xl}",description:"Named size tokens: xs(1.5rem), s(2rem), m(2.5rem), l(2.75rem), xl(3.5rem)."},{name:"--sf-touch-target",description:"Minimum interactive element size (defaults to size-l, 2.75rem)."},{name:"--sf-ratio-{square,photo,video,cinema,golden,portrait}",description:"Predefined aspect ratios for frames and containers."},{name:"--sf-icon-{xs..xl}",description:"Icon sizing in em units (0.875em to 3em)."}]},{category:"Layout",description:"Container widths, layout primitive tokens (stack, cluster, grid, sidebar, switcher, bento, cover, frame, reel, imposter).",tokens:[{name:"--sf-container-{narrow,default,prose,wide,full}",description:"Max-width presets for .sf-container."},{name:"--sf-stack-gap",description:"Vertical gap between .sf-stack children."},{name:"--sf-cluster-gap/align/justify",description:"Inline cluster layout tokens."},{name:"--sf-sidebar-width/gap/min-width",description:"Sidebar layout tokens."},{name:"--sf-switcher-threshold/gap",description:"Column-to-stack breakpoint and gap."},{name:"--sf-grid-min/gap",description:"Auto-fill grid minimum item width and gap."},{name:"--sf-bento-cols/gap/row",description:"Dense bento grid configuration."},{name:"--sf-cover-min-height/padding",description:"Full-height cover layout."},{name:"--sf-frame-ratio",description:"Aspect ratio for .sf-frame (defaults to 16/9)."},{name:"--sf-reel-gap/height/item-width",description:"Horizontal scroll strip configuration."},{name:"--sf-imposter-margin",description:"Safety margin for absolute-centered overlays."},{name:"--sf-breakout-width/content-width",description:"Breakout grid track widths."},{name:"--sf-divider-color/style/width",description:"Divider appearance tokens."}]},{category:"Borders",description:"Border widths and styles.",tokens:[{name:"--sf-border-width-{hairline,1,2,3,4}",description:"Border width scale: 0.5px, 1px, 2px, 3px, 4px."},{name:"--sf-border-style/dotted/soft/strong",description:"Border style presets (solid, dotted, dashed, solid)."},{name:"--sf-stroke-{thin,regular,bold,heavy}",description:"Stroke widths for SVG/icon use: 1px, 1.5px, 2px, 3px."}]},{category:"Radius",description:"Border radius scale and special shapes.",tokens:[{name:"--sf-radius-{none,xs,s,m,l,xl,2xl,3xl,4xl,full}",description:"Radius scale from 0 to 9999px (pill)."},{name:"--sf-radius-scale",description:"Global multiplier for all radius tokens (default 1)."},{name:"--sf-radius-pill",description:"Fully rounded (9999px)."},{name:"--sf-radius-outer",description:"Outer radius = inner + padding (for nested rounding)."}]},{category:"Shadows",description:"Box shadows, drop shadows, text shadows, and shadow configuration.",tokens:[{name:"--sf-shadow-{xs,s,m,l,xl,2xl}",description:"Elevation shadow scale, progressively more dramatic."},{name:"--sf-shadow-inner",description:"Inset shadow for recessed elements."},{name:"--sf-shadow-glow",description:"Colored glow effect (uses --sf-shadow-glow-color)."},{name:"--sf-shadow-none",description:"Explicit no-shadow value."},{name:"--sf-shadow-color",description:"Base shadow color (derived from neutral)."},{name:"--sf-shadow-strength",description:"Shadow opacity multiplier (adapts to dark mode)."},{name:"--sf-drop-shadow-{s,m,l}",description:"CSS filter drop-shadow equivalents."},{name:"--sf-text-shadow-{s,m,l,none}",description:"Text shadow presets."}]},{category:"Effects",description:"Blurs, opacities, gradients, masks, and perspective.",tokens:[{name:"--sf-blur-{xs,s,m,l,xl}",description:"Blur radius scale: 4px to 48px."},{name:"--sf-opacity-{0,10,25,50,75,100,disabled}",description:"Named opacity presets."},{name:"--sf-gradient-{brand,primary,secondary,tertiary,surface}",description:"Predefined gradients using brand colors."},{name:"--sf-gradient-fade--{t,b,l,r}",description:"Directional fade-to-background gradients."},{name:"--sf-mask-scrim-start/end",description:"Scroll mask fade depth."},{name:"--sf-perspective-{near,normal,far}",description:"3D perspective presets: 500px, 1000px, 2000px."},{name:"--sf-contrast-bias/threshold",description:"Color contrast tuning for auto text-on-color logic."}]},{category:"Motion",description:"Durations, easing curves, transitions, and animations.",tokens:[{name:"--sf-duration-{none,instant,fast,normal,slow,slower}",description:"Duration scale: 0ms to 600ms (respects --sf-motion-scale)."},{name:"--sf-motion-scale",description:"Global animation speed multiplier (set 0 to disable)."},{name:"--sf-ease-{linear,in,out,in-out,bounce,elastic,overshoot,spring}",description:"Easing function presets."},{name:"--sf-transition-{all,colors,opacity,shadow,transform,fast,slow,enter,exit}",description:"Pre-composed transition shorthands."},{name:"--sf-animation-{fade-in,fade-out,scale-up,scale-down,slide-in-*,float,ping,blink,color-pulse}",description:"Named keyframe animation shorthands."},{name:"--sf-animation-delay-{1-5}",description:"Stagger delays for sequential animations."}]},{category:"Z-Index",description:"Z-index scale for predictable layering.",tokens:[{name:"--sf-z-{below,base,raised,low,mid,high,top,max}",description:"Z-index scale: -1, 0, 1, 10, 100, 500, 900, 9999."}]},{category:"Focus",description:"Focus ring appearance for keyboard navigation.",tokens:[{name:"--sf-focus-ring-width/offset/color/style/shadow",description:"Focus indicator configuration."},{name:"--sf-caret-color",description:"Text input caret color (defaults to action)."}]},{category:"Scroll",description:"Scroll timeline and scrollbar styling.",tokens:[{name:"--sf-scroll-timeline-range-start/end",description:"Scroll-driven animation range."},{name:"--sf-scrollbar-thumb/track",description:"Custom scrollbar colors."}]},{category:"Print",description:"Print stylesheet configuration.",tokens:[{name:"--sf-print-base-size/page-margin/page-size",description:"Print layout tokens: 11pt base, 2cm margins, A4 size."}]}],Ao=[{category:"Layout Primitives",description:"Breakpoint-free, container-query-driven layout components. Each is a single class with per-instance token overrides via inline style.",classes:[{name:".sf-section",description:"Vertical page rhythm with size variants (--s/--m/--l/--xl/--collapse)."},{name:".sf-section-group",description:"Collapses gap between adjacent sections."},{name:".sf-container",description:"Centered max-width wrapper with gutters. Variants: --narrow, --wide, --full, --prose."},{name:".sf-box",description:"Isolated unit with padding and optional border."},{name:".sf-center",description:"Intrinsic centering with max-width. Variant: --intrinsic."},{name:".sf-stack",description:"Vertical flow with consistent gap. Size variants: --2xs to --3xl. Alignment: --center, --end, --stretch."},{name:".sf-cluster",description:"Wrapping inline group. Size variants: --2xs to --xl. Alignment: --center, --end, --between. Wrap: --no-wrap."},{name:".sf-sidebar",description:"Content + side panel that wraps. Variants: --right, --narrow, --wide."},{name:".sf-switcher",description:"N columns above threshold, stacked below. Variants: --no-wrap, --vertical."},{name:".sf-grid",description:"Auto-fill responsive grid. Size variants: --xs to --xl. Variants: --fit, --dense."},{name:".sf-grid-{1,2,3,4,6}",description:"Fixed-column grids, container-responsive."},{name:".sf-grid-{1-2,2-1,1-3,3-1}",description:"Ratio two-column grids."},{name:".sf-bento",description:"Dense free-form grid. Variants: --2, --4, --compact, --tall."},{name:".sf-alternate",description:"Zigzag two-column layout, reverses every other row."},{name:".sf-pancake",description:"Sticky-footer grid: header / main(1fr) / footer."},{name:".sf-content-grid",description:"Breakout layout grid. Children use .sf-breakout or .sf-full-bleed."},{name:".sf-cover",description:"Full-height region with centered content. Variants: --min, --max, --padding-s, --padding-l."},{name:".sf-frame",description:"Aspect-ratio media box. Variants: --square, --portrait, --video, --cinema, --3-2, --4-3, --golden."},{name:".sf-reel",description:"Horizontal scroll strip with optional mask fade."},{name:".sf-imposter",description:"Absolutely-centered overlay. Variants: --fixed, --contain."},{name:".sf-subgrid / .sf-subgrid-rows",description:"Inherit parent grid tracks."},{name:".sf-divider",description:"Token-driven separator. Variant: --vertical."},{name:".sf-icon",description:"Em-based inline icon sizing. Sizes: --xs to --xl. Variant: --boxed."},{name:".sf-prose",description:"Readable long-form text with automatic vertical rhythm."},{name:".sf-not-prose",description:"Reset zone inside .sf-prose for embedded components."}]},{category:"Macros",description:"Recipe classes that answer 'what does this element do/look like?' - composable with layout primitives.",classes:[{name:".sf-flow",description:"Lobotomized owl: consistent gap between consecutive children."},{name:".sf-truncate",description:"Single-line ellipsis overflow."},{name:".sf-line-clamp-{2,3,N}",description:"Multi-line text clamping with ellipsis. -N reads --sf-line-clamp."},{name:".sf-equal-height",description:"Forces flex children to share the tallest child's height."},{name:".sf-aspect",description:"Generic aspect-ratio container (reads --sf-aspect token)."},{name:".sf-scroll-shadow",description:"Top + bottom mask gradient for scrolling containers."},{name:".sf-scroll-snap",description:"Vertical scroll-snap container."},{name:".sf-overflow-fade",description:"End-edge horizontal fade for overflowing inline content."},{name:".sf-no-tap-highlight",description:"Suppresses WebKit/Android tap highlight."},{name:".sf-text-gradient",description:"Gradient text effect using background-clip."},{name:".sf-clickable-parent",description:"Makes an entire card clickable via the first link inside."},{name:".sf-link-external",description:"Adds external link indicator marker."}]},{category:"Surfaces",description:"Color surface utility classes that set background and text color for a brand context.",classes:[{name:".sf-surface--{primary,secondary,tertiary,action,neutral,inverse}",description:"Brand-colored surface with auto-contrast text."},{name:".sf-surface--{success,warning,error,info,danger}",description:"Status-colored surfaces."}]},{category:"Animations",description:"CSS animation utility classes that apply predefined keyframe animations.",classes:[{name:".sf-fade-in / .sf-fade-out",description:"Opacity entrance/exit animations."},{name:".sf-scale-up / .sf-scale-down",description:"Scale entrance/exit animations."},{name:".sf-slide-in-{up,down,left,right}",description:"Directional slide-in entrance animations."},{name:".sf-color-pulse",description:"Continuous color pulse animation."},{name:".sf-entrance--fade / --fade-up / --fade-down / --fade-left / --fade-right / --scale-up",description:"Scroll-triggered entrance animations (scroll-timeline driven)."}]},{category:"State Classes (.is-*)",description:"Runtime state classes toggled by JS or mirrored from ARIA. They live in the slashed.states layer. Always pair with matching ARIA attributes.",classes:[{name:".is-hidden / .is-invisible / .is-visible",description:"Visibility control: removed from layout / hidden but keeps box / visible."},{name:".is-disabled / .is-readonly",description:"Non-interactive states with dimming."},{name:".is-loading / .is-pending / .is-busy",description:"Loading states: spinner replacement / optimistic UI / cursor hint."},{name:".is-skeleton",description:"Placeholder shimmer animation."},{name:".is-active / .is-selected / .is-current / .is-pressed",description:"Selection/activation states."},{name:".is-highlighted",description:"Transient emphasis (e.g. search result highlight)."},{name:".is-open / .is-collapsed / .is-expanded",description:"Disclosure states for modals, drawers, accordions."},{name:".is-valid / .is-invalid",description:"Form field validation results (maps to aria-invalid)."},{name:".is-success / .is-error / .is-warning / .is-info / .is-danger",description:"General feedback states and destructive-action context."},{name:".is-sticky / .is-pinned / .is-fixed / .is-fullscreen",description:"Positioning states."},{name:".is-clipped / .is-scrollable / .is-truncated / .is-resizable",description:"Overflow handling states."},{name:".is-dragging / .is-drop-target / .is-draggable",description:"Drag and drop states."},{name:".is-overlay / .is-focused / .is-clickable / .is-unselectable",description:"Positioning, focus, cursor, and selection states."},{name:".is-empty",description:"Hide element when empty (:empty pseudo-class)."}]}],Co=[{name:"--sf-is-dark",description:"Numeric flag (0 or 1) indicating dark mode is active. Registered property."},{name:"--sf-lumlocker",description:"Internal luminance lock value for color derivation."},{name:"--sf-color-scheme",description:"CSS color-scheme declaration (light dark)."},{name:"--sf-current-font-weight",description:"Current context font weight (used by strong elements)."},{name:"--sf-link-external-marker",description:"External link arrow character."},{name:"--sf-field-block",description:"Vertical spacing between form fields."},{name:"--sf-field-required-marker",description:"Required field indicator string."}];var $o=P('
              • '),Fo=P('
                '),Ro=P('
              • '),Oo=P('
                Misc Tokens that do not fit a single category.
                '),Po=P('

                CSS Custom Properties (--sf-*)

                '),Mo=P('
              • '),Do=P('
                '),Lo=P('

                Utility & State Classes

                '),Vo=P('

                '),Io=P('

                API Cheatsheet

                ');function No(e,t){de(t,!0);let s=Z(""),a=Z("all");const r=ae.inventory?.variables?.length??0,n=ae.inventory?.sf_classes?.length??0,o=ae.inventory?.is_classes?.length??0;let c=O(()=>v(zo,"tokens")),l=O(()=>v(Ao,"classes")),d=O(()=>Co.filter(K=>h(K.name,K.description)));function h(K,ie){if(!i(s).trim())return!0;const le=i(s).trim().toLowerCase();return K.toLowerCase().includes(le)||ie.toLowerCase().includes(le)}function v(K,ie){return i(s).trim()?K.map(le=>({...le,[ie]:le[ie].filter(be=>h(be.name,be.description))})).filter(le=>le[ie].length>0):K}let u=O(()=>i(a)==="all"||i(a)==="variables"),m=O(()=>i(a)==="all"||i(a)==="classes"),y=O(()=>i(s).trim()!==""&&(!i(u)||i(c).length===0&&i(d).length===0)&&(!i(m)||i(l).length===0));var w=Io(),p=f(w),b=g(f(p),2),E=f(b),T=g(p,2),F=f(T),L=g(F,2),x=f(L);let j;var A=g(x,2);let C;var z=g(A,2);let R;var k=g(T,2);{var S=K=>{var ie=Po(),le=g(f(ie),2);Q(le,17,()=>i(c),ps,(ge,te)=>{var he=Fo(),_e=f(he),we=f(_e),Ve=f(we),Ie=g(we,2),Xe=f(Ie),yt=g(_e,2);Q(yt,21,()=>i(te).tokens,ps,(bt,vs)=>{var Rs=$o(),Os=f(Rs),ua=f(Os),_n=g(Os,2),gn=f(_n);V(()=>{M(ua,i(vs).name),M(gn,i(vs).description)}),$(bt,Rs)}),V(bt=>{he.open=bt,M(Ve,i(te).category),M(Xe,i(te).description)},[()=>!i(s).trim()]),$(ge,he)});var be=g(le,2);{var Te=ge=>{var te=Oo(),he=g(f(te),2);Q(he,21,()=>i(d),ps,(_e,we)=>{var Ve=Ro(),Ie=f(Ve),Xe=f(Ie),yt=g(Ie,2),bt=f(yt);V(()=>{M(Xe,i(we).name),M(bt,i(we).description)}),$(_e,Ve)}),V(_e=>te.open=_e,[()=>!i(s).trim()]),$(ge,te)};ne(be,ge=>{i(d).length>0&&ge(Te)})}$(K,ie)};ne(k,K=>{i(u)&&K(S)})}var D=g(k,2);{var I=K=>{var ie=Lo(),le=g(f(ie),2);Q(le,17,()=>i(l),ps,(be,Te)=>{var ge=Do(),te=f(ge),he=f(te),_e=f(he),we=g(he,2),Ve=f(we),Ie=g(te,2);Q(Ie,21,()=>i(Te).classes,ps,(Xe,yt)=>{var bt=Mo(),vs=f(bt),Rs=f(vs),Os=g(vs,2),ua=f(Os);V(()=>{M(Rs,i(yt).name),M(ua,i(yt).description)}),$(Xe,bt)}),V(Xe=>{ge.open=Xe,M(_e,i(Te).category),M(Ve,i(Te).description)},[()=>!i(s).trim()]),$(be,ge)}),$(K,ie)};ne(D,K=>{i(m)&&K(I)})}var N=g(D,2);{var ee=K=>{var ie=Vo(),le=f(ie);V(()=>M(le,`No results for "${i(s)??""}"`)),$(K,ie)};ne(N,K=>{i(y)&&K(ee)})}V(()=>{M(E,`${r??""} variables | ${n??""} layout/utility classes | ${o??""} state classes`),Y(x,"aria-pressed",i(a)==="all"),j=Tt(x,1,"svelte-osej3t",null,j,{active:i(a)==="all"}),Y(A,"aria-pressed",i(a)==="variables"),C=Tt(A,1,"svelte-osej3t",null,C,{active:i(a)==="variables"}),Y(z,"aria-pressed",i(a)==="classes"),R=Tt(z,1,"svelte-osej3t",null,R,{active:i(a)==="classes"})}),ht(F,()=>i(s),K=>q(s,K)),ce("click",x,()=>q(a,"all")),ce("click",A,()=>q(a,"variables")),ce("click",z,()=>q(a,"classes")),$(e,w),fe()}Re(["click"]);const pr=22.5,qo=95;function pn(e,t){if(e<=0||t<=0)return null;const s=qo-pr,a=(t-e)/s,r=parseFloat(a.toFixed(6)),n=parseFloat(e.toFixed(4)),o=parseFloat(t.toFixed(4));return`clamp(${n}rem, calc(${r} * (100vw - ${pr}rem) + ${n}rem), ${o}rem)`}function hr(e){const t=parseFloat(e);if(isNaN(t))return"0";let s=t.toFixed(6).replace(/0+$/,"").replace(/\.$/,"");return s===""?"0":s}function ve(e){return e!=null&&e!==""}function Bo(e){const t=[],s=["primary","secondary","tertiary","action","neutral","base"];for(const r of s){const n=`brand_${r}`;ve(e[n])&&t.push(`--sf-color-${r}-light: ${e[n]};`)}for(const r of s){const n=`brand_dark_${r}`;ve(e[n])&&t.push(`--sf-color-${r}-dark: ${e[n]};`)}const a=["success","warning","error","info","danger"];for(const r of a){const n=`status_${r}`;ve(e[n])&&t.push(`--sf-color-${r}-light: ${e[n]};`)}for(const r of a){const n=`status_dark_${r}`;ve(e[n])&&t.push(`--sf-color-${r}-dark: ${e[n]};`)}return t}function Ko(e){const t=[],s=["body","heading","mono","display","humanist","geometric","slab"];for(const r of s){const n=`font_${r}`;ve(e[n])&&t.push(`--sf-font-${r}: ${e[n]};`)}ve(e.text_scale)&&t.push(`--sf-text-scale: ${e.text_scale};`),ve(e.text_display_scale)&&t.push(`--sf-text-display-scale: ${e.text_display_scale};`);const a=["2xs","xs","s","m","l","xl","2xl","3xl","4xl","display-s","display-m","display-l"];for(const r of a){const n=`size_${r}_min`,o=`size_${r}_max`,c=e[n],l=e[o];if(ve(c)&&ve(l)){const d=pn(parseFloat(c),parseFloat(l));d&&t.push(`--sf-text-${r}: ${d};`)}}return t}function Ho(e){const t=[];ve(e.space_scale)&&t.push(`--sf-space-scale: ${e.space_scale};`);const s=["2xs","xs","s","m","l","xl","2xl","3xl","4xl"];for(const r of s){const n=e[`space_${r}_min`],o=e[`space_${r}_max`];if(ve(n)&&ve(o)){const c=pn(parseFloat(n),parseFloat(o));c&&t.push(`--sf-space-${r}: calc(${c} * var(--sf-space-scale));`)}}const a={gutter:"--sf-space-gutter",gap:"--sf-gap",content_gap:"--sf-content-gap",component_pad:"--sf-component-pad",section_pad:"--sf-section-pad"};for(const[r,n]of Object.entries(a))ve(e[r])&&t.push(`${n}: ${e[r]};`);return t}function Uo(e){const t=[];return ve(e.radius_scale)&&t.push(`--sf-radius-scale: ${e.radius_scale};`),t}function Go(e){const t=[];return ve(e.shadow_strength)&&t.push(`--sf-shadow-strength: calc(${e.shadow_strength} + var(--sf-is-dark) * 0.17);`),ve(e.glow_color)&&t.push(`--sf-shadow-glow-color: ${e.glow_color};`),t}function Wo(e){const t=[];ve(e.motion_scale)&&t.push(`--sf-motion-scale: ${e.motion_scale};`);const s=["instant","fast","normal","slow","slower"];for(const a of s){const r=`duration_${a}`;ve(e[r])&&t.push(`--sf-duration-${a}: calc(${e[r]}ms * var(--sf-motion-scale));`)}return t}function Yo(e){const t=[],s=["below","base","raised","low","mid","high","top","max"];for(const a of s)ve(e[a])&&t.push(`--sf-z-${a}: ${parseInt(e[a],10)};`);return t}function Xo(e){const t=[],s={contrast_bias:"--sf-contrast-bias",contrast_threshold:"--sf-contrast-threshold",opacity_disabled:"--sf-opacity-disabled"};for(const[r,n]of Object.entries(s))ve(e[r])&&t.push(`${n}: ${hr(e[r])};`);const a={focus_ring_width:"--sf-focus-ring-width",focus_ring_offset:"--sf-focus-ring-offset"};for(const[r,n]of Object.entries(a))ve(e[r])&&t.push(`${n}: ${hr(e[r])}px;`);return ve(e.focus_ring_style)&&["solid","dashed","dotted","double","none"].includes(e.focus_ring_style)&&t.push(`--sf-focus-ring-style: ${e.focus_ring_style};`),t}function hn(e){const t=[];if(e.colors&&typeof e.colors=="object"&&t.push(...Bo(e.colors)),e.typography&&typeof e.typography=="object"&&t.push(...Ko(e.typography)),e.spacing&&typeof e.spacing=="object"&&t.push(...Ho(e.spacing)),e.radius&&typeof e.radius=="object"&&t.push(...Uo(e.radius)),e.shadows&&typeof e.shadows=="object"&&t.push(...Go(e.shadows)),e.motion&&typeof e.motion=="object"&&t.push(...Wo(e.motion)),e.zindex&&typeof e.zindex=="object"&&t.push(...Yo(e.zindex)),e.contrast&&typeof e.contrast=="object"&&t.push(...Xo(e.contrast)),t.length===0)return"";let s=`@layer slashed.overrides { - :root { -`;for(const a of t)s+=` ${a} -`;return s+=` } -}`,s}function Zo(e){if(!e||typeof e!="object")return!1;for(const t of Object.values(e))if(!(!t||typeof t!="object")){for(const s of Object.values(t))if(typeof s=="object"&&s!==null){for(const a of Object.values(s))if(a!==""&&a!==null&&a!==void 0)return!0}else if(s!==""&&s!==null&&s!==void 0)return!0}return!1}var Jo=P('
                '),Qo=P('
                '),ec=P('
                '),tc=P('
                '),sc=P(`

                Live preview

                The quick brown fox jumps over the lazy dog

                This is a preview of your design token configuration. Adjust values above - and see changes reflected here in real time. Brand and status colors are - rendered as swatches; the heading and this paragraph reflect the current - body and heading font stacks.

                Primary Action

                Dark mode

                Generated CSS:
                `);function ac(e,t){de(t,!0);const s=["primary","secondary","tertiary","action","neutral","base"],a=["success","warning","error","info","danger"],r=ae.defaults?.colors??{},n=O(()=>{const x=[],j=W.colors??{},A=W.typography??{};for(const C of s){const z=j[`brand_${C}`]??r.brand_hex_hints?.[C];z&&x.push(`--sf-color-${C}-light:${z}`);const R=j[`brand_dark_${C}`]??r.brand_dark_hex_hints?.[C];R&&x.push(`--sf-color-${C}-dark:${R}`)}for(const C of a){const z=j[`status_${C}`]??r.status_hex_hints?.[C];z&&x.push(`--sf-color-${C}-light:${z}`);const R=j[`status_dark_${C}`]??r.status_dark_hex_hints?.[C];R&&x.push(`--sf-color-${C}-dark:${R}`)}return A.font_body&&x.push(`--sf-font-body:${A.font_body}`),A.font_heading&&x.push(`--sf-font-heading:${A.font_heading}`),x.join(";")}),o=O(()=>hn(W));var c=sc(),l=g(f(c),6),d=f(l);Q(d,16,()=>s,x=>x,(x,j)=>{var A=Jo();let C;var z=f(A);V(()=>{Y(A,"title",j),C=Ee(A,"",C,{background:`var(--sf-color-${j}-light, #ddd)`}),M(z,j)}),$(x,A)});var h=g(d,2);Q(h,16,()=>a,x=>x,(x,j)=>{var A=Qo();let C;var z=f(A);V(()=>{Y(A,"title",j),C=Ee(A,"",C,{background:`var(--sf-color-${j}-light, #ddd)`}),M(z,j)}),$(x,A)});var v=g(l,2),u=f(v);Ee(u,"",{},{background:"var(--sf-color-primary-light, #4338ca)"});var m=g(u,2);Ee(m,"",{},{background:"var(--sf-color-action-light, #0891b2)"});var y=g(v,2),w=g(f(y),2),p=f(w),b=f(p);Q(b,16,()=>s,x=>x,(x,j)=>{var A=ec();let C;var z=f(A);V(()=>{Y(A,"title",`${j} dark`),C=Ee(A,"",C,{background:`var(--sf-color-${j}-dark, #333)`}),M(z,j)}),$(x,A)});var E=g(b,2);Q(E,16,()=>a,x=>x,(x,j)=>{var A=tc();let C;var z=f(A);V(()=>{Y(A,"title",`${j} dark`),C=Ee(A,"",C,{background:`var(--sf-color-${j}-dark, #333)`}),M(z,j)}),$(x,A)});var T=g(y,2),F=g(f(T)),L=f(F);V(()=>{Ee(c,i(n)),M(L,i(o)||"/* (defaults — no overrides set) */")}),$(e,c),fe()}var rc=P(' '),nc=P('Saving…'),ic=P('Saved'),lc=P('Unsaved changes'),oc=P('All changes saved'),cc=P('
                ');function dc(e,t){de(t,!0);const s=["contrast","radius","shadows","motion","zindex"];async function a(){if(!B.saving){B.saving=!0,B.error="";try{if(B.activeTab==="misc"){const x=await Promise.allSettled(s.map(A=>ur(A,W[A]??{}))),j=[];if(x.forEach((A,C)=>{A.status==="fulfilled"?A.value?.values&&(W[s[C]]=A.value.values):j.push(s[C])}),j.length>0)throw new Error(`Failed to save: ${j.join(", ")}`)}else{const x=B.activeTab,j=W[x]??{},A=await ur(x,j);A&&A.values&&(W[x]=A.values)}B.dirty=!1,B.lastSavedAt=Date.now()}catch(x){B.error=x&&x.message||String(x)}finally{B.saving=!1}}}async function r(){if(!B.saving&&confirm(`Reset the ${ae.tabs[B.activeTab]??B.activeTab} tab to defaults?`)){B.saving=!0,B.error="";try{if(B.activeTab==="misc"){const x=await Promise.allSettled(s.map(A=>vr(A))),j=[];if(x.forEach((A,C)=>{A.status==="fulfilled"?fr(s[C]):j.push(s[C])}),j.length>0)throw new Error(`Failed to reset: ${j.join(", ")}`)}else await vr(B.activeTab),fr(B.activeTab);B.dirty=!1,B.lastSavedAt=Date.now()}catch(x){B.error=x&&x.message||String(x)}finally{B.saving=!1}}}let n=Z(!1);Wr(()=>{if(B.lastSavedAt){q(n,!0);const x=setTimeout(()=>q(n,!1),2e3);return()=>clearTimeout(x)}});const o=O(()=>Zo(W));function c(){const x=hn(W);if(!x)return;const j=new Blob([x],{type:"text/css"}),A=URL.createObjectURL(j),C=document.createElement("a");C.href=A,C.download="slashed-custom.css",document.body.appendChild(C),C.click(),document.body.removeChild(C),URL.revokeObjectURL(A)}var l=cc();let d;var h=f(l),v=f(h);{var u=x=>{var j=rc(),A=f(j);V(()=>M(A,B.error)),$(x,j)},m=x=>{var j=nc();$(x,j)},y=x=>{var j=ic();$(x,j)},w=x=>{var j=lc();$(x,j)},p=x=>{var j=oc();$(x,j)};ne(v,x=>{B.error?x(u):B.saving?x(m,1):i(n)?x(y,2):B.dirty?x(w,3):x(p,-1)})}var b=g(h,2),E=f(b),T=g(E,2),F=g(T,2),L=f(F);V(()=>{d=Tt(l,1,"bar svelte-1oj49qa",null,d,{dirty:B.dirty}),E.disabled=B.saving,T.disabled=!i(o),F.disabled=B.saving||!B.dirty,M(L,B.saving?"Saving…":"Save changes")}),ce("click",E,r),ce("click",T,c),ce("click",F,a),$(e,l),fe()}Re(["click"]);var fc=P(' '),uc=P(' '),vc=P('

                SLASHED Design Tokens

                Adjust framework tokens, inspect generated variables, and manage the bundled CSS in one place.

                ');function pc(e,t){de(t,!0);const s=["cheatsheet","hooks","variables","classes","bundle","export"];let a=O(()=>s.includes(B.activeTab));Wr(()=>{function k(S){B.dirty&&(S.preventDefault(),S.returnValue="")}return window.addEventListener("beforeunload",k),()=>window.removeEventListener("beforeunload",k)});var r=vc(),n=f(r),o=f(n),c=g(f(o),2),l=f(c);{var d=k=>{var S=fc(),D=f(S);V(()=>M(D,`Framework ${ae.versions.framework??""}`)),$(k,S)};ne(l,k=>{ae.versions.framework&&k(d)})}var h=g(l,2);{var v=k=>{var S=uc(),D=f(S);V(()=>M(D,`Plugin v${ae.versions.plugin??""}`)),$(k,S)};ne(h,k=>{ae.versions.plugin&&k(v)})}var u=g(n,2);il(u,{});var m=g(u,2),y=f(m);{var w=k=>{hl(k,{})},p=k=>{Dl(k,{})},b=k=>{Kl(k,{})},E=k=>{eo(k,{})},T=k=>{no(k,{})},F=k=>{uo(k,{})},L=k=>{yo(k,{})},x=k=>{So(k,{})},j=k=>{To(k)},A=k=>{No(k,{})};ne(y,k=>{B.activeTab==="colors"?k(w):B.activeTab==="typography"?k(p,1):B.activeTab==="spacing"?k(b,2):B.activeTab==="misc"?k(E,3):B.activeTab==="variables"?k(T,4):B.activeTab==="classes"?k(F,5):B.activeTab==="bundle"?k(L,6):B.activeTab==="export"?k(x,7):B.activeTab==="hooks"?k(j,8):B.activeTab==="cheatsheet"&&k(A,9)})}var C=g(m,2);ac(C,{});var z=g(C,2);{var R=k=>{dc(k,{})};ne(z,k=>{i(a)||k(R)})}$(e,r),fe()}const _r=document.getElementById("slashed-admin-app");_r&&Bi(pc,{target:_r}); +} );`}];var s=No(),a=p(f(s),4);ne(a,17,()=>t,r=>r.name,(r,n)=>{var c=qo(),l=f(c),o=f(l),d=f(o),_=p(l,2),u=f(_),v=p(_,2),m=p(f(v),2),y=f(m),w=p(v,2),h=f(w),b=f(h);q(()=>{C(d,i(n).name),C(u,i(n).description),C(y,i(n).params),C(b,i(n).example)}),z(r,c)}),z(e,s)}const Ko=[{category:"Colors",description:"Brand, status, semantic, and derived color tokens. Source colors use oklch(); the framework derives light-dark pairs, palettes, and alpha scales automatically.",tokens:[{name:"--sf-color-{brand}-light",description:"Source color for the brand (oklch registered value). Set this to rebrand."},{name:"--sf-color-{brand}-dark",description:"Optional dark-mode override. If set, replaces the auto-derived dark variant for full per-mode control."},{name:"--sf-color-{brand}",description:"Resolved light-dark adaptive color for use in rules."},{name:"--sf-color-{brand}-{50-950}",description:"Palette scale: 50 (lightest) to 950 (darkest) mixed with base/text."},{name:"--sf-color-{brand}-a{5-95}",description:"Alpha scale: 5% to 95% opacity of the brand color."},{name:"--sf-color-{brand}-hover/active/muted/subtle/ghost/lighter/darker/xlight/xdark/superlight/superdark",description:"Semantic aliases for common UI states, mapped to palette steps."},{name:"--sf-color-bg",description:"Page background color, derived from base."},{name:"--sf-color-text",description:"Main body text color, contrast-aware."},{name:"--sf-color-heading",description:"Heading text color, slightly stronger than body text."},{name:"--sf-color-link",description:"Link color, derived from action brand."},{name:"--sf-color-border",description:"Default border color."},{name:"--sf-color-surface",description:"Card/panel surface color (equals base)."},{name:"--sf-color-overlay",description:"Semi-transparent overlay for modals."},{name:"--sf-color-dim",description:"50% black overlay for dimming backgrounds."},{name:"--sf-color-success/warning/error/info/danger",description:"Status feedback colors with -light source, -muted, -strong, -subtle variants."}]},{category:"Typography",description:"Font families, sizes (fluid clamp-based scale), weights, line-heights, letter-spacing, and heading configuration.",tokens:[{name:"--sf-font-body",description:"Body font stack (system-ui default)."},{name:"--sf-font-heading",description:"Heading font stack (defaults to body)."},{name:"--sf-font-mono",description:"Monospace font stack."},{name:"--sf-font-display",description:"Display/hero font (defaults to heading)."},{name:"--sf-font-geometric/humanist/slab",description:"Curated fallback stacks for common typographic personalities."},{name:"--sf-text-{2xs..4xl}",description:"Fluid type scale using clamp(). Sizes: 2xs, xs, s, m, l, xl, 2xl, 3xl, 4xl."},{name:"--sf-text-display-{s,m,l}",description:"Extra-large display/hero sizes."},{name:"--sf-text-scale",description:"Global multiplier for the type scale (default 1)."},{name:"--sf-font-weight-{thin..black}",description:"Named weight tokens: thin(100), extralight(200), light(300), normal(400), medium(500), semibold(600), bold(700), extrabold(800), black(900)."},{name:"--sf-leading-{tight,snug,normal,relaxed}",description:"Line-height presets: 1.1, 1.3, 1.5, 1.625."},{name:"--sf-tracking-{tight,normal,wide,wider,widest}",description:"Letter-spacing presets from -0.025em to 0.1em."},{name:"--sf-h{1-6}-size/font-weight/line-height/letter-spacing",description:"Per-heading-level configuration tokens."},{name:"--sf-body-*",description:"Body text configuration: font-size, font-weight, line-height, color, text-wrap."}]},{category:"Spacing",description:"Fluid spacing scale (clamp-based), gutters, section padding, and component padding.",tokens:[{name:"--sf-space-{2xs..4xl}",description:"Fluid spacing scale. Sizes: none, px, 2xs, xs, s, m, l, xl, 2xl, 3xl, 4xl."},{name:"--sf-space-scale",description:"Global multiplier for all space tokens (default 1)."},{name:"--sf-space-gutter",description:"Page-edge gutter (defaults to space-l)."},{name:"--sf-gap",description:"Default gap for layouts (defaults to space-m)."},{name:"--sf-content-gap",description:"Gap between content elements (defaults to space-s)."},{name:"--sf-section-pad--{s,m,l,xl}",description:"Vertical padding for page sections."},{name:"--sf-component-pad",description:"Internal padding for components (defaults to space-m)."},{name:"--sf-header-height",description:"Expected fixed header height for sticky offset calculations."},{name:"--sf-safe-{top,right,bottom,left}",description:"Safe area insets for notched devices."}]},{category:"Sizing",description:"Component sizes, touch targets, and aspect ratios.",tokens:[{name:"--sf-size-{xs..xl}",description:"Named size tokens: xs(1.5rem), s(2rem), m(2.5rem), l(2.75rem), xl(3.5rem)."},{name:"--sf-touch-target",description:"Minimum interactive element size (defaults to size-l, 2.75rem)."},{name:"--sf-ratio-{square,photo,video,cinema,golden,portrait}",description:"Predefined aspect ratios for frames and containers."},{name:"--sf-icon-{xs..xl}",description:"Icon sizing in em units (0.875em to 3em)."}]},{category:"Layout",description:"Container widths, layout primitive tokens (stack, cluster, grid, sidebar, switcher, bento, cover, frame, reel, imposter).",tokens:[{name:"--sf-container-{narrow,default,prose,wide,full}",description:"Max-width presets for .sf-container."},{name:"--sf-stack-gap",description:"Vertical gap between .sf-stack children."},{name:"--sf-cluster-gap/align/justify",description:"Inline cluster layout tokens."},{name:"--sf-sidebar-width/gap/min-width",description:"Sidebar layout tokens."},{name:"--sf-switcher-threshold/gap",description:"Column-to-stack breakpoint and gap."},{name:"--sf-grid-min/gap",description:"Auto-fill grid minimum item width and gap."},{name:"--sf-bento-cols/gap/row",description:"Dense bento grid configuration."},{name:"--sf-cover-min-height/padding",description:"Full-height cover layout."},{name:"--sf-frame-ratio",description:"Aspect ratio for .sf-frame (defaults to 16/9)."},{name:"--sf-reel-gap/height/item-width",description:"Horizontal scroll strip configuration."},{name:"--sf-imposter-margin",description:"Safety margin for absolute-centered overlays."},{name:"--sf-breakout-width/content-width",description:"Breakout grid track widths."},{name:"--sf-divider-color/style/width",description:"Divider appearance tokens."}]},{category:"Borders",description:"Border widths and styles.",tokens:[{name:"--sf-border-width-{hairline,1,2,3,4}",description:"Border width scale: 0.5px, 1px, 2px, 3px, 4px."},{name:"--sf-border-style/dotted/soft/strong",description:"Border style presets (solid, dotted, dashed, solid)."},{name:"--sf-stroke-{thin,regular,bold,heavy}",description:"Stroke widths for SVG/icon use: 1px, 1.5px, 2px, 3px."}]},{category:"Radius",description:"Border radius scale and special shapes.",tokens:[{name:"--sf-radius-{none,xs,s,m,l,xl,2xl,3xl,4xl,full}",description:"Radius scale from 0 to 9999px (pill)."},{name:"--sf-radius-scale",description:"Global multiplier for all radius tokens (default 1)."},{name:"--sf-radius-pill",description:"Fully rounded (9999px)."},{name:"--sf-radius-outer",description:"Outer radius = inner + padding (for nested rounding)."}]},{category:"Shadows",description:"Box shadows, drop shadows, text shadows, and shadow configuration.",tokens:[{name:"--sf-shadow-{xs,s,m,l,xl,2xl}",description:"Elevation shadow scale, progressively more dramatic."},{name:"--sf-shadow-inner",description:"Inset shadow for recessed elements."},{name:"--sf-shadow-glow",description:"Colored glow effect (uses --sf-shadow-glow-color)."},{name:"--sf-shadow-none",description:"Explicit no-shadow value."},{name:"--sf-shadow-color",description:"Base shadow color (derived from neutral)."},{name:"--sf-shadow-strength",description:"Shadow opacity multiplier (adapts to dark mode)."},{name:"--sf-drop-shadow-{s,m,l}",description:"CSS filter drop-shadow equivalents."},{name:"--sf-text-shadow-{s,m,l,none}",description:"Text shadow presets."}]},{category:"Effects",description:"Blurs, opacities, gradients, masks, and perspective.",tokens:[{name:"--sf-blur-{xs,s,m,l,xl}",description:"Blur radius scale: 4px to 48px."},{name:"--sf-opacity-{0,10,25,50,75,100,disabled}",description:"Named opacity presets."},{name:"--sf-gradient-{brand,primary,secondary,tertiary,surface}",description:"Predefined gradients using brand colors."},{name:"--sf-gradient-fade--{t,b,l,r}",description:"Directional fade-to-background gradients."},{name:"--sf-mask-scrim-start/end",description:"Scroll mask fade depth."},{name:"--sf-perspective-{near,normal,far}",description:"3D perspective presets: 500px, 1000px, 2000px."},{name:"--sf-contrast-bias/threshold",description:"Color contrast tuning for auto text-on-color logic."}]},{category:"Motion",description:"Durations, easing curves, transitions, and animations.",tokens:[{name:"--sf-duration-{none,instant,fast,normal,slow,slower}",description:"Duration scale: 0ms to 600ms (respects --sf-motion-scale)."},{name:"--sf-motion-scale",description:"Global animation speed multiplier (set 0 to disable)."},{name:"--sf-ease-{linear,in,out,in-out,bounce,elastic,overshoot,spring}",description:"Easing function presets."},{name:"--sf-transition-{all,colors,opacity,shadow,transform,fast,slow,enter,exit}",description:"Pre-composed transition shorthands."},{name:"--sf-animation-{fade-in,fade-out,scale-up,scale-down,slide-in-*,float,ping,blink,color-pulse}",description:"Named keyframe animation shorthands."},{name:"--sf-animation-delay-{1-5}",description:"Stagger delays for sequential animations."}]},{category:"Z-Index",description:"Z-index scale for predictable layering.",tokens:[{name:"--sf-z-{below,base,raised,low,mid,high,top,max}",description:"Z-index scale: -1, 0, 1, 10, 100, 500, 900, 9999."}]},{category:"Focus",description:"Focus ring appearance for keyboard navigation.",tokens:[{name:"--sf-focus-ring-width/offset/color/style/shadow",description:"Focus indicator configuration."},{name:"--sf-caret-color",description:"Text input caret color (defaults to action)."}]},{category:"Scroll",description:"Scroll timeline and scrollbar styling.",tokens:[{name:"--sf-scroll-timeline-range-start/end",description:"Scroll-driven animation range."},{name:"--sf-scrollbar-thumb/track",description:"Custom scrollbar colors."}]},{category:"Print",description:"Print stylesheet configuration.",tokens:[{name:"--sf-print-base-size/page-margin/page-size",description:"Print layout tokens: 11pt base, 2cm margins, A4 size."}]}],Ho=[{category:"Layout Primitives",description:"Breakpoint-free, container-query-driven layout components. Each is a single class with per-instance token overrides via inline style.",classes:[{name:".sf-section",description:"Vertical page rhythm with size variants (--s/--m/--l/--xl/--collapse)."},{name:".sf-section-group",description:"Collapses gap between adjacent sections."},{name:".sf-container",description:"Centered max-width wrapper with gutters. Variants: --narrow, --wide, --full, --prose."},{name:".sf-box",description:"Isolated unit with padding and optional border."},{name:".sf-center",description:"Intrinsic centering with max-width. Variant: --intrinsic."},{name:".sf-stack",description:"Vertical flow with consistent gap. Size variants: --2xs to --3xl. Alignment: --center, --end, --stretch."},{name:".sf-cluster",description:"Wrapping inline group. Size variants: --2xs to --xl. Alignment: --center, --end, --between. Wrap: --no-wrap."},{name:".sf-sidebar",description:"Content + side panel that wraps. Variants: --right, --narrow, --wide."},{name:".sf-switcher",description:"N columns above threshold, stacked below. Variants: --no-wrap, --vertical."},{name:".sf-grid",description:"Auto-fill responsive grid. Size variants: --xs to --xl. Variants: --fit, --dense."},{name:".sf-grid-{1,2,3,4,6}",description:"Fixed-column grids, container-responsive."},{name:".sf-grid-{1-2,2-1,1-3,3-1}",description:"Ratio two-column grids."},{name:".sf-bento",description:"Dense free-form grid. Variants: --2, --4, --compact, --tall."},{name:".sf-alternate",description:"Zigzag two-column layout, reverses every other row."},{name:".sf-pancake",description:"Sticky-footer grid: header / main(1fr) / footer."},{name:".sf-content-grid",description:"Breakout layout grid. Children use .sf-breakout or .sf-full-bleed."},{name:".sf-cover",description:"Full-height region with centered content. Variants: --min, --max, --padding-s, --padding-l."},{name:".sf-frame",description:"Aspect-ratio media box. Variants: --square, --portrait, --video, --cinema, --3-2, --4-3, --golden."},{name:".sf-reel",description:"Horizontal scroll strip with optional mask fade."},{name:".sf-imposter",description:"Absolutely-centered overlay. Variants: --fixed, --contain."},{name:".sf-subgrid / .sf-subgrid-rows",description:"Inherit parent grid tracks."},{name:".sf-divider",description:"Token-driven separator. Variant: --vertical."},{name:".sf-icon",description:"Em-based inline icon sizing. Sizes: --xs to --xl. Variant: --boxed."},{name:".sf-prose",description:"Readable long-form text with automatic vertical rhythm."},{name:".sf-not-prose",description:"Reset zone inside .sf-prose for embedded components."}]},{category:"Macros",description:"Recipe classes that answer 'what does this element do/look like?' - composable with layout primitives.",classes:[{name:".sf-flow",description:"Lobotomized owl: consistent gap between consecutive children."},{name:".sf-truncate",description:"Single-line ellipsis overflow."},{name:".sf-line-clamp-{2,3,N}",description:"Multi-line text clamping with ellipsis. -N reads --sf-line-clamp."},{name:".sf-equal-height",description:"Forces flex children to share the tallest child's height."},{name:".sf-aspect",description:"Generic aspect-ratio container (reads --sf-aspect token)."},{name:".sf-scroll-shadow",description:"Top + bottom mask gradient for scrolling containers."},{name:".sf-scroll-snap",description:"Vertical scroll-snap container."},{name:".sf-overflow-fade",description:"End-edge horizontal fade for overflowing inline content."},{name:".sf-no-tap-highlight",description:"Suppresses WebKit/Android tap highlight."},{name:".sf-text-gradient",description:"Gradient text effect using background-clip."},{name:".sf-clickable-parent",description:"Makes an entire card clickable via the first link inside."},{name:".sf-link-external",description:"Adds external link indicator marker."}]},{category:"Surfaces",description:"Color surface utility classes that set background and text color for a brand context.",classes:[{name:".sf-surface--{primary,secondary,tertiary,action,neutral,inverse}",description:"Brand-colored surface with auto-contrast text."},{name:".sf-surface--{success,warning,error,info,danger}",description:"Status-colored surfaces."}]},{category:"Animations",description:"CSS animation utility classes that apply predefined keyframe animations.",classes:[{name:".sf-fade-in / .sf-fade-out",description:"Opacity entrance/exit animations."},{name:".sf-scale-up / .sf-scale-down",description:"Scale entrance/exit animations."},{name:".sf-slide-in-{up,down,left,right}",description:"Directional slide-in entrance animations."},{name:".sf-color-pulse",description:"Continuous color pulse animation."},{name:".sf-entrance--fade / --fade-up / --fade-down / --fade-left / --fade-right / --scale-up",description:"Scroll-triggered entrance animations (scroll-timeline driven)."}]},{category:"State Classes (.is-*)",description:"Runtime state classes toggled by JS or mirrored from ARIA. They live in the slashed.states layer. Always pair with matching ARIA attributes.",classes:[{name:".is-hidden / .is-invisible / .is-visible",description:"Visibility control: removed from layout / hidden but keeps box / visible."},{name:".is-disabled / .is-readonly",description:"Non-interactive states with dimming."},{name:".is-loading / .is-pending / .is-busy",description:"Loading states: spinner replacement / optimistic UI / cursor hint."},{name:".is-skeleton",description:"Placeholder shimmer animation."},{name:".is-active / .is-selected / .is-current / .is-pressed",description:"Selection/activation states."},{name:".is-highlighted",description:"Transient emphasis (e.g. search result highlight)."},{name:".is-open / .is-collapsed / .is-expanded",description:"Disclosure states for modals, drawers, accordions."},{name:".is-valid / .is-invalid",description:"Form field validation results (maps to aria-invalid)."},{name:".is-success / .is-error / .is-warning / .is-info / .is-danger",description:"General feedback states and destructive-action context."},{name:".is-sticky / .is-pinned / .is-fixed / .is-fullscreen",description:"Positioning states."},{name:".is-clipped / .is-scrollable / .is-truncated / .is-resizable",description:"Overflow handling states."},{name:".is-dragging / .is-drop-target / .is-draggable",description:"Drag and drop states."},{name:".is-overlay / .is-focused / .is-clickable / .is-unselectable",description:"Positioning, focus, cursor, and selection states."},{name:".is-empty",description:"Hide element when empty (:empty pseudo-class)."}]}],Uo=[{name:"--sf-is-dark",description:"Numeric flag (0 or 1) indicating dark mode is active. Registered property."},{name:"--sf-lumlocker",description:"Internal luminance lock value for color derivation."},{name:"--sf-color-scheme",description:"CSS color-scheme declaration (light dark)."},{name:"--sf-current-font-weight",description:"Current context font weight (used by strong elements)."},{name:"--sf-link-external-marker",description:"External link arrow character."},{name:"--sf-field-block",description:"Vertical spacing between form fields."},{name:"--sf-field-required-marker",description:"Required field indicator string."}];var Go=A('
              • '),Wo=A('
                '),Yo=A('
              • '),Xo=A('
                Misc Tokens that do not fit a single category.
                '),Zo=A('

                CSS Custom Properties (--sf-*)

                '),Jo=A('
              • '),Qo=A('
                '),ec=A('

                Utility & State Classes

                '),tc=A('

                '),sc=A('

                API Cheatsheet

                ');function ac(e,t){ye(t,!0);let s=se(""),a=se("all");const r=re.inventory?.variables?.length??0,n=re.inventory?.sf_classes?.length??0,c=re.inventory?.is_classes?.length??0;let l=E(()=>u(Ko,"tokens")),o=E(()=>u(Ho,"classes")),d=E(()=>Uo.filter(L=>_(L.name,L.description)));function _(L,G){if(!i(s).trim())return!0;const W=i(s).trim().toLowerCase();return L.toLowerCase().includes(W)||G.toLowerCase().includes(W)}function u(L,G){return i(s).trim()?L.map(W=>({...W,[G]:W[G].filter(le=>_(le.name,le.description))})).filter(W=>W[G].length>0):L}let v=E(()=>i(a)==="all"||i(a)==="variables"),m=E(()=>i(a)==="all"||i(a)==="classes"),y=E(()=>i(s).trim()!==""&&(!i(v)||i(l).length===0&&i(d).length===0)&&(!i(m)||i(o).length===0));var w=sc(),h=f(w),b=p(f(h),2),k=f(b),j=p(h,2),F=f(j),V=p(F,2),S=f(V);let R;var O=p(S,2);let N;var M=p(O,2);let P;var x=p(j,2);{var T=L=>{var G=Zo(),W=p(f(G),2);ne(W,17,()=>i(l),ks,(oe,pe)=>{var B=Wo(),ee=f(B),he=f(ee),we=f(he),je=p(he,2),$e=f(je),Oe=p(ee,2);ne(Oe,21,()=>i(pe).tokens,ks,(Ae,de)=>{var xe=Go(),Te=f(xe),_e=f(Te),Ke=p(Te,2),nt=f(Ke);q(()=>{C(_e,i(de).name),C(nt,i(de).description)}),z(Ae,xe)}),q(Ae=>{B.open=Ae,C(we,i(pe).category),C($e,i(pe).description)},[()=>!i(s).trim()]),z(oe,B)});var le=p(W,2);{var ve=oe=>{var pe=Xo(),B=p(f(pe),2);ne(B,21,()=>i(d),ks,(ee,he)=>{var we=Yo(),je=f(we),$e=f(je),Oe=p(je,2),Ae=f(Oe);q(()=>{C($e,i(he).name),C(Ae,i(he).description)}),z(ee,we)}),q(ee=>pe.open=ee,[()=>!i(s).trim()]),z(oe,pe)};ue(le,oe=>{i(d).length>0&&oe(ve)})}z(L,G)};ue(x,L=>{i(v)&&L(T)})}var $=p(x,2);{var D=L=>{var G=ec(),W=p(f(G),2);ne(W,17,()=>i(o),ks,(le,ve)=>{var oe=Qo(),pe=f(oe),B=f(pe),ee=f(B),he=p(B,2),we=f(he),je=p(pe,2);ne(je,21,()=>i(ve).classes,ks,($e,Oe)=>{var Ae=Jo(),de=f(Ae),xe=f(de),Te=p(de,2),_e=f(Te);q(()=>{C(xe,i(Oe).name),C(_e,i(Oe).description)}),z($e,Ae)}),q($e=>{oe.open=$e,C(ee,i(ve).category),C(we,i(ve).description)},[()=>!i(s).trim()]),z(le,oe)}),z(L,G)};ue($,L=>{i(m)&&L(D)})}var I=p($,2);{var Y=L=>{var G=tc(),W=f(G);q(()=>C(W,`No results for "${i(s)??""}"`)),z(L,G)};ue(I,L=>{i(y)&&L(Y)})}q(()=>{C(k,`${r??""} variables | ${n??""} layout/utility classes | ${c??""} state classes`),Q(S,"aria-pressed",i(a)==="all"),R=ut(S,1,"svelte-osej3t",null,R,{active:i(a)==="all"}),Q(O,"aria-pressed",i(a)==="variables"),N=ut(O,1,"svelte-osej3t",null,N,{active:i(a)==="variables"}),Q(M,"aria-pressed",i(a)==="classes"),P=ut(M,1,"svelte-osej3t",null,P,{active:i(a)==="classes"})}),$t(F,()=>i(s),L=>K(s,L)),ge("click",S,()=>K(a,"all")),ge("click",O,()=>K(a,"variables")),ge("click",M,()=>K(a,"classes")),z(e,w),be()}Le(["click"]);var rc=A('
                '),nc=A('
                '),ic=A(`

                Live preview

                The quick brown fox jumps over the lazy dog

                Body and heading fonts update as you adjust typography settings. Colors below + reflect brand and status tokens for the selected mode.

                Primary Action Outline Ghost

                Card Component

                Design token preview

                Active

                This card shows radius, shadow, spacing, colors, and typography + working together. All values update live as you adjust tokens.

                Generated CSS:
                `);function lc(e,t){ye(t,!0);const s=["primary","secondary","tertiary","action","neutral","base"],a=["success","warning","error","info","danger"],r=re.defaults?.colors??{};let n=se(!1);const c=E(()=>{const de=[],xe=H.colors??{},Te=H.typography??{},_e=H.radius??{},Ke=H.shadows??{};for(const Fe of s){const wt=xe[`brand_${Fe}`]??r.brand_hex_hints?.[Fe];wt&&de.push(`--sf-color-${Fe}-light:${wt}`);const xt=xe[`brand_dark_${Fe}`]??r.brand_dark_hex_hints?.[Fe];xt&&de.push(`--sf-color-${Fe}-dark:${xt}`)}for(const Fe of a){const wt=xe[`status_${Fe}`]??r.status_hex_hints?.[Fe];wt&&de.push(`--sf-color-${Fe}-light:${wt}`);const xt=xe[`status_dark_${Fe}`]??r.status_dark_hex_hints?.[Fe];xt&&de.push(`--sf-color-${Fe}-dark:${xt}`)}Te.font_body&&de.push(`--sf-font-body:${Te.font_body}`),Te.font_heading&&de.push(`--sf-font-heading:${Te.font_heading}`);const nt=parseFloat(_e.radius_scale??re.defaults?.radius?.radius_scale??1)||1;de.push(`--preview-radius-s:${Math.round(4*nt)}px`),de.push(`--preview-radius-m:${Math.round(8*nt)}px`),de.push(`--preview-radius-l:${Math.round(16*nt)}px`);const pt=parseFloat(Ke.shadow_strength??re.defaults?.shadows?.shadow_strength??.08);return de.push(`--preview-shadow:0 2px 8px 0 rgba(0,0,0,${(pt*2).toFixed(3)}),0 1px 3px 0 rgba(0,0,0,${pt.toFixed(3)})`),de.join(";")}),l=E(()=>i(n)?"dark":"light"),o=E(()=>tr(H));var d=ic();let _;var u=f(d),v=p(f(u),2),m=f(v);let y;var w=p(m,2);let h;var b=p(u,6),k=f(b);ne(k,16,()=>s,de=>de,(de,xe)=>{var Te=rc();let _e;var Ke=f(Te);q(()=>{Q(Te,"title",xe),_e=fe(Te,"",_e,{background:`var(--sf-color-${xe}-${i(l)}, #ddd)`}),C(Ke,xe)}),z(de,Te)});var j=p(k,2);ne(j,16,()=>a,de=>de,(de,xe)=>{var Te=nc();let _e;var Ke=f(Te);q(()=>{Q(Te,"title",xe),_e=fe(Te,"",_e,{background:`var(--sf-color-${xe}-${i(l)}, #ddd)`}),C(Ke,xe)}),z(de,Te)});var F=p(b,2),V=f(F);let S;var R=p(V,2);let O;var N=p(R,2);let M;var P=p(F,2);fe(P,"",{},{"box-shadow":"var(--preview-shadow)"});var x=f(P);let T;var $=p(x,2),D=f($),I=f(D);let Y;var L=p(I,2),G=f(L);fe(G,"",{},{"font-family":"var(--sf-font-heading, system-ui, sans-serif)"});var W=p(L,2);let le;var ve=p(D,2);fe(ve,"",{},{"font-family":"var(--sf-font-body, system-ui, sans-serif)"});var oe=p(ve,2),pe=f(oe);let B;var ee=p(pe,2);let he;var we=p(ee,2);let je;var $e=p(P,2),Oe=p(f($e)),Ae=f(Oe);q(()=>{_=ut(d,1,"slashed-preview svelte-g79qke",null,_,{"is-dark":i(n)}),fe(d,i(c)),y=ut(m,1,"slashed-preview__mode-btn svelte-g79qke",null,y,{active:!i(n)}),h=ut(w,1,"slashed-preview__mode-btn svelte-g79qke",null,h,{active:i(n)}),S=fe(V,"",S,{background:`var(--sf-color-primary-${i(l)}, #4338ca)`}),O=fe(R,"",O,{background:`var(--sf-color-action-${i(l)}, #0891b2)`}),M=fe(N,"",M,{"border-color":`var(--sf-color-primary-${i(l)}, #4338ca)`,color:`var(--sf-color-primary-${i(l)}, #4338ca)`}),T=fe(x,"",T,{background:`var(--sf-color-primary-${i(l)}, #4338ca)`}),Y=fe(I,"",Y,{background:`var(--sf-color-secondary-${i(l)}, #7c3aed)`}),le=fe(W,"",le,{background:`var(--sf-color-success-${i(l)}, #16a34a)`}),B=fe(pe,"",B,{background:`var(--sf-color-info-${i(l)}, #0284c7)`}),he=fe(ee,"",he,{background:`var(--sf-color-warning-${i(l)}, #ca8a04)`}),je=fe(we,"",je,{background:`var(--sf-color-action-${i(l)}, #0891b2)`}),C(Ae,i(o)||"/* (defaults — no overrides set) */")}),ge("click",m,()=>K(n,!1)),ge("click",w,()=>K(n,!0)),z(e,d),be()}Le(["click"]);var oc=A(' '),cc=A('Saving…'),dc=A('Saved'),fc=A('Unsaved changes'),uc=A('All changes saved'),vc=A('
                ');function pc(e,t){ye(t,!0);const s=["contrast","radius","shadows","motion","zindex"];async function a(){if(!U.saving){U.saving=!0,U.error="";try{if(U.activeTab==="misc"){const S=await Promise.allSettled(s.map(O=>yr(O,H[O]??{}))),R=[];if(S.forEach((O,N)=>{O.status==="fulfilled"?O.value?.values&&(H[s[N]]=O.value.values):R.push(s[N])}),R.length>0)throw new Error(`Failed to save: ${R.join(", ")}`)}else{const S=U.activeTab,R=H[S]??{},O=await yr(S,R);O&&O.values&&(H[S]=O.values)}U.dirty=!1,U.lastSavedAt=Date.now()}catch(S){U.error=S&&S.message||String(S)}finally{U.saving=!1}}}async function r(){if(!U.saving&&confirm(`Reset the ${re.tabs[U.activeTab]??U.activeTab} tab to defaults?`)){U.saving=!0,U.error="";try{if(U.activeTab==="misc"){const S=await Promise.allSettled(s.map(O=>br(O))),R=[];if(S.forEach((O,N)=>{O.status==="fulfilled"?mr(s[N]):R.push(s[N])}),R.length>0)throw new Error(`Failed to reset: ${R.join(", ")}`)}else await br(U.activeTab),mr(U.activeTab);U.dirty=!1,U.lastSavedAt=Date.now()}catch(S){U.error=S&&S.message||String(S)}finally{U.saving=!1}}}let n=se(!1);tn(()=>{if(U.lastSavedAt){K(n,!0);const S=setTimeout(()=>K(n,!1),2e3);return()=>clearTimeout(S)}});const c=E(()=>xn(H));function l(){const S=tr(H);if(!S)return;const R=new Blob([S],{type:"text/css"}),O=URL.createObjectURL(R),N=document.createElement("a");N.href=O,N.download="slashed-custom.css",document.body.appendChild(N),N.click(),document.body.removeChild(N),URL.revokeObjectURL(O)}var o=vc();let d;var _=f(o),u=f(_);{var v=S=>{var R=oc(),O=f(R);q(()=>C(O,U.error)),z(S,R)},m=S=>{var R=cc();z(S,R)},y=S=>{var R=dc();z(S,R)},w=S=>{var R=fc();z(S,R)},h=S=>{var R=uc();z(S,R)};ue(u,S=>{U.error?S(v):U.saving?S(m,1):i(n)?S(y,2):U.dirty?S(w,3):S(h,-1)})}var b=p(_,2),k=f(b),j=p(k,2),F=p(j,2),V=f(F);q(()=>{d=ut(o,1,"bar svelte-1oj49qa",null,d,{dirty:U.dirty}),k.disabled=U.saving,j.disabled=!i(c),F.disabled=U.saving||!U.dirty,C(V,U.saving?"Saving…":"Save changes")}),ge("click",k,r),ge("click",j,l),ge("click",F,a),z(e,o),be()}Le(["click"]);var hc=A(' '),_c=A(' '),gc=A('

                SLASHED Design Tokens

                Adjust framework tokens, inspect generated variables, and manage the bundled CSS in one place.

                ');function mc(e,t){ye(t,!0);const s=["cheatsheet","hooks","variables","classes","bundle","export"];let a=E(()=>s.includes(U.activeTab));tn(()=>{function x(T){U.dirty&&(T.preventDefault(),T.returnValue="")}return window.addEventListener("beforeunload",x),()=>window.removeEventListener("beforeunload",x)});var r=gc(),n=f(r),c=f(n),l=p(f(c),2),o=f(l);{var d=x=>{var T=hc(),$=f(T);q(()=>C($,`Framework ${re.versions.framework??""}`)),z(x,T)};ue(o,x=>{re.versions.framework&&x(d)})}var _=p(o,2);{var u=x=>{var T=_c(),$=f(T);q(()=>C($,`Plugin v${re.versions.plugin??""}`)),z(x,T)};ue(_,x=>{re.versions.plugin&&x(u)})}var v=p(n,2);ul(v,{});var m=p(v,2),y=f(m);{var w=x=>{wl(x,{})},h=x=>{Bl(x,{})},b=x=>{Xl(x,{})},k=x=>{lo(x,{})},j=x=>{vo(x,{})},F=x=>{yo(x,{})},V=x=>{jo(x,{})},S=x=>{Io(x,{})},R=x=>{Bo(x)},O=x=>{ac(x,{})};ue(y,x=>{U.activeTab==="colors"?x(w):U.activeTab==="typography"?x(h,1):U.activeTab==="spacing"?x(b,2):U.activeTab==="misc"?x(k,3):U.activeTab==="variables"?x(j,4):U.activeTab==="classes"?x(F,5):U.activeTab==="bundle"?x(V,6):U.activeTab==="export"?x(S,7):U.activeTab==="hooks"?x(R,8):U.activeTab==="cheatsheet"&&x(O,9)})}var N=p(m,2);lc(N,{});var M=p(N,2);{var P=x=>{pc(x,{})};ue(M,x=>{i(a)||x(P)})}z(e,r),be()}const kr=document.getElementById("slashed-admin-app");kr&&Yi(mc,{target:kr}); //# sourceMappingURL=app.js.map From 0d333353f6ebc21d691ef5086c6f78801344ae3a Mon Sep 17 00:00:00 2001 From: Claude Date: Fri, 29 May 2026 11:38:40 +0000 Subject: [PATCH 2/4] feat(admin): dark mode override toggle + verified auto-derivation tests MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ColorTab: add "Custom dark mode colors" toggle (stored as colors.dark_overrides_enabled). When OFF, the -dark color fields are hidden and no -dark declarations are emitted — the CSS framework's built-in relative-color-syntax auto-derivation takes over: oklch(from light clamp(0.65, 0.95−l·0.5, 0.88) c·0.9 h) Values are preserved in the DB so toggling back re-enables them. class-css-generator.php + export.js: skip brand_dark_* / status_dark_* declarations when dark_overrides_enabled === '0'. Default (key absent or '1') preserves existing behaviour. tests/color-semantic.spec.js: add 4 Playwright tests (Chromium — all pass) confirming the auto-derivation actually runs end-to-end: · primary is lighter in dark theme than light theme · all 6 brand colors obey the formula (base inverts, others brighten) · base inverts near-white → near-dark (luminance > 0.7 vs < 0.08) · explicit -dark override takes precedence over auto-derived fallback https://claude.ai/code/session_019MD9F8rrpYzCeDTmSTLA1K --- .../admin-app/src/components/ColorTab.svelte | 161 ++++++++++++++---- .../bricks/admin-app/src/lib/export.js | 29 ++-- integrations/bricks/assets/admin-app/app.css | 2 +- integrations/bricks/assets/admin-app/app.js | 26 +-- .../bricks/includes/class-css-generator.php | 33 ++-- tests/color-semantic.spec.js | 83 +++++++++ 6 files changed, 258 insertions(+), 76 deletions(-) diff --git a/integrations/bricks/admin-app/src/components/ColorTab.svelte b/integrations/bricks/admin-app/src/components/ColorTab.svelte index 8cfe5617..46514a0a 100644 --- a/integrations/bricks/admin-app/src/components/ColorTab.svelte +++ b/integrations/bricks/admin-app/src/components/ColorTab.svelte @@ -7,18 +7,27 @@ * colors. Dark-mode values are optional — if left empty, the framework * auto-derives dark variants from the light source tokens via relative * color syntax. Setting an explicit dark value overrides auto-derivation. + * + * The "dark_overrides_enabled" flag (stored in the colors section) controls + * whether custom dark values are included in generated CSS. When OFF, the + * values are preserved in the DB but skipped — pure auto-derivation is used. */ - import { meta } from '../lib/stores.svelte.js'; + import { meta, readField, writeField } from '../lib/stores.svelte.js'; import ColorRow from './ColorRow.svelte'; import AdvancedSection from './AdvancedSection.svelte'; const colors = meta.defaults?.colors ?? {}; - /** Capitalize first letter for display labels (matches the legacy ucfirst()). */ const cap = (s) => s.charAt(0).toUpperCase() + s.slice(1); - /** Brand color keys — only the 6 core brand colors for the basic section. */ const brandEntries = Object.entries(colors.brand ?? {}); + + /** Whether custom dark overrides are active (default: true when not set). */ + const darkOn = $derived(readField('colors', 'dark_overrides_enabled') !== '0'); + + function toggleDark() { + writeField('colors', 'dark_overrides_enabled', darkOn ? '0' : '1'); + }
                @@ -55,41 +64,59 @@ {/each} -

                Brand Colors — Dark Mode

                -

                - Optional overrides for dark mode. Leave empty to let the framework auto-derive - dark variants from the light source colors. Set explicit values for full - control over dark-mode appearance. -

                - -
                - {#each Object.entries(colors.brand_dark ?? colors.brand ?? {}) as [name] (name)} - - {/each} + +
                +
                + + + {darkOn ? 'Active — custom values override auto-derivation' : 'Off — dark mode auto-derived from light source colors'} + +
                +

                + The framework auto-derives dark mode from light source colors using CSS relative color syntax + (oklch(from light clamp(0.65, 0.95−l·0.5, 0.88) c·0.9 h)). Turn this on only + when you need precise per-color dark overrides; auto-derivation is usually good enough. +

                -

                Status Colors — Dark Mode

                -

                - Optional overrides for dark mode. Leave empty for auto-derivation. -

                + {#if darkOn} +

                Brand Colors — Dark Mode

                +
                + {#each Object.entries(colors.brand_dark ?? colors.brand ?? {}) as [name] (name)} + + {/each} +
                -
                - {#each Object.entries(colors.status_dark ?? colors.status ?? {}) as [name] (name)} - - {/each} -
                +

                Status Colors — Dark Mode

                +
                + {#each Object.entries(colors.status_dark ?? colors.status ?? {}) as [name] (name)} + + {/each} +
                + {/if}
                @@ -97,7 +124,8 @@ h2 { margin-top: 0; } .status-heading { margin-top: 24px; } .dark-heading { margin-top: 24px; } - .hint { color: #50575e; margin-bottom: 16px; max-width: 720px; } + .hint { color: #50575e; margin-bottom: 16px; max-width: 720px; font-size: 13px; } + .hint code { background: #f0f0f1; padding: 1px 4px; border-radius: 3px; font-size: 11px; } .rows { border: 1px solid #f0f0f1; border-radius: 4px; @@ -108,4 +136,65 @@ background: #f8f8fc; border-color: #e2e4e9; } + + /* ── Dark mode toggle ───────────────────────────────────────── */ + .dark-toggle-section { + margin-top: 24px; + padding: 14px 16px; + background: #f6f7f7; + border: 1px solid #e0e0e0; + border-radius: 4px; + } + .dark-toggle-row { + display: flex; + align-items: center; + gap: 10px; + margin-bottom: 8px; + } + .dark-toggle-btn { + display: flex; + align-items: center; + gap: 8px; + background: none; + border: none; + cursor: pointer; + padding: 0; + font-size: 13px; + font-weight: 600; + color: #1d2327; + } + .dark-toggle-btn__track { + position: relative; + display: inline-block; + width: 36px; + height: 20px; + background: #c3c4c7; + border-radius: 10px; + transition: background 150ms; + flex-shrink: 0; + } + .dark-toggle-btn.on .dark-toggle-btn__track { + background: #2271b1; + } + .dark-toggle-btn__thumb { + position: absolute; + top: 2px; + left: 2px; + width: 16px; + height: 16px; + background: white; + border-radius: 50%; + transition: left 150ms; + box-shadow: 0 1px 3px rgba(0,0,0,0.2); + } + .dark-toggle-btn.on .dark-toggle-btn__thumb { + left: 18px; + } + .dark-toggle-status { + font-size: 12px; + color: #50575e; + } + .dark-toggle-section .hint { + margin-bottom: 0; + } diff --git a/integrations/bricks/admin-app/src/lib/export.js b/integrations/bricks/admin-app/src/lib/export.js index 6af29e61..39a5fde4 100644 --- a/integrations/bricks/admin-app/src/lib/export.js +++ b/integrations/bricks/admin-app/src/lib/export.js @@ -75,14 +75,6 @@ function generateColorDeclarations(settings) { } } - // Brand colors (dark): brand_dark_primary -> --sf-color-primary-dark. - for (const color of brandColors) { - const key = `brand_dark_${color}`; - if (hasValue(settings[key])) { - declarations.push(`--sf-color-${color}-dark: ${settings[key]};`); - } - } - // Status colors (light): status_success -> --sf-color-success-light. const statusColors = ['success', 'warning', 'error', 'info', 'danger']; for (const color of statusColors) { @@ -92,11 +84,22 @@ function generateColorDeclarations(settings) { } } - // Status colors (dark): status_dark_success -> --sf-color-success-dark. - for (const color of statusColors) { - const key = `status_dark_${color}`; - if (hasValue(settings[key])) { - declarations.push(`--sf-color-${color}-dark: ${settings[key]};`); + // Dark overrides are skipped when the toggle is explicitly disabled. + // Default (key absent or '1') keeps previous behaviour: output dark overrides. + const darkEnabled = settings.dark_overrides_enabled !== '0'; + + if (darkEnabled) { + for (const color of brandColors) { + const key = `brand_dark_${color}`; + if (hasValue(settings[key])) { + declarations.push(`--sf-color-${color}-dark: ${settings[key]};`); + } + } + for (const color of statusColors) { + const key = `status_dark_${color}`; + if (hasValue(settings[key])) { + declarations.push(`--sf-color-${color}-dark: ${settings[key]};`); + } } } diff --git a/integrations/bricks/assets/admin-app/app.css b/integrations/bricks/assets/admin-app/app.css index eec88bff..1ceb7411 100644 --- a/integrations/bricks/assets/admin-app/app.css +++ b/integrations/bricks/assets/admin-app/app.css @@ -1 +1 @@ -.tab-nav.svelte-yyiz68{display:flex;gap:2px;border-bottom:1px solid #c3c4c7;flex-wrap:wrap}.tab-nav__btn.svelte-yyiz68{background:transparent;border:1px solid transparent;border-bottom:none;padding:8px 14px;cursor:pointer;font-size:14px;color:#2c3338;border-radius:4px 4px 0 0}.tab-nav__btn.svelte-yyiz68:hover{background:#f0f0f1}.tab-nav__btn.active.svelte-yyiz68{background:#fff;border-color:#c3c4c7;margin-bottom:-1px;color:#1d2327;font-weight:500}.row.svelte-1es83p3{display:grid;grid-template-columns:220px 1fr;align-items:center;gap:12px;padding:10px 0;border-bottom:1px solid #f0f0f1}.row.svelte-1es83p3:last-child{border-bottom:none}.row__label.svelte-1es83p3 label:where(.svelte-1es83p3){font-weight:500;display:block;color:#1d2327}.row__var.svelte-1es83p3{display:inline-block;margin-top:4px;background:#f6f7f7;padding:1px 6px;border-radius:3px;font-size:11px;color:#50575e}.row__inputs.svelte-1es83p3{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.row__swatch.svelte-1es83p3{width:28px;height:28px;border-radius:4px;border:1px solid #c3c4c7;flex-shrink:0}.row__hex.svelte-1es83p3{width:44px;height:28px;padding:0;border:1px solid #8c8f94;border-radius:3px;cursor:pointer;background:#fff}.row__hex-text.svelte-1es83p3{width:110px}.row__raw.svelte-1es83p3{flex:1;min-width:240px;font-family:ui-monospace,monospace}.row__toggle.svelte-1es83p3{background:transparent;border:none;color:#2271b1;cursor:pointer;padding:4px 8px;font-size:12px;text-decoration:underline}.row__toggle.svelte-1es83p3:hover{color:#135e96}.advanced-section.svelte-imklo1{margin-top:24px}.advanced-section__toggle.svelte-imklo1{background:none;border:none;color:#2271b1;font-size:13px;cursor:pointer;padding:6px 0;display:flex;align-items:center;gap:6px;font-weight:500}.advanced-section__toggle.svelte-imklo1:hover{text-decoration:underline}.advanced-section__body.svelte-imklo1{margin-top:12px}h2.svelte-1vle0rm{margin-top:0}.status-heading.svelte-1vle0rm,.dark-heading.svelte-1vle0rm{margin-top:24px}.hint.svelte-1vle0rm{color:#50575e;margin-bottom:16px;max-width:720px}.rows.svelte-1vle0rm{border:1px solid #f0f0f1;border-radius:4px;padding:0 12px;background:#fcfcfd}.rows--dark.svelte-1vle0rm{background:#f8f8fc;border-color:#e2e4e9}.row.svelte-miyob8{display:grid;grid-template-columns:220px 1fr;align-items:center;gap:12px;padding:10px 0;border-bottom:1px solid #f0f0f1}.row.svelte-miyob8:last-child{border-bottom:none}.row__label.svelte-miyob8 label:where(.svelte-miyob8),.row__label-text.svelte-miyob8{font-weight:500;display:block;color:#1d2327}.row__var.svelte-miyob8{display:inline-block;margin-top:4px;background:#f6f7f7;padding:1px 6px;border-radius:3px;font-size:11px;color:#50575e}.row__inputs.svelte-miyob8{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.row__desc.svelte-miyob8{flex-basis:100%;margin:4px 0 0;color:#50575e;font-size:12px}.text.mono.svelte-j8yw6l{font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.unit.svelte-1pjh3bn{color:#50575e;font-size:12px}.typo-preview.svelte-10qc8pz{background:#fff;border:1px solid #c3c4c7;border-radius:4px;padding:16px 20px;margin-top:8px}.typo-preview__header.svelte-10qc8pz{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px;margin-bottom:14px}.typo-preview__title.svelte-10qc8pz{font-size:13px;font-weight:600;color:#1d2327;margin:0}.typo-preview__slider-wrap.svelte-10qc8pz{display:flex;align-items:center;gap:8px;font-size:12px;color:#50575e}.typo-preview__slider.svelte-10qc8pz{width:180px;cursor:pointer;accent-color:#2271b1}.typo-preview__vw-label.svelte-10qc8pz{min-width:58px;text-align:right;font-variant-numeric:tabular-nums;color:#1d2327;font-weight:500}.typo-preview__rows.svelte-10qc8pz{display:flex;flex-direction:column;gap:0}.typo-preview__row.svelte-10qc8pz{display:grid;grid-template-columns:52px 1fr 120px;align-items:baseline;gap:12px;padding:6px 0;border-bottom:1px solid #f0f0f1;overflow:hidden}.typo-preview__row.svelte-10qc8pz:last-child{border-bottom:none}.typo-preview__step-name.svelte-10qc8pz{font-size:11px;font-weight:600;color:#50575e;text-transform:uppercase;letter-spacing:.05em;flex-shrink:0}.typo-preview__sample.svelte-10qc8pz{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#1d2327;line-height:1.2}.typo-preview__meta.svelte-10qc8pz{font-size:10px;color:#787c82;text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}.typo-preview__group-heading.svelte-10qc8pz{font-size:11px;font-weight:600;color:#50575e;text-transform:uppercase;letter-spacing:.07em;margin:0 0 6px;padding:6px 0 4px;border-bottom:1px solid #f0f0f1}.typo-preview__rows--display.svelte-10qc8pz{margin-top:16px;padding-top:4px;border-top:2px solid #f0f0f1}.scale-gen.svelte-1y8fkhh{background:#f6f7f7;border:1px solid #c3c4c7;border-radius:4px;padding:14px 16px;margin-bottom:16px}.scale-gen__header.svelte-1y8fkhh{display:flex;align-items:baseline;gap:10px;margin-bottom:12px;flex-wrap:wrap}.scale-gen__title.svelte-1y8fkhh{font-size:12px;font-weight:600;color:#1d2327;text-transform:uppercase;letter-spacing:.06em}.scale-gen__hint.svelte-1y8fkhh{font-size:12px;color:#787c82}.scale-gen__controls.svelte-1y8fkhh{display:flex;gap:12px;flex-wrap:wrap;align-items:flex-end;margin-bottom:12px}.scale-gen__field.svelte-1y8fkhh{display:flex;flex-direction:column;gap:4px}.scale-gen__label.svelte-1y8fkhh{font-size:11px;color:#50575e;font-weight:500}.scale-gen__field.svelte-1y8fkhh input[type=number]:where(.svelte-1y8fkhh){width:68px;height:28px;border:1px solid #8c8f94;border-radius:3px;padding:0 6px;font-size:13px;background:#fff;color:#1d2327}.scale-gen__field.svelte-1y8fkhh select:where(.svelte-1y8fkhh){height:28px;border:1px solid #8c8f94;border-radius:3px;padding:0 4px;font-size:12px;background:#fff;color:#1d2327;cursor:pointer}.scale-gen__input-wrap.svelte-1y8fkhh{display:flex;align-items:center;gap:4px}.scale-gen__unit.svelte-1y8fkhh{font-size:11px;color:#787c82}.scale-gen__preview.svelte-1y8fkhh{display:flex;flex-wrap:wrap;gap:4px 12px;margin-bottom:12px}.scale-gen__step.svelte-1y8fkhh{display:flex;gap:4px;font-size:11px;color:#50575e;font-family:ui-monospace,monospace}.scale-gen__step.display.svelte-1y8fkhh{color:#2271b1}.scale-gen__step-name.svelte-1y8fkhh{font-weight:600;min-width:52px}.scale-gen__step-val.svelte-1y8fkhh{color:#787c82}.scale-gen__footer.svelte-1y8fkhh{display:flex;justify-content:flex-end}.scale-gen__apply.svelte-1y8fkhh{background:#2271b1;color:#fff;border:none;border-radius:3px;padding:6px 14px;font-size:13px;cursor:pointer}.scale-gen__apply.svelte-1y8fkhh:hover{background:#135e96}h2.svelte-743nsg{margin-top:0}.group-heading.svelte-743nsg{margin-top:24px}.hint.svelte-743nsg{color:#50575e;margin-bottom:16px;max-width:720px}.hint.svelte-743nsg code:where(.svelte-743nsg){background:#f0f0f1;padding:1px 5px;border-radius:3px;font-size:90%}.rows.svelte-743nsg{border:1px solid #f0f0f1;border-radius:4px;padding:0 12px;background:#fcfcfd}.size-row.svelte-743nsg{display:grid;grid-template-columns:220px 1fr;align-items:center;gap:12px;padding:10px 0;border-bottom:1px solid #f0f0f1}.size-row.svelte-743nsg:last-child{border-bottom:none}.size-row__name.svelte-743nsg{font-weight:500;color:#1d2327;display:block}.size-row__var.svelte-743nsg{display:inline-block;margin-top:4px;background:#f6f7f7;padding:1px 6px;border-radius:3px;font-size:11px;color:#50575e}.size-row__inputs.svelte-743nsg{display:flex;align-items:center;gap:16px;flex-wrap:wrap}.size-row__inputs.svelte-743nsg .row{display:flex!important;grid-template-columns:none;gap:6px;padding:0;border:none;align-items:center}.size-row__inputs.svelte-743nsg .row__label-text,.size-row__inputs.svelte-743nsg .row__label label{font-weight:400;color:#50575e;font-size:12px}.spacing-preview.svelte-11lwg9t{background:#fff;border:1px solid #c3c4c7;border-radius:4px;padding:16px 20px;margin-top:16px}.spacing-preview__header.svelte-11lwg9t{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px;margin-bottom:14px}.spacing-preview__title.svelte-11lwg9t{font-size:13px;font-weight:600;color:#1d2327;margin:0}.spacing-preview__slider-wrap.svelte-11lwg9t{display:flex;align-items:center;gap:8px;font-size:12px;color:#50575e}.spacing-preview__slider.svelte-11lwg9t{width:180px;cursor:pointer;accent-color:#2271b1}.spacing-preview__vw-label.svelte-11lwg9t{min-width:58px;text-align:right;font-variant-numeric:tabular-nums;color:#1d2327;font-weight:500}.spacing-preview__rows.svelte-11lwg9t{display:flex;flex-direction:column;gap:6px}.spacing-preview__row.svelte-11lwg9t{display:grid;grid-template-columns:160px 1fr 70px;align-items:center;gap:12px}.spacing-preview__token.svelte-11lwg9t{font-family:monospace;font-size:11px;color:#50575e;white-space:nowrap}.spacing-preview__bar-wrap.svelte-11lwg9t{background:#f0f0f1;border-radius:2px;height:16px;overflow:hidden}.spacing-preview__bar.svelte-11lwg9t{height:100%;background:#2271b1;border-radius:2px;transition:width 80ms ease;min-width:2px}.spacing-preview__value.svelte-11lwg9t{font-size:11px;color:#787c82;text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.spacing-preview__card-section.svelte-11lwg9t{margin-top:20px;padding-top:16px;border-top:1px solid #e9eaeb}.spacing-preview__card-label.svelte-11lwg9t{font-size:12px;font-weight:600;color:#50575e;margin:0 0 10px}.spacing-preview__card.svelte-11lwg9t{display:flex;flex-direction:column;background:#fff;border:1px solid #c3c4c7;border-radius:6px;max-width:320px;box-shadow:0 1px 4px #00000012}.spacing-preview__card-row.svelte-11lwg9t{display:flex;align-items:center}.spacing-preview__card-avatar.svelte-11lwg9t{width:32px;height:32px;border-radius:50%;background:#2271b1;flex-shrink:0}.spacing-preview__card-meta.svelte-11lwg9t{display:flex;flex-direction:column;gap:2px}.spacing-preview__card-title.svelte-11lwg9t{font-size:13px;font-weight:600;color:#1d2327;line-height:1.2}.spacing-preview__card-sub.svelte-11lwg9t{font-size:11px;color:#787c82;font-variant-numeric:tabular-nums}.spacing-preview__card-body.svelte-11lwg9t{font-size:12px;color:#50575e;line-height:1.5;padding:8px 0;border-top:1px dashed #e9eaeb;border-bottom:1px dashed #e9eaeb;font-variant-numeric:tabular-nums}.spacing-preview__card-footer.svelte-11lwg9t{display:flex;align-items:center;flex-wrap:wrap}.spacing-preview__card-tag.svelte-11lwg9t{background:#f0f0f1;color:#50575e;font-size:10px;font-weight:600;padding:2px 8px;border-radius:3px;white-space:nowrap}.spacing-preview__card-cta.svelte-11lwg9t{margin-left:auto;background:#2271b1;color:#fff;font-size:11px;font-weight:500;padding:4px 10px;border-radius:3px}h2.svelte-1sn1epc{margin-top:0}.group-heading.svelte-1sn1epc{margin-top:24px}.hint.svelte-1sn1epc{color:#50575e;margin-bottom:16px;max-width:720px}.hint.svelte-1sn1epc code:where(.svelte-1sn1epc){background:#f0f0f1;padding:1px 5px;border-radius:3px;font-size:90%}.rows.svelte-1sn1epc{border:1px solid #f0f0f1;border-radius:4px;padding:0 12px;background:#fcfcfd}.size-row.svelte-1sn1epc{display:grid;grid-template-columns:220px 1fr;align-items:center;gap:12px;padding:10px 0;border-bottom:1px solid #f0f0f1}.size-row.svelte-1sn1epc:last-child{border-bottom:none}.size-row__name.svelte-1sn1epc{font-weight:500;color:#1d2327;display:block}.size-row__var.svelte-1sn1epc{display:inline-block;margin-top:4px;background:#f6f7f7;padding:1px 6px;border-radius:3px;font-size:11px;color:#50575e}.size-row__inputs.svelte-1sn1epc{display:flex;align-items:center;gap:16px;flex-wrap:wrap}.size-row__inputs.svelte-1sn1epc .row{display:flex!important;grid-template-columns:none;gap:6px;padding:0;border:none;align-items:center}.size-row__inputs.svelte-1sn1epc .row__label-text,.size-row__inputs.svelte-1sn1epc .row__label label{font-weight:400;color:#50575e;font-size:12px}.range.svelte-cifrt1{flex:1;min-width:160px;max-width:320px;accent-color:#2271b1}.number.svelte-cifrt1{width:90px}.unit.svelte-cifrt1{color:#50575e;font-size:12px}.select.svelte-r7dp44{min-width:160px}h2.svelte-ieamrv{margin-top:0}.group-heading.svelte-ieamrv{margin-top:24px}.hint.svelte-ieamrv{color:#50575e;margin-bottom:16px;max-width:720px;font-size:13px}.rows.svelte-ieamrv{border:1px solid #f0f0f1;border-radius:4px;padding:0 12px;background:#fcfcfd}.radius-preview.svelte-ieamrv{display:flex;flex-wrap:wrap;gap:16px;margin-top:12px;padding:16px;background:#fff;border:1px solid #c3c4c7;border-radius:4px}.radius-preview__item.svelte-ieamrv{display:flex;flex-direction:column;align-items:center;gap:6px}.radius-preview__swatch.svelte-ieamrv{width:40px;height:40px;background:#2271b1}.radius-preview__label.svelte-ieamrv{font-size:10px;color:#50575e;text-align:center}@keyframes svelte-ieamrv-slashed-mp-fill{0%{width:0}50%{width:100%}to{width:0}}.motion-preview.svelte-ieamrv{display:flex;flex-direction:column;gap:8px;margin-top:12px;padding:16px;background:#fff;border:1px solid #c3c4c7;border-radius:4px}.motion-preview__item.svelte-ieamrv{display:grid;grid-template-columns:60px 1fr 56px;align-items:center;gap:10px}.motion-preview__label.svelte-ieamrv{font-size:11px;font-weight:600;color:#50575e;text-align:right}.motion-preview__track.svelte-ieamrv{height:6px;background:#f0f0f1;border-radius:3px;overflow:hidden}.motion-preview__fill.svelte-ieamrv{height:100%;background:#2271b1;border-radius:3px;animation:svelte-ieamrv-slashed-mp-fill ease-in-out infinite}.motion-preview__ms.svelte-ieamrv{font-size:11px;color:#8c8f94;text-align:right;font-variant-numeric:tabular-nums}.focus-ring-preview.svelte-ieamrv{display:flex;align-items:center;gap:12px;margin-top:12px;padding:16px;background:#fff;border:1px solid #c3c4c7;border-radius:4px}.focus-ring-preview__btn.svelte-ieamrv{padding:7px 16px;border:1px solid #c3c4c7;border-radius:4px;background:#f0f0f1;color:#1d2327;cursor:pointer;font-size:13px}.focus-ring-preview__btn.svelte-ieamrv:focus-visible{outline-width:var(--fp-width, 2px);outline-offset:var(--fp-offset, 2px);outline-style:var(--fp-style, solid);outline-color:#2271b1}.focus-ring-preview__desc.svelte-ieamrv{font-size:12px;color:#50575e;font-family:monospace}.shadow-preview.svelte-ieamrv{display:flex;flex-wrap:wrap;gap:24px;margin-top:12px;padding:20px 16px;background:#fff;border:1px solid #c3c4c7;border-radius:4px}.shadow-preview__item.svelte-ieamrv{display:flex;flex-direction:column;align-items:center;gap:10px}.shadow-preview__card.svelte-ieamrv{width:60px;height:60px;background:#fff;border:1px solid #f0f0f1;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:600;color:#50575e;border-radius:4px}h2.svelte-1nfz83c{margin-top:0}.hint.svelte-1nfz83c{color:#50575e;margin-bottom:16px;max-width:720px}.hint.svelte-1nfz83c code:where(.svelte-1nfz83c){background:#f0f0f1;padding:1px 6px;border-radius:3px;font-size:90%}.category.svelte-1nfz83c{border:1px solid #f0f0f1;border-radius:4px;margin-bottom:4px;background:#fcfcfd}.category__toggle.svelte-1nfz83c{all:unset;display:flex;align-items:center;gap:8px;width:100%;padding:10px 12px;cursor:pointer;font-size:14px;font-weight:500}.category__toggle.svelte-1nfz83c:hover{background:#f6f7f7}.category__toggle.svelte-1nfz83c:focus-visible{outline:2px solid #2271b1;outline-offset:2px;border-radius:4px}.category__arrow.svelte-1nfz83c{font-size:10px;width:14px;text-align:center}.category__count.svelte-1nfz83c{color:#787c82;font-weight:400;font-size:13px}.category__list.svelte-1nfz83c{list-style:none;margin:0;padding:0 12px 12px 34px;display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:4px}.category__list.svelte-1nfz83c li:where(.svelte-1nfz83c) code:where(.svelte-1nfz83c){font-size:12px;background:#f0f0f1;padding:2px 6px;border-radius:3px;word-break:break-all}h2.svelte-1yljizh{margin-top:0}.hint.svelte-1yljizh{color:#50575e;margin-bottom:16px;max-width:720px}.category.svelte-1yljizh{border:1px solid #f0f0f1;border-radius:4px;margin-bottom:4px;background:#fcfcfd}.category__toggle.svelte-1yljizh{all:unset;display:flex;align-items:center;gap:8px;width:100%;padding:10px 12px;cursor:pointer;font-size:14px;font-weight:500}.category__toggle.svelte-1yljizh:hover{background:#f6f7f7}.category__toggle.svelte-1yljizh:focus-visible{outline:2px solid #2271b1;outline-offset:2px;border-radius:4px}.category__arrow.svelte-1yljizh{font-size:10px;width:14px;text-align:center}.category__count.svelte-1yljizh{color:#787c82;font-weight:400;font-size:13px}.category__list.svelte-1yljizh{list-style:none;margin:0;padding:0 12px 12px 34px;display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:4px}.category__list.svelte-1yljizh li:where(.svelte-1yljizh) code:where(.svelte-1yljizh){font-size:12px;background:#f0f0f1;padding:2px 6px;border-radius:3px}h2.svelte-13231hj{margin-top:0}.settings-heading.svelte-13231hj{margin-top:24px}.hint.svelte-13231hj{color:#50575e;margin-bottom:16px;max-width:720px}.info.svelte-13231hj{display:grid;grid-template-columns:max-content 1fr;gap:4px 16px;margin-bottom:24px;font-size:14px}.info.svelte-13231hj dt:where(.svelte-13231hj){font-weight:500}.info.svelte-13231hj dd:where(.svelte-13231hj){margin:0;color:#50575e}.setting-row.svelte-13231hj{margin-bottom:20px}.setting-row.svelte-13231hj label:where(.svelte-13231hj){display:block;font-weight:500;margin-bottom:6px}.setting-row.svelte-13231hj select:where(.svelte-13231hj){padding:6px 10px;border:1px solid #8c8f94;border-radius:4px;font-size:14px}.description.svelte-13231hj{color:#50575e;font-size:13px;margin-top:6px}.save-row.svelte-13231hj{display:flex;align-items:center;gap:12px;margin-top:16px}.save-btn.svelte-13231hj{background:#2271b1;color:#fff;border:none;padding:8px 16px;border-radius:4px;cursor:pointer;font-size:13px;font-weight:500}.save-btn.svelte-13231hj:hover{background:#135e96}.save-btn.svelte-13231hj:disabled{opacity:.6;cursor:not-allowed}.status.svelte-13231hj{font-size:13px;font-weight:500}.status--ok.svelte-13231hj{color:#00a32a}.status--err.svelte-13231hj{color:#d63638}h2.svelte-19399h6{margin-top:0}.hint.svelte-19399h6{color:#50575e;max-width:720px;margin-bottom:20px}.card.svelte-19399h6{border:1px solid #c3c4c7;border-radius:4px;padding:16px 20px;margin-bottom:16px}.card--info.svelte-19399h6{background:#f6f7f7}.card.svelte-19399h6 h3:where(.svelte-19399h6){margin:0 0 6px;font-size:14px}.card-desc.svelte-19399h6{color:#50575e;font-size:13px;margin:0 0 12px;max-width:640px}.action-row.svelte-19399h6{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.btn.svelte-19399h6{padding:8px 16px;border:none;border-radius:4px;cursor:pointer;font-size:13px;font-weight:500}.btn.svelte-19399h6:disabled{opacity:.6;cursor:not-allowed}.btn--primary.svelte-19399h6{background:#2271b1;color:#fff}.btn--primary.svelte-19399h6:hover:not(:disabled){background:#135e96}.btn--secondary.svelte-19399h6{background:#f0f0f1;color:#2c3338;border:1px solid #8c8f94}.btn--secondary.svelte-19399h6:hover:not(:disabled){background:#e0e0e0}.file-input.svelte-19399h6{font-size:13px}.status.svelte-19399h6{font-size:13px;font-weight:500}.status--ok.svelte-19399h6{color:#00a32a}.status--err.svelte-19399h6{color:#d63638}.steps.svelte-19399h6{margin:8px 0 0;padding-left:20px;font-size:13px;line-height:1.6;color:#2c3338}.steps.svelte-19399h6 li:where(.svelte-19399h6){margin-bottom:8px}.steps.svelte-19399h6 li:where(.svelte-19399h6):last-child{margin-bottom:0}code.svelte-19399h6{background:#f0f0f1;padding:1px 4px;border-radius:3px;font-size:12px}h2.svelte-a36hjt{margin-top:0}.hint.svelte-a36hjt{color:#50575e;margin-bottom:20px;max-width:720px}.hook.svelte-a36hjt{border:1px solid #f0f0f1;border-radius:4px;padding:16px;margin-bottom:12px;background:#fcfcfd}.hook__name.svelte-a36hjt{margin:0 0 8px;font-size:14px}.hook__name.svelte-a36hjt code:where(.svelte-a36hjt){background:#e7e8ea;padding:3px 8px;border-radius:3px;font-size:13px}.hook__desc.svelte-a36hjt{margin:0 0 8px;color:#1d2327;font-size:14px}.hook__params.svelte-a36hjt{margin:0 0 12px;font-size:13px;color:#50575e}.hook__params.svelte-a36hjt code:where(.svelte-a36hjt){background:#f0f0f1;padding:1px 4px;border-radius:2px;font-size:12px}.hook__example.svelte-a36hjt{margin:0;padding:12px;background:#1d2327;color:#e4e6e8;border-radius:4px;overflow-x:auto;font-size:12px;line-height:1.5}.hook__example.svelte-a36hjt code:where(.svelte-a36hjt){background:none;padding:0;color:inherit}.cheatsheet.svelte-osej3t{display:flex;flex-direction:column;gap:16px}.cheatsheet__header.svelte-osej3t h2:where(.svelte-osej3t){margin:0 0 4px;font-size:18px}.cheatsheet__counts.svelte-osej3t{margin:0;font-size:13px;color:#50575e}.cheatsheet__controls.svelte-osej3t{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.cheatsheet__search.svelte-osej3t{flex:1;min-width:200px;padding:6px 10px;border:1px solid #c3c4c7;border-radius:4px;font-size:13px}.cheatsheet__search.svelte-osej3t:focus{border-color:#2271b1;outline:none;box-shadow:0 0 0 1px #2271b1}.cheatsheet__view-toggle.svelte-osej3t{display:flex;gap:0}.cheatsheet__view-toggle.svelte-osej3t button:where(.svelte-osej3t){padding:5px 12px;border:1px solid #c3c4c7;background:#fff;font-size:12px;cursor:pointer;color:#50575e}.cheatsheet__view-toggle.svelte-osej3t button:where(.svelte-osej3t):first-child{border-radius:3px 0 0 3px}.cheatsheet__view-toggle.svelte-osej3t button:where(.svelte-osej3t):last-child{border-radius:0 3px 3px 0}.cheatsheet__view-toggle.svelte-osej3t button:where(.svelte-osej3t):not(:first-child){border-left:none}.cheatsheet__view-toggle.svelte-osej3t button.active:where(.svelte-osej3t){background:#2271b1;border-color:#2271b1;color:#fff}.cheatsheet__section.svelte-osej3t{display:flex;flex-direction:column;gap:8px}.cheatsheet__section-title.svelte-osej3t{font-size:15px;margin:8px 0 0;padding-bottom:6px;border-bottom:1px solid #e2e4e7}.cheatsheet__group.svelte-osej3t{border:1px solid #e2e4e7;border-radius:4px;overflow:hidden}.cheatsheet__group-header.svelte-osej3t{padding:8px 12px;background:#f6f7f7;cursor:pointer;font-size:13px;display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}.cheatsheet__group-header.svelte-osej3t::-webkit-details-marker{margin-right:4px}.cheatsheet__group-desc.svelte-osej3t{font-size:12px;color:#646970;font-weight:400}.cheatsheet__list.svelte-osej3t{list-style:none;margin:0;padding:0}.cheatsheet__item.svelte-osej3t{display:flex;align-items:baseline;gap:12px;padding:5px 12px;border-top:1px solid #f0f0f1;font-size:12px;line-height:1.5}.cheatsheet__item.svelte-osej3t:first-child{border-top:1px solid #e2e4e7}.cheatsheet__name.svelte-osej3t{flex-shrink:0;font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,monospace;font-size:11.5px;background:#f0f0f1;padding:1px 5px;border-radius:3px;color:#1e1e1e;white-space:nowrap}.cheatsheet__desc.svelte-osej3t{color:#50575e;font-size:12px}.cheatsheet__empty.svelte-osej3t{text-align:center;color:#646970;padding:32px 16px;font-style:italic}.slashed-preview.svelte-g79qke{background:#fff;border:1px solid #c3c4c7;border-radius:4px;padding:20px;margin-top:8px;transition:background .2s,color .2s}.slashed-preview.is-dark.svelte-g79qke{background:#1d2327;border-color:#3c434a;color:#f0f0f1}.slashed-preview__header.svelte-g79qke{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.slashed-preview__header.svelte-g79qke h3:where(.svelte-g79qke){margin:0}.slashed-preview.is-dark.svelte-g79qke .slashed-preview__header:where(.svelte-g79qke) h3:where(.svelte-g79qke){color:#f0f0f1}.slashed-preview__mode-toggle.svelte-g79qke{display:flex;border:1px solid #c3c4c7;border-radius:4px;overflow:hidden}.slashed-preview.is-dark.svelte-g79qke .slashed-preview__mode-toggle:where(.svelte-g79qke){border-color:#3c434a}.slashed-preview__mode-btn.svelte-g79qke{padding:4px 10px;font-size:12px;background:transparent;border:none;cursor:pointer;color:#50575e;line-height:1.4}.slashed-preview.is-dark.svelte-g79qke .slashed-preview__mode-btn:where(.svelte-g79qke){color:#a7aaad}.slashed-preview__mode-btn.active.svelte-g79qke{background:#2271b1;color:#fff}.slashed-preview__mode-btn.svelte-g79qke+.slashed-preview__mode-btn:where(.svelte-g79qke){border-left:1px solid #c3c4c7}.slashed-preview.is-dark.svelte-g79qke .slashed-preview__mode-btn:where(.svelte-g79qke)+.slashed-preview__mode-btn:where(.svelte-g79qke){border-left-color:#3c434a}.slashed-preview__type-heading.svelte-g79qke{font-family:var(--sf-font-heading, system-ui, sans-serif);margin:0 0 6px;font-size:20px;color:#1d2327}.slashed-preview.is-dark.svelte-g79qke .slashed-preview__type-heading:where(.svelte-g79qke){color:#f0f0f1}.slashed-preview__type-body.svelte-g79qke{font-family:var(--sf-font-body, system-ui, sans-serif);color:#50575e;margin:0 0 14px;font-size:13px;line-height:1.5}.slashed-preview.is-dark.svelte-g79qke .slashed-preview__type-body:where(.svelte-g79qke){color:#a7aaad}.slashed-preview__swatches.svelte-g79qke{display:flex;gap:8px;flex-wrap:wrap}.slashed-preview__swatch.svelte-g79qke{width:50px;height:50px;border-radius:var(--preview-radius-s, 4px);border:1px solid rgba(0,0,0,.1);display:flex;align-items:flex-end;justify-content:center;font-size:9px;color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.6);padding:3px}.slashed-preview__buttons.svelte-g79qke{display:flex;gap:8px;margin-top:12px;flex-wrap:wrap}.slashed-preview__btn.svelte-g79qke{color:#fff;padding:7px 14px;border-radius:var(--preview-radius-s, 4px);font-size:13px;font-weight:500;border:none;cursor:default;display:inline-flex;align-items:center}.slashed-preview__btn--outline.svelte-g79qke{background:transparent!important;border:1.5px solid}.slashed-preview__btn--ghost.svelte-g79qke{background:transparent!important;border:none;color:#50575e}.slashed-preview.is-dark.svelte-g79qke .slashed-preview__btn--ghost:where(.svelte-g79qke){color:#a7aaad}.slashed-preview__btn--sm.svelte-g79qke{padding:4px 10px;font-size:12px}.slashed-preview__card.svelte-g79qke{margin-top:14px;border:1px solid #e9eaeb;border-radius:var(--preview-radius-m, 8px);overflow:hidden;background:#fff;box-shadow:var(--preview-shadow)}.slashed-preview.is-dark.svelte-g79qke .slashed-preview__card:where(.svelte-g79qke){background:#2c3338;border-color:#3c434a}.slashed-preview__card-accent.svelte-g79qke{height:4px}.slashed-preview__card-body.svelte-g79qke{padding:14px 16px;display:flex;flex-direction:column;gap:10px}.slashed-preview__card-top.svelte-g79qke{display:flex;align-items:center;gap:10px}.slashed-preview__card-avatar.svelte-g79qke{width:36px;height:36px;border-radius:50%;flex-shrink:0}.slashed-preview__card-title.svelte-g79qke{margin:0;font-size:14px;font-weight:600;color:#1d2327;line-height:1.3}.slashed-preview.is-dark.svelte-g79qke .slashed-preview__card-title:where(.svelte-g79qke){color:#f0f0f1}.slashed-preview__card-sub.svelte-g79qke{margin:0;font-size:11px;color:#787c82;line-height:1.3}.slashed-preview__card-top.svelte-g79qke .slashed-preview__badge:where(.svelte-g79qke){margin-left:auto}.slashed-preview__card-text.svelte-g79qke{margin:0;font-size:12px;line-height:1.5;color:#50575e}.slashed-preview.is-dark.svelte-g79qke .slashed-preview__card-text:where(.svelte-g79qke){color:#a7aaad}.slashed-preview__card-footer.svelte-g79qke{display:flex;align-items:center;gap:6px;flex-wrap:wrap;padding-top:6px;border-top:1px solid #f0f0f1}.slashed-preview.is-dark.svelte-g79qke .slashed-preview__card-footer:where(.svelte-g79qke){border-top-color:#3c434a}.slashed-preview__card-footer.svelte-g79qke .slashed-preview__btn--sm:where(.svelte-g79qke){margin-left:auto}.slashed-preview__badge.svelte-g79qke{display:inline-flex;align-items:center;padding:2px 8px;border-radius:var(--preview-radius-l, 16px);font-size:10px;font-weight:600;color:#fff;white-space:nowrap}.slashed-preview__caption.svelte-g79qke{margin-top:16px;color:#50575e;font-size:12px;padding-top:12px;border-top:1px solid #e9eaeb}.slashed-preview.is-dark.svelte-g79qke .slashed-preview__caption:where(.svelte-g79qke){color:#a7aaad;border-top-color:#3c434a}.slashed-preview__caption.svelte-g79qke code:where(.svelte-g79qke){display:block;background:#f6f7f7;padding:8px;border-radius:3px;margin-top:4px;white-space:pre-wrap;font-size:11px;max-height:120px;overflow:auto}.slashed-preview.is-dark.svelte-g79qke .slashed-preview__caption:where(.svelte-g79qke) code:where(.svelte-g79qke){background:#1d2327;color:#a7aaad}.bar.svelte-1oj49qa{position:fixed;bottom:0;left:160px;right:0;background:#fff;border-top:2px solid #c3c4c7;padding:10px 24px;display:flex;align-items:center;justify-content:space-between;gap:16px;z-index:100;transition:border-color .15s}.bar.dirty.svelte-1oj49qa{border-top-color:#2271b1}.bar__status.svelte-1oj49qa{font-size:13px}.bar__dirty.svelte-1oj49qa{color:#2271b1;font-weight:500}.bar__pending.svelte-1oj49qa{color:#50575e}.bar__saved.svelte-1oj49qa{color:#00a32a;font-weight:500}.bar__clean.svelte-1oj49qa{color:#50575e}.bar__error.svelte-1oj49qa{color:#d63638;font-weight:500}.bar__actions.svelte-1oj49qa{display:flex;gap:8px}.bar__save.svelte-1oj49qa,.bar__reset.svelte-1oj49qa{padding:6px 14px;border-radius:3px;border:1px solid #2271b1;background:#fff;color:#2271b1;cursor:pointer;font-size:13px}.bar__save.svelte-1oj49qa{background:#2271b1;color:#fff}.bar__save.svelte-1oj49qa:disabled,.bar__reset.svelte-1oj49qa:disabled{opacity:.5;cursor:not-allowed}.bar__reset.svelte-1oj49qa{border-color:#d63638;color:#d63638}.bar__export.svelte-1oj49qa{padding:6px 14px;border-radius:3px;border:1px solid #2271b1;background:#fff;color:#2271b1;cursor:pointer;font-size:13px}.bar__export.svelte-1oj49qa:disabled{opacity:.5;cursor:not-allowed}@media(max-width:782px){.bar.svelte-1oj49qa{left:0}}.slashed-svelte-admin.svelte-1n46o8q{--gap: 16px;display:flex;flex-direction:column;gap:var(--gap);max-width:1100px;padding-bottom:80px}.slashed-svelte-admin__header-top.svelte-1n46o8q{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.slashed-svelte-admin__header.svelte-1n46o8q h1:where(.svelte-1n46o8q){margin:0}.slashed-svelte-admin__versions.svelte-1n46o8q{display:flex;gap:6px;flex-wrap:wrap}.version-pill.svelte-1n46o8q{background:#f0f0f1;border:1px solid #c3c4c7;border-radius:3px;padding:2px 8px;font-size:11px;color:#50575e;font-family:ui-monospace,monospace;white-space:nowrap}.muted.svelte-1n46o8q{color:#50575e;margin:4px 0 0}.slashed-svelte-admin__body.svelte-1n46o8q{background:#fff;border:1px solid #c3c4c7;border-radius:4px;padding:20px} +.tab-nav.svelte-yyiz68{display:flex;gap:2px;border-bottom:1px solid #c3c4c7;flex-wrap:wrap}.tab-nav__btn.svelte-yyiz68{background:transparent;border:1px solid transparent;border-bottom:none;padding:8px 14px;cursor:pointer;font-size:14px;color:#2c3338;border-radius:4px 4px 0 0}.tab-nav__btn.svelte-yyiz68:hover{background:#f0f0f1}.tab-nav__btn.active.svelte-yyiz68{background:#fff;border-color:#c3c4c7;margin-bottom:-1px;color:#1d2327;font-weight:500}.row.svelte-1es83p3{display:grid;grid-template-columns:220px 1fr;align-items:center;gap:12px;padding:10px 0;border-bottom:1px solid #f0f0f1}.row.svelte-1es83p3:last-child{border-bottom:none}.row__label.svelte-1es83p3 label:where(.svelte-1es83p3){font-weight:500;display:block;color:#1d2327}.row__var.svelte-1es83p3{display:inline-block;margin-top:4px;background:#f6f7f7;padding:1px 6px;border-radius:3px;font-size:11px;color:#50575e}.row__inputs.svelte-1es83p3{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.row__swatch.svelte-1es83p3{width:28px;height:28px;border-radius:4px;border:1px solid #c3c4c7;flex-shrink:0}.row__hex.svelte-1es83p3{width:44px;height:28px;padding:0;border:1px solid #8c8f94;border-radius:3px;cursor:pointer;background:#fff}.row__hex-text.svelte-1es83p3{width:110px}.row__raw.svelte-1es83p3{flex:1;min-width:240px;font-family:ui-monospace,monospace}.row__toggle.svelte-1es83p3{background:transparent;border:none;color:#2271b1;cursor:pointer;padding:4px 8px;font-size:12px;text-decoration:underline}.row__toggle.svelte-1es83p3:hover{color:#135e96}.advanced-section.svelte-imklo1{margin-top:24px}.advanced-section__toggle.svelte-imklo1{background:none;border:none;color:#2271b1;font-size:13px;cursor:pointer;padding:6px 0;display:flex;align-items:center;gap:6px;font-weight:500}.advanced-section__toggle.svelte-imklo1:hover{text-decoration:underline}.advanced-section__body.svelte-imklo1{margin-top:12px}h2.svelte-1vle0rm{margin-top:0}.status-heading.svelte-1vle0rm,.dark-heading.svelte-1vle0rm{margin-top:24px}.hint.svelte-1vle0rm{color:#50575e;margin-bottom:16px;max-width:720px;font-size:13px}.hint.svelte-1vle0rm code:where(.svelte-1vle0rm){background:#f0f0f1;padding:1px 4px;border-radius:3px;font-size:11px}.rows.svelte-1vle0rm{border:1px solid #f0f0f1;border-radius:4px;padding:0 12px;background:#fcfcfd}.rows--dark.svelte-1vle0rm{background:#f8f8fc;border-color:#e2e4e9}.dark-toggle-section.svelte-1vle0rm{margin-top:24px;padding:14px 16px;background:#f6f7f7;border:1px solid #e0e0e0;border-radius:4px}.dark-toggle-row.svelte-1vle0rm{display:flex;align-items:center;gap:10px;margin-bottom:8px}.dark-toggle-btn.svelte-1vle0rm{display:flex;align-items:center;gap:8px;background:none;border:none;cursor:pointer;padding:0;font-size:13px;font-weight:600;color:#1d2327}.dark-toggle-btn__track.svelte-1vle0rm{position:relative;display:inline-block;width:36px;height:20px;background:#c3c4c7;border-radius:10px;transition:background .15s;flex-shrink:0}.dark-toggle-btn.on.svelte-1vle0rm .dark-toggle-btn__track:where(.svelte-1vle0rm){background:#2271b1}.dark-toggle-btn__thumb.svelte-1vle0rm{position:absolute;top:2px;left:2px;width:16px;height:16px;background:#fff;border-radius:50%;transition:left .15s;box-shadow:0 1px 3px #0003}.dark-toggle-btn.on.svelte-1vle0rm .dark-toggle-btn__thumb:where(.svelte-1vle0rm){left:18px}.dark-toggle-status.svelte-1vle0rm{font-size:12px;color:#50575e}.dark-toggle-section.svelte-1vle0rm .hint:where(.svelte-1vle0rm){margin-bottom:0}.row.svelte-miyob8{display:grid;grid-template-columns:220px 1fr;align-items:center;gap:12px;padding:10px 0;border-bottom:1px solid #f0f0f1}.row.svelte-miyob8:last-child{border-bottom:none}.row__label.svelte-miyob8 label:where(.svelte-miyob8),.row__label-text.svelte-miyob8{font-weight:500;display:block;color:#1d2327}.row__var.svelte-miyob8{display:inline-block;margin-top:4px;background:#f6f7f7;padding:1px 6px;border-radius:3px;font-size:11px;color:#50575e}.row__inputs.svelte-miyob8{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.row__desc.svelte-miyob8{flex-basis:100%;margin:4px 0 0;color:#50575e;font-size:12px}.text.mono.svelte-j8yw6l{font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.unit.svelte-1pjh3bn{color:#50575e;font-size:12px}.typo-preview.svelte-10qc8pz{background:#fff;border:1px solid #c3c4c7;border-radius:4px;padding:16px 20px;margin-top:8px}.typo-preview__header.svelte-10qc8pz{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px;margin-bottom:14px}.typo-preview__title.svelte-10qc8pz{font-size:13px;font-weight:600;color:#1d2327;margin:0}.typo-preview__slider-wrap.svelte-10qc8pz{display:flex;align-items:center;gap:8px;font-size:12px;color:#50575e}.typo-preview__slider.svelte-10qc8pz{width:180px;cursor:pointer;accent-color:#2271b1}.typo-preview__vw-label.svelte-10qc8pz{min-width:58px;text-align:right;font-variant-numeric:tabular-nums;color:#1d2327;font-weight:500}.typo-preview__rows.svelte-10qc8pz{display:flex;flex-direction:column;gap:0}.typo-preview__row.svelte-10qc8pz{display:grid;grid-template-columns:52px 1fr 120px;align-items:baseline;gap:12px;padding:6px 0;border-bottom:1px solid #f0f0f1;overflow:hidden}.typo-preview__row.svelte-10qc8pz:last-child{border-bottom:none}.typo-preview__step-name.svelte-10qc8pz{font-size:11px;font-weight:600;color:#50575e;text-transform:uppercase;letter-spacing:.05em;flex-shrink:0}.typo-preview__sample.svelte-10qc8pz{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#1d2327;line-height:1.2}.typo-preview__meta.svelte-10qc8pz{font-size:10px;color:#787c82;text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}.typo-preview__group-heading.svelte-10qc8pz{font-size:11px;font-weight:600;color:#50575e;text-transform:uppercase;letter-spacing:.07em;margin:0 0 6px;padding:6px 0 4px;border-bottom:1px solid #f0f0f1}.typo-preview__rows--display.svelte-10qc8pz{margin-top:16px;padding-top:4px;border-top:2px solid #f0f0f1}.scale-gen.svelte-1y8fkhh{background:#f6f7f7;border:1px solid #c3c4c7;border-radius:4px;padding:14px 16px;margin-bottom:16px}.scale-gen__header.svelte-1y8fkhh{display:flex;align-items:baseline;gap:10px;margin-bottom:12px;flex-wrap:wrap}.scale-gen__title.svelte-1y8fkhh{font-size:12px;font-weight:600;color:#1d2327;text-transform:uppercase;letter-spacing:.06em}.scale-gen__hint.svelte-1y8fkhh{font-size:12px;color:#787c82}.scale-gen__controls.svelte-1y8fkhh{display:flex;gap:12px;flex-wrap:wrap;align-items:flex-end;margin-bottom:12px}.scale-gen__field.svelte-1y8fkhh{display:flex;flex-direction:column;gap:4px}.scale-gen__label.svelte-1y8fkhh{font-size:11px;color:#50575e;font-weight:500}.scale-gen__field.svelte-1y8fkhh input[type=number]:where(.svelte-1y8fkhh){width:68px;height:28px;border:1px solid #8c8f94;border-radius:3px;padding:0 6px;font-size:13px;background:#fff;color:#1d2327}.scale-gen__field.svelte-1y8fkhh select:where(.svelte-1y8fkhh){height:28px;border:1px solid #8c8f94;border-radius:3px;padding:0 4px;font-size:12px;background:#fff;color:#1d2327;cursor:pointer}.scale-gen__input-wrap.svelte-1y8fkhh{display:flex;align-items:center;gap:4px}.scale-gen__unit.svelte-1y8fkhh{font-size:11px;color:#787c82}.scale-gen__preview.svelte-1y8fkhh{display:flex;flex-wrap:wrap;gap:4px 12px;margin-bottom:12px}.scale-gen__step.svelte-1y8fkhh{display:flex;gap:4px;font-size:11px;color:#50575e;font-family:ui-monospace,monospace}.scale-gen__step.display.svelte-1y8fkhh{color:#2271b1}.scale-gen__step-name.svelte-1y8fkhh{font-weight:600;min-width:52px}.scale-gen__step-val.svelte-1y8fkhh{color:#787c82}.scale-gen__footer.svelte-1y8fkhh{display:flex;justify-content:flex-end}.scale-gen__apply.svelte-1y8fkhh{background:#2271b1;color:#fff;border:none;border-radius:3px;padding:6px 14px;font-size:13px;cursor:pointer}.scale-gen__apply.svelte-1y8fkhh:hover{background:#135e96}h2.svelte-743nsg{margin-top:0}.group-heading.svelte-743nsg{margin-top:24px}.hint.svelte-743nsg{color:#50575e;margin-bottom:16px;max-width:720px}.hint.svelte-743nsg code:where(.svelte-743nsg){background:#f0f0f1;padding:1px 5px;border-radius:3px;font-size:90%}.rows.svelte-743nsg{border:1px solid #f0f0f1;border-radius:4px;padding:0 12px;background:#fcfcfd}.size-row.svelte-743nsg{display:grid;grid-template-columns:220px 1fr;align-items:center;gap:12px;padding:10px 0;border-bottom:1px solid #f0f0f1}.size-row.svelte-743nsg:last-child{border-bottom:none}.size-row__name.svelte-743nsg{font-weight:500;color:#1d2327;display:block}.size-row__var.svelte-743nsg{display:inline-block;margin-top:4px;background:#f6f7f7;padding:1px 6px;border-radius:3px;font-size:11px;color:#50575e}.size-row__inputs.svelte-743nsg{display:flex;align-items:center;gap:16px;flex-wrap:wrap}.size-row__inputs.svelte-743nsg .row{display:flex!important;grid-template-columns:none;gap:6px;padding:0;border:none;align-items:center}.size-row__inputs.svelte-743nsg .row__label-text,.size-row__inputs.svelte-743nsg .row__label label{font-weight:400;color:#50575e;font-size:12px}.spacing-preview.svelte-11lwg9t{background:#fff;border:1px solid #c3c4c7;border-radius:4px;padding:16px 20px;margin-top:16px}.spacing-preview__header.svelte-11lwg9t{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px;margin-bottom:14px}.spacing-preview__title.svelte-11lwg9t{font-size:13px;font-weight:600;color:#1d2327;margin:0}.spacing-preview__slider-wrap.svelte-11lwg9t{display:flex;align-items:center;gap:8px;font-size:12px;color:#50575e}.spacing-preview__slider.svelte-11lwg9t{width:180px;cursor:pointer;accent-color:#2271b1}.spacing-preview__vw-label.svelte-11lwg9t{min-width:58px;text-align:right;font-variant-numeric:tabular-nums;color:#1d2327;font-weight:500}.spacing-preview__rows.svelte-11lwg9t{display:flex;flex-direction:column;gap:6px}.spacing-preview__row.svelte-11lwg9t{display:grid;grid-template-columns:160px 1fr 70px;align-items:center;gap:12px}.spacing-preview__token.svelte-11lwg9t{font-family:monospace;font-size:11px;color:#50575e;white-space:nowrap}.spacing-preview__bar-wrap.svelte-11lwg9t{background:#f0f0f1;border-radius:2px;height:16px;overflow:hidden}.spacing-preview__bar.svelte-11lwg9t{height:100%;background:#2271b1;border-radius:2px;transition:width 80ms ease;min-width:2px}.spacing-preview__value.svelte-11lwg9t{font-size:11px;color:#787c82;text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.spacing-preview__card-section.svelte-11lwg9t{margin-top:20px;padding-top:16px;border-top:1px solid #e9eaeb}.spacing-preview__card-label.svelte-11lwg9t{font-size:12px;font-weight:600;color:#50575e;margin:0 0 10px}.spacing-preview__card.svelte-11lwg9t{display:flex;flex-direction:column;background:#fff;border:1px solid #c3c4c7;border-radius:6px;max-width:320px;box-shadow:0 1px 4px #00000012}.spacing-preview__card-row.svelte-11lwg9t{display:flex;align-items:center}.spacing-preview__card-avatar.svelte-11lwg9t{width:32px;height:32px;border-radius:50%;background:#2271b1;flex-shrink:0}.spacing-preview__card-meta.svelte-11lwg9t{display:flex;flex-direction:column;gap:2px}.spacing-preview__card-title.svelte-11lwg9t{font-size:13px;font-weight:600;color:#1d2327;line-height:1.2}.spacing-preview__card-sub.svelte-11lwg9t{font-size:11px;color:#787c82;font-variant-numeric:tabular-nums}.spacing-preview__card-body.svelte-11lwg9t{font-size:12px;color:#50575e;line-height:1.5;padding:8px 0;border-top:1px dashed #e9eaeb;border-bottom:1px dashed #e9eaeb;font-variant-numeric:tabular-nums}.spacing-preview__card-footer.svelte-11lwg9t{display:flex;align-items:center;flex-wrap:wrap}.spacing-preview__card-tag.svelte-11lwg9t{background:#f0f0f1;color:#50575e;font-size:10px;font-weight:600;padding:2px 8px;border-radius:3px;white-space:nowrap}.spacing-preview__card-cta.svelte-11lwg9t{margin-left:auto;background:#2271b1;color:#fff;font-size:11px;font-weight:500;padding:4px 10px;border-radius:3px}h2.svelte-1sn1epc{margin-top:0}.group-heading.svelte-1sn1epc{margin-top:24px}.hint.svelte-1sn1epc{color:#50575e;margin-bottom:16px;max-width:720px}.hint.svelte-1sn1epc code:where(.svelte-1sn1epc){background:#f0f0f1;padding:1px 5px;border-radius:3px;font-size:90%}.rows.svelte-1sn1epc{border:1px solid #f0f0f1;border-radius:4px;padding:0 12px;background:#fcfcfd}.size-row.svelte-1sn1epc{display:grid;grid-template-columns:220px 1fr;align-items:center;gap:12px;padding:10px 0;border-bottom:1px solid #f0f0f1}.size-row.svelte-1sn1epc:last-child{border-bottom:none}.size-row__name.svelte-1sn1epc{font-weight:500;color:#1d2327;display:block}.size-row__var.svelte-1sn1epc{display:inline-block;margin-top:4px;background:#f6f7f7;padding:1px 6px;border-radius:3px;font-size:11px;color:#50575e}.size-row__inputs.svelte-1sn1epc{display:flex;align-items:center;gap:16px;flex-wrap:wrap}.size-row__inputs.svelte-1sn1epc .row{display:flex!important;grid-template-columns:none;gap:6px;padding:0;border:none;align-items:center}.size-row__inputs.svelte-1sn1epc .row__label-text,.size-row__inputs.svelte-1sn1epc .row__label label{font-weight:400;color:#50575e;font-size:12px}.range.svelte-cifrt1{flex:1;min-width:160px;max-width:320px;accent-color:#2271b1}.number.svelte-cifrt1{width:90px}.unit.svelte-cifrt1{color:#50575e;font-size:12px}.select.svelte-r7dp44{min-width:160px}h2.svelte-ieamrv{margin-top:0}.group-heading.svelte-ieamrv{margin-top:24px}.hint.svelte-ieamrv{color:#50575e;margin-bottom:16px;max-width:720px;font-size:13px}.rows.svelte-ieamrv{border:1px solid #f0f0f1;border-radius:4px;padding:0 12px;background:#fcfcfd}.radius-preview.svelte-ieamrv{display:flex;flex-wrap:wrap;gap:16px;margin-top:12px;padding:16px;background:#fff;border:1px solid #c3c4c7;border-radius:4px}.radius-preview__item.svelte-ieamrv{display:flex;flex-direction:column;align-items:center;gap:6px}.radius-preview__swatch.svelte-ieamrv{width:40px;height:40px;background:#2271b1}.radius-preview__label.svelte-ieamrv{font-size:10px;color:#50575e;text-align:center}@keyframes svelte-ieamrv-slashed-mp-fill{0%{width:0}50%{width:100%}to{width:0}}.motion-preview.svelte-ieamrv{display:flex;flex-direction:column;gap:8px;margin-top:12px;padding:16px;background:#fff;border:1px solid #c3c4c7;border-radius:4px}.motion-preview__item.svelte-ieamrv{display:grid;grid-template-columns:60px 1fr 56px;align-items:center;gap:10px}.motion-preview__label.svelte-ieamrv{font-size:11px;font-weight:600;color:#50575e;text-align:right}.motion-preview__track.svelte-ieamrv{height:6px;background:#f0f0f1;border-radius:3px;overflow:hidden}.motion-preview__fill.svelte-ieamrv{height:100%;background:#2271b1;border-radius:3px;animation:svelte-ieamrv-slashed-mp-fill ease-in-out infinite}.motion-preview__ms.svelte-ieamrv{font-size:11px;color:#8c8f94;text-align:right;font-variant-numeric:tabular-nums}.focus-ring-preview.svelte-ieamrv{display:flex;align-items:center;gap:12px;margin-top:12px;padding:16px;background:#fff;border:1px solid #c3c4c7;border-radius:4px}.focus-ring-preview__btn.svelte-ieamrv{padding:7px 16px;border:1px solid #c3c4c7;border-radius:4px;background:#f0f0f1;color:#1d2327;cursor:pointer;font-size:13px}.focus-ring-preview__btn.svelte-ieamrv:focus-visible{outline-width:var(--fp-width, 2px);outline-offset:var(--fp-offset, 2px);outline-style:var(--fp-style, solid);outline-color:#2271b1}.focus-ring-preview__desc.svelte-ieamrv{font-size:12px;color:#50575e;font-family:monospace}.shadow-preview.svelte-ieamrv{display:flex;flex-wrap:wrap;gap:24px;margin-top:12px;padding:20px 16px;background:#fff;border:1px solid #c3c4c7;border-radius:4px}.shadow-preview__item.svelte-ieamrv{display:flex;flex-direction:column;align-items:center;gap:10px}.shadow-preview__card.svelte-ieamrv{width:60px;height:60px;background:#fff;border:1px solid #f0f0f1;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:600;color:#50575e;border-radius:4px}h2.svelte-1nfz83c{margin-top:0}.hint.svelte-1nfz83c{color:#50575e;margin-bottom:16px;max-width:720px}.hint.svelte-1nfz83c code:where(.svelte-1nfz83c){background:#f0f0f1;padding:1px 6px;border-radius:3px;font-size:90%}.category.svelte-1nfz83c{border:1px solid #f0f0f1;border-radius:4px;margin-bottom:4px;background:#fcfcfd}.category__toggle.svelte-1nfz83c{all:unset;display:flex;align-items:center;gap:8px;width:100%;padding:10px 12px;cursor:pointer;font-size:14px;font-weight:500}.category__toggle.svelte-1nfz83c:hover{background:#f6f7f7}.category__toggle.svelte-1nfz83c:focus-visible{outline:2px solid #2271b1;outline-offset:2px;border-radius:4px}.category__arrow.svelte-1nfz83c{font-size:10px;width:14px;text-align:center}.category__count.svelte-1nfz83c{color:#787c82;font-weight:400;font-size:13px}.category__list.svelte-1nfz83c{list-style:none;margin:0;padding:0 12px 12px 34px;display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:4px}.category__list.svelte-1nfz83c li:where(.svelte-1nfz83c) code:where(.svelte-1nfz83c){font-size:12px;background:#f0f0f1;padding:2px 6px;border-radius:3px;word-break:break-all}h2.svelte-1yljizh{margin-top:0}.hint.svelte-1yljizh{color:#50575e;margin-bottom:16px;max-width:720px}.category.svelte-1yljizh{border:1px solid #f0f0f1;border-radius:4px;margin-bottom:4px;background:#fcfcfd}.category__toggle.svelte-1yljizh{all:unset;display:flex;align-items:center;gap:8px;width:100%;padding:10px 12px;cursor:pointer;font-size:14px;font-weight:500}.category__toggle.svelte-1yljizh:hover{background:#f6f7f7}.category__toggle.svelte-1yljizh:focus-visible{outline:2px solid #2271b1;outline-offset:2px;border-radius:4px}.category__arrow.svelte-1yljizh{font-size:10px;width:14px;text-align:center}.category__count.svelte-1yljizh{color:#787c82;font-weight:400;font-size:13px}.category__list.svelte-1yljizh{list-style:none;margin:0;padding:0 12px 12px 34px;display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:4px}.category__list.svelte-1yljizh li:where(.svelte-1yljizh) code:where(.svelte-1yljizh){font-size:12px;background:#f0f0f1;padding:2px 6px;border-radius:3px}h2.svelte-13231hj{margin-top:0}.settings-heading.svelte-13231hj{margin-top:24px}.hint.svelte-13231hj{color:#50575e;margin-bottom:16px;max-width:720px}.info.svelte-13231hj{display:grid;grid-template-columns:max-content 1fr;gap:4px 16px;margin-bottom:24px;font-size:14px}.info.svelte-13231hj dt:where(.svelte-13231hj){font-weight:500}.info.svelte-13231hj dd:where(.svelte-13231hj){margin:0;color:#50575e}.setting-row.svelte-13231hj{margin-bottom:20px}.setting-row.svelte-13231hj label:where(.svelte-13231hj){display:block;font-weight:500;margin-bottom:6px}.setting-row.svelte-13231hj select:where(.svelte-13231hj){padding:6px 10px;border:1px solid #8c8f94;border-radius:4px;font-size:14px}.description.svelte-13231hj{color:#50575e;font-size:13px;margin-top:6px}.save-row.svelte-13231hj{display:flex;align-items:center;gap:12px;margin-top:16px}.save-btn.svelte-13231hj{background:#2271b1;color:#fff;border:none;padding:8px 16px;border-radius:4px;cursor:pointer;font-size:13px;font-weight:500}.save-btn.svelte-13231hj:hover{background:#135e96}.save-btn.svelte-13231hj:disabled{opacity:.6;cursor:not-allowed}.status.svelte-13231hj{font-size:13px;font-weight:500}.status--ok.svelte-13231hj{color:#00a32a}.status--err.svelte-13231hj{color:#d63638}h2.svelte-19399h6{margin-top:0}.hint.svelte-19399h6{color:#50575e;max-width:720px;margin-bottom:20px}.card.svelte-19399h6{border:1px solid #c3c4c7;border-radius:4px;padding:16px 20px;margin-bottom:16px}.card--info.svelte-19399h6{background:#f6f7f7}.card.svelte-19399h6 h3:where(.svelte-19399h6){margin:0 0 6px;font-size:14px}.card-desc.svelte-19399h6{color:#50575e;font-size:13px;margin:0 0 12px;max-width:640px}.action-row.svelte-19399h6{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.btn.svelte-19399h6{padding:8px 16px;border:none;border-radius:4px;cursor:pointer;font-size:13px;font-weight:500}.btn.svelte-19399h6:disabled{opacity:.6;cursor:not-allowed}.btn--primary.svelte-19399h6{background:#2271b1;color:#fff}.btn--primary.svelte-19399h6:hover:not(:disabled){background:#135e96}.btn--secondary.svelte-19399h6{background:#f0f0f1;color:#2c3338;border:1px solid #8c8f94}.btn--secondary.svelte-19399h6:hover:not(:disabled){background:#e0e0e0}.file-input.svelte-19399h6{font-size:13px}.status.svelte-19399h6{font-size:13px;font-weight:500}.status--ok.svelte-19399h6{color:#00a32a}.status--err.svelte-19399h6{color:#d63638}.steps.svelte-19399h6{margin:8px 0 0;padding-left:20px;font-size:13px;line-height:1.6;color:#2c3338}.steps.svelte-19399h6 li:where(.svelte-19399h6){margin-bottom:8px}.steps.svelte-19399h6 li:where(.svelte-19399h6):last-child{margin-bottom:0}code.svelte-19399h6{background:#f0f0f1;padding:1px 4px;border-radius:3px;font-size:12px}h2.svelte-a36hjt{margin-top:0}.hint.svelte-a36hjt{color:#50575e;margin-bottom:20px;max-width:720px}.hook.svelte-a36hjt{border:1px solid #f0f0f1;border-radius:4px;padding:16px;margin-bottom:12px;background:#fcfcfd}.hook__name.svelte-a36hjt{margin:0 0 8px;font-size:14px}.hook__name.svelte-a36hjt code:where(.svelte-a36hjt){background:#e7e8ea;padding:3px 8px;border-radius:3px;font-size:13px}.hook__desc.svelte-a36hjt{margin:0 0 8px;color:#1d2327;font-size:14px}.hook__params.svelte-a36hjt{margin:0 0 12px;font-size:13px;color:#50575e}.hook__params.svelte-a36hjt code:where(.svelte-a36hjt){background:#f0f0f1;padding:1px 4px;border-radius:2px;font-size:12px}.hook__example.svelte-a36hjt{margin:0;padding:12px;background:#1d2327;color:#e4e6e8;border-radius:4px;overflow-x:auto;font-size:12px;line-height:1.5}.hook__example.svelte-a36hjt code:where(.svelte-a36hjt){background:none;padding:0;color:inherit}.cheatsheet.svelte-osej3t{display:flex;flex-direction:column;gap:16px}.cheatsheet__header.svelte-osej3t h2:where(.svelte-osej3t){margin:0 0 4px;font-size:18px}.cheatsheet__counts.svelte-osej3t{margin:0;font-size:13px;color:#50575e}.cheatsheet__controls.svelte-osej3t{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.cheatsheet__search.svelte-osej3t{flex:1;min-width:200px;padding:6px 10px;border:1px solid #c3c4c7;border-radius:4px;font-size:13px}.cheatsheet__search.svelte-osej3t:focus{border-color:#2271b1;outline:none;box-shadow:0 0 0 1px #2271b1}.cheatsheet__view-toggle.svelte-osej3t{display:flex;gap:0}.cheatsheet__view-toggle.svelte-osej3t button:where(.svelte-osej3t){padding:5px 12px;border:1px solid #c3c4c7;background:#fff;font-size:12px;cursor:pointer;color:#50575e}.cheatsheet__view-toggle.svelte-osej3t button:where(.svelte-osej3t):first-child{border-radius:3px 0 0 3px}.cheatsheet__view-toggle.svelte-osej3t button:where(.svelte-osej3t):last-child{border-radius:0 3px 3px 0}.cheatsheet__view-toggle.svelte-osej3t button:where(.svelte-osej3t):not(:first-child){border-left:none}.cheatsheet__view-toggle.svelte-osej3t button.active:where(.svelte-osej3t){background:#2271b1;border-color:#2271b1;color:#fff}.cheatsheet__section.svelte-osej3t{display:flex;flex-direction:column;gap:8px}.cheatsheet__section-title.svelte-osej3t{font-size:15px;margin:8px 0 0;padding-bottom:6px;border-bottom:1px solid #e2e4e7}.cheatsheet__group.svelte-osej3t{border:1px solid #e2e4e7;border-radius:4px;overflow:hidden}.cheatsheet__group-header.svelte-osej3t{padding:8px 12px;background:#f6f7f7;cursor:pointer;font-size:13px;display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}.cheatsheet__group-header.svelte-osej3t::-webkit-details-marker{margin-right:4px}.cheatsheet__group-desc.svelte-osej3t{font-size:12px;color:#646970;font-weight:400}.cheatsheet__list.svelte-osej3t{list-style:none;margin:0;padding:0}.cheatsheet__item.svelte-osej3t{display:flex;align-items:baseline;gap:12px;padding:5px 12px;border-top:1px solid #f0f0f1;font-size:12px;line-height:1.5}.cheatsheet__item.svelte-osej3t:first-child{border-top:1px solid #e2e4e7}.cheatsheet__name.svelte-osej3t{flex-shrink:0;font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,monospace;font-size:11.5px;background:#f0f0f1;padding:1px 5px;border-radius:3px;color:#1e1e1e;white-space:nowrap}.cheatsheet__desc.svelte-osej3t{color:#50575e;font-size:12px}.cheatsheet__empty.svelte-osej3t{text-align:center;color:#646970;padding:32px 16px;font-style:italic}.slashed-preview.svelte-g79qke{background:#fff;border:1px solid #c3c4c7;border-radius:4px;padding:20px;margin-top:8px;transition:background .2s,color .2s}.slashed-preview.is-dark.svelte-g79qke{background:#1d2327;border-color:#3c434a;color:#f0f0f1}.slashed-preview__header.svelte-g79qke{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.slashed-preview__header.svelte-g79qke h3:where(.svelte-g79qke){margin:0}.slashed-preview.is-dark.svelte-g79qke .slashed-preview__header:where(.svelte-g79qke) h3:where(.svelte-g79qke){color:#f0f0f1}.slashed-preview__mode-toggle.svelte-g79qke{display:flex;border:1px solid #c3c4c7;border-radius:4px;overflow:hidden}.slashed-preview.is-dark.svelte-g79qke .slashed-preview__mode-toggle:where(.svelte-g79qke){border-color:#3c434a}.slashed-preview__mode-btn.svelte-g79qke{padding:4px 10px;font-size:12px;background:transparent;border:none;cursor:pointer;color:#50575e;line-height:1.4}.slashed-preview.is-dark.svelte-g79qke .slashed-preview__mode-btn:where(.svelte-g79qke){color:#a7aaad}.slashed-preview__mode-btn.active.svelte-g79qke{background:#2271b1;color:#fff}.slashed-preview__mode-btn.svelte-g79qke+.slashed-preview__mode-btn:where(.svelte-g79qke){border-left:1px solid #c3c4c7}.slashed-preview.is-dark.svelte-g79qke .slashed-preview__mode-btn:where(.svelte-g79qke)+.slashed-preview__mode-btn:where(.svelte-g79qke){border-left-color:#3c434a}.slashed-preview__type-heading.svelte-g79qke{font-family:var(--sf-font-heading, system-ui, sans-serif);margin:0 0 6px;font-size:20px;color:#1d2327}.slashed-preview.is-dark.svelte-g79qke .slashed-preview__type-heading:where(.svelte-g79qke){color:#f0f0f1}.slashed-preview__type-body.svelte-g79qke{font-family:var(--sf-font-body, system-ui, sans-serif);color:#50575e;margin:0 0 14px;font-size:13px;line-height:1.5}.slashed-preview.is-dark.svelte-g79qke .slashed-preview__type-body:where(.svelte-g79qke){color:#a7aaad}.slashed-preview__swatches.svelte-g79qke{display:flex;gap:8px;flex-wrap:wrap}.slashed-preview__swatch.svelte-g79qke{width:50px;height:50px;border-radius:var(--preview-radius-s, 4px);border:1px solid rgba(0,0,0,.1);display:flex;align-items:flex-end;justify-content:center;font-size:9px;color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.6);padding:3px}.slashed-preview__buttons.svelte-g79qke{display:flex;gap:8px;margin-top:12px;flex-wrap:wrap}.slashed-preview__btn.svelte-g79qke{color:#fff;padding:7px 14px;border-radius:var(--preview-radius-s, 4px);font-size:13px;font-weight:500;border:none;cursor:default;display:inline-flex;align-items:center}.slashed-preview__btn--outline.svelte-g79qke{background:transparent!important;border:1.5px solid}.slashed-preview__btn--ghost.svelte-g79qke{background:transparent!important;border:none;color:#50575e}.slashed-preview.is-dark.svelte-g79qke .slashed-preview__btn--ghost:where(.svelte-g79qke){color:#a7aaad}.slashed-preview__btn--sm.svelte-g79qke{padding:4px 10px;font-size:12px}.slashed-preview__card.svelte-g79qke{margin-top:14px;border:1px solid #e9eaeb;border-radius:var(--preview-radius-m, 8px);overflow:hidden;background:#fff;box-shadow:var(--preview-shadow)}.slashed-preview.is-dark.svelte-g79qke .slashed-preview__card:where(.svelte-g79qke){background:#2c3338;border-color:#3c434a}.slashed-preview__card-accent.svelte-g79qke{height:4px}.slashed-preview__card-body.svelte-g79qke{padding:14px 16px;display:flex;flex-direction:column;gap:10px}.slashed-preview__card-top.svelte-g79qke{display:flex;align-items:center;gap:10px}.slashed-preview__card-avatar.svelte-g79qke{width:36px;height:36px;border-radius:50%;flex-shrink:0}.slashed-preview__card-title.svelte-g79qke{margin:0;font-size:14px;font-weight:600;color:#1d2327;line-height:1.3}.slashed-preview.is-dark.svelte-g79qke .slashed-preview__card-title:where(.svelte-g79qke){color:#f0f0f1}.slashed-preview__card-sub.svelte-g79qke{margin:0;font-size:11px;color:#787c82;line-height:1.3}.slashed-preview__card-top.svelte-g79qke .slashed-preview__badge:where(.svelte-g79qke){margin-left:auto}.slashed-preview__card-text.svelte-g79qke{margin:0;font-size:12px;line-height:1.5;color:#50575e}.slashed-preview.is-dark.svelte-g79qke .slashed-preview__card-text:where(.svelte-g79qke){color:#a7aaad}.slashed-preview__card-footer.svelte-g79qke{display:flex;align-items:center;gap:6px;flex-wrap:wrap;padding-top:6px;border-top:1px solid #f0f0f1}.slashed-preview.is-dark.svelte-g79qke .slashed-preview__card-footer:where(.svelte-g79qke){border-top-color:#3c434a}.slashed-preview__card-footer.svelte-g79qke .slashed-preview__btn--sm:where(.svelte-g79qke){margin-left:auto}.slashed-preview__badge.svelte-g79qke{display:inline-flex;align-items:center;padding:2px 8px;border-radius:var(--preview-radius-l, 16px);font-size:10px;font-weight:600;color:#fff;white-space:nowrap}.slashed-preview__caption.svelte-g79qke{margin-top:16px;color:#50575e;font-size:12px;padding-top:12px;border-top:1px solid #e9eaeb}.slashed-preview.is-dark.svelte-g79qke .slashed-preview__caption:where(.svelte-g79qke){color:#a7aaad;border-top-color:#3c434a}.slashed-preview__caption.svelte-g79qke code:where(.svelte-g79qke){display:block;background:#f6f7f7;padding:8px;border-radius:3px;margin-top:4px;white-space:pre-wrap;font-size:11px;max-height:120px;overflow:auto}.slashed-preview.is-dark.svelte-g79qke .slashed-preview__caption:where(.svelte-g79qke) code:where(.svelte-g79qke){background:#1d2327;color:#a7aaad}.bar.svelte-1oj49qa{position:fixed;bottom:0;left:160px;right:0;background:#fff;border-top:2px solid #c3c4c7;padding:10px 24px;display:flex;align-items:center;justify-content:space-between;gap:16px;z-index:100;transition:border-color .15s}.bar.dirty.svelte-1oj49qa{border-top-color:#2271b1}.bar__status.svelte-1oj49qa{font-size:13px}.bar__dirty.svelte-1oj49qa{color:#2271b1;font-weight:500}.bar__pending.svelte-1oj49qa{color:#50575e}.bar__saved.svelte-1oj49qa{color:#00a32a;font-weight:500}.bar__clean.svelte-1oj49qa{color:#50575e}.bar__error.svelte-1oj49qa{color:#d63638;font-weight:500}.bar__actions.svelte-1oj49qa{display:flex;gap:8px}.bar__save.svelte-1oj49qa,.bar__reset.svelte-1oj49qa{padding:6px 14px;border-radius:3px;border:1px solid #2271b1;background:#fff;color:#2271b1;cursor:pointer;font-size:13px}.bar__save.svelte-1oj49qa{background:#2271b1;color:#fff}.bar__save.svelte-1oj49qa:disabled,.bar__reset.svelte-1oj49qa:disabled{opacity:.5;cursor:not-allowed}.bar__reset.svelte-1oj49qa{border-color:#d63638;color:#d63638}.bar__export.svelte-1oj49qa{padding:6px 14px;border-radius:3px;border:1px solid #2271b1;background:#fff;color:#2271b1;cursor:pointer;font-size:13px}.bar__export.svelte-1oj49qa:disabled{opacity:.5;cursor:not-allowed}@media(max-width:782px){.bar.svelte-1oj49qa{left:0}}.slashed-svelte-admin.svelte-1n46o8q{--gap: 16px;display:flex;flex-direction:column;gap:var(--gap);max-width:1100px;padding-bottom:80px}.slashed-svelte-admin__header-top.svelte-1n46o8q{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.slashed-svelte-admin__header.svelte-1n46o8q h1:where(.svelte-1n46o8q){margin:0}.slashed-svelte-admin__versions.svelte-1n46o8q{display:flex;gap:6px;flex-wrap:wrap}.version-pill.svelte-1n46o8q{background:#f0f0f1;border:1px solid #c3c4c7;border-radius:3px;padding:2px 8px;font-size:11px;color:#50575e;font-family:ui-monospace,monospace;white-space:nowrap}.muted.svelte-1n46o8q{color:#50575e;margin:4px 0 0}.slashed-svelte-admin__body.svelte-1n46o8q{background:#fff;border:1px solid #c3c4c7;border-radius:4px;padding:20px} diff --git a/integrations/bricks/assets/admin-app/app.js b/integrations/bricks/assets/admin-app/app.js index 7aebd073..b157da6d 100644 --- a/integrations/bricks/assets/admin-app/app.js +++ b/integrations/bricks/assets/admin-app/app.js @@ -1,17 +1,17 @@ -var Sn=Object.defineProperty;var sr=e=>{throw TypeError(e)};var En=(e,t,s)=>t in e?Sn(e,t,{enumerable:!0,configurable:!0,writable:!0,value:s}):e[t]=s;var Ve=(e,t,s)=>En(e,typeof t!="symbol"?t+"":t,s),ya=(e,t,s)=>t.has(e)||sr("Cannot "+s);var g=(e,t,s)=>(ya(e,t,"read from private field"),s?s.call(e):t.get(e)),Z=(e,t,s)=>t.has(e)?sr("Cannot add the same private member more than once"):t instanceof WeakSet?t.add(e):t.set(e,s),X=(e,t,s,a)=>(ya(e,t,"write to private field"),a?a.call(e,s):t.set(e,s),s),ie=(e,t,s)=>(ya(e,t,"access private method"),s);var Na=Array.isArray,jn=Array.prototype.indexOf,Yt=Array.prototype.includes,fa=Array.from,Tn=Object.defineProperty,ds=Object.getOwnPropertyDescriptor,$n=Object.getOwnPropertyDescriptors,zn=Object.prototype,Cn=Array.prototype,Er=Object.getPrototypeOf,ar=Object.isExtensible;const jr=()=>{};function An(e){for(var t=0;t{e=a,t=r});return{promise:s,resolve:e,reject:t}}function lt(e,t){if(Array.isArray(e))return e;if(t===void 0||!(Symbol.iterator in e))return Array.from(e);const s=[];for(const a of e)if(s.push(a),s.length===t)break;return s}const Me=2,ms=4,ua=8,$r=1<<24,ot=16,vt=32,Lt=64,Ta=128,tt=512,Ce=1024,Re=2048,yt=4096,Pe=8192,st=16384,ns=32768,$a=1<<25,ts=65536,Qs=1<<17,Fn=1<<18,xs=1<<19,Rn=1<<20,mt=1<<25,ss=65536,ea=1<<21,fs=1<<22,Pt=1<<23,Xt=Symbol("$state"),Mn=Symbol("legacy props"),On=Symbol(""),Us=Symbol("attributes"),za=Symbol("class"),Ca=Symbol("style"),Es=Symbol("text"),Gs=Symbol("form reset"),va=new class extends Error{constructor(){super(...arguments);Ve(this,"name","StaleReactionError");Ve(this,"message","The reaction that called `getAbortSignal()` was re-run or destroyed")}},Dn=!!globalThis.document?.contentType&&globalThis.document.contentType.includes("xml");function Pn(){throw new Error("https://svelte.dev/e/async_derived_orphan")}function Ln(e,t,s){throw new Error("https://svelte.dev/e/each_key_duplicate")}function Vn(e){throw new Error("https://svelte.dev/e/effect_in_teardown")}function In(){throw new Error("https://svelte.dev/e/effect_in_unowned_derived")}function qn(e){throw new Error("https://svelte.dev/e/effect_orphan")}function Nn(){throw new Error("https://svelte.dev/e/effect_update_depth_exceeded")}function Bn(e){throw new Error("https://svelte.dev/e/props_invalid_value")}function Kn(){throw new Error("https://svelte.dev/e/state_descriptors_fixed")}function Hn(){throw new Error("https://svelte.dev/e/state_prototype_fixed")}function Un(){throw new Error("https://svelte.dev/e/state_unsafe_mutation")}function Gn(){throw new Error("https://svelte.dev/e/svelte_boundary_reset_onerror")}const Wn=1,Yn=2,zr=4,Xn=8,Zn=16,Jn=1,Qn=4,ei=8,ti=16,si=1,ai=2,ze=Symbol("uninitialized"),Cr="http://www.w3.org/1999/xhtml";function ri(){console.warn("https://svelte.dev/e/derived_inert")}function ni(){console.warn("https://svelte.dev/e/select_multiple_invalid_value")}function ii(){console.warn("https://svelte.dev/e/svelte_boundary_reset_noop")}function Ar(e){return e===this.v}function li(e,t){return e!=e?t==t:e!==t||e!==null&&typeof e=="object"||typeof e=="function"}function Fr(e){return!li(e,this.v)}let Ye=null;function ys(e){Ye=e}function ye(e,t=!1,s){Ye={p:Ye,i:!1,c:null,e:null,s:e,x:null,r:ae,l:null}}function be(e){var t=Ye,s=t.e;if(s!==null){t.e=null;for(var a of s)sn(a)}return t.i=!0,Ye=t.p,{}}function Rr(){return!0}let It=[];function Mr(){var e=It;It=[],An(e)}function Zt(e){if(It.length===0&&!$s){var t=It;queueMicrotask(()=>{t===It&&Mr()})}It.push(e)}function oi(){for(;It.length>0;)Mr()}function Or(e){var t=ae;if(t===null)return te.f|=Pt,e;if((t.f&ns)===0&&(t.f&ms)===0)throw e;Dt(e,t)}function Dt(e,t){for(;t!==null;){if((t.f&Ta)!==0){if((t.f&ns)===0)throw e;try{t.b.error(e);return}catch(s){e=s}}t=t.parent}throw e}const ci=-7169;function ke(e,t){e.f=e.f&ci|t}function Ba(e){(e.f&tt)!==0||e.deps===null?ke(e,Ce):ke(e,yt)}function Dr(e){if(e!==null)for(const t of e)(t.f&Me)===0||(t.f&ss)===0||(t.f^=ss,Dr(t.deps))}function Pr(e,t,s){(e.f&Re)!==0?t.add(e):(e.f&yt)!==0&&s.add(e),Dr(e.deps),ke(e,Ce)}let Ns=!1;function di(e){var t=Ns;try{return Ns=!1,[e(),Ns]}finally{Ns=t}}let ba=null,is=null,J=null,Aa=null,ct=null,Fa=null,$s=!1,wa=!1,cs=null,Ws=null;var rr=0;let fi=1;var us,Rt,Bt,vs,ps,Kt,hs,St,Ms,Ue,Os,Mt,ht,_t,_s,Ht,ce,Ra,js,Ma,Lr,Vr,Ys,ui,Oa,os;const oa=class oa{constructor(){Z(this,ce);Ve(this,"id",fi++);Z(this,us,!1);Ve(this,"linked",!0);Z(this,Rt,null);Z(this,Bt,null);Ve(this,"async_deriveds",new Map);Ve(this,"current",new Map);Ve(this,"previous",new Map);Ve(this,"unblocked",new Set);Z(this,vs,new Set);Z(this,ps,new Set);Z(this,Kt,new Set);Z(this,hs,0);Z(this,St,new Map);Z(this,Ms,null);Z(this,Ue,[]);Z(this,Os,[]);Z(this,Mt,new Set);Z(this,ht,new Set);Z(this,_t,new Map);Z(this,_s,new Set);Ve(this,"is_fork",!1);Z(this,Ht,!1)}skip_effect(t){g(this,_t).has(t)||g(this,_t).set(t,{d:[],m:[]}),g(this,_s).delete(t)}unskip_effect(t,s=a=>this.schedule(a)){var a=g(this,_t).get(t);if(a){g(this,_t).delete(t);for(var r of a.d)ke(r,Re),s(r);for(r of a.m)ke(r,yt),s(r)}g(this,_s).add(t)}capture(t,s,a=!1){t.v!==ze&&!this.previous.has(t)&&this.previous.set(t,t.v),(t.f&Pt)===0&&(this.current.set(t,[s,a]),ct?.set(t,s)),this.is_fork||(t.v=s)}activate(){J=this}deactivate(){J=null,ct=null}flush(){try{wa=!0,J=this,ie(this,ce,js).call(this)}finally{rr=0,Fa=null,cs=null,Ws=null,wa=!1,J=null,ct=null,Jt.clear()}}discard(){for(const t of g(this,ps))t(this);g(this,ps).clear(),g(this,Kt).clear(),ie(this,ce,os).call(this)}register_created_effect(t){g(this,Os).push(t)}increment(t,s){if(X(this,hs,g(this,hs)+1),t){let a=g(this,St).get(s)??0;g(this,St).set(s,a+1)}}decrement(t,s){if(X(this,hs,g(this,hs)-1),t){let a=g(this,St).get(s)??0;a===1?g(this,St).delete(s):g(this,St).set(s,a-1)}g(this,Ht)||(X(this,Ht,!0),Zt(()=>{X(this,Ht,!1),this.linked&&this.flush()}))}transfer_effects(t,s){for(const a of t)g(this,Mt).add(a);for(const a of s)g(this,ht).add(a);t.clear(),s.clear()}oncommit(t){g(this,vs).add(t)}ondiscard(t){g(this,ps).add(t)}on_fork_commit(t){g(this,Kt).add(t)}run_fork_commit_callbacks(){for(const t of g(this,Kt))t(this);g(this,Kt).clear()}settled(){return(g(this,Ms)??X(this,Ms,Tr())).promise}static ensure(){var t;if(J===null){const s=J=new oa;ie(t=s,ce,Oa).call(t),!wa&&!$s&&Zt(()=>{g(s,us)||s.flush()})}return J}apply(){{ct=null;return}}schedule(t){if(Fa=t,t.b?.is_pending&&(t.f&(ms|ua|$r))!==0&&(t.f&ns)===0){t.b.defer_effect(t);return}for(var s=t;s.parent!==null;){s=s.parent;var a=s.f;if(cs!==null&&s===ae&&(te===null||(te.f&Me)===0))return;if((a&(Lt|vt))!==0){if((a&Ce)===0)return;s.f^=Ce}}g(this,Ue).push(s)}};us=new WeakMap,Rt=new WeakMap,Bt=new WeakMap,vs=new WeakMap,ps=new WeakMap,Kt=new WeakMap,hs=new WeakMap,St=new WeakMap,Ms=new WeakMap,Ue=new WeakMap,Os=new WeakMap,Mt=new WeakMap,ht=new WeakMap,_t=new WeakMap,_s=new WeakMap,Ht=new WeakMap,ce=new WeakSet,Ra=function(){if(this.is_fork)return!0;for(const a of g(this,St).keys()){for(var t=a,s=!1;t.parent!==null;){if(g(this,_t).has(t)){s=!0;break}t=t.parent}if(!s)return!0}return!1},js=function(){var o,d,_;if(X(this,us,!0),rr++>1e3&&(ie(this,ce,os).call(this),pi()),!ie(this,ce,Ra).call(this)){for(const u of g(this,Mt))g(this,ht).delete(u),ke(u,Re),this.schedule(u);for(const u of g(this,ht))ke(u,yt),this.schedule(u)}const t=g(this,Ue);X(this,Ue,[]),this.apply();var s=cs=[],a=[],r=Ws=[];for(const u of t)try{ie(this,ce,Ma).call(this,u,s,a)}catch(v){throw Nr(u),v}if(J=null,r.length>0){var n=oa.ensure();for(const u of r)n.schedule(u)}if(cs=null,Ws=null,ie(this,ce,Ra).call(this)){ie(this,ce,Ys).call(this,a),ie(this,ce,Ys).call(this,s);for(const[u,v]of g(this,_t))qr(u,v);r.length>0&&ie(o=J,ce,js).call(o);return}const c=ie(this,ce,Lr).call(this);if(c){ie(d=c,ce,Vr).call(d,this);return}g(this,Mt).clear(),g(this,ht).clear();for(const u of g(this,vs))u(this);g(this,vs).clear(),Aa=this,nr(a),nr(s),Aa=null,g(this,Ms)?.resolve();var l=J;if(this.linked&&g(this,hs)===0&&ie(this,ce,os).call(this),g(this,Ue).length>0){l===null&&(l=this,ie(this,ce,Oa).call(this));const u=l;g(u,Ue).push(...g(this,Ue).filter(v=>!g(u,Ue).includes(v)))}l!==null&&ie(_=l,ce,js).call(_)},Ma=function(t,s,a){t.f^=Ce;for(var r=t.first;r!==null;){var n=r.f,c=(n&(vt|Lt))!==0,l=c&&(n&Ce)!==0,o=l||(n&Pe)!==0||g(this,_t).has(r);if(!o&&r.fn!==null){c?r.f^=Ce:(n&ms)!==0?s.push(r):qs(r)&&((n&ot)!==0&&g(this,ht).add(r),ws(r));var d=r.first;if(d!==null){r=d;continue}}for(;r!==null;){var _=r.next;if(_!==null){r=_;break}r=r.parent}}},Lr=function(){for(var t=g(this,Rt);t!==null;){if(!t.is_fork){for(const[s,[,a]]of this.current)if(t.current.has(s)&&!a)return t}t=g(t,Rt)}return null},Vr=function(t){var a;for(const[r,n]of t.current)!this.previous.has(r)&&t.previous.has(r)&&this.previous.set(r,t.previous.get(r)),this.current.set(r,n);for(const[r,n]of t.async_deriveds){const c=this.async_deriveds.get(r);c&&n.promise.then(c.resolve)}const s=r=>{var n=r.reactions;if(n!==null)for(const o of n){var c=o.f;if((c&Me)!==0)s(o);else{var l=o;c&(fs|ot)&&!this.async_deriveds.has(l)&&(g(this,ht).delete(l),ke(l,Re),this.schedule(l))}}};for(const r of this.current.keys())s(r);this.oncommit(()=>t.discard()),ie(a=t,ce,os).call(a),J=this,ie(this,ce,js).call(this)},Ys=function(t){for(var s=0;s!this.current.has(v));if(r.length===0)t&&u.discard();else if(s.length>0){if(t)for(const v of g(this,_s))u.unskip_effect(v,m=>{var y;(m.f&(ot|fs))!==0?u.schedule(m):ie(y=u,ce,Ys).call(y,[m])});u.activate();var n=new Set,c=new Map;for(var l of s)Ir(l,r,n,c);c=new Map;var o=[...u.current.keys()].filter(v=>this.current.has(v)?this.current.get(v)[0]!==v.v:!0);if(o.length>0)for(const v of g(this,Os))(v.f&(st|Pe|Qs))===0&&Ka(v,o,c)&&((v.f&(fs|ot))!==0?(ke(v,Re),u.schedule(v)):g(u,Mt).add(v));if(g(u,Ue).length>0&&!g(u,Ht)){u.apply();for(var d of g(u,Ue))ie(_=u,ce,Ma).call(_,d,[],[]);X(u,Ue,[])}u.deactivate()}}}},Oa=function(){is===null?ba=is=this:(X(is,Bt,this),X(this,Rt,is)),is=this},os=function(){var t=g(this,Rt),s=g(this,Bt);t===null?ba=s:X(t,Bt,s),s===null?is=t:X(s,Rt,t),this.linked=!1};let as=oa;function vi(e){var t=$s;$s=!0;try{for(var s;;){if(oi(),J===null)return s;J.flush()}}finally{$s=t}}function pi(){try{Nn()}catch(e){Dt(e,Fa)}}let kt=null;function nr(e){var t=e.length;if(t!==0){for(var s=0;s0)){Jt.clear();for(const r of kt){if((r.f&(st|Pe))!==0)continue;const n=[r];let c=r.parent;for(;c!==null;)kt.has(c)&&(kt.delete(c),n.push(c)),c=c.parent;for(let l=n.length-1;l>=0;l--){const o=n[l];(o.f&(st|Pe))===0&&ws(o)}}kt.clear()}}kt=null}}function Ir(e,t,s,a){if(!s.has(e)&&(s.add(e),e.reactions!==null))for(const r of e.reactions){const n=r.f;(n&Me)!==0?Ir(r,t,s,a):(n&(fs|ot))!==0&&(n&Re)===0&&Ka(r,t,a)&&(ke(r,Re),Ha(r))}}function Ka(e,t,s){const a=s.get(e);if(a!==void 0)return a;if(e.deps!==null)for(const r of e.deps){if(Yt.call(t,r))return!0;if((r.f&Me)!==0&&Ka(r,t,s))return s.set(r,!0),!0}return s.set(e,!1),!1}function Ha(e){J.schedule(e)}function qr(e,t){if(!((e.f&vt)!==0&&(e.f&Ce)!==0)){(e.f&Re)!==0?t.d.push(e):(e.f&yt)!==0&&t.m.push(e),ke(e,Ce);for(var s=e.first;s!==null;)qr(s,t),s=s.next}}function Nr(e){ke(e,Ce);for(var t=e.first;t!==null;)Nr(t),t=t.next}function hi(e){let t=0,s=rs(0),a;return()=>{Wa()&&(i(s),Ya(()=>(t===0&&(a=ha(()=>e(()=>zs(s)))),t+=1,()=>{Zt(()=>{t-=1,t===0&&(a?.(),a=void 0,zs(s))})})))}}var _i=ts|xs;function gi(e,t,s,a){new mi(e,t,s,a)}var Ze,qa,Je,Ut,Ie,Qe,De,Ge,Et,Gt,Ot,gs,Ds,Ps,jt,ca,Ee,yi,bi,wi,Da,Xs,Zs,Pa,La;class mi{constructor(t,s,a,r){Z(this,Ee);Ve(this,"parent");Ve(this,"is_pending",!1);Ve(this,"transform_error");Z(this,Ze);Z(this,qa,null);Z(this,Je);Z(this,Ut);Z(this,Ie);Z(this,Qe,null);Z(this,De,null);Z(this,Ge,null);Z(this,Et,null);Z(this,Gt,0);Z(this,Ot,0);Z(this,gs,!1);Z(this,Ds,new Set);Z(this,Ps,new Set);Z(this,jt,null);Z(this,ca,hi(()=>(X(this,jt,rs(g(this,Gt))),()=>{X(this,jt,null)})));X(this,Ze,t),X(this,Je,s),X(this,Ut,n=>{var c=ae;c.b=this,c.f|=Ta,a(n)}),this.parent=ae.b,this.transform_error=r??this.parent?.transform_error??(n=>n),X(this,Ie,pa(()=>{ie(this,Ee,Da).call(this)},_i))}defer_effect(t){Pr(t,g(this,Ds),g(this,Ps))}is_rendered(){return!this.is_pending&&(!this.parent||this.parent.is_rendered())}has_pending_snippet(){return!!g(this,Je).pending}update_pending_count(t,s){ie(this,Ee,Pa).call(this,t,s),X(this,Gt,g(this,Gt)+t),!(!g(this,jt)||g(this,gs))&&(X(this,gs,!0),Zt(()=>{X(this,gs,!1),g(this,jt)&&bs(g(this,jt),g(this,Gt))}))}get_effect_pending(){return g(this,ca).call(this),i(g(this,jt))}error(t){if(!g(this,Je).onerror&&!g(this,Je).failed)throw t;J?.is_fork?(g(this,Qe)&&J.skip_effect(g(this,Qe)),g(this,De)&&J.skip_effect(g(this,De)),g(this,Ge)&&J.skip_effect(g(this,Ge)),J.on_fork_commit(()=>{ie(this,Ee,La).call(this,t)})):ie(this,Ee,La).call(this,t)}}Ze=new WeakMap,qa=new WeakMap,Je=new WeakMap,Ut=new WeakMap,Ie=new WeakMap,Qe=new WeakMap,De=new WeakMap,Ge=new WeakMap,Et=new WeakMap,Gt=new WeakMap,Ot=new WeakMap,gs=new WeakMap,Ds=new WeakMap,Ps=new WeakMap,jt=new WeakMap,ca=new WeakMap,Ee=new WeakSet,yi=function(){try{X(this,Qe,et(()=>g(this,Ut).call(this,g(this,Ze))))}catch(t){this.error(t)}},bi=function(t){const s=g(this,Je).failed;s&&X(this,Ge,et(()=>{s(g(this,Ze),()=>t,()=>()=>{})}))},wi=function(){const t=g(this,Je).pending;t&&(this.is_pending=!0,X(this,De,et(()=>t(g(this,Ze)))),Zt(()=>{var s=X(this,Et,document.createDocumentFragment()),a=Tt();s.append(a),X(this,Qe,ie(this,Ee,Zs).call(this,()=>et(()=>g(this,Ut).call(this,a)))),g(this,Ot)===0&&(g(this,Ze).before(s),X(this,Et,null),Qt(g(this,De),()=>{X(this,De,null)}),ie(this,Ee,Xs).call(this,J))}))},Da=function(){try{if(this.is_pending=this.has_pending_snippet(),X(this,Ot,0),X(this,Gt,0),X(this,Qe,et(()=>{g(this,Ut).call(this,g(this,Ze))})),g(this,Ot)>0){var t=X(this,Et,document.createDocumentFragment());Ja(g(this,Qe),t);const s=g(this,Je).pending;X(this,De,et(()=>s(g(this,Ze))))}else ie(this,Ee,Xs).call(this,J)}catch(s){this.error(s)}},Xs=function(t){this.is_pending=!1,t.transfer_effects(g(this,Ds),g(this,Ps))},Zs=function(t){var s=ae,a=te,r=Ye;bt(g(this,Ie)),rt(g(this,Ie)),ys(g(this,Ie).ctx);try{return as.ensure(),t()}catch(n){return Or(n),null}finally{bt(s),rt(a),ys(r)}},Pa=function(t,s){var a;if(!this.has_pending_snippet()){this.parent&&ie(a=this.parent,Ee,Pa).call(a,t,s);return}X(this,Ot,g(this,Ot)+t),g(this,Ot)===0&&(ie(this,Ee,Xs).call(this,s),g(this,De)&&Qt(g(this,De),()=>{X(this,De,null)}),g(this,Et)&&(g(this,Ze).before(g(this,Et)),X(this,Et,null)))},La=function(t){g(this,Qe)&&(Be(g(this,Qe)),X(this,Qe,null)),g(this,De)&&(Be(g(this,De)),X(this,De,null)),g(this,Ge)&&(Be(g(this,Ge)),X(this,Ge,null));var s=g(this,Je).onerror;let a=g(this,Je).failed;var r=!1,n=!1;const c=()=>{if(r){ii();return}r=!0,n&&Gn(),g(this,Ge)!==null&&Qt(g(this,Ge),()=>{X(this,Ge,null)}),ie(this,Ee,Zs).call(this,()=>{ie(this,Ee,Da).call(this)})},l=o=>{try{n=!0,s?.(o,c),n=!1}catch(d){Dt(d,g(this,Ie)&&g(this,Ie).parent)}a&&X(this,Ge,ie(this,Ee,Zs).call(this,()=>{try{return et(()=>{var d=ae;d.b=this,d.f|=Ta,a(g(this,Ze),()=>o,()=>c)})}catch(d){return Dt(d,g(this,Ie).parent),null}}))};Zt(()=>{var o;try{o=this.transform_error(t)}catch(d){Dt(d,g(this,Ie)&&g(this,Ie).parent);return}o!==null&&typeof o=="object"&&typeof o.then=="function"?o.then(l,d=>Dt(d,g(this,Ie)&&g(this,Ie).parent)):l(o)})};function xi(e,t,s,a){const r=As;var n=e.filter(v=>!v.settled);if(s.length===0&&n.length===0){a(t.map(r));return}var c=ae,l=ki(),o=n.length===1?n[0].promise:n.length>1?Promise.all(n.map(v=>v.promise)):null;function d(v){if((c.f&st)===0){l();try{a(v)}catch(m){Dt(m,c)}ta()}}var _=Br();if(s.length===0){o.then(()=>d(t.map(r))).finally(_);return}function u(){Promise.all(s.map(v=>Si(v))).then(v=>d([...t.map(r),...v])).catch(v=>Dt(v,c)).finally(_)}o?o.then(()=>{l(),u(),ta()}):u()}function ki(){var e=ae,t=te,s=Ye,a=J;return function(n=!0){bt(e),rt(t),ys(s),n&&(e.f&st)===0&&(a?.activate(),a?.apply())}}function ta(e=!0){bt(null),rt(null),ys(null),e&&J?.deactivate()}function Br(){var e=ae,t=e.b,s=J,a=t.is_rendered();return t.update_pending_count(1,s),s.increment(a,e),()=>{t.update_pending_count(-1,s),s.decrement(a,e)}}function As(e){var t=Me|Re;return ae!==null&&(ae.f|=xs),{ctx:Ye,deps:null,effects:null,equals:Ar,f:t,fn:e,reactions:null,rv:0,v:ze,wv:0,parent:ae,ac:null}}const Bs=Symbol("obsolete");function Si(e,t,s){let a=ae;a===null&&Pn();var r=void 0,n=rs(ze),c=!te,l=new Set;return Pi(()=>{var o=ae,d=Tr();r=d.promise;try{Promise.resolve(e()).then(d.resolve,m=>{m!==va&&d.reject(m)}).finally(ta)}catch(m){d.reject(m),ta()}var _=J;if(c){if((o.f&ns)!==0)var u=Br();if(a.b.is_rendered())_.async_deriveds.get(o)?.reject(Bs);else for(const m of l.values())m.reject(Bs);l.add(d),_.async_deriveds.set(o,d)}const v=(m,y=void 0)=>{u?.(),l.delete(d),y!==Bs&&(_.activate(),y?(n.f|=Pt,bs(n,y)):((n.f&Pt)!==0&&(n.f^=Pt),bs(n,m)),_.deactivate())};d.promise.then(v,m=>v(null,m||"unknown"))}),en(()=>{for(const o of l)o.reject(Bs)}),new Promise(o=>{function d(_){function u(){_===r?o(n):d(r)}_.then(u,u)}d(r)})}function E(e){const t=As(e);return cn(t),t}function Kr(e){const t=As(e);return t.equals=Fr,t}function Ei(e){var t=e.effects;if(t!==null){e.effects=null;for(var s=0;s0&&!Gr&&$i()}return t}function $i(){Gr=!1;for(const e of sa){(e.f&Ce)!==0&&ke(e,yt);let t;try{t=qs(e)}catch{t=!0}t&&ws(e)}sa.clear()}function zs(e){K(e,e.v+1)}function Wr(e,t,s){var a=e.reactions;if(a!==null)for(var r=a.length,n=0;n{if(es===n)return l();var o=te,d=es;rt(null),dr(n);var _=l();return rt(o),dr(d),_};return a&&s.set("length",se(e.length)),new Proxy(e,{defineProperty(l,o,d){(!("value"in d)||d.configurable===!1||d.enumerable===!1||d.writable===!1)&&Kn();var _=s.get(o);return _===void 0?c(()=>{var u=se(d.value);return s.set(o,u),u}):K(_,d.value,!0),!0},deleteProperty(l,o){var d=s.get(o);if(d===void 0){if(o in l){const _=c(()=>se(ze));s.set(o,_),zs(r)}}else K(d,ze),zs(r);return!0},get(l,o,d){if(o===Xt)return e;var _=s.get(o),u=o in l;if(_===void 0&&(!u||ds(l,o)?.writable)&&(_=c(()=>{var m=Ne(u?l[o]:ze),y=se(m);return y}),s.set(o,_)),_!==void 0){var v=i(_);return v===ze?void 0:v}return Reflect.get(l,o,d)},getOwnPropertyDescriptor(l,o){var d=Reflect.getOwnPropertyDescriptor(l,o);if(d&&"value"in d){var _=s.get(o);_&&(d.value=i(_))}else if(d===void 0){var u=s.get(o),v=u?.v;if(u!==void 0&&v!==ze)return{enumerable:!0,configurable:!0,value:v,writable:!0}}return d},has(l,o){if(o===Xt)return!0;var d=s.get(o),_=d!==void 0&&d.v!==ze||Reflect.has(l,o);if(d!==void 0||ae!==null&&(!_||ds(l,o)?.writable)){d===void 0&&(d=c(()=>{var v=_?Ne(l[o]):ze,m=se(v);return m}),s.set(o,d));var u=i(d);if(u===ze)return!1}return _},set(l,o,d,_){var u=s.get(o),v=o in l;if(a&&o==="length")for(var m=d;mse(ze)),s.set(m+"",y))}if(u===void 0)(!v||ds(l,o)?.writable)&&(u=c(()=>se(void 0)),K(u,Ne(d)),s.set(o,u));else{v=u.v!==ze;var w=c(()=>Ne(d));K(u,w)}var h=Reflect.getOwnPropertyDescriptor(l,o);if(h?.set&&h.set.call(_,d),!v){if(a&&typeof o=="string"){var b=s.get("length"),k=Number(o);Number.isInteger(k)&&k>=b.v&&K(b,k+1)}zs(r)}return!0},ownKeys(l){i(r);var o=Reflect.ownKeys(l).filter(u=>{var v=s.get(u);return v===void 0||v.v!==ze});for(var[d,_]of s)_.v!==ze&&!(d in l)&&o.push(d);return o},setPrototypeOf(){Hn()}})}function ir(e){try{if(e!==null&&typeof e=="object"&&Xt in e)return e[Xt]}catch{}return e}function zi(e,t){return Object.is(ir(e),ir(t))}var lr,Yr,Xr,Zr;function Ci(){if(lr===void 0){lr=window,Yr=/Firefox/.test(navigator.userAgent);var e=Element.prototype,t=Node.prototype,s=Text.prototype;Xr=ds(t,"firstChild").get,Zr=ds(t,"nextSibling").get,ar(e)&&(e[za]=void 0,e[Us]=null,e[Ca]=void 0,e.__e=void 0),ar(s)&&(s[Es]=void 0)}}function Tt(e=""){return document.createTextNode(e)}function aa(e){return Xr.call(e)}function Is(e){return Zr.call(e)}function f(e,t){return aa(e)}function zt(e,t=!1){{var s=aa(e);return s instanceof Comment&&s.data===""?Is(s):s}}function p(e,t=1,s=!1){let a=e;for(;t--;)a=Is(a);return a}function Ai(e){e.textContent=""}function Jr(){return!1}function Fi(e,t,s){return document.createElementNS(Cr,e,void 0)}let or=!1;function Ri(){or||(or=!0,document.addEventListener("reset",e=>{Promise.resolve().then(()=>{if(!e.defaultPrevented)for(const t of e.target.elements)t[Gs]?.()})},{capture:!0}))}function Ga(e){var t=te,s=ae;rt(null),bt(null);try{return e()}finally{rt(t),bt(s)}}function Qr(e,t,s,a=s){e.addEventListener(t,()=>Ga(s));const r=e[Gs];r?e[Gs]=()=>{r(),a(!0)}:e[Gs]=()=>a(!0),Ri()}function Mi(e){ae===null&&(te===null&&qn(),In()),Ct&&Vn()}function Oi(e,t){var s=t.last;s===null?t.last=t.first=e:(s.next=e,e.prev=s,t.last=e)}function At(e,t){var s=ae;s!==null&&(s.f&Pe)!==0&&(e|=Pe);var a={ctx:Ye,deps:null,nodes:null,f:e|Re|tt,first:null,fn:t,last:null,next:null,parent:s,b:s&&s.b,prev:null,teardown:null,wv:0,ac:null};J?.register_created_effect(a);var r=a;if((e&ms)!==0)cs!==null?cs.push(a):as.ensure().schedule(a);else if(t!==null){try{ws(a)}catch(c){throw Be(a),c}r.deps===null&&r.teardown===null&&r.nodes===null&&r.first===r.last&&(r.f&xs)===0&&(r=r.first,(e&ot)!==0&&(e&ts)!==0&&r!==null&&(r.f|=ts))}if(r!==null&&(r.parent=s,s!==null&&Oi(r,s),te!==null&&(te.f&Me)!==0&&(e&Lt)===0)){var n=te;(n.effects??(n.effects=[])).push(r)}return a}function Wa(){return te!==null&&!dt}function en(e){const t=At(ua,null);return ke(t,Ce),t.teardown=e,t}function tn(e){Mi();var t=ae.f,s=!te&&(t&vt)!==0&&(t&ns)===0;if(s){var a=Ye;(a.e??(a.e=[])).push(e)}else return sn(e)}function sn(e){return At(ms|Rn,e)}function Di(e){as.ensure();const t=At(Lt|xs,e);return(s={})=>new Promise(a=>{s.outro?Qt(t,()=>{Be(t),a(void 0)}):(Be(t),a(void 0))})}function an(e){return At(ms,e)}function Pi(e){return At(fs|xs,e)}function Ya(e,t=0){return At(ua|t,e)}function q(e,t=[],s=[],a=[]){xi(a,t,s,r=>{At(ua,()=>e(...r.map(i)))})}function pa(e,t=0){var s=At(ot|t,e);return s}function et(e){return At(vt|xs,e)}function rn(e){var t=e.teardown;if(t!==null){const s=Ct,a=te;cr(!0),rt(null);try{t.call(null)}finally{cr(s),rt(a)}}}function Xa(e,t=!1){var s=e.first;for(e.first=e.last=null;s!==null;){const r=s.ac;r!==null&&Ga(()=>{r.abort(va)});var a=s.next;(s.f&Lt)!==0?s.parent=null:Be(s,t),s=a}}function Li(e){for(var t=e.first;t!==null;){var s=t.next;(t.f&vt)===0&&Be(t),t=s}}function Be(e,t=!0){var s=!1;(t||(e.f&Fn)!==0)&&e.nodes!==null&&e.nodes.end!==null&&(Vi(e.nodes.start,e.nodes.end),s=!0),ke(e,$a),Xa(e,t&&!s),Fs(e,0);var a=e.nodes&&e.nodes.t;if(a!==null)for(const n of a)n.stop();rn(e),e.f^=$a,e.f|=st;var r=e.parent;r!==null&&r.first!==null&&nn(e),e.next=e.prev=e.teardown=e.ctx=e.deps=e.fn=e.nodes=e.ac=e.b=null}function Vi(e,t){for(;e!==null;){var s=e===t?null:Is(e);e.remove(),e=s}}function nn(e){var t=e.parent,s=e.prev,a=e.next;s!==null&&(s.next=a),a!==null&&(a.prev=s),t!==null&&(t.first===e&&(t.first=a),t.last===e&&(t.last=s))}function Qt(e,t,s=!0){var a=[];ln(e,a,!0);var r=()=>{s&&Be(e),t&&t()},n=a.length;if(n>0){var c=()=>--n||r();for(var l of a)l.out(c)}else r()}function ln(e,t,s){if((e.f&Pe)===0){e.f^=Pe;var a=e.nodes&&e.nodes.t;if(a!==null)for(const l of a)(l.is_global||s)&&t.push(l);for(var r=e.first;r!==null;){var n=r.next;if((r.f&Lt)===0){var c=(r.f&ts)!==0||(r.f&vt)!==0&&(e.f&ot)!==0;ln(r,t,c?s:!1)}r=n}}}function Za(e){on(e,!0)}function on(e,t){if((e.f&Pe)!==0){e.f^=Pe,(e.f&Ce)===0&&(ke(e,Re),as.ensure().schedule(e));for(var s=e.first;s!==null;){var a=s.next,r=(s.f&ts)!==0||(s.f&vt)!==0;on(s,r?t:!1),s=a}var n=e.nodes&&e.nodes.t;if(n!==null)for(const c of n)(c.is_global||t)&&c.in()}}function Ja(e,t){if(e.nodes)for(var s=e.nodes.start,a=e.nodes.end;s!==null;){var r=s===a?null:Is(s);t.append(s),s=r}}let Js=!1,Ct=!1;function cr(e){Ct=e}let te=null,dt=!1;function rt(e){te=e}let ae=null;function bt(e){ae=e}let at=null;function cn(e){te!==null&&(at===null?at=[e]:at.push(e))}let qe=null,He=0,Xe=null;function Ii(e){Xe=e}let dn=1,qt=0,es=qt;function dr(e){es=e}function fn(){return++dn}function qs(e){var t=e.f;if((t&Re)!==0)return!0;if(t&Me&&(e.f&=~ss),(t&yt)!==0){for(var s=e.deps,a=s.length,r=0;re.wv)return!0}(t&tt)!==0&&ct===null&&ke(e,Ce)}return!1}function un(e,t,s=!0){var a=e.reactions;if(a!==null&&!(at!==null&&Yt.call(at,e)))for(var r=0;r{e.ac.abort(va)}),e.ac=null);try{e.f|=ea;var _=e.fn,u=_();e.f|=ns;var v=e.deps,m=J?.is_fork;if(qe!==null){var y;if(m||Fs(e,He),v!==null&&He>0)for(v.length=He+qe.length,y=0;y{throw h});throw v}}finally{e[Nt]=t,delete e.currentTarget,rt(_),bt(u)}}}const Hi=globalThis?.window?.trustedTypes&&globalThis.window.trustedTypes.createPolicy("svelte-trusted-html",{createHTML:e=>e});function Ui(e){return Hi?.createHTML(e)??e}function Gi(e){var t=Fi("template");return t.innerHTML=Ui(e.replaceAll("","")),t.content}function ra(e,t){var s=ae;s.nodes===null&&(s.nodes={start:e,end:t,a:null,t:null})}function A(e,t){var s=(t&si)!==0,a=(t&ai)!==0,r,n=!e.startsWith("");return()=>{r===void 0&&(r=Gi(n?e:""+e),s||(r=aa(r)));var c=a||Yr?document.importNode(r,!0):r.cloneNode(!0);if(s){var l=aa(c),o=c.lastChild;ra(l,o)}else ra(c,c);return c}}function Wi(e=""){{var t=Tt(e+"");return ra(t,t),t}}function vr(){var e=document.createDocumentFragment(),t=document.createComment(""),s=Tt();return e.append(t,s),ra(t,s),e}function z(e,t){e!==null&&e.before(t)}function C(e,t){var s=t==null?"":typeof t=="object"?`${t}`:t;s!==(e[Es]??(e[Es]=e.nodeValue))&&(e[Es]=s,e.nodeValue=`${s}`)}function Yi(e,t){return Xi(e,t)}const Ks=new Map;function Xi(e,{target:t,anchor:s,props:a={},events:r,context:n,intro:c=!0,transformError:l}){Ci();var o=void 0,d=Di(()=>{var _=s??t.appendChild(Tt());gi(_,{pending:()=>{}},m=>{ye({});var y=Ye;n&&(y.c=n),r&&(a.$$events=r),o=e(m,a)||{},be()},l);var u=new Set,v=m=>{for(var y=0;y{for(var m of u)for(const h of[t,document]){var y=Ks.get(h),w=y.get(m);--w==0?(h.removeEventListener(m,ur),y.delete(m),y.size===0&&Ks.delete(h)):y.set(m,w)}Va.delete(v),_!==s&&_.parentNode?.removeChild(_)}});return Zi.set(o,d),o}let Zi=new WeakMap;var it,gt,We,Wt,Ls,Vs,da;class gn{constructor(t,s=!0){Ve(this,"anchor");Z(this,it,new Map);Z(this,gt,new Map);Z(this,We,new Map);Z(this,Wt,new Set);Z(this,Ls,!0);Z(this,Vs,t=>{if(g(this,it).has(t)){var s=g(this,it).get(t),a=g(this,gt).get(s);if(a)Za(a),g(this,Wt).delete(s);else{var r=g(this,We).get(s);r&&(g(this,gt).set(s,r.effect),g(this,We).delete(s),r.fragment.lastChild.remove(),this.anchor.before(r.fragment),a=r.effect)}for(const[n,c]of g(this,it)){if(g(this,it).delete(n),n===t)break;const l=g(this,We).get(c);l&&(Be(l.effect),g(this,We).delete(c))}for(const[n,c]of g(this,gt)){if(n===s||g(this,Wt).has(n))continue;const l=()=>{if(Array.from(g(this,it).values()).includes(n)){var d=document.createDocumentFragment();Ja(c,d),d.append(Tt()),g(this,We).set(n,{effect:c,fragment:d})}else Be(c);g(this,Wt).delete(n),g(this,gt).delete(n)};g(this,Ls)||!a?(g(this,Wt).add(n),Qt(c,l,!1)):l()}}});Z(this,da,t=>{g(this,it).delete(t);const s=Array.from(g(this,it).values());for(const[a,r]of g(this,We))s.includes(a)||(Be(r.effect),g(this,We).delete(a))});this.anchor=t,X(this,Ls,s)}ensure(t,s){var a=J,r=Jr();if(s&&!g(this,gt).has(t)&&!g(this,We).has(t))if(r){var n=document.createDocumentFragment(),c=Tt();n.append(c),g(this,We).set(t,{effect:et(()=>s(c)),fragment:n})}else g(this,gt).set(t,et(()=>s(this.anchor)));if(g(this,it).set(a,t),r){for(const[l,o]of g(this,gt))l===t?a.unskip_effect(o):a.skip_effect(o);for(const[l,o]of g(this,We))l===t?a.unskip_effect(o.effect):a.skip_effect(o.effect);a.oncommit(g(this,Vs)),a.ondiscard(g(this,da))}else g(this,Vs).call(this,a)}}it=new WeakMap,gt=new WeakMap,We=new WeakMap,Wt=new WeakMap,Ls=new WeakMap,Vs=new WeakMap,da=new WeakMap;function ue(e,t,s=!1){var a=new gn(e),r=s?ts:0;function n(c,l){a.ensure(c,l)}pa(()=>{var c=!1;t((l,o=0)=>{c=!0,n(o,l)}),c||n(-1,null)},r)}function ks(e,t){return t}function Ji(e,t,s){for(var a=[],r=t.length,n,c=t.length,l=0;l{if(n){if(n.pending.delete(u),n.done.add(u),n.pending.size===0){var v=e.outrogroups;Ia(e,fa(n.done)),v.delete(n),v.size===0&&(e.outrogroups=null)}}else c-=1},!1)}if(c===0){var o=a.length===0&&s!==null;if(o){var d=s,_=d.parentNode;Ai(_),_.append(d),e.items.clear()}Ia(e,t,!o)}else n={pending:new Set(t),done:new Set},(e.outrogroups??(e.outrogroups=new Set)).add(n)}function Ia(e,t,s=!0){var a;if(e.pending.size>0){a=new Set;for(const c of e.pending.values())for(const l of c)a.add(e.items.get(l).e)}for(var r=0;r{var j=s();return Na(j)?j:j==null?[]:fa(j)}),v,m=new Map,y=!0;function w(j){(k.effect.f&st)===0&&(k.pending.delete(j),k.fallback=_,Qi(k,v,c,t,a),_!==null&&(v.length===0?(_.f&mt)===0?Za(_):(_.f^=mt,Ts(_,null,c)):Qt(_,()=>{_=null})))}function h(j){k.pending.delete(j)}var b=pa(()=>{v=i(u);for(var j=v.length,F=new Set,V=J,S=Jr(),R=0;Rn(c)):(_=et(()=>n(pr??(pr=Tt()))),_.f|=mt)),j>F.size&&Ln(),!y)if(m.set(V,F),S){for(const[P,x]of l)F.has(P)||V.skip_effect(x.e);V.oncommit(w),V.ondiscard(h)}else w(V);i(u)}),k={effect:b,items:l,pending:m,outrogroups:null,fallback:_};y=!1}function Ss(e){for(;e!==null&&(e.f&vt)===0;)e=e.next;return e}function Qi(e,t,s,a,r){var n=(a&Xn)!==0,c=t.length,l=e.items,o=Ss(e.effect.first),d,_=null,u,v=[],m=[],y,w,h,b;if(n)for(b=0;b0){var N=(a&zr)!==0&&c===0?s:null;if(n){for(b=0;b{if(u!==void 0)for(h of u)h.nodes?.a?.apply()})}function el(e,t,s,a,r,n,c,l){var o=(c&Wn)!==0?(c&Zn)===0?Ti(s,!1,!1):rs(s):null,d=(c&Yn)!==0?rs(r):null;return{v:o,i:d,e:et(()=>(n(t,o??s,d??r,l),()=>{e.delete(a)}))}}function Ts(e,t,s){if(e.nodes)for(var a=e.nodes.start,r=e.nodes.end,n=t&&(t.f&mt)===0?t.nodes.start:s;a!==null;){var c=Is(a);if(n.before(a),a===r)return;a=c}}function Ft(e,t,s){t===null?e.effect.first=s:t.next=s,s===null?e.effect.last=t:s.prev=t}function mn(e,t,...s){var a=new gn(e);pa(()=>{const r=t()??null;a.ensure(r,r&&(n=>r(n,...s)))},ts)}const hr=[...` -\r\f \v\uFEFF`];function tl(e,t,s){var a=e==null?"":""+e;if(s){for(var r of Object.keys(s))if(s[r])a=a?a+" "+r:r;else if(a.length)for(var n=r.length,c=0;(c=a.indexOf(r,c))>=0;){var l=c+n;(c===0||hr.includes(a[c-1]))&&(l===a.length||hr.includes(a[l]))?a=(c===0?"":a.substring(0,c))+a.substring(l+1):c=l}}return a===""?null:a}function _r(e,t=!1){var s=t?" !important;":";",a="";for(var r of Object.keys(e)){var n=e[r];n!=null&&n!==""&&(a+=" "+r+": "+n+s)}return a}function xa(e){return e[0]!=="-"||e[1]!=="-"?e.toLowerCase():e}function sl(e,t){if(t){var s="",a,r;if(Array.isArray(t)?(a=t[0],r=t[1]):a=t,e){e=String(e).replaceAll(/\s*\/\*.*?\*\/\s*/g,"").trim();var n=!1,c=0,l=!1,o=[];a&&o.push(...Object.keys(a).map(xa)),r&&o.push(...Object.keys(r).map(xa));var d=0,_=-1;const w=e.length;for(var u=0;u{Qa(e,e.__value)});t.observe(e,{childList:!0,subtree:!0,attributes:!0,attributeFilter:["value"]}),en(()=>{t.disconnect()})}function na(e,t,s=t){var a=new WeakSet,r=!0;Qr(e,"change",n=>{var c=n?"[selected]":":checked",l;if(e.multiple)l=[].map.call(e.querySelectorAll(c),Cs);else{var o=e.querySelector(c)??e.querySelector("option:not([disabled])");l=o&&Cs(o)}s(l),e.__value=l,J!==null&&a.add(J)}),an(()=>{var n=t();if(e===document.activeElement){var c=J;if(a.has(c))return}if(Qa(e,n,r),r&&n===void 0){var l=e.querySelector(":checked");l!==null&&(n=Cs(l),s(n))}e.__value=n,r=!1}),yn(e)}function Cs(e){return"__value"in e?e.__value:e.value}const al=Symbol("is custom element"),rl=Symbol("is html"),nl=Dn?"progress":"PROGRESS";function ia(e,t){var s=bn(e);s.value===(s.value=t??void 0)||e.value===t&&(t!==0||e.nodeName!==nl)||(e.value=t??"")}function Q(e,t,s,a){var r=bn(e);r[t]!==(r[t]=s)&&(t==="loading"&&(e[On]=s),s==null?e.removeAttribute(t):typeof s!="string"&&il(e).includes(t)?e[t]=s:e.setAttribute(t,s))}function bn(e){return e[Us]??(e[Us]={[al]:e.nodeName.includes("-"),[rl]:e.namespaceURI===Cr})}var gr=new Map;function il(e){var t=e.getAttribute("is")||e.nodeName,s=gr.get(t);if(s)return s;gr.set(t,s=[]);for(var a,r=e,n=Element.prototype;n!==r;){a=$n(r);for(var c in a)a[c].set&&c!=="innerHTML"&&c!=="textContent"&&c!=="innerText"&&s.push(c);r=Er(r)}return s}function $t(e,t,s=t){var a=new WeakSet;Qr(e,"input",async r=>{var n=r?e.defaultValue:e.value;if(n=Sa(e)?Ea(n):n,s(n),J!==null&&a.add(J),await Ni(),n!==(n=t())){var c=e.selectionStart,l=e.selectionEnd,o=e.value.length;if(e.value=n??"",l!==null){var d=e.value.length;c===l&&l===o&&d>o?(e.selectionStart=d,e.selectionEnd=d):(e.selectionStart=c,e.selectionEnd=Math.min(l,d))}}}),ha(t)==null&&e.value&&(s(Sa(e)?Ea(e.value):e.value),J!==null&&a.add(J)),Ya(()=>{var r=t();if(e===document.activeElement){var n=J;if(a.has(n))return}Sa(e)&&r===Ea(e.value)||e.type==="date"&&!r&&!e.value||r!==e.value&&(e.value=r??"")})}function Sa(e){var t=e.type;return t==="number"||t==="range"}function Ea(e){return e===""?null:+e}function ja(e,t){return e===t||e?.[Xt]===t}function ll(e={},t,s,a){var r=Ye.r,n=ae;return an(()=>{var c,l;return Ya(()=>{c=l,l=[],ha(()=>{ja(s(...l),e)||(t(e,...l),c&&ja(s(...c),e)&&t(null,...c))})}),()=>{let o=n;for(;o!==r&&o.parent!==null&&o.parent.f&$a;)o=o.parent;const d=()=>{l&&ja(s(...l),e)&&t(null,...l)},_=o.teardown;o.teardown=()=>{d(),_?.()}}}),e}function me(e,t,s,a){var r=!0,n=(s&ei)!==0,c=(s&ti)!==0,l=a,o=!0,d=void 0,_=()=>c&&r?(d??(d=As(a)),i(d)):(o&&(o=!1,l=c?ha(a):a),l);let u;if(n){var v=Xt in e||Mn in e;u=ds(e,t)?.set??(v&&t in e?F=>e[t]=F:void 0)}var m,y=!1;n?[m,y]=di(()=>e[t]):m=e[t],m===void 0&&a!==void 0&&(m=_(),u&&(Bn(),u(m)));var w;if(w=()=>{var F=e[t];return F===void 0?_():(o=!0,F)},(s&Qn)===0)return w;if(u){var h=e.$$legacy;return(function(F,V){return arguments.length>0?((!V||h||y)&&u(V?w():F),F):w()})}var b=!1,k=((s&Jn)!==0?As:Kr)(()=>(b=!1,w()));n&&i(k);var j=ae;return(function(F,V){if(arguments.length>0){const S=V?i(k):n?Ne(F):F;return K(k,S),b=!0,l!==void 0&&(l=S),F}return Ct&&b||(j.f&st)!==0?k.v:i(k)})}const ol="5";var Sr;typeof window<"u"&&((Sr=window.__svelte??(window.__svelte={})).v??(Sr.v=new Set)).add(ol);const Vt=typeof window<"u"&&window.slashedBricksApp?window.slashedBricksApp:{defaults:{},settings:{},tabs:{},rest:{url:"",nonce:""}},re={defaults:Vt.defaults||{},tabs:Vt.tabs||{},rest:Vt.rest||{url:"",nonce:""},inventory:Vt.inventory||{variables:[],sf_classes:[],is_classes:[]},pluginSettings:Vt.pluginSettings||{},versions:Vt.versions||{plugin:"",framework:""}},H=Ne(structuredClone(Vt.settings||{})),U=Ne({activeTab:cl(re.tabs)||"colors",dirty:!1,saving:!1,lastSavedAt:null,error:""});function cl(e){for(const t in e)return t;return null}function er(){U.dirty=!0,U.error=""}function mr(e){H[e]&&delete H[e]}function Rs(e,t,s){H[e]||(H[e]={}),s===""||s===null||s===void 0||typeof s=="string"&&s.trim()===""?delete H[e][t]:H[e][t]=String(s),er()}var dl=A(''),fl=A('');function ul(e,t){ye(t,!0);var s=fl();ne(s,21,()=>Object.entries(re.tabs),([a,r])=>a,(a,r)=>{var n=E(()=>lt(i(r),2));let c=()=>i(n)[0],l=()=>i(n)[1];var o=dl();let d;var _=f(o);q(()=>{d=ut(o,1,"tab-nav__btn svelte-yyiz68",null,d,{active:U.activeTab===c()}),C(_,l())}),ge("click",o,()=>U.activeTab=c()),z(a,o)}),z(e,s),be()}Le(["click"]);var vl=A(' '),pl=A(' ',1),hl=A(''),_l=A('
                ');function Hs(e,t){ye(t,!0);let s=me(t,"hexHint",3,""),a=me(t,"rawHint",3,""),r=me(t,"cssVar",3,"");const n=/^#([0-9a-fA-F]{3,4}|[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$/,c=(()=>{const P=(H.colors?.[t.storeKey]??"").trim(),x=P===""||n.test(P);return{mode:x?"hex":"raw",hex:x?P:"",raw:x?"":P}})();let l=se(Ne(c.mode)),o=se(Ne(c.hex)),d=se(Ne(c.raw));function _(){H.colors||(H.colors={});const P=i(d).trim(),x=i(o).trim(),T=i(l)==="raw"?P:x;T===""?delete H.colors[t.storeKey]:H.colors[t.storeKey]=T,er()}function u(){i(l)==="hex"?(K(l,"raw"),K(o,"")):(K(l,"hex"),K(d,"")),_()}const v=E(()=>(i(l)==="raw"?i(d):i(o))||s()||"transparent");var m=_l(),y=f(m),w=f(y),h=f(w),b=p(w,2);{var k=P=>{var x=vl(),T=f(x);q(()=>C(T,r())),z(P,x)};ue(b,P=>{r()&&P(k)})}var j=p(y,2),F=f(j);let V;var S=p(F,2);{var R=P=>{var x=pl(),T=zt(x),$=p(T,2);q(()=>{Q(T,"id",t.storeKey),Q($,"placeholder",s())}),ge("input",T,_),$t(T,()=>i(o),D=>K(o,D)),ge("input",$,_),$t($,()=>i(o),D=>K(o,D)),z(P,x)},O=P=>{var x=hl();q(()=>{Q(x,"id",t.storeKey),Q(x,"placeholder",a())}),ge("input",x,_),$t(x,()=>i(d),T=>K(d,T)),z(P,x)};ue(S,P=>{i(l)==="hex"?P(R):P(O,-1)})}var N=p(S,2),M=f(N);q(()=>{Q(w,"for",t.storeKey),C(h,t.label),V=fe(F,"",V,{background:i(v)}),C(M,i(l)==="hex"?"Advanced (oklch / raw)":"Use HEX picker")}),ge("click",N,u),z(e,m),be()}Le(["input","click"]);var gl=A('
                '),ml=A('
                ');function _a(e,t){ye(t,!0);let s=se(!1);const a=`adv-body-${Math.random().toString(36).slice(2,9)}`;var r=ml(),n=f(r),c=p(f(n));let l;var o=f(c),d=p(n,2);{var _=u=>{var v=gl(),m=f(v);mn(m,()=>t.children),q(()=>Q(v,"id",a)),z(u,v)};ue(d,u=>{i(s)&&u(_)})}q(()=>{Q(n,"aria-expanded",i(s)),Q(n,"aria-controls",a),l=ut(c,1,"advanced-section__arrow",null,l,{open:i(s)}),C(o,i(s)?"▲":"▼")}),ge("click",n,()=>K(s,!i(s))),z(e,r),be()}Le(["click"]);var yl=A(`

                Status Colors — Light Mode

                Brand Colors — Dark Mode

                Optional overrides for dark mode. Leave empty to let the framework auto-derive - dark variants from the light source colors. Set explicit values for full - control over dark-mode appearance.

                Status Colors — Dark Mode

                Optional overrides for dark mode. Leave empty for auto-derivation.

                `,1),bl=A(`

                Brand Colors — Light Mode

                Pick a color via the HEX input, or switch to Advanced to paste any +var Sn=Object.defineProperty;var sr=e=>{throw TypeError(e)};var En=(e,t,s)=>t in e?Sn(e,t,{enumerable:!0,configurable:!0,writable:!0,value:s}):e[t]=s;var Ve=(e,t,s)=>En(e,typeof t!="symbol"?t+"":t,s),ba=(e,t,s)=>t.has(e)||sr("Cannot "+s);var g=(e,t,s)=>(ba(e,t,"read from private field"),s?s.call(e):t.get(e)),Z=(e,t,s)=>t.has(e)?sr("Cannot add the same private member more than once"):t instanceof WeakSet?t.add(e):t.set(e,s),X=(e,t,s,a)=>(ba(e,t,"write to private field"),a?a.call(e,s):t.set(e,s),s),ie=(e,t,s)=>(ba(e,t,"access private method"),s);var Na=Array.isArray,jn=Array.prototype.indexOf,Yt=Array.prototype.includes,fa=Array.from,Tn=Object.defineProperty,ds=Object.getOwnPropertyDescriptor,$n=Object.getOwnPropertyDescriptors,Cn=Object.prototype,zn=Array.prototype,Er=Object.getPrototypeOf,ar=Object.isExtensible;const jr=()=>{};function An(e){for(var t=0;t{e=a,t=r});return{promise:s,resolve:e,reject:t}}function ot(e,t){if(Array.isArray(e))return e;if(t===void 0||!(Symbol.iterator in e))return Array.from(e);const s=[];for(const a of e)if(s.push(a),s.length===t)break;return s}const Me=2,ms=4,ua=8,$r=1<<24,ct=16,vt=32,Lt=64,Ta=128,tt=512,ze=1024,Re=2048,bt=4096,Le=8192,st=16384,ns=32768,$a=1<<25,ts=65536,Qs=1<<17,Fn=1<<18,ks=1<<19,Rn=1<<20,mt=1<<25,ss=65536,ea=1<<21,fs=1<<22,Pt=1<<23,Xt=Symbol("$state"),Mn=Symbol("legacy props"),On=Symbol(""),Us=Symbol("attributes"),Ca=Symbol("class"),za=Symbol("style"),js=Symbol("text"),Gs=Symbol("form reset"),va=new class extends Error{constructor(){super(...arguments);Ve(this,"name","StaleReactionError");Ve(this,"message","The reaction that called `getAbortSignal()` was re-run or destroyed")}},Dn=!!globalThis.document?.contentType&&globalThis.document.contentType.includes("xml");function Pn(){throw new Error("https://svelte.dev/e/async_derived_orphan")}function Ln(e,t,s){throw new Error("https://svelte.dev/e/each_key_duplicate")}function Vn(e){throw new Error("https://svelte.dev/e/effect_in_teardown")}function In(){throw new Error("https://svelte.dev/e/effect_in_unowned_derived")}function qn(e){throw new Error("https://svelte.dev/e/effect_orphan")}function Nn(){throw new Error("https://svelte.dev/e/effect_update_depth_exceeded")}function Bn(e){throw new Error("https://svelte.dev/e/props_invalid_value")}function Kn(){throw new Error("https://svelte.dev/e/state_descriptors_fixed")}function Hn(){throw new Error("https://svelte.dev/e/state_prototype_fixed")}function Un(){throw new Error("https://svelte.dev/e/state_unsafe_mutation")}function Gn(){throw new Error("https://svelte.dev/e/svelte_boundary_reset_onerror")}const Wn=1,Yn=2,Cr=4,Xn=8,Zn=16,Jn=1,Qn=4,ei=8,ti=16,si=1,ai=2,Ce=Symbol("uninitialized"),zr="http://www.w3.org/1999/xhtml";function ri(){console.warn("https://svelte.dev/e/derived_inert")}function ni(){console.warn("https://svelte.dev/e/select_multiple_invalid_value")}function ii(){console.warn("https://svelte.dev/e/svelte_boundary_reset_noop")}function Ar(e){return e===this.v}function li(e,t){return e!=e?t==t:e!==t||e!==null&&typeof e=="object"||typeof e=="function"}function Fr(e){return!li(e,this.v)}let Ye=null;function bs(e){Ye=e}function be(e,t=!1,s){Ye={p:Ye,i:!1,c:null,e:null,s:e,x:null,r:ae,l:null}}function ye(e){var t=Ye,s=t.e;if(s!==null){t.e=null;for(var a of s)sn(a)}return t.i=!0,Ye=t.p,{}}function Rr(){return!0}let It=[];function Mr(){var e=It;It=[],An(e)}function Zt(e){if(It.length===0&&!Cs){var t=It;queueMicrotask(()=>{t===It&&Mr()})}It.push(e)}function oi(){for(;It.length>0;)Mr()}function Or(e){var t=ae;if(t===null)return te.f|=Pt,e;if((t.f&ns)===0&&(t.f&ms)===0)throw e;Dt(e,t)}function Dt(e,t){for(;t!==null;){if((t.f&Ta)!==0){if((t.f&ns)===0)throw e;try{t.b.error(e);return}catch(s){e=s}}t=t.parent}throw e}const ci=-7169;function ke(e,t){e.f=e.f&ci|t}function Ba(e){(e.f&tt)!==0||e.deps===null?ke(e,ze):ke(e,bt)}function Dr(e){if(e!==null)for(const t of e)(t.f&Me)===0||(t.f&ss)===0||(t.f^=ss,Dr(t.deps))}function Pr(e,t,s){(e.f&Re)!==0?t.add(e):(e.f&bt)!==0&&s.add(e),Dr(e.deps),ke(e,ze)}let Ns=!1;function di(e){var t=Ns;try{return Ns=!1,[e(),Ns]}finally{Ns=t}}let ya=null,is=null,J=null,Aa=null,dt=null,Fa=null,Cs=!1,wa=!1,cs=null,Ws=null;var rr=0;let fi=1;var us,Rt,Bt,vs,ps,Kt,hs,Et,Ms,Ue,Os,Mt,ht,_t,_s,Ht,ce,Ra,Ts,Ma,Lr,Vr,Ys,ui,Oa,os;const oa=class oa{constructor(){Z(this,ce);Ve(this,"id",fi++);Z(this,us,!1);Ve(this,"linked",!0);Z(this,Rt,null);Z(this,Bt,null);Ve(this,"async_deriveds",new Map);Ve(this,"current",new Map);Ve(this,"previous",new Map);Ve(this,"unblocked",new Set);Z(this,vs,new Set);Z(this,ps,new Set);Z(this,Kt,new Set);Z(this,hs,0);Z(this,Et,new Map);Z(this,Ms,null);Z(this,Ue,[]);Z(this,Os,[]);Z(this,Mt,new Set);Z(this,ht,new Set);Z(this,_t,new Map);Z(this,_s,new Set);Ve(this,"is_fork",!1);Z(this,Ht,!1)}skip_effect(t){g(this,_t).has(t)||g(this,_t).set(t,{d:[],m:[]}),g(this,_s).delete(t)}unskip_effect(t,s=a=>this.schedule(a)){var a=g(this,_t).get(t);if(a){g(this,_t).delete(t);for(var r of a.d)ke(r,Re),s(r);for(r of a.m)ke(r,bt),s(r)}g(this,_s).add(t)}capture(t,s,a=!1){t.v!==Ce&&!this.previous.has(t)&&this.previous.set(t,t.v),(t.f&Pt)===0&&(this.current.set(t,[s,a]),dt?.set(t,s)),this.is_fork||(t.v=s)}activate(){J=this}deactivate(){J=null,dt=null}flush(){try{wa=!0,J=this,ie(this,ce,Ts).call(this)}finally{rr=0,Fa=null,cs=null,Ws=null,wa=!1,J=null,dt=null,Jt.clear()}}discard(){for(const t of g(this,ps))t(this);g(this,ps).clear(),g(this,Kt).clear(),ie(this,ce,os).call(this)}register_created_effect(t){g(this,Os).push(t)}increment(t,s){if(X(this,hs,g(this,hs)+1),t){let a=g(this,Et).get(s)??0;g(this,Et).set(s,a+1)}}decrement(t,s){if(X(this,hs,g(this,hs)-1),t){let a=g(this,Et).get(s)??0;a===1?g(this,Et).delete(s):g(this,Et).set(s,a-1)}g(this,Ht)||(X(this,Ht,!0),Zt(()=>{X(this,Ht,!1),this.linked&&this.flush()}))}transfer_effects(t,s){for(const a of t)g(this,Mt).add(a);for(const a of s)g(this,ht).add(a);t.clear(),s.clear()}oncommit(t){g(this,vs).add(t)}ondiscard(t){g(this,ps).add(t)}on_fork_commit(t){g(this,Kt).add(t)}run_fork_commit_callbacks(){for(const t of g(this,Kt))t(this);g(this,Kt).clear()}settled(){return(g(this,Ms)??X(this,Ms,Tr())).promise}static ensure(){var t;if(J===null){const s=J=new oa;ie(t=s,ce,Oa).call(t),!wa&&!Cs&&Zt(()=>{g(s,us)||s.flush()})}return J}apply(){{dt=null;return}}schedule(t){if(Fa=t,t.b?.is_pending&&(t.f&(ms|ua|$r))!==0&&(t.f&ns)===0){t.b.defer_effect(t);return}for(var s=t;s.parent!==null;){s=s.parent;var a=s.f;if(cs!==null&&s===ae&&(te===null||(te.f&Me)===0))return;if((a&(Lt|vt))!==0){if((a&ze)===0)return;s.f^=ze}}g(this,Ue).push(s)}};us=new WeakMap,Rt=new WeakMap,Bt=new WeakMap,vs=new WeakMap,ps=new WeakMap,Kt=new WeakMap,hs=new WeakMap,Et=new WeakMap,Ms=new WeakMap,Ue=new WeakMap,Os=new WeakMap,Mt=new WeakMap,ht=new WeakMap,_t=new WeakMap,_s=new WeakMap,Ht=new WeakMap,ce=new WeakSet,Ra=function(){if(this.is_fork)return!0;for(const a of g(this,Et).keys()){for(var t=a,s=!1;t.parent!==null;){if(g(this,_t).has(t)){s=!0;break}t=t.parent}if(!s)return!0}return!1},Ts=function(){var c,d,_;if(X(this,us,!0),rr++>1e3&&(ie(this,ce,os).call(this),pi()),!ie(this,ce,Ra).call(this)){for(const u of g(this,Mt))g(this,ht).delete(u),ke(u,Re),this.schedule(u);for(const u of g(this,ht))ke(u,bt),this.schedule(u)}const t=g(this,Ue);X(this,Ue,[]),this.apply();var s=cs=[],a=[],r=Ws=[];for(const u of t)try{ie(this,ce,Ma).call(this,u,s,a)}catch(v){throw Nr(u),v}if(J=null,r.length>0){var n=oa.ensure();for(const u of r)n.schedule(u)}if(cs=null,Ws=null,ie(this,ce,Ra).call(this)){ie(this,ce,Ys).call(this,a),ie(this,ce,Ys).call(this,s);for(const[u,v]of g(this,_t))qr(u,v);r.length>0&&ie(c=J,ce,Ts).call(c);return}const l=ie(this,ce,Lr).call(this);if(l){ie(d=l,ce,Vr).call(d,this);return}g(this,Mt).clear(),g(this,ht).clear();for(const u of g(this,vs))u(this);g(this,vs).clear(),Aa=this,nr(a),nr(s),Aa=null,g(this,Ms)?.resolve();var o=J;if(this.linked&&g(this,hs)===0&&ie(this,ce,os).call(this),g(this,Ue).length>0){o===null&&(o=this,ie(this,ce,Oa).call(this));const u=o;g(u,Ue).push(...g(this,Ue).filter(v=>!g(u,Ue).includes(v)))}o!==null&&ie(_=o,ce,Ts).call(_)},Ma=function(t,s,a){t.f^=ze;for(var r=t.first;r!==null;){var n=r.f,l=(n&(vt|Lt))!==0,o=l&&(n&ze)!==0,c=o||(n&Le)!==0||g(this,_t).has(r);if(!c&&r.fn!==null){l?r.f^=ze:(n&ms)!==0?s.push(r):qs(r)&&((n&ct)!==0&&g(this,ht).add(r),ws(r));var d=r.first;if(d!==null){r=d;continue}}for(;r!==null;){var _=r.next;if(_!==null){r=_;break}r=r.parent}}},Lr=function(){for(var t=g(this,Rt);t!==null;){if(!t.is_fork){for(const[s,[,a]]of this.current)if(t.current.has(s)&&!a)return t}t=g(t,Rt)}return null},Vr=function(t){var a;for(const[r,n]of t.current)!this.previous.has(r)&&t.previous.has(r)&&this.previous.set(r,t.previous.get(r)),this.current.set(r,n);for(const[r,n]of t.async_deriveds){const l=this.async_deriveds.get(r);l&&n.promise.then(l.resolve)}const s=r=>{var n=r.reactions;if(n!==null)for(const c of n){var l=c.f;if((l&Me)!==0)s(c);else{var o=c;l&(fs|ct)&&!this.async_deriveds.has(o)&&(g(this,ht).delete(o),ke(o,Re),this.schedule(o))}}};for(const r of this.current.keys())s(r);this.oncommit(()=>t.discard()),ie(a=t,ce,os).call(a),J=this,ie(this,ce,Ts).call(this)},Ys=function(t){for(var s=0;s!this.current.has(v));if(r.length===0)t&&u.discard();else if(s.length>0){if(t)for(const v of g(this,_s))u.unskip_effect(v,m=>{var b;(m.f&(ct|fs))!==0?u.schedule(m):ie(b=u,ce,Ys).call(b,[m])});u.activate();var n=new Set,l=new Map;for(var o of s)Ir(o,r,n,l);l=new Map;var c=[...u.current.keys()].filter(v=>this.current.has(v)?this.current.get(v)[0]!==v.v:!0);if(c.length>0)for(const v of g(this,Os))(v.f&(st|Le|Qs))===0&&Ka(v,c,l)&&((v.f&(fs|ct))!==0?(ke(v,Re),u.schedule(v)):g(u,Mt).add(v));if(g(u,Ue).length>0&&!g(u,Ht)){u.apply();for(var d of g(u,Ue))ie(_=u,ce,Ma).call(_,d,[],[]);X(u,Ue,[])}u.deactivate()}}}},Oa=function(){is===null?ya=is=this:(X(is,Bt,this),X(this,Rt,is)),is=this},os=function(){var t=g(this,Rt),s=g(this,Bt);t===null?ya=s:X(t,Bt,s),s===null?is=t:X(s,Rt,t),this.linked=!1};let as=oa;function vi(e){var t=Cs;Cs=!0;try{for(var s;;){if(oi(),J===null)return s;J.flush()}}finally{Cs=t}}function pi(){try{Nn()}catch(e){Dt(e,Fa)}}let St=null;function nr(e){var t=e.length;if(t!==0){for(var s=0;s0)){Jt.clear();for(const r of St){if((r.f&(st|Le))!==0)continue;const n=[r];let l=r.parent;for(;l!==null;)St.has(l)&&(St.delete(l),n.push(l)),l=l.parent;for(let o=n.length-1;o>=0;o--){const c=n[o];(c.f&(st|Le))===0&&ws(c)}}St.clear()}}St=null}}function Ir(e,t,s,a){if(!s.has(e)&&(s.add(e),e.reactions!==null))for(const r of e.reactions){const n=r.f;(n&Me)!==0?Ir(r,t,s,a):(n&(fs|ct))!==0&&(n&Re)===0&&Ka(r,t,a)&&(ke(r,Re),Ha(r))}}function Ka(e,t,s){const a=s.get(e);if(a!==void 0)return a;if(e.deps!==null)for(const r of e.deps){if(Yt.call(t,r))return!0;if((r.f&Me)!==0&&Ka(r,t,s))return s.set(r,!0),!0}return s.set(e,!1),!1}function Ha(e){J.schedule(e)}function qr(e,t){if(!((e.f&vt)!==0&&(e.f&ze)!==0)){(e.f&Re)!==0?t.d.push(e):(e.f&bt)!==0&&t.m.push(e),ke(e,ze);for(var s=e.first;s!==null;)qr(s,t),s=s.next}}function Nr(e){ke(e,ze);for(var t=e.first;t!==null;)Nr(t),t=t.next}function hi(e){let t=0,s=rs(0),a;return()=>{Wa()&&(i(s),Ya(()=>(t===0&&(a=ha(()=>e(()=>zs(s)))),t+=1,()=>{Zt(()=>{t-=1,t===0&&(a?.(),a=void 0,zs(s))})})))}}var _i=ts|ks;function gi(e,t,s,a){new mi(e,t,s,a)}var Ze,qa,Je,Ut,Ie,Qe,Pe,Ge,jt,Gt,Ot,gs,Ds,Ps,Tt,ca,Ee,bi,yi,wi,Da,Xs,Zs,Pa,La;class mi{constructor(t,s,a,r){Z(this,Ee);Ve(this,"parent");Ve(this,"is_pending",!1);Ve(this,"transform_error");Z(this,Ze);Z(this,qa,null);Z(this,Je);Z(this,Ut);Z(this,Ie);Z(this,Qe,null);Z(this,Pe,null);Z(this,Ge,null);Z(this,jt,null);Z(this,Gt,0);Z(this,Ot,0);Z(this,gs,!1);Z(this,Ds,new Set);Z(this,Ps,new Set);Z(this,Tt,null);Z(this,ca,hi(()=>(X(this,Tt,rs(g(this,Gt))),()=>{X(this,Tt,null)})));X(this,Ze,t),X(this,Je,s),X(this,Ut,n=>{var l=ae;l.b=this,l.f|=Ta,a(n)}),this.parent=ae.b,this.transform_error=r??this.parent?.transform_error??(n=>n),X(this,Ie,pa(()=>{ie(this,Ee,Da).call(this)},_i))}defer_effect(t){Pr(t,g(this,Ds),g(this,Ps))}is_rendered(){return!this.is_pending&&(!this.parent||this.parent.is_rendered())}has_pending_snippet(){return!!g(this,Je).pending}update_pending_count(t,s){ie(this,Ee,Pa).call(this,t,s),X(this,Gt,g(this,Gt)+t),!(!g(this,Tt)||g(this,gs))&&(X(this,gs,!0),Zt(()=>{X(this,gs,!1),g(this,Tt)&&ys(g(this,Tt),g(this,Gt))}))}get_effect_pending(){return g(this,ca).call(this),i(g(this,Tt))}error(t){if(!g(this,Je).onerror&&!g(this,Je).failed)throw t;J?.is_fork?(g(this,Qe)&&J.skip_effect(g(this,Qe)),g(this,Pe)&&J.skip_effect(g(this,Pe)),g(this,Ge)&&J.skip_effect(g(this,Ge)),J.on_fork_commit(()=>{ie(this,Ee,La).call(this,t)})):ie(this,Ee,La).call(this,t)}}Ze=new WeakMap,qa=new WeakMap,Je=new WeakMap,Ut=new WeakMap,Ie=new WeakMap,Qe=new WeakMap,Pe=new WeakMap,Ge=new WeakMap,jt=new WeakMap,Gt=new WeakMap,Ot=new WeakMap,gs=new WeakMap,Ds=new WeakMap,Ps=new WeakMap,Tt=new WeakMap,ca=new WeakMap,Ee=new WeakSet,bi=function(){try{X(this,Qe,et(()=>g(this,Ut).call(this,g(this,Ze))))}catch(t){this.error(t)}},yi=function(t){const s=g(this,Je).failed;s&&X(this,Ge,et(()=>{s(g(this,Ze),()=>t,()=>()=>{})}))},wi=function(){const t=g(this,Je).pending;t&&(this.is_pending=!0,X(this,Pe,et(()=>t(g(this,Ze)))),Zt(()=>{var s=X(this,jt,document.createDocumentFragment()),a=$t();s.append(a),X(this,Qe,ie(this,Ee,Zs).call(this,()=>et(()=>g(this,Ut).call(this,a)))),g(this,Ot)===0&&(g(this,Ze).before(s),X(this,jt,null),Qt(g(this,Pe),()=>{X(this,Pe,null)}),ie(this,Ee,Xs).call(this,J))}))},Da=function(){try{if(this.is_pending=this.has_pending_snippet(),X(this,Ot,0),X(this,Gt,0),X(this,Qe,et(()=>{g(this,Ut).call(this,g(this,Ze))})),g(this,Ot)>0){var t=X(this,jt,document.createDocumentFragment());Ja(g(this,Qe),t);const s=g(this,Je).pending;X(this,Pe,et(()=>s(g(this,Ze))))}else ie(this,Ee,Xs).call(this,J)}catch(s){this.error(s)}},Xs=function(t){this.is_pending=!1,t.transfer_effects(g(this,Ds),g(this,Ps))},Zs=function(t){var s=ae,a=te,r=Ye;wt(g(this,Ie)),nt(g(this,Ie)),bs(g(this,Ie).ctx);try{return as.ensure(),t()}catch(n){return Or(n),null}finally{wt(s),nt(a),bs(r)}},Pa=function(t,s){var a;if(!this.has_pending_snippet()){this.parent&&ie(a=this.parent,Ee,Pa).call(a,t,s);return}X(this,Ot,g(this,Ot)+t),g(this,Ot)===0&&(ie(this,Ee,Xs).call(this,s),g(this,Pe)&&Qt(g(this,Pe),()=>{X(this,Pe,null)}),g(this,jt)&&(g(this,Ze).before(g(this,jt)),X(this,jt,null)))},La=function(t){g(this,Qe)&&(Be(g(this,Qe)),X(this,Qe,null)),g(this,Pe)&&(Be(g(this,Pe)),X(this,Pe,null)),g(this,Ge)&&(Be(g(this,Ge)),X(this,Ge,null));var s=g(this,Je).onerror;let a=g(this,Je).failed;var r=!1,n=!1;const l=()=>{if(r){ii();return}r=!0,n&&Gn(),g(this,Ge)!==null&&Qt(g(this,Ge),()=>{X(this,Ge,null)}),ie(this,Ee,Zs).call(this,()=>{ie(this,Ee,Da).call(this)})},o=c=>{try{n=!0,s?.(c,l),n=!1}catch(d){Dt(d,g(this,Ie)&&g(this,Ie).parent)}a&&X(this,Ge,ie(this,Ee,Zs).call(this,()=>{try{return et(()=>{var d=ae;d.b=this,d.f|=Ta,a(g(this,Ze),()=>c,()=>l)})}catch(d){return Dt(d,g(this,Ie).parent),null}}))};Zt(()=>{var c;try{c=this.transform_error(t)}catch(d){Dt(d,g(this,Ie)&&g(this,Ie).parent);return}c!==null&&typeof c=="object"&&typeof c.then=="function"?c.then(o,d=>Dt(d,g(this,Ie)&&g(this,Ie).parent)):o(c)})};function xi(e,t,s,a){const r=Fs;var n=e.filter(v=>!v.settled);if(s.length===0&&n.length===0){a(t.map(r));return}var l=ae,o=ki(),c=n.length===1?n[0].promise:n.length>1?Promise.all(n.map(v=>v.promise)):null;function d(v){if((l.f&st)===0){o();try{a(v)}catch(m){Dt(m,l)}ta()}}var _=Br();if(s.length===0){c.then(()=>d(t.map(r))).finally(_);return}function u(){Promise.all(s.map(v=>Si(v))).then(v=>d([...t.map(r),...v])).catch(v=>Dt(v,l)).finally(_)}c?c.then(()=>{o(),u(),ta()}):u()}function ki(){var e=ae,t=te,s=Ye,a=J;return function(n=!0){wt(e),nt(t),bs(s),n&&(e.f&st)===0&&(a?.activate(),a?.apply())}}function ta(e=!0){wt(null),nt(null),bs(null),e&&J?.deactivate()}function Br(){var e=ae,t=e.b,s=J,a=t.is_rendered();return t.update_pending_count(1,s),s.increment(a,e),()=>{t.update_pending_count(-1,s),s.decrement(a,e)}}function Fs(e){var t=Me|Re;return ae!==null&&(ae.f|=ks),{ctx:Ye,deps:null,effects:null,equals:Ar,f:t,fn:e,reactions:null,rv:0,v:Ce,wv:0,parent:ae,ac:null}}const Bs=Symbol("obsolete");function Si(e,t,s){let a=ae;a===null&&Pn();var r=void 0,n=rs(Ce),l=!te,o=new Set;return Pi(()=>{var c=ae,d=Tr();r=d.promise;try{Promise.resolve(e()).then(d.resolve,m=>{m!==va&&d.reject(m)}).finally(ta)}catch(m){d.reject(m),ta()}var _=J;if(l){if((c.f&ns)!==0)var u=Br();if(a.b.is_rendered())_.async_deriveds.get(c)?.reject(Bs);else for(const m of o.values())m.reject(Bs);o.add(d),_.async_deriveds.set(c,d)}const v=(m,b=void 0)=>{u?.(),o.delete(d),b!==Bs&&(_.activate(),b?(n.f|=Pt,ys(n,b)):((n.f&Pt)!==0&&(n.f^=Pt),ys(n,m)),_.deactivate())};d.promise.then(v,m=>v(null,m||"unknown"))}),en(()=>{for(const c of o)c.reject(Bs)}),new Promise(c=>{function d(_){function u(){_===r?c(n):d(r)}_.then(u,u)}d(r)})}function j(e){const t=Fs(e);return cn(t),t}function Kr(e){const t=Fs(e);return t.equals=Fr,t}function Ei(e){var t=e.effects;if(t!==null){e.effects=null;for(var s=0;s0&&!Gr&&$i()}return t}function $i(){Gr=!1;for(const e of sa){(e.f&ze)!==0&&ke(e,bt);let t;try{t=qs(e)}catch{t=!0}t&&ws(e)}sa.clear()}function zs(e){K(e,e.v+1)}function Wr(e,t,s){var a=e.reactions;if(a!==null)for(var r=a.length,n=0;n{if(es===n)return o();var c=te,d=es;nt(null),dr(n);var _=o();return nt(c),dr(d),_};return a&&s.set("length",se(e.length)),new Proxy(e,{defineProperty(o,c,d){(!("value"in d)||d.configurable===!1||d.enumerable===!1||d.writable===!1)&&Kn();var _=s.get(c);return _===void 0?l(()=>{var u=se(d.value);return s.set(c,u),u}):K(_,d.value,!0),!0},deleteProperty(o,c){var d=s.get(c);if(d===void 0){if(c in o){const _=l(()=>se(Ce));s.set(c,_),zs(r)}}else K(d,Ce),zs(r);return!0},get(o,c,d){if(c===Xt)return e;var _=s.get(c),u=c in o;if(_===void 0&&(!u||ds(o,c)?.writable)&&(_=l(()=>{var m=Ne(u?o[c]:Ce),b=se(m);return b}),s.set(c,_)),_!==void 0){var v=i(_);return v===Ce?void 0:v}return Reflect.get(o,c,d)},getOwnPropertyDescriptor(o,c){var d=Reflect.getOwnPropertyDescriptor(o,c);if(d&&"value"in d){var _=s.get(c);_&&(d.value=i(_))}else if(d===void 0){var u=s.get(c),v=u?.v;if(u!==void 0&&v!==Ce)return{enumerable:!0,configurable:!0,value:v,writable:!0}}return d},has(o,c){if(c===Xt)return!0;var d=s.get(c),_=d!==void 0&&d.v!==Ce||Reflect.has(o,c);if(d!==void 0||ae!==null&&(!_||ds(o,c)?.writable)){d===void 0&&(d=l(()=>{var v=_?Ne(o[c]):Ce,m=se(v);return m}),s.set(c,d));var u=i(d);if(u===Ce)return!1}return _},set(o,c,d,_){var u=s.get(c),v=c in o;if(a&&c==="length")for(var m=d;mse(Ce)),s.set(m+"",b))}if(u===void 0)(!v||ds(o,c)?.writable)&&(u=l(()=>se(void 0)),K(u,Ne(d)),s.set(c,u));else{v=u.v!==Ce;var w=l(()=>Ne(d));K(u,w)}var h=Reflect.getOwnPropertyDescriptor(o,c);if(h?.set&&h.set.call(_,d),!v){if(a&&typeof c=="string"){var y=s.get("length"),k=Number(c);Number.isInteger(k)&&k>=y.v&&K(y,k+1)}zs(r)}return!0},ownKeys(o){i(r);var c=Reflect.ownKeys(o).filter(u=>{var v=s.get(u);return v===void 0||v.v!==Ce});for(var[d,_]of s)_.v!==Ce&&!(d in o)&&c.push(d);return c},setPrototypeOf(){Hn()}})}function ir(e){try{if(e!==null&&typeof e=="object"&&Xt in e)return e[Xt]}catch{}return e}function Ci(e,t){return Object.is(ir(e),ir(t))}var lr,Yr,Xr,Zr;function zi(){if(lr===void 0){lr=window,Yr=/Firefox/.test(navigator.userAgent);var e=Element.prototype,t=Node.prototype,s=Text.prototype;Xr=ds(t,"firstChild").get,Zr=ds(t,"nextSibling").get,ar(e)&&(e[Ca]=void 0,e[Us]=null,e[za]=void 0,e.__e=void 0),ar(s)&&(s[js]=void 0)}}function $t(e=""){return document.createTextNode(e)}function aa(e){return Xr.call(e)}function Is(e){return Zr.call(e)}function f(e,t){return aa(e)}function yt(e,t=!1){{var s=aa(e);return s instanceof Comment&&s.data===""?Is(s):s}}function p(e,t=1,s=!1){let a=e;for(;t--;)a=Is(a);return a}function Ai(e){e.textContent=""}function Jr(){return!1}function Fi(e,t,s){return document.createElementNS(zr,e,void 0)}let or=!1;function Ri(){or||(or=!0,document.addEventListener("reset",e=>{Promise.resolve().then(()=>{if(!e.defaultPrevented)for(const t of e.target.elements)t[Gs]?.()})},{capture:!0}))}function Ga(e){var t=te,s=ae;nt(null),wt(null);try{return e()}finally{nt(t),wt(s)}}function Qr(e,t,s,a=s){e.addEventListener(t,()=>Ga(s));const r=e[Gs];r?e[Gs]=()=>{r(),a(!0)}:e[Gs]=()=>a(!0),Ri()}function Mi(e){ae===null&&(te===null&&qn(),In()),zt&&Vn()}function Oi(e,t){var s=t.last;s===null?t.last=t.first=e:(s.next=e,e.prev=s,t.last=e)}function At(e,t){var s=ae;s!==null&&(s.f&Le)!==0&&(e|=Le);var a={ctx:Ye,deps:null,nodes:null,f:e|Re|tt,first:null,fn:t,last:null,next:null,parent:s,b:s&&s.b,prev:null,teardown:null,wv:0,ac:null};J?.register_created_effect(a);var r=a;if((e&ms)!==0)cs!==null?cs.push(a):as.ensure().schedule(a);else if(t!==null){try{ws(a)}catch(l){throw Be(a),l}r.deps===null&&r.teardown===null&&r.nodes===null&&r.first===r.last&&(r.f&ks)===0&&(r=r.first,(e&ct)!==0&&(e&ts)!==0&&r!==null&&(r.f|=ts))}if(r!==null&&(r.parent=s,s!==null&&Oi(r,s),te!==null&&(te.f&Me)!==0&&(e&Lt)===0)){var n=te;(n.effects??(n.effects=[])).push(r)}return a}function Wa(){return te!==null&&!ft}function en(e){const t=At(ua,null);return ke(t,ze),t.teardown=e,t}function tn(e){Mi();var t=ae.f,s=!te&&(t&vt)!==0&&(t&ns)===0;if(s){var a=Ye;(a.e??(a.e=[])).push(e)}else return sn(e)}function sn(e){return At(ms|Rn,e)}function Di(e){as.ensure();const t=At(Lt|ks,e);return(s={})=>new Promise(a=>{s.outro?Qt(t,()=>{Be(t),a(void 0)}):(Be(t),a(void 0))})}function an(e){return At(ms,e)}function Pi(e){return At(fs|ks,e)}function Ya(e,t=0){return At(ua|t,e)}function q(e,t=[],s=[],a=[]){xi(a,t,s,r=>{At(ua,()=>e(...r.map(i)))})}function pa(e,t=0){var s=At(ct|t,e);return s}function et(e){return At(vt|ks,e)}function rn(e){var t=e.teardown;if(t!==null){const s=zt,a=te;cr(!0),nt(null);try{t.call(null)}finally{cr(s),nt(a)}}}function Xa(e,t=!1){var s=e.first;for(e.first=e.last=null;s!==null;){const r=s.ac;r!==null&&Ga(()=>{r.abort(va)});var a=s.next;(s.f&Lt)!==0?s.parent=null:Be(s,t),s=a}}function Li(e){for(var t=e.first;t!==null;){var s=t.next;(t.f&vt)===0&&Be(t),t=s}}function Be(e,t=!0){var s=!1;(t||(e.f&Fn)!==0)&&e.nodes!==null&&e.nodes.end!==null&&(Vi(e.nodes.start,e.nodes.end),s=!0),ke(e,$a),Xa(e,t&&!s),Rs(e,0);var a=e.nodes&&e.nodes.t;if(a!==null)for(const n of a)n.stop();rn(e),e.f^=$a,e.f|=st;var r=e.parent;r!==null&&r.first!==null&&nn(e),e.next=e.prev=e.teardown=e.ctx=e.deps=e.fn=e.nodes=e.ac=e.b=null}function Vi(e,t){for(;e!==null;){var s=e===t?null:Is(e);e.remove(),e=s}}function nn(e){var t=e.parent,s=e.prev,a=e.next;s!==null&&(s.next=a),a!==null&&(a.prev=s),t!==null&&(t.first===e&&(t.first=a),t.last===e&&(t.last=s))}function Qt(e,t,s=!0){var a=[];ln(e,a,!0);var r=()=>{s&&Be(e),t&&t()},n=a.length;if(n>0){var l=()=>--n||r();for(var o of a)o.out(l)}else r()}function ln(e,t,s){if((e.f&Le)===0){e.f^=Le;var a=e.nodes&&e.nodes.t;if(a!==null)for(const o of a)(o.is_global||s)&&t.push(o);for(var r=e.first;r!==null;){var n=r.next;if((r.f&Lt)===0){var l=(r.f&ts)!==0||(r.f&vt)!==0&&(e.f&ct)!==0;ln(r,t,l?s:!1)}r=n}}}function Za(e){on(e,!0)}function on(e,t){if((e.f&Le)!==0){e.f^=Le,(e.f&ze)===0&&(ke(e,Re),as.ensure().schedule(e));for(var s=e.first;s!==null;){var a=s.next,r=(s.f&ts)!==0||(s.f&vt)!==0;on(s,r?t:!1),s=a}var n=e.nodes&&e.nodes.t;if(n!==null)for(const l of n)(l.is_global||t)&&l.in()}}function Ja(e,t){if(e.nodes)for(var s=e.nodes.start,a=e.nodes.end;s!==null;){var r=s===a?null:Is(s);t.append(s),s=r}}let Js=!1,zt=!1;function cr(e){zt=e}let te=null,ft=!1;function nt(e){te=e}let ae=null;function wt(e){ae=e}let at=null;function cn(e){te!==null&&(at===null?at=[e]:at.push(e))}let qe=null,He=0,Xe=null;function Ii(e){Xe=e}let dn=1,qt=0,es=qt;function dr(e){es=e}function fn(){return++dn}function qs(e){var t=e.f;if((t&Re)!==0)return!0;if(t&Me&&(e.f&=~ss),(t&bt)!==0){for(var s=e.deps,a=s.length,r=0;re.wv)return!0}(t&tt)!==0&&dt===null&&ke(e,ze)}return!1}function un(e,t,s=!0){var a=e.reactions;if(a!==null&&!(at!==null&&Yt.call(at,e)))for(var r=0;r{e.ac.abort(va)}),e.ac=null);try{e.f|=ea;var _=e.fn,u=_();e.f|=ns;var v=e.deps,m=J?.is_fork;if(qe!==null){var b;if(m||Rs(e,He),v!==null&&He>0)for(v.length=He+qe.length,b=0;b{throw h});throw v}}finally{e[Nt]=t,delete e.currentTarget,nt(_),wt(u)}}}const Hi=globalThis?.window?.trustedTypes&&globalThis.window.trustedTypes.createPolicy("svelte-trusted-html",{createHTML:e=>e});function Ui(e){return Hi?.createHTML(e)??e}function Gi(e){var t=Fi("template");return t.innerHTML=Ui(e.replaceAll("","")),t.content}function ra(e,t){var s=ae;s.nodes===null&&(s.nodes={start:e,end:t,a:null,t:null})}function R(e,t){var s=(t&si)!==0,a=(t&ai)!==0,r,n=!e.startsWith("");return()=>{r===void 0&&(r=Gi(n?e:""+e),s||(r=aa(r)));var l=a||Yr?document.importNode(r,!0):r.cloneNode(!0);if(s){var o=aa(l),c=l.lastChild;ra(o,c)}else ra(l,l);return l}}function Wi(e=""){{var t=$t(e+"");return ra(t,t),t}}function vr(){var e=document.createDocumentFragment(),t=document.createComment(""),s=$t();return e.append(t,s),ra(t,s),e}function z(e,t){e!==null&&e.before(t)}function F(e,t){var s=t==null?"":typeof t=="object"?`${t}`:t;s!==(e[js]??(e[js]=e.nodeValue))&&(e[js]=s,e.nodeValue=`${s}`)}function Yi(e,t){return Xi(e,t)}const Ks=new Map;function Xi(e,{target:t,anchor:s,props:a={},events:r,context:n,intro:l=!0,transformError:o}){zi();var c=void 0,d=Di(()=>{var _=s??t.appendChild($t());gi(_,{pending:()=>{}},m=>{be({});var b=Ye;n&&(b.c=n),r&&(a.$$events=r),c=e(m,a)||{},ye()},o);var u=new Set,v=m=>{for(var b=0;b{for(var m of u)for(const h of[t,document]){var b=Ks.get(h),w=b.get(m);--w==0?(h.removeEventListener(m,ur),b.delete(m),b.size===0&&Ks.delete(h)):b.set(m,w)}Va.delete(v),_!==s&&_.parentNode?.removeChild(_)}});return Zi.set(c,d),c}let Zi=new WeakMap;var lt,gt,We,Wt,Ls,Vs,da;class gn{constructor(t,s=!0){Ve(this,"anchor");Z(this,lt,new Map);Z(this,gt,new Map);Z(this,We,new Map);Z(this,Wt,new Set);Z(this,Ls,!0);Z(this,Vs,t=>{if(g(this,lt).has(t)){var s=g(this,lt).get(t),a=g(this,gt).get(s);if(a)Za(a),g(this,Wt).delete(s);else{var r=g(this,We).get(s);r&&(g(this,gt).set(s,r.effect),g(this,We).delete(s),r.fragment.lastChild.remove(),this.anchor.before(r.fragment),a=r.effect)}for(const[n,l]of g(this,lt)){if(g(this,lt).delete(n),n===t)break;const o=g(this,We).get(l);o&&(Be(o.effect),g(this,We).delete(l))}for(const[n,l]of g(this,gt)){if(n===s||g(this,Wt).has(n))continue;const o=()=>{if(Array.from(g(this,lt).values()).includes(n)){var d=document.createDocumentFragment();Ja(l,d),d.append($t()),g(this,We).set(n,{effect:l,fragment:d})}else Be(l);g(this,Wt).delete(n),g(this,gt).delete(n)};g(this,Ls)||!a?(g(this,Wt).add(n),Qt(l,o,!1)):o()}}});Z(this,da,t=>{g(this,lt).delete(t);const s=Array.from(g(this,lt).values());for(const[a,r]of g(this,We))s.includes(a)||(Be(r.effect),g(this,We).delete(a))});this.anchor=t,X(this,Ls,s)}ensure(t,s){var a=J,r=Jr();if(s&&!g(this,gt).has(t)&&!g(this,We).has(t))if(r){var n=document.createDocumentFragment(),l=$t();n.append(l),g(this,We).set(t,{effect:et(()=>s(l)),fragment:n})}else g(this,gt).set(t,et(()=>s(this.anchor)));if(g(this,lt).set(a,t),r){for(const[o,c]of g(this,gt))o===t?a.unskip_effect(c):a.skip_effect(c);for(const[o,c]of g(this,We))o===t?a.unskip_effect(c.effect):a.skip_effect(c.effect);a.oncommit(g(this,Vs)),a.ondiscard(g(this,da))}else g(this,Vs).call(this,a)}}lt=new WeakMap,gt=new WeakMap,We=new WeakMap,Wt=new WeakMap,Ls=new WeakMap,Vs=new WeakMap,da=new WeakMap;function fe(e,t,s=!1){var a=new gn(e),r=s?ts:0;function n(l,o){a.ensure(l,o)}pa(()=>{var l=!1;t((o,c=0)=>{l=!0,n(c,o)}),l||n(-1,null)},r)}function Ss(e,t){return t}function Ji(e,t,s){for(var a=[],r=t.length,n,l=t.length,o=0;o{if(n){if(n.pending.delete(u),n.done.add(u),n.pending.size===0){var v=e.outrogroups;Ia(e,fa(n.done)),v.delete(n),v.size===0&&(e.outrogroups=null)}}else l-=1},!1)}if(l===0){var c=a.length===0&&s!==null;if(c){var d=s,_=d.parentNode;Ai(_),_.append(d),e.items.clear()}Ia(e,t,!c)}else n={pending:new Set(t),done:new Set},(e.outrogroups??(e.outrogroups=new Set)).add(n)}function Ia(e,t,s=!0){var a;if(e.pending.size>0){a=new Set;for(const l of e.pending.values())for(const o of l)a.add(e.items.get(o).e)}for(var r=0;r{var A=s();return Na(A)?A:A==null?[]:fa(A)}),v,m=new Map,b=!0;function w(A){(k.effect.f&st)===0&&(k.pending.delete(A),k.fallback=_,Qi(k,v,l,t,a),_!==null&&(v.length===0?(_.f&mt)===0?Za(_):(_.f^=mt,$s(_,null,l)):Qt(_,()=>{_=null})))}function h(A){k.pending.delete(A)}var y=pa(()=>{v=i(u);for(var A=v.length,M=new Set,N=J,E=Jr(),C=0;Cn(l)):(_=et(()=>n(pr??(pr=$t()))),_.f|=mt)),A>M.size&&Ln(),!b)if(m.set(N,M),E){for(const[D,x]of o)M.has(D)||N.skip_effect(x.e);N.oncommit(w),N.ondiscard(h)}else w(N);i(u)}),k={effect:y,items:o,pending:m,outrogroups:null,fallback:_};b=!1}function Es(e){for(;e!==null&&(e.f&vt)===0;)e=e.next;return e}function Qi(e,t,s,a,r){var n=(a&Xn)!==0,l=t.length,o=e.items,c=Es(e.effect.first),d,_=null,u,v=[],m=[],b,w,h,y;if(n)for(y=0;y0){var V=(a&Cr)!==0&&l===0?s:null;if(n){for(y=0;y{if(u!==void 0)for(h of u)h.nodes?.a?.apply()})}function el(e,t,s,a,r,n,l,o){var c=(l&Wn)!==0?(l&Zn)===0?Ti(s,!1,!1):rs(s):null,d=(l&Yn)!==0?rs(r):null;return{v:c,i:d,e:et(()=>(n(t,c??s,d??r,o),()=>{e.delete(a)}))}}function $s(e,t,s){if(e.nodes)for(var a=e.nodes.start,r=e.nodes.end,n=t&&(t.f&mt)===0?t.nodes.start:s;a!==null;){var l=Is(a);if(n.before(a),a===r)return;a=l}}function Ft(e,t,s){t===null?e.effect.first=s:t.next=s,s===null?e.effect.last=t:s.prev=t}function mn(e,t,...s){var a=new gn(e);pa(()=>{const r=t()??null;a.ensure(r,r&&(n=>r(n,...s)))},ts)}const hr=[...` +\r\f \v\uFEFF`];function tl(e,t,s){var a=e==null?"":""+e;if(s){for(var r of Object.keys(s))if(s[r])a=a?a+" "+r:r;else if(a.length)for(var n=r.length,l=0;(l=a.indexOf(r,l))>=0;){var o=l+n;(l===0||hr.includes(a[l-1]))&&(o===a.length||hr.includes(a[o]))?a=(l===0?"":a.substring(0,l))+a.substring(o+1):l=o}}return a===""?null:a}function _r(e,t=!1){var s=t?" !important;":";",a="";for(var r of Object.keys(e)){var n=e[r];n!=null&&n!==""&&(a+=" "+r+": "+n+s)}return a}function xa(e){return e[0]!=="-"||e[1]!=="-"?e.toLowerCase():e}function sl(e,t){if(t){var s="",a,r;if(Array.isArray(t)?(a=t[0],r=t[1]):a=t,e){e=String(e).replaceAll(/\s*\/\*.*?\*\/\s*/g,"").trim();var n=!1,l=0,o=!1,c=[];a&&c.push(...Object.keys(a).map(xa)),r&&c.push(...Object.keys(r).map(xa));var d=0,_=-1;const w=e.length;for(var u=0;u{Qa(e,e.__value)});t.observe(e,{childList:!0,subtree:!0,attributes:!0,attributeFilter:["value"]}),en(()=>{t.disconnect()})}function na(e,t,s=t){var a=new WeakSet,r=!0;Qr(e,"change",n=>{var l=n?"[selected]":":checked",o;if(e.multiple)o=[].map.call(e.querySelectorAll(l),As);else{var c=e.querySelector(l)??e.querySelector("option:not([disabled])");o=c&&As(c)}s(o),e.__value=o,J!==null&&a.add(J)}),an(()=>{var n=t();if(e===document.activeElement){var l=J;if(a.has(l))return}if(Qa(e,n,r),r&&n===void 0){var o=e.querySelector(":checked");o!==null&&(n=As(o),s(n))}e.__value=n,r=!1}),bn(e)}function As(e){return"__value"in e?e.__value:e.value}const al=Symbol("is custom element"),rl=Symbol("is html"),nl=Dn?"progress":"PROGRESS";function ia(e,t){var s=yn(e);s.value===(s.value=t??void 0)||e.value===t&&(t!==0||e.nodeName!==nl)||(e.value=t??"")}function Q(e,t,s,a){var r=yn(e);r[t]!==(r[t]=s)&&(t==="loading"&&(e[On]=s),s==null?e.removeAttribute(t):typeof s!="string"&&il(e).includes(t)?e[t]=s:e.setAttribute(t,s))}function yn(e){return e[Us]??(e[Us]={[al]:e.nodeName.includes("-"),[rl]:e.namespaceURI===zr})}var gr=new Map;function il(e){var t=e.getAttribute("is")||e.nodeName,s=gr.get(t);if(s)return s;gr.set(t,s=[]);for(var a,r=e,n=Element.prototype;n!==r;){a=$n(r);for(var l in a)a[l].set&&l!=="innerHTML"&&l!=="textContent"&&l!=="innerText"&&s.push(l);r=Er(r)}return s}function Ct(e,t,s=t){var a=new WeakSet;Qr(e,"input",async r=>{var n=r?e.defaultValue:e.value;if(n=Sa(e)?Ea(n):n,s(n),J!==null&&a.add(J),await Ni(),n!==(n=t())){var l=e.selectionStart,o=e.selectionEnd,c=e.value.length;if(e.value=n??"",o!==null){var d=e.value.length;l===o&&o===c&&d>c?(e.selectionStart=d,e.selectionEnd=d):(e.selectionStart=l,e.selectionEnd=Math.min(o,d))}}}),ha(t)==null&&e.value&&(s(Sa(e)?Ea(e.value):e.value),J!==null&&a.add(J)),Ya(()=>{var r=t();if(e===document.activeElement){var n=J;if(a.has(n))return}Sa(e)&&r===Ea(e.value)||e.type==="date"&&!r&&!e.value||r!==e.value&&(e.value=r??"")})}function Sa(e){var t=e.type;return t==="number"||t==="range"}function Ea(e){return e===""?null:+e}function ja(e,t){return e===t||e?.[Xt]===t}function ll(e={},t,s,a){var r=Ye.r,n=ae;return an(()=>{var l,o;return Ya(()=>{l=o,o=[],ha(()=>{ja(s(...o),e)||(t(e,...o),l&&ja(s(...l),e)&&t(null,...l))})}),()=>{let c=n;for(;c!==r&&c.parent!==null&&c.parent.f&$a;)c=c.parent;const d=()=>{o&&ja(s(...o),e)&&t(null,...o)},_=c.teardown;c.teardown=()=>{d(),_?.()}}}),e}function me(e,t,s,a){var r=!0,n=(s&ei)!==0,l=(s&ti)!==0,o=a,c=!0,d=void 0,_=()=>l&&r?(d??(d=Fs(a)),i(d)):(c&&(c=!1,o=l?ha(a):a),o);let u;if(n){var v=Xt in e||Mn in e;u=ds(e,t)?.set??(v&&t in e?M=>e[t]=M:void 0)}var m,b=!1;n?[m,b]=di(()=>e[t]):m=e[t],m===void 0&&a!==void 0&&(m=_(),u&&(Bn(),u(m)));var w;if(w=()=>{var M=e[t];return M===void 0?_():(c=!0,M)},(s&Qn)===0)return w;if(u){var h=e.$$legacy;return(function(M,N){return arguments.length>0?((!N||h||b)&&u(N?w():M),M):w()})}var y=!1,k=((s&Jn)!==0?Fs:Kr)(()=>(y=!1,w()));n&&i(k);var A=ae;return(function(M,N){if(arguments.length>0){const E=N?i(k):n?Ne(M):M;return K(k,E),y=!0,o!==void 0&&(o=E),M}return zt&&y||(A.f&st)!==0?k.v:i(k)})}const ol="5";var Sr;typeof window<"u"&&((Sr=window.__svelte??(window.__svelte={})).v??(Sr.v=new Set)).add(ol);const Vt=typeof window<"u"&&window.slashedBricksApp?window.slashedBricksApp:{defaults:{},settings:{},tabs:{},rest:{url:"",nonce:""}},re={defaults:Vt.defaults||{},tabs:Vt.tabs||{},rest:Vt.rest||{url:"",nonce:""},inventory:Vt.inventory||{variables:[],sf_classes:[],is_classes:[]},pluginSettings:Vt.pluginSettings||{},versions:Vt.versions||{plugin:"",framework:""}},H=Ne(structuredClone(Vt.settings||{})),G=Ne({activeTab:cl(re.tabs)||"colors",dirty:!1,saving:!1,lastSavedAt:null,error:""});function cl(e){for(const t in e)return t;return null}function er(){G.dirty=!0,G.error=""}function mr(e){H[e]&&delete H[e]}function dl(e,t){const s=H[e];if(!s)return"";const a=s[t];return a==null?"":String(a)}function xs(e,t,s){H[e]||(H[e]={}),s===""||s===null||s===void 0||typeof s=="string"&&s.trim()===""?delete H[e][t]:H[e][t]=String(s),er()}var fl=R(''),ul=R('

                ');function vl(e,t){be(t,!0);var s=ul();ne(s,21,()=>Object.entries(re.tabs),([a,r])=>a,(a,r)=>{var n=j(()=>ot(i(r),2));let l=()=>i(n)[0],o=()=>i(n)[1];var c=fl();let d;var _=f(c);q(()=>{d=rt(c,1,"tab-nav__btn svelte-yyiz68",null,d,{active:G.activeTab===l()}),F(_,o())}),_e("click",c,()=>G.activeTab=l()),z(a,c)}),z(e,s),ye()}Oe(["click"]);var pl=R(' '),hl=R(' ',1),_l=R(''),gl=R('
                ');function Hs(e,t){be(t,!0);let s=me(t,"hexHint",3,""),a=me(t,"rawHint",3,""),r=me(t,"cssVar",3,"");const n=/^#([0-9a-fA-F]{3,4}|[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$/,l=(()=>{const D=(H.colors?.[t.storeKey]??"").trim(),x=D===""||n.test(D);return{mode:x?"hex":"raw",hex:x?D:"",raw:x?"":D}})();let o=se(Ne(l.mode)),c=se(Ne(l.hex)),d=se(Ne(l.raw));function _(){H.colors||(H.colors={});const D=i(d).trim(),x=i(c).trim(),S=i(o)==="raw"?D:x;S===""?delete H.colors[t.storeKey]:H.colors[t.storeKey]=S,er()}function u(){i(o)==="hex"?(K(o,"raw"),K(c,"")):(K(o,"hex"),K(d,"")),_()}const v=j(()=>(i(o)==="raw"?i(d):i(c))||s()||"transparent");var m=gl(),b=f(m),w=f(b),h=f(w),y=p(w,2);{var k=D=>{var x=pl(),S=f(x);q(()=>F(S,r())),z(D,x)};fe(y,D=>{r()&&D(k)})}var A=p(b,2),M=f(A);let N;var E=p(M,2);{var C=D=>{var x=hl(),S=yt(x),T=p(S,2);q(()=>{Q(S,"id",t.storeKey),Q(T,"placeholder",s())}),_e("input",S,_),Ct(S,()=>i(c),P=>K(c,P)),_e("input",T,_),Ct(T,()=>i(c),P=>K(c,P)),z(D,x)},O=D=>{var x=_l();q(()=>{Q(x,"id",t.storeKey),Q(x,"placeholder",a())}),_e("input",x,_),Ct(x,()=>i(d),S=>K(d,S)),z(D,x)};fe(E,D=>{i(o)==="hex"?D(C):D(O,-1)})}var V=p(E,2),$=f(V);q(()=>{Q(w,"for",t.storeKey),F(h,t.label),N=ue(M,"",N,{background:i(v)}),F($,i(o)==="hex"?"Advanced (oklch / raw)":"Use HEX picker")}),_e("click",V,u),z(e,m),ye()}Oe(["input","click"]);var ml=R('
                '),bl=R('
                ');function _a(e,t){be(t,!0);let s=se(!1);const a=`adv-body-${Math.random().toString(36).slice(2,9)}`;var r=bl(),n=f(r),l=p(f(n));let o;var c=f(l),d=p(n,2);{var _=u=>{var v=ml(),m=f(v);mn(m,()=>t.children),q(()=>Q(v,"id",a)),z(u,v)};fe(d,u=>{i(s)&&u(_)})}q(()=>{Q(n,"aria-expanded",i(s)),Q(n,"aria-controls",a),o=rt(l,1,"advanced-section__arrow",null,o,{open:i(s)}),F(c,i(s)?"▲":"▼")}),_e("click",n,()=>K(s,!i(s))),z(e,r),ye()}Oe(["click"]);var yl=R('

                Brand Colors — Dark Mode

                Status Colors — Dark Mode

                ',1),wl=R(`

                Status Colors — Light Mode

                The framework auto-derives dark mode from light source colors using CSS relative color syntax + (oklch(from light clamp(0.65, 0.95−l·0.5, 0.88) c·0.9 h)). Turn this on only + when you need precise per-color dark overrides; auto-derivation is usually good enough.

                `,1),xl=R(`

                Brand Colors — Light Mode

                Pick a color via the HEX input, or switch to Advanced to paste any CSS color value (oklch, rgb, hsl, var(...), etc). Whatever you save is fed - straight into the framework as the source of the brand scale.

                `);function wl(e,t){ye(t,!0);const s=re.defaults?.colors??{},a=o=>o.charAt(0).toUpperCase()+o.slice(1),r=Object.entries(s.brand??{});var n=bl(),c=p(f(n),4);ne(c,21,()=>r,([o,d])=>o,(o,d)=>{var _=E(()=>lt(i(d),2));let u=()=>i(_)[0],v=()=>i(_)[1];{let m=E(()=>`brand_${u()}`),y=E(()=>a(u())),w=E(()=>s.brand_hex_hints?.[u()]??""),h=E(()=>`--sf-color-${u()}-light`);Hs(o,{get storeKey(){return i(m)},get label(){return i(y)},get hexHint(){return i(w)},get rawHint(){return v()},get cssVar(){return i(h)}})}});var l=p(c,2);_a(l,{children:(o,d)=>{var _=yl(),u=p(zt(_),2);ne(u,21,()=>Object.entries(s.status??{}),([y,w])=>y,(y,w)=>{var h=E(()=>lt(i(w),2));let b=()=>i(h)[0],k=()=>i(h)[1];{let j=E(()=>`status_${b()}`),F=E(()=>a(b())),V=E(()=>s.status_hex_hints?.[b()]??""),S=E(()=>`--sf-color-${b()}-light`);Hs(y,{get storeKey(){return i(j)},get label(){return i(F)},get hexHint(){return i(V)},get rawHint(){return k()},get cssVar(){return i(S)}})}});var v=p(u,6);ne(v,21,()=>Object.entries(s.brand_dark??s.brand??{}),([y])=>y,(y,w)=>{var h=E(()=>lt(i(w),1));let b=()=>i(h)[0];{let k=E(()=>`brand_dark_${b()}`),j=E(()=>a(b())),F=E(()=>s.brand_dark_hex_hints?.[b()]??""),V=E(()=>s.brand_dark?.[b()]??""),S=E(()=>`--sf-color-${b()}-dark`);Hs(y,{get storeKey(){return i(k)},get label(){return i(j)},get hexHint(){return i(F)},get rawHint(){return i(V)},get cssVar(){return i(S)}})}});var m=p(v,6);ne(m,21,()=>Object.entries(s.status_dark??s.status??{}),([y])=>y,(y,w)=>{var h=E(()=>lt(i(w),1));let b=()=>i(h)[0];{let k=E(()=>`status_dark_${b()}`),j=E(()=>a(b())),F=E(()=>s.status_dark_hex_hints?.[b()]??""),V=E(()=>s.status_dark?.[b()]??""),S=E(()=>`--sf-color-${b()}-dark`);Hs(y,{get storeKey(){return i(k)},get label(){return i(j)},get hexHint(){return i(F)},get rawHint(){return i(V)},get cssVar(){return i(S)}})}}),z(o,_)},$$slots:{default:!0}}),z(e,n),be()}var xl=A(''),kl=A(' '),Sl=A(' '),El=A('

                '),jl=A('
                ');function ga(e,t){let s=me(t,"cssVar",3,""),a=me(t,"fieldId",3,""),r=me(t,"description",3,"");var n=jl(),c=f(n),l=f(c);{var o=h=>{var b=xl(),k=f(b);q(()=>{Q(b,"for",a()),C(k,t.label)}),z(h,b)},d=h=>{var b=kl(),k=f(b);q(()=>C(k,t.label)),z(h,b)};ue(l,h=>{a()?h(o):h(d,-1)})}var _=p(l,2);{var u=h=>{var b=Sl(),k=f(b);q(()=>C(k,s())),z(h,b)};ue(_,h=>{s()&&h(u)})}var v=p(c,2),m=f(v);mn(m,()=>t.children??jr);var y=p(m,2);{var w=h=>{var b=El(),k=f(b);q(()=>C(k,r())),z(h,b)};ue(y,h=>{r()&&h(w)})}z(e,n)}var Tl=A('');function la(e,t){ye(t,!0);let s=me(t,"default",3,""),a=me(t,"cssVar",3,""),r=me(t,"description",3,""),n=me(t,"mono",3,!1),c=me(t,"width",3,"320px");const l=E(()=>H[t.section]?.[t.fieldKey]===void 0||H[t.section]?.[t.fieldKey]===null?"":String(H[t.section][t.fieldKey]));function o(d){Rs(t.section,t.fieldKey,d.currentTarget.value)}ga(e,{get label(){return t.label},get cssVar(){return a()},get fieldId(){return t.fieldKey},get description(){return r()},children:(d,_)=>{var u=Tl();let v,m;q(y=>{Q(u,"id",t.fieldKey),v=ut(u,1,"text svelte-j8yw6l",null,v,{mono:n()}),ia(u,i(l)),Q(u,"placeholder",y),m=fe(u,"",m,{width:c()})},[()=>String(s())]),ge("input",u,o),z(d,u)},$$slots:{default:!0}}),be()}Le(["input"]);var $l=A(' '),zl=A(' ',1);function ft(e,t){ye(t,!0);let s=me(t,"min",3,void 0),a=me(t,"max",3,void 0),r=me(t,"step",3,void 0),n=me(t,"default",3,""),c=me(t,"cssVar",3,""),l=me(t,"unit",3,""),o=me(t,"description",3,""),d=me(t,"width",3,"120px");const _=E(()=>H[t.section]?.[t.fieldKey]===void 0||H[t.section]?.[t.fieldKey]===null?"":String(H[t.section][t.fieldKey]));function u(v){Rs(t.section,t.fieldKey,v.currentTarget.value)}ga(e,{get label(){return t.label},get cssVar(){return c()},get fieldId(){return t.fieldKey},get description(){return o()},children:(v,m)=>{var y=zl(),w=zt(y);let h;var b=p(w,2);{var k=j=>{var F=$l(),V=f(F);q(()=>C(V,l())),z(j,F)};ue(b,j=>{l()&&j(k)})}q(j=>{Q(w,"id",t.fieldKey),Q(w,"min",s()),Q(w,"max",a()),Q(w,"step",r()),ia(w,i(_)),Q(w,"placeholder",j),h=fe(w,"",h,{width:d()})},[()=>String(n())]),ge("input",w,u),z(v,y)},$$slots:{default:!0}}),be()}Le(["input"]);var Cl=A('
                '),Al=A('
                '),Fl=A('

                Display Scale

                '),Rl=A('

                Live Scale Preview

                Text Scale

                ');function Ml(e,t){ye(t,!0);const s=16,a=360,r=1520;let n=se(r);const l=(re.defaults?.typography??{}).font_sizes??{};function o(M){const P=H.typography??{},x=l[M]??{},T=P[`size_${M}_min`],$=P[`size_${M}_max`],D=T!==void 0&&T!==""?parseFloat(T):x.min??.75,I=$!==void 0&&$!==""?parseFloat($):x.max??1;return{min:D,max:I}}const d=E(()=>{const M=Math.max(0,Math.min(1,(i(n)-a)/(r-a))),P={};for(const x of Object.keys(l)){const{min:T,max:$}=o(x),D=T+($-T)*M,I=D*s;P[x]={sizePx:I,sizeRem:D.toFixed(3)}}return P}),_=["2xs","xs","s","m","l","xl","2xl","3xl","4xl"],u=["display-s","display-m","display-l"],v=E(()=>_.filter(M=>l[M])),m=E(()=>u.filter(M=>l[M]));var y=Rl(),w=f(y),h=p(f(w),2),b=f(h);b.textContent="360px";var k=p(b,2);Q(k,"min",a),Q(k,"max",r);var j=p(k,2);j.textContent="1520px";var F=p(j,2),V=f(F),S=p(w,2),R=p(f(S),2);ne(R,16,()=>i(v),M=>M,(M,P)=>{const x=E(()=>i(d)[P]);var T=vr(),$=zt(T);{var D=I=>{var Y=Cl(),L=f(Y),G=f(L),W=p(L,2);let le;var ve=f(W),oe=p(W,2),pe=f(oe);q((B,ee)=>{C(G,P),le=fe(W,"",le,B),C(ve,P),C(pe,`${i(x).sizeRem??""}rem / ${ee??""}px`)},[()=>({"font-size":`${i(x).sizePx.toFixed(1)??""}px`}),()=>i(x).sizePx.toFixed(1)]),z(I,Y)};ue($,I=>{i(x)&&I(D)})}z(M,T)});var O=p(S,2);{var N=M=>{var P=Fl(),x=p(f(P),2);ne(x,16,()=>i(m),T=>T,(T,$)=>{const D=E(()=>i(d)[$]);var I=vr(),Y=zt(I);{var L=G=>{var W=Al(),le=f(W),ve=f(le),oe=p(le,2);let pe;var B=f(oe),ee=p(oe,2),he=f(ee);q((we,je)=>{C(ve,$),pe=fe(oe,"",pe,we),C(B,$),C(he,`${i(D).sizeRem??""}rem / ${je??""}px`)},[()=>({"font-size":`${i(D).sizePx.toFixed(1)??""}px`}),()=>i(D).sizePx.toFixed(1)]),z(G,W)};ue(Y,G=>{i(D)&&G(L)})}z(T,I)}),z(M,P)};ue(O,M=>{i(m).length>0&&M(N)})}q(()=>C(V,`${i(n)??""}px`)),$t(k,()=>i(n),M=>K(n,M)),z(e,y),be()}var Ol=A(""),Dl=A(""),Pl=A('
                '),Ll=A('
                Scale Generator Computes all step min/max values from a modular scale. Click Apply to write them to the fields below.
                ');function Vl(e,t){ye(t,!0);const s=[{label:"Minor Second (1.067)",value:1.067},{label:"Major Second (1.125)",value:1.125},{label:"Minor Third (1.200)",value:1.2},{label:"Major Third (1.250)",value:1.25},{label:"Perfect Fourth (1.333)",value:1.333},{label:"Aug. Fourth (1.414)",value:1.414},{label:"Perfect Fifth (1.500)",value:1.5},{label:"Golden Ratio (1.618)",value:1.618},{label:"Major Sixth (1.667)",value:1.667},{label:"Octave (2.000)",value:2}],a=[{name:"2xs",idx:-4},{name:"xs",idx:-3},{name:"s",idx:-2},{name:"m",idx:0},{name:"l",idx:1},{name:"xl",idx:2},{name:"2xl",idx:3},{name:"3xl",idx:4},{name:"4xl",idx:5},{name:"display-s",idx:5},{name:"display-m",idx:6},{name:"display-l",idx:7}];let r=se(1),n=se(1.25),c=se(1.25),l=se(1.333),o=se(.85);const d=E(()=>a.map(({name:T,idx:$})=>{const I=T.startsWith("display")?i(o):1,Y=+(i(r)*I*Math.pow(i(c),$)).toFixed(4),L=+(i(n)*I*Math.pow(i(l),$)).toFixed(4);return{name:T,min:Y,max:L}}));function _(){H.typography||(H.typography={});for(const{name:T,min:$,max:D}of i(d))H.typography[`size_${T}_min`]=String($),H.typography[`size_${T}_max`]=String(D);er()}var u=Ll(),v=p(f(u),2),m=f(v),y=p(f(m),2),w=f(y),h=p(m,2),b=p(f(h),2),k=f(b),j=p(h,2),F=p(f(j),2);ne(F,21,()=>s,T=>T.value,(T,$)=>{var D=Ol(),I=f(D),Y={};q(()=>{C(I,i($).label),Y!==(Y=i($).value)&&(D.value=(D.__value=i($).value)??"")}),z(T,D)});var V=p(j,2),S=p(f(V),2);ne(S,21,()=>s,T=>T.value,(T,$)=>{var D=Dl(),I=f(D),Y={};q(()=>{C(I,i($).label),Y!==(Y=i($).value)&&(D.value=(D.__value=i($).value)??"")}),z(T,D)});var R=p(V,2),O=p(f(R),2),N=f(O),M=p(v,2);ne(M,21,()=>i(d),({name:T,min:$,max:D})=>T,(T,$)=>{let D=()=>i($).name,I=()=>i($).min,Y=()=>i($).max;var L=Pl();let G;var W=f(L),le=f(W),ve=p(W,2),oe=f(ve);q((pe,B,ee)=>{G=ut(L,1,"scale-gen__step svelte-1y8fkhh",null,G,pe),C(le,D()),C(oe,`${B??""} / ${ee??""}`)},[()=>({display:D().startsWith("display")}),()=>I().toFixed(3),()=>Y().toFixed(3)]),z(T,L)});var P=p(M,2),x=f(P);$t(w,()=>i(r),T=>K(r,T)),$t(k,()=>i(n),T=>K(n,T)),na(F,()=>i(c),T=>K(c,T)),na(S,()=>i(l),T=>K(l,T)),$t(N,()=>i(o),T=>K(o,T)),ge("click",x,_),z(e,u),be()}Le(["click"]);var Il=A('
                '),ql=A('

                Additional Font Families

                Scale Multipliers

                ',1),Nl=A('

                Font Families

                Font Size Scale

                Min and max values in rem for fluid type scaling via clamp().

                ');function Bl(e,t){ye(t,!0);const s="typography",a=re.defaults?.[s]??{},r=a.font_families??{},n=a.font_sizes??{},c=h=>h.charAt(0).toUpperCase()+h.slice(1),l=["body","heading"],o=Object.fromEntries(Object.entries(r).filter(([h])=>l.includes(h))),d=Object.fromEntries(Object.entries(r).filter(([h])=>!l.includes(h)));var _=Nl(),u=p(f(_),2);ne(u,21,()=>Object.entries(o),([h,b])=>h,(h,b)=>{var k=E(()=>lt(i(b),2));let j=()=>i(k)[0],F=()=>i(k)[1];{let V=E(()=>`font_${j()}`),S=E(()=>c(j())),R=E(()=>`--sf-font-${j()}`);la(h,{section:s,get fieldKey(){return i(V)},get label(){return i(S)},get default(){return F()},get cssVar(){return i(R)},width:"420px"})}});var v=p(u,6);Vl(v,{});var m=p(v,2);ne(m,21,()=>Object.entries(n),([h,b])=>h,(h,b)=>{var k=E(()=>lt(i(b),2));let j=()=>i(k)[0],F=()=>i(k)[1];var V=Il(),S=f(V),R=f(S),O=f(R),N=p(R,2),M=f(N),P=p(S,2),x=f(P);{let $=E(()=>`size_${j()}_min`);ft(x,{section:s,get fieldKey(){return i($)},label:"Min",min:0,step:.01,get default(){return F().min},width:"80px"})}var T=p(x,2);{let $=E(()=>`size_${j()}_max`);ft(T,{section:s,get fieldKey(){return i($)},label:"Max",min:0,step:.01,get default(){return F().max},width:"80px"})}q(()=>{C(O,j()),C(M,`--sf-text-${j()??""}`)}),z(h,V)});var y=p(m,2);Ml(y,{});var w=p(y,2);_a(w,{children:(h,b)=>{var k=ql(),j=p(zt(k),2);ne(j,21,()=>Object.entries(d),([R,O])=>R,(R,O)=>{var N=E(()=>lt(i(O),2));let M=()=>i(N)[0],P=()=>i(N)[1];{let x=E(()=>`font_${M()}`),T=E(()=>c(M())),$=E(()=>`--sf-font-${M()}`);la(R,{section:s,get fieldKey(){return i(x)},get label(){return i(T)},get default(){return P()},get cssVar(){return i($)},width:"420px"})}});var F=p(j,4),V=f(F);{let R=E(()=>a.scale_multipliers?.text_scale??1);ft(V,{section:s,fieldKey:"text_scale",label:"Text Scale",min:0,step:.05,get default(){return i(R)},cssVar:"--sf-text-scale"})}var S=p(V,2);{let R=E(()=>a.scale_multipliers?.text_display_scale??1);ft(S,{section:s,fieldKey:"text_display_scale",label:"Display Scale",min:0,step:.05,get default(){return i(R)},cssVar:"--sf-text-display-scale"})}z(h,k)},$$slots:{default:!0}}),z(e,_),be()}var Kl=A('
                '),Hl=A('

                Live Scale Preview

                Card heading
                ');function Ul(e,t){ye(t,!0);const s=360,a=1440;let r=se(a);const n=re.defaults?.spacing??{},c=n.space_sizes??{};function l(L){const G=H.spacing??{},W=c[L]??{},le=G[`space_${L}_min`],ve=G[`space_${L}_max`],oe=le!==void 0&&le!==""?parseFloat(le):W.min??1,pe=ve!==void 0&&ve!==""?parseFloat(ve):W.max??1;return{min:oe,max:pe}}const o=E(()=>{const L=parseFloat(H.spacing?.space_scale??n.space_scale??1)||1,G=Math.max(0,Math.min(1,(i(r)-s)/(a-s))),W=["2xs","xs","s","m","l","xl","2xl","3xl","4xl"],le=l("4xl").max*L;return W.map(ve=>{const{min:oe,max:pe}=l(ve),B=(oe+(pe-oe)*G)*L,ee=B/le*100;return{name:ve,sizeRem:B.toFixed(3),barPct:Math.min(ee,100)}})}),d=E(()=>{const L=parseFloat(H.spacing?.space_scale??n.space_scale??1)||1,G=Math.max(0,Math.min(1,(i(r)-s)/(a-s))),W=le=>{const{min:ve,max:oe}=l(le);return((ve+(oe-ve)*G)*L).toFixed(3)};return{xs:W("xs"),s:W("s"),m:W("m"),l:W("l")}});var _=Hl(),u=f(_),v=p(f(u),2),m=f(v);m.textContent="360px";var y=p(m,2);Q(y,"min",s),Q(y,"max",a);var w=p(y,2);w.textContent="1440px";var h=p(w,2),b=f(h),k=p(u,2);ne(k,21,()=>i(o),L=>L.name,(L,G)=>{var W=Kl(),le=f(W),ve=f(le),oe=p(le,2),pe=f(oe);let B;var ee=p(oe,2),he=f(ee);q(()=>{C(ve,`--sf-space-${i(G).name??""}`),B=fe(pe,"",B,{width:`${i(G).barPct??""}%`}),C(he,`${i(G).sizeRem??""}rem`)}),z(L,W)});var j=p(k,2),F=f(j),V=f(F),S=p(F,2);let R;var O=f(S);let N;var M=p(f(O),2),P=p(f(M),2),x=f(P),T=p(O,2),$=f(T),D=p(T,2);let I;var Y=p(f(D),2);fe(Y,"",{},{width:"3rem"}),q(()=>{C(b,`${i(r)??""}px`),C(V,`Container context at ${i(r)??""}px`),R=fe(S,"",R,{padding:`${i(d).m??""}rem`,gap:`${i(d).s??""}rem`}),N=fe(O,"",N,{gap:`${i(d).s??""}rem`}),C(x,`padding: ${i(d).m??""}rem`),C($,`Body section · gap between rows: ${i(d).s??""}rem`),I=fe(D,"",I,{gap:`${i(d).xs??""}rem`,"padding-top":`${i(d).xs??""}rem`})}),$t(y,()=>i(r),L=>K(r,L)),z(e,_),be()}var Gl=A('
                '),Wl=A('

                Space Aliases

                ',1),Yl=A(`

                Spacing

                Space Scale Steps

                Min and max values in rem for fluid spacing via clamp(). - Leave both fields blank to use the framework defaults.

                `);function Xl(e,t){ye(t,!0);const s="spacing",a=re.defaults?.[s]??{},r=a.space_sizes??{},n=[{key:"gutter",label:"Gutter",cssVar:"--sf-space-gutter"},{key:"gap",label:"Gap",cssVar:"--sf-gap"},{key:"content_gap",label:"Content Gap",cssVar:"--sf-content-gap"},{key:"component_pad",label:"Component Pad",cssVar:"--sf-component-pad"},{key:"section_pad",label:"Section Pad",cssVar:"--sf-section-pad"}];var c=Yl(),l=p(f(c),2),o=f(l);{let v=E(()=>a.space_scale??1);ft(o,{section:s,fieldKey:"space_scale",label:"Space Scale",min:0,step:.05,get default(){return i(v)},cssVar:"--sf-space-scale"})}var d=p(l,6);ne(d,21,()=>Object.entries(r),([v,m])=>v,(v,m)=>{var y=E(()=>lt(i(m),2));let w=()=>i(y)[0],h=()=>i(y)[1];var b=Gl(),k=f(b),j=f(k),F=f(j),V=p(j,2),S=f(V),R=p(k,2),O=f(R);{let M=E(()=>`space_${w()}_min`);ft(O,{section:s,get fieldKey(){return i(M)},label:"Min",min:0,step:.01,get default(){return h().min},width:"80px"})}var N=p(O,2);{let M=E(()=>`space_${w()}_max`);ft(N,{section:s,get fieldKey(){return i(M)},label:"Max",min:0,step:.01,get default(){return h().max},width:"80px"})}q(()=>{C(F,w()),C(S,`--sf-space-${w()??""}`)}),z(v,b)});var _=p(d,2);Ul(_,{});var u=p(_,2);_a(u,{children:(v,m)=>{var y=Wl(),w=p(zt(y),2);ne(w,21,()=>n,h=>h.key,(h,b)=>{{let k=E(()=>a[i(b).key]??"");la(h,{section:s,get fieldKey(){return i(b).key},get label(){return i(b).label},get default(){return i(k)},get cssVar(){return i(b).cssVar},mono:!0})}}),z(v,y)},$$slots:{default:!0}}),z(e,c),be()}var Zl=A(' '),Jl=A(' ',1);function ls(e,t){ye(t,!0);let s=me(t,"cssVar",3,""),a=me(t,"unit",3,""),r=me(t,"description",3,"");const n=E(()=>H[t.section]?.[t.fieldKey]===void 0||H[t.section]?.[t.fieldKey]===null?"":String(H[t.section][t.fieldKey])),c=E(()=>i(n)===""||Number.isNaN(Number(i(n)))?Number(t.default):Number(i(n)));function l(d){Rs(t.section,t.fieldKey,d.currentTarget.value)}function o(d){Rs(t.section,t.fieldKey,d.currentTarget.value)}ga(e,{get label(){return t.label},get cssVar(){return s()},get fieldId(){return t.fieldKey},get description(){return r()},children:(d,_)=>{var u=Jl(),v=zt(u),m=p(v,2),y=p(m,2);{var w=h=>{var b=Zl(),k=f(b);q(()=>C(k,a())),z(h,b)};ue(y,h=>{a()&&h(w)})}q(h=>{Q(v,"min",t.min),Q(v,"max",t.max),Q(v,"step",t.step),ia(v,i(c)),Q(m,"id",t.fieldKey),Q(m,"min",t.min),Q(m,"max",t.max),Q(m,"step",t.step),ia(m,i(n)),Q(m,"placeholder",h)},[()=>String(t.default)]),ge("input",v,l),ge("input",m,o),z(d,u)},$$slots:{default:!0}}),be()}Le(["input"]);var Ql=A(""),eo=A('');function to(e,t){ye(t,!0);let s=me(t,"options",19,()=>[]),a=me(t,"default",3,""),r=me(t,"cssVar",3,""),n=me(t,"description",3,"");const c=E(()=>s().map(d=>typeof d=="string"?{value:d,label:d}:d)),l=E(()=>H[t.section]?.[t.fieldKey]===void 0||H[t.section]?.[t.fieldKey]===null?"":String(H[t.section][t.fieldKey]));function o(d){Rs(t.section,t.fieldKey,d.currentTarget.value)}ga(e,{get label(){return t.label},get cssVar(){return r()},get fieldId(){return t.fieldKey},get description(){return n()},children:(d,_)=>{var u=eo(),v=f(u),m=f(v);v.value=v.__value="";var y=p(v);ne(y,17,()=>i(c),h=>h.value,(h,b)=>{var k=Ql(),j=f(k),F={};q(()=>{C(j,i(b).label),F!==(F=i(b).value)&&(k.value=(k.__value=i(b).value)??"")}),z(h,k)});var w;yn(u),q(()=>{Q(u,"id",t.fieldKey),C(m,`Default (${a()??""})`),w!==(w=i(l))&&(u.value=(u.__value=i(l))??"",Qa(u,i(l)))}),ge("change",u,o),z(d,u)},$$slots:{default:!0}}),be()}Le(["change"]);var so=A('
                '),ao=A('
                '),ro=A('
                '),no=A('

                Shadow

                Motion — Durations

                Base duration values in milliseconds.

                Z-Index

                Z-index layer values for stacking context management.

                Contrast

                ',1),io=A('

                Radius

                Shadows

                Motion

                Accessibility

                ');function lo(e,t){ye(t,!0);const s=re.defaults?.radius??{},a=re.defaults?.shadows??{},r=re.defaults?.motion??{},n=re.defaults?.zindex??{},c=re.defaults?.contrast??{},l=r.durations??{},o=B=>B.charAt(0).toUpperCase()+B.slice(1),d=[0,2,4,8,12,16,24,9999],_=["none","xs","s","m","l","xl","2xl","full"],u=E(()=>parseFloat(H.radius?.radius_scale??re.defaults?.radius?.radius_scale??1)),v=E(()=>d.map(B=>B*i(u))),m=E(()=>parseFloat(H.shadows?.shadow_strength??a.shadow_strength??.08)),y=E(()=>parseFloat(H.motion?.motion_scale??r.motion_scale??1)||1),w=["instant","fast","normal","slow","slower"],h=E(()=>w.map(B=>{const ee=H.motion?.[`duration_${B}`],he=parseFloat(ee!==void 0&&ee!==""?ee:l[B]??0);return{name:B,ms:Math.round(he*i(y))}})),b=E(()=>parseFloat(H.contrast?.focus_ring_width??c.focus_ring_width??2)),k=E(()=>parseFloat(H.contrast?.focus_ring_offset??c.focus_ring_offset??2)),j=E(()=>H.contrast?.focus_ring_style??c.focus_ring_style??"solid"),F=E(()=>[{label:"xs",shadow:`0 1px 2px 0 rgba(0,0,0,${(i(m)*.5).toFixed(4)})`},{label:"s",shadow:`0 1px 2px 0 rgba(0,0,0,${(i(m)*.5).toFixed(4)}), 0 2px 6px 0 rgba(0,0,0,${i(m).toFixed(4)})`},{label:"m",shadow:`0 1px 3px 0 rgba(0,0,0,${(i(m)*.5).toFixed(4)}), 0 4px 12px 0 rgba(0,0,0,${(i(m)*2).toFixed(4)})`},{label:"l",shadow:`0 2px 4px 0 rgba(0,0,0,${(i(m)*.5).toFixed(4)}), 0 8px 24px 0 rgba(0,0,0,${(i(m)*3).toFixed(4)})`},{label:"xl",shadow:`0 2px 8px 0 rgba(0,0,0,${(i(m)*.5).toFixed(4)}), 0 12px 36px 0 rgba(0,0,0,${(i(m)*3.5).toFixed(4)})`},{label:"glow",shadow:`0 0 15px 2px rgba(74,48,208,${Math.min(i(m)*2,.7).toFixed(4)})`}]);var V=io(),S=p(f(V),2),R=f(S);{let B=E(()=>s.radius_scale??1);ft(R,{section:"radius",fieldKey:"radius_scale",label:"Radius Scale",min:0,step:.1,get default(){return i(B)},cssVar:"--sf-radius-scale"})}var O=p(S,2);ne(O,23,()=>i(v),(B,ee)=>_[ee],(B,ee,he)=>{var we=so(),je=f(we);let $e;var Oe=p(je,2),Ae=f(Oe);q(()=>{$e=fe(je,"",$e,{"border-radius":d[i(he)]===9999?"9999px":`${i(ee)}px`}),C(Ae,_[i(he)])}),z(B,we)});var N=p(O,4),M=f(N);{let B=E(()=>a.shadow_strength??.08);ls(M,{section:"shadows",fieldKey:"shadow_strength",label:"Shadow Strength",description:"Base opacity for shadow layers (0–1).",min:0,max:1,step:.01,get default(){return i(B)},cssVar:"--sf-shadow-strength"})}var P=p(N,2);ne(P,21,()=>i(F),B=>B.label,(B,ee)=>{var he=ao(),we=f(he);let je;var $e=f(we);q(()=>{je=fe(we,"",je,{"box-shadow":i(ee).shadow}),C($e,i(ee).label)}),z(B,he)});var x=p(P,4),T=f(x);{let B=E(()=>r.motion_scale??1);ft(T,{section:"motion",fieldKey:"motion_scale",label:"Motion Scale",min:0,step:.1,get default(){return i(B)},cssVar:"--sf-motion-scale"})}var $=p(x,2);ne($,21,()=>i(h),B=>B.name,(B,ee)=>{var he=ro(),we=f(he),je=f(we),$e=p(we,2),Oe=f($e);let Ae;var de=p($e,2),xe=f(de);q(()=>{C(je,i(ee).name),Ae=fe(Oe,"",Ae,{"animation-duration":`${i(ee).ms??""}ms`}),C(xe,`${i(ee).ms??""}ms`)}),z(B,he)});var D=p($,4),I=f(D);{let B=E(()=>c.focus_ring_width??2);ls(I,{section:"contrast",fieldKey:"focus_ring_width",label:"Focus Ring Width",min:0,max:8,step:.5,get default(){return i(B)},cssVar:"--sf-focus-ring-width",unit:"px"})}var Y=p(I,2);{let B=E(()=>c.focus_ring_offset??2);ls(Y,{section:"contrast",fieldKey:"focus_ring_offset",label:"Focus Ring Offset",min:0,max:8,step:.5,get default(){return i(B)},cssVar:"--sf-focus-ring-offset",unit:"px"})}var L=p(Y,2);{let B=E(()=>c.focus_ring_style??"solid");to(L,{section:"contrast",fieldKey:"focus_ring_style",label:"Focus Ring Style",options:["solid","dashed","dotted","double","none"],get default(){return i(B)},cssVar:"--sf-focus-ring-style"})}var G=p(D,2),W=f(G);let le;var ve=p(W,2),oe=f(ve),pe=p(G,2);_a(pe,{children:(B,ee)=>{var he=no(),we=p(zt(he),2),je=f(we);{let _e=E(()=>a.glow_color??"");la(je,{section:"shadows",fieldKey:"glow_color",label:"Glow Color",get default(){return i(_e)},cssVar:"--sf-shadow-glow-color",mono:!0})}var $e=p(we,6);ne($e,21,()=>Object.entries(l),([_e,Ke])=>_e,(_e,Ke)=>{var nt=E(()=>lt(i(Ke),2));let pt=()=>i(nt)[0],Fe=()=>i(nt)[1];{let wt=E(()=>`duration_${pt()}`),xt=E(()=>o(pt())),kn=E(()=>`--sf-duration-${pt()}`);ft(_e,{section:"motion",get fieldKey(){return i(wt)},get label(){return i(xt)},min:0,step:10,get default(){return Fe()},get cssVar(){return i(kn)},unit:"ms"})}});var Oe=p($e,6);ne(Oe,21,()=>Object.entries(n),([_e,Ke])=>_e,(_e,Ke)=>{var nt=E(()=>lt(i(Ke),2));let pt=()=>i(nt)[0],Fe=()=>i(nt)[1];{let wt=E(()=>o(pt())),xt=E(()=>`--sf-z-${pt()}`);ft(_e,{section:"zindex",get fieldKey(){return pt()},get label(){return i(wt)},step:1,get default(){return Fe()},get cssVar(){return i(xt)}})}});var Ae=p(Oe,4),de=f(Ae);{let _e=E(()=>c.contrast_bias??0);ls(de,{section:"contrast",fieldKey:"contrast_bias",label:"Contrast Bias",description:"Shifts derived shades up (positive) or down (negative).",min:-.2,max:.2,step:.01,get default(){return i(_e)},cssVar:"--sf-contrast-bias"})}var xe=p(de,2);{let _e=E(()=>c.contrast_threshold??.6);ls(xe,{section:"contrast",fieldKey:"contrast_threshold",label:"Contrast Threshold",description:"Lightness threshold for text-on-color (white vs. black).",min:0,max:1,step:.01,get default(){return i(_e)},cssVar:"--sf-contrast-threshold"})}var Te=p(xe,2);{let _e=E(()=>c.opacity_disabled??.45);ls(Te,{section:"contrast",fieldKey:"opacity_disabled",label:"Disabled Opacity",min:0,max:1,step:.01,get default(){return i(_e)},cssVar:"--sf-opacity-disabled"})}z(B,he)},$$slots:{default:!0}}),q(()=>{le=fe(W,"",le,{"--fp-width":`${i(b)??""}px`,"--fp-offset":`${i(k)??""}px`,"--fp-style":i(j)}),C(oe,`${i(b)??""}px ${i(j)??""} · ${i(k)??""}px offset`)}),z(e,V),be()}var oo=A('
              • '),co=A('
                  '),fo=A('
                  '),uo=A(`

                  All --sf-* custom properties declared in the active SLASHED bundle, - grouped by category.

                  `);function vo(e,t){ye(t,!0);const s=re.inventory?.variables??[],a={color:"Colors",text:"Typography",font:"Typography",leading:"Typography",tracking:"Typography",body:"Typography",heading:"Typography",h1:"Typography",h2:"Typography",h3:"Typography",h4:"Typography",h5:"Typography",h6:"Typography",prose:"Typography",code:"Typography",optical:"Typography",line:"Typography",space:"Spacing",gap:"Spacing",gutter:"Spacing",component:"Spacing",section:"Spacing",flow:"Spacing",safe:"Spacing",header:"Spacing",sticky:"Spacing",size:"Sizing",aspect:"Sizing",ratio:"Sizing",touch:"Sizing",container:"Layout",stack:"Layout",cluster:"Layout",sidebar:"Layout",switcher:"Layout",grid:"Layout",cover:"Layout",frame:"Layout",reel:"Layout",imposter:"Layout",bento:"Layout",box:"Layout",center:"Layout",content:"Layout",breakout:"Layout",divider:"Layout",field:"Layout",border:"Borders",stroke:"Borders",radius:"Radius",shadow:"Shadows",blur:"Effects",opacity:"Effects",gradient:"Effects",mask:"Effects",perspective:"Effects",drop:"Effects",contrast:"Effects",duration:"Motion",ease:"Motion",transition:"Motion",motion:"Motion",animation:"Motion",icon:"Icons",z:"Z-Index",is:"States",current:"States",focus:"Focus",caret:"Focus",scroll:"Scroll",scrollbar:"Scroll",print:"Print",truncate:"Misc"},r=["Colors","Typography","Spacing","Sizing","Layout","Borders","Radius","Shadows","Effects","Motion","Icons","Z-Index","States","Focus","Scroll","Print","Misc"];function n(y){let w=y;w.startsWith("--sf-")&&(w=w.slice(5));const h=w.indexOf("-"),b=h===-1?w:w.slice(0,h);return a[b]||"Misc"}function c(y){const w={};for(const b of y){const k=n(b);w[k]||(w[k]=[]),w[k].push(b)}const h=[];for(const b of r)w[b]?.length&&(w[b].sort(),h.push({category:b,items:w[b]}));for(const b of Object.keys(w))!r.includes(b)&&w[b]?.length&&(w[b].sort(),h.push({category:b,items:w[b]}));return h}const l=c(s);let o=Ne({});function d(y){o[y]=!o[y]}var _=uo(),u=f(_),v=f(u),m=p(u,4);ne(m,17,()=>l,({category:y,items:w})=>y,(y,w)=>{let h=()=>i(w).category,b=()=>i(w).items;var k=fo(),j=f(k),F=f(j),V=f(F),S=p(F,2),R=f(S),O=p(S,2),N=f(O),M=p(j,2);{var P=x=>{var T=co();ne(T,20,b,$=>$,($,D)=>{var I=oo(),Y=f(I),L=f(Y);q(()=>C(L,D)),z($,I)}),z(x,T)};ue(M,x=>{o[h()]&&x(P)})}q(()=>{Q(j,"aria-expanded",o[h()]?"true":"false"),C(V,o[h()]?"▼":"▶"),C(R,h()),C(N,`(${b().length??""})`)}),ge("click",j,()=>d(h())),z(y,k)}),q(()=>C(v,`CSS Variables (${s.length??""})`)),z(e,_),be()}Le(["click"]);var po=A('
                • '),ho=A('
                    '),_o=A('
                  • '),go=A('
                      '),mo=A('

                      All utility and state classes declared in the active SLASHED bundle.

                      ');function yo(e,t){ye(t,!0);const s=re.inventory?.sf_classes??[],a=re.inventory?.is_classes??[];let r=se(!1),n=se(!1);var c=mo(),l=f(c),o=f(l),d=p(l,4),_=f(d),u=f(_),v=f(u),m=p(u,4),y=f(m),w=p(_,2);{var h=N=>{var M=ho();ne(M,20,()=>s,P=>P,(P,x)=>{var T=po(),$=f(T),D=f($);q(()=>C(D,`.${x??""}`)),z(P,T)}),z(N,M)};ue(w,N=>{i(r)&&N(h)})}var b=p(d,2),k=f(b),j=f(k),F=f(j),V=p(j,4),S=f(V),R=p(k,2);{var O=N=>{var M=go();ne(M,20,()=>a,P=>P,(P,x)=>{var T=_o(),$=f(T),D=f($);q(()=>C(D,`.${x??""}`)),z(P,T)}),z(N,M)};ue(R,N=>{i(n)&&N(O)})}q(()=>{C(o,`Registered Classes (${s.length+a.length})`),Q(_,"aria-expanded",i(r)?"true":"false"),C(v,i(r)?"▼":"▶"),C(y,`(${s.length??""})`),Q(k,"aria-expanded",i(n)?"true":"false"),C(F,i(n)?"▼":"▶"),C(S,`(${a.length??""})`)}),ge("click",_,()=>K(r,!i(r))),ge("click",k,()=>K(n,!i(n))),z(e,c),be()}Le(["click"]);async function ma(e,t){const{url:s,nonce:a}=re.rest;if(!s)return console.info("[slashed-admin] (dev) would POST",e,t),{ok:!0,dev:!0};const r=await fetch(s+e,{method:"POST",credentials:"same-origin",headers:{"Content-Type":"application/json","X-WP-Nonce":a},body:JSON.stringify(t)});if(!r.ok){const n=await r.text();throw new Error(n||`HTTP ${r.status}`)}return r.json()}function yr(e,t){return ma("/tokens",{section:e,values:t})}function br(e){return ma("/tokens/reset",{section:e})}function bo(e){return ma("/settings",e)}async function wo(){const{url:e,nonce:t}=re.rest;if(!e)return console.info("[slashed-admin] (dev) would GET /tokens/export"),{schema_version:"1",tokens:{},plugin_settings:{},dev:!0};const s=await fetch(e+"/tokens/export",{credentials:"same-origin",headers:{"X-WP-Nonce":t}});if(!s.ok)throw new Error(await s.text()||`HTTP ${s.status}`);return s.json()}function xo(e){return ma("/tokens/import",e)}var ko=A('Saved'),So=A(' '),Eo=A(`

                      Bundle Info

                      The SLASHED CSS bundle is loaded automatically by the plugin. The inventory + straight into the framework as the source of the brand scale.

                      `);function kl(e,t){be(t,!0);const s=re.defaults?.colors??{},a=_=>_.charAt(0).toUpperCase()+_.slice(1),r=Object.entries(s.brand??{}),n=j(()=>dl("colors","dark_overrides_enabled")!=="0");function l(){xs("colors","dark_overrides_enabled",i(n)?"0":"1")}var o=xl(),c=p(f(o),4);ne(c,21,()=>r,([_,u])=>_,(_,u)=>{var v=j(()=>ot(i(u),2));let m=()=>i(v)[0],b=()=>i(v)[1];{let w=j(()=>`brand_${m()}`),h=j(()=>a(m())),y=j(()=>s.brand_hex_hints?.[m()]??""),k=j(()=>`--sf-color-${m()}-light`);Hs(_,{get storeKey(){return i(w)},get label(){return i(h)},get hexHint(){return i(y)},get rawHint(){return b()},get cssVar(){return i(k)}})}});var d=p(c,2);_a(d,{children:(_,u)=>{var v=wl(),m=p(yt(v),2);ne(m,21,()=>Object.entries(s.status??{}),([E,C])=>E,(E,C)=>{var O=j(()=>ot(i(C),2));let V=()=>i(O)[0],$=()=>i(O)[1];{let D=j(()=>`status_${V()}`),x=j(()=>a(V())),S=j(()=>s.status_hex_hints?.[V()]??""),T=j(()=>`--sf-color-${V()}-light`);Hs(E,{get storeKey(){return i(D)},get label(){return i(x)},get hexHint(){return i(S)},get rawHint(){return $()},get cssVar(){return i(T)}})}});var b=p(m,2),w=f(b),h=f(w);let y;var k=p(h,2),A=f(k),M=p(b,2);{var N=E=>{var C=yl(),O=p(yt(C),2);ne(O,21,()=>Object.entries(s.brand_dark??s.brand??{}),([$])=>$,($,D)=>{var x=j(()=>ot(i(D),1));let S=()=>i(x)[0];{let T=j(()=>`brand_dark_${S()}`),P=j(()=>a(S())),I=j(()=>s.brand_dark_hex_hints?.[S()]??""),U=j(()=>s.brand_dark?.[S()]??""),L=j(()=>`--sf-color-${S()}-dark`);Hs($,{get storeKey(){return i(T)},get label(){return i(P)},get hexHint(){return i(I)},get rawHint(){return i(U)},get cssVar(){return i(L)}})}});var V=p(O,4);ne(V,21,()=>Object.entries(s.status_dark??s.status??{}),([$])=>$,($,D)=>{var x=j(()=>ot(i(D),1));let S=()=>i(x)[0];{let T=j(()=>`status_dark_${S()}`),P=j(()=>a(S())),I=j(()=>s.status_dark_hex_hints?.[S()]??""),U=j(()=>s.status_dark?.[S()]??""),L=j(()=>`--sf-color-${S()}-dark`);Hs($,{get storeKey(){return i(T)},get label(){return i(P)},get hexHint(){return i(I)},get rawHint(){return i(U)},get cssVar(){return i(L)}})}}),z(E,C)};fe(M,E=>{i(n)&&E(N)})}q(()=>{y=rt(h,1,"dark-toggle-btn svelte-1vle0rm",null,y,{on:i(n)}),Q(h,"aria-pressed",i(n)),F(A,i(n)?"Active — custom values override auto-derivation":"Off — dark mode auto-derived from light source colors")}),_e("click",h,l),z(_,v)},$$slots:{default:!0}}),z(e,o),ye()}Oe(["click"]);var Sl=R(''),El=R(' '),jl=R(' '),Tl=R('

                      '),$l=R('
                      ');function ga(e,t){let s=me(t,"cssVar",3,""),a=me(t,"fieldId",3,""),r=me(t,"description",3,"");var n=$l(),l=f(n),o=f(l);{var c=h=>{var y=Sl(),k=f(y);q(()=>{Q(y,"for",a()),F(k,t.label)}),z(h,y)},d=h=>{var y=El(),k=f(y);q(()=>F(k,t.label)),z(h,y)};fe(o,h=>{a()?h(c):h(d,-1)})}var _=p(o,2);{var u=h=>{var y=jl(),k=f(y);q(()=>F(k,s())),z(h,y)};fe(_,h=>{s()&&h(u)})}var v=p(l,2),m=f(v);mn(m,()=>t.children??jr);var b=p(m,2);{var w=h=>{var y=Tl(),k=f(y);q(()=>F(k,r())),z(h,y)};fe(b,h=>{r()&&h(w)})}z(e,n)}var Cl=R('');function la(e,t){be(t,!0);let s=me(t,"default",3,""),a=me(t,"cssVar",3,""),r=me(t,"description",3,""),n=me(t,"mono",3,!1),l=me(t,"width",3,"320px");const o=j(()=>H[t.section]?.[t.fieldKey]===void 0||H[t.section]?.[t.fieldKey]===null?"":String(H[t.section][t.fieldKey]));function c(d){xs(t.section,t.fieldKey,d.currentTarget.value)}ga(e,{get label(){return t.label},get cssVar(){return a()},get fieldId(){return t.fieldKey},get description(){return r()},children:(d,_)=>{var u=Cl();let v,m;q(b=>{Q(u,"id",t.fieldKey),v=rt(u,1,"text svelte-j8yw6l",null,v,{mono:n()}),ia(u,i(o)),Q(u,"placeholder",b),m=ue(u,"",m,{width:l()})},[()=>String(s())]),_e("input",u,c),z(d,u)},$$slots:{default:!0}}),ye()}Oe(["input"]);var zl=R(' '),Al=R(' ',1);function ut(e,t){be(t,!0);let s=me(t,"min",3,void 0),a=me(t,"max",3,void 0),r=me(t,"step",3,void 0),n=me(t,"default",3,""),l=me(t,"cssVar",3,""),o=me(t,"unit",3,""),c=me(t,"description",3,""),d=me(t,"width",3,"120px");const _=j(()=>H[t.section]?.[t.fieldKey]===void 0||H[t.section]?.[t.fieldKey]===null?"":String(H[t.section][t.fieldKey]));function u(v){xs(t.section,t.fieldKey,v.currentTarget.value)}ga(e,{get label(){return t.label},get cssVar(){return l()},get fieldId(){return t.fieldKey},get description(){return c()},children:(v,m)=>{var b=Al(),w=yt(b);let h;var y=p(w,2);{var k=A=>{var M=zl(),N=f(M);q(()=>F(N,o())),z(A,M)};fe(y,A=>{o()&&A(k)})}q(A=>{Q(w,"id",t.fieldKey),Q(w,"min",s()),Q(w,"max",a()),Q(w,"step",r()),ia(w,i(_)),Q(w,"placeholder",A),h=ue(w,"",h,{width:d()})},[()=>String(n())]),_e("input",w,u),z(v,b)},$$slots:{default:!0}}),ye()}Oe(["input"]);var Fl=R('
                      '),Rl=R('
                      '),Ml=R('

                      Display Scale

                      '),Ol=R('

                      Live Scale Preview

                      Text Scale

                      ');function Dl(e,t){be(t,!0);const s=16,a=360,r=1520;let n=se(r);const o=(re.defaults?.typography??{}).font_sizes??{};function c($){const D=H.typography??{},x=o[$]??{},S=D[`size_${$}_min`],T=D[`size_${$}_max`],P=S!==void 0&&S!==""?parseFloat(S):x.min??.75,I=T!==void 0&&T!==""?parseFloat(T):x.max??1;return{min:P,max:I}}const d=j(()=>{const $=Math.max(0,Math.min(1,(i(n)-a)/(r-a))),D={};for(const x of Object.keys(o)){const{min:S,max:T}=c(x),P=S+(T-S)*$,I=P*s;D[x]={sizePx:I,sizeRem:P.toFixed(3)}}return D}),_=["2xs","xs","s","m","l","xl","2xl","3xl","4xl"],u=["display-s","display-m","display-l"],v=j(()=>_.filter($=>o[$])),m=j(()=>u.filter($=>o[$]));var b=Ol(),w=f(b),h=p(f(w),2),y=f(h);y.textContent="360px";var k=p(y,2);Q(k,"min",a),Q(k,"max",r);var A=p(k,2);A.textContent="1520px";var M=p(A,2),N=f(M),E=p(w,2),C=p(f(E),2);ne(C,16,()=>i(v),$=>$,($,D)=>{const x=j(()=>i(d)[D]);var S=vr(),T=yt(S);{var P=I=>{var U=Fl(),L=f(U),W=f(L),Y=p(L,2);let le;var ve=f(Y),oe=p(Y,2),pe=f(oe);q((B,ee)=>{F(W,D),le=ue(Y,"",le,B),F(ve,D),F(pe,`${i(x).sizeRem??""}rem / ${ee??""}px`)},[()=>({"font-size":`${i(x).sizePx.toFixed(1)??""}px`}),()=>i(x).sizePx.toFixed(1)]),z(I,U)};fe(T,I=>{i(x)&&I(P)})}z($,S)});var O=p(E,2);{var V=$=>{var D=Ml(),x=p(f(D),2);ne(x,16,()=>i(m),S=>S,(S,T)=>{const P=j(()=>i(d)[T]);var I=vr(),U=yt(I);{var L=W=>{var Y=Rl(),le=f(Y),ve=f(le),oe=p(le,2);let pe;var B=f(oe),ee=p(oe,2),he=f(ee);q((we,je)=>{F(ve,T),pe=ue(oe,"",pe,we),F(B,T),F(he,`${i(P).sizeRem??""}rem / ${je??""}px`)},[()=>({"font-size":`${i(P).sizePx.toFixed(1)??""}px`}),()=>i(P).sizePx.toFixed(1)]),z(W,Y)};fe(U,W=>{i(P)&&W(L)})}z(S,I)}),z($,D)};fe(O,$=>{i(m).length>0&&$(V)})}q(()=>F(N,`${i(n)??""}px`)),Ct(k,()=>i(n),$=>K(n,$)),z(e,b),ye()}var Pl=R(""),Ll=R(""),Vl=R('
                      '),Il=R('
                      Scale Generator Computes all step min/max values from a modular scale. Click Apply to write them to the fields below.
                      ');function ql(e,t){be(t,!0);const s=[{label:"Minor Second (1.067)",value:1.067},{label:"Major Second (1.125)",value:1.125},{label:"Minor Third (1.200)",value:1.2},{label:"Major Third (1.250)",value:1.25},{label:"Perfect Fourth (1.333)",value:1.333},{label:"Aug. Fourth (1.414)",value:1.414},{label:"Perfect Fifth (1.500)",value:1.5},{label:"Golden Ratio (1.618)",value:1.618},{label:"Major Sixth (1.667)",value:1.667},{label:"Octave (2.000)",value:2}],a=[{name:"2xs",idx:-4},{name:"xs",idx:-3},{name:"s",idx:-2},{name:"m",idx:0},{name:"l",idx:1},{name:"xl",idx:2},{name:"2xl",idx:3},{name:"3xl",idx:4},{name:"4xl",idx:5},{name:"display-s",idx:5},{name:"display-m",idx:6},{name:"display-l",idx:7}];let r=se(1),n=se(1.25),l=se(1.25),o=se(1.333),c=se(.85);const d=j(()=>a.map(({name:S,idx:T})=>{const I=S.startsWith("display")?i(c):1,U=+(i(r)*I*Math.pow(i(l),T)).toFixed(4),L=+(i(n)*I*Math.pow(i(o),T)).toFixed(4);return{name:S,min:U,max:L}}));function _(){H.typography||(H.typography={});for(const{name:S,min:T,max:P}of i(d))H.typography[`size_${S}_min`]=String(T),H.typography[`size_${S}_max`]=String(P);er()}var u=Il(),v=p(f(u),2),m=f(v),b=p(f(m),2),w=f(b),h=p(m,2),y=p(f(h),2),k=f(y),A=p(h,2),M=p(f(A),2);ne(M,21,()=>s,S=>S.value,(S,T)=>{var P=Pl(),I=f(P),U={};q(()=>{F(I,i(T).label),U!==(U=i(T).value)&&(P.value=(P.__value=i(T).value)??"")}),z(S,P)});var N=p(A,2),E=p(f(N),2);ne(E,21,()=>s,S=>S.value,(S,T)=>{var P=Ll(),I=f(P),U={};q(()=>{F(I,i(T).label),U!==(U=i(T).value)&&(P.value=(P.__value=i(T).value)??"")}),z(S,P)});var C=p(N,2),O=p(f(C),2),V=f(O),$=p(v,2);ne($,21,()=>i(d),({name:S,min:T,max:P})=>S,(S,T)=>{let P=()=>i(T).name,I=()=>i(T).min,U=()=>i(T).max;var L=Vl();let W;var Y=f(L),le=f(Y),ve=p(Y,2),oe=f(ve);q((pe,B,ee)=>{W=rt(L,1,"scale-gen__step svelte-1y8fkhh",null,W,pe),F(le,P()),F(oe,`${B??""} / ${ee??""}`)},[()=>({display:P().startsWith("display")}),()=>I().toFixed(3),()=>U().toFixed(3)]),z(S,L)});var D=p($,2),x=f(D);Ct(w,()=>i(r),S=>K(r,S)),Ct(k,()=>i(n),S=>K(n,S)),na(M,()=>i(l),S=>K(l,S)),na(E,()=>i(o),S=>K(o,S)),Ct(V,()=>i(c),S=>K(c,S)),_e("click",x,_),z(e,u),ye()}Oe(["click"]);var Nl=R('
                      '),Bl=R('

                      Additional Font Families

                      Scale Multipliers

                      ',1),Kl=R('

                      Font Families

                      Font Size Scale

                      Min and max values in rem for fluid type scaling via clamp().

                      ');function Hl(e,t){be(t,!0);const s="typography",a=re.defaults?.[s]??{},r=a.font_families??{},n=a.font_sizes??{},l=h=>h.charAt(0).toUpperCase()+h.slice(1),o=["body","heading"],c=Object.fromEntries(Object.entries(r).filter(([h])=>o.includes(h))),d=Object.fromEntries(Object.entries(r).filter(([h])=>!o.includes(h)));var _=Kl(),u=p(f(_),2);ne(u,21,()=>Object.entries(c),([h,y])=>h,(h,y)=>{var k=j(()=>ot(i(y),2));let A=()=>i(k)[0],M=()=>i(k)[1];{let N=j(()=>`font_${A()}`),E=j(()=>l(A())),C=j(()=>`--sf-font-${A()}`);la(h,{section:s,get fieldKey(){return i(N)},get label(){return i(E)},get default(){return M()},get cssVar(){return i(C)},width:"420px"})}});var v=p(u,6);ql(v,{});var m=p(v,2);ne(m,21,()=>Object.entries(n),([h,y])=>h,(h,y)=>{var k=j(()=>ot(i(y),2));let A=()=>i(k)[0],M=()=>i(k)[1];var N=Nl(),E=f(N),C=f(E),O=f(C),V=p(C,2),$=f(V),D=p(E,2),x=f(D);{let T=j(()=>`size_${A()}_min`);ut(x,{section:s,get fieldKey(){return i(T)},label:"Min",min:0,step:.01,get default(){return M().min},width:"80px"})}var S=p(x,2);{let T=j(()=>`size_${A()}_max`);ut(S,{section:s,get fieldKey(){return i(T)},label:"Max",min:0,step:.01,get default(){return M().max},width:"80px"})}q(()=>{F(O,A()),F($,`--sf-text-${A()??""}`)}),z(h,N)});var b=p(m,2);Dl(b,{});var w=p(b,2);_a(w,{children:(h,y)=>{var k=Bl(),A=p(yt(k),2);ne(A,21,()=>Object.entries(d),([C,O])=>C,(C,O)=>{var V=j(()=>ot(i(O),2));let $=()=>i(V)[0],D=()=>i(V)[1];{let x=j(()=>`font_${$()}`),S=j(()=>l($())),T=j(()=>`--sf-font-${$()}`);la(C,{section:s,get fieldKey(){return i(x)},get label(){return i(S)},get default(){return D()},get cssVar(){return i(T)},width:"420px"})}});var M=p(A,4),N=f(M);{let C=j(()=>a.scale_multipliers?.text_scale??1);ut(N,{section:s,fieldKey:"text_scale",label:"Text Scale",min:0,step:.05,get default(){return i(C)},cssVar:"--sf-text-scale"})}var E=p(N,2);{let C=j(()=>a.scale_multipliers?.text_display_scale??1);ut(E,{section:s,fieldKey:"text_display_scale",label:"Display Scale",min:0,step:.05,get default(){return i(C)},cssVar:"--sf-text-display-scale"})}z(h,k)},$$slots:{default:!0}}),z(e,_),ye()}var Ul=R('
                      '),Gl=R('

                      Live Scale Preview

                      Card heading
                      ');function Wl(e,t){be(t,!0);const s=360,a=1440;let r=se(a);const n=re.defaults?.spacing??{},l=n.space_sizes??{};function o(L){const W=H.spacing??{},Y=l[L]??{},le=W[`space_${L}_min`],ve=W[`space_${L}_max`],oe=le!==void 0&&le!==""?parseFloat(le):Y.min??1,pe=ve!==void 0&&ve!==""?parseFloat(ve):Y.max??1;return{min:oe,max:pe}}const c=j(()=>{const L=parseFloat(H.spacing?.space_scale??n.space_scale??1)||1,W=Math.max(0,Math.min(1,(i(r)-s)/(a-s))),Y=["2xs","xs","s","m","l","xl","2xl","3xl","4xl"],le=o("4xl").max*L;return Y.map(ve=>{const{min:oe,max:pe}=o(ve),B=(oe+(pe-oe)*W)*L,ee=B/le*100;return{name:ve,sizeRem:B.toFixed(3),barPct:Math.min(ee,100)}})}),d=j(()=>{const L=parseFloat(H.spacing?.space_scale??n.space_scale??1)||1,W=Math.max(0,Math.min(1,(i(r)-s)/(a-s))),Y=le=>{const{min:ve,max:oe}=o(le);return((ve+(oe-ve)*W)*L).toFixed(3)};return{xs:Y("xs"),s:Y("s"),m:Y("m"),l:Y("l")}});var _=Gl(),u=f(_),v=p(f(u),2),m=f(v);m.textContent="360px";var b=p(m,2);Q(b,"min",s),Q(b,"max",a);var w=p(b,2);w.textContent="1440px";var h=p(w,2),y=f(h),k=p(u,2);ne(k,21,()=>i(c),L=>L.name,(L,W)=>{var Y=Ul(),le=f(Y),ve=f(le),oe=p(le,2),pe=f(oe);let B;var ee=p(oe,2),he=f(ee);q(()=>{F(ve,`--sf-space-${i(W).name??""}`),B=ue(pe,"",B,{width:`${i(W).barPct??""}%`}),F(he,`${i(W).sizeRem??""}rem`)}),z(L,Y)});var A=p(k,2),M=f(A),N=f(M),E=p(M,2);let C;var O=f(E);let V;var $=p(f(O),2),D=p(f($),2),x=f(D),S=p(O,2),T=f(S),P=p(S,2);let I;var U=p(f(P),2);ue(U,"",{},{width:"3rem"}),q(()=>{F(y,`${i(r)??""}px`),F(N,`Container context at ${i(r)??""}px`),C=ue(E,"",C,{padding:`${i(d).m??""}rem`,gap:`${i(d).s??""}rem`}),V=ue(O,"",V,{gap:`${i(d).s??""}rem`}),F(x,`padding: ${i(d).m??""}rem`),F(T,`Body section · gap between rows: ${i(d).s??""}rem`),I=ue(P,"",I,{gap:`${i(d).xs??""}rem`,"padding-top":`${i(d).xs??""}rem`})}),Ct(b,()=>i(r),L=>K(r,L)),z(e,_),ye()}var Yl=R('
                      '),Xl=R('

                      Space Aliases

                      ',1),Zl=R(`

                      Spacing

                      Space Scale Steps

                      Min and max values in rem for fluid spacing via clamp(). + Leave both fields blank to use the framework defaults.

                      `);function Jl(e,t){be(t,!0);const s="spacing",a=re.defaults?.[s]??{},r=a.space_sizes??{},n=[{key:"gutter",label:"Gutter",cssVar:"--sf-space-gutter"},{key:"gap",label:"Gap",cssVar:"--sf-gap"},{key:"content_gap",label:"Content Gap",cssVar:"--sf-content-gap"},{key:"component_pad",label:"Component Pad",cssVar:"--sf-component-pad"},{key:"section_pad",label:"Section Pad",cssVar:"--sf-section-pad"}];var l=Zl(),o=p(f(l),2),c=f(o);{let v=j(()=>a.space_scale??1);ut(c,{section:s,fieldKey:"space_scale",label:"Space Scale",min:0,step:.05,get default(){return i(v)},cssVar:"--sf-space-scale"})}var d=p(o,6);ne(d,21,()=>Object.entries(r),([v,m])=>v,(v,m)=>{var b=j(()=>ot(i(m),2));let w=()=>i(b)[0],h=()=>i(b)[1];var y=Yl(),k=f(y),A=f(k),M=f(A),N=p(A,2),E=f(N),C=p(k,2),O=f(C);{let $=j(()=>`space_${w()}_min`);ut(O,{section:s,get fieldKey(){return i($)},label:"Min",min:0,step:.01,get default(){return h().min},width:"80px"})}var V=p(O,2);{let $=j(()=>`space_${w()}_max`);ut(V,{section:s,get fieldKey(){return i($)},label:"Max",min:0,step:.01,get default(){return h().max},width:"80px"})}q(()=>{F(M,w()),F(E,`--sf-space-${w()??""}`)}),z(v,y)});var _=p(d,2);Wl(_,{});var u=p(_,2);_a(u,{children:(v,m)=>{var b=Xl(),w=p(yt(b),2);ne(w,21,()=>n,h=>h.key,(h,y)=>{{let k=j(()=>a[i(y).key]??"");la(h,{section:s,get fieldKey(){return i(y).key},get label(){return i(y).label},get default(){return i(k)},get cssVar(){return i(y).cssVar},mono:!0})}}),z(v,b)},$$slots:{default:!0}}),z(e,l),ye()}var Ql=R(' '),eo=R(' ',1);function ls(e,t){be(t,!0);let s=me(t,"cssVar",3,""),a=me(t,"unit",3,""),r=me(t,"description",3,"");const n=j(()=>H[t.section]?.[t.fieldKey]===void 0||H[t.section]?.[t.fieldKey]===null?"":String(H[t.section][t.fieldKey])),l=j(()=>i(n)===""||Number.isNaN(Number(i(n)))?Number(t.default):Number(i(n)));function o(d){xs(t.section,t.fieldKey,d.currentTarget.value)}function c(d){xs(t.section,t.fieldKey,d.currentTarget.value)}ga(e,{get label(){return t.label},get cssVar(){return s()},get fieldId(){return t.fieldKey},get description(){return r()},children:(d,_)=>{var u=eo(),v=yt(u),m=p(v,2),b=p(m,2);{var w=h=>{var y=Ql(),k=f(y);q(()=>F(k,a())),z(h,y)};fe(b,h=>{a()&&h(w)})}q(h=>{Q(v,"min",t.min),Q(v,"max",t.max),Q(v,"step",t.step),ia(v,i(l)),Q(m,"id",t.fieldKey),Q(m,"min",t.min),Q(m,"max",t.max),Q(m,"step",t.step),ia(m,i(n)),Q(m,"placeholder",h)},[()=>String(t.default)]),_e("input",v,o),_e("input",m,c),z(d,u)},$$slots:{default:!0}}),ye()}Oe(["input"]);var to=R(""),so=R('');function ao(e,t){be(t,!0);let s=me(t,"options",19,()=>[]),a=me(t,"default",3,""),r=me(t,"cssVar",3,""),n=me(t,"description",3,"");const l=j(()=>s().map(d=>typeof d=="string"?{value:d,label:d}:d)),o=j(()=>H[t.section]?.[t.fieldKey]===void 0||H[t.section]?.[t.fieldKey]===null?"":String(H[t.section][t.fieldKey]));function c(d){xs(t.section,t.fieldKey,d.currentTarget.value)}ga(e,{get label(){return t.label},get cssVar(){return r()},get fieldId(){return t.fieldKey},get description(){return n()},children:(d,_)=>{var u=so(),v=f(u),m=f(v);v.value=v.__value="";var b=p(v);ne(b,17,()=>i(l),h=>h.value,(h,y)=>{var k=to(),A=f(k),M={};q(()=>{F(A,i(y).label),M!==(M=i(y).value)&&(k.value=(k.__value=i(y).value)??"")}),z(h,k)});var w;bn(u),q(()=>{Q(u,"id",t.fieldKey),F(m,`Default (${a()??""})`),w!==(w=i(o))&&(u.value=(u.__value=i(o))??"",Qa(u,i(o)))}),_e("change",u,c),z(d,u)},$$slots:{default:!0}}),ye()}Oe(["change"]);var ro=R('
                      '),no=R('
                      '),io=R('
                      '),lo=R('

                      Shadow

                      Motion — Durations

                      Base duration values in milliseconds.

                      Z-Index

                      Z-index layer values for stacking context management.

                      Contrast

                      ',1),oo=R('

                      Radius

                      Shadows

                      Motion

                      Accessibility

                      ');function co(e,t){be(t,!0);const s=re.defaults?.radius??{},a=re.defaults?.shadows??{},r=re.defaults?.motion??{},n=re.defaults?.zindex??{},l=re.defaults?.contrast??{},o=r.durations??{},c=B=>B.charAt(0).toUpperCase()+B.slice(1),d=[0,2,4,8,12,16,24,9999],_=["none","xs","s","m","l","xl","2xl","full"],u=j(()=>parseFloat(H.radius?.radius_scale??re.defaults?.radius?.radius_scale??1)),v=j(()=>d.map(B=>B*i(u))),m=j(()=>parseFloat(H.shadows?.shadow_strength??a.shadow_strength??.08)),b=j(()=>parseFloat(H.motion?.motion_scale??r.motion_scale??1)||1),w=["instant","fast","normal","slow","slower"],h=j(()=>w.map(B=>{const ee=H.motion?.[`duration_${B}`],he=parseFloat(ee!==void 0&&ee!==""?ee:o[B]??0);return{name:B,ms:Math.round(he*i(b))}})),y=j(()=>parseFloat(H.contrast?.focus_ring_width??l.focus_ring_width??2)),k=j(()=>parseFloat(H.contrast?.focus_ring_offset??l.focus_ring_offset??2)),A=j(()=>H.contrast?.focus_ring_style??l.focus_ring_style??"solid"),M=j(()=>[{label:"xs",shadow:`0 1px 2px 0 rgba(0,0,0,${(i(m)*.5).toFixed(4)})`},{label:"s",shadow:`0 1px 2px 0 rgba(0,0,0,${(i(m)*.5).toFixed(4)}), 0 2px 6px 0 rgba(0,0,0,${i(m).toFixed(4)})`},{label:"m",shadow:`0 1px 3px 0 rgba(0,0,0,${(i(m)*.5).toFixed(4)}), 0 4px 12px 0 rgba(0,0,0,${(i(m)*2).toFixed(4)})`},{label:"l",shadow:`0 2px 4px 0 rgba(0,0,0,${(i(m)*.5).toFixed(4)}), 0 8px 24px 0 rgba(0,0,0,${(i(m)*3).toFixed(4)})`},{label:"xl",shadow:`0 2px 8px 0 rgba(0,0,0,${(i(m)*.5).toFixed(4)}), 0 12px 36px 0 rgba(0,0,0,${(i(m)*3.5).toFixed(4)})`},{label:"glow",shadow:`0 0 15px 2px rgba(74,48,208,${Math.min(i(m)*2,.7).toFixed(4)})`}]);var N=oo(),E=p(f(N),2),C=f(E);{let B=j(()=>s.radius_scale??1);ut(C,{section:"radius",fieldKey:"radius_scale",label:"Radius Scale",min:0,step:.1,get default(){return i(B)},cssVar:"--sf-radius-scale"})}var O=p(E,2);ne(O,23,()=>i(v),(B,ee)=>_[ee],(B,ee,he)=>{var we=ro(),je=f(we);let $e;var De=p(je,2),Ae=f(De);q(()=>{$e=ue(je,"",$e,{"border-radius":d[i(he)]===9999?"9999px":`${i(ee)}px`}),F(Ae,_[i(he)])}),z(B,we)});var V=p(O,4),$=f(V);{let B=j(()=>a.shadow_strength??.08);ls($,{section:"shadows",fieldKey:"shadow_strength",label:"Shadow Strength",description:"Base opacity for shadow layers (0–1).",min:0,max:1,step:.01,get default(){return i(B)},cssVar:"--sf-shadow-strength"})}var D=p(V,2);ne(D,21,()=>i(M),B=>B.label,(B,ee)=>{var he=no(),we=f(he);let je;var $e=f(we);q(()=>{je=ue(we,"",je,{"box-shadow":i(ee).shadow}),F($e,i(ee).label)}),z(B,he)});var x=p(D,4),S=f(x);{let B=j(()=>r.motion_scale??1);ut(S,{section:"motion",fieldKey:"motion_scale",label:"Motion Scale",min:0,step:.1,get default(){return i(B)},cssVar:"--sf-motion-scale"})}var T=p(x,2);ne(T,21,()=>i(h),B=>B.name,(B,ee)=>{var he=io(),we=f(he),je=f(we),$e=p(we,2),De=f($e);let Ae;var de=p($e,2),xe=f(de);q(()=>{F(je,i(ee).name),Ae=ue(De,"",Ae,{"animation-duration":`${i(ee).ms??""}ms`}),F(xe,`${i(ee).ms??""}ms`)}),z(B,he)});var P=p(T,4),I=f(P);{let B=j(()=>l.focus_ring_width??2);ls(I,{section:"contrast",fieldKey:"focus_ring_width",label:"Focus Ring Width",min:0,max:8,step:.5,get default(){return i(B)},cssVar:"--sf-focus-ring-width",unit:"px"})}var U=p(I,2);{let B=j(()=>l.focus_ring_offset??2);ls(U,{section:"contrast",fieldKey:"focus_ring_offset",label:"Focus Ring Offset",min:0,max:8,step:.5,get default(){return i(B)},cssVar:"--sf-focus-ring-offset",unit:"px"})}var L=p(U,2);{let B=j(()=>l.focus_ring_style??"solid");ao(L,{section:"contrast",fieldKey:"focus_ring_style",label:"Focus Ring Style",options:["solid","dashed","dotted","double","none"],get default(){return i(B)},cssVar:"--sf-focus-ring-style"})}var W=p(P,2),Y=f(W);let le;var ve=p(Y,2),oe=f(ve),pe=p(W,2);_a(pe,{children:(B,ee)=>{var he=lo(),we=p(yt(he),2),je=f(we);{let ge=j(()=>a.glow_color??"");la(je,{section:"shadows",fieldKey:"glow_color",label:"Glow Color",get default(){return i(ge)},cssVar:"--sf-shadow-glow-color",mono:!0})}var $e=p(we,6);ne($e,21,()=>Object.entries(o),([ge,Ke])=>ge,(ge,Ke)=>{var it=j(()=>ot(i(Ke),2));let pt=()=>i(it)[0],Fe=()=>i(it)[1];{let xt=j(()=>`duration_${pt()}`),kt=j(()=>c(pt())),kn=j(()=>`--sf-duration-${pt()}`);ut(ge,{section:"motion",get fieldKey(){return i(xt)},get label(){return i(kt)},min:0,step:10,get default(){return Fe()},get cssVar(){return i(kn)},unit:"ms"})}});var De=p($e,6);ne(De,21,()=>Object.entries(n),([ge,Ke])=>ge,(ge,Ke)=>{var it=j(()=>ot(i(Ke),2));let pt=()=>i(it)[0],Fe=()=>i(it)[1];{let xt=j(()=>c(pt())),kt=j(()=>`--sf-z-${pt()}`);ut(ge,{section:"zindex",get fieldKey(){return pt()},get label(){return i(xt)},step:1,get default(){return Fe()},get cssVar(){return i(kt)}})}});var Ae=p(De,4),de=f(Ae);{let ge=j(()=>l.contrast_bias??0);ls(de,{section:"contrast",fieldKey:"contrast_bias",label:"Contrast Bias",description:"Shifts derived shades up (positive) or down (negative).",min:-.2,max:.2,step:.01,get default(){return i(ge)},cssVar:"--sf-contrast-bias"})}var xe=p(de,2);{let ge=j(()=>l.contrast_threshold??.6);ls(xe,{section:"contrast",fieldKey:"contrast_threshold",label:"Contrast Threshold",description:"Lightness threshold for text-on-color (white vs. black).",min:0,max:1,step:.01,get default(){return i(ge)},cssVar:"--sf-contrast-threshold"})}var Te=p(xe,2);{let ge=j(()=>l.opacity_disabled??.45);ls(Te,{section:"contrast",fieldKey:"opacity_disabled",label:"Disabled Opacity",min:0,max:1,step:.01,get default(){return i(ge)},cssVar:"--sf-opacity-disabled"})}z(B,he)},$$slots:{default:!0}}),q(()=>{le=ue(Y,"",le,{"--fp-width":`${i(y)??""}px`,"--fp-offset":`${i(k)??""}px`,"--fp-style":i(A)}),F(oe,`${i(y)??""}px ${i(A)??""} · ${i(k)??""}px offset`)}),z(e,N),ye()}var fo=R('
                    • '),uo=R('
                        '),vo=R('
                        '),po=R(`

                        All --sf-* custom properties declared in the active SLASHED bundle, + grouped by category.

                        `);function ho(e,t){be(t,!0);const s=re.inventory?.variables??[],a={color:"Colors",text:"Typography",font:"Typography",leading:"Typography",tracking:"Typography",body:"Typography",heading:"Typography",h1:"Typography",h2:"Typography",h3:"Typography",h4:"Typography",h5:"Typography",h6:"Typography",prose:"Typography",code:"Typography",optical:"Typography",line:"Typography",space:"Spacing",gap:"Spacing",gutter:"Spacing",component:"Spacing",section:"Spacing",flow:"Spacing",safe:"Spacing",header:"Spacing",sticky:"Spacing",size:"Sizing",aspect:"Sizing",ratio:"Sizing",touch:"Sizing",container:"Layout",stack:"Layout",cluster:"Layout",sidebar:"Layout",switcher:"Layout",grid:"Layout",cover:"Layout",frame:"Layout",reel:"Layout",imposter:"Layout",bento:"Layout",box:"Layout",center:"Layout",content:"Layout",breakout:"Layout",divider:"Layout",field:"Layout",border:"Borders",stroke:"Borders",radius:"Radius",shadow:"Shadows",blur:"Effects",opacity:"Effects",gradient:"Effects",mask:"Effects",perspective:"Effects",drop:"Effects",contrast:"Effects",duration:"Motion",ease:"Motion",transition:"Motion",motion:"Motion",animation:"Motion",icon:"Icons",z:"Z-Index",is:"States",current:"States",focus:"Focus",caret:"Focus",scroll:"Scroll",scrollbar:"Scroll",print:"Print",truncate:"Misc"},r=["Colors","Typography","Spacing","Sizing","Layout","Borders","Radius","Shadows","Effects","Motion","Icons","Z-Index","States","Focus","Scroll","Print","Misc"];function n(b){let w=b;w.startsWith("--sf-")&&(w=w.slice(5));const h=w.indexOf("-"),y=h===-1?w:w.slice(0,h);return a[y]||"Misc"}function l(b){const w={};for(const y of b){const k=n(y);w[k]||(w[k]=[]),w[k].push(y)}const h=[];for(const y of r)w[y]?.length&&(w[y].sort(),h.push({category:y,items:w[y]}));for(const y of Object.keys(w))!r.includes(y)&&w[y]?.length&&(w[y].sort(),h.push({category:y,items:w[y]}));return h}const o=l(s);let c=Ne({});function d(b){c[b]=!c[b]}var _=po(),u=f(_),v=f(u),m=p(u,4);ne(m,17,()=>o,({category:b,items:w})=>b,(b,w)=>{let h=()=>i(w).category,y=()=>i(w).items;var k=vo(),A=f(k),M=f(A),N=f(M),E=p(M,2),C=f(E),O=p(E,2),V=f(O),$=p(A,2);{var D=x=>{var S=uo();ne(S,20,y,T=>T,(T,P)=>{var I=fo(),U=f(I),L=f(U);q(()=>F(L,P)),z(T,I)}),z(x,S)};fe($,x=>{c[h()]&&x(D)})}q(()=>{Q(A,"aria-expanded",c[h()]?"true":"false"),F(N,c[h()]?"▼":"▶"),F(C,h()),F(V,`(${y().length??""})`)}),_e("click",A,()=>d(h())),z(b,k)}),q(()=>F(v,`CSS Variables (${s.length??""})`)),z(e,_),ye()}Oe(["click"]);var _o=R('
                      • '),go=R('
                          '),mo=R('
                        • '),bo=R('
                            '),yo=R('

                            All utility and state classes declared in the active SLASHED bundle.

                            ');function wo(e,t){be(t,!0);const s=re.inventory?.sf_classes??[],a=re.inventory?.is_classes??[];let r=se(!1),n=se(!1);var l=yo(),o=f(l),c=f(o),d=p(o,4),_=f(d),u=f(_),v=f(u),m=p(u,4),b=f(m),w=p(_,2);{var h=V=>{var $=go();ne($,20,()=>s,D=>D,(D,x)=>{var S=_o(),T=f(S),P=f(T);q(()=>F(P,`.${x??""}`)),z(D,S)}),z(V,$)};fe(w,V=>{i(r)&&V(h)})}var y=p(d,2),k=f(y),A=f(k),M=f(A),N=p(A,4),E=f(N),C=p(k,2);{var O=V=>{var $=bo();ne($,20,()=>a,D=>D,(D,x)=>{var S=mo(),T=f(S),P=f(T);q(()=>F(P,`.${x??""}`)),z(D,S)}),z(V,$)};fe(C,V=>{i(n)&&V(O)})}q(()=>{F(c,`Registered Classes (${s.length+a.length})`),Q(_,"aria-expanded",i(r)?"true":"false"),F(v,i(r)?"▼":"▶"),F(b,`(${s.length??""})`),Q(k,"aria-expanded",i(n)?"true":"false"),F(M,i(n)?"▼":"▶"),F(E,`(${a.length??""})`)}),_e("click",_,()=>K(r,!i(r))),_e("click",k,()=>K(n,!i(n))),z(e,l),ye()}Oe(["click"]);async function ma(e,t){const{url:s,nonce:a}=re.rest;if(!s)return console.info("[slashed-admin] (dev) would POST",e,t),{ok:!0,dev:!0};const r=await fetch(s+e,{method:"POST",credentials:"same-origin",headers:{"Content-Type":"application/json","X-WP-Nonce":a},body:JSON.stringify(t)});if(!r.ok){const n=await r.text();throw new Error(n||`HTTP ${r.status}`)}return r.json()}function br(e,t){return ma("/tokens",{section:e,values:t})}function yr(e){return ma("/tokens/reset",{section:e})}function xo(e){return ma("/settings",e)}async function ko(){const{url:e,nonce:t}=re.rest;if(!e)return console.info("[slashed-admin] (dev) would GET /tokens/export"),{schema_version:"1",tokens:{},plugin_settings:{},dev:!0};const s=await fetch(e+"/tokens/export",{credentials:"same-origin",headers:{"X-WP-Nonce":t}});if(!s.ok)throw new Error(await s.text()||`HTTP ${s.status}`);return s.json()}function So(e){return ma("/tokens/import",e)}var Eo=R('Saved'),jo=R(' '),To=R(`

                            Bundle Info

                            The SLASHED CSS bundle is loaded automatically by the plugin. The inventory is parsed from whichever bundle is active (essential / optimal / full) and - drives the variable pickers, class autocomplete, and color palette in Bricks.

                            Variables registered
                            Classes registered

                            Plugin Settings

                            Choose which SLASHED CSS bundle to load on the frontend and in the Bricks editor canvas.

                            Override the HTML root font-size. Use this if Bricks forces a font-size you don't want.

                            `);function jo(e,t){ye(t,!0);let s=se(Ne(re.pluginSettings?.css_bundle??"optimal")),a=se(Ne(re.pluginSettings?.html_font_size??"")),r=se(!1),n=se(!1),c=se(""),l=null;async function o(){K(r,!0),K(n,!1),K(c,"");try{await bo({css_bundle:i(s),html_font_size:i(a)}),K(n,!0),l&&clearTimeout(l),l=setTimeout(()=>{K(n,!1),l=null},3e3)}catch(I){K(c,I.message||"Save failed",!0)}finally{K(r,!1)}}var d=Eo(),_=p(f(d),4),u=p(f(_),2),v=f(u),m=p(u,4),y=f(m),w=p(_,4),h=p(f(w),2),b=f(h);b.value=b.__value="essential";var k=p(b);k.value=k.__value="optimal";var j=p(k);j.value=j.__value="full";var F=p(w,2),V=p(f(F),2),S=f(V);S.value=S.__value="";var R=p(S);R.value=R.__value="100";var O=p(R);O.value=O.__value="62.5";var N=p(F,2),M=f(N),P=f(M),x=p(M,2);{var T=I=>{var Y=ko();z(I,Y)};ue(x,I=>{i(n)&&I(T)})}var $=p(x,2);{var D=I=>{var Y=So(),L=f(Y);q(()=>C(L,i(c))),z(I,Y)};ue($,I=>{i(c)&&I(D)})}q(()=>{C(v,re.inventory?.variables?.length??0),C(y,(re.inventory?.sf_classes?.length??0)+(re.inventory?.is_classes?.length??0)),M.disabled=i(r),C(P,i(r)?"Saving...":"Save Settings")}),na(h,()=>i(s),I=>K(s,I)),na(V,()=>i(a),I=>K(a,I)),ge("click",M,o),z(e,d),be()}Le(["click"]);const wr=22.5,To=95;function wn(e,t){if(e<=0||t<=0)return null;const s=To-wr,a=(t-e)/s,r=parseFloat(a.toFixed(6)),n=parseFloat(e.toFixed(4)),c=parseFloat(t.toFixed(4));return`clamp(${n}rem, calc(${r} * (100vw - ${wr}rem) + ${n}rem), ${c}rem)`}function xr(e){const t=parseFloat(e);if(isNaN(t))return"0";let s=t.toFixed(6).replace(/0+$/,"").replace(/\.$/,"");return s===""?"0":s}function Se(e){return e!=null&&e!==""}function $o(e){const t=[],s=["primary","secondary","tertiary","action","neutral","base"];for(const r of s){const n=`brand_${r}`;Se(e[n])&&t.push(`--sf-color-${r}-light: ${e[n]};`)}for(const r of s){const n=`brand_dark_${r}`;Se(e[n])&&t.push(`--sf-color-${r}-dark: ${e[n]};`)}const a=["success","warning","error","info","danger"];for(const r of a){const n=`status_${r}`;Se(e[n])&&t.push(`--sf-color-${r}-light: ${e[n]};`)}for(const r of a){const n=`status_dark_${r}`;Se(e[n])&&t.push(`--sf-color-${r}-dark: ${e[n]};`)}return t}function zo(e){const t=[],s=["body","heading","mono","display","humanist","geometric","slab"];for(const r of s){const n=`font_${r}`;Se(e[n])&&t.push(`--sf-font-${r}: ${e[n]};`)}Se(e.text_scale)&&t.push(`--sf-text-scale: ${e.text_scale};`),Se(e.text_display_scale)&&t.push(`--sf-text-display-scale: ${e.text_display_scale};`);const a=["2xs","xs","s","m","l","xl","2xl","3xl","4xl","display-s","display-m","display-l"];for(const r of a){const n=`size_${r}_min`,c=`size_${r}_max`,l=e[n],o=e[c];if(Se(l)&&Se(o)){const d=wn(parseFloat(l),parseFloat(o));d&&t.push(`--sf-text-${r}: ${d};`)}}return t}function Co(e){const t=[];Se(e.space_scale)&&t.push(`--sf-space-scale: ${e.space_scale};`);const s=["2xs","xs","s","m","l","xl","2xl","3xl","4xl"];for(const r of s){const n=e[`space_${r}_min`],c=e[`space_${r}_max`];if(Se(n)&&Se(c)){const l=wn(parseFloat(n),parseFloat(c));l&&t.push(`--sf-space-${r}: calc(${l} * var(--sf-space-scale));`)}}const a={gutter:"--sf-space-gutter",gap:"--sf-gap",content_gap:"--sf-content-gap",component_pad:"--sf-component-pad",section_pad:"--sf-section-pad"};for(const[r,n]of Object.entries(a))Se(e[r])&&t.push(`${n}: ${e[r]};`);return t}function Ao(e){const t=[];return Se(e.radius_scale)&&t.push(`--sf-radius-scale: ${e.radius_scale};`),t}function Fo(e){const t=[];return Se(e.shadow_strength)&&t.push(`--sf-shadow-strength: calc(${e.shadow_strength} + var(--sf-is-dark) * 0.17);`),Se(e.glow_color)&&t.push(`--sf-shadow-glow-color: ${e.glow_color};`),t}function Ro(e){const t=[];Se(e.motion_scale)&&t.push(`--sf-motion-scale: ${e.motion_scale};`);const s=["instant","fast","normal","slow","slower"];for(const a of s){const r=`duration_${a}`;Se(e[r])&&t.push(`--sf-duration-${a}: calc(${e[r]}ms * var(--sf-motion-scale));`)}return t}function Mo(e){const t=[],s=["below","base","raised","low","mid","high","top","max"];for(const a of s)Se(e[a])&&t.push(`--sf-z-${a}: ${parseInt(e[a],10)};`);return t}function Oo(e){const t=[],s={contrast_bias:"--sf-contrast-bias",contrast_threshold:"--sf-contrast-threshold",opacity_disabled:"--sf-opacity-disabled"};for(const[r,n]of Object.entries(s))Se(e[r])&&t.push(`${n}: ${xr(e[r])};`);const a={focus_ring_width:"--sf-focus-ring-width",focus_ring_offset:"--sf-focus-ring-offset"};for(const[r,n]of Object.entries(a))Se(e[r])&&t.push(`${n}: ${xr(e[r])}px;`);return Se(e.focus_ring_style)&&["solid","dashed","dotted","double","none"].includes(e.focus_ring_style)&&t.push(`--sf-focus-ring-style: ${e.focus_ring_style};`),t}function tr(e){const t=[];if(e.colors&&typeof e.colors=="object"&&t.push(...$o(e.colors)),e.typography&&typeof e.typography=="object"&&t.push(...zo(e.typography)),e.spacing&&typeof e.spacing=="object"&&t.push(...Co(e.spacing)),e.radius&&typeof e.radius=="object"&&t.push(...Ao(e.radius)),e.shadows&&typeof e.shadows=="object"&&t.push(...Fo(e.shadows)),e.motion&&typeof e.motion=="object"&&t.push(...Ro(e.motion)),e.zindex&&typeof e.zindex=="object"&&t.push(...Mo(e.zindex)),e.contrast&&typeof e.contrast=="object"&&t.push(...Oo(e.contrast)),t.length===0)return"";let s=`@layer slashed.overrides { + drives the variable pickers, class autocomplete, and color palette in Bricks.

                            Variables registered
                            Classes registered

                            Plugin Settings

                            Choose which SLASHED CSS bundle to load on the frontend and in the Bricks editor canvas.

                            Override the HTML root font-size. Use this if Bricks forces a font-size you don't want.

                            `);function $o(e,t){be(t,!0);let s=se(Ne(re.pluginSettings?.css_bundle??"optimal")),a=se(Ne(re.pluginSettings?.html_font_size??"")),r=se(!1),n=se(!1),l=se(""),o=null;async function c(){K(r,!0),K(n,!1),K(l,"");try{await xo({css_bundle:i(s),html_font_size:i(a)}),K(n,!0),o&&clearTimeout(o),o=setTimeout(()=>{K(n,!1),o=null},3e3)}catch(I){K(l,I.message||"Save failed",!0)}finally{K(r,!1)}}var d=To(),_=p(f(d),4),u=p(f(_),2),v=f(u),m=p(u,4),b=f(m),w=p(_,4),h=p(f(w),2),y=f(h);y.value=y.__value="essential";var k=p(y);k.value=k.__value="optimal";var A=p(k);A.value=A.__value="full";var M=p(w,2),N=p(f(M),2),E=f(N);E.value=E.__value="";var C=p(E);C.value=C.__value="100";var O=p(C);O.value=O.__value="62.5";var V=p(M,2),$=f(V),D=f($),x=p($,2);{var S=I=>{var U=Eo();z(I,U)};fe(x,I=>{i(n)&&I(S)})}var T=p(x,2);{var P=I=>{var U=jo(),L=f(U);q(()=>F(L,i(l))),z(I,U)};fe(T,I=>{i(l)&&I(P)})}q(()=>{F(v,re.inventory?.variables?.length??0),F(b,(re.inventory?.sf_classes?.length??0)+(re.inventory?.is_classes?.length??0)),$.disabled=i(r),F(D,i(r)?"Saving...":"Save Settings")}),na(h,()=>i(s),I=>K(s,I)),na(N,()=>i(a),I=>K(a,I)),_e("click",$,c),z(e,d),ye()}Oe(["click"]);const wr=22.5,Co=95;function wn(e,t){if(e<=0||t<=0)return null;const s=Co-wr,a=(t-e)/s,r=parseFloat(a.toFixed(6)),n=parseFloat(e.toFixed(4)),l=parseFloat(t.toFixed(4));return`clamp(${n}rem, calc(${r} * (100vw - ${wr}rem) + ${n}rem), ${l}rem)`}function xr(e){const t=parseFloat(e);if(isNaN(t))return"0";let s=t.toFixed(6).replace(/0+$/,"").replace(/\.$/,"");return s===""?"0":s}function Se(e){return e!=null&&e!==""}function zo(e){const t=[],s=["primary","secondary","tertiary","action","neutral","base"];for(const n of s){const l=`brand_${n}`;Se(e[l])&&t.push(`--sf-color-${n}-light: ${e[l]};`)}const a=["success","warning","error","info","danger"];for(const n of a){const l=`status_${n}`;Se(e[l])&&t.push(`--sf-color-${n}-light: ${e[l]};`)}if(e.dark_overrides_enabled!=="0"){for(const n of s){const l=`brand_dark_${n}`;Se(e[l])&&t.push(`--sf-color-${n}-dark: ${e[l]};`)}for(const n of a){const l=`status_dark_${n}`;Se(e[l])&&t.push(`--sf-color-${n}-dark: ${e[l]};`)}}return t}function Ao(e){const t=[],s=["body","heading","mono","display","humanist","geometric","slab"];for(const r of s){const n=`font_${r}`;Se(e[n])&&t.push(`--sf-font-${r}: ${e[n]};`)}Se(e.text_scale)&&t.push(`--sf-text-scale: ${e.text_scale};`),Se(e.text_display_scale)&&t.push(`--sf-text-display-scale: ${e.text_display_scale};`);const a=["2xs","xs","s","m","l","xl","2xl","3xl","4xl","display-s","display-m","display-l"];for(const r of a){const n=`size_${r}_min`,l=`size_${r}_max`,o=e[n],c=e[l];if(Se(o)&&Se(c)){const d=wn(parseFloat(o),parseFloat(c));d&&t.push(`--sf-text-${r}: ${d};`)}}return t}function Fo(e){const t=[];Se(e.space_scale)&&t.push(`--sf-space-scale: ${e.space_scale};`);const s=["2xs","xs","s","m","l","xl","2xl","3xl","4xl"];for(const r of s){const n=e[`space_${r}_min`],l=e[`space_${r}_max`];if(Se(n)&&Se(l)){const o=wn(parseFloat(n),parseFloat(l));o&&t.push(`--sf-space-${r}: calc(${o} * var(--sf-space-scale));`)}}const a={gutter:"--sf-space-gutter",gap:"--sf-gap",content_gap:"--sf-content-gap",component_pad:"--sf-component-pad",section_pad:"--sf-section-pad"};for(const[r,n]of Object.entries(a))Se(e[r])&&t.push(`${n}: ${e[r]};`);return t}function Ro(e){const t=[];return Se(e.radius_scale)&&t.push(`--sf-radius-scale: ${e.radius_scale};`),t}function Mo(e){const t=[];return Se(e.shadow_strength)&&t.push(`--sf-shadow-strength: calc(${e.shadow_strength} + var(--sf-is-dark) * 0.17);`),Se(e.glow_color)&&t.push(`--sf-shadow-glow-color: ${e.glow_color};`),t}function Oo(e){const t=[];Se(e.motion_scale)&&t.push(`--sf-motion-scale: ${e.motion_scale};`);const s=["instant","fast","normal","slow","slower"];for(const a of s){const r=`duration_${a}`;Se(e[r])&&t.push(`--sf-duration-${a}: calc(${e[r]}ms * var(--sf-motion-scale));`)}return t}function Do(e){const t=[],s=["below","base","raised","low","mid","high","top","max"];for(const a of s)Se(e[a])&&t.push(`--sf-z-${a}: ${parseInt(e[a],10)};`);return t}function Po(e){const t=[],s={contrast_bias:"--sf-contrast-bias",contrast_threshold:"--sf-contrast-threshold",opacity_disabled:"--sf-opacity-disabled"};for(const[r,n]of Object.entries(s))Se(e[r])&&t.push(`${n}: ${xr(e[r])};`);const a={focus_ring_width:"--sf-focus-ring-width",focus_ring_offset:"--sf-focus-ring-offset"};for(const[r,n]of Object.entries(a))Se(e[r])&&t.push(`${n}: ${xr(e[r])}px;`);return Se(e.focus_ring_style)&&["solid","dashed","dotted","double","none"].includes(e.focus_ring_style)&&t.push(`--sf-focus-ring-style: ${e.focus_ring_style};`),t}function tr(e){const t=[];if(e.colors&&typeof e.colors=="object"&&t.push(...zo(e.colors)),e.typography&&typeof e.typography=="object"&&t.push(...Ao(e.typography)),e.spacing&&typeof e.spacing=="object"&&t.push(...Fo(e.spacing)),e.radius&&typeof e.radius=="object"&&t.push(...Ro(e.radius)),e.shadows&&typeof e.shadows=="object"&&t.push(...Mo(e.shadows)),e.motion&&typeof e.motion=="object"&&t.push(...Oo(e.motion)),e.zindex&&typeof e.zindex=="object"&&t.push(...Do(e.zindex)),e.contrast&&typeof e.contrast=="object"&&t.push(...Po(e.contrast)),t.length===0)return"";let s=`@layer slashed.overrides { :root { `;for(const a of t)s+=` ${a} `;return s+=` } -}`,s}function xn(e){if(!e||typeof e!="object")return!1;for(const t of Object.values(e))if(!(!t||typeof t!="object")){for(const s of Object.values(t))if(typeof s=="object"&&s!==null){for(const a of Object.values(s))if(a!==""&&a!==null&&a!==void 0)return!0}else if(s!==""&&s!==null&&s!==void 0)return!0}return!1}var Do=A(' '),Po=A('

                            '),Lo=A('

                            '),Vo=A(`

                            Export / Import Tokens

                            Export your current SLASHED token overrides (colors, typography, spacing, etc.) to a .json file and import them on any other WordPress site running this plugin. +}`,s}function xn(e){if(!e||typeof e!="object")return!1;for(const t of Object.values(e))if(!(!t||typeof t!="object")){for(const s of Object.values(t))if(typeof s=="object"&&s!==null){for(const a of Object.values(s))if(a!==""&&a!==null&&a!==void 0)return!0}else if(s!==""&&s!==null&&s!==void 0)return!0}return!1}var Lo=R(' '),Vo=R('

                            '),Io=R('

                            '),qo=R(`

                            Export / Import Tokens

                            Export your current SLASHED token overrides (colors, typography, spacing, etc.) to a .json file and import them on any other WordPress site running this plugin. This makes Bricks templates fully portable — the template JSON carries structure and class references; this file carries the brand tokens that drive the visual result.

                            Export

                            Downloads a .json file containing all your active token overrides and plugin settings. Share this file alongside your Bricks template export so the visual result is identical on every site.

                            Import

                            Upload a .json file previously exported from this plugin. Each section is validated @@ -29,8 +29,8 @@ var Sn=Object.defineProperty;var sr=e=>{throw TypeError(e)};var En=(e,t,s)=>t in import the token file via this tab, then import the Bricks template via Bricks → Templates. The plugin re-registers all SLASHED classes, variables, and color palettes automatically.

                          • Verify in the Bricks builder canvas that colors, spacing, and fonts match. If something looks off, check the browser console for unresolved var() calls — - this means the CSS bundle isn't loading or the token file wasn't imported yet.
                          • `);function Io(e,t){ye(t,!0);let s=se(!1),a=se("");const r=E(()=>xn(H));function n(){const $=tr(H);if(!$)return;const D=new Blob([$],{type:"text/css"}),I=URL.createObjectURL(D),Y=document.createElement("a");Y.href=I,Y.download=`slashed-custom-${new Date().toISOString().slice(0,10)}.css`,Y.click(),URL.revokeObjectURL(I)}async function c(){K(s,!0),K(a,"");try{const $=await wo(),D=JSON.stringify($,null,2),I=new Blob([D],{type:"application/json"}),Y=URL.createObjectURL(I),L=document.createElement("a");L.href=Y,L.download=`slashed-tokens-${new Date().toISOString().slice(0,10)}.json`,L.click(),URL.revokeObjectURL(Y)}catch($){K(a,$.message||"Export failed",!0)}finally{K(s,!1)}}let l=se(null),o=se(!1),d=se(""),_=se(""),u=se(0);async function v(){const $=i(l)?.files?.[0];if($){K(d,""),K(_,""),K(o,!0);try{const D=await $.text(),I=JSON.parse(D),Y=await xo(I),L=Y.settings_imported?" Plugin settings restored.":"";K(d,`Imported ${Y.imported} section(s) successfully.${L}`),K(u,3);const G=setInterval(()=>{K(u,i(u)-1),i(u)<=0&&(clearInterval(G),window.location.reload())},1e3)}catch(D){K(_,D.message||"Import failed",!0)}finally{K(o,!1),i(l)&&(i(l).value="")}}}var m=Vo(),y=p(f(m),4),w=p(f(y),4),h=f(w),b=f(h),k=p(h,2),j=p(k,2);{var F=$=>{var D=Do(),I=f(D);q(()=>C(I,i(a))),z($,D)};ue(j,$=>{i(a)&&$(F)})}var V=p(y,2),S=p(f(V),4),R=f(S);ll(R,$=>K(l,$),()=>i(l));var O=p(R,2),N=f(O),M=p(S,2);{var P=$=>{var D=Po(),I=f(D),Y=p(I);{var L=G=>{var W=Wi();q(()=>C(W,`Reloading in ${i(u)??""}…`)),z(G,W)};ue(Y,G=>{i(u)>0&&G(L)})}q(()=>C(I,`${i(d)??""} `)),z($,D)};ue(M,$=>{i(d)&&$(P)})}var x=p(M,2);{var T=$=>{var D=Lo(),I=f(D);q(()=>C(I,i(_))),z($,D)};ue(x,$=>{i(_)&&$(T)})}q(()=>{h.disabled=i(s),C(b,i(s)?"Exporting…":"Download token file (.json)"),k.disabled=!i(r),Q(k,"title",i(r)?"Download overrides as a standalone CSS file":"No overrides set yet"),O.disabled=i(o),C(N,i(o)?"Importing…":"Import token file")}),ge("click",h,c),ge("click",k,n),ge("click",O,v),z(e,m),be()}Le(["click"]);var qo=A('

                            Parameters:

                             
                            '),No=A(`

                            Filter Hooks Reference

                            These WordPress filter hooks let you customize the SLASHED Bricks integration - from your theme or a mu-plugin. Each hook fires during plugin initialization.

                            `);function Bo(e){const t=[{name:"slashed_bricks/css_bundle_url",description:"Override which CSS bundle URL to load.",params:"$url (string) - The current CSS bundle URL.",example:`add_filter( 'slashed_bricks/css_bundle_url', function( $url ) { + this means the CSS bundle isn't loading or the token file wasn't imported yet.
                            `);function No(e,t){be(t,!0);let s=se(!1),a=se("");const r=j(()=>xn(H));function n(){const T=tr(H);if(!T)return;const P=new Blob([T],{type:"text/css"}),I=URL.createObjectURL(P),U=document.createElement("a");U.href=I,U.download=`slashed-custom-${new Date().toISOString().slice(0,10)}.css`,U.click(),URL.revokeObjectURL(I)}async function l(){K(s,!0),K(a,"");try{const T=await ko(),P=JSON.stringify(T,null,2),I=new Blob([P],{type:"application/json"}),U=URL.createObjectURL(I),L=document.createElement("a");L.href=U,L.download=`slashed-tokens-${new Date().toISOString().slice(0,10)}.json`,L.click(),URL.revokeObjectURL(U)}catch(T){K(a,T.message||"Export failed",!0)}finally{K(s,!1)}}let o=se(null),c=se(!1),d=se(""),_=se(""),u=se(0);async function v(){const T=i(o)?.files?.[0];if(T){K(d,""),K(_,""),K(c,!0);try{const P=await T.text(),I=JSON.parse(P),U=await So(I),L=U.settings_imported?" Plugin settings restored.":"";K(d,`Imported ${U.imported} section(s) successfully.${L}`),K(u,3);const W=setInterval(()=>{K(u,i(u)-1),i(u)<=0&&(clearInterval(W),window.location.reload())},1e3)}catch(P){K(_,P.message||"Import failed",!0)}finally{K(c,!1),i(o)&&(i(o).value="")}}}var m=qo(),b=p(f(m),4),w=p(f(b),4),h=f(w),y=f(h),k=p(h,2),A=p(k,2);{var M=T=>{var P=Lo(),I=f(P);q(()=>F(I,i(a))),z(T,P)};fe(A,T=>{i(a)&&T(M)})}var N=p(b,2),E=p(f(N),4),C=f(E);ll(C,T=>K(o,T),()=>i(o));var O=p(C,2),V=f(O),$=p(E,2);{var D=T=>{var P=Vo(),I=f(P),U=p(I);{var L=W=>{var Y=Wi();q(()=>F(Y,`Reloading in ${i(u)??""}…`)),z(W,Y)};fe(U,W=>{i(u)>0&&W(L)})}q(()=>F(I,`${i(d)??""} `)),z(T,P)};fe($,T=>{i(d)&&T(D)})}var x=p($,2);{var S=T=>{var P=Io(),I=f(P);q(()=>F(I,i(_))),z(T,P)};fe(x,T=>{i(_)&&T(S)})}q(()=>{h.disabled=i(s),F(y,i(s)?"Exporting…":"Download token file (.json)"),k.disabled=!i(r),Q(k,"title",i(r)?"Download overrides as a standalone CSS file":"No overrides set yet"),O.disabled=i(c),F(V,i(c)?"Importing…":"Import token file")}),_e("click",h,l),_e("click",k,n),_e("click",O,v),z(e,m),ye()}Oe(["click"]);var Bo=R('

                            Parameters:

                             
                            '),Ko=R(`

                            Filter Hooks Reference

                            These WordPress filter hooks let you customize the SLASHED Bricks integration + from your theme or a mu-plugin. Each hook fires during plugin initialization.

                            `);function Ho(e){const t=[{name:"slashed_bricks/css_bundle_url",description:"Override which CSS bundle URL to load.",params:"$url (string) - The current CSS bundle URL.",example:`add_filter( 'slashed_bricks/css_bundle_url', function( $url ) { // Load from a CDN instead. return 'https://cdn.example.com/slashed/slashed.optimal.css'; } );`},{name:"slashed_bricks/registered_classes",description:"Filter the array of classes before registration with Bricks.",params:"$classes (array) - Array of class definitions with name and category.",example:`add_filter( 'slashed_bricks/registered_classes', function( $classes ) { @@ -59,7 +59,7 @@ add_filter( 'slashed_bricks/inventory_local_path', function() { 'SLASHED Primary', 'SLASHED Secondary', ] ) ); -} );`}];var s=No(),a=p(f(s),4);ne(a,17,()=>t,r=>r.name,(r,n)=>{var c=qo(),l=f(c),o=f(l),d=f(o),_=p(l,2),u=f(_),v=p(_,2),m=p(f(v),2),y=f(m),w=p(v,2),h=f(w),b=f(h);q(()=>{C(d,i(n).name),C(u,i(n).description),C(y,i(n).params),C(b,i(n).example)}),z(r,c)}),z(e,s)}const Ko=[{category:"Colors",description:"Brand, status, semantic, and derived color tokens. Source colors use oklch(); the framework derives light-dark pairs, palettes, and alpha scales automatically.",tokens:[{name:"--sf-color-{brand}-light",description:"Source color for the brand (oklch registered value). Set this to rebrand."},{name:"--sf-color-{brand}-dark",description:"Optional dark-mode override. If set, replaces the auto-derived dark variant for full per-mode control."},{name:"--sf-color-{brand}",description:"Resolved light-dark adaptive color for use in rules."},{name:"--sf-color-{brand}-{50-950}",description:"Palette scale: 50 (lightest) to 950 (darkest) mixed with base/text."},{name:"--sf-color-{brand}-a{5-95}",description:"Alpha scale: 5% to 95% opacity of the brand color."},{name:"--sf-color-{brand}-hover/active/muted/subtle/ghost/lighter/darker/xlight/xdark/superlight/superdark",description:"Semantic aliases for common UI states, mapped to palette steps."},{name:"--sf-color-bg",description:"Page background color, derived from base."},{name:"--sf-color-text",description:"Main body text color, contrast-aware."},{name:"--sf-color-heading",description:"Heading text color, slightly stronger than body text."},{name:"--sf-color-link",description:"Link color, derived from action brand."},{name:"--sf-color-border",description:"Default border color."},{name:"--sf-color-surface",description:"Card/panel surface color (equals base)."},{name:"--sf-color-overlay",description:"Semi-transparent overlay for modals."},{name:"--sf-color-dim",description:"50% black overlay for dimming backgrounds."},{name:"--sf-color-success/warning/error/info/danger",description:"Status feedback colors with -light source, -muted, -strong, -subtle variants."}]},{category:"Typography",description:"Font families, sizes (fluid clamp-based scale), weights, line-heights, letter-spacing, and heading configuration.",tokens:[{name:"--sf-font-body",description:"Body font stack (system-ui default)."},{name:"--sf-font-heading",description:"Heading font stack (defaults to body)."},{name:"--sf-font-mono",description:"Monospace font stack."},{name:"--sf-font-display",description:"Display/hero font (defaults to heading)."},{name:"--sf-font-geometric/humanist/slab",description:"Curated fallback stacks for common typographic personalities."},{name:"--sf-text-{2xs..4xl}",description:"Fluid type scale using clamp(). Sizes: 2xs, xs, s, m, l, xl, 2xl, 3xl, 4xl."},{name:"--sf-text-display-{s,m,l}",description:"Extra-large display/hero sizes."},{name:"--sf-text-scale",description:"Global multiplier for the type scale (default 1)."},{name:"--sf-font-weight-{thin..black}",description:"Named weight tokens: thin(100), extralight(200), light(300), normal(400), medium(500), semibold(600), bold(700), extrabold(800), black(900)."},{name:"--sf-leading-{tight,snug,normal,relaxed}",description:"Line-height presets: 1.1, 1.3, 1.5, 1.625."},{name:"--sf-tracking-{tight,normal,wide,wider,widest}",description:"Letter-spacing presets from -0.025em to 0.1em."},{name:"--sf-h{1-6}-size/font-weight/line-height/letter-spacing",description:"Per-heading-level configuration tokens."},{name:"--sf-body-*",description:"Body text configuration: font-size, font-weight, line-height, color, text-wrap."}]},{category:"Spacing",description:"Fluid spacing scale (clamp-based), gutters, section padding, and component padding.",tokens:[{name:"--sf-space-{2xs..4xl}",description:"Fluid spacing scale. Sizes: none, px, 2xs, xs, s, m, l, xl, 2xl, 3xl, 4xl."},{name:"--sf-space-scale",description:"Global multiplier for all space tokens (default 1)."},{name:"--sf-space-gutter",description:"Page-edge gutter (defaults to space-l)."},{name:"--sf-gap",description:"Default gap for layouts (defaults to space-m)."},{name:"--sf-content-gap",description:"Gap between content elements (defaults to space-s)."},{name:"--sf-section-pad--{s,m,l,xl}",description:"Vertical padding for page sections."},{name:"--sf-component-pad",description:"Internal padding for components (defaults to space-m)."},{name:"--sf-header-height",description:"Expected fixed header height for sticky offset calculations."},{name:"--sf-safe-{top,right,bottom,left}",description:"Safe area insets for notched devices."}]},{category:"Sizing",description:"Component sizes, touch targets, and aspect ratios.",tokens:[{name:"--sf-size-{xs..xl}",description:"Named size tokens: xs(1.5rem), s(2rem), m(2.5rem), l(2.75rem), xl(3.5rem)."},{name:"--sf-touch-target",description:"Minimum interactive element size (defaults to size-l, 2.75rem)."},{name:"--sf-ratio-{square,photo,video,cinema,golden,portrait}",description:"Predefined aspect ratios for frames and containers."},{name:"--sf-icon-{xs..xl}",description:"Icon sizing in em units (0.875em to 3em)."}]},{category:"Layout",description:"Container widths, layout primitive tokens (stack, cluster, grid, sidebar, switcher, bento, cover, frame, reel, imposter).",tokens:[{name:"--sf-container-{narrow,default,prose,wide,full}",description:"Max-width presets for .sf-container."},{name:"--sf-stack-gap",description:"Vertical gap between .sf-stack children."},{name:"--sf-cluster-gap/align/justify",description:"Inline cluster layout tokens."},{name:"--sf-sidebar-width/gap/min-width",description:"Sidebar layout tokens."},{name:"--sf-switcher-threshold/gap",description:"Column-to-stack breakpoint and gap."},{name:"--sf-grid-min/gap",description:"Auto-fill grid minimum item width and gap."},{name:"--sf-bento-cols/gap/row",description:"Dense bento grid configuration."},{name:"--sf-cover-min-height/padding",description:"Full-height cover layout."},{name:"--sf-frame-ratio",description:"Aspect ratio for .sf-frame (defaults to 16/9)."},{name:"--sf-reel-gap/height/item-width",description:"Horizontal scroll strip configuration."},{name:"--sf-imposter-margin",description:"Safety margin for absolute-centered overlays."},{name:"--sf-breakout-width/content-width",description:"Breakout grid track widths."},{name:"--sf-divider-color/style/width",description:"Divider appearance tokens."}]},{category:"Borders",description:"Border widths and styles.",tokens:[{name:"--sf-border-width-{hairline,1,2,3,4}",description:"Border width scale: 0.5px, 1px, 2px, 3px, 4px."},{name:"--sf-border-style/dotted/soft/strong",description:"Border style presets (solid, dotted, dashed, solid)."},{name:"--sf-stroke-{thin,regular,bold,heavy}",description:"Stroke widths for SVG/icon use: 1px, 1.5px, 2px, 3px."}]},{category:"Radius",description:"Border radius scale and special shapes.",tokens:[{name:"--sf-radius-{none,xs,s,m,l,xl,2xl,3xl,4xl,full}",description:"Radius scale from 0 to 9999px (pill)."},{name:"--sf-radius-scale",description:"Global multiplier for all radius tokens (default 1)."},{name:"--sf-radius-pill",description:"Fully rounded (9999px)."},{name:"--sf-radius-outer",description:"Outer radius = inner + padding (for nested rounding)."}]},{category:"Shadows",description:"Box shadows, drop shadows, text shadows, and shadow configuration.",tokens:[{name:"--sf-shadow-{xs,s,m,l,xl,2xl}",description:"Elevation shadow scale, progressively more dramatic."},{name:"--sf-shadow-inner",description:"Inset shadow for recessed elements."},{name:"--sf-shadow-glow",description:"Colored glow effect (uses --sf-shadow-glow-color)."},{name:"--sf-shadow-none",description:"Explicit no-shadow value."},{name:"--sf-shadow-color",description:"Base shadow color (derived from neutral)."},{name:"--sf-shadow-strength",description:"Shadow opacity multiplier (adapts to dark mode)."},{name:"--sf-drop-shadow-{s,m,l}",description:"CSS filter drop-shadow equivalents."},{name:"--sf-text-shadow-{s,m,l,none}",description:"Text shadow presets."}]},{category:"Effects",description:"Blurs, opacities, gradients, masks, and perspective.",tokens:[{name:"--sf-blur-{xs,s,m,l,xl}",description:"Blur radius scale: 4px to 48px."},{name:"--sf-opacity-{0,10,25,50,75,100,disabled}",description:"Named opacity presets."},{name:"--sf-gradient-{brand,primary,secondary,tertiary,surface}",description:"Predefined gradients using brand colors."},{name:"--sf-gradient-fade--{t,b,l,r}",description:"Directional fade-to-background gradients."},{name:"--sf-mask-scrim-start/end",description:"Scroll mask fade depth."},{name:"--sf-perspective-{near,normal,far}",description:"3D perspective presets: 500px, 1000px, 2000px."},{name:"--sf-contrast-bias/threshold",description:"Color contrast tuning for auto text-on-color logic."}]},{category:"Motion",description:"Durations, easing curves, transitions, and animations.",tokens:[{name:"--sf-duration-{none,instant,fast,normal,slow,slower}",description:"Duration scale: 0ms to 600ms (respects --sf-motion-scale)."},{name:"--sf-motion-scale",description:"Global animation speed multiplier (set 0 to disable)."},{name:"--sf-ease-{linear,in,out,in-out,bounce,elastic,overshoot,spring}",description:"Easing function presets."},{name:"--sf-transition-{all,colors,opacity,shadow,transform,fast,slow,enter,exit}",description:"Pre-composed transition shorthands."},{name:"--sf-animation-{fade-in,fade-out,scale-up,scale-down,slide-in-*,float,ping,blink,color-pulse}",description:"Named keyframe animation shorthands."},{name:"--sf-animation-delay-{1-5}",description:"Stagger delays for sequential animations."}]},{category:"Z-Index",description:"Z-index scale for predictable layering.",tokens:[{name:"--sf-z-{below,base,raised,low,mid,high,top,max}",description:"Z-index scale: -1, 0, 1, 10, 100, 500, 900, 9999."}]},{category:"Focus",description:"Focus ring appearance for keyboard navigation.",tokens:[{name:"--sf-focus-ring-width/offset/color/style/shadow",description:"Focus indicator configuration."},{name:"--sf-caret-color",description:"Text input caret color (defaults to action)."}]},{category:"Scroll",description:"Scroll timeline and scrollbar styling.",tokens:[{name:"--sf-scroll-timeline-range-start/end",description:"Scroll-driven animation range."},{name:"--sf-scrollbar-thumb/track",description:"Custom scrollbar colors."}]},{category:"Print",description:"Print stylesheet configuration.",tokens:[{name:"--sf-print-base-size/page-margin/page-size",description:"Print layout tokens: 11pt base, 2cm margins, A4 size."}]}],Ho=[{category:"Layout Primitives",description:"Breakpoint-free, container-query-driven layout components. Each is a single class with per-instance token overrides via inline style.",classes:[{name:".sf-section",description:"Vertical page rhythm with size variants (--s/--m/--l/--xl/--collapse)."},{name:".sf-section-group",description:"Collapses gap between adjacent sections."},{name:".sf-container",description:"Centered max-width wrapper with gutters. Variants: --narrow, --wide, --full, --prose."},{name:".sf-box",description:"Isolated unit with padding and optional border."},{name:".sf-center",description:"Intrinsic centering with max-width. Variant: --intrinsic."},{name:".sf-stack",description:"Vertical flow with consistent gap. Size variants: --2xs to --3xl. Alignment: --center, --end, --stretch."},{name:".sf-cluster",description:"Wrapping inline group. Size variants: --2xs to --xl. Alignment: --center, --end, --between. Wrap: --no-wrap."},{name:".sf-sidebar",description:"Content + side panel that wraps. Variants: --right, --narrow, --wide."},{name:".sf-switcher",description:"N columns above threshold, stacked below. Variants: --no-wrap, --vertical."},{name:".sf-grid",description:"Auto-fill responsive grid. Size variants: --xs to --xl. Variants: --fit, --dense."},{name:".sf-grid-{1,2,3,4,6}",description:"Fixed-column grids, container-responsive."},{name:".sf-grid-{1-2,2-1,1-3,3-1}",description:"Ratio two-column grids."},{name:".sf-bento",description:"Dense free-form grid. Variants: --2, --4, --compact, --tall."},{name:".sf-alternate",description:"Zigzag two-column layout, reverses every other row."},{name:".sf-pancake",description:"Sticky-footer grid: header / main(1fr) / footer."},{name:".sf-content-grid",description:"Breakout layout grid. Children use .sf-breakout or .sf-full-bleed."},{name:".sf-cover",description:"Full-height region with centered content. Variants: --min, --max, --padding-s, --padding-l."},{name:".sf-frame",description:"Aspect-ratio media box. Variants: --square, --portrait, --video, --cinema, --3-2, --4-3, --golden."},{name:".sf-reel",description:"Horizontal scroll strip with optional mask fade."},{name:".sf-imposter",description:"Absolutely-centered overlay. Variants: --fixed, --contain."},{name:".sf-subgrid / .sf-subgrid-rows",description:"Inherit parent grid tracks."},{name:".sf-divider",description:"Token-driven separator. Variant: --vertical."},{name:".sf-icon",description:"Em-based inline icon sizing. Sizes: --xs to --xl. Variant: --boxed."},{name:".sf-prose",description:"Readable long-form text with automatic vertical rhythm."},{name:".sf-not-prose",description:"Reset zone inside .sf-prose for embedded components."}]},{category:"Macros",description:"Recipe classes that answer 'what does this element do/look like?' - composable with layout primitives.",classes:[{name:".sf-flow",description:"Lobotomized owl: consistent gap between consecutive children."},{name:".sf-truncate",description:"Single-line ellipsis overflow."},{name:".sf-line-clamp-{2,3,N}",description:"Multi-line text clamping with ellipsis. -N reads --sf-line-clamp."},{name:".sf-equal-height",description:"Forces flex children to share the tallest child's height."},{name:".sf-aspect",description:"Generic aspect-ratio container (reads --sf-aspect token)."},{name:".sf-scroll-shadow",description:"Top + bottom mask gradient for scrolling containers."},{name:".sf-scroll-snap",description:"Vertical scroll-snap container."},{name:".sf-overflow-fade",description:"End-edge horizontal fade for overflowing inline content."},{name:".sf-no-tap-highlight",description:"Suppresses WebKit/Android tap highlight."},{name:".sf-text-gradient",description:"Gradient text effect using background-clip."},{name:".sf-clickable-parent",description:"Makes an entire card clickable via the first link inside."},{name:".sf-link-external",description:"Adds external link indicator marker."}]},{category:"Surfaces",description:"Color surface utility classes that set background and text color for a brand context.",classes:[{name:".sf-surface--{primary,secondary,tertiary,action,neutral,inverse}",description:"Brand-colored surface with auto-contrast text."},{name:".sf-surface--{success,warning,error,info,danger}",description:"Status-colored surfaces."}]},{category:"Animations",description:"CSS animation utility classes that apply predefined keyframe animations.",classes:[{name:".sf-fade-in / .sf-fade-out",description:"Opacity entrance/exit animations."},{name:".sf-scale-up / .sf-scale-down",description:"Scale entrance/exit animations."},{name:".sf-slide-in-{up,down,left,right}",description:"Directional slide-in entrance animations."},{name:".sf-color-pulse",description:"Continuous color pulse animation."},{name:".sf-entrance--fade / --fade-up / --fade-down / --fade-left / --fade-right / --scale-up",description:"Scroll-triggered entrance animations (scroll-timeline driven)."}]},{category:"State Classes (.is-*)",description:"Runtime state classes toggled by JS or mirrored from ARIA. They live in the slashed.states layer. Always pair with matching ARIA attributes.",classes:[{name:".is-hidden / .is-invisible / .is-visible",description:"Visibility control: removed from layout / hidden but keeps box / visible."},{name:".is-disabled / .is-readonly",description:"Non-interactive states with dimming."},{name:".is-loading / .is-pending / .is-busy",description:"Loading states: spinner replacement / optimistic UI / cursor hint."},{name:".is-skeleton",description:"Placeholder shimmer animation."},{name:".is-active / .is-selected / .is-current / .is-pressed",description:"Selection/activation states."},{name:".is-highlighted",description:"Transient emphasis (e.g. search result highlight)."},{name:".is-open / .is-collapsed / .is-expanded",description:"Disclosure states for modals, drawers, accordions."},{name:".is-valid / .is-invalid",description:"Form field validation results (maps to aria-invalid)."},{name:".is-success / .is-error / .is-warning / .is-info / .is-danger",description:"General feedback states and destructive-action context."},{name:".is-sticky / .is-pinned / .is-fixed / .is-fullscreen",description:"Positioning states."},{name:".is-clipped / .is-scrollable / .is-truncated / .is-resizable",description:"Overflow handling states."},{name:".is-dragging / .is-drop-target / .is-draggable",description:"Drag and drop states."},{name:".is-overlay / .is-focused / .is-clickable / .is-unselectable",description:"Positioning, focus, cursor, and selection states."},{name:".is-empty",description:"Hide element when empty (:empty pseudo-class)."}]}],Uo=[{name:"--sf-is-dark",description:"Numeric flag (0 or 1) indicating dark mode is active. Registered property."},{name:"--sf-lumlocker",description:"Internal luminance lock value for color derivation."},{name:"--sf-color-scheme",description:"CSS color-scheme declaration (light dark)."},{name:"--sf-current-font-weight",description:"Current context font weight (used by strong elements)."},{name:"--sf-link-external-marker",description:"External link arrow character."},{name:"--sf-field-block",description:"Vertical spacing between form fields."},{name:"--sf-field-required-marker",description:"Required field indicator string."}];var Go=A('
                          • '),Wo=A('
                              '),Yo=A('
                            • '),Xo=A('
                              Misc Tokens that do not fit a single category.
                                '),Zo=A('

                                CSS Custom Properties (--sf-*)

                                '),Jo=A('
                              • '),Qo=A('
                                  '),ec=A('

                                  Utility & State Classes

                                  '),tc=A('

                                  '),sc=A('

                                  API Cheatsheet

                                  ');function ac(e,t){ye(t,!0);let s=se(""),a=se("all");const r=re.inventory?.variables?.length??0,n=re.inventory?.sf_classes?.length??0,c=re.inventory?.is_classes?.length??0;let l=E(()=>u(Ko,"tokens")),o=E(()=>u(Ho,"classes")),d=E(()=>Uo.filter(L=>_(L.name,L.description)));function _(L,G){if(!i(s).trim())return!0;const W=i(s).trim().toLowerCase();return L.toLowerCase().includes(W)||G.toLowerCase().includes(W)}function u(L,G){return i(s).trim()?L.map(W=>({...W,[G]:W[G].filter(le=>_(le.name,le.description))})).filter(W=>W[G].length>0):L}let v=E(()=>i(a)==="all"||i(a)==="variables"),m=E(()=>i(a)==="all"||i(a)==="classes"),y=E(()=>i(s).trim()!==""&&(!i(v)||i(l).length===0&&i(d).length===0)&&(!i(m)||i(o).length===0));var w=sc(),h=f(w),b=p(f(h),2),k=f(b),j=p(h,2),F=f(j),V=p(F,2),S=f(V);let R;var O=p(S,2);let N;var M=p(O,2);let P;var x=p(j,2);{var T=L=>{var G=Zo(),W=p(f(G),2);ne(W,17,()=>i(l),ks,(oe,pe)=>{var B=Wo(),ee=f(B),he=f(ee),we=f(he),je=p(he,2),$e=f(je),Oe=p(ee,2);ne(Oe,21,()=>i(pe).tokens,ks,(Ae,de)=>{var xe=Go(),Te=f(xe),_e=f(Te),Ke=p(Te,2),nt=f(Ke);q(()=>{C(_e,i(de).name),C(nt,i(de).description)}),z(Ae,xe)}),q(Ae=>{B.open=Ae,C(we,i(pe).category),C($e,i(pe).description)},[()=>!i(s).trim()]),z(oe,B)});var le=p(W,2);{var ve=oe=>{var pe=Xo(),B=p(f(pe),2);ne(B,21,()=>i(d),ks,(ee,he)=>{var we=Yo(),je=f(we),$e=f(je),Oe=p(je,2),Ae=f(Oe);q(()=>{C($e,i(he).name),C(Ae,i(he).description)}),z(ee,we)}),q(ee=>pe.open=ee,[()=>!i(s).trim()]),z(oe,pe)};ue(le,oe=>{i(d).length>0&&oe(ve)})}z(L,G)};ue(x,L=>{i(v)&&L(T)})}var $=p(x,2);{var D=L=>{var G=ec(),W=p(f(G),2);ne(W,17,()=>i(o),ks,(le,ve)=>{var oe=Qo(),pe=f(oe),B=f(pe),ee=f(B),he=p(B,2),we=f(he),je=p(pe,2);ne(je,21,()=>i(ve).classes,ks,($e,Oe)=>{var Ae=Jo(),de=f(Ae),xe=f(de),Te=p(de,2),_e=f(Te);q(()=>{C(xe,i(Oe).name),C(_e,i(Oe).description)}),z($e,Ae)}),q($e=>{oe.open=$e,C(ee,i(ve).category),C(we,i(ve).description)},[()=>!i(s).trim()]),z(le,oe)}),z(L,G)};ue($,L=>{i(m)&&L(D)})}var I=p($,2);{var Y=L=>{var G=tc(),W=f(G);q(()=>C(W,`No results for "${i(s)??""}"`)),z(L,G)};ue(I,L=>{i(y)&&L(Y)})}q(()=>{C(k,`${r??""} variables | ${n??""} layout/utility classes | ${c??""} state classes`),Q(S,"aria-pressed",i(a)==="all"),R=ut(S,1,"svelte-osej3t",null,R,{active:i(a)==="all"}),Q(O,"aria-pressed",i(a)==="variables"),N=ut(O,1,"svelte-osej3t",null,N,{active:i(a)==="variables"}),Q(M,"aria-pressed",i(a)==="classes"),P=ut(M,1,"svelte-osej3t",null,P,{active:i(a)==="classes"})}),$t(F,()=>i(s),L=>K(s,L)),ge("click",S,()=>K(a,"all")),ge("click",O,()=>K(a,"variables")),ge("click",M,()=>K(a,"classes")),z(e,w),be()}Le(["click"]);var rc=A('
                                  '),nc=A('
                                  '),ic=A(`

                                  Live preview

                                  The quick brown fox jumps over the lazy dog

                                  Body and heading fonts update as you adjust typography settings. Colors below +} );`}];var s=Ko(),a=p(f(s),4);ne(a,17,()=>t,r=>r.name,(r,n)=>{var l=Bo(),o=f(l),c=f(o),d=f(c),_=p(o,2),u=f(_),v=p(_,2),m=p(f(v),2),b=f(m),w=p(v,2),h=f(w),y=f(h);q(()=>{F(d,i(n).name),F(u,i(n).description),F(b,i(n).params),F(y,i(n).example)}),z(r,l)}),z(e,s)}const Uo=[{category:"Colors",description:"Brand, status, semantic, and derived color tokens. Source colors use oklch(); the framework derives light-dark pairs, palettes, and alpha scales automatically.",tokens:[{name:"--sf-color-{brand}-light",description:"Source color for the brand (oklch registered value). Set this to rebrand."},{name:"--sf-color-{brand}-dark",description:"Optional dark-mode override. If set, replaces the auto-derived dark variant for full per-mode control."},{name:"--sf-color-{brand}",description:"Resolved light-dark adaptive color for use in rules."},{name:"--sf-color-{brand}-{50-950}",description:"Palette scale: 50 (lightest) to 950 (darkest) mixed with base/text."},{name:"--sf-color-{brand}-a{5-95}",description:"Alpha scale: 5% to 95% opacity of the brand color."},{name:"--sf-color-{brand}-hover/active/muted/subtle/ghost/lighter/darker/xlight/xdark/superlight/superdark",description:"Semantic aliases for common UI states, mapped to palette steps."},{name:"--sf-color-bg",description:"Page background color, derived from base."},{name:"--sf-color-text",description:"Main body text color, contrast-aware."},{name:"--sf-color-heading",description:"Heading text color, slightly stronger than body text."},{name:"--sf-color-link",description:"Link color, derived from action brand."},{name:"--sf-color-border",description:"Default border color."},{name:"--sf-color-surface",description:"Card/panel surface color (equals base)."},{name:"--sf-color-overlay",description:"Semi-transparent overlay for modals."},{name:"--sf-color-dim",description:"50% black overlay for dimming backgrounds."},{name:"--sf-color-success/warning/error/info/danger",description:"Status feedback colors with -light source, -muted, -strong, -subtle variants."}]},{category:"Typography",description:"Font families, sizes (fluid clamp-based scale), weights, line-heights, letter-spacing, and heading configuration.",tokens:[{name:"--sf-font-body",description:"Body font stack (system-ui default)."},{name:"--sf-font-heading",description:"Heading font stack (defaults to body)."},{name:"--sf-font-mono",description:"Monospace font stack."},{name:"--sf-font-display",description:"Display/hero font (defaults to heading)."},{name:"--sf-font-geometric/humanist/slab",description:"Curated fallback stacks for common typographic personalities."},{name:"--sf-text-{2xs..4xl}",description:"Fluid type scale using clamp(). Sizes: 2xs, xs, s, m, l, xl, 2xl, 3xl, 4xl."},{name:"--sf-text-display-{s,m,l}",description:"Extra-large display/hero sizes."},{name:"--sf-text-scale",description:"Global multiplier for the type scale (default 1)."},{name:"--sf-font-weight-{thin..black}",description:"Named weight tokens: thin(100), extralight(200), light(300), normal(400), medium(500), semibold(600), bold(700), extrabold(800), black(900)."},{name:"--sf-leading-{tight,snug,normal,relaxed}",description:"Line-height presets: 1.1, 1.3, 1.5, 1.625."},{name:"--sf-tracking-{tight,normal,wide,wider,widest}",description:"Letter-spacing presets from -0.025em to 0.1em."},{name:"--sf-h{1-6}-size/font-weight/line-height/letter-spacing",description:"Per-heading-level configuration tokens."},{name:"--sf-body-*",description:"Body text configuration: font-size, font-weight, line-height, color, text-wrap."}]},{category:"Spacing",description:"Fluid spacing scale (clamp-based), gutters, section padding, and component padding.",tokens:[{name:"--sf-space-{2xs..4xl}",description:"Fluid spacing scale. Sizes: none, px, 2xs, xs, s, m, l, xl, 2xl, 3xl, 4xl."},{name:"--sf-space-scale",description:"Global multiplier for all space tokens (default 1)."},{name:"--sf-space-gutter",description:"Page-edge gutter (defaults to space-l)."},{name:"--sf-gap",description:"Default gap for layouts (defaults to space-m)."},{name:"--sf-content-gap",description:"Gap between content elements (defaults to space-s)."},{name:"--sf-section-pad--{s,m,l,xl}",description:"Vertical padding for page sections."},{name:"--sf-component-pad",description:"Internal padding for components (defaults to space-m)."},{name:"--sf-header-height",description:"Expected fixed header height for sticky offset calculations."},{name:"--sf-safe-{top,right,bottom,left}",description:"Safe area insets for notched devices."}]},{category:"Sizing",description:"Component sizes, touch targets, and aspect ratios.",tokens:[{name:"--sf-size-{xs..xl}",description:"Named size tokens: xs(1.5rem), s(2rem), m(2.5rem), l(2.75rem), xl(3.5rem)."},{name:"--sf-touch-target",description:"Minimum interactive element size (defaults to size-l, 2.75rem)."},{name:"--sf-ratio-{square,photo,video,cinema,golden,portrait}",description:"Predefined aspect ratios for frames and containers."},{name:"--sf-icon-{xs..xl}",description:"Icon sizing in em units (0.875em to 3em)."}]},{category:"Layout",description:"Container widths, layout primitive tokens (stack, cluster, grid, sidebar, switcher, bento, cover, frame, reel, imposter).",tokens:[{name:"--sf-container-{narrow,default,prose,wide,full}",description:"Max-width presets for .sf-container."},{name:"--sf-stack-gap",description:"Vertical gap between .sf-stack children."},{name:"--sf-cluster-gap/align/justify",description:"Inline cluster layout tokens."},{name:"--sf-sidebar-width/gap/min-width",description:"Sidebar layout tokens."},{name:"--sf-switcher-threshold/gap",description:"Column-to-stack breakpoint and gap."},{name:"--sf-grid-min/gap",description:"Auto-fill grid minimum item width and gap."},{name:"--sf-bento-cols/gap/row",description:"Dense bento grid configuration."},{name:"--sf-cover-min-height/padding",description:"Full-height cover layout."},{name:"--sf-frame-ratio",description:"Aspect ratio for .sf-frame (defaults to 16/9)."},{name:"--sf-reel-gap/height/item-width",description:"Horizontal scroll strip configuration."},{name:"--sf-imposter-margin",description:"Safety margin for absolute-centered overlays."},{name:"--sf-breakout-width/content-width",description:"Breakout grid track widths."},{name:"--sf-divider-color/style/width",description:"Divider appearance tokens."}]},{category:"Borders",description:"Border widths and styles.",tokens:[{name:"--sf-border-width-{hairline,1,2,3,4}",description:"Border width scale: 0.5px, 1px, 2px, 3px, 4px."},{name:"--sf-border-style/dotted/soft/strong",description:"Border style presets (solid, dotted, dashed, solid)."},{name:"--sf-stroke-{thin,regular,bold,heavy}",description:"Stroke widths for SVG/icon use: 1px, 1.5px, 2px, 3px."}]},{category:"Radius",description:"Border radius scale and special shapes.",tokens:[{name:"--sf-radius-{none,xs,s,m,l,xl,2xl,3xl,4xl,full}",description:"Radius scale from 0 to 9999px (pill)."},{name:"--sf-radius-scale",description:"Global multiplier for all radius tokens (default 1)."},{name:"--sf-radius-pill",description:"Fully rounded (9999px)."},{name:"--sf-radius-outer",description:"Outer radius = inner + padding (for nested rounding)."}]},{category:"Shadows",description:"Box shadows, drop shadows, text shadows, and shadow configuration.",tokens:[{name:"--sf-shadow-{xs,s,m,l,xl,2xl}",description:"Elevation shadow scale, progressively more dramatic."},{name:"--sf-shadow-inner",description:"Inset shadow for recessed elements."},{name:"--sf-shadow-glow",description:"Colored glow effect (uses --sf-shadow-glow-color)."},{name:"--sf-shadow-none",description:"Explicit no-shadow value."},{name:"--sf-shadow-color",description:"Base shadow color (derived from neutral)."},{name:"--sf-shadow-strength",description:"Shadow opacity multiplier (adapts to dark mode)."},{name:"--sf-drop-shadow-{s,m,l}",description:"CSS filter drop-shadow equivalents."},{name:"--sf-text-shadow-{s,m,l,none}",description:"Text shadow presets."}]},{category:"Effects",description:"Blurs, opacities, gradients, masks, and perspective.",tokens:[{name:"--sf-blur-{xs,s,m,l,xl}",description:"Blur radius scale: 4px to 48px."},{name:"--sf-opacity-{0,10,25,50,75,100,disabled}",description:"Named opacity presets."},{name:"--sf-gradient-{brand,primary,secondary,tertiary,surface}",description:"Predefined gradients using brand colors."},{name:"--sf-gradient-fade--{t,b,l,r}",description:"Directional fade-to-background gradients."},{name:"--sf-mask-scrim-start/end",description:"Scroll mask fade depth."},{name:"--sf-perspective-{near,normal,far}",description:"3D perspective presets: 500px, 1000px, 2000px."},{name:"--sf-contrast-bias/threshold",description:"Color contrast tuning for auto text-on-color logic."}]},{category:"Motion",description:"Durations, easing curves, transitions, and animations.",tokens:[{name:"--sf-duration-{none,instant,fast,normal,slow,slower}",description:"Duration scale: 0ms to 600ms (respects --sf-motion-scale)."},{name:"--sf-motion-scale",description:"Global animation speed multiplier (set 0 to disable)."},{name:"--sf-ease-{linear,in,out,in-out,bounce,elastic,overshoot,spring}",description:"Easing function presets."},{name:"--sf-transition-{all,colors,opacity,shadow,transform,fast,slow,enter,exit}",description:"Pre-composed transition shorthands."},{name:"--sf-animation-{fade-in,fade-out,scale-up,scale-down,slide-in-*,float,ping,blink,color-pulse}",description:"Named keyframe animation shorthands."},{name:"--sf-animation-delay-{1-5}",description:"Stagger delays for sequential animations."}]},{category:"Z-Index",description:"Z-index scale for predictable layering.",tokens:[{name:"--sf-z-{below,base,raised,low,mid,high,top,max}",description:"Z-index scale: -1, 0, 1, 10, 100, 500, 900, 9999."}]},{category:"Focus",description:"Focus ring appearance for keyboard navigation.",tokens:[{name:"--sf-focus-ring-width/offset/color/style/shadow",description:"Focus indicator configuration."},{name:"--sf-caret-color",description:"Text input caret color (defaults to action)."}]},{category:"Scroll",description:"Scroll timeline and scrollbar styling.",tokens:[{name:"--sf-scroll-timeline-range-start/end",description:"Scroll-driven animation range."},{name:"--sf-scrollbar-thumb/track",description:"Custom scrollbar colors."}]},{category:"Print",description:"Print stylesheet configuration.",tokens:[{name:"--sf-print-base-size/page-margin/page-size",description:"Print layout tokens: 11pt base, 2cm margins, A4 size."}]}],Go=[{category:"Layout Primitives",description:"Breakpoint-free, container-query-driven layout components. Each is a single class with per-instance token overrides via inline style.",classes:[{name:".sf-section",description:"Vertical page rhythm with size variants (--s/--m/--l/--xl/--collapse)."},{name:".sf-section-group",description:"Collapses gap between adjacent sections."},{name:".sf-container",description:"Centered max-width wrapper with gutters. Variants: --narrow, --wide, --full, --prose."},{name:".sf-box",description:"Isolated unit with padding and optional border."},{name:".sf-center",description:"Intrinsic centering with max-width. Variant: --intrinsic."},{name:".sf-stack",description:"Vertical flow with consistent gap. Size variants: --2xs to --3xl. Alignment: --center, --end, --stretch."},{name:".sf-cluster",description:"Wrapping inline group. Size variants: --2xs to --xl. Alignment: --center, --end, --between. Wrap: --no-wrap."},{name:".sf-sidebar",description:"Content + side panel that wraps. Variants: --right, --narrow, --wide."},{name:".sf-switcher",description:"N columns above threshold, stacked below. Variants: --no-wrap, --vertical."},{name:".sf-grid",description:"Auto-fill responsive grid. Size variants: --xs to --xl. Variants: --fit, --dense."},{name:".sf-grid-{1,2,3,4,6}",description:"Fixed-column grids, container-responsive."},{name:".sf-grid-{1-2,2-1,1-3,3-1}",description:"Ratio two-column grids."},{name:".sf-bento",description:"Dense free-form grid. Variants: --2, --4, --compact, --tall."},{name:".sf-alternate",description:"Zigzag two-column layout, reverses every other row."},{name:".sf-pancake",description:"Sticky-footer grid: header / main(1fr) / footer."},{name:".sf-content-grid",description:"Breakout layout grid. Children use .sf-breakout or .sf-full-bleed."},{name:".sf-cover",description:"Full-height region with centered content. Variants: --min, --max, --padding-s, --padding-l."},{name:".sf-frame",description:"Aspect-ratio media box. Variants: --square, --portrait, --video, --cinema, --3-2, --4-3, --golden."},{name:".sf-reel",description:"Horizontal scroll strip with optional mask fade."},{name:".sf-imposter",description:"Absolutely-centered overlay. Variants: --fixed, --contain."},{name:".sf-subgrid / .sf-subgrid-rows",description:"Inherit parent grid tracks."},{name:".sf-divider",description:"Token-driven separator. Variant: --vertical."},{name:".sf-icon",description:"Em-based inline icon sizing. Sizes: --xs to --xl. Variant: --boxed."},{name:".sf-prose",description:"Readable long-form text with automatic vertical rhythm."},{name:".sf-not-prose",description:"Reset zone inside .sf-prose for embedded components."}]},{category:"Macros",description:"Recipe classes that answer 'what does this element do/look like?' - composable with layout primitives.",classes:[{name:".sf-flow",description:"Lobotomized owl: consistent gap between consecutive children."},{name:".sf-truncate",description:"Single-line ellipsis overflow."},{name:".sf-line-clamp-{2,3,N}",description:"Multi-line text clamping with ellipsis. -N reads --sf-line-clamp."},{name:".sf-equal-height",description:"Forces flex children to share the tallest child's height."},{name:".sf-aspect",description:"Generic aspect-ratio container (reads --sf-aspect token)."},{name:".sf-scroll-shadow",description:"Top + bottom mask gradient for scrolling containers."},{name:".sf-scroll-snap",description:"Vertical scroll-snap container."},{name:".sf-overflow-fade",description:"End-edge horizontal fade for overflowing inline content."},{name:".sf-no-tap-highlight",description:"Suppresses WebKit/Android tap highlight."},{name:".sf-text-gradient",description:"Gradient text effect using background-clip."},{name:".sf-clickable-parent",description:"Makes an entire card clickable via the first link inside."},{name:".sf-link-external",description:"Adds external link indicator marker."}]},{category:"Surfaces",description:"Color surface utility classes that set background and text color for a brand context.",classes:[{name:".sf-surface--{primary,secondary,tertiary,action,neutral,inverse}",description:"Brand-colored surface with auto-contrast text."},{name:".sf-surface--{success,warning,error,info,danger}",description:"Status-colored surfaces."}]},{category:"Animations",description:"CSS animation utility classes that apply predefined keyframe animations.",classes:[{name:".sf-fade-in / .sf-fade-out",description:"Opacity entrance/exit animations."},{name:".sf-scale-up / .sf-scale-down",description:"Scale entrance/exit animations."},{name:".sf-slide-in-{up,down,left,right}",description:"Directional slide-in entrance animations."},{name:".sf-color-pulse",description:"Continuous color pulse animation."},{name:".sf-entrance--fade / --fade-up / --fade-down / --fade-left / --fade-right / --scale-up",description:"Scroll-triggered entrance animations (scroll-timeline driven)."}]},{category:"State Classes (.is-*)",description:"Runtime state classes toggled by JS or mirrored from ARIA. They live in the slashed.states layer. Always pair with matching ARIA attributes.",classes:[{name:".is-hidden / .is-invisible / .is-visible",description:"Visibility control: removed from layout / hidden but keeps box / visible."},{name:".is-disabled / .is-readonly",description:"Non-interactive states with dimming."},{name:".is-loading / .is-pending / .is-busy",description:"Loading states: spinner replacement / optimistic UI / cursor hint."},{name:".is-skeleton",description:"Placeholder shimmer animation."},{name:".is-active / .is-selected / .is-current / .is-pressed",description:"Selection/activation states."},{name:".is-highlighted",description:"Transient emphasis (e.g. search result highlight)."},{name:".is-open / .is-collapsed / .is-expanded",description:"Disclosure states for modals, drawers, accordions."},{name:".is-valid / .is-invalid",description:"Form field validation results (maps to aria-invalid)."},{name:".is-success / .is-error / .is-warning / .is-info / .is-danger",description:"General feedback states and destructive-action context."},{name:".is-sticky / .is-pinned / .is-fixed / .is-fullscreen",description:"Positioning states."},{name:".is-clipped / .is-scrollable / .is-truncated / .is-resizable",description:"Overflow handling states."},{name:".is-dragging / .is-drop-target / .is-draggable",description:"Drag and drop states."},{name:".is-overlay / .is-focused / .is-clickable / .is-unselectable",description:"Positioning, focus, cursor, and selection states."},{name:".is-empty",description:"Hide element when empty (:empty pseudo-class)."}]}],Wo=[{name:"--sf-is-dark",description:"Numeric flag (0 or 1) indicating dark mode is active. Registered property."},{name:"--sf-lumlocker",description:"Internal luminance lock value for color derivation."},{name:"--sf-color-scheme",description:"CSS color-scheme declaration (light dark)."},{name:"--sf-current-font-weight",description:"Current context font weight (used by strong elements)."},{name:"--sf-link-external-marker",description:"External link arrow character."},{name:"--sf-field-block",description:"Vertical spacing between form fields."},{name:"--sf-field-required-marker",description:"Required field indicator string."}];var Yo=R('

                                • '),Xo=R('
                                    '),Zo=R('
                                  • '),Jo=R('
                                    Misc Tokens that do not fit a single category.
                                      '),Qo=R('

                                      CSS Custom Properties (--sf-*)

                                      '),ec=R('
                                    • '),tc=R('
                                        '),sc=R('

                                        Utility & State Classes

                                        '),ac=R('

                                        '),rc=R('

                                        API Cheatsheet

                                        ');function nc(e,t){be(t,!0);let s=se(""),a=se("all");const r=re.inventory?.variables?.length??0,n=re.inventory?.sf_classes?.length??0,l=re.inventory?.is_classes?.length??0;let o=j(()=>u(Uo,"tokens")),c=j(()=>u(Go,"classes")),d=j(()=>Wo.filter(L=>_(L.name,L.description)));function _(L,W){if(!i(s).trim())return!0;const Y=i(s).trim().toLowerCase();return L.toLowerCase().includes(Y)||W.toLowerCase().includes(Y)}function u(L,W){return i(s).trim()?L.map(Y=>({...Y,[W]:Y[W].filter(le=>_(le.name,le.description))})).filter(Y=>Y[W].length>0):L}let v=j(()=>i(a)==="all"||i(a)==="variables"),m=j(()=>i(a)==="all"||i(a)==="classes"),b=j(()=>i(s).trim()!==""&&(!i(v)||i(o).length===0&&i(d).length===0)&&(!i(m)||i(c).length===0));var w=rc(),h=f(w),y=p(f(h),2),k=f(y),A=p(h,2),M=f(A),N=p(M,2),E=f(N);let C;var O=p(E,2);let V;var $=p(O,2);let D;var x=p(A,2);{var S=L=>{var W=Qo(),Y=p(f(W),2);ne(Y,17,()=>i(o),Ss,(oe,pe)=>{var B=Xo(),ee=f(B),he=f(ee),we=f(he),je=p(he,2),$e=f(je),De=p(ee,2);ne(De,21,()=>i(pe).tokens,Ss,(Ae,de)=>{var xe=Yo(),Te=f(xe),ge=f(Te),Ke=p(Te,2),it=f(Ke);q(()=>{F(ge,i(de).name),F(it,i(de).description)}),z(Ae,xe)}),q(Ae=>{B.open=Ae,F(we,i(pe).category),F($e,i(pe).description)},[()=>!i(s).trim()]),z(oe,B)});var le=p(Y,2);{var ve=oe=>{var pe=Jo(),B=p(f(pe),2);ne(B,21,()=>i(d),Ss,(ee,he)=>{var we=Zo(),je=f(we),$e=f(je),De=p(je,2),Ae=f(De);q(()=>{F($e,i(he).name),F(Ae,i(he).description)}),z(ee,we)}),q(ee=>pe.open=ee,[()=>!i(s).trim()]),z(oe,pe)};fe(le,oe=>{i(d).length>0&&oe(ve)})}z(L,W)};fe(x,L=>{i(v)&&L(S)})}var T=p(x,2);{var P=L=>{var W=sc(),Y=p(f(W),2);ne(Y,17,()=>i(c),Ss,(le,ve)=>{var oe=tc(),pe=f(oe),B=f(pe),ee=f(B),he=p(B,2),we=f(he),je=p(pe,2);ne(je,21,()=>i(ve).classes,Ss,($e,De)=>{var Ae=ec(),de=f(Ae),xe=f(de),Te=p(de,2),ge=f(Te);q(()=>{F(xe,i(De).name),F(ge,i(De).description)}),z($e,Ae)}),q($e=>{oe.open=$e,F(ee,i(ve).category),F(we,i(ve).description)},[()=>!i(s).trim()]),z(le,oe)}),z(L,W)};fe(T,L=>{i(m)&&L(P)})}var I=p(T,2);{var U=L=>{var W=ac(),Y=f(W);q(()=>F(Y,`No results for "${i(s)??""}"`)),z(L,W)};fe(I,L=>{i(b)&&L(U)})}q(()=>{F(k,`${r??""} variables | ${n??""} layout/utility classes | ${l??""} state classes`),Q(E,"aria-pressed",i(a)==="all"),C=rt(E,1,"svelte-osej3t",null,C,{active:i(a)==="all"}),Q(O,"aria-pressed",i(a)==="variables"),V=rt(O,1,"svelte-osej3t",null,V,{active:i(a)==="variables"}),Q($,"aria-pressed",i(a)==="classes"),D=rt($,1,"svelte-osej3t",null,D,{active:i(a)==="classes"})}),Ct(M,()=>i(s),L=>K(s,L)),_e("click",E,()=>K(a,"all")),_e("click",O,()=>K(a,"variables")),_e("click",$,()=>K(a,"classes")),z(e,w),ye()}Oe(["click"]);var ic=R('
                                        '),lc=R('
                                        '),oc=R(`

                                        Live preview

                                        The quick brown fox jumps over the lazy dog

                                        Body and heading fonts update as you adjust typography settings. Colors below reflect brand and status tokens for the selected mode.

                                        Primary Action Outline Ghost

                                        Card Component

                                        Design token preview

                                        Active

                                        This card shows radius, shadow, spacing, colors, and typography - working together. All values update live as you adjust tokens.

                                        Generated CSS:
                                        `);function lc(e,t){ye(t,!0);const s=["primary","secondary","tertiary","action","neutral","base"],a=["success","warning","error","info","danger"],r=re.defaults?.colors??{};let n=se(!1);const c=E(()=>{const de=[],xe=H.colors??{},Te=H.typography??{},_e=H.radius??{},Ke=H.shadows??{};for(const Fe of s){const wt=xe[`brand_${Fe}`]??r.brand_hex_hints?.[Fe];wt&&de.push(`--sf-color-${Fe}-light:${wt}`);const xt=xe[`brand_dark_${Fe}`]??r.brand_dark_hex_hints?.[Fe];xt&&de.push(`--sf-color-${Fe}-dark:${xt}`)}for(const Fe of a){const wt=xe[`status_${Fe}`]??r.status_hex_hints?.[Fe];wt&&de.push(`--sf-color-${Fe}-light:${wt}`);const xt=xe[`status_dark_${Fe}`]??r.status_dark_hex_hints?.[Fe];xt&&de.push(`--sf-color-${Fe}-dark:${xt}`)}Te.font_body&&de.push(`--sf-font-body:${Te.font_body}`),Te.font_heading&&de.push(`--sf-font-heading:${Te.font_heading}`);const nt=parseFloat(_e.radius_scale??re.defaults?.radius?.radius_scale??1)||1;de.push(`--preview-radius-s:${Math.round(4*nt)}px`),de.push(`--preview-radius-m:${Math.round(8*nt)}px`),de.push(`--preview-radius-l:${Math.round(16*nt)}px`);const pt=parseFloat(Ke.shadow_strength??re.defaults?.shadows?.shadow_strength??.08);return de.push(`--preview-shadow:0 2px 8px 0 rgba(0,0,0,${(pt*2).toFixed(3)}),0 1px 3px 0 rgba(0,0,0,${pt.toFixed(3)})`),de.join(";")}),l=E(()=>i(n)?"dark":"light"),o=E(()=>tr(H));var d=ic();let _;var u=f(d),v=p(f(u),2),m=f(v);let y;var w=p(m,2);let h;var b=p(u,6),k=f(b);ne(k,16,()=>s,de=>de,(de,xe)=>{var Te=rc();let _e;var Ke=f(Te);q(()=>{Q(Te,"title",xe),_e=fe(Te,"",_e,{background:`var(--sf-color-${xe}-${i(l)}, #ddd)`}),C(Ke,xe)}),z(de,Te)});var j=p(k,2);ne(j,16,()=>a,de=>de,(de,xe)=>{var Te=nc();let _e;var Ke=f(Te);q(()=>{Q(Te,"title",xe),_e=fe(Te,"",_e,{background:`var(--sf-color-${xe}-${i(l)}, #ddd)`}),C(Ke,xe)}),z(de,Te)});var F=p(b,2),V=f(F);let S;var R=p(V,2);let O;var N=p(R,2);let M;var P=p(F,2);fe(P,"",{},{"box-shadow":"var(--preview-shadow)"});var x=f(P);let T;var $=p(x,2),D=f($),I=f(D);let Y;var L=p(I,2),G=f(L);fe(G,"",{},{"font-family":"var(--sf-font-heading, system-ui, sans-serif)"});var W=p(L,2);let le;var ve=p(D,2);fe(ve,"",{},{"font-family":"var(--sf-font-body, system-ui, sans-serif)"});var oe=p(ve,2),pe=f(oe);let B;var ee=p(pe,2);let he;var we=p(ee,2);let je;var $e=p(P,2),Oe=p(f($e)),Ae=f(Oe);q(()=>{_=ut(d,1,"slashed-preview svelte-g79qke",null,_,{"is-dark":i(n)}),fe(d,i(c)),y=ut(m,1,"slashed-preview__mode-btn svelte-g79qke",null,y,{active:!i(n)}),h=ut(w,1,"slashed-preview__mode-btn svelte-g79qke",null,h,{active:i(n)}),S=fe(V,"",S,{background:`var(--sf-color-primary-${i(l)}, #4338ca)`}),O=fe(R,"",O,{background:`var(--sf-color-action-${i(l)}, #0891b2)`}),M=fe(N,"",M,{"border-color":`var(--sf-color-primary-${i(l)}, #4338ca)`,color:`var(--sf-color-primary-${i(l)}, #4338ca)`}),T=fe(x,"",T,{background:`var(--sf-color-primary-${i(l)}, #4338ca)`}),Y=fe(I,"",Y,{background:`var(--sf-color-secondary-${i(l)}, #7c3aed)`}),le=fe(W,"",le,{background:`var(--sf-color-success-${i(l)}, #16a34a)`}),B=fe(pe,"",B,{background:`var(--sf-color-info-${i(l)}, #0284c7)`}),he=fe(ee,"",he,{background:`var(--sf-color-warning-${i(l)}, #ca8a04)`}),je=fe(we,"",je,{background:`var(--sf-color-action-${i(l)}, #0891b2)`}),C(Ae,i(o)||"/* (defaults — no overrides set) */")}),ge("click",m,()=>K(n,!1)),ge("click",w,()=>K(n,!0)),z(e,d),be()}Le(["click"]);var oc=A(' '),cc=A('Saving…'),dc=A('Saved'),fc=A('Unsaved changes'),uc=A('All changes saved'),vc=A('
                                        ');function pc(e,t){ye(t,!0);const s=["contrast","radius","shadows","motion","zindex"];async function a(){if(!U.saving){U.saving=!0,U.error="";try{if(U.activeTab==="misc"){const S=await Promise.allSettled(s.map(O=>yr(O,H[O]??{}))),R=[];if(S.forEach((O,N)=>{O.status==="fulfilled"?O.value?.values&&(H[s[N]]=O.value.values):R.push(s[N])}),R.length>0)throw new Error(`Failed to save: ${R.join(", ")}`)}else{const S=U.activeTab,R=H[S]??{},O=await yr(S,R);O&&O.values&&(H[S]=O.values)}U.dirty=!1,U.lastSavedAt=Date.now()}catch(S){U.error=S&&S.message||String(S)}finally{U.saving=!1}}}async function r(){if(!U.saving&&confirm(`Reset the ${re.tabs[U.activeTab]??U.activeTab} tab to defaults?`)){U.saving=!0,U.error="";try{if(U.activeTab==="misc"){const S=await Promise.allSettled(s.map(O=>br(O))),R=[];if(S.forEach((O,N)=>{O.status==="fulfilled"?mr(s[N]):R.push(s[N])}),R.length>0)throw new Error(`Failed to reset: ${R.join(", ")}`)}else await br(U.activeTab),mr(U.activeTab);U.dirty=!1,U.lastSavedAt=Date.now()}catch(S){U.error=S&&S.message||String(S)}finally{U.saving=!1}}}let n=se(!1);tn(()=>{if(U.lastSavedAt){K(n,!0);const S=setTimeout(()=>K(n,!1),2e3);return()=>clearTimeout(S)}});const c=E(()=>xn(H));function l(){const S=tr(H);if(!S)return;const R=new Blob([S],{type:"text/css"}),O=URL.createObjectURL(R),N=document.createElement("a");N.href=O,N.download="slashed-custom.css",document.body.appendChild(N),N.click(),document.body.removeChild(N),URL.revokeObjectURL(O)}var o=vc();let d;var _=f(o),u=f(_);{var v=S=>{var R=oc(),O=f(R);q(()=>C(O,U.error)),z(S,R)},m=S=>{var R=cc();z(S,R)},y=S=>{var R=dc();z(S,R)},w=S=>{var R=fc();z(S,R)},h=S=>{var R=uc();z(S,R)};ue(u,S=>{U.error?S(v):U.saving?S(m,1):i(n)?S(y,2):U.dirty?S(w,3):S(h,-1)})}var b=p(_,2),k=f(b),j=p(k,2),F=p(j,2),V=f(F);q(()=>{d=ut(o,1,"bar svelte-1oj49qa",null,d,{dirty:U.dirty}),k.disabled=U.saving,j.disabled=!i(c),F.disabled=U.saving||!U.dirty,C(V,U.saving?"Saving…":"Save changes")}),ge("click",k,r),ge("click",j,l),ge("click",F,a),z(e,o),be()}Le(["click"]);var hc=A(' '),_c=A(' '),gc=A('

                                        SLASHED Design Tokens

                                        Adjust framework tokens, inspect generated variables, and manage the bundled CSS in one place.

                                        ');function mc(e,t){ye(t,!0);const s=["cheatsheet","hooks","variables","classes","bundle","export"];let a=E(()=>s.includes(U.activeTab));tn(()=>{function x(T){U.dirty&&(T.preventDefault(),T.returnValue="")}return window.addEventListener("beforeunload",x),()=>window.removeEventListener("beforeunload",x)});var r=gc(),n=f(r),c=f(n),l=p(f(c),2),o=f(l);{var d=x=>{var T=hc(),$=f(T);q(()=>C($,`Framework ${re.versions.framework??""}`)),z(x,T)};ue(o,x=>{re.versions.framework&&x(d)})}var _=p(o,2);{var u=x=>{var T=_c(),$=f(T);q(()=>C($,`Plugin v${re.versions.plugin??""}`)),z(x,T)};ue(_,x=>{re.versions.plugin&&x(u)})}var v=p(n,2);ul(v,{});var m=p(v,2),y=f(m);{var w=x=>{wl(x,{})},h=x=>{Bl(x,{})},b=x=>{Xl(x,{})},k=x=>{lo(x,{})},j=x=>{vo(x,{})},F=x=>{yo(x,{})},V=x=>{jo(x,{})},S=x=>{Io(x,{})},R=x=>{Bo(x)},O=x=>{ac(x,{})};ue(y,x=>{U.activeTab==="colors"?x(w):U.activeTab==="typography"?x(h,1):U.activeTab==="spacing"?x(b,2):U.activeTab==="misc"?x(k,3):U.activeTab==="variables"?x(j,4):U.activeTab==="classes"?x(F,5):U.activeTab==="bundle"?x(V,6):U.activeTab==="export"?x(S,7):U.activeTab==="hooks"?x(R,8):U.activeTab==="cheatsheet"&&x(O,9)})}var N=p(m,2);lc(N,{});var M=p(N,2);{var P=x=>{pc(x,{})};ue(M,x=>{i(a)||x(P)})}z(e,r),be()}const kr=document.getElementById("slashed-admin-app");kr&&Yi(mc,{target:kr}); + working together. All values update live as you adjust tokens.

                                        Generated CSS:
                                        `);function cc(e,t){be(t,!0);const s=["primary","secondary","tertiary","action","neutral","base"],a=["success","warning","error","info","danger"],r=re.defaults?.colors??{};let n=se(!1);const l=j(()=>{const de=[],xe=H.colors??{},Te=H.typography??{},ge=H.radius??{},Ke=H.shadows??{};for(const Fe of s){const xt=xe[`brand_${Fe}`]??r.brand_hex_hints?.[Fe];xt&&de.push(`--sf-color-${Fe}-light:${xt}`);const kt=xe[`brand_dark_${Fe}`]??r.brand_dark_hex_hints?.[Fe];kt&&de.push(`--sf-color-${Fe}-dark:${kt}`)}for(const Fe of a){const xt=xe[`status_${Fe}`]??r.status_hex_hints?.[Fe];xt&&de.push(`--sf-color-${Fe}-light:${xt}`);const kt=xe[`status_dark_${Fe}`]??r.status_dark_hex_hints?.[Fe];kt&&de.push(`--sf-color-${Fe}-dark:${kt}`)}Te.font_body&&de.push(`--sf-font-body:${Te.font_body}`),Te.font_heading&&de.push(`--sf-font-heading:${Te.font_heading}`);const it=parseFloat(ge.radius_scale??re.defaults?.radius?.radius_scale??1)||1;de.push(`--preview-radius-s:${Math.round(4*it)}px`),de.push(`--preview-radius-m:${Math.round(8*it)}px`),de.push(`--preview-radius-l:${Math.round(16*it)}px`);const pt=parseFloat(Ke.shadow_strength??re.defaults?.shadows?.shadow_strength??.08);return de.push(`--preview-shadow:0 2px 8px 0 rgba(0,0,0,${(pt*2).toFixed(3)}),0 1px 3px 0 rgba(0,0,0,${pt.toFixed(3)})`),de.join(";")}),o=j(()=>i(n)?"dark":"light"),c=j(()=>tr(H));var d=oc();let _;var u=f(d),v=p(f(u),2),m=f(v);let b;var w=p(m,2);let h;var y=p(u,6),k=f(y);ne(k,16,()=>s,de=>de,(de,xe)=>{var Te=ic();let ge;var Ke=f(Te);q(()=>{Q(Te,"title",xe),ge=ue(Te,"",ge,{background:`var(--sf-color-${xe}-${i(o)}, #ddd)`}),F(Ke,xe)}),z(de,Te)});var A=p(k,2);ne(A,16,()=>a,de=>de,(de,xe)=>{var Te=lc();let ge;var Ke=f(Te);q(()=>{Q(Te,"title",xe),ge=ue(Te,"",ge,{background:`var(--sf-color-${xe}-${i(o)}, #ddd)`}),F(Ke,xe)}),z(de,Te)});var M=p(y,2),N=f(M);let E;var C=p(N,2);let O;var V=p(C,2);let $;var D=p(M,2);ue(D,"",{},{"box-shadow":"var(--preview-shadow)"});var x=f(D);let S;var T=p(x,2),P=f(T),I=f(P);let U;var L=p(I,2),W=f(L);ue(W,"",{},{"font-family":"var(--sf-font-heading, system-ui, sans-serif)"});var Y=p(L,2);let le;var ve=p(P,2);ue(ve,"",{},{"font-family":"var(--sf-font-body, system-ui, sans-serif)"});var oe=p(ve,2),pe=f(oe);let B;var ee=p(pe,2);let he;var we=p(ee,2);let je;var $e=p(D,2),De=p(f($e)),Ae=f(De);q(()=>{_=rt(d,1,"slashed-preview svelte-g79qke",null,_,{"is-dark":i(n)}),ue(d,i(l)),b=rt(m,1,"slashed-preview__mode-btn svelte-g79qke",null,b,{active:!i(n)}),h=rt(w,1,"slashed-preview__mode-btn svelte-g79qke",null,h,{active:i(n)}),E=ue(N,"",E,{background:`var(--sf-color-primary-${i(o)}, #4338ca)`}),O=ue(C,"",O,{background:`var(--sf-color-action-${i(o)}, #0891b2)`}),$=ue(V,"",$,{"border-color":`var(--sf-color-primary-${i(o)}, #4338ca)`,color:`var(--sf-color-primary-${i(o)}, #4338ca)`}),S=ue(x,"",S,{background:`var(--sf-color-primary-${i(o)}, #4338ca)`}),U=ue(I,"",U,{background:`var(--sf-color-secondary-${i(o)}, #7c3aed)`}),le=ue(Y,"",le,{background:`var(--sf-color-success-${i(o)}, #16a34a)`}),B=ue(pe,"",B,{background:`var(--sf-color-info-${i(o)}, #0284c7)`}),he=ue(ee,"",he,{background:`var(--sf-color-warning-${i(o)}, #ca8a04)`}),je=ue(we,"",je,{background:`var(--sf-color-action-${i(o)}, #0891b2)`}),F(Ae,i(c)||"/* (defaults — no overrides set) */")}),_e("click",m,()=>K(n,!1)),_e("click",w,()=>K(n,!0)),z(e,d),ye()}Oe(["click"]);var dc=R(' '),fc=R('Saving…'),uc=R('Saved'),vc=R('Unsaved changes'),pc=R('All changes saved'),hc=R('
                                        ');function _c(e,t){be(t,!0);const s=["contrast","radius","shadows","motion","zindex"];async function a(){if(!G.saving){G.saving=!0,G.error="";try{if(G.activeTab==="misc"){const E=await Promise.allSettled(s.map(O=>br(O,H[O]??{}))),C=[];if(E.forEach((O,V)=>{O.status==="fulfilled"?O.value?.values&&(H[s[V]]=O.value.values):C.push(s[V])}),C.length>0)throw new Error(`Failed to save: ${C.join(", ")}`)}else{const E=G.activeTab,C=H[E]??{},O=await br(E,C);O&&O.values&&(H[E]=O.values)}G.dirty=!1,G.lastSavedAt=Date.now()}catch(E){G.error=E&&E.message||String(E)}finally{G.saving=!1}}}async function r(){if(!G.saving&&confirm(`Reset the ${re.tabs[G.activeTab]??G.activeTab} tab to defaults?`)){G.saving=!0,G.error="";try{if(G.activeTab==="misc"){const E=await Promise.allSettled(s.map(O=>yr(O))),C=[];if(E.forEach((O,V)=>{O.status==="fulfilled"?mr(s[V]):C.push(s[V])}),C.length>0)throw new Error(`Failed to reset: ${C.join(", ")}`)}else await yr(G.activeTab),mr(G.activeTab);G.dirty=!1,G.lastSavedAt=Date.now()}catch(E){G.error=E&&E.message||String(E)}finally{G.saving=!1}}}let n=se(!1);tn(()=>{if(G.lastSavedAt){K(n,!0);const E=setTimeout(()=>K(n,!1),2e3);return()=>clearTimeout(E)}});const l=j(()=>xn(H));function o(){const E=tr(H);if(!E)return;const C=new Blob([E],{type:"text/css"}),O=URL.createObjectURL(C),V=document.createElement("a");V.href=O,V.download="slashed-custom.css",document.body.appendChild(V),V.click(),document.body.removeChild(V),URL.revokeObjectURL(O)}var c=hc();let d;var _=f(c),u=f(_);{var v=E=>{var C=dc(),O=f(C);q(()=>F(O,G.error)),z(E,C)},m=E=>{var C=fc();z(E,C)},b=E=>{var C=uc();z(E,C)},w=E=>{var C=vc();z(E,C)},h=E=>{var C=pc();z(E,C)};fe(u,E=>{G.error?E(v):G.saving?E(m,1):i(n)?E(b,2):G.dirty?E(w,3):E(h,-1)})}var y=p(_,2),k=f(y),A=p(k,2),M=p(A,2),N=f(M);q(()=>{d=rt(c,1,"bar svelte-1oj49qa",null,d,{dirty:G.dirty}),k.disabled=G.saving,A.disabled=!i(l),M.disabled=G.saving||!G.dirty,F(N,G.saving?"Saving…":"Save changes")}),_e("click",k,r),_e("click",A,o),_e("click",M,a),z(e,c),ye()}Oe(["click"]);var gc=R(' '),mc=R(' '),bc=R('

                                        SLASHED Design Tokens

                                        Adjust framework tokens, inspect generated variables, and manage the bundled CSS in one place.

                                        ');function yc(e,t){be(t,!0);const s=["cheatsheet","hooks","variables","classes","bundle","export"];let a=j(()=>s.includes(G.activeTab));tn(()=>{function x(S){G.dirty&&(S.preventDefault(),S.returnValue="")}return window.addEventListener("beforeunload",x),()=>window.removeEventListener("beforeunload",x)});var r=bc(),n=f(r),l=f(n),o=p(f(l),2),c=f(o);{var d=x=>{var S=gc(),T=f(S);q(()=>F(T,`Framework ${re.versions.framework??""}`)),z(x,S)};fe(c,x=>{re.versions.framework&&x(d)})}var _=p(c,2);{var u=x=>{var S=mc(),T=f(S);q(()=>F(T,`Plugin v${re.versions.plugin??""}`)),z(x,S)};fe(_,x=>{re.versions.plugin&&x(u)})}var v=p(n,2);vl(v,{});var m=p(v,2),b=f(m);{var w=x=>{kl(x,{})},h=x=>{Hl(x,{})},y=x=>{Jl(x,{})},k=x=>{co(x,{})},A=x=>{ho(x,{})},M=x=>{wo(x,{})},N=x=>{$o(x,{})},E=x=>{No(x,{})},C=x=>{Ho(x)},O=x=>{nc(x,{})};fe(b,x=>{G.activeTab==="colors"?x(w):G.activeTab==="typography"?x(h,1):G.activeTab==="spacing"?x(y,2):G.activeTab==="misc"?x(k,3):G.activeTab==="variables"?x(A,4):G.activeTab==="classes"?x(M,5):G.activeTab==="bundle"?x(N,6):G.activeTab==="export"?x(E,7):G.activeTab==="hooks"?x(C,8):G.activeTab==="cheatsheet"&&x(O,9)})}var V=p(m,2);cc(V,{});var $=p(V,2);{var D=x=>{_c(x,{})};fe($,x=>{i(a)||x(D)})}z(e,r),ye()}const kr=document.getElementById("slashed-admin-app");kr&&Yi(yc,{target:kr}); //# sourceMappingURL=app.js.map diff --git a/integrations/bricks/includes/class-css-generator.php b/integrations/bricks/includes/class-css-generator.php index 40df8b63..f55385a7 100644 --- a/integrations/bricks/includes/class-css-generator.php +++ b/integrations/bricks/includes/class-css-generator.php @@ -170,14 +170,6 @@ private static function generate_color_declarations( $settings ) { } } - // Brand colors (dark): brand_dark_primary -> --sf-color-primary-dark. - foreach ( $brand_colors as $color ) { - $key = 'brand_dark_' . $color; - if ( ! empty( $settings[ $key ] ) ) { - $declarations[] = '--sf-color-' . $color . '-dark: ' . $settings[ $key ] . ';'; - } - } - // Status colors (light): status_success -> --sf-color-success-light. $status_colors = array( 'success', 'warning', 'error', 'info', 'danger' ); foreach ( $status_colors as $color ) { @@ -187,11 +179,26 @@ private static function generate_color_declarations( $settings ) { } } - // Status colors (dark): status_dark_success -> --sf-color-success-dark. - foreach ( $status_colors as $color ) { - $key = 'status_dark_' . $color; - if ( ! empty( $settings[ $key ] ) ) { - $declarations[] = '--sf-color-' . $color . '-dark: ' . $settings[ $key ] . ';'; + // Dark overrides are skipped when the toggle is explicitly disabled ('0'). + // Default (key absent or '1') keeps previous behaviour: output dark overrides. + $dark_enabled = ! isset( $settings['dark_overrides_enabled'] ) + || '0' !== $settings['dark_overrides_enabled']; + + if ( $dark_enabled ) { + // Brand colors (dark): brand_dark_primary -> --sf-color-primary-dark. + foreach ( $brand_colors as $color ) { + $key = 'brand_dark_' . $color; + if ( ! empty( $settings[ $key ] ) ) { + $declarations[] = '--sf-color-' . $color . '-dark: ' . $settings[ $key ] . ';'; + } + } + + // Status colors (dark): status_dark_success -> --sf-color-success-dark. + foreach ( $status_colors as $color ) { + $key = 'status_dark_' . $color; + if ( ! empty( $settings[ $key ] ) ) { + $declarations[] = '--sf-color-' . $color . '-dark: ' . $settings[ $key ] . ';'; + } } } diff --git a/tests/color-semantic.spec.js b/tests/color-semantic.spec.js index 6579d884..a1b65fc9 100644 --- a/tests/color-semantic.spec.js +++ b/tests/color-semantic.spec.js @@ -242,3 +242,86 @@ test.describe('Palette alpha variants', () => { expect(alphas.a5).toBeLessThan(alphas.a95); }); }); + + +// ── Dark mode auto-derivation ──────────────────────────────────── +// Verifies that the framework's CSS relative-color-syntax fallback in +// light-dark() actually produces correct values when no -dark overrides +// are set. These tests confirm the formula is wired correctly end-to-end +// in the shipped dist bundle — not just in theory. +test.describe('Dark mode auto-derivation', () => { + test.beforeEach(async ({ page }) => { + await page.goto(FIXTURE); + }); + + // Brand colors should be lighter in dark theme (L 0.65–0.88 from formula). + test('brand primary is lighter in dark theme than light theme', async ({ page }) => { + await page.evaluate(() => document.documentElement.setAttribute('data-theme', 'light')); + const lightLum = await page.evaluate(resolveTokenLuminance, '--sf-color-primary'); + + await page.evaluate(() => document.documentElement.setAttribute('data-theme', 'dark')); + const darkLum = await page.evaluate(resolveTokenLuminance, '--sf-color-primary'); + + // Dark variant must be noticeably lighter (formula brightens to L 0.65–0.88). + expect(darkLum).toBeGreaterThan(lightLum + 0.04); + }); + + test('all 6 brand colors are lighter in dark theme than light theme', async ({ page }) => { + const names = ['primary', 'secondary', 'tertiary', 'action', 'neutral', 'base']; + + await page.evaluate(() => document.documentElement.setAttribute('data-theme', 'light')); + const lightLums = await Promise.all( + names.map((n) => page.evaluate(resolveTokenLuminance, `--sf-color-${n}`)) + ); + + await page.evaluate(() => document.documentElement.setAttribute('data-theme', 'dark')); + const darkLums = await Promise.all( + names.map((n) => page.evaluate(resolveTokenLuminance, `--sf-color-${n}`)) + ); + + for (let i = 0; i < names.length; i++) { + const name = names[i]; + if (name === 'base') { + // Base inverts: near-white light → near-dark dark. + expect(darkLums[i], `${name} dark should be darker than light`).toBeLessThan(lightLums[i]); + } else { + // All other brand colors: dark variant must be lighter. + expect(darkLums[i], `${name} dark should be lighter than light`).toBeGreaterThan(lightLums[i]); + } + } + }); + + // The base color uses a different inversion formula: clamp(0.16, 1.18 - l, 0.24). + // Default base-light is oklch(0.99, 0.006, 250) → near-white. + // Dark value: 1.18 - 0.99 = 0.19 → near-dark background. + test('base color inverts in dark theme (near-white → near-dark surface)', async ({ page }) => { + await page.evaluate(() => document.documentElement.setAttribute('data-theme', 'light')); + const lightLum = await page.evaluate(resolveTokenLuminance, '--sf-color-bg'); + + await page.evaluate(() => document.documentElement.setAttribute('data-theme', 'dark')); + const darkLum = await page.evaluate(resolveTokenLuminance, '--sf-color-bg'); + + expect(lightLum).toBeGreaterThan(0.7); // near-white surface + expect(darkLum).toBeLessThan(0.08); // near-dark surface + }); + + // An explicit -dark override must take precedence over the auto-derived fallback. + test('explicit dark override overrides auto-derived value', async ({ page }) => { + // Set a mid-tone orange light color. + await page.evaluate(() => { + document.documentElement.style.setProperty('--sf-color-primary-light', 'oklch(0.55 0.22 45)'); + }); + + await page.evaluate(() => document.documentElement.setAttribute('data-theme', 'dark')); + const autoDarkLum = await page.evaluate(resolveTokenLuminance, '--sf-color-primary'); + + // Inject a very different explicit dark value (low L ≈ 0.25 = very dark orange). + await page.evaluate(() => { + document.documentElement.style.setProperty('--sf-color-primary-dark', 'oklch(0.25 0.15 45)'); + }); + const overrideLum = await page.evaluate(resolveTokenLuminance, '--sf-color-primary'); + + // Override (very dark) should be substantially dimmer than the auto-derived (bright). + expect(autoDarkLum - overrideLum).toBeGreaterThan(0.1); + }); +}); From a00b7ea5ce212a405eba1f3807f4ce3ed4d8830e Mon Sep 17 00:00:00 2001 From: Claude Date: Fri, 29 May 2026 11:50:12 +0000 Subject: [PATCH 3/4] fix(rebemer): badge alignment, unbounded depth indentation, and context-aware naming MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Add `align-self: center` to `.rebemer-badge-host` so it no longer stretches to the full row height in Bricks' flex structure panel. The badge now sits as a small inline word rather than a tall block. - Replace the CSS `[data-depth="1/2/3"]` margin rules (which capped indentation at 3 levels) with a `--rebemer-row-depth` CSS custom property. Row.svelte sets the property from `row.depth` directly — any subtree depth now renders with the correct 12px-per-level indent. - Add context-aware second pass in BemPanel `onMount` that refines auto-suggested names before rows are rendered: - Layout containers (section/container/block/div) now get names inferred from their children: `actions`, `header`, `body`, `footer`, `media`, `content`, `form`, `nav`, etc. instead of always `item`. - Sole-child elements get semantic overrides: `heading` → `title`, `button` → `action`, `text`/`text-basic` → `description`. - Elements the user already labelled are never touched. https://claude.ai/code/session_019MD9F8rrpYzCeDTmSTLA1K --- integrations/bricks/assets/editor-app/app.css | 2 +- integrations/bricks/assets/editor-app/app.js | 8 +-- .../editor-app/src/components/BemPanel.svelte | 63 +++++++++++++++-- .../editor-app/src/components/Row.svelte | 3 +- .../editor-app/src/lib/element-types.js | 67 +++++++++++++++++++ .../bricks/editor-app/src/styles/panel.css | 5 +- 6 files changed, 132 insertions(+), 16 deletions(-) diff --git a/integrations/bricks/assets/editor-app/app.css b/integrations/bricks/assets/editor-app/app.css index 8660e566..f3266ad2 100644 --- a/integrations/bricks/assets/editor-app/app.css +++ b/integrations/bricks/assets/editor-app/app.css @@ -1 +1 @@ -#slashed-rebemer-host{--rebemer-bg: #161a1d;--rebemer-fg: #e1e1e1;--rebemer-fg-muted: #8a8d95;--rebemer-border: #3d4752;--rebemer-accent: #e2b93b;--rebemer-accent-hover: #ffd042;--rebemer-input-bg: #293038;--rebemer-input-border: #3d4752;--rebemer-error: #ff4c4c;--rebemer-success: #4ade80;--rebemer-radius: 4px;--rebemer-font: "Inter", -apple-system, BlinkMacSystemFont, sans-serif}.rebemer-badge-host{display:inline-flex;align-items:center;flex:0 0 auto;margin:0 4px;opacity:0;pointer-events:none;transition:opacity 80ms linear}.structure-item:hover .rebemer-badge-host,.structure-item:focus-within .rebemer-badge-host,li[data-id]:hover>.rebemer-badge-host,li[data-id]:focus-within>.rebemer-badge-host{opacity:1;pointer-events:auto}.rebemer-badge{font:600 9px/1 var(--rebemer-font, "Inter", -apple-system, BlinkMacSystemFont, sans-serif);letter-spacing:0;text-transform:none;color:var(--rebemer-fg-muted, #8a8d95);background:transparent;border:0;padding:1px 3px;margin:0;cursor:pointer;border-radius:2px;pointer-events:auto}.rebemer-badge:hover{color:var(--rebemer-accent, #e2b93b);background:#e2b93b14}.rebemer-badge:focus-visible{outline:1px dotted var(--rebemer-accent, #e2b93b);outline-offset:1px;color:var(--rebemer-accent, #e2b93b)}.rebemer-panel{position:fixed;top:80px;left:50%;transform:translate(-50%);width:440px;max-width:calc(100vw - 40px);max-height:80vh;z-index:100000;background:var(--rebemer-bg);color:var(--rebemer-fg);border:1px solid var(--rebemer-border);border-radius:var(--rebemer-radius);box-shadow:0 10px 40px #0009;display:flex;flex-direction:column;font:12px/1.45 var(--rebemer-font);overflow:hidden;outline:none}.rebemer-panel__header{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;border-bottom:1px solid var(--rebemer-border)}.rebemer-panel__title{margin:0;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:#fff}.rebemer-panel__subject{color:var(--rebemer-accent);text-transform:none;font-weight:500}.rebemer-panel__close{background:transparent;border:0;font-size:18px;color:var(--rebemer-fg-muted);cursor:pointer;padding:2px 6px}.rebemer-panel__close:hover{color:#fff}.rebemer-panel__toolbar{padding:10px 14px;display:flex;gap:12px;align-items:center;flex-wrap:wrap;border-bottom:1px solid var(--rebemer-border)}.rebemer-field{display:flex;flex-direction:column;gap:4px;font-size:11px}.rebemer-field--inline{flex-direction:row;align-items:center;gap:6px}.rebemer-field__label{color:var(--rebemer-fg-muted);text-transform:uppercase;letter-spacing:.5px;font-size:10px}.rebemer-field select,.rebemer-field input[type=text]{background:var(--rebemer-input-bg);border:1px solid var(--rebemer-input-border);border-radius:var(--rebemer-radius);color:var(--rebemer-fg);padding:4px 6px;font:inherit}.rebemer-field select:focus,.rebemer-field input:focus{outline:1px solid var(--rebemer-accent)}.rebemer-panel__notice{margin:0;padding:8px 14px;background:#e2b93b14;border-bottom:1px solid var(--rebemer-border);color:var(--rebemer-fg);font-size:11px;line-height:1.5}.rebemer-panel__notice--warn{background:#e2b93b29}.rebemer-panel__notice strong{color:var(--rebemer-accent);font-weight:600}.rebemer-panel__notice-skip{display:block;margin-top:2px;color:var(--rebemer-fg-muted)}.rebemer-panel__body{flex:1;overflow-y:auto;padding:8px 14px;display:flex;flex-direction:column;gap:6px}.rebemer-row{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:8px;padding:6px 8px;border-radius:var(--rebemer-radius);background:#ffffff05}.rebemer-row:hover{background:#ffffff0a}.rebemer-row--disabled{opacity:.45}.rebemer-row[data-depth="1"]{margin-left:12px}.rebemer-row[data-depth="2"]{margin-left:24px}.rebemer-row[data-depth="3"]{margin-left:36px}.rebemer-row__include input{cursor:pointer}.rebemer-row__meta{display:flex;gap:6px;align-items:baseline;min-width:0}.rebemer-row__label{font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.rebemer-row__type{font-size:9px;color:var(--rebemer-fg-muted);text-transform:uppercase}.rebemer-row__hint{font-size:9px;color:var(--rebemer-accent);text-transform:uppercase;letter-spacing:.5px;background:#e2b93b1f;padding:1px 4px;border-radius:2px}.rebemer-row__inputs{grid-column:1 / -1;display:flex;gap:6px;align-items:center}.rebemer-row__name{flex:1;display:flex;align-items:stretch;background:var(--rebemer-input-bg);border:1px solid var(--rebemer-input-border);border-radius:var(--rebemer-radius);overflow:hidden}.rebemer-row__prefix{padding:4px 6px;background:#00000040;color:var(--rebemer-fg-muted);font-size:11px;border-right:1px solid var(--rebemer-input-border);white-space:nowrap}.rebemer-row__name input{background:transparent;border:0;outline:0;color:var(--rebemer-fg);font:inherit;padding:4px 6px;flex:1;min-width:0}.rebemer-row--suggested .rebemer-row__name input:not(:focus){color:var(--rebemer-fg-muted);font-style:italic}.rebemer-row__modifier{background:var(--rebemer-input-bg);border:1px solid var(--rebemer-input-border);border-radius:var(--rebemer-radius);color:var(--rebemer-fg);font:inherit;padding:4px 6px;width:90px}.rebemer-row__recommend{grid-column:1 / -1;margin:0;padding:6px 8px;background:#4ade8014;border-left:2px solid var(--rebemer-success);border-radius:2px;color:var(--rebemer-fg);font-size:11px;line-height:1.4}.rebemer-row__recommend code{background:#0000004d;padding:1px 4px;border-radius:2px;font:11px/1 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;color:var(--rebemer-accent)}.rebemer-row__chips{grid-column:1 / -1;display:flex;flex-wrap:wrap;align-items:center;gap:4px;padding:4px 0 0;font-size:10px}.rebemer-row__chips-label,.rebemer-row__chips-empty,.rebemer-row__chips-skip{color:var(--rebemer-fg-muted);text-transform:uppercase;letter-spacing:.5px;font-size:9px}.rebemer-row__chips-skip{margin-left:auto;cursor:help;color:#c8a038}.rebemer-chip{font:10px/1 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;background:#0000004d;border:1px solid var(--rebemer-input-border);color:var(--rebemer-fg);padding:2px 5px;border-radius:2px;white-space:nowrap}.rebemer-panel__footer{display:flex;justify-content:flex-end;gap:8px;padding:10px 14px;border-top:1px solid var(--rebemer-border)}.rebemer-btn{background:var(--rebemer-input-bg);border:1px solid var(--rebemer-input-border);color:var(--rebemer-fg);padding:6px 12px;border-radius:var(--rebemer-radius);font:inherit;cursor:pointer}.rebemer-btn:hover{border-color:var(--rebemer-fg-muted)}.rebemer-btn--primary{background:var(--rebemer-accent);border-color:var(--rebemer-accent);color:var(--rebemer-bg);font-weight:600}.rebemer-btn--primary:hover{background:var(--rebemer-accent-hover);border-color:var(--rebemer-accent-hover)}.rebemer-toast{position:fixed;bottom:16px;right:16px;z-index:100002;background:var(--rebemer-input-bg);color:var(--rebemer-fg);border:1px solid var(--rebemer-border);border-radius:var(--rebemer-radius);padding:8px 12px;font:12px/1.45 var(--rebemer-font);cursor:pointer;box-shadow:0 4px 12px #0006}.rebemer-toast--success{border-color:var(--rebemer-success)}.rebemer-toast--error{border-color:var(--rebemer-error);color:var(--rebemer-error)} +#slashed-rebemer-host{--rebemer-bg: #161a1d;--rebemer-fg: #e1e1e1;--rebemer-fg-muted: #8a8d95;--rebemer-border: #3d4752;--rebemer-accent: #e2b93b;--rebemer-accent-hover: #ffd042;--rebemer-input-bg: #293038;--rebemer-input-border: #3d4752;--rebemer-error: #ff4c4c;--rebemer-success: #4ade80;--rebemer-radius: 4px;--rebemer-font: "Inter", -apple-system, BlinkMacSystemFont, sans-serif}.rebemer-badge-host{display:inline-flex;align-items:center;align-self:center;flex:0 0 auto;margin:0 4px;opacity:0;pointer-events:none;transition:opacity 80ms linear}.structure-item:hover .rebemer-badge-host,.structure-item:focus-within .rebemer-badge-host,li[data-id]:hover>.rebemer-badge-host,li[data-id]:focus-within>.rebemer-badge-host{opacity:1;pointer-events:auto}.rebemer-badge{font:600 9px/1 var(--rebemer-font, "Inter", -apple-system, BlinkMacSystemFont, sans-serif);letter-spacing:0;text-transform:none;color:var(--rebemer-fg-muted, #8a8d95);display:inline;background:transparent;padding:1px 3px;margin:0;cursor:pointer;border-radius:2px;pointer-events:auto}.rebemer-badge:hover{color:var(--rebemer-accent, #e2b93b);background:#e2b93b14}.rebemer-badge:focus-visible{outline:1px dotted var(--rebemer-accent, #e2b93b);outline-offset:1px;color:var(--rebemer-accent, #e2b93b)}.rebemer-panel{position:fixed;top:80px;left:50%;transform:translate(-50%);width:440px;max-width:calc(100vw - 40px);max-height:80vh;z-index:100000;background:var(--rebemer-bg);color:var(--rebemer-fg);border:1px solid var(--rebemer-border);border-radius:var(--rebemer-radius);box-shadow:0 10px 40px #0009;display:flex;flex-direction:column;font:12px/1.45 var(--rebemer-font);overflow:hidden;outline:none}.rebemer-panel__header{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;border-bottom:1px solid var(--rebemer-border)}.rebemer-panel__title{margin:0;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:#fff}.rebemer-panel__subject{color:var(--rebemer-accent);text-transform:none;font-weight:500}.rebemer-panel__close{background:transparent;border:0;font-size:18px;color:var(--rebemer-fg-muted);cursor:pointer;padding:2px 6px}.rebemer-panel__close:hover{color:#fff}.rebemer-panel__toolbar{padding:10px 14px;display:flex;gap:12px;align-items:center;flex-wrap:wrap;border-bottom:1px solid var(--rebemer-border)}.rebemer-field{display:flex;flex-direction:column;gap:4px;font-size:11px}.rebemer-field--inline{flex-direction:row;align-items:center;gap:6px}.rebemer-field__label{color:var(--rebemer-fg-muted);text-transform:uppercase;letter-spacing:.5px;font-size:10px}.rebemer-field select,.rebemer-field input[type=text]{background:var(--rebemer-input-bg);border:1px solid var(--rebemer-input-border);border-radius:var(--rebemer-radius);color:var(--rebemer-fg);padding:4px 6px;font:inherit}.rebemer-field select:focus,.rebemer-field input:focus{outline:1px solid var(--rebemer-accent)}.rebemer-panel__notice{margin:0;padding:8px 14px;background:#e2b93b14;border-bottom:1px solid var(--rebemer-border);color:var(--rebemer-fg);font-size:11px;line-height:1.5}.rebemer-panel__notice--warn{background:#e2b93b29}.rebemer-panel__notice strong{color:var(--rebemer-accent);font-weight:600}.rebemer-panel__notice-skip{display:block;margin-top:2px;color:var(--rebemer-fg-muted)}.rebemer-panel__body{flex:1;overflow-y:auto;padding:8px 14px;display:flex;flex-direction:column;gap:6px}.rebemer-row{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:8px;padding:6px 8px;border-radius:var(--rebemer-radius);background:#ffffff05;margin-left:calc(var(--rebemer-row-depth, 0) * 12px)}.rebemer-row:hover{background:#ffffff0a}.rebemer-row--disabled{opacity:.45}.rebemer-row__include input{cursor:pointer}.rebemer-row__meta{display:flex;gap:6px;align-items:baseline;min-width:0}.rebemer-row__label{font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.rebemer-row__type{font-size:9px;color:var(--rebemer-fg-muted);text-transform:uppercase}.rebemer-row__hint{font-size:9px;color:var(--rebemer-accent);text-transform:uppercase;letter-spacing:.5px;background:#e2b93b1f;padding:1px 4px;border-radius:2px}.rebemer-row__inputs{grid-column:1 / -1;display:flex;gap:6px;align-items:center}.rebemer-row__name{flex:1;display:flex;align-items:stretch;background:var(--rebemer-input-bg);border:1px solid var(--rebemer-input-border);border-radius:var(--rebemer-radius);overflow:hidden}.rebemer-row__prefix{padding:4px 6px;background:#00000040;color:var(--rebemer-fg-muted);font-size:11px;border-right:1px solid var(--rebemer-input-border);white-space:nowrap}.rebemer-row__name input{background:transparent;border:0;outline:0;color:var(--rebemer-fg);font:inherit;padding:4px 6px;flex:1;min-width:0}.rebemer-row--suggested .rebemer-row__name input:not(:focus){color:var(--rebemer-fg-muted);font-style:italic}.rebemer-row__modifier{background:var(--rebemer-input-bg);border:1px solid var(--rebemer-input-border);border-radius:var(--rebemer-radius);color:var(--rebemer-fg);font:inherit;padding:4px 6px;width:90px}.rebemer-row__recommend{grid-column:1 / -1;margin:0;padding:6px 8px;background:#4ade8014;border-left:2px solid var(--rebemer-success);border-radius:2px;color:var(--rebemer-fg);font-size:11px;line-height:1.4}.rebemer-row__recommend code{background:#0000004d;padding:1px 4px;border-radius:2px;font:11px/1 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;color:var(--rebemer-accent)}.rebemer-row__chips{grid-column:1 / -1;display:flex;flex-wrap:wrap;align-items:center;gap:4px;padding:4px 0 0;font-size:10px}.rebemer-row__chips-label,.rebemer-row__chips-empty,.rebemer-row__chips-skip{color:var(--rebemer-fg-muted);text-transform:uppercase;letter-spacing:.5px;font-size:9px}.rebemer-row__chips-skip{margin-left:auto;cursor:help;color:#c8a038}.rebemer-chip{font:10px/1 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;background:#0000004d;border:1px solid var(--rebemer-input-border);color:var(--rebemer-fg);padding:2px 5px;border-radius:2px;white-space:nowrap}.rebemer-panel__footer{display:flex;justify-content:flex-end;gap:8px;padding:10px 14px;border-top:1px solid var(--rebemer-border)}.rebemer-btn{background:var(--rebemer-input-bg);border:1px solid var(--rebemer-input-border);color:var(--rebemer-fg);padding:6px 12px;border-radius:var(--rebemer-radius);font:inherit;cursor:pointer}.rebemer-btn:hover{border-color:var(--rebemer-fg-muted)}.rebemer-btn--primary{background:var(--rebemer-accent);border-color:var(--rebemer-accent);color:var(--rebemer-bg);font-weight:600}.rebemer-btn--primary:hover{background:var(--rebemer-accent-hover);border-color:var(--rebemer-accent-hover)}.rebemer-toast{position:fixed;bottom:16px;right:16px;z-index:100002;background:var(--rebemer-input-bg);color:var(--rebemer-fg);border:1px solid var(--rebemer-border);border-radius:var(--rebemer-radius);padding:8px 12px;font:12px/1.45 var(--rebemer-font);cursor:pointer;box-shadow:0 4px 12px #0006}.rebemer-toast--success{border-color:var(--rebemer-success)}.rebemer-toast--error{border-color:var(--rebemer-error);color:var(--rebemer-error)} diff --git a/integrations/bricks/assets/editor-app/app.js b/integrations/bricks/assets/editor-app/app.js index ee2b16ab..0e04fabb 100644 --- a/integrations/bricks/assets/editor-app/app.js +++ b/integrations/bricks/assets/editor-app/app.js @@ -1,7 +1,7 @@ -var rs=Object.defineProperty;var Br=e=>{throw TypeError(e)};var is=(e,t,n)=>t in e?rs(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;var ee=(e,t,n)=>is(e,typeof t!="symbol"?t+"":t,n),Qn=(e,t,n)=>t.has(e)||Br("Cannot "+n);var f=(e,t,n)=>(Qn(e,t,"read from private field"),n?n.call(e):t.get(e)),k=(e,t,n)=>t.has(e)?Br("Cannot add the same private member more than once"):t instanceof WeakSet?t.add(e):t.set(e,n),w=(e,t,n,r)=>(Qn(e,t,"write to private field"),r?r.call(e,n):t.set(e,n),n),T=(e,t,n)=>(Qn(e,t,"access private method"),n);var Er=Array.isArray,ss=Array.prototype.indexOf,gt=Array.prototype.includes,zn=Array.from,os=Object.defineProperty,Rt=Object.getOwnPropertyDescriptor,ls=Object.getOwnPropertyDescriptors,as=Object.prototype,fs=Array.prototype,si=Object.getPrototypeOf,jr=Object.isExtensible;const us=()=>{};function cs(e){for(var t=0;t{e=r,t=i});return{promise:n,resolve:e,reject:t}}const Y=2,jt=4,Kn=8,li=1<<24,xe=16,Oe=32,st=64,ir=128,we=512,U=1024,V=2048,Be=4096,Q=8192,ye=16384,xt=32768,sr=1<<25,qt=65536,In=1<<17,ds=1<<18,Ht=1<<19,_s=1<<20,Fe=1<<25,St=65536,Pn=1<<21,Nt=1<<22,tt=1<<23,mt=Symbol("$state"),hs=Symbol("legacy props"),vs=Symbol(""),An=Symbol("attributes"),or=Symbol("class"),ps=Symbol("style"),Xt=Symbol("text"),xn=Symbol("form reset"),Un=new class extends Error{constructor(){super(...arguments);ee(this,"name","StaleReactionError");ee(this,"message","The reaction that called `getAbortSignal()` was re-run or destroyed")}};function gs(e){throw new Error("https://svelte.dev/e/lifecycle_outside_component")}function ms(){throw new Error("https://svelte.dev/e/async_derived_orphan")}function bs(e,t,n){throw new Error("https://svelte.dev/e/each_key_duplicate")}function ws(e){throw new Error("https://svelte.dev/e/effect_in_teardown")}function ys(){throw new Error("https://svelte.dev/e/effect_in_unowned_derived")}function ks(e){throw new Error("https://svelte.dev/e/effect_orphan")}function Es(){throw new Error("https://svelte.dev/e/effect_update_depth_exceeded")}function Ss(e){throw new Error("https://svelte.dev/e/props_invalid_value")}function Cs(){throw new Error("https://svelte.dev/e/state_descriptors_fixed")}function As(){throw new Error("https://svelte.dev/e/state_prototype_fixed")}function xs(){throw new Error("https://svelte.dev/e/state_unsafe_mutation")}function Ts(){throw new Error("https://svelte.dev/e/svelte_boundary_reset_onerror")}const Ms=1,Os=2,ai=4,Rs=8,Ns=16,Is=1,Ps=4,Ls=8,Ds=16,Fs=1,Bs=2,z=Symbol("uninitialized"),fi="http://www.w3.org/1999/xhtml";function js(){console.warn("https://svelte.dev/e/derived_inert")}function qs(){console.warn("https://svelte.dev/e/select_multiple_invalid_value")}function zs(){console.warn("https://svelte.dev/e/svelte_boundary_reset_noop")}function ui(e){return e===this.v}function Ks(e,t){return e!=e?t==t:e!==t||e!==null&&typeof e=="object"||typeof e=="function"}function ci(e){return!Ks(e,this.v)}let ie=null;function zt(e){ie=e}function vn(e,t=!1,n){ie={p:ie,i:!1,c:null,e:null,s:e,x:null,r:C,l:null}}function pn(e){var t=ie,n=t.e;if(n!==null){t.e=null;for(var r of n)Ni(r)}return t.i=!0,ie=t.p,{}}function di(){return!0}let at=[];function _i(){var e=at;at=[],cs(e)}function nt(e){if(at.length===0&&!tn){var t=at;queueMicrotask(()=>{t===at&&_i()})}at.push(e)}function Us(){for(;at.length>0;)_i()}function hi(e){var t=C;if(t===null)return S.f|=tt,e;if((t.f&xt)===0&&(t.f&jt)===0)throw e;Qe(e,t)}function Qe(e,t){for(;t!==null;){if((t.f&ir)!==0){if((t.f&xt)===0)throw e;try{t.b.error(e);return}catch(n){e=n}}t=t.parent}throw e}const Hs=-7169;function F(e,t){e.f=e.f&Hs|t}function Sr(e){(e.f&we)!==0||e.deps===null?F(e,U):F(e,Be)}function vi(e){if(e!==null)for(const t of e)(t.f&Y)===0||(t.f&St)===0||(t.f^=St,vi(t.deps))}function pi(e,t,n){(e.f&V)!==0?t.add(e):(e.f&Be)!==0&&n.add(e),vi(e.deps),F(e,U)}let En=!1;function Gs(e){var t=En;try{return En=!1,[e(),En]}finally{En=t}}let $n=null,Tt=null,E=null,lr=null,Te=null,ar=null,tn=!1,er=!1,Ot=null,Tn=null;var qr=0;let Ws=1;var It,Je,ct,Pt,Lt,dt,Dt,Ke,fn,ae,un,Ze,Pe,Le,Ft,_t,O,fr,Qt,ur,gi,mi,Mn,Vs,cr,Mt;const Bn=class Bn{constructor(){k(this,O);ee(this,"id",Ws++);k(this,It,!1);ee(this,"linked",!0);k(this,Je,null);k(this,ct,null);ee(this,"async_deriveds",new Map);ee(this,"current",new Map);ee(this,"previous",new Map);ee(this,"unblocked",new Set);k(this,Pt,new Set);k(this,Lt,new Set);k(this,dt,new Set);k(this,Dt,0);k(this,Ke,new Map);k(this,fn,null);k(this,ae,[]);k(this,un,[]);k(this,Ze,new Set);k(this,Pe,new Set);k(this,Le,new Map);k(this,Ft,new Set);ee(this,"is_fork",!1);k(this,_t,!1)}skip_effect(t){f(this,Le).has(t)||f(this,Le).set(t,{d:[],m:[]}),f(this,Ft).delete(t)}unskip_effect(t,n=r=>this.schedule(r)){var r=f(this,Le).get(t);if(r){f(this,Le).delete(t);for(var i of r.d)F(i,V),n(i);for(i of r.m)F(i,Be),n(i)}f(this,Ft).add(t)}capture(t,n,r=!1){t.v!==z&&!this.previous.has(t)&&this.previous.set(t,t.v),(t.f&tt)===0&&(this.current.set(t,[n,r]),Te?.set(t,n)),this.is_fork||(t.v=n)}activate(){E=this}deactivate(){E=null,Te=null}flush(){try{er=!0,E=this,T(this,O,Qt).call(this)}finally{qr=0,ar=null,Ot=null,Tn=null,er=!1,E=null,Te=null,bt.clear()}}discard(){for(const t of f(this,Lt))t(this);f(this,Lt).clear(),f(this,dt).clear(),T(this,O,Mt).call(this)}register_created_effect(t){f(this,un).push(t)}increment(t,n){if(w(this,Dt,f(this,Dt)+1),t){let r=f(this,Ke).get(n)??0;f(this,Ke).set(n,r+1)}}decrement(t,n){if(w(this,Dt,f(this,Dt)-1),t){let r=f(this,Ke).get(n)??0;r===1?f(this,Ke).delete(n):f(this,Ke).set(n,r-1)}f(this,_t)||(w(this,_t,!0),nt(()=>{w(this,_t,!1),this.linked&&this.flush()}))}transfer_effects(t,n){for(const r of t)f(this,Ze).add(r);for(const r of n)f(this,Pe).add(r);t.clear(),n.clear()}oncommit(t){f(this,Pt).add(t)}ondiscard(t){f(this,Lt).add(t)}on_fork_commit(t){f(this,dt).add(t)}run_fork_commit_callbacks(){for(const t of f(this,dt))t(this);f(this,dt).clear()}settled(){return(f(this,fn)??w(this,fn,oi())).promise}static ensure(){var t;if(E===null){const n=E=new Bn;T(t=n,O,cr).call(t),!er&&!tn&&nt(()=>{f(n,It)||n.flush()})}return E}apply(){{Te=null;return}}schedule(t){if(ar=t,t.b?.is_pending&&(t.f&(jt|Kn|li))!==0&&(t.f&xt)===0){t.b.defer_effect(t);return}for(var n=t;n.parent!==null;){n=n.parent;var r=n.f;if(Ot!==null&&n===C&&(S===null||(S.f&Y)===0))return;if((r&(st|Oe))!==0){if((r&U)===0)return;n.f^=U}}f(this,ae).push(n)}};It=new WeakMap,Je=new WeakMap,ct=new WeakMap,Pt=new WeakMap,Lt=new WeakMap,dt=new WeakMap,Dt=new WeakMap,Ke=new WeakMap,fn=new WeakMap,ae=new WeakMap,un=new WeakMap,Ze=new WeakMap,Pe=new WeakMap,Le=new WeakMap,Ft=new WeakMap,_t=new WeakMap,O=new WeakSet,fr=function(){if(this.is_fork)return!0;for(const r of f(this,Ke).keys()){for(var t=r,n=!1;t.parent!==null;){if(f(this,Le).has(t)){n=!0;break}t=t.parent}if(!n)return!0}return!1},Qt=function(){var l,u,c;if(w(this,It,!0),qr++>1e3&&(T(this,O,Mt).call(this),Js()),!T(this,O,fr).call(this)){for(const d of f(this,Ze))f(this,Pe).delete(d),F(d,V),this.schedule(d);for(const d of f(this,Pe))F(d,Be),this.schedule(d)}const t=f(this,ae);w(this,ae,[]),this.apply();var n=Ot=[],r=[],i=Tn=[];for(const d of t)try{T(this,O,ur).call(this,d,n,r)}catch(_){throw yi(d),_}if(E=null,i.length>0){var s=Bn.ensure();for(const d of i)s.schedule(d)}if(Ot=null,Tn=null,T(this,O,fr).call(this)){T(this,O,Mn).call(this,r),T(this,O,Mn).call(this,n);for(const[d,_]of f(this,Le))wi(d,_);i.length>0&&T(l=E,O,Qt).call(l);return}const o=T(this,O,gi).call(this);if(o){T(u=o,O,mi).call(u,this);return}f(this,Ze).clear(),f(this,Pe).clear();for(const d of f(this,Pt))d(this);f(this,Pt).clear(),lr=this,zr(r),zr(n),lr=null,f(this,fn)?.resolve();var a=E;if(this.linked&&f(this,Dt)===0&&T(this,O,Mt).call(this),f(this,ae).length>0){a===null&&(a=this,T(this,O,cr).call(this));const d=a;f(d,ae).push(...f(this,ae).filter(_=>!f(d,ae).includes(_)))}a!==null&&T(c=a,O,Qt).call(c)},ur=function(t,n,r){t.f^=U;for(var i=t.first;i!==null;){var s=i.f,o=(s&(Oe|st))!==0,a=o&&(s&U)!==0,l=a||(s&Q)!==0||f(this,Le).has(i);if(!l&&i.fn!==null){o?i.f^=U:(s&jt)!==0?n.push(i):mn(i)&&((s&xe)!==0&&f(this,Pe).add(i),Ut(i));var u=i.first;if(u!==null){i=u;continue}}for(;i!==null;){var c=i.next;if(c!==null){i=c;break}i=i.parent}}},gi=function(){for(var t=f(this,Je);t!==null;){if(!t.is_fork){for(const[n,[,r]]of this.current)if(t.current.has(n)&&!r)return t}t=f(t,Je)}return null},mi=function(t){var r;for(const[i,s]of t.current)!this.previous.has(i)&&t.previous.has(i)&&this.previous.set(i,t.previous.get(i)),this.current.set(i,s);for(const[i,s]of t.async_deriveds){const o=this.async_deriveds.get(i);o&&s.promise.then(o.resolve)}const n=i=>{var s=i.reactions;if(s!==null)for(const l of s){var o=l.f;if((o&Y)!==0)n(l);else{var a=l;o&(Nt|xe)&&!this.async_deriveds.has(a)&&(f(this,Pe).delete(a),F(a,V),this.schedule(a))}}};for(const i of this.current.keys())n(i);this.oncommit(()=>t.discard()),T(r=t,O,Mt).call(r),E=this,T(this,O,Qt).call(this)},Mn=function(t){for(var n=0;n!this.current.has(_));if(i.length===0)t&&d.discard();else if(n.length>0){if(t)for(const _ of f(this,Ft))d.unskip_effect(_,v=>{var p;(v.f&(xe|Nt))!==0?d.schedule(v):T(p=d,O,Mn).call(p,[v])});d.activate();var s=new Set,o=new Map;for(var a of n)bi(a,i,s,o);o=new Map;var l=[...d.current.keys()].filter(_=>this.current.has(_)?this.current.get(_)[0]!==_.v:!0);if(l.length>0)for(const _ of f(this,un))(_.f&(ye|Q|In))===0&&Cr(_,l,o)&&((_.f&(Nt|xe))!==0?(F(_,V),d.schedule(_)):f(d,Ze).add(_));if(f(d,ae).length>0&&!f(d,_t)){d.apply();for(var u of f(d,ae))T(c=d,O,ur).call(c,u,[],[]);w(d,ae,[])}d.deactivate()}}}},cr=function(){Tt===null?$n=Tt=this:(w(Tt,ct,this),w(this,Je,Tt)),Tt=this},Mt=function(){var t=f(this,Je),n=f(this,ct);t===null?$n=n:w(t,ct,n),n===null?Tt=t:w(n,Je,t),this.linked=!1};let Ct=Bn;function Ys(e){var t=tn;tn=!0;try{for(var n;;){if(Us(),E===null)return n;E.flush()}}finally{tn=t}}function Js(){try{Es()}catch(e){Qe(e,ar)}}let ze=null;function zr(e){var t=e.length;if(t!==0){for(var n=0;n0)){bt.clear();for(const i of ze){if((i.f&(ye|Q))!==0)continue;const s=[i];let o=i.parent;for(;o!==null;)ze.has(o)&&(ze.delete(o),s.push(o)),o=o.parent;for(let a=s.length-1;a>=0;a--){const l=s[a];(l.f&(ye|Q))===0&&Ut(l)}}ze.clear()}}ze=null}}function bi(e,t,n,r){if(!n.has(e)&&(n.add(e),e.reactions!==null))for(const i of e.reactions){const s=i.f;(s&Y)!==0?bi(i,t,n,r):(s&(Nt|xe))!==0&&(s&V)===0&&Cr(i,t,r)&&(F(i,V),Ar(i))}}function Cr(e,t,n){const r=n.get(e);if(r!==void 0)return r;if(e.deps!==null)for(const i of e.deps){if(gt.call(t,i))return!0;if((i.f&Y)!==0&&Cr(i,t,n))return n.set(i,!0),!0}return n.set(e,!1),!1}function Ar(e){E.schedule(e)}function wi(e,t){if(!((e.f&Oe)!==0&&(e.f&U)!==0)){(e.f&V)!==0?t.d.push(e):(e.f&Be)!==0&&t.m.push(e),F(e,U);for(var n=e.first;n!==null;)wi(n,t),n=n.next}}function yi(e){F(e,U);for(var t=e.first;t!==null;)yi(t),t=t.next}function Zs(e){let t=0,n=At(0),r;return()=>{Mr()&&(g(n),Gn(()=>(t===0&&(r=Gt(()=>e(()=>nn(n)))),t+=1,()=>{nt(()=>{t-=1,t===0&&(r?.(),r=void 0,nn(n))})})))}}var Xs=qt|Ht;function Qs(e,t,n,r){new $s(e,t,n,r)}var he,kr,ve,ht,te,pe,Z,fe,Ue,vt,Xe,Bt,cn,dn,He,jn,B,eo,to,no,dr,On,Rn,_r,hr;class $s{constructor(t,n,r,i){k(this,B);ee(this,"parent");ee(this,"is_pending",!1);ee(this,"transform_error");k(this,he);k(this,kr,null);k(this,ve);k(this,ht);k(this,te);k(this,pe,null);k(this,Z,null);k(this,fe,null);k(this,Ue,null);k(this,vt,0);k(this,Xe,0);k(this,Bt,!1);k(this,cn,new Set);k(this,dn,new Set);k(this,He,null);k(this,jn,Zs(()=>(w(this,He,At(f(this,vt))),()=>{w(this,He,null)})));w(this,he,t),w(this,ve,n),w(this,ht,s=>{var o=C;o.b=this,o.f|=ir,r(s)}),this.parent=C.b,this.transform_error=i??this.parent?.transform_error??(s=>s),w(this,te,Nr(()=>{T(this,B,dr).call(this)},Xs))}defer_effect(t){pi(t,f(this,cn),f(this,dn))}is_rendered(){return!this.is_pending&&(!this.parent||this.parent.is_rendered())}has_pending_snippet(){return!!f(this,ve).pending}update_pending_count(t,n){T(this,B,_r).call(this,t,n),w(this,vt,f(this,vt)+t),!(!f(this,He)||f(this,Bt))&&(w(this,Bt,!0),nt(()=>{w(this,Bt,!1),f(this,He)&&Kt(f(this,He),f(this,vt))}))}get_effect_pending(){return f(this,jn).call(this),g(f(this,He))}error(t){if(!f(this,ve).onerror&&!f(this,ve).failed)throw t;E?.is_fork?(f(this,pe)&&E.skip_effect(f(this,pe)),f(this,Z)&&E.skip_effect(f(this,Z)),f(this,fe)&&E.skip_effect(f(this,fe)),E.on_fork_commit(()=>{T(this,B,hr).call(this,t)})):T(this,B,hr).call(this,t)}}he=new WeakMap,kr=new WeakMap,ve=new WeakMap,ht=new WeakMap,te=new WeakMap,pe=new WeakMap,Z=new WeakMap,fe=new WeakMap,Ue=new WeakMap,vt=new WeakMap,Xe=new WeakMap,Bt=new WeakMap,cn=new WeakMap,dn=new WeakMap,He=new WeakMap,jn=new WeakMap,B=new WeakSet,eo=function(){try{w(this,pe,me(()=>f(this,ht).call(this,f(this,he))))}catch(t){this.error(t)}},to=function(t){const n=f(this,ve).failed;n&&w(this,fe,me(()=>{n(f(this,he),()=>t,()=>()=>{})}))},no=function(){const t=f(this,ve).pending;t&&(this.is_pending=!0,w(this,Z,me(()=>t(f(this,he)))),nt(()=>{var n=w(this,Ue,document.createDocumentFragment()),r=rt();n.append(r),w(this,pe,T(this,B,Rn).call(this,()=>me(()=>f(this,ht).call(this,r)))),f(this,Xe)===0&&(f(this,he).before(n),w(this,Ue,null),wt(f(this,Z),()=>{w(this,Z,null)}),T(this,B,On).call(this,E))}))},dr=function(){try{if(this.is_pending=this.has_pending_snippet(),w(this,Xe,0),w(this,vt,0),w(this,pe,me(()=>{f(this,ht).call(this,f(this,he))})),f(this,Xe)>0){var t=w(this,Ue,document.createDocumentFragment());Lr(f(this,pe),t);const n=f(this,ve).pending;w(this,Z,me(()=>n(f(this,he))))}else T(this,B,On).call(this,E)}catch(n){this.error(n)}},On=function(t){this.is_pending=!1,t.transfer_effects(f(this,cn),f(this,dn))},Rn=function(t){var n=C,r=S,i=ie;je(f(this,te)),Ee(f(this,te)),zt(f(this,te).ctx);try{return Ct.ensure(),t()}catch(s){return hi(s),null}finally{je(n),Ee(r),zt(i)}},_r=function(t,n){var r;if(!this.has_pending_snippet()){this.parent&&T(r=this.parent,B,_r).call(r,t,n);return}w(this,Xe,f(this,Xe)+t),f(this,Xe)===0&&(T(this,B,On).call(this,n),f(this,Z)&&wt(f(this,Z),()=>{w(this,Z,null)}),f(this,Ue)&&(f(this,he).before(f(this,Ue)),w(this,Ue,null)))},hr=function(t){f(this,pe)&&(re(f(this,pe)),w(this,pe,null)),f(this,Z)&&(re(f(this,Z)),w(this,Z,null)),f(this,fe)&&(re(f(this,fe)),w(this,fe,null));var n=f(this,ve).onerror;let r=f(this,ve).failed;var i=!1,s=!1;const o=()=>{if(i){zs();return}i=!0,s&&Ts(),f(this,fe)!==null&&wt(f(this,fe),()=>{w(this,fe,null)}),T(this,B,Rn).call(this,()=>{T(this,B,dr).call(this)})},a=l=>{try{s=!0,n?.(l,o),s=!1}catch(u){Qe(u,f(this,te)&&f(this,te).parent)}r&&w(this,fe,T(this,B,Rn).call(this,()=>{try{return me(()=>{var u=C;u.b=this,u.f|=ir,r(f(this,he),()=>l,()=>o)})}catch(u){return Qe(u,f(this,te).parent),null}}))};nt(()=>{var l;try{l=this.transform_error(t)}catch(u){Qe(u,f(this,te)&&f(this,te).parent);return}l!==null&&typeof l=="object"&&typeof l.then=="function"?l.then(a,u=>Qe(u,f(this,te)&&f(this,te).parent)):a(l)})};function ro(e,t,n,r){const i=ln;var s=e.filter(_=>!_.settled);if(n.length===0&&s.length===0){r(t.map(i));return}var o=C,a=io(),l=s.length===1?s[0].promise:s.length>1?Promise.all(s.map(_=>_.promise)):null;function u(_){if((o.f&ye)===0){a();try{r(_)}catch(v){Qe(v,o)}Ln()}}var c=ki();if(n.length===0){l.then(()=>u(t.map(i))).finally(c);return}function d(){Promise.all(n.map(_=>so(_))).then(_=>u([...t.map(i),..._])).catch(_=>Qe(_,o)).finally(c)}l?l.then(()=>{a(),d(),Ln()}):d()}function io(){var e=C,t=S,n=ie,r=E;return function(s=!0){je(e),Ee(t),zt(n),s&&(e.f&ye)===0&&(r?.activate(),r?.apply())}}function Ln(e=!0){je(null),Ee(null),zt(null),e&&E?.deactivate()}function ki(){var e=C,t=e.b,n=E,r=t.is_rendered();return t.update_pending_count(1,n),n.increment(r,e),()=>{t.update_pending_count(-1,n),n.decrement(r,e)}}function ln(e){var t=Y|V;return C!==null&&(C.f|=Ht),{ctx:ie,deps:null,effects:null,equals:ui,f:t,fn:e,reactions:null,rv:0,v:z,wv:0,parent:C,ac:null}}const Sn=Symbol("obsolete");function so(e,t,n){let r=C;r===null&&ms();var i=void 0,s=At(z),o=!S,a=new Set;return bo(()=>{var l=C,u=oi();i=u.promise;try{Promise.resolve(e()).then(u.resolve,v=>{v!==Un&&u.reject(v)}).finally(Ln)}catch(v){u.reject(v),Ln()}var c=E;if(o){if((l.f&xt)!==0)var d=ki();if(r.b.is_rendered())c.async_deriveds.get(l)?.reject(Sn);else for(const v of a.values())v.reject(Sn);a.add(u),c.async_deriveds.set(l,u)}const _=(v,p=void 0)=>{d?.(),a.delete(u),p!==Sn&&(c.activate(),p?(s.f|=tt,Kt(s,p)):((s.f&tt)!==0&&(s.f^=tt),Kt(s,v)),c.deactivate())};u.promise.then(_,v=>_(null,v||"unknown"))}),Or(()=>{for(const l of a)l.reject(Sn)}),new Promise(l=>{function u(c){function d(){c===i?l(s):u(i)}c.then(d,d)}u(i)})}function de(e){const t=ln(e);return Bi(t),t}function Ei(e){const t=ln(e);return t.equals=ci,t}function oo(e){var t=e.effects;if(t!==null){e.effects=null;for(var n=0;n0&&!Ai&&fo()}return t}function fo(){Ai=!1;for(const e of Dn){(e.f&U)!==0&&F(e,Be);let t;try{t=mn(e)}catch{t=!0}t&&Ut(e)}Dn.clear()}function nn(e){K(e,e.v+1)}function xi(e,t,n){var r=e.reactions;if(r!==null)for(var i=r.length,s=0;s{if(yt===s)return a();var l=S,u=yt;Ee(null),Gr(s);var c=a();return Ee(l),Gr(u),c};return r&&n.set("length",X(e.length)),new Proxy(e,{defineProperty(a,l,u){(!("value"in u)||u.configurable===!1||u.enumerable===!1||u.writable===!1)&&Cs();var c=n.get(l);return c===void 0?o(()=>{var d=X(u.value);return n.set(l,d),d}):K(c,u.value,!0),!0},deleteProperty(a,l){var u=n.get(l);if(u===void 0){if(l in a){const c=o(()=>X(z));n.set(l,c),nn(i)}}else K(u,z),nn(i);return!0},get(a,l,u){if(l===mt)return e;var c=n.get(l),d=l in a;if(c===void 0&&(!d||Rt(a,l)?.writable)&&(c=o(()=>{var v=$e(d?a[l]:z),p=X(v);return p}),n.set(l,c)),c!==void 0){var _=g(c);return _===z?void 0:_}return Reflect.get(a,l,u)},getOwnPropertyDescriptor(a,l){var u=Reflect.getOwnPropertyDescriptor(a,l);if(u&&"value"in u){var c=n.get(l);c&&(u.value=g(c))}else if(u===void 0){var d=n.get(l),_=d?.v;if(d!==void 0&&_!==z)return{enumerable:!0,configurable:!0,value:_,writable:!0}}return u},has(a,l){if(l===mt)return!0;var u=n.get(l),c=u!==void 0&&u.v!==z||Reflect.has(a,l);if(u!==void 0||C!==null&&(!c||Rt(a,l)?.writable)){u===void 0&&(u=o(()=>{var _=c?$e(a[l]):z,v=X(_);return v}),n.set(l,u));var d=g(u);if(d===z)return!1}return c},set(a,l,u,c){var d=n.get(l),_=l in a;if(r&&l==="length")for(var v=u;vX(z)),n.set(v+"",p))}if(d===void 0)(!_||Rt(a,l)?.writable)&&(d=o(()=>X(void 0)),K(d,$e(u)),n.set(l,d));else{_=d.v!==z;var y=o(()=>$e(u));K(d,y)}var h=Reflect.getOwnPropertyDescriptor(a,l);if(h?.set&&h.set.call(c,u),!_){if(r&&typeof l=="string"){var m=n.get("length"),N=Number(l);Number.isInteger(N)&&N>=m.v&&K(m,N+1)}nn(i)}return!0},ownKeys(a){g(i);var l=Reflect.ownKeys(a).filter(d=>{var _=n.get(d);return _===void 0||_.v!==z});for(var[u,c]of n)c.v!==z&&!(u in a)&&l.push(u);return l},setPrototypeOf(){As()}})}function Kr(e){try{if(e!==null&&typeof e=="object"&&mt in e)return e[mt]}catch{}return e}function uo(e,t){return Object.is(Kr(e),Kr(t))}var vr,Ti,Mi,Oi;function co(){if(vr===void 0){vr=window,Ti=/Firefox/.test(navigator.userAgent);var e=Element.prototype,t=Node.prototype,n=Text.prototype;Mi=Rt(t,"firstChild").get,Oi=Rt(t,"nextSibling").get,jr(e)&&(e[or]=void 0,e[An]=null,e[ps]=void 0,e.__e=void 0),jr(n)&&(n[Xt]=void 0)}}function rt(e=""){return document.createTextNode(e)}function Fn(e){return Mi.call(e)}function gn(e){return Oi.call(e)}function L(e,t){return Fn(e)}function rn(e,t=!1){{var n=Fn(e);return n instanceof Comment&&n.data===""?gn(n):n}}function I(e,t=1,n=!1){let r=e;for(;t--;)r=gn(r);return r}function _o(e){e.textContent=""}function Ri(){return!1}function ho(e,t,n){return document.createElementNS(fi,e,void 0)}let Ur=!1;function vo(){Ur||(Ur=!0,document.addEventListener("reset",e=>{Promise.resolve().then(()=>{if(!e.defaultPrevented)for(const t of e.target.elements)t[xn]?.()})},{capture:!0}))}function Hn(e){var t=S,n=C;Ee(null),je(null);try{return e()}finally{Ee(t),je(n)}}function Tr(e,t,n,r=n){e.addEventListener(t,()=>Hn(n));const i=e[xn];i?e[xn]=()=>{i(),r(!0)}:e[xn]=()=>r(!0),vo()}function po(e){C===null&&(S===null&&ks(),ys()),Ge&&ws()}function go(e,t){var n=t.last;n===null?t.last=t.first=e:(n.next=e,e.prev=n,t.last=e)}function We(e,t){var n=C;n!==null&&(n.f&Q)!==0&&(e|=Q);var r={ctx:ie,deps:null,nodes:null,f:e|V|we,first:null,fn:t,last:null,next:null,parent:n,b:n&&n.b,prev:null,teardown:null,wv:0,ac:null};E?.register_created_effect(r);var i=r;if((e&jt)!==0)Ot!==null?Ot.push(r):Ct.ensure().schedule(r);else if(t!==null){try{Ut(r)}catch(o){throw re(r),o}i.deps===null&&i.teardown===null&&i.nodes===null&&i.first===i.last&&(i.f&Ht)===0&&(i=i.first,(e&xe)!==0&&(e&qt)!==0&&i!==null&&(i.f|=qt))}if(i!==null&&(i.parent=n,n!==null&&go(i,n),S!==null&&(S.f&Y)!==0&&(e&st)===0)){var s=S;(s.effects??(s.effects=[])).push(i)}return r}function Mr(){return S!==null&&!Me}function Or(e){const t=We(Kn,null);return F(t,U),t.teardown=e,t}function Rr(e){po();var t=C.f,n=!S&&(t&Oe)!==0&&(t&xt)===0;if(n){var r=ie;(r.e??(r.e=[])).push(e)}else return Ni(e)}function Ni(e){return We(jt|_s,e)}function mo(e){Ct.ensure();const t=We(st|Ht,e);return(n={})=>new Promise(r=>{n.outro?wt(t,()=>{re(t),r(void 0)}):(re(t),r(void 0))})}function Ii(e){return We(jt,e)}function bo(e){return We(Nt|Ht,e)}function Gn(e,t=0){return We(Kn|t,e)}function ce(e,t=[],n=[],r=[]){ro(r,t,n,i=>{We(Kn,()=>e(...i.map(g)))})}function Nr(e,t=0){var n=We(xe|t,e);return n}function me(e){return We(Oe|Ht,e)}function Pi(e){var t=e.teardown;if(t!==null){const n=Ge,r=S;Hr(!0),Ee(null);try{t.call(null)}finally{Hr(n),Ee(r)}}}function Ir(e,t=!1){var n=e.first;for(e.first=e.last=null;n!==null;){const i=n.ac;i!==null&&Hn(()=>{i.abort(Un)});var r=n.next;(n.f&st)!==0?n.parent=null:re(n,t),n=r}}function wo(e){for(var t=e.first;t!==null;){var n=t.next;(t.f&Oe)===0&&re(t),t=n}}function re(e,t=!0){var n=!1;(t||(e.f&ds)!==0)&&e.nodes!==null&&e.nodes.end!==null&&(yo(e.nodes.start,e.nodes.end),n=!0),F(e,sr),Ir(e,t&&!n),an(e,0);var r=e.nodes&&e.nodes.t;if(r!==null)for(const s of r)s.stop();Pi(e),e.f^=sr,e.f|=ye;var i=e.parent;i!==null&&i.first!==null&&Li(e),e.next=e.prev=e.teardown=e.ctx=e.deps=e.fn=e.nodes=e.ac=e.b=null}function yo(e,t){for(;e!==null;){var n=e===t?null:gn(e);e.remove(),e=n}}function Li(e){var t=e.parent,n=e.prev,r=e.next;n!==null&&(n.next=r),r!==null&&(r.prev=n),t!==null&&(t.first===e&&(t.first=r),t.last===e&&(t.last=n))}function wt(e,t,n=!0){var r=[];Di(e,r,!0);var i=()=>{n&&re(e),t&&t()},s=r.length;if(s>0){var o=()=>--s||i();for(var a of r)a.out(o)}else i()}function Di(e,t,n){if((e.f&Q)===0){e.f^=Q;var r=e.nodes&&e.nodes.t;if(r!==null)for(const a of r)(a.is_global||n)&&t.push(a);for(var i=e.first;i!==null;){var s=i.next;if((i.f&st)===0){var o=(i.f&qt)!==0||(i.f&Oe)!==0&&(e.f&xe)!==0;Di(i,t,o?n:!1)}i=s}}}function Pr(e){Fi(e,!0)}function Fi(e,t){if((e.f&Q)!==0){e.f^=Q,(e.f&U)===0&&(F(e,V),Ct.ensure().schedule(e));for(var n=e.first;n!==null;){var r=n.next,i=(n.f&qt)!==0||(n.f&Oe)!==0;Fi(n,i?t:!1),n=r}var s=e.nodes&&e.nodes.t;if(s!==null)for(const o of s)(o.is_global||t)&&o.in()}}function Lr(e,t){if(e.nodes)for(var n=e.nodes.start,r=e.nodes.end;n!==null;){var i=n===r?null:gn(n);t.append(n),n=i}}let Nn=!1,Ge=!1;function Hr(e){Ge=e}let S=null,Me=!1;function Ee(e){S=e}let C=null;function je(e){C=e}let ke=null;function Bi(e){S!==null&&(ke===null?ke=[e]:ke.push(e))}let ne=null,le=0,_e=null;function ko(e){_e=e}let ji=1,ft=0,yt=ft;function Gr(e){yt=e}function qi(){return++ji}function mn(e){var t=e.f;if((t&V)!==0)return!0;if(t&Y&&(e.f&=~St),(t&Be)!==0){for(var n=e.deps,r=n.length,i=0;ie.wv)return!0}(t&we)!==0&&Te===null&&F(e,U)}return!1}function zi(e,t,n=!0){var r=e.reactions;if(r!==null&&!(ke!==null&>.call(ke,e)))for(var i=0;i{e.ac.abort(Un)}),e.ac=null);try{e.f|=Pn;var c=e.fn,d=c();e.f|=xt;var _=e.deps,v=E?.is_fork;if(ne!==null){var p;if(v||an(e,le),_!==null&&le>0)for(_.length=le+ne.length,p=0;pn?.call(this,s))}return e.startsWith("pointer")||e.startsWith("touch")||e==="wheel"?nt(()=>{t.addEventListener(e,i,r)}):t.addEventListener(e,i,r),i}function To(e,t,n,r,i){var s={capture:r,passive:i},o=xo(e,t,n,s);(t===document.body||t===window||t===document||t instanceof HTMLMediaElement)&&Or(()=>{t.removeEventListener(e,o,s)})}function it(e,t,n){(t[ut]??(t[ut]={}))[e]=n}function Wn(e){for(var t=0;t{throw h});throw _}}finally{e[ut]=t,delete e.currentTarget,Ee(c),je(d)}}}const Mo=globalThis?.window?.trustedTypes&&globalThis.window.trustedTypes.createPolicy("svelte-trusted-html",{createHTML:e=>e});function Oo(e){return Mo?.createHTML(e)??e}function Ro(e){var t=ho("template");return t.innerHTML=Oo(e.replaceAll("","")),t.content}function mr(e,t){var n=C;n.nodes===null&&(n.nodes={start:e,end:t,a:null,t:null})}function J(e,t){var n=(t&Fs)!==0,r=(t&Bs)!==0,i,s=!e.startsWith("");return()=>{i===void 0&&(i=Ro(s?e:""+e),n||(i=Fn(i)));var o=r||Ti?document.importNode(i,!0):i.cloneNode(!0);if(n){var a=Fn(o),l=o.lastChild;mr(a,l)}else mr(o,o);return o}}function No(){var e=document.createDocumentFragment(),t=document.createComment(""),n=rt();return e.append(t,n),mr(t,n),e}function W(e,t){e!==null&&e.before(t)}function be(e,t){var n=t==null?"":typeof t=="object"?`${t}`:t;n!==(e[Xt]??(e[Xt]=e.nodeValue))&&(e[Xt]=n,e.nodeValue=`${n}`)}function Wi(e,t){return Io(e,t)}const Cn=new Map;function Io(e,{target:t,anchor:n,props:r={},events:i,context:s,intro:o=!0,transformError:a}){co();var l=void 0,u=mo(()=>{var c=n??t.appendChild(rt());Qs(c,{pending:()=>{}},v=>{vn({});var p=ie;s&&(p.c=s),i&&(r.$$events=i),l=e(v,r)||{},pn()},a);var d=new Set,_=v=>{for(var p=0;p{for(var v of d)for(const h of[t,document]){var p=Cn.get(h),y=p.get(v);--y==0?(h.removeEventListener(v,gr),p.delete(v),p.size===0&&Cn.delete(h)):p.set(v,y)}pr.delete(_),c!==n&&c.parentNode?.removeChild(c)}});return br.set(l,u),l}let br=new WeakMap;function Vn(e,t){const n=br.get(e);return n?(br.delete(e),n(t)):Promise.resolve()}var Ae,De,ue,pt,_n,hn,qn;class Po{constructor(t,n=!0){ee(this,"anchor");k(this,Ae,new Map);k(this,De,new Map);k(this,ue,new Map);k(this,pt,new Set);k(this,_n,!0);k(this,hn,t=>{if(f(this,Ae).has(t)){var n=f(this,Ae).get(t),r=f(this,De).get(n);if(r)Pr(r),f(this,pt).delete(n);else{var i=f(this,ue).get(n);i&&(f(this,De).set(n,i.effect),f(this,ue).delete(n),i.fragment.lastChild.remove(),this.anchor.before(i.fragment),r=i.effect)}for(const[s,o]of f(this,Ae)){if(f(this,Ae).delete(s),s===t)break;const a=f(this,ue).get(o);a&&(re(a.effect),f(this,ue).delete(o))}for(const[s,o]of f(this,De)){if(s===n||f(this,pt).has(s))continue;const a=()=>{if(Array.from(f(this,Ae).values()).includes(s)){var u=document.createDocumentFragment();Lr(o,u),u.append(rt()),f(this,ue).set(s,{effect:o,fragment:u})}else re(o);f(this,pt).delete(s),f(this,De).delete(s)};f(this,_n)||!r?(f(this,pt).add(s),wt(o,a,!1)):a()}}});k(this,qn,t=>{f(this,Ae).delete(t);const n=Array.from(f(this,Ae).values());for(const[r,i]of f(this,ue))n.includes(r)||(re(i.effect),f(this,ue).delete(r))});this.anchor=t,w(this,_n,n)}ensure(t,n){var r=E,i=Ri();if(n&&!f(this,De).has(t)&&!f(this,ue).has(t))if(i){var s=document.createDocumentFragment(),o=rt();s.append(o),f(this,ue).set(t,{effect:me(()=>n(o)),fragment:s})}else f(this,De).set(t,me(()=>n(this.anchor)));if(f(this,Ae).set(r,t),i){for(const[a,l]of f(this,De))a===t?r.unskip_effect(l):r.skip_effect(l);for(const[a,l]of f(this,ue))a===t?r.unskip_effect(l.effect):r.skip_effect(l.effect);r.oncommit(f(this,hn)),r.ondiscard(f(this,qn))}else f(this,hn).call(this,r)}}Ae=new WeakMap,De=new WeakMap,ue=new WeakMap,pt=new WeakMap,_n=new WeakMap,hn=new WeakMap,qn=new WeakMap;function ge(e,t,n=!1){var r=new Po(e),i=n?qt:0;function s(o,a){r.ensure(o,a)}Nr(()=>{var o=!1;t((a,l=0)=>{o=!0,s(l,a)}),o||s(-1,null)},i)}function Lo(e,t){return t}function Do(e,t,n){for(var r=[],i=t.length,s,o=t.length,a=0;a{if(s){if(s.pending.delete(d),s.done.add(d),s.pending.size===0){var _=e.outrogroups;wr(e,zn(s.done)),_.delete(s),_.size===0&&(e.outrogroups=null)}}else o-=1},!1)}if(o===0){var l=r.length===0&&n!==null;if(l){var u=n,c=u.parentNode;_o(c),c.append(u),e.items.clear()}wr(e,t,!l)}else s={pending:new Set(t),done:new Set},(e.outrogroups??(e.outrogroups=new Set)).add(s)}function wr(e,t,n=!0){var r;if(e.pending.size>0){r=new Set;for(const o of e.pending.values())for(const a of o)r.add(e.items.get(a).e)}for(var i=0;i{var P=n();return Er(P)?P:P==null?[]:zn(P)}),_,v=new Map,p=!0;function y(P){(N.effect.f&ye)===0&&(N.pending.delete(P),N.fallback=c,Fo(N,_,o,t,r),c!==null&&(_.length===0?(c.f&Fe)===0?Pr(c):(c.f^=Fe,$t(c,null,o)):wt(c,()=>{c=null})))}function h(P){N.pending.delete(P)}var m=Nr(()=>{_=g(d);for(var P=_.length,R=new Set,H=E,$=Ri(),G=0;Gs(o)):(c=me(()=>s(Vr??(Vr=rt()))),c.f|=Fe)),P>R.size&&bs(),!p)if(v.set(H,R),$){for(const[lt,Re]of a)R.has(lt)||H.skip_effect(Re.e);H.oncommit(y),H.ondiscard(h)}else y(H);g(d)}),N={effect:m,items:a,pending:v,outrogroups:null,fallback:c};p=!1}function Zt(e){for(;e!==null&&(e.f&Oe)===0;)e=e.next;return e}function Fo(e,t,n,r,i){var s=(r&Rs)!==0,o=t.length,a=e.items,l=Zt(e.effect.first),u,c=null,d,_=[],v=[],p,y,h,m;if(s)for(m=0;m0){var oe=(r&ai)!==0&&o===0?n:null;if(s){for(m=0;m{if(d!==void 0)for(h of d)h.nodes?.a?.apply()})}function Bo(e,t,n,r,i,s,o,a){var l=(o&Ms)!==0?(o&Ns)===0?ao(n,!1,!1):At(n):null,u=(o&Os)!==0?At(i):null;return{v:l,i:u,e:me(()=>(s(t,l??n,u??i,a),()=>{e.delete(r)}))}}function $t(e,t,n){if(e.nodes)for(var r=e.nodes.start,i=e.nodes.end,s=t&&(t.f&Fe)===0?t.nodes.start:n;r!==null;){var o=gn(r);if(s.before(r),r===i)return;r=o}}function Ye(e,t,n){t===null?e.effect.first=n:t.next=n,n===null?e.effect.last=t:n.prev=t}const Yr=[...` -\r\f \v\uFEFF`];function jo(e,t,n){var r=e==null?"":""+e;if(t&&(r=r?r+" "+t:t),n){for(var i of Object.keys(n))if(n[i])r=r?r+" "+i:i;else if(r.length)for(var s=i.length,o=0;(o=r.indexOf(i,o))>=0;){var a=o+s;(o===0||Yr.includes(r[o-1]))&&(a===r.length||Yr.includes(r[a]))?r=(o===0?"":r.substring(0,o))+r.substring(a+1):o=a}}return r===""?null:r}function Dr(e,t,n,r,i,s){var o=e[or];if(o!==n||o===void 0){var a=jo(n,r,s);a==null?e.removeAttribute("class"):e.className=a,e[or]=n}else if(s&&i!==s)for(var l in s){var u=!!s[l];(i==null||u!==!!i[l])&&e.classList.toggle(l,u)}return s}function Yi(e,t,n=!1){if(e.multiple){if(t==null)return;if(!Er(t))return qs();for(var r of e.options)r.selected=t.includes(sn(r));return}for(r of e.options){var i=sn(r);if(uo(i,t)){r.selected=!0;return}}(!n||t!==void 0)&&(e.selectedIndex=-1)}function qo(e){var t=new MutationObserver(()=>{Yi(e,e.__value)});t.observe(e,{childList:!0,subtree:!0,attributes:!0,attributeFilter:["value"]}),Or(()=>{t.disconnect()})}function zo(e,t,n=t){var r=new WeakSet,i=!0;Tr(e,"change",s=>{var o=s?"[selected]":":checked",a;if(e.multiple)a=[].map.call(e.querySelectorAll(o),sn);else{var l=e.querySelector(o)??e.querySelector("option:not([disabled])");a=l&&sn(l)}n(a),e.__value=a,E!==null&&r.add(E)}),Ii(()=>{var s=t();if(e===document.activeElement){var o=E;if(r.has(o))return}if(Yi(e,s,i),i&&s===void 0){var a=e.querySelector(":checked");a!==null&&(s=sn(a),n(s))}e.__value=s,i=!1}),qo(e)}function sn(e){return"__value"in e?e.__value:e.value}const Ko=Symbol("is custom element"),Uo=Symbol("is html");function et(e,t,n,r){var i=Ho(e);i[t]!==(i[t]=n)&&(t==="loading"&&(e[vs]=n),n==null?e.removeAttribute(t):typeof n!="string"&&Go(e).includes(t)?e[t]=n:e.setAttribute(t,n))}function Ho(e){return e[An]??(e[An]={[Ko]:e.nodeName.includes("-"),[Uo]:e.namespaceURI===fi})}var Jr=new Map;function Go(e){var t=e.getAttribute("is")||e.nodeName,n=Jr.get(t);if(n)return n;Jr.set(t,n=[]);for(var r,i=e,s=Element.prototype;s!==i;){r=ls(i);for(var o in r)r[o].set&&o!=="innerHTML"&&o!=="textContent"&&o!=="innerText"&&n.push(o);i=si(i)}return n}function Zr(e,t,n=t){var r=new WeakSet;Tr(e,"input",async i=>{var s=i?e.defaultValue:e.value;if(s=tr(e)?nr(s):s,n(s),E!==null&&r.add(E),await So(),s!==(s=t())){var o=e.selectionStart,a=e.selectionEnd,l=e.value.length;if(e.value=s??"",a!==null){var u=e.value.length;o===a&&a===l&&u>l?(e.selectionStart=u,e.selectionEnd=u):(e.selectionStart=o,e.selectionEnd=Math.min(a,u))}}}),Gt(t)==null&&e.value&&(n(tr(e)?nr(e.value):e.value),E!==null&&r.add(E)),Gn(()=>{var i=t();if(e===document.activeElement){var s=E;if(r.has(s))return}tr(e)&&i===nr(e.value)||e.type==="date"&&!i&&!e.value||i!==e.value&&(e.value=i??"")})}function Ji(e,t,n=t){Tr(e,"change",r=>{var i=r?e.defaultChecked:e.checked;n(i)}),Gt(t)==null&&n(e.checked),Gn(()=>{var r=t();e.checked=!!r})}function tr(e){var t=e.type;return t==="number"||t==="range"}function nr(e){return e===""?null:+e}function rr(e,t){return e===t||e?.[mt]===t}function Wo(e={},t,n,r){var i=ie.r,s=C;return Ii(()=>{var o,a;return Gn(()=>{o=a,a=[],Gt(()=>{rr(n(...a),e)||(t(e,...a),o&&rr(n(...o),e)&&t(null,...o))})}),()=>{let l=s;for(;l!==i&&l.parent!==null&&l.parent.f&sr;)l=l.parent;const u=()=>{a&&rr(n(...a),e)&&t(null,...a)},c=l.teardown;l.teardown=()=>{u(),c?.()}}}),e}function on(e,t,n,r){var i=!0,s=(n&Ls)!==0,o=(n&Ds)!==0,a=r,l=!0,u=void 0,c=()=>o&&i?(u??(u=ln(r)),g(u)):(l&&(l=!1,a=o?Gt(r):r),a);let d;if(s){var _=mt in e||hs in e;d=Rt(e,t)?.set??(_&&t in e?R=>e[t]=R:void 0)}var v,p=!1;s?[v,p]=Gs(()=>e[t]):v=e[t],v===void 0&&r!==void 0&&(v=c(),d&&(Ss(),d(v)));var y;if(y=()=>{var R=e[t];return R===void 0?c():(l=!0,R)},(n&Ps)===0)return y;if(d){var h=e.$$legacy;return(function(R,H){return arguments.length>0?((!H||h||p)&&d(H?y():R),R):y()})}var m=!1,N=((n&Is)!==0?ln:Ei)(()=>(m=!1,y()));s&&g(N);var P=C;return(function(R,H){if(arguments.length>0){const $=H?g(N):s?$e(R):R;return K(N,$),m=!0,a!==void 0&&(a=$),R}return Ge&&m||(P.f&ye)!==0?N.v:g(N)})}function Vo(e){ie===null&&gs(),Rr(()=>{const t=Gt(e);if(typeof t=="function")return t})}const Yo="[data-v-app]",Jo=["header","content","footer"];let ot=null;function Zo(e){const t=e instanceof Set?e:new Set(e||[]);for(let n=0;n<16;n++){const r=crypto.randomUUID().replace(/-/g,"").slice(0,8);if(!t.has(r))return r}throw new Error("rebemer: id collision exhausted")}function Xo(){if(typeof document>"u")return!1;const t=document.querySelector(Yo)?.__vue_app__?.config?.globalProperties?.$_state;return!t||typeof t!="object"||!Array.isArray(t.globalClasses)?(ot=null,!1):(ot=t,!0)}function Wt(e){if(!ot||!e)return null;for(const t of Jo){const n=ot[t];if(!Array.isArray(n))continue;const r=n.find(i=>i&&i.id===e);if(r)return r}return null}function Qo(e){const t=Wt(e);if(!t)return[];const n=[{id:t.id,depth:0,label:t.label,name:t.name,settings:t.settings}];return Zi(t,1,n),n}function Zi(e,t,n){if(!(!e||!Array.isArray(e.children)))for(const r of e.children){const i=Wt(r);i&&(n.push({id:i.id,depth:t,label:i.label,name:i.name,settings:i.settings}),Zi(i,t+1,n))}}function Xi(){return ot?ot.globalClasses:[]}function $o(e,t){if(!ot)throw new Error("rebemer: not ready");const n=ot.globalClasses,r=n.find(o=>o&&o.name===e);if(r)return r.id;const i=new Set(n.map(o=>o?.id).filter(Boolean)),s=Zo(i);return n.push({id:s,name:e,settings:t||{}}),s}function el(e,t){const n=Wt(e);if(!n)return;n.settings||(n.settings={});const r=Array.isArray(t)?t:[];Array.isArray(n.settings._cssGlobalClasses)?n.settings._cssGlobalClasses.splice(0,n.settings._cssGlobalClasses.length,...r):n.settings._cssGlobalClasses=[...r]}function tl(e,t){const n=Wt(e);n&&(n.label=t)}const nl="5";var ii;typeof window<"u"&&((ii=window.__svelte??(window.__svelte={})).v??(ii.v=new Set)).add(nl);var rl=J('');function il(e,t){vn(t,!0);function n(i){i.stopPropagation(),i.preventDefault(),t.onActivate?.(t.elementId)}var r=rl();ce(()=>{et(r,"title",t.label?`Open reBEMer for ${t.label}`:"Open reBEMer"),et(r,"aria-label",t.label?`Open reBEMer for ${t.label}`:"Open reBEMer")}),it("click",r,n),it("keydown",r,i=>(i.key==="Enter"||i.key===" ")&&n(i)),W(e,r),pn()}Wn(["click","keydown"]);function kt(e){return e?String(e).normalize("NFKD").replace(/[\u0300-\u036f]/g,"").replace(/[^\x00-\x7f]/g,"").toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/-+/g,"-").replace(/^-+|-+$/g,""):""}const sl=/^[a-z][a-z0-9]*(-[a-z0-9]+)*$/,ol=new Set(["auto","inherit","initial","unset","revert","revert-layer","none"]);function ll(e){return e?ol.has(e)?{ok:!1,reason:`"${e}" is a CSS keyword.`}:sl.test(e)?{ok:!0}:{ok:!1,reason:"Use lowercase letters, digits, and hyphens."}:{ok:!1,reason:"Name is empty."}}const Yn=new Set(["_padding","_padding_top","_padding_right","_padding_bottom","_padding_left","_margin","_margin_top","_margin_right","_margin_bottom","_margin_left","_width","_widthMin","_widthMax","_minWidth","_maxWidth","_height","_heightMin","_heightMax","_minHeight","_maxHeight","_aspectRatio","_overflow","_overflowX","_overflowY","_color","_background","_backgroundColor","_backgroundImage","_backgroundSize","_backgroundPosition","_backgroundRepeat","_backgroundAttachment","_backgroundBlendMode","_typography","_fontFamily","_fontSize","_fontWeight","_fontStyle","_lineHeight","_letterSpacing","_wordSpacing","_textAlign","_textTransform","_textDecoration","_textDecorationColor","_textShadow","_textIndent","_whiteSpace","_listStyleType","_listStylePosition","_border","_borderRadius","_borderColor","_borderStyle","_borderWidth","_outline","_outlineColor","_outlineStyle","_outlineWidth","_outlineOffset","_boxShadow","_filter","_backdropFilter","_opacity","_blendMode","_transform","_transformOrigin","_transition","_animation","_display","_flexDirection","_flexWrap","_flexGrow","_flexShrink","_flexBasis","_alignItems","_alignSelf","_alignContent","_justifyContent","_justifyItems","_justifySelf","_gap","_rowGap","_columnGap","_gridTemplateColumns","_gridTemplateRows","_gridGap","_gridAutoFlow","_gridAutoColumns","_gridAutoRows","_gridColumn","_gridRow","_gridArea","_position","_top","_right","_bottom","_left","_zIndex","_objectFit","_objectPosition","_cursor","_pointerEvents","_userSelect"]);function al(e){if(!e||typeof e!="object")return[];const t=[];for(const n of Object.keys(e))Yn.has(n)&&t.push(n);return t.sort(),t}const fl=new Set(["_cssGlobalClasses","_cssClasses","_cssId","_attributes","_hidden","_hidden_lg","_hidden_md","_hidden_sm","_hidden_xl","_name","_label","_id","tag","children","parent"]);function ul(e){if(!e||typeof e!="object")return[];const t=[];for(const n of Object.keys(e))Yn.has(n)||fl.has(n)||n.startsWith("_hidden_")||t.push(n);return t.sort(),t}const cl=new Set(["add","rename","replace","modifier","migrate"]),Xr=new Set(["user","label"]);function Qi({rootId:e,rows:t,mode:n}){if(!cl.has(n))return{ok:!1,ops:[],error:`Invalid mode: ${n}`};const r=t.find(a=>a.id===e);if(!r)return{ok:!1,ops:[],error:"Root row missing."};const i=kt(r.name);if(!i)return{ok:!1,ops:[],error:"Block name is empty."};const s=[];for(const a of t){if(!a.include)continue;const l=a.id===e;let u;if(l)u=i;else{const d=kt(a.name);if(!d)continue;u=`${i}__${d}`}let c=u;if(n==="modifier"){const d=kt(a.modifier);if(!d)continue;c=`${u}--${d}`}s.push({row:a,isRoot:l,finalClass:c,suggestedFrom:a.suggestedFrom||"fallback"})}if(s.length===0)return{ok:!1,ops:[],error:"No rows to apply. Include at least one row."};const o=hl(s,n);return o.ok?{ok:!0,ops:s}:{ok:!1,ops:[],error:o.error}}function dl({rootId:e,rows:t,mode:n,syncLabels:r}){const i=Qi({rootId:e,rows:t,mode:n});if(!i.ok)return{ok:!1,error:i.error};const s=i.ops,o=t.find(c=>c.id===e),a=kt(o?.name??""),l=Xi();if(n==="migrate"){const c=_l(s,l);if(!c.ok)return c}let u=0;try{for(const c of s){const d=Wt(c.row.id);if(!d)continue;const _=pl(d.settings);let v={};if(n==="rename"&&_.length>0){const h=l.find(m=>m&&m.id===_[0]);h&&h.settings&&(v=JSON.parse(JSON.stringify(h.settings)))}else n==="migrate"&&(v=$i(d.settings,c.row.migrateKeys));if(n==="migrate"){const h=l.find(m=>m&&m.name===c.finalClass);if(h){(!h.settings||typeof h.settings!="object")&&(h.settings={});for(const[m,N]of Object.entries(v))Object.prototype.hasOwnProperty.call(h.settings,m)||(h.settings[m]=N)}}const p=$o(c.finalClass,v);let y;switch(n){case"add":case"modifier":case"migrate":y=_.includes(p)?_:[..._,p];break;case"rename":case"replace":y=[p];break}if(el(c.row.id,y),n==="migrate"&&vl(d.settings,c.row.migrateKeys),r&&n!=="modifier"){const h=gl(c.finalClass,a);h&&tl(c.row.id,h)}u++}}catch(c){const d=c instanceof Error?c.message:String(c);return console.warn("[reBEMer] apply halted after",u,"mutation(s):",d),{ok:!1,error:u>0?`Applied to ${u} element${u!==1?"s":""} before halting: ${d}. State is partially applied — undo via Bricks (Cmd-Z) before retrying.`:`Operation failed: ${d}`}}return u===0?{ok:!1,error:"No elements were modified. The subtree may have changed."}:{ok:!0,count:u}}function _l(e,t){for(const n of e){const r=t.find(l=>l&&l.name===n.finalClass);if(!r)continue;const i=Wt(n.row.id);if(!i)continue;const s=$i(i.settings,n.row.migrateKeys),o=r.settings&&typeof r.settings=="object"?r.settings:{},a=[];for(const[l,u]of Object.entries(s))Object.prototype.hasOwnProperty.call(o,l)&&JSON.stringify(o[l])!==JSON.stringify(u)&&a.push(l.replace(/^_/,""));if(a.length>0){const l=a.join(", ");return{ok:!1,error:`Migrate blocked: existing class "${n.finalClass}" has conflicting values for ${l}. Pick a different name or use Add mode.`}}}return{ok:!0}}function hl(e,t){const n=new Map;for(const r of e){const i=n.get(r.finalClass)||[];i.push(r),n.set(r.finalClass,i)}for(const[r,i]of n){if(i.length===1||t==="modifier")continue;const s=i.filter(a=>Xr.has(a.suggestedFrom));if(s.length>1)return{ok:!1,error:`"${r}" is used by ${s.length} rows. Edit one to make it unique.`};let o=1;for(const a of i)Xr.has(a.suggestedFrom)||(a.finalClass=`${r}-${o++}`,a.suggestedFrom="auto-number")}if(t!=="modifier"){const r=new Map;for(const i of e){const s=r.get(i.finalClass);if(s)return{ok:!1,error:`"${i.finalClass}" is produced by 2 rows after auto-numbering (one ${s}, one ${i.suggestedFrom}). Pick a different name for one of them.`};r.set(i.finalClass,i.suggestedFrom)}}return{ok:!0}}function $i(e,t){if(!e||!Array.isArray(t))return{};const n={};for(const r of t)Yn.has(r)&&Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=JSON.parse(JSON.stringify(e[r])));return n}function vl(e,t){if(!(!e||!Array.isArray(t)))for(const n of t)Yn.has(n)&&Object.prototype.hasOwnProperty.call(e,n)&&delete e[n]}function pl(e){const t=e?._cssGlobalClasses;return t?(Array.isArray(t)?t:Object.values(t)).filter(r=>typeof r=="string"&&r.length>0):[]}function gl(e,t){let n=e;return n===t?Qr(t.replace(/-/g," ")):(n.startsWith(t+"__")&&(n=n.slice(t.length+2)),n=n.replace(/--.+$/,""),Qr(n.replace(/-/g," ")))}function Qr(e){return e.replace(/(^|\s)([a-z])/g,(t,n,r)=>n+r.toUpperCase())}const ml=Object.freeze({heading:"heading","text-basic":"text",text:"text","text-link":"link",code:"code",image:"image",icon:"icon","icon-box":"icon",video:"video",audio:"audio",svg:"svg",logo:"logo",shape:"shape",button:"button","button-group":"buttons","nav-nested":"nav","nav-menu":"nav",list:"list",accordion:"accordion",tabs:"tabs",slider:"slider",carousel:"carousel",countdown:"countdown",counter:"counter",testimonials:"testimonials",pricing:"pricing",team:"team",form:"form",posts:"posts",template:"item"}),es=new Set(["section","container","block","div"]);function bl(e,t="item"){return!e||typeof e!="string"||es.has(e)?t:ml[e]||t}function wl(e){return typeof e=="string"&&es.has(e)}var yl=J('suggested'),kl=J(' '),El=J(''),Sl=J(`A class named already exists. +var fs=Object.defineProperty;var Kr=e=>{throw TypeError(e)};var us=(e,t,n)=>t in e?fs(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;var re=(e,t,n)=>us(e,typeof t!="symbol"?t+"":t,n),tr=(e,t,n)=>t.has(e)||Kr("Cannot "+n);var f=(e,t,n)=>(tr(e,t,"read from private field"),n?n.call(e):t.get(e)),y=(e,t,n)=>t.has(e)?Kr("Cannot add the same private member more than once"):t instanceof WeakSet?t.add(e):t.set(e,n),w=(e,t,n,r)=>(tr(e,t,"write to private field"),r?r.call(e,n):t.set(e,n),n),M=(e,t,n)=>(tr(e,t,"access private method"),n);var Tr=Array.isArray,cs=Array.prototype.indexOf,bt=Array.prototype.includes,Gn=Array.from,ds=Object.defineProperty,Lt=Object.getOwnPropertyDescriptor,_s=Object.getOwnPropertyDescriptors,hs=Object.prototype,vs=Array.prototype,ui=Object.getPrototypeOf,Ur=Object.isExtensible;const ps=()=>{};function gs(e){for(var t=0;t{e=r,t=i});return{promise:n,resolve:e,reject:t}}const Z=2,Ht=4,Vn=8,di=1<<24,Ne=16,Fe=32,lt=64,ar=128,Ae=512,U=1024,J=2048,Ke=4096,ee=8192,xe=16384,Ot=32768,fr=1<<25,Kt=65536,Dn=1<<17,ms=1<<18,Wt=1<<19,bs=1<<20,He=1<<25,xt=65536,Bn=1<<21,Pt=1<<22,rt=1<<23,wt=Symbol("$state"),ws=Symbol("legacy props"),ys=Symbol(""),On=Symbol("attributes"),ur=Symbol("class"),cr=Symbol("style"),$t=Symbol("text"),Rn=Symbol("form reset"),Wn=new class extends Error{constructor(){super(...arguments);re(this,"name","StaleReactionError");re(this,"message","The reaction that called `getAbortSignal()` was re-run or destroyed")}};function ks(e){throw new Error("https://svelte.dev/e/lifecycle_outside_component")}function Es(){throw new Error("https://svelte.dev/e/async_derived_orphan")}function Ss(e,t,n){throw new Error("https://svelte.dev/e/each_key_duplicate")}function Cs(e){throw new Error("https://svelte.dev/e/effect_in_teardown")}function As(){throw new Error("https://svelte.dev/e/effect_in_unowned_derived")}function xs(e){throw new Error("https://svelte.dev/e/effect_orphan")}function Ts(){throw new Error("https://svelte.dev/e/effect_update_depth_exceeded")}function Ms(e){throw new Error("https://svelte.dev/e/props_invalid_value")}function Os(){throw new Error("https://svelte.dev/e/state_descriptors_fixed")}function Rs(){throw new Error("https://svelte.dev/e/state_prototype_fixed")}function Is(){throw new Error("https://svelte.dev/e/state_unsafe_mutation")}function Ns(){throw new Error("https://svelte.dev/e/svelte_boundary_reset_onerror")}const Ls=1,Ps=2,_i=4,Fs=8,Ds=16,Bs=1,js=4,qs=8,zs=16,Hs=1,Ks=2,H=Symbol("uninitialized"),hi="http://www.w3.org/1999/xhtml";function Us(){console.warn("https://svelte.dev/e/derived_inert")}function Gs(){console.warn("https://svelte.dev/e/select_multiple_invalid_value")}function Vs(){console.warn("https://svelte.dev/e/svelte_boundary_reset_noop")}function vi(e){return e===this.v}function Ws(e,t){return e!=e?t==t:e!==t||e!==null&&typeof e=="object"||typeof e=="function"}function pi(e){return!Ws(e,this.v)}let le=null;function Ut(e){le=e}function gn(e,t=!1,n){le={p:le,i:!1,c:null,e:null,s:e,x:null,r:x,l:null}}function mn(e){var t=le,n=t.e;if(n!==null){t.e=null;for(var r of n)Di(r)}return t.i=!0,le=t.p,{}}function gi(){return!0}let ut=[];function mi(){var e=ut;ut=[],gs(e)}function it(e){if(ut.length===0&&!rn){var t=ut;queueMicrotask(()=>{t===ut&&mi()})}ut.push(e)}function Ys(){for(;ut.length>0;)mi()}function bi(e){var t=x;if(t===null)return C.f|=rt,e;if((t.f&Ot)===0&&(t.f&Ht)===0)throw e;tt(e,t)}function tt(e,t){for(;t!==null;){if((t.f&ar)!==0){if((t.f&Ot)===0)throw e;try{t.b.error(e);return}catch(n){e=n}}t=t.parent}throw e}const Js=-7169;function B(e,t){e.f=e.f&Js|t}function Mr(e){(e.f&Ae)!==0||e.deps===null?B(e,U):B(e,Ke)}function wi(e){if(e!==null)for(const t of e)(t.f&Z)===0||(t.f&xt)===0||(t.f^=xt,wi(t.deps))}function yi(e,t,n){(e.f&J)!==0?t.add(e):(e.f&Ke)!==0&&n.add(e),wi(e.deps),B(e,U)}let xn=!1;function Zs(e){var t=xn;try{return xn=!1,[e(),xn]}finally{xn=t}}let nr=null,Rt=null,E=null,dr=null,Le=null,_r=null,rn=!1,rr=!1,Nt=null,In=null;var Gr=0;let Xs=1;var Ft,Qe,_t,Dt,Bt,ht,jt,Ve,cn,de,dn,$e,je,qe,qt,vt,O,hr,en,vr,ki,Ei,Nn,Qs,pr,It;const Hn=class Hn{constructor(){y(this,O);re(this,"id",Xs++);y(this,Ft,!1);re(this,"linked",!0);y(this,Qe,null);y(this,_t,null);re(this,"async_deriveds",new Map);re(this,"current",new Map);re(this,"previous",new Map);re(this,"unblocked",new Set);y(this,Dt,new Set);y(this,Bt,new Set);y(this,ht,new Set);y(this,jt,0);y(this,Ve,new Map);y(this,cn,null);y(this,de,[]);y(this,dn,[]);y(this,$e,new Set);y(this,je,new Set);y(this,qe,new Map);y(this,qt,new Set);re(this,"is_fork",!1);y(this,vt,!1)}skip_effect(t){f(this,qe).has(t)||f(this,qe).set(t,{d:[],m:[]}),f(this,qt).delete(t)}unskip_effect(t,n=r=>this.schedule(r)){var r=f(this,qe).get(t);if(r){f(this,qe).delete(t);for(var i of r.d)B(i,J),n(i);for(i of r.m)B(i,Ke),n(i)}f(this,qt).add(t)}capture(t,n,r=!1){t.v!==H&&!this.previous.has(t)&&this.previous.set(t,t.v),(t.f&rt)===0&&(this.current.set(t,[n,r]),Le?.set(t,n)),this.is_fork||(t.v=n)}activate(){E=this}deactivate(){E=null,Le=null}flush(){try{rr=!0,E=this,M(this,O,en).call(this)}finally{Gr=0,_r=null,Nt=null,In=null,rr=!1,E=null,Le=null,yt.clear()}}discard(){for(const t of f(this,Bt))t(this);f(this,Bt).clear(),f(this,ht).clear(),M(this,O,It).call(this)}register_created_effect(t){f(this,dn).push(t)}increment(t,n){if(w(this,jt,f(this,jt)+1),t){let r=f(this,Ve).get(n)??0;f(this,Ve).set(n,r+1)}}decrement(t,n){if(w(this,jt,f(this,jt)-1),t){let r=f(this,Ve).get(n)??0;r===1?f(this,Ve).delete(n):f(this,Ve).set(n,r-1)}f(this,vt)||(w(this,vt,!0),it(()=>{w(this,vt,!1),this.linked&&this.flush()}))}transfer_effects(t,n){for(const r of t)f(this,$e).add(r);for(const r of n)f(this,je).add(r);t.clear(),n.clear()}oncommit(t){f(this,Dt).add(t)}ondiscard(t){f(this,Bt).add(t)}on_fork_commit(t){f(this,ht).add(t)}run_fork_commit_callbacks(){for(const t of f(this,ht))t(this);f(this,ht).clear()}settled(){return(f(this,cn)??w(this,cn,ci())).promise}static ensure(){var t;if(E===null){const n=E=new Hn;M(t=n,O,pr).call(t),!rr&&!rn&&it(()=>{f(n,Ft)||n.flush()})}return E}apply(){{Le=null;return}}schedule(t){if(_r=t,t.b?.is_pending&&(t.f&(Ht|Vn|di))!==0&&(t.f&Ot)===0){t.b.defer_effect(t);return}for(var n=t;n.parent!==null;){n=n.parent;var r=n.f;if(Nt!==null&&n===x&&(C===null||(C.f&Z)===0))return;if((r&(lt|Fe))!==0){if((r&U)===0)return;n.f^=U}}f(this,de).push(n)}};Ft=new WeakMap,Qe=new WeakMap,_t=new WeakMap,Dt=new WeakMap,Bt=new WeakMap,ht=new WeakMap,jt=new WeakMap,Ve=new WeakMap,cn=new WeakMap,de=new WeakMap,dn=new WeakMap,$e=new WeakMap,je=new WeakMap,qe=new WeakMap,qt=new WeakMap,vt=new WeakMap,O=new WeakSet,hr=function(){if(this.is_fork)return!0;for(const r of f(this,Ve).keys()){for(var t=r,n=!1;t.parent!==null;){if(f(this,qe).has(t)){n=!0;break}t=t.parent}if(!n)return!0}return!1},en=function(){var l,u,c;if(w(this,Ft,!0),Gr++>1e3&&(M(this,O,It).call(this),eo()),!M(this,O,hr).call(this)){for(const d of f(this,$e))f(this,je).delete(d),B(d,J),this.schedule(d);for(const d of f(this,je))B(d,Ke),this.schedule(d)}const t=f(this,de);w(this,de,[]),this.apply();var n=Nt=[],r=[],i=In=[];for(const d of t)try{M(this,O,vr).call(this,d,n,r)}catch(_){throw Ai(d),_}if(E=null,i.length>0){var s=Hn.ensure();for(const d of i)s.schedule(d)}if(Nt=null,In=null,M(this,O,hr).call(this)){M(this,O,Nn).call(this,r),M(this,O,Nn).call(this,n);for(const[d,_]of f(this,qe))Ci(d,_);i.length>0&&M(l=E,O,en).call(l);return}const o=M(this,O,ki).call(this);if(o){M(u=o,O,Ei).call(u,this);return}f(this,$e).clear(),f(this,je).clear();for(const d of f(this,Dt))d(this);f(this,Dt).clear(),dr=this,Vr(r),Vr(n),dr=null,f(this,cn)?.resolve();var a=E;if(this.linked&&f(this,jt)===0&&M(this,O,It).call(this),f(this,de).length>0){a===null&&(a=this,M(this,O,pr).call(this));const d=a;f(d,de).push(...f(this,de).filter(_=>!f(d,de).includes(_)))}a!==null&&M(c=a,O,en).call(c)},vr=function(t,n,r){t.f^=U;for(var i=t.first;i!==null;){var s=i.f,o=(s&(Fe|lt))!==0,a=o&&(s&U)!==0,l=a||(s&ee)!==0||f(this,qe).has(i);if(!l&&i.fn!==null){o?i.f^=U:(s&Ht)!==0?n.push(i):wn(i)&&((s&Ne)!==0&&f(this,je).add(i),Vt(i));var u=i.first;if(u!==null){i=u;continue}}for(;i!==null;){var c=i.next;if(c!==null){i=c;break}i=i.parent}}},ki=function(){for(var t=f(this,Qe);t!==null;){if(!t.is_fork){for(const[n,[,r]]of this.current)if(t.current.has(n)&&!r)return t}t=f(t,Qe)}return null},Ei=function(t){var r;for(const[i,s]of t.current)!this.previous.has(i)&&t.previous.has(i)&&this.previous.set(i,t.previous.get(i)),this.current.set(i,s);for(const[i,s]of t.async_deriveds){const o=this.async_deriveds.get(i);o&&s.promise.then(o.resolve)}const n=i=>{var s=i.reactions;if(s!==null)for(const l of s){var o=l.f;if((o&Z)!==0)n(l);else{var a=l;o&(Pt|Ne)&&!this.async_deriveds.has(a)&&(f(this,je).delete(a),B(a,J),this.schedule(a))}}};for(const i of this.current.keys())n(i);this.oncommit(()=>t.discard()),M(r=t,O,It).call(r),E=this,M(this,O,en).call(this)},Nn=function(t){for(var n=0;n!this.current.has(_));if(i.length===0)t&&d.discard();else if(n.length>0){if(t)for(const _ of f(this,qt))d.unskip_effect(_,v=>{var p;(v.f&(Ne|Pt))!==0?d.schedule(v):M(p=d,O,Nn).call(p,[v])});d.activate();var s=new Set,o=new Map;for(var a of n)Si(a,i,s,o);o=new Map;var l=[...d.current.keys()].filter(_=>this.current.has(_)?this.current.get(_)[0]!==_.v:!0);if(l.length>0)for(const _ of f(this,dn))(_.f&(xe|ee|Dn))===0&&Or(_,l,o)&&((_.f&(Pt|Ne))!==0?(B(_,J),d.schedule(_)):f(d,$e).add(_));if(f(d,de).length>0&&!f(d,vt)){d.apply();for(var u of f(d,de))M(c=d,O,vr).call(c,u,[],[]);w(d,de,[])}d.deactivate()}}}},pr=function(){Rt===null?nr=Rt=this:(w(Rt,_t,this),w(this,Qe,Rt)),Rt=this},It=function(){var t=f(this,Qe),n=f(this,_t);t===null?nr=n:w(t,_t,n),n===null?Rt=t:w(n,Qe,t),this.linked=!1};let Tt=Hn;function $s(e){var t=rn;rn=!0;try{for(var n;;){if(Ys(),E===null)return n;E.flush()}}finally{rn=t}}function eo(){try{Ts()}catch(e){tt(e,_r)}}let Ge=null;function Vr(e){var t=e.length;if(t!==0){for(var n=0;n0)){yt.clear();for(const i of Ge){if((i.f&(xe|ee))!==0)continue;const s=[i];let o=i.parent;for(;o!==null;)Ge.has(o)&&(Ge.delete(o),s.push(o)),o=o.parent;for(let a=s.length-1;a>=0;a--){const l=s[a];(l.f&(xe|ee))===0&&Vt(l)}}Ge.clear()}}Ge=null}}function Si(e,t,n,r){if(!n.has(e)&&(n.add(e),e.reactions!==null))for(const i of e.reactions){const s=i.f;(s&Z)!==0?Si(i,t,n,r):(s&(Pt|Ne))!==0&&(s&J)===0&&Or(i,t,r)&&(B(i,J),Rr(i))}}function Or(e,t,n){const r=n.get(e);if(r!==void 0)return r;if(e.deps!==null)for(const i of e.deps){if(bt.call(t,i))return!0;if((i.f&Z)!==0&&Or(i,t,n))return n.set(i,!0),!0}return n.set(e,!1),!1}function Rr(e){E.schedule(e)}function Ci(e,t){if(!((e.f&Fe)!==0&&(e.f&U)!==0)){(e.f&J)!==0?t.d.push(e):(e.f&Ke)!==0&&t.m.push(e),B(e,U);for(var n=e.first;n!==null;)Ci(n,t),n=n.next}}function Ai(e){B(e,U);for(var t=e.first;t!==null;)Ai(t),t=t.next}function to(e){let t=0,n=Mt(0),r;return()=>{Lr()&&(g(n),Jn(()=>(t===0&&(r=Yt(()=>e(()=>sn(n)))),t+=1,()=>{it(()=>{t-=1,t===0&&(r?.(),r=void 0,sn(n))})})))}}var no=Kt|Wt;function ro(e,t,n,r){new io(e,t,n,r)}var be,xr,we,pt,ie,ye,Q,_e,We,gt,et,zt,_n,hn,Ye,Kn,j,so,oo,lo,gr,Ln,Pn,mr,br;class io{constructor(t,n,r,i){y(this,j);re(this,"parent");re(this,"is_pending",!1);re(this,"transform_error");y(this,be);y(this,xr,null);y(this,we);y(this,pt);y(this,ie);y(this,ye,null);y(this,Q,null);y(this,_e,null);y(this,We,null);y(this,gt,0);y(this,et,0);y(this,zt,!1);y(this,_n,new Set);y(this,hn,new Set);y(this,Ye,null);y(this,Kn,to(()=>(w(this,Ye,Mt(f(this,gt))),()=>{w(this,Ye,null)})));w(this,be,t),w(this,we,n),w(this,pt,s=>{var o=x;o.b=this,o.f|=ar,r(s)}),this.parent=x.b,this.transform_error=i??this.parent?.transform_error??(s=>s),w(this,ie,Dr(()=>{M(this,j,gr).call(this)},no))}defer_effect(t){yi(t,f(this,_n),f(this,hn))}is_rendered(){return!this.is_pending&&(!this.parent||this.parent.is_rendered())}has_pending_snippet(){return!!f(this,we).pending}update_pending_count(t,n){M(this,j,mr).call(this,t,n),w(this,gt,f(this,gt)+t),!(!f(this,Ye)||f(this,zt))&&(w(this,zt,!0),it(()=>{w(this,zt,!1),f(this,Ye)&&Gt(f(this,Ye),f(this,gt))}))}get_effect_pending(){return f(this,Kn).call(this),g(f(this,Ye))}error(t){if(!f(this,we).onerror&&!f(this,we).failed)throw t;E?.is_fork?(f(this,ye)&&E.skip_effect(f(this,ye)),f(this,Q)&&E.skip_effect(f(this,Q)),f(this,_e)&&E.skip_effect(f(this,_e)),E.on_fork_commit(()=>{M(this,j,br).call(this,t)})):M(this,j,br).call(this,t)}}be=new WeakMap,xr=new WeakMap,we=new WeakMap,pt=new WeakMap,ie=new WeakMap,ye=new WeakMap,Q=new WeakMap,_e=new WeakMap,We=new WeakMap,gt=new WeakMap,et=new WeakMap,zt=new WeakMap,_n=new WeakMap,hn=new WeakMap,Ye=new WeakMap,Kn=new WeakMap,j=new WeakSet,so=function(){try{w(this,ye,Ee(()=>f(this,pt).call(this,f(this,be))))}catch(t){this.error(t)}},oo=function(t){const n=f(this,we).failed;n&&w(this,_e,Ee(()=>{n(f(this,be),()=>t,()=>()=>{})}))},lo=function(){const t=f(this,we).pending;t&&(this.is_pending=!0,w(this,Q,Ee(()=>t(f(this,be)))),it(()=>{var n=w(this,We,document.createDocumentFragment()),r=st();n.append(r),w(this,ye,M(this,j,Pn).call(this,()=>Ee(()=>f(this,pt).call(this,r)))),f(this,et)===0&&(f(this,be).before(n),w(this,We,null),kt(f(this,Q),()=>{w(this,Q,null)}),M(this,j,Ln).call(this,E))}))},gr=function(){try{if(this.is_pending=this.has_pending_snippet(),w(this,et,0),w(this,gt,0),w(this,ye,Ee(()=>{f(this,pt).call(this,f(this,be))})),f(this,et)>0){var t=w(this,We,document.createDocumentFragment());qr(f(this,ye),t);const n=f(this,we).pending;w(this,Q,Ee(()=>n(f(this,be))))}else M(this,j,Ln).call(this,E)}catch(n){this.error(n)}},Ln=function(t){this.is_pending=!1,t.transfer_effects(f(this,_n),f(this,hn))},Pn=function(t){var n=x,r=C,i=le;Ue(f(this,ie)),Me(f(this,ie)),Ut(f(this,ie).ctx);try{return Tt.ensure(),t()}catch(s){return bi(s),null}finally{Ue(n),Me(r),Ut(i)}},mr=function(t,n){var r;if(!this.has_pending_snippet()){this.parent&&M(r=this.parent,j,mr).call(r,t,n);return}w(this,et,f(this,et)+t),f(this,et)===0&&(M(this,j,Ln).call(this,n),f(this,Q)&&kt(f(this,Q),()=>{w(this,Q,null)}),f(this,We)&&(f(this,be).before(f(this,We)),w(this,We,null)))},br=function(t){f(this,ye)&&(oe(f(this,ye)),w(this,ye,null)),f(this,Q)&&(oe(f(this,Q)),w(this,Q,null)),f(this,_e)&&(oe(f(this,_e)),w(this,_e,null));var n=f(this,we).onerror;let r=f(this,we).failed;var i=!1,s=!1;const o=()=>{if(i){Vs();return}i=!0,s&&Ns(),f(this,_e)!==null&&kt(f(this,_e),()=>{w(this,_e,null)}),M(this,j,Pn).call(this,()=>{M(this,j,gr).call(this)})},a=l=>{try{s=!0,n?.(l,o),s=!1}catch(u){tt(u,f(this,ie)&&f(this,ie).parent)}r&&w(this,_e,M(this,j,Pn).call(this,()=>{try{return Ee(()=>{var u=x;u.b=this,u.f|=ar,r(f(this,be),()=>l,()=>o)})}catch(u){return tt(u,f(this,ie).parent),null}}))};it(()=>{var l;try{l=this.transform_error(t)}catch(u){tt(u,f(this,ie)&&f(this,ie).parent);return}l!==null&&typeof l=="object"&&typeof l.then=="function"?l.then(a,u=>tt(u,f(this,ie)&&f(this,ie).parent)):a(l)})};function ao(e,t,n,r){const i=fn;var s=e.filter(_=>!_.settled);if(n.length===0&&s.length===0){r(t.map(i));return}var o=x,a=fo(),l=s.length===1?s[0].promise:s.length>1?Promise.all(s.map(_=>_.promise)):null;function u(_){if((o.f&xe)===0){a();try{r(_)}catch(v){tt(v,o)}jn()}}var c=xi();if(n.length===0){l.then(()=>u(t.map(i))).finally(c);return}function d(){Promise.all(n.map(_=>uo(_))).then(_=>u([...t.map(i),..._])).catch(_=>tt(_,o)).finally(c)}l?l.then(()=>{a(),d(),jn()}):d()}function fo(){var e=x,t=C,n=le,r=E;return function(s=!0){Ue(e),Me(t),Ut(n),s&&(e.f&xe)===0&&(r?.activate(),r?.apply())}}function jn(e=!0){Ue(null),Me(null),Ut(null),e&&E?.deactivate()}function xi(){var e=x,t=e.b,n=E,r=t.is_rendered();return t.update_pending_count(1,n),n.increment(r,e),()=>{t.update_pending_count(-1,n),n.decrement(r,e)}}function fn(e){var t=Z|J;return x!==null&&(x.f|=Wt),{ctx:le,deps:null,effects:null,equals:vi,f:t,fn:e,reactions:null,rv:0,v:H,wv:0,parent:x,ac:null}}const Tn=Symbol("obsolete");function uo(e,t,n){let r=x;r===null&&Es();var i=void 0,s=Mt(H),o=!C,a=new Set;return So(()=>{var l=x,u=ci();i=u.promise;try{Promise.resolve(e()).then(u.resolve,v=>{v!==Wn&&u.reject(v)}).finally(jn)}catch(v){u.reject(v),jn()}var c=E;if(o){if((l.f&Ot)!==0)var d=xi();if(r.b.is_rendered())c.async_deriveds.get(l)?.reject(Tn);else for(const v of a.values())v.reject(Tn);a.add(u),c.async_deriveds.set(l,u)}const _=(v,p=void 0)=>{d?.(),a.delete(u),p!==Tn&&(c.activate(),p?(s.f|=rt,Gt(s,p)):((s.f&rt)!==0&&(s.f^=rt),Gt(s,v)),c.deactivate())};u.promise.then(_,v=>_(null,v||"unknown"))}),Pr(()=>{for(const l of a)l.reject(Tn)}),new Promise(l=>{function u(c){function d(){c===i?l(s):u(i)}c.then(d,d)}u(i)})}function Ce(e){const t=fn(e);return Ki(t),t}function Ti(e){const t=fn(e);return t.equals=pi,t}function co(e){var t=e.effects;if(t!==null){e.effects=null;for(var n=0;n0&&!Ri&&vo()}return t}function vo(){Ri=!1;for(const e of qn){(e.f&U)!==0&&B(e,Ke);let t;try{t=wn(e)}catch{t=!0}t&&Vt(e)}qn.clear()}function sn(e){K(e,e.v+1)}function Ii(e,t,n){var r=e.reactions;if(r!==null)for(var i=r.length,s=0;s{if(Et===s)return a();var l=C,u=Et;Me(null),Zr(s);var c=a();return Me(l),Zr(u),c};return r&&n.set("length",$(e.length)),new Proxy(e,{defineProperty(a,l,u){(!("value"in u)||u.configurable===!1||u.enumerable===!1||u.writable===!1)&&Os();var c=n.get(l);return c===void 0?o(()=>{var d=$(u.value);return n.set(l,d),d}):K(c,u.value,!0),!0},deleteProperty(a,l){var u=n.get(l);if(u===void 0){if(l in a){const c=o(()=>$(H));n.set(l,c),sn(i)}}else K(u,H),sn(i);return!0},get(a,l,u){if(l===wt)return e;var c=n.get(l),d=l in a;if(c===void 0&&(!d||Lt(a,l)?.writable)&&(c=o(()=>{var v=nt(d?a[l]:H),p=$(v);return p}),n.set(l,c)),c!==void 0){var _=g(c);return _===H?void 0:_}return Reflect.get(a,l,u)},getOwnPropertyDescriptor(a,l){var u=Reflect.getOwnPropertyDescriptor(a,l);if(u&&"value"in u){var c=n.get(l);c&&(u.value=g(c))}else if(u===void 0){var d=n.get(l),_=d?.v;if(d!==void 0&&_!==H)return{enumerable:!0,configurable:!0,value:_,writable:!0}}return u},has(a,l){if(l===wt)return!0;var u=n.get(l),c=u!==void 0&&u.v!==H||Reflect.has(a,l);if(u!==void 0||x!==null&&(!c||Lt(a,l)?.writable)){u===void 0&&(u=o(()=>{var _=c?nt(a[l]):H,v=$(_);return v}),n.set(l,u));var d=g(u);if(d===H)return!1}return c},set(a,l,u,c){var d=n.get(l),_=l in a;if(r&&l==="length")for(var v=u;v$(H)),n.set(v+"",p))}if(d===void 0)(!_||Lt(a,l)?.writable)&&(d=o(()=>$(void 0)),K(d,nt(u)),n.set(l,d));else{_=d.v!==H;var k=o(()=>nt(u));K(d,k)}var h=Reflect.getOwnPropertyDescriptor(a,l);if(h?.set&&h.set.call(c,u),!_){if(r&&typeof l=="string"){var m=n.get("length"),N=Number(l);Number.isInteger(N)&&N>=m.v&&K(m,N+1)}sn(i)}return!0},ownKeys(a){g(i);var l=Reflect.ownKeys(a).filter(d=>{var _=n.get(d);return _===void 0||_.v!==H});for(var[u,c]of n)c.v!==H&&!(u in a)&&l.push(u);return l},setPrototypeOf(){Rs()}})}function Wr(e){try{if(e!==null&&typeof e=="object"&&wt in e)return e[wt]}catch{}return e}function po(e,t){return Object.is(Wr(e),Wr(t))}var wr,Ni,Li,Pi;function go(){if(wr===void 0){wr=window,Ni=/Firefox/.test(navigator.userAgent);var e=Element.prototype,t=Node.prototype,n=Text.prototype;Li=Lt(t,"firstChild").get,Pi=Lt(t,"nextSibling").get,Ur(e)&&(e[ur]=void 0,e[On]=null,e[cr]=void 0,e.__e=void 0),Ur(n)&&(n[$t]=void 0)}}function st(e=""){return document.createTextNode(e)}function zn(e){return Li.call(e)}function bn(e){return Pi.call(e)}function P(e,t){return zn(e)}function on(e,t=!1){{var n=zn(e);return n instanceof Comment&&n.data===""?bn(n):n}}function I(e,t=1,n=!1){let r=e;for(;t--;)r=bn(r);return r}function mo(e){e.textContent=""}function Fi(){return!1}function bo(e,t,n){return document.createElementNS(hi,e,void 0)}let Yr=!1;function wo(){Yr||(Yr=!0,document.addEventListener("reset",e=>{Promise.resolve().then(()=>{if(!e.defaultPrevented)for(const t of e.target.elements)t[Rn]?.()})},{capture:!0}))}function Yn(e){var t=C,n=x;Me(null),Ue(null);try{return e()}finally{Me(t),Ue(n)}}function Nr(e,t,n,r=n){e.addEventListener(t,()=>Yn(n));const i=e[Rn];i?e[Rn]=()=>{i(),r(!0)}:e[Rn]=()=>r(!0),wo()}function yo(e){x===null&&(C===null&&xs(),As()),Je&&Cs()}function ko(e,t){var n=t.last;n===null?t.last=t.first=e:(n.next=e,e.prev=n,t.last=e)}function Ze(e,t){var n=x;n!==null&&(n.f&ee)!==0&&(e|=ee);var r={ctx:le,deps:null,nodes:null,f:e|J|Ae,first:null,fn:t,last:null,next:null,parent:n,b:n&&n.b,prev:null,teardown:null,wv:0,ac:null};E?.register_created_effect(r);var i=r;if((e&Ht)!==0)Nt!==null?Nt.push(r):Tt.ensure().schedule(r);else if(t!==null){try{Vt(r)}catch(o){throw oe(r),o}i.deps===null&&i.teardown===null&&i.nodes===null&&i.first===i.last&&(i.f&Wt)===0&&(i=i.first,(e&Ne)!==0&&(e&Kt)!==0&&i!==null&&(i.f|=Kt))}if(i!==null&&(i.parent=n,n!==null&&ko(i,n),C!==null&&(C.f&Z)!==0&&(e<)===0)){var s=C;(s.effects??(s.effects=[])).push(i)}return r}function Lr(){return C!==null&&!Pe}function Pr(e){const t=Ze(Vn,null);return B(t,U),t.teardown=e,t}function Fr(e){yo();var t=x.f,n=!C&&(t&Fe)!==0&&(t&Ot)===0;if(n){var r=le;(r.e??(r.e=[])).push(e)}else return Di(e)}function Di(e){return Ze(Ht|bs,e)}function Eo(e){Tt.ensure();const t=Ze(lt|Wt,e);return(n={})=>new Promise(r=>{n.outro?kt(t,()=>{oe(t),r(void 0)}):(oe(t),r(void 0))})}function Bi(e){return Ze(Ht,e)}function So(e){return Ze(Pt|Wt,e)}function Jn(e,t=0){return Ze(Vn|t,e)}function ve(e,t=[],n=[],r=[]){ao(r,t,n,i=>{Ze(Vn,()=>e(...i.map(g)))})}function Dr(e,t=0){var n=Ze(Ne|t,e);return n}function Ee(e){return Ze(Fe|Wt,e)}function ji(e){var t=e.teardown;if(t!==null){const n=Je,r=C;Jr(!0),Me(null);try{t.call(null)}finally{Jr(n),Me(r)}}}function Br(e,t=!1){var n=e.first;for(e.first=e.last=null;n!==null;){const i=n.ac;i!==null&&Yn(()=>{i.abort(Wn)});var r=n.next;(n.f<)!==0?n.parent=null:oe(n,t),n=r}}function Co(e){for(var t=e.first;t!==null;){var n=t.next;(t.f&Fe)===0&&oe(t),t=n}}function oe(e,t=!0){var n=!1;(t||(e.f&ms)!==0)&&e.nodes!==null&&e.nodes.end!==null&&(Ao(e.nodes.start,e.nodes.end),n=!0),B(e,fr),Br(e,t&&!n),un(e,0);var r=e.nodes&&e.nodes.t;if(r!==null)for(const s of r)s.stop();ji(e),e.f^=fr,e.f|=xe;var i=e.parent;i!==null&&i.first!==null&&qi(e),e.next=e.prev=e.teardown=e.ctx=e.deps=e.fn=e.nodes=e.ac=e.b=null}function Ao(e,t){for(;e!==null;){var n=e===t?null:bn(e);e.remove(),e=n}}function qi(e){var t=e.parent,n=e.prev,r=e.next;n!==null&&(n.next=r),r!==null&&(r.prev=n),t!==null&&(t.first===e&&(t.first=r),t.last===e&&(t.last=n))}function kt(e,t,n=!0){var r=[];zi(e,r,!0);var i=()=>{n&&oe(e),t&&t()},s=r.length;if(s>0){var o=()=>--s||i();for(var a of r)a.out(o)}else i()}function zi(e,t,n){if((e.f&ee)===0){e.f^=ee;var r=e.nodes&&e.nodes.t;if(r!==null)for(const a of r)(a.is_global||n)&&t.push(a);for(var i=e.first;i!==null;){var s=i.next;if((i.f<)===0){var o=(i.f&Kt)!==0||(i.f&Fe)!==0&&(e.f&Ne)!==0;zi(i,t,o?n:!1)}i=s}}}function jr(e){Hi(e,!0)}function Hi(e,t){if((e.f&ee)!==0){e.f^=ee,(e.f&U)===0&&(B(e,J),Tt.ensure().schedule(e));for(var n=e.first;n!==null;){var r=n.next,i=(n.f&Kt)!==0||(n.f&Fe)!==0;Hi(n,i?t:!1),n=r}var s=e.nodes&&e.nodes.t;if(s!==null)for(const o of s)(o.is_global||t)&&o.in()}}function qr(e,t){if(e.nodes)for(var n=e.nodes.start,r=e.nodes.end;n!==null;){var i=n===r?null:bn(n);t.append(n),n=i}}let Fn=!1,Je=!1;function Jr(e){Je=e}let C=null,Pe=!1;function Me(e){C=e}let x=null;function Ue(e){x=e}let Te=null;function Ki(e){C!==null&&(Te===null?Te=[e]:Te.push(e))}let se=null,ce=0,me=null;function xo(e){me=e}let Ui=1,ct=0,Et=ct;function Zr(e){Et=e}function Gi(){return++Ui}function wn(e){var t=e.f;if((t&J)!==0)return!0;if(t&Z&&(e.f&=~xt),(t&Ke)!==0){for(var n=e.deps,r=n.length,i=0;ie.wv)return!0}(t&Ae)!==0&&Le===null&&B(e,U)}return!1}function Vi(e,t,n=!0){var r=e.reactions;if(r!==null&&!(Te!==null&&bt.call(Te,e)))for(var i=0;i{e.ac.abort(Wn)}),e.ac=null);try{e.f|=Bn;var c=e.fn,d=c();e.f|=Ot;var _=e.deps,v=E?.is_fork;if(se!==null){var p;if(v||un(e,ce),_!==null&&ce>0)for(_.length=ce+se.length,p=0;pn?.call(this,s))}return e.startsWith("pointer")||e.startsWith("touch")||e==="wheel"?it(()=>{t.addEventListener(e,i,r)}):t.addEventListener(e,i,r),i}function No(e,t,n,r,i){var s={capture:r,passive:i},o=Io(e,t,n,s);(t===document.body||t===window||t===document||t instanceof HTMLMediaElement)&&Pr(()=>{t.removeEventListener(e,o,s)})}function ot(e,t,n){(t[dt]??(t[dt]={}))[e]=n}function Zn(e){for(var t=0;t{throw h});throw _}}finally{e[dt]=t,delete e.currentTarget,Me(c),Ue(d)}}}const Lo=globalThis?.window?.trustedTypes&&globalThis.window.trustedTypes.createPolicy("svelte-trusted-html",{createHTML:e=>e});function Po(e){return Lo?.createHTML(e)??e}function Fo(e){var t=bo("template");return t.innerHTML=Po(e.replaceAll("","")),t.content}function Er(e,t){var n=x;n.nodes===null&&(n.nodes={start:e,end:t,a:null,t:null})}function X(e,t){var n=(t&Hs)!==0,r=(t&Ks)!==0,i,s=!e.startsWith("");return()=>{i===void 0&&(i=Fo(s?e:""+e),n||(i=zn(i)));var o=r||Ni?document.importNode(i,!0):i.cloneNode(!0);if(n){var a=zn(o),l=o.lastChild;Er(a,l)}else Er(o,o);return o}}function Do(){var e=document.createDocumentFragment(),t=document.createComment(""),n=st();return e.append(t,n),Er(t,n),e}function W(e,t){e!==null&&e.before(t)}function Se(e,t){var n=t==null?"":typeof t=="object"?`${t}`:t;n!==(e[$t]??(e[$t]=e.nodeValue))&&(e[$t]=n,e.nodeValue=`${n}`)}function Xi(e,t){return Bo(e,t)}const Mn=new Map;function Bo(e,{target:t,anchor:n,props:r={},events:i,context:s,intro:o=!0,transformError:a}){go();var l=void 0,u=Eo(()=>{var c=n??t.appendChild(st());ro(c,{pending:()=>{}},v=>{gn({});var p=le;s&&(p.c=s),i&&(r.$$events=i),l=e(v,r)||{},mn()},a);var d=new Set,_=v=>{for(var p=0;p{for(var v of d)for(const h of[t,document]){var p=Mn.get(h),k=p.get(v);--k==0?(h.removeEventListener(v,kr),p.delete(v),p.size===0&&Mn.delete(h)):p.set(v,k)}yr.delete(_),c!==n&&c.parentNode?.removeChild(c)}});return Sr.set(l,u),l}let Sr=new WeakMap;function Xn(e,t){const n=Sr.get(e);return n?(Sr.delete(e),n(t)):Promise.resolve()}var Ie,ze,he,mt,vn,pn,Un;class jo{constructor(t,n=!0){re(this,"anchor");y(this,Ie,new Map);y(this,ze,new Map);y(this,he,new Map);y(this,mt,new Set);y(this,vn,!0);y(this,pn,t=>{if(f(this,Ie).has(t)){var n=f(this,Ie).get(t),r=f(this,ze).get(n);if(r)jr(r),f(this,mt).delete(n);else{var i=f(this,he).get(n);i&&(f(this,ze).set(n,i.effect),f(this,he).delete(n),i.fragment.lastChild.remove(),this.anchor.before(i.fragment),r=i.effect)}for(const[s,o]of f(this,Ie)){if(f(this,Ie).delete(s),s===t)break;const a=f(this,he).get(o);a&&(oe(a.effect),f(this,he).delete(o))}for(const[s,o]of f(this,ze)){if(s===n||f(this,mt).has(s))continue;const a=()=>{if(Array.from(f(this,Ie).values()).includes(s)){var u=document.createDocumentFragment();qr(o,u),u.append(st()),f(this,he).set(s,{effect:o,fragment:u})}else oe(o);f(this,mt).delete(s),f(this,ze).delete(s)};f(this,vn)||!r?(f(this,mt).add(s),kt(o,a,!1)):a()}}});y(this,Un,t=>{f(this,Ie).delete(t);const n=Array.from(f(this,Ie).values());for(const[r,i]of f(this,he))n.includes(r)||(oe(i.effect),f(this,he).delete(r))});this.anchor=t,w(this,vn,n)}ensure(t,n){var r=E,i=Fi();if(n&&!f(this,ze).has(t)&&!f(this,he).has(t))if(i){var s=document.createDocumentFragment(),o=st();s.append(o),f(this,he).set(t,{effect:Ee(()=>n(o)),fragment:s})}else f(this,ze).set(t,Ee(()=>n(this.anchor)));if(f(this,Ie).set(r,t),i){for(const[a,l]of f(this,ze))a===t?r.unskip_effect(l):r.skip_effect(l);for(const[a,l]of f(this,he))a===t?r.unskip_effect(l.effect):r.skip_effect(l.effect);r.oncommit(f(this,pn)),r.ondiscard(f(this,Un))}else f(this,pn).call(this,r)}}Ie=new WeakMap,ze=new WeakMap,he=new WeakMap,mt=new WeakMap,vn=new WeakMap,pn=new WeakMap,Un=new WeakMap;function ke(e,t,n=!1){var r=new jo(e),i=n?Kt:0;function s(o,a){r.ensure(o,a)}Dr(()=>{var o=!1;t((a,l=0)=>{o=!0,s(l,a)}),o||s(-1,null)},i)}function qo(e,t){return t}function zo(e,t,n){for(var r=[],i=t.length,s,o=t.length,a=0;a{if(s){if(s.pending.delete(d),s.done.add(d),s.pending.size===0){var _=e.outrogroups;Cr(e,Gn(s.done)),_.delete(s),_.size===0&&(e.outrogroups=null)}}else o-=1},!1)}if(o===0){var l=r.length===0&&n!==null;if(l){var u=n,c=u.parentNode;mo(c),c.append(u),e.items.clear()}Cr(e,t,!l)}else s={pending:new Set(t),done:new Set},(e.outrogroups??(e.outrogroups=new Set)).add(s)}function Cr(e,t,n=!0){var r;if(e.pending.size>0){r=new Set;for(const o of e.pending.values())for(const a of o)r.add(e.items.get(a).e)}for(var i=0;i{var L=n();return Tr(L)?L:L==null?[]:Gn(L)}),_,v=new Map,p=!0;function k(L){(N.effect.f&xe)===0&&(N.pending.delete(L),N.fallback=c,Ho(N,_,o,t,r),c!==null&&(_.length===0?(c.f&He)===0?jr(c):(c.f^=He,tn(c,null,o)):kt(c,()=>{c=null})))}function h(L){N.pending.delete(L)}var m=Dr(()=>{_=g(d);for(var L=_.length,R=new Set,G=E,te=Fi(),q=0;qs(o)):(c=Ee(()=>s(Qr??(Qr=st()))),c.f|=He)),L>R.size&&Ss(),!p)if(v.set(G,R),te){for(const[De,ft]of a)R.has(De)||G.skip_effect(ft.e);G.oncommit(k),G.ondiscard(h)}else k(G);g(d)}),N={effect:m,items:a,pending:v,outrogroups:null,fallback:c};p=!1}function Qt(e){for(;e!==null&&(e.f&Fe)===0;)e=e.next;return e}function Ho(e,t,n,r,i){var s=(r&Fs)!==0,o=t.length,a=e.items,l=Qt(e.effect.first),u,c=null,d,_=[],v=[],p,k,h,m;if(s)for(m=0;m0){var fe=(r&_i)!==0&&o===0?n:null;if(s){for(m=0;m{if(d!==void 0)for(h of d)h.nodes?.a?.apply()})}function Ko(e,t,n,r,i,s,o,a){var l=(o&Ls)!==0?(o&Ds)===0?ho(n,!1,!1):Mt(n):null,u=(o&Ps)!==0?Mt(i):null;return{v:l,i:u,e:Ee(()=>(s(t,l??n,u??i,a),()=>{e.delete(r)}))}}function tn(e,t,n){if(e.nodes)for(var r=e.nodes.start,i=e.nodes.end,s=t&&(t.f&He)===0?t.nodes.start:n;r!==null;){var o=bn(r);if(s.before(r),r===i)return;r=o}}function Xe(e,t,n){t===null?e.effect.first=n:t.next=n,n===null?e.effect.last=t:n.prev=t}const $r=[...` +\r\f \v\uFEFF`];function Uo(e,t,n){var r=e==null?"":""+e;if(t&&(r=r?r+" "+t:t),n){for(var i of Object.keys(n))if(n[i])r=r?r+" "+i:i;else if(r.length)for(var s=i.length,o=0;(o=r.indexOf(i,o))>=0;){var a=o+s;(o===0||$r.includes(r[o-1]))&&(a===r.length||$r.includes(r[a]))?r=(o===0?"":r.substring(0,o))+r.substring(a+1):o=a}}return r===""?null:r}function Go(e,t){return e==null?null:String(e)}function zr(e,t,n,r,i,s){var o=e[ur];if(o!==n||o===void 0){var a=Uo(n,r,s);a==null?e.removeAttribute("class"):e.className=a,e[ur]=n}else if(s&&i!==s)for(var l in s){var u=!!s[l];(i==null||u!==!!i[l])&&e.classList.toggle(l,u)}return s}function Vo(e,t,n,r){var i=e[cr];if(i!==t){var s=Go(t);s==null?e.removeAttribute("style"):e.style.cssText=s,e[cr]=t}return r}function $i(e,t,n=!1){if(e.multiple){if(t==null)return;if(!Tr(t))return Gs();for(var r of e.options)r.selected=t.includes(ln(r));return}for(r of e.options){var i=ln(r);if(po(i,t)){r.selected=!0;return}}(!n||t!==void 0)&&(e.selectedIndex=-1)}function Wo(e){var t=new MutationObserver(()=>{$i(e,e.__value)});t.observe(e,{childList:!0,subtree:!0,attributes:!0,attributeFilter:["value"]}),Pr(()=>{t.disconnect()})}function Yo(e,t,n=t){var r=new WeakSet,i=!0;Nr(e,"change",s=>{var o=s?"[selected]":":checked",a;if(e.multiple)a=[].map.call(e.querySelectorAll(o),ln);else{var l=e.querySelector(o)??e.querySelector("option:not([disabled])");a=l&&ln(l)}n(a),e.__value=a,E!==null&&r.add(E)}),Bi(()=>{var s=t();if(e===document.activeElement){var o=E;if(r.has(o))return}if($i(e,s,i),i&&s===void 0){var a=e.querySelector(":checked");a!==null&&(s=ln(a),n(s))}e.__value=s,i=!1}),Wo(e)}function ln(e){return"__value"in e?e.__value:e.value}const Jo=Symbol("is custom element"),Zo=Symbol("is html");function St(e,t,n,r){var i=Xo(e);i[t]!==(i[t]=n)&&(t==="loading"&&(e[ys]=n),n==null?e.removeAttribute(t):typeof n!="string"&&Qo(e).includes(t)?e[t]=n:e.setAttribute(t,n))}function Xo(e){return e[On]??(e[On]={[Jo]:e.nodeName.includes("-"),[Zo]:e.namespaceURI===hi})}var ei=new Map;function Qo(e){var t=e.getAttribute("is")||e.nodeName,n=ei.get(t);if(n)return n;ei.set(t,n=[]);for(var r,i=e,s=Element.prototype;s!==i;){r=_s(i);for(var o in r)r[o].set&&o!=="innerHTML"&&o!=="textContent"&&o!=="innerText"&&n.push(o);i=ui(i)}return n}function ti(e,t,n=t){var r=new WeakSet;Nr(e,"input",async i=>{var s=i?e.defaultValue:e.value;if(s=ir(e)?sr(s):s,n(s),E!==null&&r.add(E),await Mo(),s!==(s=t())){var o=e.selectionStart,a=e.selectionEnd,l=e.value.length;if(e.value=s??"",a!==null){var u=e.value.length;o===a&&a===l&&u>l?(e.selectionStart=u,e.selectionEnd=u):(e.selectionStart=o,e.selectionEnd=Math.min(a,u))}}}),Yt(t)==null&&e.value&&(n(ir(e)?sr(e.value):e.value),E!==null&&r.add(E)),Jn(()=>{var i=t();if(e===document.activeElement){var s=E;if(r.has(s))return}ir(e)&&i===sr(e.value)||e.type==="date"&&!i&&!e.value||i!==e.value&&(e.value=i??"")})}function es(e,t,n=t){Nr(e,"change",r=>{var i=r?e.defaultChecked:e.checked;n(i)}),Yt(t)==null&&n(e.checked),Jn(()=>{var r=t();e.checked=!!r})}function ir(e){var t=e.type;return t==="number"||t==="range"}function sr(e){return e===""?null:+e}function or(e,t){return e===t||e?.[wt]===t}function $o(e={},t,n,r){var i=le.r,s=x;return Bi(()=>{var o,a;return Jn(()=>{o=a,a=[],Yt(()=>{or(n(...a),e)||(t(e,...a),o&&or(n(...o),e)&&t(null,...o))})}),()=>{let l=s;for(;l!==i&&l.parent!==null&&l.parent.f&fr;)l=l.parent;const u=()=>{a&&or(n(...a),e)&&t(null,...a)},c=l.teardown;l.teardown=()=>{u(),c?.()}}}),e}function an(e,t,n,r){var i=!0,s=(n&qs)!==0,o=(n&zs)!==0,a=r,l=!0,u=void 0,c=()=>o&&i?(u??(u=fn(r)),g(u)):(l&&(l=!1,a=o?Yt(r):r),a);let d;if(s){var _=wt in e||ws in e;d=Lt(e,t)?.set??(_&&t in e?R=>e[t]=R:void 0)}var v,p=!1;s?[v,p]=Zs(()=>e[t]):v=e[t],v===void 0&&r!==void 0&&(v=c(),d&&(Ms(),d(v)));var k;if(k=()=>{var R=e[t];return R===void 0?c():(l=!0,R)},(n&js)===0)return k;if(d){var h=e.$$legacy;return(function(R,G){return arguments.length>0?((!G||h||p)&&d(G?k():R),R):k()})}var m=!1,N=((n&Bs)!==0?fn:Ti)(()=>(m=!1,k()));s&&g(N);var L=x;return(function(R,G){if(arguments.length>0){const te=G?g(N):s?nt(R):R;return K(N,te),m=!0,a!==void 0&&(a=te),R}return Je&&m||(L.f&xe)!==0?N.v:g(N)})}function el(e){le===null&&ks(),Fr(()=>{const t=Yt(e);if(typeof t=="function")return t})}const tl="[data-v-app]",nl=["header","content","footer"];let at=null;function rl(e){const t=e instanceof Set?e:new Set(e||[]);for(let n=0;n<16;n++){const r=crypto.randomUUID().replace(/-/g,"").slice(0,8);if(!t.has(r))return r}throw new Error("rebemer: id collision exhausted")}function il(){if(typeof document>"u")return!1;const t=document.querySelector(tl)?.__vue_app__?.config?.globalProperties?.$_state;return!t||typeof t!="object"||!Array.isArray(t.globalClasses)?(at=null,!1):(at=t,!0)}function Jt(e){if(!at||!e)return null;for(const t of nl){const n=at[t];if(!Array.isArray(n))continue;const r=n.find(i=>i&&i.id===e);if(r)return r}return null}function sl(e){const t=Jt(e);if(!t)return[];const n=[{id:t.id,depth:0,label:t.label,name:t.name,settings:t.settings}];return ts(t,1,n),n}function ts(e,t,n){if(!(!e||!Array.isArray(e.children)))for(const r of e.children){const i=Jt(r);i&&(n.push({id:i.id,depth:t,label:i.label,name:i.name,settings:i.settings}),ts(i,t+1,n))}}function ns(){return at?at.globalClasses:[]}function ol(e,t){if(!at)throw new Error("rebemer: not ready");const n=at.globalClasses,r=n.find(o=>o&&o.name===e);if(r)return r.id;const i=new Set(n.map(o=>o?.id).filter(Boolean)),s=rl(i);return n.push({id:s,name:e,settings:t||{}}),s}function ll(e,t){const n=Jt(e);if(!n)return;n.settings||(n.settings={});const r=Array.isArray(t)?t:[];Array.isArray(n.settings._cssGlobalClasses)?n.settings._cssGlobalClasses.splice(0,n.settings._cssGlobalClasses.length,...r):n.settings._cssGlobalClasses=[...r]}function al(e,t){const n=Jt(e);n&&(n.label=t)}const fl="5";var fi;typeof window<"u"&&((fi=window.__svelte??(window.__svelte={})).v??(fi.v=new Set)).add(fl);var ul=X('reBEM');function cl(e,t){gn(t,!0);function n(i){i.stopPropagation(),i.preventDefault(),t.onActivate?.(t.elementId)}var r=ul();ve(()=>{St(r,"title",t.label?`Open reBEMer for ${t.label}`:"Open reBEMer"),St(r,"aria-label",t.label?`Open reBEMer for ${t.label}`:"Open reBEMer")}),ot("click",r,n),ot("keydown",r,i=>(i.key==="Enter"||i.key===" ")&&n(i)),W(e,r),mn()}Zn(["click","keydown"]);function Ct(e){return e?String(e).normalize("NFKD").replace(/[\u0300-\u036f]/g,"").replace(/[^\x00-\x7f]/g,"").toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/-+/g,"-").replace(/^-+|-+$/g,""):""}const dl=/^[a-z][a-z0-9]*(-[a-z0-9]+)*$/,_l=new Set(["auto","inherit","initial","unset","revert","revert-layer","none"]);function hl(e){return e?_l.has(e)?{ok:!1,reason:`"${e}" is a CSS keyword.`}:dl.test(e)?{ok:!0}:{ok:!1,reason:"Use lowercase letters, digits, and hyphens."}:{ok:!1,reason:"Name is empty."}}const Qn=new Set(["_padding","_padding_top","_padding_right","_padding_bottom","_padding_left","_margin","_margin_top","_margin_right","_margin_bottom","_margin_left","_width","_widthMin","_widthMax","_minWidth","_maxWidth","_height","_heightMin","_heightMax","_minHeight","_maxHeight","_aspectRatio","_overflow","_overflowX","_overflowY","_color","_background","_backgroundColor","_backgroundImage","_backgroundSize","_backgroundPosition","_backgroundRepeat","_backgroundAttachment","_backgroundBlendMode","_typography","_fontFamily","_fontSize","_fontWeight","_fontStyle","_lineHeight","_letterSpacing","_wordSpacing","_textAlign","_textTransform","_textDecoration","_textDecorationColor","_textShadow","_textIndent","_whiteSpace","_listStyleType","_listStylePosition","_border","_borderRadius","_borderColor","_borderStyle","_borderWidth","_outline","_outlineColor","_outlineStyle","_outlineWidth","_outlineOffset","_boxShadow","_filter","_backdropFilter","_opacity","_blendMode","_transform","_transformOrigin","_transition","_animation","_display","_flexDirection","_flexWrap","_flexGrow","_flexShrink","_flexBasis","_alignItems","_alignSelf","_alignContent","_justifyContent","_justifyItems","_justifySelf","_gap","_rowGap","_columnGap","_gridTemplateColumns","_gridTemplateRows","_gridGap","_gridAutoFlow","_gridAutoColumns","_gridAutoRows","_gridColumn","_gridRow","_gridArea","_position","_top","_right","_bottom","_left","_zIndex","_objectFit","_objectPosition","_cursor","_pointerEvents","_userSelect"]);function vl(e){if(!e||typeof e!="object")return[];const t=[];for(const n of Object.keys(e))Qn.has(n)&&t.push(n);return t.sort(),t}const pl=new Set(["_cssGlobalClasses","_cssClasses","_cssId","_attributes","_hidden","_hidden_lg","_hidden_md","_hidden_sm","_hidden_xl","_name","_label","_id","tag","children","parent"]);function gl(e){if(!e||typeof e!="object")return[];const t=[];for(const n of Object.keys(e))Qn.has(n)||pl.has(n)||n.startsWith("_hidden_")||t.push(n);return t.sort(),t}const ml=new Set(["add","rename","replace","modifier","migrate"]),ni=new Set(["user","label"]);function rs({rootId:e,rows:t,mode:n}){if(!ml.has(n))return{ok:!1,ops:[],error:`Invalid mode: ${n}`};const r=t.find(a=>a.id===e);if(!r)return{ok:!1,ops:[],error:"Root row missing."};const i=Ct(r.name);if(!i)return{ok:!1,ops:[],error:"Block name is empty."};const s=[];for(const a of t){if(!a.include)continue;const l=a.id===e;let u;if(l)u=i;else{const d=Ct(a.name);if(!d)continue;u=`${i}__${d}`}let c=u;if(n==="modifier"){const d=Ct(a.modifier);if(!d)continue;c=`${u}--${d}`}s.push({row:a,isRoot:l,finalClass:c,suggestedFrom:a.suggestedFrom||"fallback"})}if(s.length===0)return{ok:!1,ops:[],error:"No rows to apply. Include at least one row."};const o=yl(s,n);return o.ok?{ok:!0,ops:s}:{ok:!1,ops:[],error:o.error}}function bl({rootId:e,rows:t,mode:n,syncLabels:r}){const i=rs({rootId:e,rows:t,mode:n});if(!i.ok)return{ok:!1,error:i.error};const s=i.ops,o=t.find(c=>c.id===e),a=Ct(o?.name??""),l=ns();if(n==="migrate"){const c=wl(s,l);if(!c.ok)return c}let u=0;try{for(const c of s){const d=Jt(c.row.id);if(!d)continue;const _=El(d.settings);let v={};if(n==="rename"&&_.length>0){const h=l.find(m=>m&&m.id===_[0]);h&&h.settings&&(v=JSON.parse(JSON.stringify(h.settings)))}else n==="migrate"&&(v=is(d.settings,c.row.migrateKeys));if(n==="migrate"){const h=l.find(m=>m&&m.name===c.finalClass);if(h){(!h.settings||typeof h.settings!="object")&&(h.settings={});for(const[m,N]of Object.entries(v))Object.prototype.hasOwnProperty.call(h.settings,m)||(h.settings[m]=N)}}const p=ol(c.finalClass,v);let k;switch(n){case"add":case"modifier":case"migrate":k=_.includes(p)?_:[..._,p];break;case"rename":case"replace":k=[p];break}if(ll(c.row.id,k),n==="migrate"&&kl(d.settings,c.row.migrateKeys),r&&n!=="modifier"){const h=Sl(c.finalClass,a);h&&al(c.row.id,h)}u++}}catch(c){const d=c instanceof Error?c.message:String(c);return console.warn("[reBEMer] apply halted after",u,"mutation(s):",d),{ok:!1,error:u>0?`Applied to ${u} element${u!==1?"s":""} before halting: ${d}. State is partially applied — undo via Bricks (Cmd-Z) before retrying.`:`Operation failed: ${d}`}}return u===0?{ok:!1,error:"No elements were modified. The subtree may have changed."}:{ok:!0,count:u}}function wl(e,t){for(const n of e){const r=t.find(l=>l&&l.name===n.finalClass);if(!r)continue;const i=Jt(n.row.id);if(!i)continue;const s=is(i.settings,n.row.migrateKeys),o=r.settings&&typeof r.settings=="object"?r.settings:{},a=[];for(const[l,u]of Object.entries(s))Object.prototype.hasOwnProperty.call(o,l)&&JSON.stringify(o[l])!==JSON.stringify(u)&&a.push(l.replace(/^_/,""));if(a.length>0){const l=a.join(", ");return{ok:!1,error:`Migrate blocked: existing class "${n.finalClass}" has conflicting values for ${l}. Pick a different name or use Add mode.`}}}return{ok:!0}}function yl(e,t){const n=new Map;for(const r of e){const i=n.get(r.finalClass)||[];i.push(r),n.set(r.finalClass,i)}for(const[r,i]of n){if(i.length===1||t==="modifier")continue;const s=i.filter(a=>ni.has(a.suggestedFrom));if(s.length>1)return{ok:!1,error:`"${r}" is used by ${s.length} rows. Edit one to make it unique.`};let o=1;for(const a of i)ni.has(a.suggestedFrom)||(a.finalClass=`${r}-${o++}`,a.suggestedFrom="auto-number")}if(t!=="modifier"){const r=new Map;for(const i of e){const s=r.get(i.finalClass);if(s)return{ok:!1,error:`"${i.finalClass}" is produced by 2 rows after auto-numbering (one ${s}, one ${i.suggestedFrom}). Pick a different name for one of them.`};r.set(i.finalClass,i.suggestedFrom)}}return{ok:!0}}function is(e,t){if(!e||!Array.isArray(t))return{};const n={};for(const r of t)Qn.has(r)&&Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=JSON.parse(JSON.stringify(e[r])));return n}function kl(e,t){if(!(!e||!Array.isArray(t)))for(const n of t)Qn.has(n)&&Object.prototype.hasOwnProperty.call(e,n)&&delete e[n]}function El(e){const t=e?._cssGlobalClasses;return t?(Array.isArray(t)?t:Object.values(t)).filter(r=>typeof r=="string"&&r.length>0):[]}function Sl(e,t){let n=e;return n===t?ri(t.replace(/-/g," ")):(n.startsWith(t+"__")&&(n=n.slice(t.length+2)),n=n.replace(/--.+$/,""),ri(n.replace(/-/g," ")))}function ri(e){return e.replace(/(^|\s)([a-z])/g,(t,n,r)=>n+r.toUpperCase())}const Cl=Object.freeze({heading:"heading","text-basic":"text",text:"text","text-link":"link",code:"code",image:"image",icon:"icon","icon-box":"icon",video:"video",audio:"audio",svg:"svg",logo:"logo",shape:"shape",button:"button","button-group":"buttons","nav-nested":"nav","nav-menu":"nav",list:"list",accordion:"accordion",tabs:"tabs",slider:"slider",carousel:"carousel",countdown:"countdown",counter:"counter",testimonials:"testimonials",pricing:"pricing",team:"team",form:"form",posts:"posts",template:"item"}),ss=new Set(["section","container","block","div"]);function Al(e,t="item"){return!e||typeof e!="string"||ss.has(e)?t:Cl[e]||t}function lr(e){return typeof e=="string"&&ss.has(e)}const xl=Object.freeze({heading:"title","text-basic":"description",text:"description",button:"action","text-link":"link",logo:"logo",image:"image"});function Tl(e,t,n){const r=new Set(e.filter(Boolean)),i=(...v)=>v.some(p=>r.has(p)),s=i("button","button-group"),o=i("heading"),a=i("text-basic","text"),l=i("image"),u=i("nav-nested","nav-menu"),c=i("form"),d=i("icon","icon-box"),_=i("list");return c?"form":u?"nav":s&&!o&&!a?"actions":l&&!a&&!o&&!s?"media":o&&!a&&!s?"header":a&&!o&&!s?"body":o&&s?"header":o&&a?"content":d&&!a&&!o?"icon-group":_?"list-wrap":n>1?t===0?"header":t===n-1?"footer":"body":"content"}var Ml=X('suggested'),Ol=X(' '),Rl=X(''),Il=X(`A class named already exists. On Apply, missing style keys will be merged into it. Conflicting - values block the migration — pick a different name or use Add.`,1),Cl=J(`A class named already exists + values block the migration — pick a different name or use Add.`,1),Nl=X(`A class named already exists globally. Apply will attach the existing class instead of - creating a duplicate.`,1),Al=J('

                                        '),xl=J(' '),Tl=J('Migrate: ',1),Ml=J('No migratable keys on this element.'),Ol=J(' '),Rl=J('
                                        '),Nl=J('
                                        ');function Il(e,t){vn(t,!0);let n=on(t,"row",15),r=on(t,"globalClasses",19,()=>[]),i=on(t,"finalClassName",3,"");const s=de(()=>t.mode==="modifier"),o=de(()=>t.mode==="migrate"),a=de(()=>!t.isRoot&&t.blockName?`${t.blockName}__`:""),l=de(()=>Math.min(n().depth??0,3)),u=de(()=>n().suggestedFrom==="element-type"||n().suggestedFrom==="fallback"),c=de(()=>!i()||!Array.isArray(r())||!n().include?null:r().find(A=>A&&A.name===i())||null);function d(){n().suggestedFrom!=="user"&&n(n().suggestedFrom="user",!0)}function _(A){return A.startsWith("_")?A.slice(1):A}var v=Nl();let p;var y=L(v),h=L(y),m=I(y,2),N=L(m),P=L(N),R=I(N,2),H=L(R),$=I(R,2);{var G=A=>{var j=yl();ce(()=>et(j,"title",`Pre-filled from ${n().suggestedFrom==="element-type"?"Bricks element type":"fallback"}`)),W(A,j)};ge($,A=>{g(u)&&n().include&&A(G)})}var se=I(m,2),oe=L(se),D=L(oe);{var lt=A=>{var j=kl(),Ne=L(j);ce(()=>be(Ne,g(a))),W(A,j)};ge(D,A=>{g(a)&&A(lt)})}var Re=I(D,2),bn=I(oe,2);{var Zn=A=>{var j=El();ce(()=>j.disabled=!n().include),it("input",j,d),Zr(j,()=>n().modifier,Ne=>n(n().modifier=Ne,!0)),W(A,j)};ge(bn,A=>{g(s)&&A(Zn)})}var Vt=I(se,2);{var wn=A=>{var j=Al(),Ne=L(j);{var Yt=b=>{var M=Sl(),x=I(rn(M)),q=L(x);ce(()=>be(q,i())),W(b,M)},Jt=b=>{var M=Cl(),x=I(rn(M)),q=L(x);ce(()=>be(q,i())),W(b,M)};ge(Ne,b=>{g(o)?b(Yt):b(Jt,-1)})}W(A,j)};ge(Vt,A=>{g(c)&&A(wn)})}var Xn=I(Vt,2);{var yn=A=>{var j=Rl(),Ne=L(j);{var Yt=x=>{var q=Tl(),Ie=I(rn(q),2);Vi(Ie,17,()=>n().migrateKeys,Lo,(qe,Ve)=>{var Se=xl(),Ce=L(Se);ce(kn=>{et(Se,"title",`Will be lifted into ${(i()||"the new class")??""}`),be(Ce,kn)},[()=>_(g(Ve))]),W(qe,Se)}),W(x,q)},Jt=x=>{var q=Ml();W(x,q)};ge(Ne,x=>{n().migrateKeys?.length?x(Yt):x(Jt,-1)})}var b=I(Ne,2);{var M=x=>{var q=Ol(),Ie=L(q);ce(()=>be(Ie,`${n().skippedKeys.length??""} skipped`)),W(x,q)};ge(b,x=>{n().skippedKeys?.length&&x(M)})}W(A,j)};ge(Xn,A=>{g(o)&&n().include&&A(yn)})}ce(A=>{p=Dr(v,1,"rebemer-row",null,p,{"rebemer-row--disabled":!n().include,"rebemer-row--suggested":g(u)}),et(v,"data-depth",g(l)),be(P,n().originalLabel),be(H,A),et(Re,"placeholder",t.isRoot?"block-name":"element-name"),Re.disabled=!n().include},[()=>t.isRoot?"BLOCK":(n().bricksType||"ELEM").toUpperCase()]),Ji(h,()=>n().include,A=>n(n().include=A,!0)),it("input",Re,d),Zr(Re,()=>n().name,A=>n(n().name=A,!0)),W(e,v),pn()}Wn(["input"]);var Pl=J(" ");function Ll(e,t){vn(t,!0);let n=on(t,"kind",3,"info"),r=on(t,"duration",3,3e3),i=X(!0);Rr(()=>{if(!g(i)||r()<=0)return;const u=setTimeout(()=>{K(i,!1),t.onDismiss?.()},r());return()=>clearTimeout(u)});const s=de(()=>n()==="error"?"alert":"status");var o=No(),a=rn(o);{var l=u=>{var c=Pl(),d=L(c);ce(()=>{Dr(c,1,`rebemer-toast rebemer-toast--${n()??""}`),et(c,"role",g(s)),et(c,"aria-live",n()==="error"?"assertive":"polite"),be(d,t.message)}),it("click",c,()=>{K(i,!1),t.onDismiss?.()}),W(u,c)};ge(a,u=>{g(i)&&u(l)})}W(e,o),pn()}Wn(["click"]);var Dl=J(' '),Fl=J(''),Bl=J(' ',1);function jl(e,t){vn(t,!0);let n=X("add"),r=X(!0),i=X($e([])),s=X($e([])),o=X(null),a=X(null);const l=de(()=>kt(g(i)[0]?.name??"")),u=de(()=>g(i)[0]?.originalLabel??""),c=de(()=>{if(g(n)!=="migrate")return null;let b=0,M=0;for(const x of g(i))x.include&&(b+=x.migrateKeys?.length??0,M+=x.skippedKeys?.length??0);return{willMigrate:b,willSkip:M}}),d=de(()=>{if(g(i).length===0)return new Map;const b=Qi({rootId:t.rootId,rows:g(i),mode:g(n)}),M=new Map;if(!b.ok)return M;for(const x of b.ops)M.set(x.row.id,x.finalClass);return M});Vo(()=>{const b=Qo(t.rootId);K(s,Xi().slice(),!0),K(i,b.map((M,x)=>{const q=x===0,Ie=M.label||"",qe=kt(Ie),Ve=M.name||"";let Se,Ce;return qe?(Se=qe,Ce="label"):q?(Se="block",Ce="fallback"):Ve&&!wl(Ve)?(Se=bl(Ve,"item"),Ce="element-type"):(Se="item",Ce="fallback"),{id:M.id,depth:M.depth,bricksType:Ve,originalLabel:Ie||(q?"block":"element"),name:Se,modifier:"",include:!0,suggestedFrom:Ce,migrateKeys:al(M.settings),skippedKeys:ul(M.settings)}}),!0)});function _(b){if(b.key==="Escape"){t.onClose?.();return}g(a)&&b.target instanceof Node&&g(a).contains(b.target)&&b.key==="Enter"&&(b.target?.tagName==="INPUT"||b.target?.tagName==="SELECT")&&(b.preventDefault(),p())}let v=null;function p(){const b=kt(g(i)[0]?.name??""),M=ll(b);if(!M.ok){K(o,{kind:"error",message:M.reason},!0);return}const x=dl({rootId:t.rootId,rows:g(i),mode:g(n),syncLabels:g(r)});x.ok?(K(o,{kind:"success",message:`Applied to ${x.count} element${x.count!==1?"s":""}.`},!0),v&&clearTimeout(v),v=setTimeout(()=>t.onClose?.(),800)):K(o,{kind:"error",message:x.error},!0)}Rr(()=>()=>{v&&clearTimeout(v)});var y=Bl();To("keydown",vr,_);var h=rn(y),m=L(h),N=L(m),P=I(L(N)),R=L(P),H=I(N,2),$=I(m,2),G=L($),se=I(L(G),2),oe=L(se);oe.value=oe.__value="add";var D=I(oe);D.value=D.__value="rename";var lt=I(D);lt.value=lt.__value="replace";var Re=I(lt);Re.value=Re.__value="modifier";var bn=I(Re);bn.value=bn.__value="migrate";var Zn=I(G,2),Vt=L(Zn),wn=I($,2);{var Xn=b=>{var M=Fl();let x;var q=I(L(M)),Ie=L(q),qe=I(q),Ve=I(qe);{var Se=Ce=>{var kn=Dl(),ns=L(kn);ce(()=>be(ns,`${g(c).willSkip??""} key${g(c).willSkip===1?"":"s"} not on the allowlist will stay on the element.`)),W(Ce,kn)};ge(Ve,Ce=>{g(c).willSkip>0&&Ce(Se)})}ce(()=>{x=Dr(M,1,"rebemer-panel__notice",null,x,{"rebemer-panel__notice--warn":g(c).willSkip>0}),be(Ie,g(c).willMigrate),be(qe,` style key${g(c).willMigrate===1?"":"s"} into new classes. `)}),W(b,M)};ge(wn,b=>{g(c)&&b(Xn)})}var yn=I(wn,2);Vi(yn,23,()=>g(i),b=>b.id,(b,M,x)=>{{let q=de(()=>g(M).id===t.rootId),Ie=de(()=>g(d).get(g(M).id)??"");Il(b,{get mode(){return g(n)},get blockName(){return g(l)},get isRoot(){return g(q)},get globalClasses(){return g(s)},get finalClassName(){return g(Ie)},get row(){return g(i)[g(x)]},set row(qe){g(i)[g(x)]=qe}})}});var A=I(yn,2),j=L(A),Ne=I(j,2);Wo(h,b=>K(a,b),()=>g(a));var Yt=I(h,2);{var Jt=b=>{Ll(b,{get kind(){return g(o).kind},get message(){return g(o).message},onDismiss:()=>{K(o,null)}})};ge(Yt,b=>{g(o)&&b(Jt)})}ce(()=>{be(R,g(u)),Vt.disabled=g(n)==="modifier"}),it("click",H,()=>t.onClose?.()),zo(se,()=>g(n),b=>K(n,b)),Ji(Vt,()=>g(r),b=>K(r,b)),it("click",j,()=>t.onClose?.()),it("click",Ne,p),W(e,y),pn()}Wn(["click"]);const $r="#bricks-structure",ql="li[data-id]",ei="slashed-rebemer-host",zl=400,Kl=25,Jn=(e,...t)=>console[e]("[reBEMer]",...t),ts=new AbortController,{signal:Fr}=ts,Et=new Map;let en=null;function Ul(){let e=document.getElementById(ei);return e||(e=document.createElement("div"),e.id=ei,document.body.appendChild(e)),e}function ti(){let e=0;const t=()=>{if(!Fr.aborted){if(Xo()){Hl();return}if(++e>=Kl){Jn("warn","Bricks Vue app not detected after grace window — reBEMer disabled on this page.");return}setTimeout(t,zl)}};t()}function Hl(){const e=document.querySelector($r);if(e){ni(e);return}const t=new MutationObserver(()=>{const n=document.querySelector($r);n&&(t.disconnect(),ni(n))});t.observe(document.body,{childList:!0,subtree:!0}),Fr.addEventListener("abort",()=>t.disconnect(),{once:!0})}function ni(e){let t=null;const n=()=>{t===null&&(t=setTimeout(()=>{t=null,ri(e)},50))},r=new MutationObserver(n);r.observe(e,{childList:!0,subtree:!0}),Fr.addEventListener("abort",()=>{r.disconnect(),t!==null&&clearTimeout(t)},{once:!0}),ri(e)}function ri(e){for(const[n,r]of Et)if(!r.host.isConnected){try{Vn(r.instance)}catch(i){Jn("warn","badge unmount failed",i)}Et.delete(n)}const t=e.querySelectorAll(ql);for(const n of t){const r=n.getAttribute("data-id");if(!r)continue;const i=Et.get(r);i&&i.host.isConnected&&n.contains(i.host)||Gl(n)}}function Gl(e){const t=e.getAttribute("data-id");if(!t)return;const n=e.querySelector(":scope > .structure-item")||e,r=n.querySelector(":scope > ul.actions")||n.querySelector(":scope > .actions")||n.querySelector(":scope > .structure-item-actions"),i=document.createElement("span");i.className="rebemer-badge-host",r?n.insertBefore(i,r):n.appendChild(i);const s=n.querySelector(":scope > .title, :scope > .structure-item-title, :scope > .name, :scope .label"),o=s?s.textContent.trim():"",a=Wi(il,{target:i,props:{elementId:t,label:o,onActivate:Wl}}),l=Et.get(t);if(l){try{Vn(l.instance)}catch(u){Jn("warn","badge remount cleanup failed",u)}l.host.isConnected&&l.host.remove()}Et.set(t,{instance:a,host:i})}function Wl(e){yr();const t=document.createElement("div");Ul().appendChild(t),en={instance:Wi(jl,{target:t,props:{rootId:e,onClose:yr}}),node:t}}function yr(){if(en){try{Vn(en.instance)}catch(e){Jn("warn","panel unmount failed",e)}en.node.remove(),en=null}}window.addEventListener("beforeunload",()=>{ts.abort(),yr();for(const{instance:e}of Et.values())try{Vn(e)}catch{}Et.clear()},{once:!0});document.readyState==="loading"?document.addEventListener("DOMContentLoaded",ti,{once:!0}):ti(); + creating a duplicate.`,1),Ll=X('

                                        '),Pl=X(' '),Fl=X('Migrate: ',1),Dl=X('No migratable keys on this element.'),Bl=X(' '),jl=X('
                                        '),ql=X('
                                        ');function zl(e,t){gn(t,!0);let n=an(t,"row",15),r=an(t,"globalClasses",19,()=>[]),i=an(t,"finalClassName",3,"");const s=Ce(()=>t.mode==="modifier"),o=Ce(()=>t.mode==="migrate"),a=Ce(()=>!t.isRoot&&t.blockName?`${t.blockName}__`:""),l=Ce(()=>n().suggestedFrom==="element-type"||n().suggestedFrom==="fallback"),u=Ce(()=>!i()||!Array.isArray(r())||!n().include?null:r().find(T=>T&&T.name===i())||null);function c(){n().suggestedFrom!=="user"&&n(n().suggestedFrom="user",!0)}function d(T){return T.startsWith("_")?T.slice(1):T}var _=ql();let v;var p=P(_),k=P(p),h=I(p,2),m=P(h),N=P(m),L=I(m,2),R=P(L),G=I(L,2);{var te=T=>{var V=Ml();ve(()=>St(V,"title",`Pre-filled from ${n().suggestedFrom==="element-type"?"Bricks element type":"fallback"}`)),W(T,V)};ke(G,T=>{g(l)&&n().include&&T(te)})}var q=I(h,2),ae=P(q),fe=P(ae);{var D=T=>{var V=Ol(),Oe=P(V);ve(()=>Se(Oe,g(a))),W(T,V)};ke(fe,T=>{g(a)&&T(D)})}var De=I(fe,2),ft=I(ae,2);{var yn=T=>{var V=Rl();ve(()=>V.disabled=!n().include),ot("input",V,c),ti(V,()=>n().modifier,Oe=>n(n().modifier=Oe,!0)),W(T,V)};ke(ft,T=>{g(s)&&T(yn)})}var kn=I(q,2);{var En=T=>{var V=Ll(),Oe=P(V);{var Zt=Be=>{var b=Il(),A=I(on(b)),S=P(A);ve(()=>Se(S,i())),W(Be,b)},Xt=Be=>{var b=Nl(),A=I(on(b)),S=P(A);ve(()=>Se(S,i())),W(Be,b)};ke(Oe,Be=>{g(o)?Be(Zt):Be(Xt,-1)})}W(T,V)};ke(kn,T=>{g(u)&&T(En)})}var Sn=I(kn,2);{var er=T=>{var V=jl(),Oe=P(V);{var Zt=A=>{var S=Fl(),z=I(on(S),2);Qi(z,17,()=>n().migrateKeys,qo,(ue,Re)=>{var F=Pl(),pe=P(F);ve(ne=>{St(F,"title",`Will be lifted into ${(i()||"the new class")??""}`),Se(pe,ne)},[()=>d(g(Re))]),W(ue,F)}),W(A,S)},Xt=A=>{var S=Dl();W(A,S)};ke(Oe,A=>{n().migrateKeys?.length?A(Zt):A(Xt,-1)})}var Be=I(Oe,2);{var b=A=>{var S=Bl(),z=P(S);ve(()=>Se(z,`${n().skippedKeys.length??""} skipped`)),W(A,S)};ke(Be,A=>{n().skippedKeys?.length&&A(b)})}W(T,V)};ke(Sn,T=>{g(o)&&n().include&&T(er)})}ve(T=>{v=zr(_,1,"rebemer-row",null,v,{"rebemer-row--disabled":!n().include,"rebemer-row--suggested":g(l)}),Vo(_,`--rebemer-row-depth: ${n().depth??0??""}`),Se(N,n().originalLabel),Se(R,T),St(De,"placeholder",t.isRoot?"block-name":"element-name"),De.disabled=!n().include},[()=>t.isRoot?"BLOCK":(n().bricksType||"ELEM").toUpperCase()]),es(k,()=>n().include,T=>n(n().include=T,!0)),ot("input",De,c),ti(De,()=>n().name,T=>n(n().name=T,!0)),W(e,_),mn()}Zn(["input"]);var Hl=X(" ");function Kl(e,t){gn(t,!0);let n=an(t,"kind",3,"info"),r=an(t,"duration",3,3e3),i=$(!0);Fr(()=>{if(!g(i)||r()<=0)return;const u=setTimeout(()=>{K(i,!1),t.onDismiss?.()},r());return()=>clearTimeout(u)});const s=Ce(()=>n()==="error"?"alert":"status");var o=Do(),a=on(o);{var l=u=>{var c=Hl(),d=P(c);ve(()=>{zr(c,1,`rebemer-toast rebemer-toast--${n()??""}`),St(c,"role",g(s)),St(c,"aria-live",n()==="error"?"assertive":"polite"),Se(d,t.message)}),ot("click",c,()=>{K(i,!1),t.onDismiss?.()}),W(u,c)};ke(a,u=>{g(i)&&u(l)})}W(e,o),mn()}Zn(["click"]);var Ul=X(' '),Gl=X(''),Vl=X(' ',1);function Wl(e,t){gn(t,!0);let n=$("add"),r=$(!0),i=$(nt([])),s=$(nt([])),o=$(null),a=$(null);const l=Ce(()=>Ct(g(i)[0]?.name??"")),u=Ce(()=>g(i)[0]?.originalLabel??""),c=Ce(()=>{if(g(n)!=="migrate")return null;let b=0,A=0;for(const S of g(i))S.include&&(b+=S.migrateKeys?.length??0,A+=S.skippedKeys?.length??0);return{willMigrate:b,willSkip:A}}),d=Ce(()=>{if(g(i).length===0)return new Map;const b=rs({rootId:t.rootId,rows:g(i),mode:g(n)}),A=new Map;if(!b.ok)return A;for(const S of b.ops)A.set(S.row.id,S.finalClass);return A});el(()=>{const b=sl(t.rootId);K(s,ns().slice(),!0);const A=b.map((S,z)=>{const ue=z===0,Re=S.label||"",F=Ct(Re),pe=S.name||"";let ne,Y;return F?(ne=F,Y="label"):ue?(ne="block",Y="fallback"):pe&&!lr(pe)?(ne=Al(pe,"item"),Y="element-type"):(ne="item",Y="fallback"),{id:S.id,depth:S.depth,bricksType:pe,originalLabel:Re||(ue?"block":"element"),name:ne,modifier:"",include:!0,suggestedFrom:Y,migrateKeys:vl(S.settings),skippedKeys:gl(S.settings)}});if(A.length>1){const S=new Map(b.map(F=>[F.id,[]])),z=[];for(const F of b){for(;z.length&&z[z.length-1].depth>=F.depth;)z.pop();z.length&&S.get(z[z.length-1].id).push(F.id),z.push(F)}const ue=new Map(b.map(F=>[F.id,F])),Re=new Map(A.map(F=>[F.id,F]));for(const[,F]of S){if(!F.length)continue;const pe=new Map;for(const Y of F){const ge=ue.get(Y)?.name;ge&&pe.set(ge,(pe.get(ge)??0)+1)}const ne=F.filter(Y=>lr(ue.get(Y)?.name??""));for(const Y of F){const ge=Re.get(Y),Cn=ue.get(Y);if(!(!ge||!Cn||ge.suggestedFrom==="label")){if(lr(Cn.name)){const An=(S.get(Y)??[]).map(as=>ue.get(as)?.name??"").filter(Boolean),ls=ne.indexOf(Y);ge.name=Tl(An,ls,ne.length),ge.suggestedFrom="element-type"}else if((pe.get(Cn.name)??0)===1){const An=xl[Cn.name];An&&(ge.name=An,ge.suggestedFrom="element-type")}}}}}K(i,A,!0)});function _(b){if(b.key==="Escape"){t.onClose?.();return}g(a)&&b.target instanceof Node&&g(a).contains(b.target)&&b.key==="Enter"&&(b.target?.tagName==="INPUT"||b.target?.tagName==="SELECT")&&(b.preventDefault(),p())}let v=null;function p(){const b=Ct(g(i)[0]?.name??""),A=hl(b);if(!A.ok){K(o,{kind:"error",message:A.reason},!0);return}const S=bl({rootId:t.rootId,rows:g(i),mode:g(n),syncLabels:g(r)});S.ok?(K(o,{kind:"success",message:`Applied to ${S.count} element${S.count!==1?"s":""}.`},!0),v&&clearTimeout(v),v=setTimeout(()=>t.onClose?.(),800)):K(o,{kind:"error",message:S.error},!0)}Fr(()=>()=>{v&&clearTimeout(v)});var k=Vl();No("keydown",wr,_);var h=on(k),m=P(h),N=P(m),L=I(P(N)),R=P(L),G=I(N,2),te=I(m,2),q=P(te),ae=I(P(q),2),fe=P(ae);fe.value=fe.__value="add";var D=I(fe);D.value=D.__value="rename";var De=I(D);De.value=De.__value="replace";var ft=I(De);ft.value=ft.__value="modifier";var yn=I(ft);yn.value=yn.__value="migrate";var kn=I(q,2),En=P(kn),Sn=I(te,2);{var er=b=>{var A=Gl();let S;var z=I(P(A)),ue=P(z),Re=I(z),F=I(Re);{var pe=ne=>{var Y=Ul(),ge=P(Y);ve(()=>Se(ge,`${g(c).willSkip??""} key${g(c).willSkip===1?"":"s"} not on the allowlist will stay on the element.`)),W(ne,Y)};ke(F,ne=>{g(c).willSkip>0&&ne(pe)})}ve(()=>{S=zr(A,1,"rebemer-panel__notice",null,S,{"rebemer-panel__notice--warn":g(c).willSkip>0}),Se(ue,g(c).willMigrate),Se(Re,` style key${g(c).willMigrate===1?"":"s"} into new classes. `)}),W(b,A)};ke(Sn,b=>{g(c)&&b(er)})}var T=I(Sn,2);Qi(T,23,()=>g(i),b=>b.id,(b,A,S)=>{{let z=Ce(()=>g(A).id===t.rootId),ue=Ce(()=>g(d).get(g(A).id)??"");zl(b,{get mode(){return g(n)},get blockName(){return g(l)},get isRoot(){return g(z)},get globalClasses(){return g(s)},get finalClassName(){return g(ue)},get row(){return g(i)[g(S)]},set row(Re){g(i)[g(S)]=Re}})}});var V=I(T,2),Oe=P(V),Zt=I(Oe,2);$o(h,b=>K(a,b),()=>g(a));var Xt=I(h,2);{var Be=b=>{Kl(b,{get kind(){return g(o).kind},get message(){return g(o).message},onDismiss:()=>{K(o,null)}})};ke(Xt,b=>{g(o)&&b(Be)})}ve(()=>{Se(R,g(u)),En.disabled=g(n)==="modifier"}),ot("click",G,()=>t.onClose?.()),Yo(ae,()=>g(n),b=>K(n,b)),es(En,()=>g(r),b=>K(r,b)),ot("click",Oe,()=>t.onClose?.()),ot("click",Zt,p),W(e,k),mn()}Zn(["click"]);const ii="#bricks-structure",Yl="li[data-id]",si="slashed-rebemer-host",Jl=400,Zl=25,$n=(e,...t)=>console[e]("[reBEMer]",...t),os=new AbortController,{signal:Hr}=os,At=new Map;let nn=null;function Xl(){let e=document.getElementById(si);return e||(e=document.createElement("div"),e.id=si,document.body.appendChild(e)),e}function oi(){let e=0;const t=()=>{if(!Hr.aborted){if(il()){Ql();return}if(++e>=Zl){$n("warn","Bricks Vue app not detected after grace window — reBEMer disabled on this page.");return}setTimeout(t,Jl)}};t()}function Ql(){const e=document.querySelector(ii);if(e){li(e);return}const t=new MutationObserver(()=>{const n=document.querySelector(ii);n&&(t.disconnect(),li(n))});t.observe(document.body,{childList:!0,subtree:!0}),Hr.addEventListener("abort",()=>t.disconnect(),{once:!0})}function li(e){let t=null;const n=()=>{t===null&&(t=setTimeout(()=>{t=null,ai(e)},50))},r=new MutationObserver(n);r.observe(e,{childList:!0,subtree:!0}),Hr.addEventListener("abort",()=>{r.disconnect(),t!==null&&clearTimeout(t)},{once:!0}),ai(e)}function ai(e){for(const[n,r]of At)if(!r.host.isConnected){try{Xn(r.instance)}catch(i){$n("warn","badge unmount failed",i)}At.delete(n)}const t=e.querySelectorAll(Yl);for(const n of t){const r=n.getAttribute("data-id");if(!r)continue;const i=At.get(r);i&&i.host.isConnected&&n.contains(i.host)||$l(n)}}function $l(e){const t=e.getAttribute("data-id");if(!t)return;const n=e.querySelector(":scope > .structure-item")||e,r=n.querySelector(":scope > ul.actions")||n.querySelector(":scope > .actions")||n.querySelector(":scope > .structure-item-actions"),i=document.createElement("span");i.className="rebemer-badge-host",r?n.insertBefore(i,r):n.appendChild(i);const s=n.querySelector(":scope > .title, :scope > .structure-item-title, :scope > .name, :scope .label"),o=s?s.textContent.trim():"",a=Xi(cl,{target:i,props:{elementId:t,label:o,onActivate:ea}}),l=At.get(t);if(l){try{Xn(l.instance)}catch(u){$n("warn","badge remount cleanup failed",u)}l.host.isConnected&&l.host.remove()}At.set(t,{instance:a,host:i})}function ea(e){Ar();const t=document.createElement("div");Xl().appendChild(t),nn={instance:Xi(Wl,{target:t,props:{rootId:e,onClose:Ar}}),node:t}}function Ar(){if(nn){try{Xn(nn.instance)}catch(e){$n("warn","panel unmount failed",e)}nn.node.remove(),nn=null}}window.addEventListener("beforeunload",()=>{os.abort(),Ar();for(const{instance:e}of At.values())try{Xn(e)}catch{}At.clear()},{once:!0});document.readyState==="loading"?document.addEventListener("DOMContentLoaded",oi,{once:!0}):oi(); //# sourceMappingURL=app.js.map diff --git a/integrations/bricks/editor-app/src/components/BemPanel.svelte b/integrations/bricks/editor-app/src/components/BemPanel.svelte index 22344481..651bd43b 100644 --- a/integrations/bricks/editor-app/src/components/BemPanel.svelte +++ b/integrations/bricks/editor-app/src/components/BemPanel.svelte @@ -26,7 +26,7 @@ import { slugify } from '../lib/slugify.js'; import { validateName } from '../lib/validate.js'; import { applyToSubtree, buildPlan } from '../lib/apply.js'; - import { suggestElementName, isLayoutContainer } from '../lib/element-types.js'; + import { suggestElementName, isLayoutContainer, suggestContainerName, SOLE_CHILD_LABEL_OVERRIDES } from '../lib/element-types.js'; import { pickMigratableKeys, pickSkippedKeys } from '../lib/migrate-keys.js'; import Row from './Row.svelte'; import Toast from './Toast.svelte'; @@ -91,7 +91,8 @@ const subtree = api.getSubtree(rootId); globalClassesAtOpen = api.getGlobalClasses().slice(); - rows = subtree.map((el, i) => { + // Pass 1: basic name seeding from labels and element types. + const seeded = subtree.map((el, i) => { const isRoot = i === 0; const label = el.label || ''; const labelSlug = slugify(label); @@ -100,7 +101,6 @@ let name; let suggestedFrom; if (labelSlug) { - // The user already named this thing — trust it. name = labelSlug; suggestedFrom = 'label'; } else if (isRoot) { @@ -123,13 +123,64 @@ modifier: '', include: true, suggestedFrom, - // Pre-computed from the element's current settings; used in - // 'migrate' mode for the chip-strip preview and as the source - // of truth for which keys get lifted at apply time. migrateKeys: pickMigratableKeys(el.settings), skippedKeys: pickSkippedKeys(el.settings), }; }); + + // Pass 2: context-aware refinement using parent→children relationships. + // Skips user-labelled elements (suggestedFrom === 'label'). + if (seeded.length > 1) { + // Build parent → direct child ids map using a depth-tracking stack. + const childrenOf = new Map(subtree.map(e => [e.id, []])); + const stack = []; + for (const el of subtree) { + while (stack.length && stack[stack.length - 1].depth >= el.depth) stack.pop(); + if (stack.length) childrenOf.get(stack[stack.length - 1].id).push(el.id); + stack.push(el); + } + + const elById = new Map(subtree.map(e => [e.id, e])); + const rowById = new Map(seeded.map(r => [r.id, r])); + + for (const [, childIds] of childrenOf) { + if (!childIds.length) continue; + + // Count how many children share each element type. + const typeCount = new Map(); + for (const id of childIds) { + const t = elById.get(id)?.name; + if (t) typeCount.set(t, (typeCount.get(t) ?? 0) + 1); + } + + // Layout-container children in document order (for positional hints). + const containerIds = childIds.filter(id => isLayoutContainer(elById.get(id)?.name ?? '')); + + for (const id of childIds) { + const row = rowById.get(id); + const el = elById.get(id); + if (!row || !el || row.suggestedFrom === 'label') continue; + + if (isLayoutContainer(el.name)) { + // Infer container role from its children's types. + const gcTypes = (childrenOf.get(id) ?? []) + .map(gcId => elById.get(gcId)?.name ?? '').filter(Boolean); + const pos = containerIds.indexOf(id); + row.name = suggestContainerName(gcTypes, pos, containerIds.length); + row.suggestedFrom = 'element-type'; + } else if ((typeCount.get(el.name) ?? 0) === 1) { + // Sole element of its type → apply semantic override if available. + const override = SOLE_CHILD_LABEL_OVERRIDES[el.name]; + if (override) { + row.name = override; + row.suggestedFrom = 'element-type'; + } + } + } + } + } + + rows = seeded; }); function handleKeydown(e) { diff --git a/integrations/bricks/editor-app/src/components/Row.svelte b/integrations/bricks/editor-app/src/components/Row.svelte index 457ea832..e4dedc80 100644 --- a/integrations/bricks/editor-app/src/components/Row.svelte +++ b/integrations/bricks/editor-app/src/components/Row.svelte @@ -41,7 +41,6 @@ const showModifier = $derived(mode === 'modifier'); const showMigrate = $derived(mode === 'migrate'); const prefix = $derived(!isRoot && blockName ? `${blockName}__` : ''); - const indent = $derived(Math.min(row.depth ?? 0, 3)); /** Style suggested vs user-typed names differently so the user can * see at a glance which rows reBEMer pre-filled. */ @@ -75,7 +74,7 @@ class="rebemer-row" class:rebemer-row--disabled={!row.include} class:rebemer-row--suggested={isSuggested} - data-depth={indent} + style="--rebemer-row-depth: {row.depth ?? 0}" >