@webx-ui/module-blocks 0.10.5 → 0.11.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/BlockPicker.d.ts +3 -0
- package/dist/RegionEditorPage.d.ts +7 -0
- package/dist/RegionHistory.d.ts +2 -0
- package/dist/RegionPagePicker.d.ts +16 -0
- package/dist/RegionsPage.d.ts +7 -0
- package/dist/api.d.ts +25 -1
- package/dist/index.d.ts +6 -4
- package/dist/index.js +2986 -2174
- package/dist/index.js.map +1 -1
- package/dist/module.d.ts +14 -0
- package/dist/move.d.ts +6 -1
- package/dist/preview.d.ts +22 -0
- package/dist/region.d.ts +30 -0
- package/dist/style.css +1 -1
- package/dist/types.d.ts +58 -0
- package/package.json +4 -4
package/dist/module.d.ts
CHANGED
|
@@ -11,3 +11,17 @@ export interface BlocksOptions {
|
|
|
11
11
|
* navigation: the section shows up when both halves are installed.
|
|
12
12
|
*/
|
|
13
13
|
export declare function blocks(options?: BlocksOptions): AdminModule;
|
|
14
|
+
export interface RegionsOptions {
|
|
15
|
+
/** Where the section lives inside the panel. */
|
|
16
|
+
path?: string;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* The layout regions — the header and the footer made of blocks — as a section of their own.
|
|
20
|
+
*
|
|
21
|
+
* A second module rather than two more routes of `blocks()`: the navigation is one entry per
|
|
22
|
+
* module, and this one stands in a different place for a different person. Blocks is the
|
|
23
|
+
* developer's section, closed by `blocks.manage` because a template is code; the header is
|
|
24
|
+
* edited by whoever edits the pages, under `blocks.regions`. The id matches the module the
|
|
25
|
+
* server reports, which is what puts the entry in the menu.
|
|
26
|
+
*/
|
|
27
|
+
export declare function regions(options?: RegionsOptions): AdminModule;
|
package/dist/move.d.ts
CHANGED
|
@@ -6,7 +6,7 @@ import { BlockNode, BlockType } from './types';
|
|
|
6
6
|
* narrows it to, when it does. The picker asks this for a new block and "Move to" for an
|
|
7
7
|
* existing one, and the two must not disagree about where a block can go.
|
|
8
8
|
*/
|
|
9
|
-
export declare function allows(type: BlockType, parent: BlockType | null, allow: string[] | null): boolean;
|
|
9
|
+
export declare function allows(type: BlockType, parent: BlockType | null, allow: string[] | null, root?: string): boolean;
|
|
10
10
|
/** One list a block could be moved into. */
|
|
11
11
|
export interface Destination {
|
|
12
12
|
/** The container, or null for the top level. */
|
|
@@ -22,6 +22,11 @@ export interface TopLevel {
|
|
|
22
22
|
owner: BlockType | null;
|
|
23
23
|
allow: string[] | null;
|
|
24
24
|
max: number | null;
|
|
25
|
+
/**
|
|
26
|
+
* What the top level is called in `allowed_in`: `root` for a page, `region:<name>` for a
|
|
27
|
+
* layout region — a type made for the header must not be offered in the middle of an article.
|
|
28
|
+
*/
|
|
29
|
+
root?: string;
|
|
25
30
|
}
|
|
26
31
|
/**
|
|
27
32
|
* Every list a block may be moved into, in the order the page draws them.
|
package/dist/preview.d.ts
CHANGED
|
@@ -19,6 +19,28 @@ export declare const blocksPreviewKey: InjectionKey<BlocksPreview>;
|
|
|
19
19
|
/** Called by the hosting screen, above the `wx-blocks` field. */
|
|
20
20
|
export declare function provideBlocksPreview(preview: BlocksPreview): void;
|
|
21
21
|
export declare function useBlocksPreview(): BlocksPreview | null;
|
|
22
|
+
/**
|
|
23
|
+
* What the top level of the constructor is, when it is not a page.
|
|
24
|
+
*
|
|
25
|
+
* A layout region is edited with the same `wx-blocks` field as a page, from a screen described
|
|
26
|
+
* once for every region — so what differs between `header` and `footer` (the name types list in
|
|
27
|
+
* `allowed_in`, and the region's own `allow` and `max` from the site's config) cannot be written
|
|
28
|
+
* into the description. The editor hosting the screen provides it instead, the way it provides
|
|
29
|
+
* the preview.
|
|
30
|
+
*/
|
|
31
|
+
export interface BlocksTop {
|
|
32
|
+
/** The name of the top level in `allowed_in` — `region:header`. */
|
|
33
|
+
root: string;
|
|
34
|
+
/** What "Move to" calls the top level — the region's title rather than "The page". */
|
|
35
|
+
label?: string;
|
|
36
|
+
/** What may stand at the top level, beyond what the types themselves allow. */
|
|
37
|
+
allow?: string[] | null;
|
|
38
|
+
/** How many blocks the top level may hold. */
|
|
39
|
+
max?: number | null;
|
|
40
|
+
}
|
|
41
|
+
export declare const blocksTopKey: InjectionKey<Readonly<Ref<BlocksTop | null>>>;
|
|
42
|
+
/** Called by the hosting screen, above the `wx-blocks` field. */
|
|
43
|
+
export declare function provideBlocksTop(top: Readonly<Ref<BlocksTop | null>>): void;
|
|
22
44
|
/**
|
|
23
45
|
* Set by the constructor for everything it draws, so that a `wx-blocks` node inside a
|
|
24
46
|
* block's own form knows it is nested — and draws a note instead of a second constructor.
|
package/dist/region.d.ts
ADDED
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { InjectionKey, Ref } from 'vue';
|
|
2
|
+
import { RegionDetail } from './types';
|
|
3
|
+
/**
|
|
4
|
+
* What the region editor knows and the nodes of its screen do not.
|
|
5
|
+
*
|
|
6
|
+
* The editor is a described screen (`regions.form`), so a site can add a tab to it with a patch;
|
|
7
|
+
* the history is a node type of that screen, and it needs the region being edited — which a
|
|
8
|
+
* description cannot hand it. The page hosting the screen provides it instead.
|
|
9
|
+
*/
|
|
10
|
+
export interface RegionEditorContext {
|
|
11
|
+
/** The region as the server last answered it, or `null` while the first request is out. */
|
|
12
|
+
region: Ref<RegionDetail | null>;
|
|
13
|
+
/** Whether this administrator may write. */
|
|
14
|
+
canManage: boolean;
|
|
15
|
+
/** Ask the server for the region again — after a restore. */
|
|
16
|
+
reload(): Promise<void>;
|
|
17
|
+
}
|
|
18
|
+
export declare const regionEditorKey: InjectionKey<RegionEditorContext>;
|
|
19
|
+
export declare function provideRegionEditor(editor: RegionEditorContext): void;
|
|
20
|
+
/** The editor above this node, or `null` outside one: a node drawn in a demo draws nothing. */
|
|
21
|
+
export declare function useRegionEditor(): RegionEditorContext | null;
|
|
22
|
+
/**
|
|
23
|
+
* The preview address for one page of the site.
|
|
24
|
+
*
|
|
25
|
+
* The server signs the region and nothing else, so the page is appended by the panel: a person
|
|
26
|
+
* looking at the header on the contacts page is still looking at the same region.
|
|
27
|
+
*/
|
|
28
|
+
export declare function previewAt(url: string, path: string): string;
|
|
29
|
+
/** A site path out of whatever the link picker holds: an address typed, or a page's URL. */
|
|
30
|
+
export declare function sitePath(address: string | null): string | null;
|
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-e56947a8]{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-e56947a8]{display:flex;gap:var(--wx-space-8);align-items:flex-start}.wx-block-checks__line .wx-icon[data-v-e56947a8]{flex:none;margin-block-start:2px}.is-ok[data-v-e56947a8]{color:var(--wx-text-muted)}.is-ok .wx-icon[data-v-e56947a8]{color:var(--wx-color-success)}.is-warning[data-v-e56947a8]{color:var(--wx-color-warning)}.is-error[data-v-e56947a8]{color:var(--wx-color-danger)}.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-8201065d]{display:flex;flex-direction:column;gap:var(--wx-gap, var(--wx-space-16));container-type:inline-size}.wx-block-editor__ghost-head[data-v-8201065d]{max-width:420px}.wx-block-editor__columns[data-v-8201065d]{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-8201065d]{grid-template-columns:minmax(0,1fr)}.wx-block-editor__split[data-v-8201065d]{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-8201065d],.wx-block-editor__split[data-v-8201065d]{grid-template-columns:minmax(0,1fr)}}.wx-block-editor__call[data-v-8201065d]{min-width:0}.wx-block-editor__call[data-v-8201065d] .wx-card__body{display:flex;flex-direction:column;gap:var(--wx-space-10)}.wx-block-editor__call-tag[data-v-8201065d]{display:flex;flex-wrap:wrap;align-items:flex-start;gap:var(--wx-space-8)}.wx-block-editor__call-tag pre[data-v-8201065d]{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-8201065d]{line-height:1.6;color:var(--wx-text-default);white-space:pre}.wx-block-editor__shape[data-v-8201065d]{display:flex;flex-direction:column;gap:var(--wx-space-6)}.wx-block-editor__shape-fields[data-v-8201065d]{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-8201065d]{display:flex;flex-wrap:wrap;align-items:baseline;gap:var(--wx-space-6)}.wx-block-editor__shape-fields dd[data-v-8201065d]{margin:0;color:var(--wx-text-muted)}.wx-block-editor__shape-type[data-v-8201065d]{font-size:var(--wx-font-size-xs);color:var(--wx-text-muted)}@container (max-width: 520px){.wx-block-editor__shape-fields[data-v-8201065d]{grid-template-columns:minmax(0,1fr)}.wx-block-editor__shape-fields dd[data-v-8201065d]{margin-block-end:var(--wx-space-6)}}.wx-block-editor__examples[data-v-8201065d]{min-width:0}.wx-block-editor__example+.wx-block-editor__example[data-v-8201065d]{margin-block-start:var(--wx-space-12)}.wx-block-editor__example pre[data-v-8201065d]{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-8201065d]{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-8201065d]{position:sticky;top:var(--wx-space-12)}.wx-block-editor__pane[data-v-8201065d]{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-8201065d] .wx-code-editor{border:0;border-radius:0}.wx-block-editor__sample[data-v-8201065d]{min-width:0}.wx-block-editor__pills[data-v-8201065d]{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-8201065d]{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-8201065d]:hover:not(:disabled){border-color:var(--wx-color-primary)}.wx-block-editor__note[data-v-8201065d]{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-8201065d]>:first-child{flex:1 1 auto;min-width:0}.wx-block-editor__sheet[data-v-8201065d]{min-width:0}.wx-block-editor__settings[data-v-8201065d]{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-8201065d]{grid-column:1 / -1}.wx-block-editor__danger[data-v-8201065d]{display:flex;align-items:center;gap:var(--wx-space-12);flex-wrap:wrap}.wx-block-editor__uses[data-v-8201065d]{padding:0;border:0;background:none;font:inherit;color:var(--wx-text-link);cursor:pointer}.wx-block-editor__uses[data-v-8201065d]:hover{text-decoration:underline;text-underline-offset:.2em}.wx-block-editor__uses[data-v-8201065d]:focus-visible{outline:none;border-radius:var(--wx-radius-xs);box-shadow:var(--wx-ring-focus)}.wx-block-editor__usage[data-v-8201065d]{display:flex;flex-direction:column;gap:var(--wx-space-6)}.wx-block-editor__use[data-v-8201065d]{display:flex;align-items:center;gap:var(--wx-space-8)}a.wx-block-editor__use[data-v-8201065d]{color:var(--wx-text-link);text-decoration:none}a.wx-block-editor__use[data-v-8201065d]:hover{text-decoration:underline;text-underline-offset:.2em}code[data-v-8201065d]{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-7421ce33]{position:relative;overflow:hidden;background:var(--wx-bg-subtle)}.wx-block-thumb__frame[data-v-7421ce33]{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-7421ce33]{display:grid;place-items:center;height:100%;color:var(--wx-text-muted)}.wx-block-picker[data-v-d04662fd]{display:flex;flex-direction:column;gap:var(--wx-space-16)}.wx-block-picker__group[data-v-d04662fd]{display:flex;flex-direction:column;gap:var(--wx-space-8)}.wx-block-picker__group-title[data-v-d04662fd]{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-d04662fd]{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:var(--wx-space-12)}.wx-block-picker__card[data-v-d04662fd]{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-d04662fd]:hover:not(:disabled),.wx-block-picker__card[data-v-d04662fd]:focus-visible{border-color:var(--wx-color-primary);outline:none}.wx-block-picker__card.is-disabled[data-v-d04662fd]{opacity:.6;cursor:not-allowed}.wx-block-picker__body[data-v-d04662fd]{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-d04662fd]{font-weight:var(--wx-font-weight-semibold)}.wx-blocks-preview[data-v-398e4cef]{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-398e4cef]{position:fixed;inset:0;z-index:var(--wx-z-index-overlay);border:0;border-radius:0}.wx-blocks-preview__bar[data-v-398e4cef]{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-398e4cef]{position:sticky;top:0;z-index:1;background:var(--wx-bg-surface)}.wx-blocks-preview__label[data-v-398e4cef]{flex:1 1 0;min-width:0;font-family:var(--wx-font-family-mono)}.wx-blocks-preview__widths[data-v-398e4cef]{flex:none}.wx-blocks-preview__tools[data-v-398e4cef]{display:flex;flex:1 1 0;gap:var(--wx-space-4);align-items:center;justify-content:flex-end}.wx-blocks-preview__ground[data-v-398e4cef]{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-398e4cef]{max-height:none}.is-compact .wx-blocks-preview__ground[data-v-398e4cef]{padding-inline:0}.is-grown:not(.is-fullscreen) .wx-blocks-preview__ground[data-v-398e4cef]{overflow:visible;max-height:none}.wx-blocks-preview__clip[data-v-398e4cef]{margin-inline:auto;overflow:hidden;box-shadow:var(--wx-shadow-sm)}.wx-blocks-preview__frame[data-v-398e4cef]{display:block;border:0;background:#fff;height:min(72vh,720px);transform-origin:top left}.wx-blocks-tree[data-v-3cef28cd] .wx-sortable-list__content{min-width:0}.wx-blocks-tree__node[data-v-3cef28cd]{display:flex;flex-direction:column;gap:var(--wx-space-2);min-width:0}.wx-blocks-tree__row[data-v-3cef28cd]{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-3cef28cd]:hover{background:var(--wx-bg-subtle)}.wx-blocks-tree__row.is-selected[data-v-3cef28cd]{background:var(--wx-color-primary-soft);border-color:var(--wx-color-primary)}.wx-blocks-tree__name[data-v-3cef28cd]{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-3cef28cd]{opacity:.55}.wx-blocks-tree__flag[data-v-3cef28cd]{display:flex;color:var(--wx-text-muted)}.wx-blocks-tree__flag.is-warning[data-v-3cef28cd]{color:var(--wx-color-warning)}.wx-blocks-tree__flag.is-danger[data-v-3cef28cd]{color:var(--wx-color-danger)}.wx-blocks-tree__actions[data-v-3cef28cd]{display:flex;flex:none}@media(pointer:coarse){.wx-blocks-tree__actions[data-v-3cef28cd] .wx-actions__menu .wx-action{--wx-action-size: 32px;position:relative}.wx-blocks-tree__actions[data-v-3cef28cd] .wx-actions__menu .wx-action:after{content:"";position:absolute;inset:-6px}}.wx-blocks-tree__kids[data-v-3cef28cd]{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-3cef28cd]{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-3cef28cd]:hover{color:var(--wx-color-primary);border-color:var(--wx-color-primary);background:var(--wx-color-primary-soft)}.wx-blocks-host[data-v-9de2f53a]{container-type:inline-size}.wx-blocks[data-v-9de2f53a]{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-9de2f53a]:not(.has-preview){grid-template-columns:minmax(0,1fr)}.wx-blocks__tree[data-v-9de2f53a],.wx-blocks__fields[data-v-9de2f53a]{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-9de2f53a]{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-9de2f53a]{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-9de2f53a]{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.wx-drawer .wx-blocks__fields .wx-blocks__panel-title[data-v-9de2f53a]{display:none}.wx-blocks__trail[data-v-9de2f53a]{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-9de2f53a]{padding:0;border:0;background:none;color:inherit;font:inherit;cursor:pointer;white-space:nowrap}.wx-blocks__trail-step[data-v-9de2f53a]:hover{color:var(--wx-text-default);text-decoration:underline}.wx-blocks__panel-extra[data-v-9de2f53a]{display:flex;align-items:center;gap:var(--wx-space-8)}.wx-blocks__form[data-v-9de2f53a]{padding:var(--wx-space-6)}.wx-blocks-host:not(.is-compact) .wx-blocks__side[data-v-9de2f53a]{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-9de2f53a],.wx-blocks-host:not(.is-compact) .wx-blocks__fields[data-v-9de2f53a]{min-height:0;overflow:clip}.wx-blocks__panel-head[data-v-9de2f53a]{flex:none}.wx-blocks-host:not(.is-compact) .wx-blocks__list[data-v-9de2f53a],.wx-blocks-host:not(.is-compact) .wx-blocks__form[data-v-9de2f53a]{min-height:0;overflow:auto;overscroll-behavior:contain}.wx-blocks-host:not(.is-compact) .wx-blocks__list[data-v-9de2f53a]{padding:var(--wx-space-2);margin:calc(-1 * var(--wx-space-2))}.wx-blocks__preview[data-v-9de2f53a]{min-width:0;position:sticky;top:var(--wx-space-12)}.wx-blocks__preview[data-v-9de2f53a]:has(.is-grown),.wx-blocks__preview[data-v-9de2f53a]:has(.is-fullscreen){position:static}.wx-blocks__tools[data-v-9de2f53a]{display:flex;align-items:center;flex-wrap:wrap;gap:var(--wx-space-8);flex:none}.wx-blocks__add[data-v-9de2f53a],.wx-blocks__preview-button[data-v-9de2f53a]{flex:1 1 auto;min-width:0}.wx-blocks__preview-button[data-v-9de2f53a]{display:none;flex:none}.wx-blocks-host.is-compact .wx-blocks[data-v-9de2f53a],.wx-blocks-host.is-compact .wx-blocks.has-preview[data-v-9de2f53a]{grid-template-columns:minmax(0,1fr)}.wx-drawer .wx-blocks__tree[data-v-9de2f53a],.wx-drawer .wx-blocks__fields[data-v-9de2f53a]{border:0;padding:0;background:none}code[data-v-9de2f53a]{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-blocks-page__toolbar[data-v-14d130be]{display:flex;justify-content:flex-end}.wx-blocks-page__search[data-v-14d130be]{width:100%;max-width:280px}.wx-blocks-page__ghost[data-v-14d130be]{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-14d130be]{border-radius:0}.wx-blocks-page__ghost-body[data-v-14d130be]{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-14d130be]{display:flex;flex-direction:column;gap:var(--wx-space-12)}.wx-blocks-page__group-title[data-v-14d130be]{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-14d130be] .is-ghost{opacity:.35}.wx-blocks-page__cards[data-v-14d130be]{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:var(--wx-gap, var(--wx-space-16))}
|
|
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-e56947a8]{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-e56947a8]{display:flex;gap:var(--wx-space-8);align-items:flex-start}.wx-block-checks__line .wx-icon[data-v-e56947a8]{flex:none;margin-block-start:2px}.is-ok[data-v-e56947a8]{color:var(--wx-text-muted)}.is-ok .wx-icon[data-v-e56947a8]{color:var(--wx-color-success)}.is-warning[data-v-e56947a8]{color:var(--wx-color-warning)}.is-error[data-v-e56947a8]{color:var(--wx-color-danger)}.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-8201065d]{display:flex;flex-direction:column;gap:var(--wx-gap, var(--wx-space-16));container-type:inline-size}.wx-block-editor__ghost-head[data-v-8201065d]{max-width:420px}.wx-block-editor__columns[data-v-8201065d]{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-8201065d]{grid-template-columns:minmax(0,1fr)}.wx-block-editor__split[data-v-8201065d]{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-8201065d],.wx-block-editor__split[data-v-8201065d]{grid-template-columns:minmax(0,1fr)}}.wx-block-editor__call[data-v-8201065d]{min-width:0}.wx-block-editor__call[data-v-8201065d] .wx-card__body{display:flex;flex-direction:column;gap:var(--wx-space-10)}.wx-block-editor__call-tag[data-v-8201065d]{display:flex;flex-wrap:wrap;align-items:flex-start;gap:var(--wx-space-8)}.wx-block-editor__call-tag pre[data-v-8201065d]{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-8201065d]{line-height:1.6;color:var(--wx-text-default);white-space:pre}.wx-block-editor__shape[data-v-8201065d]{display:flex;flex-direction:column;gap:var(--wx-space-6)}.wx-block-editor__shape-fields[data-v-8201065d]{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-8201065d]{display:flex;flex-wrap:wrap;align-items:baseline;gap:var(--wx-space-6)}.wx-block-editor__shape-fields dd[data-v-8201065d]{margin:0;color:var(--wx-text-muted)}.wx-block-editor__shape-type[data-v-8201065d]{font-size:var(--wx-font-size-xs);color:var(--wx-text-muted)}@container (max-width: 520px){.wx-block-editor__shape-fields[data-v-8201065d]{grid-template-columns:minmax(0,1fr)}.wx-block-editor__shape-fields dd[data-v-8201065d]{margin-block-end:var(--wx-space-6)}}.wx-block-editor__examples[data-v-8201065d]{min-width:0}.wx-block-editor__example+.wx-block-editor__example[data-v-8201065d]{margin-block-start:var(--wx-space-12)}.wx-block-editor__example pre[data-v-8201065d]{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-8201065d]{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-8201065d]{position:sticky;top:var(--wx-space-12)}.wx-block-editor__pane[data-v-8201065d]{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-8201065d] .wx-code-editor{border:0;border-radius:0}.wx-block-editor__sample[data-v-8201065d]{min-width:0}.wx-block-editor__pills[data-v-8201065d]{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-8201065d]{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-8201065d]:hover:not(:disabled){border-color:var(--wx-color-primary)}.wx-block-editor__note[data-v-8201065d]{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-8201065d]>:first-child{flex:1 1 auto;min-width:0}.wx-block-editor__sheet[data-v-8201065d]{min-width:0}.wx-block-editor__settings[data-v-8201065d]{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-8201065d]{grid-column:1 / -1}.wx-block-editor__danger[data-v-8201065d]{display:flex;align-items:center;gap:var(--wx-space-12);flex-wrap:wrap}.wx-block-editor__uses[data-v-8201065d]{padding:0;border:0;background:none;font:inherit;color:var(--wx-text-link);cursor:pointer}.wx-block-editor__uses[data-v-8201065d]:hover{text-decoration:underline;text-underline-offset:.2em}.wx-block-editor__uses[data-v-8201065d]:focus-visible{outline:none;border-radius:var(--wx-radius-xs);box-shadow:var(--wx-ring-focus)}.wx-block-editor__usage[data-v-8201065d]{display:flex;flex-direction:column;gap:var(--wx-space-6)}.wx-block-editor__use[data-v-8201065d]{display:flex;align-items:center;gap:var(--wx-space-8)}a.wx-block-editor__use[data-v-8201065d]{color:var(--wx-text-link);text-decoration:none}a.wx-block-editor__use[data-v-8201065d]:hover{text-decoration:underline;text-underline-offset:.2em}code[data-v-8201065d]{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-7421ce33]{position:relative;overflow:hidden;background:var(--wx-bg-subtle)}.wx-block-thumb__frame[data-v-7421ce33]{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-7421ce33]{display:grid;place-items:center;height:100%;color:var(--wx-text-muted)}.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-398e4cef]{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-398e4cef]{position:fixed;inset:0;z-index:var(--wx-z-index-overlay);border:0;border-radius:0}.wx-blocks-preview__bar[data-v-398e4cef]{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-398e4cef]{position:sticky;top:0;z-index:1;background:var(--wx-bg-surface)}.wx-blocks-preview__label[data-v-398e4cef]{flex:1 1 0;min-width:0;font-family:var(--wx-font-family-mono)}.wx-blocks-preview__widths[data-v-398e4cef]{flex:none}.wx-blocks-preview__tools[data-v-398e4cef]{display:flex;flex:1 1 0;gap:var(--wx-space-4);align-items:center;justify-content:flex-end}.wx-blocks-preview__ground[data-v-398e4cef]{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-398e4cef]{max-height:none}.is-compact .wx-blocks-preview__ground[data-v-398e4cef]{padding-inline:0}.is-grown:not(.is-fullscreen) .wx-blocks-preview__ground[data-v-398e4cef]{overflow:visible;max-height:none}.wx-blocks-preview__clip[data-v-398e4cef]{margin-inline:auto;overflow:hidden;box-shadow:var(--wx-shadow-sm)}.wx-blocks-preview__frame[data-v-398e4cef]{display:block;border:0;background:#fff;height:min(72vh,720px);transform-origin:top left}.wx-blocks-tree[data-v-3cef28cd] .wx-sortable-list__content{min-width:0}.wx-blocks-tree__node[data-v-3cef28cd]{display:flex;flex-direction:column;gap:var(--wx-space-2);min-width:0}.wx-blocks-tree__row[data-v-3cef28cd]{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-3cef28cd]:hover{background:var(--wx-bg-subtle)}.wx-blocks-tree__row.is-selected[data-v-3cef28cd]{background:var(--wx-color-primary-soft);border-color:var(--wx-color-primary)}.wx-blocks-tree__name[data-v-3cef28cd]{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-3cef28cd]{opacity:.55}.wx-blocks-tree__flag[data-v-3cef28cd]{display:flex;color:var(--wx-text-muted)}.wx-blocks-tree__flag.is-warning[data-v-3cef28cd]{color:var(--wx-color-warning)}.wx-blocks-tree__flag.is-danger[data-v-3cef28cd]{color:var(--wx-color-danger)}.wx-blocks-tree__actions[data-v-3cef28cd]{display:flex;flex:none}@media(pointer:coarse){.wx-blocks-tree__actions[data-v-3cef28cd] .wx-actions__menu .wx-action{--wx-action-size: 32px;position:relative}.wx-blocks-tree__actions[data-v-3cef28cd] .wx-actions__menu .wx-action:after{content:"";position:absolute;inset:-6px}}.wx-blocks-tree__kids[data-v-3cef28cd]{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-3cef28cd]{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-3cef28cd]:hover{color:var(--wx-color-primary);border-color:var(--wx-color-primary);background:var(--wx-color-primary-soft)}.wx-blocks-host[data-v-a3d0a858]{container-type:inline-size}.wx-blocks[data-v-a3d0a858]{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-a3d0a858]:not(.has-preview){grid-template-columns:minmax(0,1fr)}.wx-blocks__tree[data-v-a3d0a858],.wx-blocks__fields[data-v-a3d0a858]{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-a3d0a858]{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-a3d0a858]{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-a3d0a858]{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.wx-drawer .wx-blocks__fields .wx-blocks__panel-title[data-v-a3d0a858]{display:none}.wx-blocks__trail[data-v-a3d0a858]{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-a3d0a858]{padding:0;border:0;background:none;color:inherit;font:inherit;cursor:pointer;white-space:nowrap}.wx-blocks__trail-step[data-v-a3d0a858]:hover{color:var(--wx-text-default);text-decoration:underline}.wx-blocks__panel-extra[data-v-a3d0a858]{display:flex;align-items:center;gap:var(--wx-space-8)}.wx-blocks__form[data-v-a3d0a858]{padding:var(--wx-space-6)}.wx-blocks-host:not(.is-compact) .wx-blocks__side[data-v-a3d0a858]{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-a3d0a858],.wx-blocks-host:not(.is-compact) .wx-blocks__fields[data-v-a3d0a858]{min-height:0;overflow:clip}.wx-blocks__panel-head[data-v-a3d0a858]{flex:none}.wx-blocks-host:not(.is-compact) .wx-blocks__list[data-v-a3d0a858],.wx-blocks-host:not(.is-compact) .wx-blocks__form[data-v-a3d0a858]{min-height:0;overflow:auto;overscroll-behavior:contain}.wx-blocks-host:not(.is-compact) .wx-blocks__list[data-v-a3d0a858]{padding:var(--wx-space-2);margin:calc(-1 * var(--wx-space-2))}.wx-blocks__preview[data-v-a3d0a858]{min-width:0;position:sticky;top:var(--wx-space-12)}.wx-blocks__preview[data-v-a3d0a858]:has(.is-grown),.wx-blocks__preview[data-v-a3d0a858]:has(.is-fullscreen){position:static}.wx-blocks__tools[data-v-a3d0a858]{display:flex;align-items:center;flex-wrap:wrap;gap:var(--wx-space-8);flex:none}.wx-blocks__add[data-v-a3d0a858],.wx-blocks__preview-button[data-v-a3d0a858]{flex:1 1 auto;min-width:0}.wx-blocks__preview-button[data-v-a3d0a858]{display:none;flex:none}.wx-blocks-host.is-compact .wx-blocks[data-v-a3d0a858],.wx-blocks-host.is-compact .wx-blocks.has-preview[data-v-a3d0a858]{grid-template-columns:minmax(0,1fr)}.wx-drawer .wx-blocks__tree[data-v-a3d0a858],.wx-drawer .wx-blocks__fields[data-v-a3d0a858]{border:0;padding:0;background:none}code[data-v-a3d0a858]{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-blocks-page__toolbar[data-v-14d130be]{display:flex;justify-content:flex-end}.wx-blocks-page__search[data-v-14d130be]{width:100%;max-width:280px}.wx-blocks-page__ghost[data-v-14d130be]{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-14d130be]{border-radius:0}.wx-blocks-page__ghost-body[data-v-14d130be]{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-14d130be]{display:flex;flex-direction:column;gap:var(--wx-space-12)}.wx-blocks-page__group-title[data-v-14d130be]{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-14d130be] .is-ghost{opacity:.35}.wx-blocks-page__cards[data-v-14d130be]{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-c1edffea]{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-c1edffea]{max-width:420px}.wx-region-editor__screen[data-v-c1edffea]{display:flex;flex-direction:column;flex:1;min-height:0}.wx-region-editor__screen[data-v-c1edffea] .wx-screen-host,.wx-region-editor__screen[data-v-c1edffea] .wx-screen,.wx-region-editor__screen[data-v-c1edffea] .wx-tabs,.wx-region-editor__screen[data-v-c1edffea] .wx-tabs__layout,.wx-region-editor__screen[data-v-c1edffea] .wx-tabs__panels,.wx-region-editor__screen[data-v-c1edffea] .wx-tab:not([hidden]){display:flex;flex-direction:column;flex:1;min-height:0}.wx-region-history[data-v-a795962d]{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-a795962d]{padding:var(--wx-space-10) var(--wx-space-12)}.wx-region-history__row[data-v-a795962d]{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-a795962d]:last-child{border-block-end:0}.wx-region-history__number[data-v-a795962d]{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-a795962d]{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)}
|
package/dist/types.d.ts
CHANGED
|
@@ -196,3 +196,61 @@ export interface BlockNode {
|
|
|
196
196
|
*/
|
|
197
197
|
hidden?: boolean;
|
|
198
198
|
}
|
|
199
|
+
/**
|
|
200
|
+
* One layout region as the section lists it: declared by the site's config, and a row in the
|
|
201
|
+
* database only once somebody saved it — `id` is `null` until then, like a declared menu.
|
|
202
|
+
*/
|
|
203
|
+
export interface RegionRow {
|
|
204
|
+
name: string;
|
|
205
|
+
id: number | null;
|
|
206
|
+
title: string;
|
|
207
|
+
description: string | null;
|
|
208
|
+
/** What the config lets stand at the top level; `null` — any block. */
|
|
209
|
+
allow: string[] | null;
|
|
210
|
+
/** How many blocks the top level may hold; `null` — no limit. */
|
|
211
|
+
max: number | null;
|
|
212
|
+
/** On the site: published, and visitors see the blocks rather than the code's view. */
|
|
213
|
+
published: boolean;
|
|
214
|
+
published_at: string | null;
|
|
215
|
+
/** Edits waiting that the site does not have yet. */
|
|
216
|
+
has_draft: boolean;
|
|
217
|
+
/** Blocks in the tree being edited, top level only. */
|
|
218
|
+
count: number;
|
|
219
|
+
/** The view the site prints while the region is empty, or `null` when the tag names none. */
|
|
220
|
+
fallback: string | null;
|
|
221
|
+
updated_at: string | null;
|
|
222
|
+
}
|
|
223
|
+
/** One region with what is being edited in it. */
|
|
224
|
+
export interface RegionDetail extends RegionRow {
|
|
225
|
+
/** The draft when there is one, else what is published. */
|
|
226
|
+
blocks: BlockNode[];
|
|
227
|
+
revision: string;
|
|
228
|
+
/** Signed; the editor appends `&at=<path>` for the page to draw the region on. */
|
|
229
|
+
preview_url: string;
|
|
230
|
+
/** Whether "Move the markup into a block" is offered: the region is empty and the view found. */
|
|
231
|
+
can_adopt: boolean;
|
|
232
|
+
}
|
|
233
|
+
/** A save refused because somebody else wrote first: the region as it now is. */
|
|
234
|
+
export interface RegionConflict {
|
|
235
|
+
message: string;
|
|
236
|
+
revision: string;
|
|
237
|
+
}
|
|
238
|
+
export interface RegionVersion {
|
|
239
|
+
number: number;
|
|
240
|
+
created_at: string | null;
|
|
241
|
+
author: {
|
|
242
|
+
id: number;
|
|
243
|
+
name: string;
|
|
244
|
+
} | null;
|
|
245
|
+
source: BlockSource;
|
|
246
|
+
comment: string | null;
|
|
247
|
+
is_pinned: boolean;
|
|
248
|
+
}
|
|
249
|
+
/** What "Move the markup into a block" made: the region with one block, and its new type. */
|
|
250
|
+
export interface RegionAdopted {
|
|
251
|
+
region: RegionDetail;
|
|
252
|
+
block: {
|
|
253
|
+
id: number;
|
|
254
|
+
slug: string;
|
|
255
|
+
};
|
|
256
|
+
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@webx-ui/module-blocks",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.11.1",
|
|
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.34.
|
|
50
|
-
"@webx-ui/module-admin": "^0.
|
|
51
|
-
"@webx-ui/schema": "^0.6.
|
|
49
|
+
"@webx-ui/core": "^0.34.1",
|
|
50
|
+
"@webx-ui/module-admin": "^0.19.0",
|
|
51
|
+
"@webx-ui/schema": "^0.6.4",
|
|
52
52
|
"vue-draggable-plus": "^0.6.1"
|
|
53
53
|
},
|
|
54
54
|
"devDependencies": {
|