@webx-ui/module-admin 0.23.5 → 0.24.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.
@@ -0,0 +1,61 @@
1
+ /**
2
+ * Two edits of one record, merged against the version both started from.
3
+ *
4
+ * An editor holds three versions when its save is refused: what it opened with (base), what is
5
+ * in the form now (mine) and what the record is now (theirs). A field only one side changed is
6
+ * not a question — it goes in from whichever side changed it. Only a field both sides changed,
7
+ * to different values, is a conflict, and only a conflict is put to the person.
8
+ *
9
+ * The values are the form's model, so the walk knows three shapes:
10
+ *
11
+ * - a plain object — the fields of a screen, the values of a block, the languages of a localized
12
+ * field — merged key by key, so that two people writing two languages of one title do not
13
+ * collide;
14
+ * - a list of blocks (objects with a string `key`) — merged block by block: one side adding,
15
+ * removing or moving a block is applied by key, and a block one side removed while the other
16
+ * edited it is a conflict of its own;
17
+ * - anything else — a string, a number, a list of ids — as a whole value.
18
+ *
19
+ * Nothing here knows what a page is: the same walk merges a service, a recipe or a region.
20
+ */
21
+ export type MergeChoice = 'mine' | 'theirs';
22
+ /** One step of the way to a value: a field (or a language) by name, or a block by key. */
23
+ export type MergeSegment = {
24
+ field: string;
25
+ } | {
26
+ block: string;
27
+ type: string;
28
+ };
29
+ export interface MergeConflict {
30
+ /** Stable for one place in the tree, so a choice survives a merge being run again. */
31
+ id: string;
32
+ path: MergeSegment[];
33
+ /**
34
+ * `changed` — both sides wrote the value; `removed-mine` — this editor removed a block the
35
+ * other side edited; `removed-theirs` — the other side removed a block this editor edited.
36
+ */
37
+ kind: 'changed' | 'removed-mine' | 'removed-theirs';
38
+ base: unknown;
39
+ mine: unknown;
40
+ theirs: unknown;
41
+ }
42
+ export interface MergeResult<T> {
43
+ /** The merge, with every conflict settled by its choice — this editor's side when there is none. */
44
+ value: T;
45
+ conflicts: MergeConflict[];
46
+ }
47
+ /**
48
+ * Merge `mine` and `theirs` against `base`.
49
+ *
50
+ * `choices` settles conflicts by id; one with no choice keeps this editor's side in `value` and
51
+ * is listed in `conflicts` all the same, so the caller can tell a clean merge from a settled one.
52
+ */
53
+ export declare function mergeThreeWay<T>(base: T, mine: T, theirs: T, choices?: Record<string, MergeChoice>): MergeResult<T>;
54
+ /**
55
+ * Where `after` differs from `before`, as paths — what the other side changed, said to the
56
+ * person before they pull it in. A block added or removed is one path, not one per field.
57
+ */
58
+ export declare function changedPaths(before: unknown, after: unknown): MergeSegment[][];
59
+ /** Equal as values: key order, and `null` against a missing key, do not count as a difference. */
60
+ export declare function sameValue(a: unknown, b: unknown): boolean;
61
+ export declare function conflictId(path: MergeSegment[]): string;
@@ -0,0 +1,10 @@
1
+ /** The forms a counted line is written in. Languages without `few` or `many` repeat `other`. */
2
+ export type PluralForm = 'one' | 'few' | 'many' | 'other';
3
+ /**
4
+ * Which form of a counted line to use for `count` in `locale`.
5
+ *
6
+ * The panel has no plural syntax of its own, so a line that has to carry its number up front —
7
+ * "5 pages are deleted" — is written once per CLDR category and picked here. `zero` and `two`
8
+ * fall back on `other`: none of the panel's languages writes them differently.
9
+ */
10
+ export declare function pluralForm(count: number, locale: string): PluralForm;
@@ -0,0 +1,31 @@
1
+ import { ShallowRef } from 'vue';
2
+ import { AdminContext } from './admin';
3
+ /** One shortcode of the site, as `GET <api>/shortcodes` answers with it. */
4
+ export interface Shortcode {
5
+ name: string;
6
+ description: string | null;
7
+ /** What the site prints for it — trusted markup. */
8
+ html: string;
9
+ /** The same as text: what a text field shows as its value. */
10
+ plain: string;
11
+ /** Declared by a package in code, or added by hand in the settings. */
12
+ origin: 'code' | 'settings';
13
+ }
14
+ /**
15
+ * A shortcode as a text field offers it — the shape of `TokenOption` in `@webx-ui/core`, spelled
16
+ * out here rather than imported so a panel built against an older core still compiles.
17
+ */
18
+ export interface ShortcodeToken {
19
+ name: string;
20
+ value?: string;
21
+ description?: string;
22
+ }
23
+ export declare function shortcodeToken(shortcode: Shortcode): ShortcodeToken;
24
+ export declare function loadShortcodes(admin: AdminContext): Promise<ShortcodeToken[]>;
25
+ /** Drops what was loaded, so the next field asks again — after the settings changed one. */
26
+ export declare function forgetShortcodes(admin: AdminContext): void;
27
+ /**
28
+ * The site's shortcodes for a text field's `tokens`: empty at first and filled once the panel
29
+ * has answered. Outside a panel — a demo, a test — it stays empty.
30
+ */
31
+ export declare function useShortcodes(): ShallowRef<ShortcodeToken[]>;
package/dist/style.css CHANGED
@@ -1 +1 @@
1
- .wx-screen__col{display:flex;flex-direction:column;gap:var(--wx-gap, var(--wx-space-16))}.wx-screen__row{max-width:calc(var(--wx-field-max-width, 640px) + var(--wx-row-gutter, 0px))}.wx-screen__unknown{padding:var(--wx-space-8) var(--wx-space-12);border:1px dashed var(--wx-color-danger);border-radius:var(--wx-radius-control);background:var(--wx-color-danger-soft);color:var(--wx-color-danger);font-family:var(--wx-font-family-mono);font-size:var(--wx-font-size-sm)}.wx-categories-field[data-v-640cd836]{display:flex;flex-direction:column;gap:var(--wx-space-8)}.wx-categories-field[data-v-640cd836] .wx-sortable-list__content{display:flex;align-items:center;gap:var(--wx-space-8);min-width:0}.wx-categories-field__name[data-v-640cd836]{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.wx-relations-field[data-v-5ecf0e47]{display:flex;flex-direction:column;gap:var(--wx-space-8);min-width:0}.wx-relations-field[data-v-5ecf0e47] .wx-sortable-list__content{display:flex;align-items:center;gap:var(--wx-space-8);min-width:0}.wx-relations-field__thumb[data-v-5ecf0e47]{flex:none;width:32px;height:32px;min-width:0;object-fit:cover;border-radius:var(--wx-radius-xs);background:var(--wx-bg-fill)}.wx-relations-field__text[data-v-5ecf0e47]{display:flex;flex-direction:column;flex:1 1 auto;min-width:0}.wx-relations-field__title[data-v-5ecf0e47],.wx-relations-field__subtitle[data-v-5ecf0e47]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.wx-relations-field__subtitle[data-v-5ecf0e47],.wx-relations-field__note[data-v-5ecf0e47]{font-size:var(--wx-font-size-sm);color:var(--wx-text-muted)}.wx-relations-field__note[data-v-5ecf0e47]{margin:0}.wx-relations-field.is-unordered[data-v-5ecf0e47] .wx-sortable-list__grip{display:none}.wx-relations-field[data-v-5ecf0e47] .wx-badge{flex:none}.wx-collection-field[data-v-023ad095]{display:flex;flex-direction:column;gap:var(--wx-space-12);min-width:0}.wx-collection-field__row[data-v-023ad095]{display:flex;flex-direction:column;gap:var(--wx-space-4);min-width:0}.wx-collection-field__label[data-v-023ad095]{font-size:var(--wx-font-size-sm);color:var(--wx-text-muted)}.wx-collection-field__limit[data-v-023ad095]{max-width:160px}.wx-collection-field__markup[data-v-023ad095]{display:flex;flex-direction:column;gap:var(--wx-space-4)}.wx-collection-field__reset[data-v-023ad095]{align-self:flex-start}.wx-collection-field__note[data-v-023ad095],.wx-collection-field__hint[data-v-023ad095]{margin:0;font-size:var(--wx-font-size-sm);color:var(--wx-text-muted)}.wx-link-picker[data-v-e54022e5]{display:flex;flex-direction:column;gap:var(--wx-space-8)}.wx-link-picker__entity[data-v-e54022e5]{display:flex;flex-wrap:wrap;gap:var(--wx-space-8)}.wx-link-picker__entity[data-v-e54022e5]>.wx-link-picker__section{flex:0 0 auto;min-width:160px}.wx-link-picker__entity[data-v-e54022e5]>.wx-link-picker__search{flex:1 1 220px;min-width:0}.wx-link-picker__hash[data-v-e54022e5]{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:var(--wx-space-4) var(--wx-space-6)}.wx-link-picker__hash[data-v-e54022e5]>:first-child{grid-column:1 / -1}.wx-link-picker__sign[data-v-e54022e5]{color:var(--wx-text-placeholder)}.wx-link-picker__attributes[data-v-e54022e5]{display:flex;flex-direction:column;gap:var(--wx-space-12)}.wx-link-picker__rel[data-v-e54022e5]{display:flex;flex-direction:column;gap:var(--wx-space-6)}.wx-history[data-v-68eae472]{display:flex;flex-direction:column;gap:var(--wx-space-12);min-width:0;container-type:inline-size}.wx-history__list[data-v-68eae472]{display:flex;flex-direction:column;gap:var(--wx-space-16);margin:0;padding:0;list-style:none}.wx-history-entry[data-v-68eae472]{display:flex;gap:var(--wx-space-8);min-width:0}.wx-history-entry__body[data-v-68eae472]{display:flex;flex-direction:column;gap:var(--wx-space-4);flex:1 1 auto;min-width:0}.wx-history-entry__head[data-v-68eae472],.wx-history-run__head[data-v-68eae472]{display:flex;align-items:center;gap:var(--wx-space-8);min-width:0}.wx-history-entry__head[data-v-68eae472]>:last-child,.wx-history-run__head[data-v-68eae472]>:last-child{margin-inline-start:auto;flex:none}.wx-history-entry__changes[data-v-68eae472]{display:flex;flex-direction:column;gap:var(--wx-space-2);margin:0;padding:0;list-style:none}.wx-history-change[data-v-68eae472]{font-size:var(--wx-font-size-sm);color:var(--wx-text-default);overflow-wrap:anywhere}.wx-history-change__label[data-v-68eae472]{color:var(--wx-text-muted);margin-inline-end:var(--wx-space-4)}.wx-history-change__from[data-v-68eae472]{color:var(--wx-text-muted);text-decoration:line-through}.wx-history-change__arrow[data-v-68eae472]{margin-inline:var(--wx-space-4);color:var(--wx-text-muted)}.wx-history-change__long[data-v-68eae472]{color:var(--wx-text-muted);font-style:italic}.wx-history-entry__run[data-v-68eae472]{align-self:flex-start;margin:0;padding:0;border:0;border-radius:var(--wx-radius-xs);background:none;font:inherit;font-size:var(--wx-font-size-sm);text-align:start;color:var(--wx-text-link);cursor:pointer}.wx-history-entry__run[data-v-68eae472]:hover{text-decoration:underline}.wx-history-entry__run[data-v-68eae472]:focus-visible{outline:none;box-shadow:var(--wx-ring-focus)}.wx-history__more[data-v-68eae472]{display:flex;justify-content:center}.wx-history-run[data-v-68eae472]{display:flex;flex-direction:column;gap:var(--wx-space-8);min-width:0}.wx-history-run__summary[data-v-68eae472]{display:grid;grid-template-columns:max-content 1fr;gap:var(--wx-space-4) var(--wx-space-12);margin:0;font-size:var(--wx-font-size-sm)}.wx-history-run__summary dt[data-v-68eae472]{color:var(--wx-text-muted)}.wx-history-run__summary dd[data-v-68eae472]{margin:0;overflow-wrap:anywhere}.wx-history-run__row[data-v-68eae472]{display:flex;flex-direction:column;gap:var(--wx-space-2)}.wx-row-menu[data-v-cab01f7f]{--wx-action-bg: transparent}.wx-screen-head[data-v-9ebd5372]{--wx-head-line: calc(var(--wx-font-size-2xl) * var(--wx-font-line-height-tight));display:grid;grid-template-columns:auto minmax(0,1fr) auto;grid-template-areas:"back name actions" ". subtitle .";align-items:start;row-gap:var(--wx-space-4);flex:none;min-width:0}.wx-screen-head[data-level="3"][data-v-9ebd5372]{--wx-head-line: calc(var(--wx-font-size-xl) * var(--wx-font-line-height-tight))}.wx-screen-head.has-trail[data-v-9ebd5372]{grid-template-areas:"trail trail trail" "back name actions" ". subtitle ."}.wx-screen-head.has-divider[data-v-9ebd5372]{padding-block-end:var(--wx-space-12);border-block-end:1px solid var(--wx-border-default)}.wx-screen-head__trail[data-v-9ebd5372]{grid-area:trail;min-width:0;overflow-x:auto;overscroll-behavior-x:contain;overflow-anchor:none;scrollbar-width:none;-ms-overflow-style:none}.wx-screen-head__trail[data-v-9ebd5372]::-webkit-scrollbar{display:none}.wx-screen-head__trail[data-v-9ebd5372]>*{flex-wrap:nowrap;white-space:nowrap}.wx-screen-head__trail[data-v-9ebd5372] .wx-breadcrumb__list{flex-wrap:nowrap}.wx-screen-head__trail[data-v-9ebd5372] .wx-breadcrumb-item{flex:none}.wx-screen-head__trail[data-v-9ebd5372] .wx-breadcrumb-item__link{overflow:visible}.wx-screen-head[data-v-9ebd5372]>.wx-screen-head__back{grid-area:back;margin-inline-end:var(--wx-space-8);margin-block-start:calc((var(--wx-head-line) - 30px) / 2)}.wx-screen-head__name[data-v-9ebd5372]{grid-area:name;display:flex;align-items:center;gap:var(--wx-space-8);flex-wrap:wrap;min-width:0}.wx-screen-head__title[data-v-9ebd5372]{min-width:0}.wx-screen-head__subtitle[data-v-9ebd5372]{grid-area:subtitle;min-width:0}.wx-screen-head__actions[data-v-9ebd5372]{grid-area:actions;display:flex;align-items:center;justify-content:flex-end;gap:var(--wx-space-8);flex-wrap:wrap;min-width:0;margin-inline-start:var(--wx-space-12);margin-block-start:calc((var(--wx-head-line) - var(--wx-size-control-md)) / 2)}.wx-screen-head__actions[data-v-9ebd5372] .wx-action{--wx-action-size: var(--wx-size-control-md)}.wx-admin--drawer .wx-screen-head__actions[data-v-9ebd5372]{--wx-size-control-md: 36px}.wx-screen-head.is-narrow.has-button[data-v-9ebd5372]{grid-template-areas:"back name name" ". subtitle subtitle" "actions actions actions"}.wx-screen-head.is-narrow.has-button.has-trail[data-v-9ebd5372]{grid-template-areas:"trail trail trail" "back name name" ". subtitle subtitle" "actions actions actions"}.wx-screen-head.is-narrow.has-button .wx-screen-head__actions[data-v-9ebd5372]{margin-inline-start:0;margin-block-start:var(--wx-space-8)}.wx-screen-head.is-narrow .wx-screen-head__actions[data-v-9ebd5372]>.wx-screen-head__button{flex:1 1 auto}.wx-list-screen[data-v-8c7e5ad1]{display:flex;flex-direction:column;gap:var(--wx-gap, var(--wx-space-16));min-width:0;container-type:inline-size}.wx-list-screen.is-fill[data-v-8c7e5ad1]{min-height:0}.wx-list-screen.is-fill[data-v-8c7e5ad1]>:last-child{flex:1 1 auto;min-height:0}.wx-list-screen.is-fill[data-v-8c7e5ad1] .wx-tabs,.wx-list-screen.is-fill[data-v-8c7e5ad1] .wx-tabs__layout,.wx-list-screen.is-fill[data-v-8c7e5ad1] .wx-tabs__panels{display:flex;flex-direction:column;flex:1 1 auto;min-height:0}.wx-list-screen.is-fill[data-v-8c7e5ad1] .wx-tabs__panel,.wx-list-screen.is-fill[data-v-8c7e5ad1] .wx-tabs__panel>*{flex:1 1 auto;min-height:0}.wx-list-screen.is-fill[data-v-8c7e5ad1] .wx-tabs__bar{flex:0 0 auto}.wx-slug[data-v-2866b684]{display:flex;flex-direction:column;gap:var(--wx-space-8)}.wx-slug__prefix[data-v-2866b684],.wx-slug[data-v-2866b684] .wx-input__inner{font-family:var(--wx-font-family-mono)}.wx-slug__prefix[data-v-2866b684]{color:var(--wx-text-muted)}.wx-admin[data-v-819885ab]{--wx-admin-header-height: 52px;min-height:100dvh;background:var(--wx-bg-body)}.wx-admin--drawer[data-v-819885ab]{--wx-gap: var(--wx-space-8)}.wx-admin--rail[data-v-819885ab]{--wx-gap: var(--wx-space-12)}.wx-admin--sidebar[data-v-819885ab]{--wx-gap: var(--wx-space-16)}.wx-admin__frame[data-v-819885ab]{padding:var(--wx-gap);gap:var(--wx-gap)}.wx-admin__header[data-v-819885ab]{--wx-header-top: var(--wx-gap)}.wx-admin__aside[data-v-819885ab]{--wx-aside-top: var(--wx-gap);--wx-aside-height: calc(100dvh - var(--wx-gap) * 2)}.wx-admin__brand[data-v-819885ab]{display:flex;align-items:center;gap:var(--wx-space-8);box-sizing:border-box;min-height:48px;padding:var(--wx-space-8);border-bottom:1px solid var(--wx-border-muted)}.wx-aside--collapsed .wx-admin__brand[data-v-819885ab]{justify-content:center;padding-inline:var(--wx-space-4)}.wx-admin__brand--stacked[data-v-819885ab]{flex-direction:column;gap:var(--wx-space-4)}.wx-admin__title[data-v-819885ab]{flex:1 1 auto;min-width:0}.wx-admin__brand>.wx-admin__logo[data-v-819885ab]{margin-inline-end:auto}.wx-admin__logo[data-v-819885ab]{flex:0 1 auto;min-width:0;height:28px;width:auto;max-width:100%;object-fit:contain;object-position:left center}.wx-admin__mark[data-v-819885ab]{height:24px;width:24px;object-fit:contain}.wx-admin__user[data-v-819885ab]{display:flex;align-items:center;padding:var(--wx-space-8);border-top:1px solid var(--wx-border-muted)}.wx-aside--collapsed .wx-admin__user[data-v-819885ab]{justify-content:center}.wx-admin__user--drawer[data-v-819885ab]{flex:1 1 auto;justify-content:flex-start;padding:0;border-top:none}.wx-admin__screen[data-v-819885ab]{--wx-fill-height: calc(100dvh - var(--wx-gap) * 2);--wx-action-bar-bottom: var(--wx-gap);min-width:0;min-height:0}.wx-admin--drawer .wx-admin__screen[data-v-819885ab]{--wx-fill-height: calc(100dvh - var(--wx-gap) * 3 - var(--wx-admin-header-height))}.wx-admin-plain[data-v-819885ab]{display:grid;place-items:center;box-sizing:border-box;min-height:100dvh;padding:var(--wx-space-16);background:var(--wx-bg-body)}:root[data-wx-shell],:root[data-wx-shell]>body,html:has(>body>#webx-app),body:has(>#webx-app){margin:0}.wx-admin--drawer .wx-action--md{--wx-action-size: 30px}.wx-admin--drawer .wx-action--lg{--wx-action-size: 36px}.wx-admin__drawer .wx-drawer__content>.wx-menu{padding-inline:0}:root[data-wx-shell=drawer]{--wx-gap: var(--wx-space-8)}:root[data-wx-shell=rail]{--wx-gap: var(--wx-space-12)}:root[data-wx-shell=sidebar]{--wx-gap: var(--wx-space-16)}.wx-address-note[data-v-38e2b4c5]{display:inline-flex;align-items:center;margin-inline-start:var(--wx-space-4);color:var(--wx-text-muted);vertical-align:middle;cursor:help}.wx-address-note[data-v-38e2b4c5]:focus-visible{outline:none;border-radius:var(--wx-radius-xs);box-shadow:var(--wx-ring-focus)}.wx-categories__loading{padding:var(--wx-space-8)}.wx-categories__list.is-plain .wx-sortable-list__row{padding-inline:var(--wx-space-8)}.wx-categories__note{margin-block-start:var(--wx-space-8)}.wx-categories__list .wx-sortable-list__row:hover{background:var(--wx-bg-subtle);border-radius:var(--wx-radius-sm)}.wx-category-row{display:flex;flex-direction:column;gap:var(--wx-space-2);align-items:flex-start;flex:1 1 auto;min-width:0;color:inherit;text-decoration:none}.wx-category-row__name{display:flex;align-items:center;gap:var(--wx-space-6);min-width:0;max-width:100%}.wx-category-row.is-hidden{color:var(--wx-text-muted)}.wx-category-row__count{flex:none;font-variant-numeric:tabular-nums}.wx-save-state[data-v-216e5e44]{display:inline-flex;align-items:center;justify-content:center;flex:none;width:var(--wx-size-control-sm);height:var(--wx-size-control-sm)}.wx-save-state__mark[data-v-216e5e44]{font-size:var(--wx-font-size-lg);color:var(--wx-text-muted)}.wx-save-state__mark.is-saved[data-v-216e5e44]{color:var(--wx-color-success)}.wx-category-editor[data-v-55265992]{display:flex;flex-direction:column;gap:var(--wx-gap, var(--wx-space-16));container-type:inline-size}.wx-category-editor__ghost[data-v-55265992]{max-width:420px}.wx-rename[data-v-d879e8d3]{display:flex;flex-direction:column;gap:var(--wx-space-12)}.wx-rename__footer[data-v-d879e8d3]{display:flex;justify-content:flex-end}.wx-help[data-v-6c280d42]{color:var(--wx-text-default);font-size:var(--wx-font-size-md);line-height:var(--wx-font-line-height-normal)}.wx-help[data-v-6c280d42] h2,.wx-help[data-v-6c280d42] h3,.wx-help[data-v-6c280d42] h4{margin-block:var(--wx-space-18) var(--wx-space-8);font-weight:var(--wx-font-weight-semibold)}.wx-help[data-v-6c280d42] h2{font-size:var(--wx-font-size-lg)}.wx-help[data-v-6c280d42] h3,.wx-help[data-v-6c280d42] h4{font-size:var(--wx-font-size-md)}.wx-help[data-v-6c280d42] :is(h2,h3,h4):first-child{margin-block-start:0}.wx-help[data-v-6c280d42] p,.wx-help[data-v-6c280d42] ul,.wx-help[data-v-6c280d42] ol{margin-block:0 var(--wx-space-12)}.wx-help[data-v-6c280d42] ul,.wx-help[data-v-6c280d42] ol{padding-inline-start:var(--wx-space-24)}.wx-help[data-v-6c280d42] li{margin-block-end:var(--wx-space-4)}.wx-help[data-v-6c280d42] code{padding:0 var(--wx-space-4);border-radius:var(--wx-radius-xs);background:var(--wx-bg-subtle);font-family:var(--wx-font-family-mono);font-size:var(--wx-font-size-sm)}.wx-help[data-v-6c280d42] pre{margin-block:0 var(--wx-space-12);padding:var(--wx-space-12);border-radius:var(--wx-radius-sm);background:var(--wx-bg-subtle);overflow:auto}.wx-help[data-v-6c280d42] pre code{padding:0;background:none}.wx-help[data-v-6c280d42] a{color:var(--wx-color-primary)}.wx-notes[data-v-71004c1a]{display:flex;flex-direction:column;gap:var(--wx-space-12);min-width:0;container-type:inline-size}.wx-notes__list[data-v-71004c1a]{display:flex;flex-direction:column;gap:var(--wx-space-12);margin:0;padding:0;list-style:none}.wx-note[data-v-71004c1a]{display:flex;gap:var(--wx-space-8);min-width:0}.wx-note__body[data-v-71004c1a]{display:flex;flex-direction:column;gap:var(--wx-space-4);flex:1 1 auto;min-width:0}.wx-note__head[data-v-71004c1a]{display:flex;align-items:center;gap:var(--wx-space-8);min-width:0}.wx-note__head[data-v-71004c1a]>:last-child{margin-inline-start:auto}.wx-note__text[data-v-71004c1a]{margin:0;white-space:pre-wrap;overflow-wrap:anywhere;font-size:var(--wx-font-size-sm);color:var(--wx-text-default)}.wx-note__buttons[data-v-71004c1a]{display:flex;align-items:flex-start;gap:var(--wx-space-8)}.wx-notes__new[data-v-71004c1a]{display:flex;flex-direction:column;align-items:stretch;gap:var(--wx-space-8)}.wx-notes__new[data-v-71004c1a]>:first-child{min-width:0}.wx-notes__new[data-v-71004c1a]>:last-child{align-self:flex-start}@container (max-width: 440px){.wx-note__buttons[data-v-71004c1a]{flex-direction:column;align-items:stretch}.wx-notes__new[data-v-71004c1a]>:last-child{align-self:stretch}}.wx-backup-note[data-v-beeee67e]{display:flex;flex-wrap:wrap;align-items:baseline;gap:var(--wx-space-4) var(--wx-space-6);margin:0}
1
+ .wx-screen__col{display:flex;flex-direction:column;gap:var(--wx-gap, var(--wx-space-16))}.wx-screen__row{max-width:calc(var(--wx-field-max-width, 640px) + var(--wx-row-gutter, 0px))}.wx-screen__unknown{padding:var(--wx-space-8) var(--wx-space-12);border:1px dashed var(--wx-color-danger);border-radius:var(--wx-radius-control);background:var(--wx-color-danger-soft);color:var(--wx-color-danger);font-family:var(--wx-font-family-mono);font-size:var(--wx-font-size-sm)}.wx-categories-field[data-v-640cd836]{display:flex;flex-direction:column;gap:var(--wx-space-8)}.wx-categories-field[data-v-640cd836] .wx-sortable-list__content{display:flex;align-items:center;gap:var(--wx-space-8);min-width:0}.wx-categories-field__name[data-v-640cd836]{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.wx-relations-field[data-v-5ecf0e47]{display:flex;flex-direction:column;gap:var(--wx-space-8);min-width:0}.wx-relations-field[data-v-5ecf0e47] .wx-sortable-list__content{display:flex;align-items:center;gap:var(--wx-space-8);min-width:0}.wx-relations-field__thumb[data-v-5ecf0e47]{flex:none;width:32px;height:32px;min-width:0;object-fit:cover;border-radius:var(--wx-radius-xs);background:var(--wx-bg-fill)}.wx-relations-field__text[data-v-5ecf0e47]{display:flex;flex-direction:column;flex:1 1 auto;min-width:0}.wx-relations-field__title[data-v-5ecf0e47],.wx-relations-field__subtitle[data-v-5ecf0e47]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.wx-relations-field__subtitle[data-v-5ecf0e47],.wx-relations-field__note[data-v-5ecf0e47]{font-size:var(--wx-font-size-sm);color:var(--wx-text-muted)}.wx-relations-field__note[data-v-5ecf0e47]{margin:0}.wx-relations-field.is-unordered[data-v-5ecf0e47] .wx-sortable-list__grip{display:none}.wx-relations-field[data-v-5ecf0e47] .wx-badge{flex:none}.wx-collection-field[data-v-023ad095]{display:flex;flex-direction:column;gap:var(--wx-space-12);min-width:0}.wx-collection-field__row[data-v-023ad095]{display:flex;flex-direction:column;gap:var(--wx-space-4);min-width:0}.wx-collection-field__label[data-v-023ad095]{font-size:var(--wx-font-size-sm);color:var(--wx-text-muted)}.wx-collection-field__limit[data-v-023ad095]{max-width:160px}.wx-collection-field__markup[data-v-023ad095]{display:flex;flex-direction:column;gap:var(--wx-space-4)}.wx-collection-field__reset[data-v-023ad095]{align-self:flex-start}.wx-collection-field__note[data-v-023ad095],.wx-collection-field__hint[data-v-023ad095]{margin:0;font-size:var(--wx-font-size-sm);color:var(--wx-text-muted)}.wx-link-picker[data-v-e54022e5]{display:flex;flex-direction:column;gap:var(--wx-space-8)}.wx-link-picker__entity[data-v-e54022e5]{display:flex;flex-wrap:wrap;gap:var(--wx-space-8)}.wx-link-picker__entity[data-v-e54022e5]>.wx-link-picker__section{flex:0 0 auto;min-width:160px}.wx-link-picker__entity[data-v-e54022e5]>.wx-link-picker__search{flex:1 1 220px;min-width:0}.wx-link-picker__hash[data-v-e54022e5]{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:var(--wx-space-4) var(--wx-space-6)}.wx-link-picker__hash[data-v-e54022e5]>:first-child{grid-column:1 / -1}.wx-link-picker__sign[data-v-e54022e5]{color:var(--wx-text-placeholder)}.wx-link-picker__attributes[data-v-e54022e5]{display:flex;flex-direction:column;gap:var(--wx-space-12)}.wx-link-picker__rel[data-v-e54022e5]{display:flex;flex-direction:column;gap:var(--wx-space-6)}.wx-history[data-v-68eae472]{display:flex;flex-direction:column;gap:var(--wx-space-12);min-width:0;container-type:inline-size}.wx-history__list[data-v-68eae472]{display:flex;flex-direction:column;gap:var(--wx-space-16);margin:0;padding:0;list-style:none}.wx-history-entry[data-v-68eae472]{display:flex;gap:var(--wx-space-8);min-width:0}.wx-history-entry__body[data-v-68eae472]{display:flex;flex-direction:column;gap:var(--wx-space-4);flex:1 1 auto;min-width:0}.wx-history-entry__head[data-v-68eae472],.wx-history-run__head[data-v-68eae472]{display:flex;align-items:center;gap:var(--wx-space-8);min-width:0}.wx-history-entry__head[data-v-68eae472]>:last-child,.wx-history-run__head[data-v-68eae472]>:last-child{margin-inline-start:auto;flex:none}.wx-history-entry__changes[data-v-68eae472]{display:flex;flex-direction:column;gap:var(--wx-space-2);margin:0;padding:0;list-style:none}.wx-history-change[data-v-68eae472]{font-size:var(--wx-font-size-sm);color:var(--wx-text-default);overflow-wrap:anywhere}.wx-history-change__label[data-v-68eae472]{color:var(--wx-text-muted);margin-inline-end:var(--wx-space-4)}.wx-history-change__from[data-v-68eae472]{color:var(--wx-text-muted);text-decoration:line-through}.wx-history-change__arrow[data-v-68eae472]{margin-inline:var(--wx-space-4);color:var(--wx-text-muted)}.wx-history-change__long[data-v-68eae472]{color:var(--wx-text-muted);font-style:italic}.wx-history-entry__run[data-v-68eae472]{align-self:flex-start;margin:0;padding:0;border:0;border-radius:var(--wx-radius-xs);background:none;font:inherit;font-size:var(--wx-font-size-sm);text-align:start;color:var(--wx-text-link);cursor:pointer}.wx-history-entry__run[data-v-68eae472]:hover{text-decoration:underline}.wx-history-entry__run[data-v-68eae472]:focus-visible{outline:none;box-shadow:var(--wx-ring-focus)}.wx-history__more[data-v-68eae472]{display:flex;justify-content:center}.wx-history-run[data-v-68eae472]{display:flex;flex-direction:column;gap:var(--wx-space-8);min-width:0}.wx-history-run__summary[data-v-68eae472]{display:grid;grid-template-columns:max-content 1fr;gap:var(--wx-space-4) var(--wx-space-12);margin:0;font-size:var(--wx-font-size-sm)}.wx-history-run__summary dt[data-v-68eae472]{color:var(--wx-text-muted)}.wx-history-run__summary dd[data-v-68eae472]{margin:0;overflow-wrap:anywhere}.wx-history-run__row[data-v-68eae472]{display:flex;flex-direction:column;gap:var(--wx-space-2)}.wx-row-menu[data-v-cab01f7f]{--wx-action-bg: transparent}.wx-screen-head[data-v-9ebd5372]{--wx-head-line: calc(var(--wx-font-size-2xl) * var(--wx-font-line-height-tight));display:grid;grid-template-columns:auto minmax(0,1fr) auto;grid-template-areas:"back name actions" ". subtitle .";align-items:start;row-gap:var(--wx-space-4);flex:none;min-width:0}.wx-screen-head[data-level="3"][data-v-9ebd5372]{--wx-head-line: calc(var(--wx-font-size-xl) * var(--wx-font-line-height-tight))}.wx-screen-head.has-trail[data-v-9ebd5372]{grid-template-areas:"trail trail trail" "back name actions" ". subtitle ."}.wx-screen-head.has-divider[data-v-9ebd5372]{padding-block-end:var(--wx-space-12);border-block-end:1px solid var(--wx-border-default)}.wx-screen-head__trail[data-v-9ebd5372]{grid-area:trail;min-width:0;overflow-x:auto;overscroll-behavior-x:contain;overflow-anchor:none;scrollbar-width:none;-ms-overflow-style:none}.wx-screen-head__trail[data-v-9ebd5372]::-webkit-scrollbar{display:none}.wx-screen-head__trail[data-v-9ebd5372]>*{flex-wrap:nowrap;white-space:nowrap}.wx-screen-head__trail[data-v-9ebd5372] .wx-breadcrumb__list{flex-wrap:nowrap}.wx-screen-head__trail[data-v-9ebd5372] .wx-breadcrumb-item{flex:none}.wx-screen-head__trail[data-v-9ebd5372] .wx-breadcrumb-item__link{overflow:visible}.wx-screen-head[data-v-9ebd5372]>.wx-screen-head__back{grid-area:back;margin-inline-end:var(--wx-space-8);margin-block-start:calc((var(--wx-head-line) - 30px) / 2)}.wx-screen-head__name[data-v-9ebd5372]{grid-area:name;display:flex;align-items:center;gap:var(--wx-space-8);flex-wrap:wrap;min-width:0}.wx-screen-head__title[data-v-9ebd5372]{min-width:0}.wx-screen-head__subtitle[data-v-9ebd5372]{grid-area:subtitle;min-width:0}.wx-screen-head__actions[data-v-9ebd5372]{grid-area:actions;display:flex;align-items:center;justify-content:flex-end;gap:var(--wx-space-8);flex-wrap:wrap;min-width:0;margin-inline-start:var(--wx-space-12);margin-block-start:calc((var(--wx-head-line) - var(--wx-size-control-md)) / 2)}.wx-screen-head__actions[data-v-9ebd5372] .wx-action{--wx-action-size: var(--wx-size-control-md)}.wx-admin--drawer .wx-screen-head__actions[data-v-9ebd5372]{--wx-size-control-md: 36px}.wx-screen-head.is-narrow.has-button[data-v-9ebd5372]{grid-template-areas:"back name name" ". subtitle subtitle" "actions actions actions"}.wx-screen-head.is-narrow.has-button.has-trail[data-v-9ebd5372]{grid-template-areas:"trail trail trail" "back name name" ". subtitle subtitle" "actions actions actions"}.wx-screen-head.is-narrow.has-button .wx-screen-head__actions[data-v-9ebd5372]{margin-inline-start:0;margin-block-start:var(--wx-space-8)}.wx-screen-head.is-narrow .wx-screen-head__actions[data-v-9ebd5372]>.wx-screen-head__button{flex:1 1 auto}.wx-list-screen[data-v-8c7e5ad1]{display:flex;flex-direction:column;gap:var(--wx-gap, var(--wx-space-16));min-width:0;container-type:inline-size}.wx-list-screen.is-fill[data-v-8c7e5ad1]{min-height:0}.wx-list-screen.is-fill[data-v-8c7e5ad1]>:last-child{flex:1 1 auto;min-height:0}.wx-list-screen.is-fill[data-v-8c7e5ad1] .wx-tabs,.wx-list-screen.is-fill[data-v-8c7e5ad1] .wx-tabs__layout,.wx-list-screen.is-fill[data-v-8c7e5ad1] .wx-tabs__panels{display:flex;flex-direction:column;flex:1 1 auto;min-height:0}.wx-list-screen.is-fill[data-v-8c7e5ad1] .wx-tabs__panel,.wx-list-screen.is-fill[data-v-8c7e5ad1] .wx-tabs__panel>*{flex:1 1 auto;min-height:0}.wx-list-screen.is-fill[data-v-8c7e5ad1] .wx-tabs__bar{flex:0 0 auto}.wx-slug[data-v-2866b684]{display:flex;flex-direction:column;gap:var(--wx-space-8)}.wx-slug__prefix[data-v-2866b684],.wx-slug[data-v-2866b684] .wx-input__inner{font-family:var(--wx-font-family-mono)}.wx-slug__prefix[data-v-2866b684]{color:var(--wx-text-muted)}.wx-admin[data-v-819885ab]{--wx-admin-header-height: 52px;min-height:100dvh;background:var(--wx-bg-body)}.wx-admin--drawer[data-v-819885ab]{--wx-gap: var(--wx-space-8)}.wx-admin--rail[data-v-819885ab]{--wx-gap: var(--wx-space-12)}.wx-admin--sidebar[data-v-819885ab]{--wx-gap: var(--wx-space-16)}.wx-admin__frame[data-v-819885ab]{padding:var(--wx-gap);gap:var(--wx-gap)}.wx-admin__header[data-v-819885ab]{--wx-header-top: var(--wx-gap)}.wx-admin__aside[data-v-819885ab]{--wx-aside-top: var(--wx-gap);--wx-aside-height: calc(100dvh - var(--wx-gap) * 2)}.wx-admin__brand[data-v-819885ab]{display:flex;align-items:center;gap:var(--wx-space-8);box-sizing:border-box;min-height:48px;padding:var(--wx-space-8);border-bottom:1px solid var(--wx-border-muted)}.wx-aside--collapsed .wx-admin__brand[data-v-819885ab]{justify-content:center;padding-inline:var(--wx-space-4)}.wx-admin__brand--stacked[data-v-819885ab]{flex-direction:column;gap:var(--wx-space-4)}.wx-admin__title[data-v-819885ab]{flex:1 1 auto;min-width:0}.wx-admin__brand>.wx-admin__logo[data-v-819885ab]{margin-inline-end:auto}.wx-admin__logo[data-v-819885ab]{flex:0 1 auto;min-width:0;height:28px;width:auto;max-width:100%;object-fit:contain;object-position:left center}.wx-admin__mark[data-v-819885ab]{height:24px;width:24px;object-fit:contain}.wx-admin__user[data-v-819885ab]{display:flex;align-items:center;padding:var(--wx-space-8);border-top:1px solid var(--wx-border-muted)}.wx-aside--collapsed .wx-admin__user[data-v-819885ab]{justify-content:center}.wx-admin__user--drawer[data-v-819885ab]{flex:1 1 auto;justify-content:flex-start;padding:0;border-top:none}.wx-admin__screen[data-v-819885ab]{--wx-fill-height: calc(100dvh - var(--wx-gap) * 2);--wx-action-bar-bottom: var(--wx-gap);min-width:0;min-height:0}.wx-admin--drawer .wx-admin__screen[data-v-819885ab]{--wx-fill-height: calc(100dvh - var(--wx-gap) * 3 - var(--wx-admin-header-height))}.wx-admin-plain[data-v-819885ab]{display:grid;place-items:center;box-sizing:border-box;min-height:100dvh;padding:var(--wx-space-16);background:var(--wx-bg-body)}:root[data-wx-shell],:root[data-wx-shell]>body,html:has(>body>#webx-app),body:has(>#webx-app){margin:0}.wx-admin--drawer .wx-action--md{--wx-action-size: 30px}.wx-admin--drawer .wx-action--lg{--wx-action-size: 36px}.wx-admin__drawer .wx-drawer__content>.wx-menu{padding-inline:0}:root[data-wx-shell=drawer]{--wx-gap: var(--wx-space-8)}:root[data-wx-shell=rail]{--wx-gap: var(--wx-space-12)}:root[data-wx-shell=sidebar]{--wx-gap: var(--wx-space-16)}.wx-address-note[data-v-38e2b4c5]{display:inline-flex;align-items:center;margin-inline-start:var(--wx-space-4);color:var(--wx-text-muted);vertical-align:middle;cursor:help}.wx-address-note[data-v-38e2b4c5]:focus-visible{outline:none;border-radius:var(--wx-radius-xs);box-shadow:var(--wx-ring-focus)}.wx-categories__loading{padding:var(--wx-space-8)}.wx-categories__list.is-plain .wx-sortable-list__row{padding-inline:var(--wx-space-8)}.wx-categories__note{margin-block-start:var(--wx-space-8)}.wx-categories__list .wx-sortable-list__row:hover{background:var(--wx-bg-subtle);border-radius:var(--wx-radius-sm)}.wx-category-row{display:flex;flex-direction:column;gap:var(--wx-space-2);align-items:flex-start;flex:1 1 auto;min-width:0;color:inherit;text-decoration:none}.wx-category-row__name{display:flex;align-items:center;gap:var(--wx-space-6);min-width:0;max-width:100%}.wx-category-row.is-hidden{color:var(--wx-text-muted)}.wx-category-row__count{flex:none;font-variant-numeric:tabular-nums}.wx-save-state[data-v-216e5e44]{display:inline-flex;align-items:center;justify-content:center;flex:none;width:var(--wx-size-control-sm);height:var(--wx-size-control-sm)}.wx-save-state__mark[data-v-216e5e44]{font-size:var(--wx-font-size-lg);color:var(--wx-text-muted)}.wx-save-state__mark.is-saved[data-v-216e5e44]{color:var(--wx-color-success)}.wx-category-editor[data-v-55265992]{display:flex;flex-direction:column;gap:var(--wx-gap, var(--wx-space-16));container-type:inline-size}.wx-category-editor__ghost[data-v-55265992]{max-width:420px}.wx-rename[data-v-d879e8d3]{display:flex;flex-direction:column;gap:var(--wx-space-12)}.wx-rename__footer[data-v-d879e8d3]{display:flex;justify-content:flex-end}.wx-help[data-v-6c280d42]{color:var(--wx-text-default);font-size:var(--wx-font-size-md);line-height:var(--wx-font-line-height-normal)}.wx-help[data-v-6c280d42] h2,.wx-help[data-v-6c280d42] h3,.wx-help[data-v-6c280d42] h4{margin-block:var(--wx-space-18) var(--wx-space-8);font-weight:var(--wx-font-weight-semibold)}.wx-help[data-v-6c280d42] h2{font-size:var(--wx-font-size-lg)}.wx-help[data-v-6c280d42] h3,.wx-help[data-v-6c280d42] h4{font-size:var(--wx-font-size-md)}.wx-help[data-v-6c280d42] :is(h2,h3,h4):first-child{margin-block-start:0}.wx-help[data-v-6c280d42] p,.wx-help[data-v-6c280d42] ul,.wx-help[data-v-6c280d42] ol{margin-block:0 var(--wx-space-12)}.wx-help[data-v-6c280d42] ul,.wx-help[data-v-6c280d42] ol{padding-inline-start:var(--wx-space-24)}.wx-help[data-v-6c280d42] li{margin-block-end:var(--wx-space-4)}.wx-help[data-v-6c280d42] code{padding:0 var(--wx-space-4);border-radius:var(--wx-radius-xs);background:var(--wx-bg-subtle);font-family:var(--wx-font-family-mono);font-size:var(--wx-font-size-sm)}.wx-help[data-v-6c280d42] pre{margin-block:0 var(--wx-space-12);padding:var(--wx-space-12);border-radius:var(--wx-radius-sm);background:var(--wx-bg-subtle);overflow:auto}.wx-help[data-v-6c280d42] pre code{padding:0;background:none}.wx-help[data-v-6c280d42] a{color:var(--wx-color-primary)}.wx-notes[data-v-71004c1a]{display:flex;flex-direction:column;gap:var(--wx-space-12);min-width:0;container-type:inline-size}.wx-notes__list[data-v-71004c1a]{display:flex;flex-direction:column;gap:var(--wx-space-12);margin:0;padding:0;list-style:none}.wx-note[data-v-71004c1a]{display:flex;gap:var(--wx-space-8);min-width:0}.wx-note__body[data-v-71004c1a]{display:flex;flex-direction:column;gap:var(--wx-space-4);flex:1 1 auto;min-width:0}.wx-note__head[data-v-71004c1a]{display:flex;align-items:center;gap:var(--wx-space-8);min-width:0}.wx-note__head[data-v-71004c1a]>:last-child{margin-inline-start:auto}.wx-note__text[data-v-71004c1a]{margin:0;white-space:pre-wrap;overflow-wrap:anywhere;font-size:var(--wx-font-size-sm);color:var(--wx-text-default)}.wx-note__buttons[data-v-71004c1a]{display:flex;align-items:flex-start;gap:var(--wx-space-8)}.wx-notes__new[data-v-71004c1a]{display:flex;flex-direction:column;align-items:stretch;gap:var(--wx-space-8)}.wx-notes__new[data-v-71004c1a]>:first-child{min-width:0}.wx-notes__new[data-v-71004c1a]>:last-child{align-self:flex-start}@container (max-width: 440px){.wx-note__buttons[data-v-71004c1a]{flex-direction:column;align-items:stretch}.wx-notes__new[data-v-71004c1a]>:last-child{align-self:stretch}}.wx-editing-alerts__lead[data-v-4d019f39]{margin:0 0 var(--wx-space-8)}.wx-editing-alerts__list[data-v-4d019f39]{display:flex;flex-direction:column;gap:var(--wx-space-12);margin:0;padding:0;list-style:none}.wx-editing-alerts__item[data-v-4d019f39]{display:flex;flex-direction:column;gap:var(--wx-space-4)}.wx-editing-alerts__place[data-v-4d019f39]{font-weight:var(--wx-font-weight-medium)}.wx-editing-alerts__note[data-v-4d019f39],.wx-editing-alerts__was[data-v-4d019f39],.wx-editing-alerts__side[data-v-4d019f39]{color:var(--wx-text-muted)}.wx-editing-alerts__note[data-v-4d019f39]{margin-inline-start:var(--wx-space-8);font-weight:var(--wx-font-weight-regular)}.wx-editing-alerts__side[data-v-4d019f39]{margin-inline-end:var(--wx-space-6);font-size:var(--wx-font-size-sm)}.wx-editing-alerts__choices[data-v-4d019f39]{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr));gap:var(--wx-space-8)}.wx-editing-alerts__choice[data-v-4d019f39]{display:flex;flex-direction:column;align-items:flex-start;gap:var(--wx-space-2);min-width:0;padding:var(--wx-space-8) var(--wx-space-10);border:1px solid var(--wx-border-default);border-radius:var(--wx-radius-sm);background:var(--wx-bg-surface);color:var(--wx-text-default);font:inherit;text-align:start;cursor:pointer}.wx-editing-alerts__choice.is-chosen[data-v-4d019f39]{border-color:var(--wx-border-focus);box-shadow:0 0 0 1px var(--wx-border-focus)}.wx-editing-alerts__choice[data-v-4d019f39]:focus-visible{outline:2px solid var(--wx-border-focus);outline-offset:2px}.wx-editing-alerts__value[data-v-4d019f39]{overflow-wrap:anywhere}.wx-editing-alerts__others[data-v-4d019f39]{margin:0;color:var(--wx-text-muted);font-size:var(--wx-font-size-sm)}.wx-drafts[data-v-dd9f4601]{display:flex;flex-direction:column;gap:var(--wx-space-8)}.wx-drafts__head[data-v-dd9f4601]{display:flex;flex-direction:column;gap:var(--wx-space-2)}.wx-drafts__list[data-v-dd9f4601]{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-drafts__ghost[data-v-dd9f4601]{padding:var(--wx-space-10) var(--wx-space-12)}.wx-drafts__row[data-v-dd9f4601]{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-drafts__row[data-v-dd9f4601]:last-child{border-block-end:0}.wx-drafts__changed[data-v-dd9f4601]{overflow-wrap:anywhere}.wx-drafts__who[data-v-dd9f4601]{display:flex;flex-direction:column;flex:1;min-width:160px}.wx-backup-note[data-v-beeee67e]{display:flex;flex-wrap:wrap;align-items:baseline;gap:var(--wx-space-4) var(--wx-space-6);margin:0}
package/dist/types.d.ts CHANGED
@@ -167,6 +167,17 @@ export interface AdminModule {
167
167
  * written on another host does not open with pictures pointing there.
168
168
  */
169
169
  assetUrls?: (paths: string[], admin: AdminContext) => Promise<Record<string, string | null>>;
170
+ /**
171
+ * What the blocks of a record and their fields are called, for a notice that names the place
172
+ * somebody else changed — «Hero › Text below the button» rather than `below_cta`. The panel
173
+ * cannot depend on the module that has the block library, so that module supplies this.
174
+ */
175
+ blockLabels?: (admin: AdminContext) => Promise<BlockLabels>;
176
+ }
177
+ /** Names of block types and of their fields, as the block library has them. */
178
+ export interface BlockLabels {
179
+ type(slug: string): string | undefined;
180
+ field(slug: string, name: string): string | undefined;
170
181
  }
171
182
  /**
172
183
  * A picture out of a library: where it is right now, and the key it is filed under.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@webx-ui/module-admin",
3
- "version": "0.23.5",
3
+ "version": "0.24.0",
4
4
  "description": "The frame a WebX UI admin panel runs in: bootstrap, the shell, the HTTP client and the module registry that pairs with webx-ui/module-admin on the server.",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -44,9 +44,9 @@
44
44
  "vue-router": "^4.5.0"
45
45
  },
46
46
  "dependencies": {
47
- "@webx-ui/core": "^0.38.0",
48
- "@webx-ui/schema": "^0.8.0",
49
- "@webx-ui/tokens": "^0.5.0"
47
+ "@webx-ui/core": "^0.39.0",
48
+ "@webx-ui/schema": "^0.8.1",
49
+ "@webx-ui/tokens": "^0.6.0"
50
50
  },
51
51
  "devDependencies": {
52
52
  "@types/node": "^24.10.1",