@shwfed/config 2.7.4 → 2.7.6

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.
Files changed (91) hide show
  1. package/dist/mcp.mjs +25 -5
  2. package/dist/module.json +1 -1
  3. package/dist/preview/assets/{badge-BKq7Eh7r.js → badge-C-IvPZBx.js} +1 -1
  4. package/dist/preview/assets/{config-DD3McP6M.js → config-B7hXY5FF.js} +1 -1
  5. package/dist/preview/assets/{config-CXomiRuI.js → config-Bl8L6943.js} +1 -1
  6. package/dist/preview/assets/{config-Dg3cJb4i.js → config-C947O8za.js} +1 -1
  7. package/dist/preview/assets/{config-De_RAxft.js → config-DXlCQMVi.js} +1 -1
  8. package/dist/preview/assets/{config-DpTBe8_L.js → config-DhAntnE5.js} +1 -1
  9. package/dist/preview/assets/{config-DM58--pQ.js → config-Dj0rEZRq.js} +1 -1
  10. package/dist/preview/assets/{config-C2XmKu42.js → config-DppExb4h.js} +1 -1
  11. package/dist/preview/assets/{config-CnsvNcA2.js → config-_aVQvlhc.js} +1 -1
  12. package/dist/preview/assets/{config-C31gRv6X.js → config-l01zamcS.js} +1 -1
  13. package/dist/preview/assets/{definition.vue_vue_type_script_setup_true_lang-D-K8Bmbj.js → definition.vue_vue_type_script_setup_true_lang-BbuC0qEM.js} +1 -1
  14. package/dist/preview/assets/index-B0PL01fm.css +1 -0
  15. package/dist/preview/assets/index-BNaI1T0H.js +680 -0
  16. package/dist/preview/assets/index-BwoBmSxu.js +1 -0
  17. package/dist/preview/assets/{index-4Jigs5K_.js → index-DiC1rvCq.js} +1 -1
  18. package/dist/preview/assets/{item-DnUV5B-b.js → item-GFiAkFW6.js} +1 -1
  19. package/dist/preview/assets/{runtime-ChaoQZI9.js → runtime-5h5U6Ozr.js} +1 -1
  20. package/dist/preview/assets/{runtime-CG4uOgGu.js → runtime-B6dXW6zW.js} +1 -1
  21. package/dist/preview/assets/{runtime-BqhvXsJ-.js → runtime-BEOIc4zU.js} +1 -1
  22. package/dist/preview/assets/{runtime-DnlIppMg.js → runtime-BQnHKogz.js} +1 -1
  23. package/dist/preview/assets/{runtime-W5CcSnyo.js → runtime-Bx7G-5dR.js} +1 -1
  24. package/dist/preview/assets/{runtime-Dj43RjZC.js → runtime-DmV_M4B_.js} +1 -1
  25. package/dist/preview/assets/{runtime-Dhi2Tk84.js → runtime-TNDFpOlo.js} +1 -1
  26. package/dist/preview/assets/{runtime-DAfJmoV1.js → runtime-g9hb36Vh.js} +1 -1
  27. package/dist/preview/assets/{runtime-BCxzICuW.js → runtime-kLWO8JbC.js} +1 -1
  28. package/dist/preview/index.html +2 -2
  29. package/dist/runtime/components/block-layout-editor/index.d.vue.ts +19 -1
  30. package/dist/runtime/components/block-layout-editor/index.vue +131 -38
  31. package/dist/runtime/components/block-layout-editor/index.vue.d.ts +19 -1
  32. package/dist/runtime/components/config/blocks/2026-05-06/com.shwfed.block.form/config.d.vue.ts +4 -0
  33. package/dist/runtime/components/config/blocks/2026-05-06/com.shwfed.block.form/config.vue.d.ts +4 -0
  34. package/dist/runtime/components/config/blocks/2026-05-06/com.shwfed.block.form/runtime.d.vue.ts +4 -0
  35. package/dist/runtime/components/config/blocks/2026-05-06/com.shwfed.block.form/runtime.vue.d.ts +4 -0
  36. package/dist/runtime/components/config/blocks/2026-05-06/com.shwfed.block.form/schema.d.ts +4 -0
  37. package/dist/runtime/components/config/blocks/2026-05-06/com.shwfed.block.table/config.d.vue.ts +4 -0
  38. package/dist/runtime/components/config/blocks/2026-05-06/com.shwfed.block.table/config.vue.d.ts +4 -0
  39. package/dist/runtime/components/config/blocks/2026-05-06/com.shwfed.block.table/runtime.d.vue.ts +4 -0
  40. package/dist/runtime/components/config/blocks/2026-05-06/com.shwfed.block.table/runtime.vue.d.ts +4 -0
  41. package/dist/runtime/components/config/blocks/2026-05-06/com.shwfed.block.table/schema.d.ts +6 -0
  42. package/dist/runtime/components/config/blocks/2026-06-02/com.shwfed.block.card/runtime.vue +46 -26
  43. package/dist/runtime/components/config/blocks/2026-06-02/com.shwfed.block.card/schema.js +1 -1
  44. package/dist/runtime/components/config/config.vue +9 -1
  45. package/dist/runtime/components/config/index.vue +11 -1
  46. package/dist/runtime/components/config/schema.d.ts +25 -0
  47. package/dist/runtime/components/config/schema.js +8 -0
  48. package/dist/runtime/components/form/config.vue +49 -1
  49. package/dist/runtime/components/form/fields/2026-04-24/com.shwfed.form.field.actions/schema.d.ts +1 -0
  50. package/dist/runtime/components/form/fields/2026-04-24/com.shwfed.form.field.actions/schema.js +4 -1
  51. package/dist/runtime/components/form/fields/2026-05-13/com.shwfed.form.field.list/schema.d.ts +1 -0
  52. package/dist/runtime/components/form/fields/2026-05-13/com.shwfed.form.field.list/schema.js +4 -1
  53. package/dist/runtime/components/form/fields/2026-05-18/com.shwfed.form.field.table/schema.d.ts +1 -0
  54. package/dist/runtime/components/form/fields/2026-05-18/com.shwfed.form.field.table/schema.js +4 -1
  55. package/dist/runtime/components/form/fields/2026-05-20/com.shwfed.form.field.collapsible/schema.d.ts +1 -0
  56. package/dist/runtime/components/form/fields/2026-05-20/com.shwfed.form.field.collapsible/schema.js +4 -1
  57. package/dist/runtime/components/form/index.d.vue.ts +1 -0
  58. package/dist/runtime/components/form/index.vue +8 -0
  59. package/dist/runtime/components/form/index.vue.d.ts +1 -0
  60. package/dist/runtime/components/form/schema.d.ts +25 -0
  61. package/dist/runtime/components/form/schema.js +17 -0
  62. package/dist/runtime/components/form/unit-config.vue +32 -4
  63. package/dist/runtime/components/form/utils/history.d.ts +8 -0
  64. package/dist/runtime/components/form/utils/history.js +8 -0
  65. package/dist/runtime/components/form/utils/resolve.d.ts +9 -0
  66. package/dist/runtime/components/table/columns/2026-05-28/com.shwfed.table.column.combobox-multi/config.d.vue.ts +26 -26
  67. package/dist/runtime/components/table/columns/2026-05-28/com.shwfed.table.column.combobox-multi/config.vue.d.ts +26 -26
  68. package/dist/runtime/components/table/columns/2026-05-28/com.shwfed.table.column.combobox-single/config.d.vue.ts +26 -26
  69. package/dist/runtime/components/table/columns/2026-05-28/com.shwfed.table.column.combobox-single/config.vue.d.ts +26 -26
  70. package/dist/runtime/components/table/schema.d.ts +8 -0
  71. package/dist/runtime/components/ui/command/CommandItem.d.vue.ts +2 -2
  72. package/dist/runtime/components/ui/command/CommandItem.vue +1 -0
  73. package/dist/runtime/components/ui/command/CommandItem.vue.d.ts +2 -2
  74. package/dist/runtime/components/ui/context-menu/ContextMenuContent.d.vue.ts +0 -1
  75. package/dist/runtime/components/ui/context-menu/ContextMenuContent.vue +3 -4
  76. package/dist/runtime/components/ui/context-menu/ContextMenuContent.vue.d.ts +0 -1
  77. package/dist/runtime/components/ui/expression-editor/CodeMirrorInput.vue +17 -2
  78. package/dist/runtime/components/ui/input-group/InputGroupCombobox.d.vue.ts +2 -8
  79. package/dist/runtime/components/ui/input-group/InputGroupCombobox.vue +6 -5
  80. package/dist/runtime/components/ui/input-group/InputGroupCombobox.vue.d.ts +2 -8
  81. package/dist/runtime/components/ui/popover/PopoverContent.d.vue.ts +0 -1
  82. package/dist/runtime/components/ui/popover/PopoverContent.vue +3 -4
  83. package/dist/runtime/components/ui/popover/PopoverContent.vue.d.ts +0 -1
  84. package/dist/runtime/components/ui/tooltip/TooltipContent.d.vue.ts +0 -1
  85. package/dist/runtime/components/ui/tooltip/TooltipContent.vue +3 -4
  86. package/dist/runtime/components/ui/tooltip/TooltipContent.vue.d.ts +0 -1
  87. package/dist/runtime/share/event-bus.d.ts +23 -4
  88. package/package.json +1 -1
  89. package/dist/preview/assets/index-CfwL2UCH.js +0 -680
  90. package/dist/preview/assets/index-DNHGrCDe.css +0 -1
  91. package/dist/preview/assets/index-DUo1pTg2.js +0 -1
@@ -8,7 +8,10 @@ export const metadata = {
8
8
  name: "\u8868\u683C",
9
9
  icon: "fluent:table-20-regular",
10
10
  w: { initial: 12, min: 6, max: Infinity },
11
- h: { initial: 10, min: 5, max: Infinity, grow: true }
11
+ h: { initial: 10, min: 5, max: Infinity, grow: true },
12
+ // Nested table/column editor — too complex for the fullscreen inline-config
13
+ // pane; keep the (fullscreen-exiting) drill-down.
14
+ inlineConfig: false
12
15
  };
13
16
  export function schema(configure) {
14
17
  const Table = Schema.suspend(
@@ -16,6 +16,7 @@ export declare const metadata: {
16
16
  readonly max: number;
17
17
  readonly grow: true;
18
18
  };
19
+ readonly inlineConfig: false;
19
20
  };
20
21
  /**
21
22
  * A collapsible section. Pure view — children are flat in the form state
@@ -7,7 +7,10 @@ export const metadata = {
7
7
  name: "\u53EF\u6298\u53E0\u533A\u57DF",
8
8
  icon: "fluent:chevron-down-20-regular",
9
9
  w: { initial: 12, min: 4, max: Infinity },
10
- h: { initial: 4, min: 2, max: Infinity, grow: true }
10
+ h: { initial: 4, min: 2, max: Infinity, grow: true },
11
+ // Hosts a nested sub-form (its own fields + layout) — too complex for the
12
+ // fullscreen inline-config pane; keep the (fullscreen-exiting) drill-down.
13
+ inlineConfig: false
11
14
  };
12
15
  export function schema(configure) {
13
16
  const Unit = Schema.suspend(() => FormUnit(configure));
@@ -16,6 +16,7 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_PublicProps, {
16
16
  validate: () => Promise<boolean>;
17
17
  undo: () => void;
18
18
  redo: () => void;
19
+ reset: () => void;
19
20
  canUndo: import("vue").Ref<boolean, boolean>;
20
21
  canRedo: import("vue").Ref<boolean, boolean>;
21
22
  }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
@@ -16,6 +16,7 @@ import { provideDerivedQuiescence, useDerived } from "./utils/derived";
16
16
  import { useFormHistory } from "./utils/history";
17
17
  import { evaluateInitial } from "./utils/initial";
18
18
  import { provideFormValidate } from "../../share/form-validate";
19
+ import { provideEventTarget } from "../../share/event-bus";
19
20
  import { provideFormReadonly } from "./utils/readonly";
20
21
  import { provideFormState } from "./utils/state";
21
22
  import { provideValidation } from "./utils/validation";
@@ -78,6 +79,12 @@ const validation = provideValidation({
78
79
  });
79
80
  provideFormValidate(validation.validate);
80
81
  const formHistory = useFormHistory(state, { quiescence, seeded, dirty: formState.dirty });
82
+ const formInstanceId = config.value?.id ?? crypto.randomUUID();
83
+ provideEventTarget(formInstanceId, {
84
+ "undo": () => Effect.sync(formHistory.undo),
85
+ "redo": () => Effect.sync(formHistory.redo),
86
+ "reset-to-initial": () => Effect.sync(formHistory.reset)
87
+ });
81
88
  defineExpose({
82
89
  seeded,
83
90
  flush: commitBus.flushAll,
@@ -85,6 +92,7 @@ defineExpose({
85
92
  validate: validation.validate,
86
93
  undo: formHistory.undo,
87
94
  redo: formHistory.redo,
95
+ reset: formHistory.reset,
88
96
  canUndo: formHistory.canUndo,
89
97
  canRedo: formHistory.canRedo
90
98
  });
@@ -16,6 +16,7 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_PublicProps, {
16
16
  validate: () => Promise<boolean>;
17
17
  undo: () => void;
18
18
  redo: () => void;
19
+ reset: () => void;
19
20
  canUndo: import("vue").Ref<boolean, boolean>;
20
21
  canRedo: import("vue").Ref<boolean, boolean>;
21
22
  }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
@@ -7,6 +7,23 @@ export { commonFieldFields } from './utils/common.js';
7
7
  export { getStructFieldTitle, getStructFieldDescription } from './utils/schema-meta.js';
8
8
  export { Align, DEFAULT_GAP, LayoutSet, validatePlacements } from '../../share/layout.js';
9
9
  declare const KIND = "shwfed.component.form";
10
+ export declare const metadata: {
11
+ readonly name: "表单";
12
+ readonly icon: "fluent:form-20-regular";
13
+ readonly operations: readonly [{
14
+ readonly id: "undo";
15
+ readonly name: "撤销";
16
+ readonly icon: "fluent:arrow-undo-20-regular";
17
+ }, {
18
+ readonly id: "redo";
19
+ readonly name: "重做";
20
+ readonly icon: "fluent:arrow-redo-20-regular";
21
+ }, {
22
+ readonly id: "reset-to-initial";
23
+ readonly name: "重置为初始值";
24
+ readonly icon: "fluent:arrow-reset-20-regular";
25
+ }];
26
+ };
10
27
  type AnySchema = Schema.Schema<any, any, never>;
11
28
  /**
12
29
  * The shared body of a form — fields + layouts only, with placement
@@ -73,10 +90,12 @@ export declare function FormUnit(configure: (env: Environment) => void): Schema.
73
90
  export { registerFormVariablesIfAbsent };
74
91
  export declare function FormConfig(configure: (env: Environment) => void): Schema.refine<{
75
92
  readonly style?: string | undefined;
93
+ readonly id?: string | undefined;
76
94
  readonly initial?: {
77
95
  readonly data: string;
78
96
  readonly request?: string | undefined;
79
97
  } | undefined;
98
+ readonly displayName?: string | undefined;
80
99
  readonly kind: "shwfed.component.form";
81
100
  readonly fields: readonly any[];
82
101
  readonly layouts: readonly {
@@ -131,6 +150,8 @@ export declare function FormConfig(configure: (env: Environment) => void): Schem
131
150
  }>;
132
151
  }>>>;
133
152
  kind: Schema.tag<"shwfed.component.form">;
153
+ id: Schema.optional<Schema.refine<string, typeof Schema.String>>;
154
+ displayName: Schema.optional<Schema.SchemaClass<string, string, never>>;
134
155
  initial: Schema.optional<Schema.transform<Schema.Union<[Schema.Schema<string, string, never>, Schema.Struct<{
135
156
  request: Schema.optional<Schema.Schema<string, string, never>>;
136
157
  data: Schema.Schema<string, string, never>;
@@ -143,10 +164,12 @@ export declare function FormConfig(configure: (env: Environment) => void): Schem
143
164
  }>>;
144
165
  export declare function createFormConfig(body: Omit<Schema.Schema.Type<ReturnType<typeof FormConfig>>, 'kind'>): {
145
166
  style?: string | undefined;
167
+ id?: string | undefined;
146
168
  initial?: {
147
169
  readonly data: string;
148
170
  readonly request?: string | undefined;
149
171
  } | undefined;
172
+ displayName?: string | undefined;
150
173
  fields: readonly any[];
151
174
  layouts: readonly {
152
175
  readonly name: string;
@@ -181,6 +204,8 @@ export type FormUnitValue = Readonly<{
181
204
  }>;
182
205
  export type FormConfigValue = Readonly<{
183
206
  kind: typeof KIND;
207
+ id?: string;
208
+ displayName?: string;
184
209
  initial?: InitialSource;
185
210
  readonly?: string;
186
211
  style?: string;
@@ -11,6 +11,15 @@ export { commonFieldFields } from "./utils/common.js";
11
11
  export { getStructFieldTitle, getStructFieldDescription } from "./utils/schema-meta.js";
12
12
  export { Align, DEFAULT_GAP, LayoutSet, validatePlacements } from "../../share/layout.js";
13
13
  const KIND = "shwfed.component.form";
14
+ export const metadata = {
15
+ name: "\u8868\u5355",
16
+ icon: "fluent:form-20-regular",
17
+ operations: [
18
+ { id: "undo", name: "\u64A4\u9500", icon: "fluent:arrow-undo-20-regular" },
19
+ { id: "redo", name: "\u91CD\u505A", icon: "fluent:arrow-redo-20-regular" },
20
+ { id: "reset-to-initial", name: "\u91CD\u7F6E\u4E3A\u521D\u59CB\u503C", icon: "fluent:arrow-reset-20-regular" }
21
+ ]
22
+ };
14
23
  function unitFields(configure) {
15
24
  const fieldSchemas = allFieldSchemas(configure);
16
25
  const Field = fieldSchemas.length === 0 ? Schema.Never : fieldSchemas.length === 1 ? fieldSchemas[0] : Schema.Union(...fieldSchemas);
@@ -88,6 +97,13 @@ export function FormConfig(configure) {
88
97
  );
89
98
  return Schema.Struct({
90
99
  kind: Schema.tag(KIND),
100
+ id: Schema.optional(Schema.UUID.annotations({
101
+ description: "\u8868\u5355\u5B9E\u4F8B\u552F\u4E00\u6807\u8BC6\uFF1B\u4F5C\u4E3A\u4E8B\u4EF6\u76EE\u6807\u88AB op-request \u5F15\u7528"
102
+ })),
103
+ displayName: Schema.optional(Schema.String.annotations({
104
+ title: "\u5185\u90E8\u540D\u79F0",
105
+ description: "\u4EC5\u5728\u914D\u7F6E\u754C\u9762\u53EF\u89C1\u7684\u8868\u5355\u540D\u79F0\uFF0C\u7528\u4E8E\u5728\u4E8B\u4EF6\u76EE\u6807\u7B49\u4F4D\u7F6E\u6807\u8BC6\u8BE5\u8868\u5355\uFF1B\u8FD0\u884C\u65F6\u4E0D\u5C55\u793A"
106
+ })),
91
107
  initial: Schema.optional(Initial.annotations({
92
108
  title: "\u521D\u59CB\u503C",
93
109
  description: "\u8868\u5355\u521D\u59CB\u503C\u7684\u6765\u6E90\uFF1A\u53EF\u9009\u7684 HTTP \u8BF7\u6C42\uFF0C\u52A0\u4E00\u4E2A\u8FD4\u56DE\u521D\u59CB\u503C\u5BF9\u8C61\u7684 CEL \u8868\u8FBE\u5F0F"
@@ -118,6 +134,7 @@ export function createFormConfig(body) {
118
134
  export function defaultFormConfig() {
119
135
  return {
120
136
  kind: KIND,
137
+ id: crypto.randomUUID(),
121
138
  fields: [],
122
139
  layouts: [{ name: "\u9ED8\u8BA4", layout: { columns: 1, placements: {} } }]
123
140
  };
@@ -218,15 +218,25 @@ async function pasteFields(target) {
218
218
  }
219
219
  toast.success(`\u5DF2\u7C98\u8D34 ${pasted.length} \u4E2A\u5B57\u6BB5`);
220
220
  }
221
- function updateActiveField(next) {
222
- const id = activeFieldId.value;
223
- if (!id) return;
221
+ function updateField(id, next) {
224
222
  const i = unit.value.fields.findIndex((f) => f.id === id);
225
223
  if (i < 0) return;
226
224
  const fields = [...unit.value.fields];
227
225
  fields[i] = next;
228
226
  unit.value = { ...unit.value, fields };
229
227
  }
228
+ function updateActiveField(next) {
229
+ const id = activeFieldId.value;
230
+ if (!id) return;
231
+ updateField(id, next);
232
+ }
233
+ function fieldById(id) {
234
+ return unit.value.fields.find((f) => f.id === id) ?? null;
235
+ }
236
+ function fieldEntryById(id) {
237
+ const f = fieldById(id);
238
+ return f ? findField(f.type, f.compatibilityDate) ?? null : null;
239
+ }
230
240
  const inheritedCEL = injectCELContext();
231
241
  function celForMigration(expression, context) {
232
242
  return rawCel(expression, { ...celBindings(inheritedCEL), ...context });
@@ -478,7 +488,25 @@ function isExtraActive(id) {
478
488
  @delete-items="removeFields"
479
489
  @copy-items="copyFields"
480
490
  @paste="pasteFields"
481
- />
491
+ >
492
+ <!-- Fullscreen inline-config pane body: render the field's own
493
+ config editor for a simple field opened inline, without
494
+ pushing the drill stack. -->
495
+ <template #inline-config="{ itemId }">
496
+ <component
497
+ :is="fieldEntryById(itemId).config"
498
+ v-if="fieldEntryById(itemId)?.config"
499
+ :model-value="fieldById(itemId)"
500
+ @update:model-value="(next) => updateField(itemId, next)"
501
+ />
502
+ <div
503
+ v-else
504
+ class="text-sm text-red-500"
505
+ >
506
+ 未注册的字段类型
507
+ </div>
508
+ </template>
509
+ </BlockLayoutEditor>
482
510
  </div>
483
511
  </div>
484
512
 
@@ -15,6 +15,14 @@ export declare function deepClone<T>(value: T): T;
15
15
  export type FormHistory = {
16
16
  undo: () => void;
17
17
  redo: () => void;
18
+ /**
19
+ * Restore the form to its initial (post-seed, post-first-derivation)
20
+ * baseline — the same state `undo` can never rewind past. Written through
21
+ * the normal commit path (not the navigate suppression), so the reset is
22
+ * itself recorded as a history entry and can be undone to recover the
23
+ * discarded edits. A no-op until that baseline has been established.
24
+ */
25
+ reset: () => void;
18
26
  canUndo: Ref<boolean>;
19
27
  canRedo: Ref<boolean>;
20
28
  };
@@ -35,6 +35,7 @@ export function useFormHistory(state, options) {
35
35
  let navigating = false;
36
36
  let recording = false;
37
37
  let snapshotPending = false;
38
+ let initialSnapshot;
38
39
  async function scheduleSnapshot() {
39
40
  if (snapshotPending) return;
40
41
  snapshotPending = true;
@@ -54,6 +55,7 @@ export function useFormHistory(state, options) {
54
55
  tracked.value = capture();
55
56
  history.commit();
56
57
  history.clear();
58
+ initialSnapshot = clone(tracked.value);
57
59
  recording = true;
58
60
  });
59
61
  function navigate(run) {
@@ -65,9 +67,15 @@ export function useFormHistory(state, options) {
65
67
  navigating = false;
66
68
  });
67
69
  }
70
+ function reset() {
71
+ if (!initialSnapshot) return;
72
+ state.value = deepClone(initialSnapshot.state);
73
+ dirty.value = new Set(initialSnapshot.dirty);
74
+ }
68
75
  return {
69
76
  undo: () => navigate(() => history.undo()),
70
77
  redo: () => navigate(() => history.redo()),
78
+ reset,
71
79
  canUndo: history.canUndo,
72
80
  canRedo: history.canRedo
73
81
  };
@@ -56,6 +56,15 @@ export type FieldMetadata = Readonly<{
56
56
  icon: string;
57
57
  w: FieldSizeRange;
58
58
  h: FieldSizeRange;
59
+ /**
60
+ * Whether this field can be configured *inline* — in a right-docked pane —
61
+ * while the layout editor is in fullscreen. Absent / `true` → supported
62
+ * (the default for simple fields). Set `false` for fields whose config is
63
+ * too large or too structurally nested to fit a docked pane (list, table,
64
+ * actions, collapsible); those keep the drill-down behavior, which exits
65
+ * fullscreen. See `BlockLayoutEditor`'s inline-config pane.
66
+ */
67
+ inlineConfig?: boolean;
59
68
  }>;
60
69
  /**
61
70
  * Optional creation-time defaults factory. Returns a partial config that
@@ -33,19 +33,6 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_ModelProps, {},
33
33
  readonly message: string;
34
34
  }[]] | undefined;
35
35
  readonly readonly?: string | undefined;
36
- readonly write: {
37
- readonly kind: "binding";
38
- readonly binding: string;
39
- } | {
40
- readonly onChange?: string | undefined;
41
- readonly kind: "remote";
42
- readonly triggers?: readonly {
43
- readonly target: string;
44
- readonly operation: string;
45
- }[] | undefined;
46
- readonly accessor: string;
47
- readonly successMessage?: string | undefined;
48
- };
49
36
  readonly grow?: boolean | undefined;
50
37
  readonly enableSorting?: boolean | undefined;
51
38
  readonly options: {
@@ -90,6 +77,19 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_ModelProps, {},
90
77
  }[];
91
78
  };
92
79
  readonly sortKey?: string | undefined;
80
+ readonly write: {
81
+ readonly kind: "binding";
82
+ readonly binding: string;
83
+ } | {
84
+ readonly onChange?: string | undefined;
85
+ readonly kind: "remote";
86
+ readonly triggers?: readonly {
87
+ readonly target: string;
88
+ readonly operation: string;
89
+ }[] | undefined;
90
+ readonly accessor: string;
91
+ readonly successMessage?: string | undefined;
92
+ };
93
93
  }) => any;
94
94
  }, string, import("vue").PublicProps, Readonly<__VLS_ModelProps> & Readonly<{
95
95
  "onUpdate:modelValue"?: ((value: {
@@ -122,19 +122,6 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_ModelProps, {},
122
122
  readonly message: string;
123
123
  }[]] | undefined;
124
124
  readonly readonly?: string | undefined;
125
- readonly write: {
126
- readonly kind: "binding";
127
- readonly binding: string;
128
- } | {
129
- readonly onChange?: string | undefined;
130
- readonly kind: "remote";
131
- readonly triggers?: readonly {
132
- readonly target: string;
133
- readonly operation: string;
134
- }[] | undefined;
135
- readonly accessor: string;
136
- readonly successMessage?: string | undefined;
137
- };
138
125
  readonly grow?: boolean | undefined;
139
126
  readonly enableSorting?: boolean | undefined;
140
127
  readonly options: {
@@ -179,6 +166,19 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_ModelProps, {},
179
166
  }[];
180
167
  };
181
168
  readonly sortKey?: string | undefined;
169
+ readonly write: {
170
+ readonly kind: "binding";
171
+ readonly binding: string;
172
+ } | {
173
+ readonly onChange?: string | undefined;
174
+ readonly kind: "remote";
175
+ readonly triggers?: readonly {
176
+ readonly target: string;
177
+ readonly operation: string;
178
+ }[] | undefined;
179
+ readonly accessor: string;
180
+ readonly successMessage?: string | undefined;
181
+ };
182
182
  }) => any) | undefined;
183
183
  }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
184
184
  declare const _default: typeof __VLS_export;
@@ -33,19 +33,6 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_ModelProps, {},
33
33
  readonly message: string;
34
34
  }[]] | undefined;
35
35
  readonly readonly?: string | undefined;
36
- readonly write: {
37
- readonly kind: "binding";
38
- readonly binding: string;
39
- } | {
40
- readonly onChange?: string | undefined;
41
- readonly kind: "remote";
42
- readonly triggers?: readonly {
43
- readonly target: string;
44
- readonly operation: string;
45
- }[] | undefined;
46
- readonly accessor: string;
47
- readonly successMessage?: string | undefined;
48
- };
49
36
  readonly grow?: boolean | undefined;
50
37
  readonly enableSorting?: boolean | undefined;
51
38
  readonly options: {
@@ -90,6 +77,19 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_ModelProps, {},
90
77
  }[];
91
78
  };
92
79
  readonly sortKey?: string | undefined;
80
+ readonly write: {
81
+ readonly kind: "binding";
82
+ readonly binding: string;
83
+ } | {
84
+ readonly onChange?: string | undefined;
85
+ readonly kind: "remote";
86
+ readonly triggers?: readonly {
87
+ readonly target: string;
88
+ readonly operation: string;
89
+ }[] | undefined;
90
+ readonly accessor: string;
91
+ readonly successMessage?: string | undefined;
92
+ };
93
93
  }) => any;
94
94
  }, string, import("vue").PublicProps, Readonly<__VLS_ModelProps> & Readonly<{
95
95
  "onUpdate:modelValue"?: ((value: {
@@ -122,19 +122,6 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_ModelProps, {},
122
122
  readonly message: string;
123
123
  }[]] | undefined;
124
124
  readonly readonly?: string | undefined;
125
- readonly write: {
126
- readonly kind: "binding";
127
- readonly binding: string;
128
- } | {
129
- readonly onChange?: string | undefined;
130
- readonly kind: "remote";
131
- readonly triggers?: readonly {
132
- readonly target: string;
133
- readonly operation: string;
134
- }[] | undefined;
135
- readonly accessor: string;
136
- readonly successMessage?: string | undefined;
137
- };
138
125
  readonly grow?: boolean | undefined;
139
126
  readonly enableSorting?: boolean | undefined;
140
127
  readonly options: {
@@ -179,6 +166,19 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_ModelProps, {},
179
166
  }[];
180
167
  };
181
168
  readonly sortKey?: string | undefined;
169
+ readonly write: {
170
+ readonly kind: "binding";
171
+ readonly binding: string;
172
+ } | {
173
+ readonly onChange?: string | undefined;
174
+ readonly kind: "remote";
175
+ readonly triggers?: readonly {
176
+ readonly target: string;
177
+ readonly operation: string;
178
+ }[] | undefined;
179
+ readonly accessor: string;
180
+ readonly successMessage?: string | undefined;
181
+ };
182
182
  }) => any) | undefined;
183
183
  }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
184
184
  declare const _default: typeof __VLS_export;
@@ -33,19 +33,6 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_ModelProps, {},
33
33
  readonly message: string;
34
34
  }[]] | undefined;
35
35
  readonly readonly?: string | undefined;
36
- readonly write: {
37
- readonly kind: "binding";
38
- readonly binding: string;
39
- } | {
40
- readonly onChange?: string | undefined;
41
- readonly kind: "remote";
42
- readonly triggers?: readonly {
43
- readonly target: string;
44
- readonly operation: string;
45
- }[] | undefined;
46
- readonly accessor: string;
47
- readonly successMessage?: string | undefined;
48
- };
49
36
  readonly grow?: boolean | undefined;
50
37
  readonly enableSorting?: boolean | undefined;
51
38
  readonly options: {
@@ -90,6 +77,19 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_ModelProps, {},
90
77
  }[];
91
78
  };
92
79
  readonly sortKey?: string | undefined;
80
+ readonly write: {
81
+ readonly kind: "binding";
82
+ readonly binding: string;
83
+ } | {
84
+ readonly onChange?: string | undefined;
85
+ readonly kind: "remote";
86
+ readonly triggers?: readonly {
87
+ readonly target: string;
88
+ readonly operation: string;
89
+ }[] | undefined;
90
+ readonly accessor: string;
91
+ readonly successMessage?: string | undefined;
92
+ };
93
93
  }) => any;
94
94
  }, string, import("vue").PublicProps, Readonly<__VLS_ModelProps> & Readonly<{
95
95
  "onUpdate:modelValue"?: ((value: {
@@ -122,19 +122,6 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_ModelProps, {},
122
122
  readonly message: string;
123
123
  }[]] | undefined;
124
124
  readonly readonly?: string | undefined;
125
- readonly write: {
126
- readonly kind: "binding";
127
- readonly binding: string;
128
- } | {
129
- readonly onChange?: string | undefined;
130
- readonly kind: "remote";
131
- readonly triggers?: readonly {
132
- readonly target: string;
133
- readonly operation: string;
134
- }[] | undefined;
135
- readonly accessor: string;
136
- readonly successMessage?: string | undefined;
137
- };
138
125
  readonly grow?: boolean | undefined;
139
126
  readonly enableSorting?: boolean | undefined;
140
127
  readonly options: {
@@ -179,6 +166,19 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_ModelProps, {},
179
166
  }[];
180
167
  };
181
168
  readonly sortKey?: string | undefined;
169
+ readonly write: {
170
+ readonly kind: "binding";
171
+ readonly binding: string;
172
+ } | {
173
+ readonly onChange?: string | undefined;
174
+ readonly kind: "remote";
175
+ readonly triggers?: readonly {
176
+ readonly target: string;
177
+ readonly operation: string;
178
+ }[] | undefined;
179
+ readonly accessor: string;
180
+ readonly successMessage?: string | undefined;
181
+ };
182
182
  }) => any) | undefined;
183
183
  }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
184
184
  declare const _default: typeof __VLS_export;
@@ -33,19 +33,6 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_ModelProps, {},
33
33
  readonly message: string;
34
34
  }[]] | undefined;
35
35
  readonly readonly?: string | undefined;
36
- readonly write: {
37
- readonly kind: "binding";
38
- readonly binding: string;
39
- } | {
40
- readonly onChange?: string | undefined;
41
- readonly kind: "remote";
42
- readonly triggers?: readonly {
43
- readonly target: string;
44
- readonly operation: string;
45
- }[] | undefined;
46
- readonly accessor: string;
47
- readonly successMessage?: string | undefined;
48
- };
49
36
  readonly grow?: boolean | undefined;
50
37
  readonly enableSorting?: boolean | undefined;
51
38
  readonly options: {
@@ -90,6 +77,19 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_ModelProps, {},
90
77
  }[];
91
78
  };
92
79
  readonly sortKey?: string | undefined;
80
+ readonly write: {
81
+ readonly kind: "binding";
82
+ readonly binding: string;
83
+ } | {
84
+ readonly onChange?: string | undefined;
85
+ readonly kind: "remote";
86
+ readonly triggers?: readonly {
87
+ readonly target: string;
88
+ readonly operation: string;
89
+ }[] | undefined;
90
+ readonly accessor: string;
91
+ readonly successMessage?: string | undefined;
92
+ };
93
93
  }) => any;
94
94
  }, string, import("vue").PublicProps, Readonly<__VLS_ModelProps> & Readonly<{
95
95
  "onUpdate:modelValue"?: ((value: {
@@ -122,19 +122,6 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_ModelProps, {},
122
122
  readonly message: string;
123
123
  }[]] | undefined;
124
124
  readonly readonly?: string | undefined;
125
- readonly write: {
126
- readonly kind: "binding";
127
- readonly binding: string;
128
- } | {
129
- readonly onChange?: string | undefined;
130
- readonly kind: "remote";
131
- readonly triggers?: readonly {
132
- readonly target: string;
133
- readonly operation: string;
134
- }[] | undefined;
135
- readonly accessor: string;
136
- readonly successMessage?: string | undefined;
137
- };
138
125
  readonly grow?: boolean | undefined;
139
126
  readonly enableSorting?: boolean | undefined;
140
127
  readonly options: {
@@ -179,6 +166,19 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_ModelProps, {},
179
166
  }[];
180
167
  };
181
168
  readonly sortKey?: string | undefined;
169
+ readonly write: {
170
+ readonly kind: "binding";
171
+ readonly binding: string;
172
+ } | {
173
+ readonly onChange?: string | undefined;
174
+ readonly kind: "remote";
175
+ readonly triggers?: readonly {
176
+ readonly target: string;
177
+ readonly operation: string;
178
+ }[] | undefined;
179
+ readonly accessor: string;
180
+ readonly successMessage?: string | undefined;
181
+ };
182
182
  }) => any) | undefined;
183
183
  }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
184
184
  declare const _default: typeof __VLS_export;
@@ -135,10 +135,12 @@ export declare function TableConfig(configure: (env: Environment) => void): Sche
135
135
  }[];
136
136
  readonly query?: {
137
137
  readonly style?: string | undefined;
138
+ readonly id?: string | undefined;
138
139
  readonly initial?: {
139
140
  readonly data: string;
140
141
  readonly request?: string | undefined;
141
142
  } | undefined;
143
+ readonly displayName?: string | undefined;
142
144
  readonly kind: "shwfed.component.form";
143
145
  readonly fields: readonly any[];
144
146
  readonly layouts: readonly {
@@ -440,10 +442,12 @@ export declare function TableConfig(configure: (env: Environment) => void): Sche
440
442
  }>>;
441
443
  query: Schema.optional<Schema.refine<{
442
444
  readonly style?: string | undefined;
445
+ readonly id?: string | undefined;
443
446
  readonly initial?: {
444
447
  readonly data: string;
445
448
  readonly request?: string | undefined;
446
449
  } | undefined;
450
+ readonly displayName?: string | undefined;
447
451
  readonly kind: "shwfed.component.form";
448
452
  readonly fields: readonly any[];
449
453
  readonly layouts: readonly {
@@ -498,6 +502,8 @@ export declare function TableConfig(configure: (env: Environment) => void): Sche
498
502
  }>;
499
503
  }>>>;
500
504
  kind: Schema.tag<"shwfed.component.form">;
505
+ id: Schema.optional<Schema.refine<string, typeof Schema.String>>;
506
+ displayName: Schema.optional<Schema.SchemaClass<string, string, never>>;
501
507
  initial: Schema.optional<Schema.transform<Schema.Union<[Schema.Schema<string, string, never>, Schema.Struct<{
502
508
  request: Schema.optional<Schema.Schema<string, string, never>>;
503
509
  data: Schema.Schema<string, string, never>;
@@ -577,10 +583,12 @@ export declare function createTableConfig(body: Omit<Schema.Schema.Type<ReturnTy
577
583
  }[];
578
584
  query?: {
579
585
  readonly style?: string | undefined;
586
+ readonly id?: string | undefined;
580
587
  readonly initial?: {
581
588
  readonly data: string;
582
589
  readonly request?: string | undefined;
583
590
  } | undefined;
591
+ readonly displayName?: string | undefined;
584
592
  readonly kind: "shwfed.component.form";
585
593
  readonly fields: readonly any[];
586
594
  readonly layouts: readonly {