@webx-ui/module-blocks 0.14.0 → 0.16.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/preview.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import { InjectionKey, Ref } from 'vue';
2
- import { BlockType } from './types';
2
+ import { BlockNode, BlockType } from './types';
3
3
  /**
4
4
  * What the page hosting a constructor knows and the constructor does not: where the preview
5
5
  * of the entity is. The address is `Preview::url()` on the server — signed, short-lived, one
@@ -37,6 +37,11 @@ export interface BlocksTop {
37
37
  allow?: string[] | null;
38
38
  /** How many blocks the top level may hold. */
39
39
  max?: number | null;
40
+ /**
41
+ * The region the preview frames and scrolls to: a shared block, which stands wherever a page
42
+ * put it. A header needs neither — it is at the top of every page.
43
+ */
44
+ frame?: string | null;
40
45
  }
41
46
  export declare const blocksTopKey: InjectionKey<Readonly<Ref<BlocksTop | null>>>;
42
47
  /** Called by the hosting screen, above the `wx-blocks` field. */
@@ -53,3 +58,19 @@ export declare const blocksRootKey: InjectionKey<boolean>;
53
58
  * in this block. A ref, because the editor's settings are the draft, not the published type.
54
59
  */
55
60
  export declare const blocksOwnerKey: InjectionKey<Ref<BlockType | null>>;
61
+ /**
62
+ * What a «Shared block» form needs of the constructor it is open in, and a field drawn by the
63
+ * renderer cannot reach otherwise: which block it is, and the way to put others in its place.
64
+ */
65
+ export interface BlocksFragmentHost {
66
+ /** The key of the block whose form is open — the one a field in that form belongs to. */
67
+ selected: Readonly<Ref<string | null>>;
68
+ /** The shared block this constructor edits, when it edits one: never offered inside itself. */
69
+ own: Readonly<Ref<string | null>>;
70
+ /**
71
+ * Put these blocks where the block with this key stands, and open the first of them. Whether it
72
+ * was done — the panel on the site writes it to the draft first, and the draft may refuse.
73
+ */
74
+ detach(key: string, nodes: BlockNode[]): boolean | Promise<boolean>;
75
+ }
76
+ export declare const blocksFragmentKey: InjectionKey<BlocksFragmentHost>;
package/dist/style.css CHANGED
@@ -1 +1 @@
1
- .wx-block-data[data-v-b994c835]{display:flex;flex-direction:column;gap:var(--wx-space-4);min-width:0}.wx-block-checks[data-v-190a86a9]{display:flex;flex-direction:column;gap:var(--wx-space-4);padding:var(--wx-space-8) var(--wx-space-12);font-size:var(--wx-font-size-sm);border-block-start:1px solid var(--wx-border-muted)}.wx-block-checks__line[data-v-190a86a9]{display:flex;gap:var(--wx-space-8);align-items:flex-start}.wx-block-checks__line .wx-icon[data-v-190a86a9]{flex:none;margin-block-start:2px}.is-ok[data-v-190a86a9]{color:var(--wx-text-muted)}.is-ok .wx-icon[data-v-190a86a9]{color:var(--wx-color-success)}.is-warning[data-v-190a86a9]{color:var(--wx-color-warning)}.is-error[data-v-190a86a9]{color:var(--wx-color-danger)}.wx-block-export[data-v-8e2e559a]{display:flex;flex-direction:column;gap:var(--wx-space-12)}.wx-block-export__list[data-v-8e2e559a]{display:flex;flex-direction:column;max-height:320px;margin:0;padding:0;overflow-y:auto;list-style:none;border:1px solid var(--wx-border-default);border-radius:var(--wx-radius-md)}.wx-block-export__check[data-v-8e2e559a]{display:flex;width:100%;box-sizing:border-box;padding:var(--wx-space-8) var(--wx-space-12)}.wx-block-export__check[data-v-8e2e559a] .wx-checkbox__label{display:flex;flex:1;align-items:center;justify-content:space-between;gap:var(--wx-space-12);min-width:0}.wx-block-export__row+.wx-block-export__row[data-v-8e2e559a]{border-top:1px solid var(--wx-border-default)}.wx-block-export__title[data-v-8e2e559a]{margin-right:var(--wx-space-6)}.wx-block-export__meta[data-v-8e2e559a],.wx-block-export__version[data-v-8e2e559a]{font-size:var(--wx-font-size-xs);color:var(--wx-text-muted)}.wx-block-export__version[data-v-8e2e559a]{flex-shrink:0}.wx-block-export__drafts[data-v-8e2e559a]{display:flex;flex-direction:column;gap:var(--wx-space-4)}.wx-block-history[data-v-42c6b7ad]{display:flex;flex-direction:column}.wx-block-history__ghost[data-v-42c6b7ad]{padding:var(--wx-space-10) var(--wx-space-12)}.wx-block-history__row[data-v-42c6b7ad]{display:flex;align-items:center;gap:var(--wx-space-12);padding:var(--wx-space-10) var(--wx-space-12);border-block-end:1px solid var(--wx-border-muted);flex-wrap:wrap}.wx-block-history__row[data-v-42c6b7ad]:last-child{border-block-end:0}.wx-block-history__number[data-v-42c6b7ad]{width:40px;font-family:var(--wx-font-family-mono);font-size:var(--wx-font-size-sm);color:var(--wx-text-muted)}.wx-block-history__who[data-v-42c6b7ad]{display:flex;flex-direction:column;flex:1;min-width:160px}.wx-block-stage[data-v-3185ee45]{display:flex;flex-direction:column;border:1px solid var(--wx-border-default);border-radius:var(--wx-radius-md);background:var(--wx-bg-surface);overflow:hidden}.wx-block-stage__bar[data-v-3185ee45]{display:flex;justify-content:space-between;gap:var(--wx-space-8);padding:var(--wx-space-8) var(--wx-space-12);border-block-end:1px solid var(--wx-border-muted)}.wx-block-stage__ground[data-v-3185ee45]{padding:var(--wx-space-12);background:var(--wx-bg-subtle)}.wx-block-stage__clip[data-v-3185ee45]{overflow:hidden;margin-inline:auto;box-shadow:var(--wx-shadow-sm)}.wx-block-stage__frame[data-v-3185ee45]{display:block;border:0;background:#fff;transform-origin:top left}.wx-block-editor[data-v-48107b79]{display:flex;flex-direction:column;gap:var(--wx-gap, var(--wx-space-16));container-type:inline-size}.wx-block-editor__ghost-head[data-v-48107b79]{max-width:420px}.wx-block-editor__columns[data-v-48107b79]{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:var(--wx-gap, var(--wx-space-16));align-items:start}.wx-block-editor__columns.is-alone[data-v-48107b79]{grid-template-columns:minmax(0,1fr)}.wx-block-editor__split[data-v-48107b79]{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:var(--wx-gap, var(--wx-space-16));align-items:start}@container (max-width: 1080px){.wx-block-editor__columns[data-v-48107b79],.wx-block-editor__split[data-v-48107b79]{grid-template-columns:minmax(0,1fr)}}.wx-block-editor__call[data-v-48107b79]{min-width:0}.wx-block-editor__call[data-v-48107b79] .wx-card__body{display:flex;flex-direction:column;gap:var(--wx-space-10)}.wx-block-editor__call-tag[data-v-48107b79]{display:flex;flex-wrap:wrap;align-items:flex-start;gap:var(--wx-space-8)}.wx-block-editor__call-tag pre[data-v-48107b79]{flex:1 1 240px;min-width:0;margin:0;padding:var(--wx-space-10) var(--wx-space-12);border-radius:var(--wx-radius-sm);background:var(--wx-bg-subtle);overflow-x:auto}.wx-block-editor__call-tag code[data-v-48107b79]{line-height:1.6;color:var(--wx-text-default);white-space:pre}.wx-block-editor__shape[data-v-48107b79]{display:flex;flex-direction:column;gap:var(--wx-space-6)}.wx-block-editor__shape-fields[data-v-48107b79]{display:grid;grid-template-columns:minmax(0,max-content) minmax(0,1fr);gap:var(--wx-space-4) var(--wx-space-12);margin:0;font-size:var(--wx-font-size-sm)}.wx-block-editor__shape-fields dt[data-v-48107b79]{display:flex;flex-wrap:wrap;align-items:baseline;gap:var(--wx-space-6)}.wx-block-editor__shape-fields dd[data-v-48107b79]{margin:0;color:var(--wx-text-muted)}.wx-block-editor__shape-type[data-v-48107b79]{font-size:var(--wx-font-size-xs);color:var(--wx-text-muted)}@container (max-width: 520px){.wx-block-editor__shape-fields[data-v-48107b79]{grid-template-columns:minmax(0,1fr)}.wx-block-editor__shape-fields dd[data-v-48107b79]{margin-block-end:var(--wx-space-6)}}.wx-block-editor__examples[data-v-48107b79]{min-width:0}.wx-block-editor__example+.wx-block-editor__example[data-v-48107b79]{margin-block-start:var(--wx-space-12)}.wx-block-editor__example pre[data-v-48107b79]{margin:var(--wx-space-4) 0 0;padding:var(--wx-space-10) var(--wx-space-12);border-radius:var(--wx-radius-sm);background:var(--wx-bg-subtle);overflow-x:auto}.wx-block-editor__example code[data-v-48107b79]{font-family:var(--wx-font-family-mono);font-size:var(--wx-font-size-xs);line-height:1.6;color:var(--wx-text-default);white-space:pre}.wx-block-editor__stage[data-v-48107b79]{position:sticky;top:var(--wx-space-12)}.wx-block-editor__pane[data-v-48107b79]{display:flex;flex-direction:column;border:1px solid var(--wx-border-default);border-radius:var(--wx-radius-md);overflow:hidden}.wx-block-editor__pane[data-v-48107b79] .wx-code-editor{border:0;border-radius:0}.wx-block-editor__sample[data-v-48107b79]{min-width:0}.wx-block-editor__pills[data-v-48107b79]{display:flex;flex-wrap:wrap;align-items:center;gap:var(--wx-space-6);padding:var(--wx-space-8) var(--wx-space-12);border-block-start:1px solid var(--wx-border-muted)}.wx-block-editor__pill[data-v-48107b79]{padding:2px var(--wx-space-8);border:1px solid var(--wx-border-default);border-radius:var(--wx-radius-full);background:var(--wx-bg-surface);color:var(--wx-color-primary);font-family:var(--wx-font-family-mono);font-size:var(--wx-font-size-xs);cursor:pointer}.wx-block-editor__pill[data-v-48107b79]:hover:not(:disabled){border-color:var(--wx-color-primary)}.wx-block-editor__note[data-v-48107b79]{display:flex;align-items:center;gap:var(--wx-space-8);padding:var(--wx-space-8) var(--wx-space-12);border-block-start:1px solid var(--wx-border-muted)}.wx-block-editor__note[data-v-48107b79]>:first-child{flex:1 1 auto;min-width:0}.wx-block-editor__sheet[data-v-48107b79]{min-width:0}.wx-block-editor__settings[data-v-48107b79]{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:var(--wx-space-12) var(--wx-space-16)}.wx-block-editor__settings .is-wide[data-v-48107b79]{grid-column:1 / -1}.wx-block-editor__danger[data-v-48107b79]{display:flex;align-items:center;gap:var(--wx-space-12);flex-wrap:wrap}.wx-block-editor__uses[data-v-48107b79]{padding:0;border:0;background:none;font:inherit;color:var(--wx-text-link);cursor:pointer}.wx-block-editor__uses[data-v-48107b79]:hover{text-decoration:underline;text-underline-offset:.2em}.wx-block-editor__uses[data-v-48107b79]:focus-visible{outline:none;border-radius:var(--wx-radius-xs);box-shadow:var(--wx-ring-focus)}.wx-block-editor__usage[data-v-48107b79]{display:flex;flex-direction:column;gap:var(--wx-space-6)}.wx-block-editor__use[data-v-48107b79]{display:flex;align-items:center;gap:var(--wx-space-8)}a.wx-block-editor__use[data-v-48107b79]{color:var(--wx-text-link);text-decoration:none}a.wx-block-editor__use[data-v-48107b79]:hover{text-decoration:underline;text-underline-offset:.2em}code[data-v-48107b79]{font-family:var(--wx-font-family-mono);font-size:var(--wx-font-size-xs)}.wx-block-move[data-v-41c2ff3e]{display:flex;flex-direction:column;gap:var(--wx-space-4)}.wx-block-move__place[data-v-41c2ff3e]{display:flex;align-items:center;gap:var(--wx-space-10);width:100%;padding:var(--wx-space-10) var(--wx-space-12);font:inherit;text-align:start;color:inherit;background:transparent;border:1px solid var(--wx-border-default);border-radius:var(--wx-radius-control);cursor:pointer}.wx-block-move__place[data-v-41c2ff3e]:hover:not(:disabled),.wx-block-move__place[data-v-41c2ff3e]:focus-visible{border-color:var(--wx-color-primary);background:var(--wx-color-primary-soft);outline:none}.wx-block-move__place[data-v-41c2ff3e]:disabled{opacity:.6;cursor:not-allowed}.wx-block-move__trail[data-v-41c2ff3e]{display:flex;flex:1;flex-wrap:wrap;gap:var(--wx-space-4);min-width:0;color:var(--wx-text-muted)}.wx-block-move__trail .is-last[data-v-41c2ff3e],.wx-block-move__trail[data-v-41c2ff3e]:not(:has(span)){color:var(--wx-text-default);font-weight:var(--wx-font-weight-medium)}.wx-block-move__sep[data-v-41c2ff3e]{color:var(--wx-text-muted)}.wx-block-thumb[data-v-da4a6eb8]{position:relative;overflow:hidden;background:var(--wx-bg-subtle)}.wx-block-thumb__frame[data-v-da4a6eb8]{position:absolute;inset-block-start:0;inset-inline-start:0;border:0;transform-origin:top left;pointer-events:none;background:#fff}.wx-block-thumb__empty[data-v-da4a6eb8]{display:grid;place-items:center;height:100%;color:var(--wx-text-muted)}.wx-block-thumb__empty.is-blank[data-v-da4a6eb8]{place-content:center;gap:var(--wx-space-4);padding:var(--wx-space-8);text-align:center}.wx-block-picker[data-v-87f5880b]{display:flex;flex-direction:column;gap:var(--wx-space-16)}.wx-block-picker__group[data-v-87f5880b]{display:flex;flex-direction:column;gap:var(--wx-space-8)}.wx-block-picker__group-title[data-v-87f5880b]{font-size:var(--wx-font-size-xs);font-weight:var(--wx-font-weight-semibold);letter-spacing:.06em;text-transform:uppercase;color:var(--wx-text-muted)}.wx-block-picker__cards[data-v-87f5880b]{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:var(--wx-space-12)}.wx-block-picker__card[data-v-87f5880b]{display:flex;flex-direction:column;padding:0;overflow:hidden;text-align:start;font:inherit;color:inherit;background:var(--wx-bg-surface);border:1px solid var(--wx-border-default);border-radius:var(--wx-radius-md);cursor:pointer}.wx-block-picker__card[data-v-87f5880b]:hover:not(:disabled),.wx-block-picker__card[data-v-87f5880b]:focus-visible{border-color:var(--wx-color-primary);outline:none}.wx-block-picker__card.is-disabled[data-v-87f5880b]{opacity:.6;cursor:not-allowed}.wx-block-picker__body[data-v-87f5880b]{display:flex;flex-direction:column;gap:var(--wx-space-4);padding:var(--wx-space-10) var(--wx-space-12)}.wx-block-picker__title[data-v-87f5880b]{font-weight:var(--wx-font-weight-semibold)}.wx-blocks-preview[data-v-0519579f]{box-sizing:border-box;display:flex;flex-direction:column;border:1px solid var(--wx-border-default);border-radius:var(--wx-radius-md);background:var(--wx-bg-surface);overflow:clip;min-width:0}.wx-blocks-preview.is-fullscreen[data-v-0519579f]{position:fixed;inset:0;z-index:var(--wx-z-index-overlay);border:0;border-radius:0}.wx-blocks-preview__bar[data-v-0519579f]{display:flex;align-items:center;justify-content:space-between;gap:var(--wx-space-8);padding:var(--wx-space-8) var(--wx-space-12);border-block-end:1px solid var(--wx-border-muted)}.wx-blocks-preview:not(.is-fullscreen) .wx-blocks-preview__bar[data-v-0519579f]{position:sticky;top:0;z-index:1;background:var(--wx-bg-surface)}.wx-blocks-preview__label[data-v-0519579f]{flex:1 1 0;min-width:0;font-family:var(--wx-font-family-mono)}.wx-blocks-preview__widths[data-v-0519579f]{flex:none}.wx-blocks-preview__tools[data-v-0519579f]{display:flex;flex:1 1 0;gap:var(--wx-space-4);align-items:center;justify-content:flex-end}.wx-blocks-preview__ground[data-v-0519579f]{flex:1;padding:var(--wx-space-12);background:var(--wx-bg-subtle);overflow:auto;max-height:calc(100vh - 200px)}.is-fullscreen .wx-blocks-preview__ground[data-v-0519579f]{max-height:none}.is-compact .wx-blocks-preview__ground[data-v-0519579f]{padding-inline:0}.is-grown:not(.is-fullscreen) .wx-blocks-preview__ground[data-v-0519579f]{overflow:visible;max-height:none}.wx-blocks-preview__clip[data-v-0519579f]{margin-inline:auto;overflow:hidden;box-shadow:var(--wx-shadow-sm)}.wx-blocks-preview__frame[data-v-0519579f]{display:block;border:0;background:#fff;height:min(72vh,720px);transform-origin:top left}.wx-blocks-tree[data-v-e3ea187a] .wx-sortable-list__content{min-width:0}.wx-blocks-tree__node[data-v-e3ea187a]{display:flex;flex-direction:column;gap:var(--wx-space-2);min-width:0}.wx-blocks-tree__row[data-v-e3ea187a]{display:flex;align-items:center;gap:var(--wx-space-8);padding:var(--wx-space-6) var(--wx-space-8);border:1px solid transparent;border-radius:var(--wx-radius-control);cursor:pointer}.wx-blocks-tree__row[data-v-e3ea187a]:hover{background:var(--wx-bg-subtle)}.wx-blocks-tree__row.is-selected[data-v-e3ea187a]{background:var(--wx-color-primary-soft);border-color:var(--wx-color-primary)}.wx-blocks-tree__name[data-v-e3ea187a]{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:var(--wx-font-size-sm);font-weight:var(--wx-font-weight-medium)}.wx-blocks-tree__row.is-hidden .wx-blocks-tree__name[data-v-e3ea187a]{opacity:.55}.wx-blocks-tree__flag[data-v-e3ea187a]{display:flex;color:var(--wx-text-muted)}.wx-blocks-tree__flag.is-warning[data-v-e3ea187a]{color:var(--wx-color-warning)}.wx-blocks-tree__flag.is-danger[data-v-e3ea187a]{color:var(--wx-color-danger)}.wx-blocks-tree__actions[data-v-e3ea187a]{display:flex;flex:none}@media(pointer:coarse){.wx-blocks-tree__actions[data-v-e3ea187a] .wx-actions__menu .wx-action{--wx-action-size: 32px;position:relative}.wx-blocks-tree__actions[data-v-e3ea187a] .wx-actions__menu .wx-action:after{content:"";position:absolute;inset:-6px}}.wx-blocks-tree__kids[data-v-e3ea187a]{display:flex;flex-direction:column;gap:var(--wx-space-2);margin-inline-start:var(--wx-space-14);padding-inline-start:var(--wx-space-8);border-inline-start:1px dashed var(--wx-border-default)}.wx-blocks-tree__add[data-v-e3ea187a]{width:100%;padding:var(--wx-space-6);border:1px dashed var(--wx-border-strong);border-radius:var(--wx-radius-control);background:transparent;color:var(--wx-text-muted);font:inherit;font-size:var(--wx-font-size-xs);cursor:pointer}.wx-blocks-tree__add[data-v-e3ea187a]:hover:not(:disabled){color:var(--wx-color-primary);border-color:var(--wx-color-primary);background:var(--wx-color-primary-soft)}.wx-blocks-tree__add[data-v-e3ea187a]:disabled{cursor:not-allowed;border-style:solid;border-color:var(--wx-border-default)}.wx-blocks-tree__row.is-invalid[data-v-e3ea187a]{border-color:var(--wx-color-danger)}.wx-blocks-host[data-v-d3289873]{container-type:inline-size}.wx-blocks[data-v-d3289873]{display:grid;grid-template-columns:clamp(360px,34%,520px) minmax(0,1fr);gap:var(--wx-gap, var(--wx-space-16));align-items:start}.wx-blocks[data-v-d3289873]:not(.has-preview){grid-template-columns:minmax(0,1fr)}.wx-blocks__tree[data-v-d3289873],.wx-blocks__fields[data-v-d3289873]{display:flex;flex-direction:column;gap:var(--wx-space-8);padding:var(--wx-space-8);border:1px solid var(--wx-border-default);border-radius:var(--wx-radius-md);background:var(--wx-bg-surface);min-width:0}.wx-blocks__panel-head[data-v-d3289873]{display:flex;align-items:center;justify-content:space-between;gap:var(--wx-space-8);padding:var(--wx-space-4) var(--wx-space-6)}.wx-blocks__panel-title[data-v-d3289873]{display:flex;align-items:center;gap:var(--wx-space-4);min-width:0;font-weight:var(--wx-font-weight-semibold)}.wx-blocks__panel-name[data-v-d3289873]{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.wx-drawer .wx-blocks__fields .wx-blocks__panel-title[data-v-d3289873]{display:none}.wx-blocks__trail[data-v-d3289873]{display:flex;align-items:center;gap:var(--wx-space-4);min-width:0;color:var(--wx-text-muted);font-weight:var(--wx-font-weight-regular);font-size:var(--wx-font-size-sm)}.wx-blocks__trail-step[data-v-d3289873]{padding:0;border:0;background:none;color:inherit;font:inherit;cursor:pointer;white-space:nowrap}.wx-blocks__trail-step[data-v-d3289873]:hover{color:var(--wx-text-default);text-decoration:underline}.wx-blocks__panel-extra[data-v-d3289873]{display:flex;align-items:center;gap:var(--wx-space-8)}.wx-blocks__form[data-v-d3289873]{padding:var(--wx-space-6)}.wx-blocks__refusals[data-v-d3289873]{display:flex;flex-direction:column;gap:var(--wx-space-4);padding:var(--wx-space-6) var(--wx-space-8);border-radius:var(--wx-radius-control);background:var(--wx-color-danger-soft)}.wx-blocks-host:not(.is-compact) .wx-blocks__side[data-v-d3289873]{min-width:0;position:sticky;top:var(--wx-space-12);max-height:calc(100dvh - var(--wx-space-24) - var(--wx-action-bar-room, 0px));display:flex;flex-direction:column}.wx-blocks-host:not(.is-compact) .wx-blocks__tree[data-v-d3289873],.wx-blocks-host:not(.is-compact) .wx-blocks__fields[data-v-d3289873]{min-height:0;overflow:clip}.wx-blocks__panel-head[data-v-d3289873]{flex:none}.wx-blocks-host:not(.is-compact) .wx-blocks__list[data-v-d3289873],.wx-blocks-host:not(.is-compact) .wx-blocks__form[data-v-d3289873]{min-height:0;overflow:auto;overscroll-behavior:contain}.wx-blocks-host:not(.is-compact) .wx-blocks__list[data-v-d3289873]{padding:var(--wx-space-2);margin:calc(-1 * var(--wx-space-2))}.wx-blocks__preview[data-v-d3289873]{min-width:0;position:sticky;top:var(--wx-space-12)}.wx-blocks__preview[data-v-d3289873]:has(.is-grown),.wx-blocks__preview[data-v-d3289873]:has(.is-fullscreen){position:static}.wx-blocks__tools[data-v-d3289873]{display:flex;align-items:center;flex-wrap:wrap;gap:var(--wx-space-8);flex:none}.wx-blocks__add[data-v-d3289873],.wx-blocks__preview-button[data-v-d3289873]{flex:1 1 auto;min-width:0}.wx-blocks__preview-button[data-v-d3289873]{display:none;flex:none}.wx-blocks-host.is-compact .wx-blocks[data-v-d3289873],.wx-blocks-host.is-compact .wx-blocks.has-preview[data-v-d3289873]{grid-template-columns:minmax(0,1fr)}.wx-drawer .wx-blocks__tree[data-v-d3289873],.wx-drawer .wx-blocks__fields[data-v-d3289873]{border:0;padding:0;background:none}code[data-v-d3289873]{font-family:var(--wx-font-family-mono);font-size:var(--wx-font-size-xs);color:var(--wx-text-muted)}.wx-block-card[data-v-1d29dfee]{display:flex;flex-direction:column;width:100%;padding:0;overflow:hidden;text-align:start;font:inherit;color:inherit;background:var(--wx-bg-surface);border:1px solid var(--wx-border-default);border-radius:var(--wx-radius-md);cursor:pointer}.wx-block-card[data-v-1d29dfee]:hover,.wx-block-card[data-v-1d29dfee]:focus-visible{border-color:var(--wx-color-primary);outline:none}.wx-block-card__body[data-v-1d29dfee]{display:flex;flex-direction:column;gap:var(--wx-space-6);padding:var(--wx-space-12) var(--wx-space-14)}.wx-block-card__title[data-v-1d29dfee]{font-weight:var(--wx-font-weight-semibold)}.wx-block-card__chips[data-v-1d29dfee]{display:flex;flex-wrap:wrap;gap:var(--wx-space-6)}code[data-v-1d29dfee]{font-family:var(--wx-font-family-mono);font-size:var(--wx-font-size-xs)}.wx-block-create[data-v-585106f0]{display:flex;flex-direction:column;gap:var(--wx-space-12)}.wx-block-create__kinds[data-v-585106f0]{gap:var(--wx-space-10)}.wx-block-create__kinds[data-v-585106f0] .wx-radio{align-items:flex-start}.wx-block-create__kind[data-v-585106f0]{display:block;font-weight:var(--wx-font-weight-medium)}.wx-block-create__kind-help[data-v-585106f0]{display:block;font-size:var(--wx-font-size-sm);color:var(--wx-text-muted)}.wx-block-declared[data-v-3c4079a4]{display:flex;flex-direction:column;min-width:0;overflow:hidden;background:var(--wx-bg-surface);border:1px dashed var(--wx-border-strong);border-radius:var(--wx-radius-md)}.wx-block-declared__mark[data-v-3c4079a4]{display:flex;align-items:center;justify-content:center;height:120px;font-size:32px;color:var(--wx-text-muted);background:var(--wx-bg-subtle);border-block-end:1px dashed var(--wx-border-default)}.wx-block-declared__body[data-v-3c4079a4]{display:flex;flex:1 1 auto;flex-direction:column;gap:var(--wx-space-6);padding:var(--wx-space-12) var(--wx-space-14)}.wx-block-declared__title[data-v-3c4079a4]{font-weight:var(--wx-font-weight-semibold)}.wx-block-declared__actions[data-v-3c4079a4]{margin-block-start:auto;padding-block-start:var(--wx-space-4)}code[data-v-3c4079a4]{font-family:var(--wx-font-family-mono);font-size:var(--wx-font-size-xs)}.wx-block-import[data-v-fa299c07]{display:flex;flex-direction:column;gap:var(--wx-space-12)}.wx-block-import__file[data-v-fa299c07]{display:flex;align-items:center;justify-content:space-between;gap:var(--wx-space-8);min-width:0}.wx-block-import__name[data-v-fa299c07]{overflow:hidden;font-weight:var(--wx-font-weight-medium);text-overflow:ellipsis;white-space:nowrap}.wx-block-import__list[data-v-fa299c07]{display:flex;flex-direction:column;max-height:340px;margin:0;padding:0;overflow-y:auto;list-style:none;border:1px solid var(--wx-border-default);border-radius:var(--wx-radius-md)}.wx-block-import__row[data-v-fa299c07]{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--wx-space-12);padding:var(--wx-space-8) var(--wx-space-12)}.wx-block-import__row+.wx-block-import__row[data-v-fa299c07]{border-top:1px solid var(--wx-border-default)}.wx-block-import__type[data-v-fa299c07]{display:flex;flex-direction:column;gap:var(--wx-space-2);min-width:0}.wx-block-import__meta[data-v-fa299c07]{font-size:var(--wx-font-size-xs);color:var(--wx-text-muted)}.wx-block-import__error[data-v-fa299c07]{font-size:var(--wx-font-size-xs);color:var(--wx-color-danger);overflow-wrap:anywhere}.wx-block-import__error.is-warning[data-v-fa299c07]{color:var(--wx-color-warning)}.wx-blocks-page__toolbar[data-v-d0c35a0b]{display:flex;justify-content:flex-end}.wx-blocks-page__search[data-v-d0c35a0b]{width:100%;max-width:280px}.wx-blocks-page__ghost[data-v-d0c35a0b]{display:flex;flex-direction:column;overflow:hidden;background:var(--wx-bg-surface);border:1px solid var(--wx-border-default);border-radius:var(--wx-radius-md)}.wx-blocks-page__ghost-thumb[data-v-d0c35a0b]{border-radius:0}.wx-blocks-page__ghost-body[data-v-d0c35a0b]{display:flex;flex-direction:column;gap:var(--wx-space-8);padding:var(--wx-space-12) var(--wx-space-14)}.wx-blocks-page__group[data-v-d0c35a0b]{display:flex;flex-direction:column;gap:var(--wx-space-12)}.wx-blocks-page__group-title[data-v-d0c35a0b]{font-size:var(--wx-font-size-xs);font-weight:var(--wx-font-weight-semibold);letter-spacing:.06em;text-transform:uppercase;color:var(--wx-text-muted)}.wx-blocks-page__cards[data-v-d0c35a0b] .is-ghost{opacity:.35}.wx-blocks-page__cards[data-v-d0c35a0b]{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:var(--wx-gap, var(--wx-space-16))}.wx-region-page-picker[data-v-ec3f97f3]{display:flex;flex-direction:column;align-items:stretch;gap:var(--wx-space-12)}.wx-region-page-picker[data-v-ec3f97f3]>.wx-button{align-self:flex-start}.wx-region-page-picker__words[data-v-ec3f97f3]{max-width:260px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.wx-region-editor[data-v-e96ddcb8]{display:flex;flex-direction:column;gap:var(--wx-gap, var(--wx-space-16));height:100%;min-height:0;container-type:inline-size}.wx-region-editor__ghost[data-v-e96ddcb8]{max-width:420px}.wx-region-editor__screen[data-v-e96ddcb8]{display:flex;flex-direction:column;flex:1;min-height:0}.wx-region-editor__screen[data-v-e96ddcb8] .wx-screen-host,.wx-region-editor__screen[data-v-e96ddcb8] .wx-screen,.wx-region-editor__screen[data-v-e96ddcb8] .wx-tabs,.wx-region-editor__screen[data-v-e96ddcb8] .wx-tabs__layout,.wx-region-editor__screen[data-v-e96ddcb8] .wx-tabs__panels,.wx-region-editor__screen[data-v-e96ddcb8] .wx-tab:not([hidden]){display:flex;flex-direction:column;flex:1;min-height:0}.wx-region-history-tab[data-v-5c6b5a9d]{display:flex;flex-direction:column;gap:var(--wx-space-24)}.wx-region-history[data-v-5c6b5a9d]{display:flex;flex-direction:column;border:1px solid var(--wx-border-default);border-radius:var(--wx-radius-md);background:var(--wx-bg-surface);overflow:clip}.wx-region-history__ghost[data-v-5c6b5a9d]{padding:var(--wx-space-10) var(--wx-space-12)}.wx-region-history__row[data-v-5c6b5a9d]{display:flex;align-items:center;flex-wrap:wrap;gap:var(--wx-space-12);padding:var(--wx-space-10) var(--wx-space-12);border-block-end:1px solid var(--wx-border-default)}.wx-region-history__row[data-v-5c6b5a9d]:last-child{border-block-end:0}.wx-region-history__number[data-v-5c6b5a9d]{width:40px;font-family:var(--wx-font-family-mono);font-size:var(--wx-font-size-sm);color:var(--wx-text-muted)}.wx-region-history__who[data-v-5c6b5a9d]{display:flex;flex-direction:column;flex:1;min-width:160px}.wx-regions[data-v-92ceefe9]{display:flex;flex-direction:column;gap:var(--wx-gap, var(--wx-space-16));container-type:inline-size}.wx-regions__grid[data-v-92ceefe9]{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:var(--wx-gap, var(--wx-space-16))}.wx-regions__card[data-v-92ceefe9]{position:relative;display:flex;flex-direction:column;gap:var(--wx-space-8);min-width:0;padding:var(--wx-space-16);padding-inline-end:var(--wx-space-40);border:1px solid var(--wx-border-default);border-radius:var(--wx-radius-md);background:var(--wx-bg-surface);box-shadow:var(--wx-shadow-card);color:var(--wx-text-default);text-decoration:none}.wx-regions__card.is-link[data-v-92ceefe9]{transition:border-color var(--wx-duration-fast)}.wx-regions__card.is-link[data-v-92ceefe9]:hover{border-color:var(--wx-border-strong)}.wx-regions__card.is-link[data-v-92ceefe9]:focus-visible{outline:none;box-shadow:var(--wx-ring-focus)}.wx-regions__top[data-v-92ceefe9]{display:flex;flex-wrap:wrap;align-items:baseline;gap:var(--wx-space-8)}.wx-regions__title[data-v-92ceefe9]{font-size:var(--wx-font-size-lg);font-weight:var(--wx-font-weight-semibold);color:var(--wx-text-strong)}.wx-regions__name[data-v-92ceefe9]{font-family:var(--wx-font-family-mono);font-size:var(--wx-font-size-sm);color:var(--wx-text-muted)}.wx-regions__chips[data-v-92ceefe9]{display:flex;flex-wrap:wrap;gap:var(--wx-space-6)}.wx-regions__meta[data-v-92ceefe9]{display:flex;flex-wrap:wrap;gap:var(--wx-space-4) var(--wx-space-12);overflow-wrap:anywhere}.wx-regions__go[data-v-92ceefe9]{position:absolute;inset-block-start:50%;inset-inline-end:var(--wx-space-12);translate:0 -50%;color:var(--wx-text-muted)}
1
+ .wx-block-data[data-v-b994c835]{display:flex;flex-direction:column;gap:var(--wx-space-4);min-width:0}.wx-block-checks[data-v-190a86a9]{display:flex;flex-direction:column;gap:var(--wx-space-4);padding:var(--wx-space-8) var(--wx-space-12);font-size:var(--wx-font-size-sm);border-block-start:1px solid var(--wx-border-muted)}.wx-block-checks__line[data-v-190a86a9]{display:flex;gap:var(--wx-space-8);align-items:flex-start}.wx-block-checks__line .wx-icon[data-v-190a86a9]{flex:none;margin-block-start:2px}.is-ok[data-v-190a86a9]{color:var(--wx-text-muted)}.is-ok .wx-icon[data-v-190a86a9]{color:var(--wx-color-success)}.is-warning[data-v-190a86a9]{color:var(--wx-color-warning)}.is-error[data-v-190a86a9]{color:var(--wx-color-danger)}.wx-block-export[data-v-8e2e559a]{display:flex;flex-direction:column;gap:var(--wx-space-12)}.wx-block-export__list[data-v-8e2e559a]{display:flex;flex-direction:column;max-height:320px;margin:0;padding:0;overflow-y:auto;list-style:none;border:1px solid var(--wx-border-default);border-radius:var(--wx-radius-md)}.wx-block-export__check[data-v-8e2e559a]{display:flex;width:100%;box-sizing:border-box;padding:var(--wx-space-8) var(--wx-space-12)}.wx-block-export__check[data-v-8e2e559a] .wx-checkbox__label{display:flex;flex:1;align-items:center;justify-content:space-between;gap:var(--wx-space-12);min-width:0}.wx-block-export__row+.wx-block-export__row[data-v-8e2e559a]{border-top:1px solid var(--wx-border-default)}.wx-block-export__title[data-v-8e2e559a]{margin-right:var(--wx-space-6)}.wx-block-export__meta[data-v-8e2e559a],.wx-block-export__version[data-v-8e2e559a]{font-size:var(--wx-font-size-xs);color:var(--wx-text-muted)}.wx-block-export__version[data-v-8e2e559a]{flex-shrink:0}.wx-block-export__drafts[data-v-8e2e559a]{display:flex;flex-direction:column;gap:var(--wx-space-4)}.wx-block-history[data-v-42c6b7ad]{display:flex;flex-direction:column}.wx-block-history__ghost[data-v-42c6b7ad]{padding:var(--wx-space-10) var(--wx-space-12)}.wx-block-history__row[data-v-42c6b7ad]{display:flex;align-items:center;gap:var(--wx-space-12);padding:var(--wx-space-10) var(--wx-space-12);border-block-end:1px solid var(--wx-border-muted);flex-wrap:wrap}.wx-block-history__row[data-v-42c6b7ad]:last-child{border-block-end:0}.wx-block-history__number[data-v-42c6b7ad]{width:40px;font-family:var(--wx-font-family-mono);font-size:var(--wx-font-size-sm);color:var(--wx-text-muted)}.wx-block-history__who[data-v-42c6b7ad]{display:flex;flex-direction:column;flex:1;min-width:160px}.wx-block-stage[data-v-3185ee45]{display:flex;flex-direction:column;border:1px solid var(--wx-border-default);border-radius:var(--wx-radius-md);background:var(--wx-bg-surface);overflow:hidden}.wx-block-stage__bar[data-v-3185ee45]{display:flex;justify-content:space-between;gap:var(--wx-space-8);padding:var(--wx-space-8) var(--wx-space-12);border-block-end:1px solid var(--wx-border-muted)}.wx-block-stage__ground[data-v-3185ee45]{padding:var(--wx-space-12);background:var(--wx-bg-subtle)}.wx-block-stage__clip[data-v-3185ee45]{overflow:hidden;margin-inline:auto;box-shadow:var(--wx-shadow-sm)}.wx-block-stage__frame[data-v-3185ee45]{display:block;border:0;background:#fff;transform-origin:top left}.wx-block-editor[data-v-48107b79]{display:flex;flex-direction:column;gap:var(--wx-gap, var(--wx-space-16));container-type:inline-size}.wx-block-editor__ghost-head[data-v-48107b79]{max-width:420px}.wx-block-editor__columns[data-v-48107b79]{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:var(--wx-gap, var(--wx-space-16));align-items:start}.wx-block-editor__columns.is-alone[data-v-48107b79]{grid-template-columns:minmax(0,1fr)}.wx-block-editor__split[data-v-48107b79]{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:var(--wx-gap, var(--wx-space-16));align-items:start}@container (max-width: 1080px){.wx-block-editor__columns[data-v-48107b79],.wx-block-editor__split[data-v-48107b79]{grid-template-columns:minmax(0,1fr)}}.wx-block-editor__call[data-v-48107b79]{min-width:0}.wx-block-editor__call[data-v-48107b79] .wx-card__body{display:flex;flex-direction:column;gap:var(--wx-space-10)}.wx-block-editor__call-tag[data-v-48107b79]{display:flex;flex-wrap:wrap;align-items:flex-start;gap:var(--wx-space-8)}.wx-block-editor__call-tag pre[data-v-48107b79]{flex:1 1 240px;min-width:0;margin:0;padding:var(--wx-space-10) var(--wx-space-12);border-radius:var(--wx-radius-sm);background:var(--wx-bg-subtle);overflow-x:auto}.wx-block-editor__call-tag code[data-v-48107b79]{line-height:1.6;color:var(--wx-text-default);white-space:pre}.wx-block-editor__shape[data-v-48107b79]{display:flex;flex-direction:column;gap:var(--wx-space-6)}.wx-block-editor__shape-fields[data-v-48107b79]{display:grid;grid-template-columns:minmax(0,max-content) minmax(0,1fr);gap:var(--wx-space-4) var(--wx-space-12);margin:0;font-size:var(--wx-font-size-sm)}.wx-block-editor__shape-fields dt[data-v-48107b79]{display:flex;flex-wrap:wrap;align-items:baseline;gap:var(--wx-space-6)}.wx-block-editor__shape-fields dd[data-v-48107b79]{margin:0;color:var(--wx-text-muted)}.wx-block-editor__shape-type[data-v-48107b79]{font-size:var(--wx-font-size-xs);color:var(--wx-text-muted)}@container (max-width: 520px){.wx-block-editor__shape-fields[data-v-48107b79]{grid-template-columns:minmax(0,1fr)}.wx-block-editor__shape-fields dd[data-v-48107b79]{margin-block-end:var(--wx-space-6)}}.wx-block-editor__examples[data-v-48107b79]{min-width:0}.wx-block-editor__example+.wx-block-editor__example[data-v-48107b79]{margin-block-start:var(--wx-space-12)}.wx-block-editor__example pre[data-v-48107b79]{margin:var(--wx-space-4) 0 0;padding:var(--wx-space-10) var(--wx-space-12);border-radius:var(--wx-radius-sm);background:var(--wx-bg-subtle);overflow-x:auto}.wx-block-editor__example code[data-v-48107b79]{font-family:var(--wx-font-family-mono);font-size:var(--wx-font-size-xs);line-height:1.6;color:var(--wx-text-default);white-space:pre}.wx-block-editor__stage[data-v-48107b79]{position:sticky;top:var(--wx-space-12)}.wx-block-editor__pane[data-v-48107b79]{display:flex;flex-direction:column;border:1px solid var(--wx-border-default);border-radius:var(--wx-radius-md);overflow:hidden}.wx-block-editor__pane[data-v-48107b79] .wx-code-editor{border:0;border-radius:0}.wx-block-editor__sample[data-v-48107b79]{min-width:0}.wx-block-editor__pills[data-v-48107b79]{display:flex;flex-wrap:wrap;align-items:center;gap:var(--wx-space-6);padding:var(--wx-space-8) var(--wx-space-12);border-block-start:1px solid var(--wx-border-muted)}.wx-block-editor__pill[data-v-48107b79]{padding:2px var(--wx-space-8);border:1px solid var(--wx-border-default);border-radius:var(--wx-radius-full);background:var(--wx-bg-surface);color:var(--wx-color-primary);font-family:var(--wx-font-family-mono);font-size:var(--wx-font-size-xs);cursor:pointer}.wx-block-editor__pill[data-v-48107b79]:hover:not(:disabled){border-color:var(--wx-color-primary)}.wx-block-editor__note[data-v-48107b79]{display:flex;align-items:center;gap:var(--wx-space-8);padding:var(--wx-space-8) var(--wx-space-12);border-block-start:1px solid var(--wx-border-muted)}.wx-block-editor__note[data-v-48107b79]>:first-child{flex:1 1 auto;min-width:0}.wx-block-editor__sheet[data-v-48107b79]{min-width:0}.wx-block-editor__settings[data-v-48107b79]{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:var(--wx-space-12) var(--wx-space-16)}.wx-block-editor__settings .is-wide[data-v-48107b79]{grid-column:1 / -1}.wx-block-editor__danger[data-v-48107b79]{display:flex;align-items:center;gap:var(--wx-space-12);flex-wrap:wrap}.wx-block-editor__uses[data-v-48107b79]{padding:0;border:0;background:none;font:inherit;color:var(--wx-text-link);cursor:pointer}.wx-block-editor__uses[data-v-48107b79]:hover{text-decoration:underline;text-underline-offset:.2em}.wx-block-editor__uses[data-v-48107b79]:focus-visible{outline:none;border-radius:var(--wx-radius-xs);box-shadow:var(--wx-ring-focus)}.wx-block-editor__usage[data-v-48107b79]{display:flex;flex-direction:column;gap:var(--wx-space-6)}.wx-block-editor__use[data-v-48107b79]{display:flex;align-items:center;gap:var(--wx-space-8)}a.wx-block-editor__use[data-v-48107b79]{color:var(--wx-text-link);text-decoration:none}a.wx-block-editor__use[data-v-48107b79]:hover{text-decoration:underline;text-underline-offset:.2em}code[data-v-48107b79]{font-family:var(--wx-font-family-mono);font-size:var(--wx-font-size-xs)}.wx-block-move[data-v-41c2ff3e]{display:flex;flex-direction:column;gap:var(--wx-space-4)}.wx-block-move__place[data-v-41c2ff3e]{display:flex;align-items:center;gap:var(--wx-space-10);width:100%;padding:var(--wx-space-10) var(--wx-space-12);font:inherit;text-align:start;color:inherit;background:transparent;border:1px solid var(--wx-border-default);border-radius:var(--wx-radius-control);cursor:pointer}.wx-block-move__place[data-v-41c2ff3e]:hover:not(:disabled),.wx-block-move__place[data-v-41c2ff3e]:focus-visible{border-color:var(--wx-color-primary);background:var(--wx-color-primary-soft);outline:none}.wx-block-move__place[data-v-41c2ff3e]:disabled{opacity:.6;cursor:not-allowed}.wx-block-move__trail[data-v-41c2ff3e]{display:flex;flex:1;flex-wrap:wrap;gap:var(--wx-space-4);min-width:0;color:var(--wx-text-muted)}.wx-block-move__trail .is-last[data-v-41c2ff3e],.wx-block-move__trail[data-v-41c2ff3e]:not(:has(span)){color:var(--wx-text-default);font-weight:var(--wx-font-weight-medium)}.wx-block-move__sep[data-v-41c2ff3e]{color:var(--wx-text-muted)}.wx-block-thumb[data-v-da4a6eb8]{position:relative;overflow:hidden;background:var(--wx-bg-subtle)}.wx-block-thumb__frame[data-v-da4a6eb8]{position:absolute;inset-block-start:0;inset-inline-start:0;border:0;transform-origin:top left;pointer-events:none;background:#fff}.wx-block-thumb__empty[data-v-da4a6eb8]{display:grid;place-items:center;height:100%;color:var(--wx-text-muted)}.wx-block-thumb__empty.is-blank[data-v-da4a6eb8]{place-content:center;gap:var(--wx-space-4);padding:var(--wx-space-8);text-align:center}.wx-block-picker[data-v-87f5880b]{display:flex;flex-direction:column;gap:var(--wx-space-16)}.wx-block-picker__group[data-v-87f5880b]{display:flex;flex-direction:column;gap:var(--wx-space-8)}.wx-block-picker__group-title[data-v-87f5880b]{font-size:var(--wx-font-size-xs);font-weight:var(--wx-font-weight-semibold);letter-spacing:.06em;text-transform:uppercase;color:var(--wx-text-muted)}.wx-block-picker__cards[data-v-87f5880b]{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:var(--wx-space-12)}.wx-block-picker__card[data-v-87f5880b]{display:flex;flex-direction:column;padding:0;overflow:hidden;text-align:start;font:inherit;color:inherit;background:var(--wx-bg-surface);border:1px solid var(--wx-border-default);border-radius:var(--wx-radius-md);cursor:pointer}.wx-block-picker__card[data-v-87f5880b]:hover:not(:disabled),.wx-block-picker__card[data-v-87f5880b]:focus-visible{border-color:var(--wx-color-primary);outline:none}.wx-block-picker__card.is-disabled[data-v-87f5880b]{opacity:.6;cursor:not-allowed}.wx-block-picker__body[data-v-87f5880b]{display:flex;flex-direction:column;gap:var(--wx-space-4);padding:var(--wx-space-10) var(--wx-space-12)}.wx-block-picker__title[data-v-87f5880b]{font-weight:var(--wx-font-weight-semibold)}.wx-blocks-preview[data-v-b581b023]{box-sizing:border-box;display:flex;flex-direction:column;border:1px solid var(--wx-border-default);border-radius:var(--wx-radius-md);background:var(--wx-bg-surface);overflow:clip;min-width:0}.wx-blocks-preview.is-fullscreen[data-v-b581b023]{position:fixed;inset:0;z-index:var(--wx-z-index-overlay);border:0;border-radius:0}.wx-blocks-preview__bar[data-v-b581b023]{display:flex;align-items:center;justify-content:space-between;gap:var(--wx-space-8);padding:var(--wx-space-8) var(--wx-space-12);border-block-end:1px solid var(--wx-border-muted)}.wx-blocks-preview:not(.is-fullscreen) .wx-blocks-preview__bar[data-v-b581b023]{position:sticky;top:0;z-index:1;background:var(--wx-bg-surface)}.wx-blocks-preview__label[data-v-b581b023]{flex:1 1 0;min-width:0;font-family:var(--wx-font-family-mono)}.wx-blocks-preview__widths[data-v-b581b023]{flex:none}.wx-blocks-preview__tools[data-v-b581b023]{display:flex;flex:1 1 0;gap:var(--wx-space-4);align-items:center;justify-content:flex-end}.wx-blocks-preview__ground[data-v-b581b023]{flex:1;padding:var(--wx-space-12);background:var(--wx-bg-subtle);overflow:auto;max-height:calc(100vh - 200px)}.is-fullscreen .wx-blocks-preview__ground[data-v-b581b023]{max-height:none}.is-compact .wx-blocks-preview__ground[data-v-b581b023]{padding-inline:0}.is-grown:not(.is-fullscreen) .wx-blocks-preview__ground[data-v-b581b023]{overflow:visible;max-height:none}.wx-blocks-preview__clip[data-v-b581b023]{margin-inline:auto;overflow:hidden;box-shadow:var(--wx-shadow-sm)}.wx-blocks-preview__frame[data-v-b581b023]{display:block;border:0;background:#fff;height:min(72vh,720px);transform-origin:top left}.wx-blocks-tree[data-v-e3ea187a] .wx-sortable-list__content{min-width:0}.wx-blocks-tree__node[data-v-e3ea187a]{display:flex;flex-direction:column;gap:var(--wx-space-2);min-width:0}.wx-blocks-tree__row[data-v-e3ea187a]{display:flex;align-items:center;gap:var(--wx-space-8);padding:var(--wx-space-6) var(--wx-space-8);border:1px solid transparent;border-radius:var(--wx-radius-control);cursor:pointer}.wx-blocks-tree__row[data-v-e3ea187a]:hover{background:var(--wx-bg-subtle)}.wx-blocks-tree__row.is-selected[data-v-e3ea187a]{background:var(--wx-color-primary-soft);border-color:var(--wx-color-primary)}.wx-blocks-tree__name[data-v-e3ea187a]{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:var(--wx-font-size-sm);font-weight:var(--wx-font-weight-medium)}.wx-blocks-tree__row.is-hidden .wx-blocks-tree__name[data-v-e3ea187a]{opacity:.55}.wx-blocks-tree__flag[data-v-e3ea187a]{display:flex;color:var(--wx-text-muted)}.wx-blocks-tree__flag.is-warning[data-v-e3ea187a]{color:var(--wx-color-warning)}.wx-blocks-tree__flag.is-danger[data-v-e3ea187a]{color:var(--wx-color-danger)}.wx-blocks-tree__actions[data-v-e3ea187a]{display:flex;flex:none}@media(pointer:coarse){.wx-blocks-tree__actions[data-v-e3ea187a] .wx-actions__menu .wx-action{--wx-action-size: 32px;position:relative}.wx-blocks-tree__actions[data-v-e3ea187a] .wx-actions__menu .wx-action:after{content:"";position:absolute;inset:-6px}}.wx-blocks-tree__kids[data-v-e3ea187a]{display:flex;flex-direction:column;gap:var(--wx-space-2);margin-inline-start:var(--wx-space-14);padding-inline-start:var(--wx-space-8);border-inline-start:1px dashed var(--wx-border-default)}.wx-blocks-tree__add[data-v-e3ea187a]{width:100%;padding:var(--wx-space-6);border:1px dashed var(--wx-border-strong);border-radius:var(--wx-radius-control);background:transparent;color:var(--wx-text-muted);font:inherit;font-size:var(--wx-font-size-xs);cursor:pointer}.wx-blocks-tree__add[data-v-e3ea187a]:hover:not(:disabled){color:var(--wx-color-primary);border-color:var(--wx-color-primary);background:var(--wx-color-primary-soft)}.wx-blocks-tree__add[data-v-e3ea187a]:disabled{cursor:not-allowed;border-style:solid;border-color:var(--wx-border-default)}.wx-blocks-tree__row.is-invalid[data-v-e3ea187a]{border-color:var(--wx-color-danger)}.wx-blocks-host[data-v-95aa3fbe]{container-type:inline-size}.wx-blocks[data-v-95aa3fbe]{display:grid;grid-template-columns:clamp(360px,34%,520px) minmax(0,1fr);gap:var(--wx-gap, var(--wx-space-16));align-items:start}.wx-blocks[data-v-95aa3fbe]:not(.has-preview){grid-template-columns:minmax(0,1fr)}.wx-blocks__tree[data-v-95aa3fbe],.wx-blocks__fields[data-v-95aa3fbe]{display:flex;flex-direction:column;gap:var(--wx-space-8);padding:var(--wx-space-8);border:1px solid var(--wx-border-default);border-radius:var(--wx-radius-md);background:var(--wx-bg-surface);min-width:0}.wx-blocks__panel-head[data-v-95aa3fbe]{display:flex;align-items:center;justify-content:space-between;gap:var(--wx-space-8);padding:var(--wx-space-4) var(--wx-space-6)}.wx-blocks__panel-title[data-v-95aa3fbe]{display:flex;align-items:center;gap:var(--wx-space-4);min-width:0;font-weight:var(--wx-font-weight-semibold)}.wx-blocks__panel-name[data-v-95aa3fbe]{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.wx-drawer .wx-blocks__fields .wx-blocks__panel-title[data-v-95aa3fbe]{display:none}.wx-blocks__trail[data-v-95aa3fbe]{display:flex;align-items:center;gap:var(--wx-space-4);min-width:0;color:var(--wx-text-muted);font-weight:var(--wx-font-weight-regular);font-size:var(--wx-font-size-sm)}.wx-blocks__trail-step[data-v-95aa3fbe]{padding:0;border:0;background:none;color:inherit;font:inherit;cursor:pointer;white-space:nowrap}.wx-blocks__trail-step[data-v-95aa3fbe]:hover{color:var(--wx-text-default);text-decoration:underline}.wx-blocks__panel-extra[data-v-95aa3fbe]{display:flex;align-items:center;gap:var(--wx-space-8)}.wx-blocks__form[data-v-95aa3fbe]{padding:var(--wx-space-6)}.wx-blocks__refusals[data-v-95aa3fbe]{display:flex;flex-direction:column;gap:var(--wx-space-4);padding:var(--wx-space-6) var(--wx-space-8);border-radius:var(--wx-radius-control);background:var(--wx-color-danger-soft)}.wx-blocks-host:not(.is-compact) .wx-blocks__side[data-v-95aa3fbe]{min-width:0;position:sticky;top:var(--wx-space-12);max-height:calc(100dvh - var(--wx-space-24) - var(--wx-action-bar-room, 0px));display:flex;flex-direction:column}.wx-blocks-host:not(.is-compact) .wx-blocks__tree[data-v-95aa3fbe],.wx-blocks-host:not(.is-compact) .wx-blocks__fields[data-v-95aa3fbe]{min-height:0;overflow:clip}.wx-blocks__panel-head[data-v-95aa3fbe]{flex:none}.wx-blocks-host:not(.is-compact) .wx-blocks__list[data-v-95aa3fbe],.wx-blocks-host:not(.is-compact) .wx-blocks__form[data-v-95aa3fbe]{min-height:0;overflow:auto;overscroll-behavior:contain}.wx-blocks-host:not(.is-compact) .wx-blocks__list[data-v-95aa3fbe]{padding:var(--wx-space-2);margin:calc(-1 * var(--wx-space-2))}.wx-blocks__preview[data-v-95aa3fbe]{min-width:0;position:sticky;top:var(--wx-space-12)}.wx-blocks__preview[data-v-95aa3fbe]:has(.is-grown),.wx-blocks__preview[data-v-95aa3fbe]:has(.is-fullscreen){position:static}.wx-blocks__tools[data-v-95aa3fbe]{display:flex;align-items:center;flex-wrap:wrap;gap:var(--wx-space-8);flex:none}.wx-blocks__add[data-v-95aa3fbe],.wx-blocks__preview-button[data-v-95aa3fbe]{flex:1 1 auto;min-width:0}.wx-blocks__preview-button[data-v-95aa3fbe]{display:none;flex:none}.wx-blocks-host.is-compact .wx-blocks[data-v-95aa3fbe],.wx-blocks-host.is-compact .wx-blocks.has-preview[data-v-95aa3fbe]{grid-template-columns:minmax(0,1fr)}.wx-drawer .wx-blocks__tree[data-v-95aa3fbe],.wx-drawer .wx-blocks__fields[data-v-95aa3fbe]{border:0;padding:0;background:none}code[data-v-95aa3fbe]{font-family:var(--wx-font-family-mono);font-size:var(--wx-font-size-xs);color:var(--wx-text-muted)}.wx-block-card[data-v-1d29dfee]{display:flex;flex-direction:column;width:100%;padding:0;overflow:hidden;text-align:start;font:inherit;color:inherit;background:var(--wx-bg-surface);border:1px solid var(--wx-border-default);border-radius:var(--wx-radius-md);cursor:pointer}.wx-block-card[data-v-1d29dfee]:hover,.wx-block-card[data-v-1d29dfee]:focus-visible{border-color:var(--wx-color-primary);outline:none}.wx-block-card__body[data-v-1d29dfee]{display:flex;flex-direction:column;gap:var(--wx-space-6);padding:var(--wx-space-12) var(--wx-space-14)}.wx-block-card__title[data-v-1d29dfee]{font-weight:var(--wx-font-weight-semibold)}.wx-block-card__chips[data-v-1d29dfee]{display:flex;flex-wrap:wrap;gap:var(--wx-space-6)}code[data-v-1d29dfee]{font-family:var(--wx-font-family-mono);font-size:var(--wx-font-size-xs)}.wx-block-create[data-v-585106f0]{display:flex;flex-direction:column;gap:var(--wx-space-12)}.wx-block-create__kinds[data-v-585106f0]{gap:var(--wx-space-10)}.wx-block-create__kinds[data-v-585106f0] .wx-radio{align-items:flex-start}.wx-block-create__kind[data-v-585106f0]{display:block;font-weight:var(--wx-font-weight-medium)}.wx-block-create__kind-help[data-v-585106f0]{display:block;font-size:var(--wx-font-size-sm);color:var(--wx-text-muted)}.wx-block-declared[data-v-3c4079a4]{display:flex;flex-direction:column;min-width:0;overflow:hidden;background:var(--wx-bg-surface);border:1px dashed var(--wx-border-strong);border-radius:var(--wx-radius-md)}.wx-block-declared__mark[data-v-3c4079a4]{display:flex;align-items:center;justify-content:center;height:120px;font-size:32px;color:var(--wx-text-muted);background:var(--wx-bg-subtle);border-block-end:1px dashed var(--wx-border-default)}.wx-block-declared__body[data-v-3c4079a4]{display:flex;flex:1 1 auto;flex-direction:column;gap:var(--wx-space-6);padding:var(--wx-space-12) var(--wx-space-14)}.wx-block-declared__title[data-v-3c4079a4]{font-weight:var(--wx-font-weight-semibold)}.wx-block-declared__actions[data-v-3c4079a4]{margin-block-start:auto;padding-block-start:var(--wx-space-4)}code[data-v-3c4079a4]{font-family:var(--wx-font-family-mono);font-size:var(--wx-font-size-xs)}.wx-block-import[data-v-fa299c07]{display:flex;flex-direction:column;gap:var(--wx-space-12)}.wx-block-import__file[data-v-fa299c07]{display:flex;align-items:center;justify-content:space-between;gap:var(--wx-space-8);min-width:0}.wx-block-import__name[data-v-fa299c07]{overflow:hidden;font-weight:var(--wx-font-weight-medium);text-overflow:ellipsis;white-space:nowrap}.wx-block-import__list[data-v-fa299c07]{display:flex;flex-direction:column;max-height:340px;margin:0;padding:0;overflow-y:auto;list-style:none;border:1px solid var(--wx-border-default);border-radius:var(--wx-radius-md)}.wx-block-import__row[data-v-fa299c07]{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--wx-space-12);padding:var(--wx-space-8) var(--wx-space-12)}.wx-block-import__row+.wx-block-import__row[data-v-fa299c07]{border-top:1px solid var(--wx-border-default)}.wx-block-import__type[data-v-fa299c07]{display:flex;flex-direction:column;gap:var(--wx-space-2);min-width:0}.wx-block-import__meta[data-v-fa299c07]{font-size:var(--wx-font-size-xs);color:var(--wx-text-muted)}.wx-block-import__error[data-v-fa299c07]{font-size:var(--wx-font-size-xs);color:var(--wx-color-danger);overflow-wrap:anywhere}.wx-block-import__error.is-warning[data-v-fa299c07]{color:var(--wx-color-warning)}.wx-blocks-page__toolbar[data-v-d0c35a0b]{display:flex;justify-content:flex-end}.wx-blocks-page__search[data-v-d0c35a0b]{width:100%;max-width:280px}.wx-blocks-page__ghost[data-v-d0c35a0b]{display:flex;flex-direction:column;overflow:hidden;background:var(--wx-bg-surface);border:1px solid var(--wx-border-default);border-radius:var(--wx-radius-md)}.wx-blocks-page__ghost-thumb[data-v-d0c35a0b]{border-radius:0}.wx-blocks-page__ghost-body[data-v-d0c35a0b]{display:flex;flex-direction:column;gap:var(--wx-space-8);padding:var(--wx-space-12) var(--wx-space-14)}.wx-blocks-page__group[data-v-d0c35a0b]{display:flex;flex-direction:column;gap:var(--wx-space-12)}.wx-blocks-page__group-title[data-v-d0c35a0b]{font-size:var(--wx-font-size-xs);font-weight:var(--wx-font-weight-semibold);letter-spacing:.06em;text-transform:uppercase;color:var(--wx-text-muted)}.wx-blocks-page__cards[data-v-d0c35a0b] .is-ghost{opacity:.35}.wx-blocks-page__cards[data-v-d0c35a0b]{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:var(--wx-gap, var(--wx-space-16))}.wx-region-draft__refusals[data-v-bdf9dde8]{display:flex;flex-direction:column;gap:var(--wx-space-4)}.wx-blocks-bar[data-v-cb14d424]{display:flex;flex-direction:column;gap:var(--wx-space-12);min-width:0}.wx-blocks-bar__actions[data-v-cb14d424]{display:flex;gap:var(--wx-space-8)}.wx-blocks-bar__tools[data-v-cb14d424]{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--wx-space-8)}.wx-blocks-bar__trail[data-v-cb14d424]{display:flex;flex-wrap:wrap;align-items:center;gap:var(--wx-space-2);min-width:0}.wx-blocks-bar__slash[data-v-cb14d424],.wx-blocks-bar__where[data-v-cb14d424]{color:var(--wx-text-muted);font-weight:var(--wx-font-weight-regular)}.wx-blocks-bar__group[data-v-cb14d424]{display:flex;flex-direction:column;gap:var(--wx-space-8);min-width:0;padding-top:var(--wx-space-12);border-top:1px solid var(--wx-border-default)}.wx-blocks-bar__head[data-v-cb14d424]{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:var(--wx-space-8);min-width:0}.wx-blocks-bar__map[data-v-cb14d424]{display:flex;flex-direction:column;gap:var(--wx-space-2);margin:0;padding:0;list-style:none}.wx-blocks-bar__item[data-v-cb14d424]{display:flex;align-items:center;gap:var(--wx-space-4);min-width:0}.wx-blocks-bar__name[data-v-cb14d424]{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--wx-space-8);min-width:0}.wx-blocks-bar__add[data-v-cb14d424]{display:flex;flex-wrap:wrap;align-items:center;gap:var(--wx-space-8)}.wx-blocks-bar__row[data-v-cb14d424]{display:flex;flex:1 1 auto;align-items:baseline;gap:var(--wx-space-8);width:100%;min-width:0;padding:var(--wx-space-6) var(--wx-space-8);padding-left:calc(var(--wx-space-8) + var(--wx-blocks-bar-depth, 0) * var(--wx-space-16));border:0;border-radius:var(--wx-radius-sm);background:transparent;color:var(--wx-text-default);font:inherit;text-align:left;cursor:pointer}.wx-blocks-bar__row[data-v-cb14d424]:hover:not(:disabled),.wx-blocks-bar__row[data-v-cb14d424]:focus-visible{background:var(--wx-bg-fill)}.wx-blocks-bar__row[data-v-cb14d424]:focus-visible{outline:2px solid var(--wx-border-focus);outline-offset:-2px}.wx-blocks-bar__row[data-v-cb14d424]:disabled{cursor:default}.wx-blocks-bar__title[data-v-cb14d424]{flex:0 0 auto;font-weight:var(--wx-font-weight-medium)}.wx-blocks-bar__label[data-v-cb14d424]{flex:1 1 auto;min-width:0;overflow:hidden;color:var(--wx-text-muted);font-size:var(--wx-font-size-sm);white-space:nowrap;text-overflow:ellipsis}.wx-blocks-bar__flag[data-v-cb14d424]{flex:0 0 auto;margin-left:auto;color:var(--wx-text-muted);font-size:var(--wx-font-size-xs)}.wx-blocks-bar__row.is-hidden .wx-blocks-bar__title[data-v-cb14d424],.wx-blocks-bar__row.is-temporary .wx-blocks-bar__title[data-v-cb14d424]{color:var(--wx-text-muted)}.wx-blocks-bar__form[data-v-cb14d424]{min-width:0}.wx-blocks-bar__lines[data-v-cb14d424]{margin:0;padding-left:var(--wx-space-16);overflow-wrap:anywhere}.wx-fragment-field[data-v-2ebc62be]{display:flex;flex-direction:column;gap:var(--wx-space-8);min-width:0}.wx-fragment-field__about[data-v-2ebc62be]{display:flex;flex-direction:column;gap:var(--wx-space-8);padding:var(--wx-space-10) var(--wx-space-12);border:1px solid var(--wx-border-default);border-radius:var(--wx-radius-md);background:var(--wx-bg-subtle)}.wx-fragment-field__state[data-v-2ebc62be]{display:flex;align-items:center;flex-wrap:wrap;gap:var(--wx-space-8)}.wx-fragment-field__state code[data-v-2ebc62be]{font-size:var(--wx-font-size-xs);color:var(--wx-text-muted)}.wx-fragment-field__actions[data-v-2ebc62be]{display:flex;flex-wrap:wrap;gap:var(--wx-space-8)}.wx-region-page-picker[data-v-ec3f97f3]{display:flex;flex-direction:column;align-items:stretch;gap:var(--wx-space-12)}.wx-region-page-picker[data-v-ec3f97f3]>.wx-button{align-self:flex-start}.wx-region-page-picker__words[data-v-ec3f97f3]{max-width:260px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.wx-region-editor[data-v-7876e212]{display:flex;flex-direction:column;gap:var(--wx-gap, var(--wx-space-16));height:100%;min-height:0;container-type:inline-size}.wx-region-editor__ghost[data-v-7876e212]{max-width:420px}.wx-region-editor__where[data-v-7876e212]{display:flex;flex-wrap:wrap;align-items:center;gap:var(--wx-space-6) var(--wx-space-8);min-width:0}.wx-region-editor__where-label[data-v-7876e212]{font-size:var(--wx-font-size-sm);font-weight:var(--wx-font-weight-semibold);color:var(--wx-text-strong)}.wx-region-editor__use[data-v-7876e212]{display:inline-flex;align-items:center;gap:var(--wx-space-6);min-width:0;max-width:100%;padding:var(--wx-space-2) var(--wx-space-10);border:1px solid var(--wx-border-default);border-radius:var(--wx-radius-full);background:var(--wx-bg-surface);color:var(--wx-text-default);font:inherit;font-size:var(--wx-font-size-sm);text-decoration:none;overflow-wrap:anywhere;cursor:pointer}.wx-region-editor__use[data-v-7876e212]:hover{border-color:var(--wx-border-strong)}.wx-region-editor__use[data-v-7876e212]:focus-visible{outline:none;box-shadow:var(--wx-ring-focus)}.wx-region-editor__use.is-active[data-v-7876e212]{border-color:var(--wx-color-primary);color:var(--wx-text-link)}.wx-region-editor__use.is-plain[data-v-7876e212]{cursor:default}.wx-region-editor__where-note[data-v-7876e212]{flex-basis:100%}.wx-region-editor__screen[data-v-7876e212]{display:flex;flex-direction:column;flex:1;min-height:0}.wx-region-editor__screen[data-v-7876e212] .wx-screen-host,.wx-region-editor__screen[data-v-7876e212] .wx-screen,.wx-region-editor__screen[data-v-7876e212] .wx-tabs,.wx-region-editor__screen[data-v-7876e212] .wx-tabs__layout,.wx-region-editor__screen[data-v-7876e212] .wx-tabs__panels,.wx-region-editor__screen[data-v-7876e212] .wx-tab:not([hidden]){display:flex;flex-direction:column;flex:1;min-height:0}.wx-region-history-tab[data-v-5c6b5a9d]{display:flex;flex-direction:column;gap:var(--wx-space-24)}.wx-region-history[data-v-5c6b5a9d]{display:flex;flex-direction:column;border:1px solid var(--wx-border-default);border-radius:var(--wx-radius-md);background:var(--wx-bg-surface);overflow:clip}.wx-region-history__ghost[data-v-5c6b5a9d]{padding:var(--wx-space-10) var(--wx-space-12)}.wx-region-history__row[data-v-5c6b5a9d]{display:flex;align-items:center;flex-wrap:wrap;gap:var(--wx-space-12);padding:var(--wx-space-10) var(--wx-space-12);border-block-end:1px solid var(--wx-border-default)}.wx-region-history__row[data-v-5c6b5a9d]:last-child{border-block-end:0}.wx-region-history__number[data-v-5c6b5a9d]{width:40px;font-family:var(--wx-font-family-mono);font-size:var(--wx-font-size-sm);color:var(--wx-text-muted)}.wx-region-history__who[data-v-5c6b5a9d]{display:flex;flex-direction:column;flex:1;min-width:160px}.wx-regions[data-v-2addd354]{display:flex;flex-direction:column;gap:var(--wx-gap, var(--wx-space-16));container-type:inline-size}.wx-regions__section[data-v-2addd354]{display:flex;flex-direction:column;gap:var(--wx-space-8)}.wx-regions__head[data-v-2addd354]{display:flex;flex-direction:column;gap:var(--wx-space-2)}.wx-regions__heading[data-v-2addd354]{margin:0;font-size:var(--wx-font-size-md);font-weight:var(--wx-font-weight-semibold);color:var(--wx-text-strong)}.wx-regions__grid[data-v-2addd354]{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:var(--wx-gap, var(--wx-space-16))}.wx-regions__card[data-v-2addd354]{position:relative;display:flex;flex-direction:column;gap:var(--wx-space-8);min-width:0;padding:var(--wx-space-16);padding-inline-end:var(--wx-space-40);border:1px solid var(--wx-border-default);border-radius:var(--wx-radius-md);background:var(--wx-bg-surface);box-shadow:var(--wx-shadow-card);color:var(--wx-text-default);text-decoration:none}.wx-regions__card.is-link[data-v-2addd354]{transition:border-color var(--wx-duration-fast)}.wx-regions__card.is-link[data-v-2addd354]:hover{border-color:var(--wx-border-strong)}.wx-regions__card.is-link[data-v-2addd354]:focus-visible{outline:none;box-shadow:var(--wx-ring-focus)}.wx-regions__top[data-v-2addd354]{display:flex;flex-wrap:wrap;align-items:baseline;gap:var(--wx-space-8)}.wx-regions__title[data-v-2addd354]{font-size:var(--wx-font-size-lg);font-weight:var(--wx-font-weight-semibold);color:var(--wx-text-strong)}.wx-regions__name[data-v-2addd354]{font-family:var(--wx-font-family-mono);font-size:var(--wx-font-size-sm);color:var(--wx-text-muted)}.wx-regions__chips[data-v-2addd354]{display:flex;flex-wrap:wrap;gap:var(--wx-space-6)}.wx-regions__meta[data-v-2addd354]{display:flex;flex-wrap:wrap;gap:var(--wx-space-4) var(--wx-space-12);overflow-wrap:anywhere}.wx-regions__go[data-v-2addd354]{position:absolute;inset-block-start:50%;inset-inline-end:var(--wx-space-12);translate:0 -50%;color:var(--wx-text-muted)}
package/dist/types.d.ts CHANGED
@@ -252,6 +252,16 @@ export interface RegionRow {
252
252
  allow: string[] | null;
253
253
  /** How many blocks the top level may hold; `null` — no limit. */
254
254
  max: number | null;
255
+ /**
256
+ * A shared block: printed where it is placed — a «Shared block» on a page, a tag in a template —
257
+ * rather than by the layout. Absent from a server older than shared blocks.
258
+ */
259
+ fragment?: boolean;
260
+ /**
261
+ * Where a shared block stands: the records whose content places it. `null` for a region of the
262
+ * layout, which is on every page; absent where it is not counted — the field's list.
263
+ */
264
+ used_on?: FragmentUse[] | null;
255
265
  /** On the site: published, and visitors see the blocks rather than the code's view. */
256
266
  published: boolean;
257
267
  published_at: string | null;
@@ -263,6 +273,13 @@ export interface RegionRow {
263
273
  fallback: string | null;
264
274
  updated_at: string | null;
265
275
  }
276
+ /**
277
+ * A record that places a shared block, in what the site shows (`live`), in its draft, or both.
278
+ * A record of another shared block names that one in `region`.
279
+ */
280
+ export interface FragmentUse extends BlockUsage {
281
+ region?: string | null;
282
+ }
266
283
  /** One region with what is being edited in it. */
267
284
  export interface RegionDetail extends RegionRow {
268
285
  /** The draft when there is one, else what is published. */
@@ -335,3 +352,112 @@ export interface BlockImportRow {
335
352
  /** Why the type was refused, or — beside a status that is not `failed` — why it stayed a draft. */
336
353
  error: string | null;
337
354
  }
355
+ /** One line of a record's blocks as a map — `blocks_get_content(outline)`. */
356
+ export interface BlockOutlineLine {
357
+ /** Absent for a block of old content that has no key yet: it is edited in the panel. */
358
+ key?: string;
359
+ type: string;
360
+ depth: number;
361
+ parent?: string | null;
362
+ /** A line to recognise the block by: its heading, its first words. */
363
+ label?: string;
364
+ hidden?: boolean;
365
+ }
366
+ /** What the «Blocks» tab of the panel on the site reads about a record or a region. */
367
+ export interface SiteBarBlocks {
368
+ /** The revision to send with an edit: the record's editor's, or the region's. */
369
+ revision: string;
370
+ /** Whether the tree is the draft or, with no draft yet, what the site shows. */
371
+ editing: 'draft' | 'live';
372
+ tree: BlockNode[];
373
+ outline: BlockOutlineLine[];
374
+ /** Only for a region: what the tab says over its map. */
375
+ region?: SiteBarRegion;
376
+ }
377
+ /** A region of the layout as the tab of the panel on the site shows it. */
378
+ export interface SiteBarRegion {
379
+ name: string;
380
+ /** As the site declared it, in the panel's language: «Header». */
381
+ title: string;
382
+ /** Whether visitors see its blocks, rather than the markup from code. */
383
+ published: boolean;
384
+ /** The view the site prints while the region is not published, when the layout named one. */
385
+ fallback: string | null;
386
+ draft: {
387
+ differs: boolean;
388
+ by: string | null;
389
+ at: string | null;
390
+ /** How many blocks the draft changes, adds or takes away. */
391
+ changes: number;
392
+ /** Whether the last hand on the draft was this administrator's. */
393
+ mine: boolean;
394
+ };
395
+ /** A signed link to the draft drawn on a page — `&at=` names which — while there is a draft. */
396
+ preview?: string | null;
397
+ }
398
+ /**
399
+ * One operation of the agent's dictionary (`blocks_edit_content`), which the bar sends too: the
400
+ * fields of one block, or where blocks stand. `parent`/`field` name a container's list; without
401
+ * them the top level. `after`/`before` name the neighbour.
402
+ */
403
+ export type SiteBarBlockOp = {
404
+ op: 'set';
405
+ key: string;
406
+ values: Record<string, unknown>;
407
+ locale?: string;
408
+ } | {
409
+ op: 'add';
410
+ type: string;
411
+ values?: Record<string, unknown>;
412
+ parent?: string;
413
+ field?: string;
414
+ after?: string;
415
+ before?: string;
416
+ } | {
417
+ op: 'move';
418
+ key: string;
419
+ parent?: string;
420
+ field?: string;
421
+ after?: string;
422
+ before?: string;
423
+ } | {
424
+ op: 'duplicate' | 'hide' | 'show' | 'remove';
425
+ key: string;
426
+ };
427
+ /** One edit from the tab, into the draft. */
428
+ export interface SiteBarBlockEdit {
429
+ revision?: string;
430
+ /** The page's language: a localized field sent one value takes it in this language. */
431
+ locale?: string | null;
432
+ /** The page the bar is on: a region's block is drawn as it stands there. */
433
+ url?: string;
434
+ /** The sets of block styles and scripts the page has, by hash: what is in them is not sent. */
435
+ bundles?: string[];
436
+ ops: SiteBarBlockOp[];
437
+ }
438
+ /** What the page does to show the draft, one block at a time (SB5). */
439
+ export interface SiteBarStep {
440
+ do: 'place' | 'move' | 'remove' | 'reload';
441
+ key: string;
442
+ /** The block drawn from the draft, markers and all — for `place` and `move`. */
443
+ html?: string;
444
+ after?: string[];
445
+ before?: string[];
446
+ top?: boolean;
447
+ }
448
+ /**
449
+ * The answer: the new revision, the block to open — the one a `set` named, the one an `add` or a
450
+ * `duplicate` made — and what the page has to do, with the styles and script it lacks.
451
+ */
452
+ export interface SiteBarBlockEdited {
453
+ revision: string;
454
+ key: string | null;
455
+ /** The block `key` drawn, when a step drew it. */
456
+ html: string;
457
+ steps?: SiteBarStep[];
458
+ assets?: {
459
+ hash: string;
460
+ css: string | null;
461
+ js: string | null;
462
+ } | null;
463
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@webx-ui/module-blocks",
3
- "version": "0.14.0",
3
+ "version": "0.16.0",
4
4
  "description": "The block constructor for the WebX UI admin panel: the section where a block type is made — fields, Blade, CSS, script — and the wx-blocks field that builds a page out of them.",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -46,9 +46,9 @@
46
46
  "@codemirror/autocomplete": "^6.20.3",
47
47
  "@codemirror/state": "^6.7.4",
48
48
  "@codemirror/view": "^6.43.11",
49
- "@webx-ui/core": "^0.40.0",
50
- "@webx-ui/module-admin": "^0.25.0",
51
- "@webx-ui/schema": "^0.9.0",
49
+ "@webx-ui/core": "^0.41.0",
50
+ "@webx-ui/module-admin": "^0.26.1",
51
+ "@webx-ui/schema": "^0.9.1",
52
52
  "vue-draggable-plus": "^0.6.1"
53
53
  },
54
54
  "devDependencies": {