@shwfed/config 3.0.2 → 3.0.4

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 (53) hide show
  1. package/dist/module.json +1 -1
  2. package/dist/runtime/components/actions/buttons/2026-07-13/com.shwfed.actions.button.state.write/config.d.vue.ts +53 -0
  3. package/dist/runtime/components/actions/buttons/2026-07-13/com.shwfed.actions.button.state.write/config.vue +174 -0
  4. package/dist/runtime/components/actions/buttons/2026-07-13/com.shwfed.actions.button.state.write/config.vue.d.ts +53 -0
  5. package/dist/runtime/components/actions/buttons/2026-07-13/com.shwfed.actions.button.state.write/runtime.d.vue.ts +8 -0
  6. package/dist/runtime/components/actions/buttons/2026-07-13/com.shwfed.actions.button.state.write/runtime.vue +90 -0
  7. package/dist/runtime/components/actions/buttons/2026-07-13/com.shwfed.actions.button.state.write/runtime.vue.d.ts +8 -0
  8. package/dist/runtime/components/actions/buttons/2026-07-13/com.shwfed.actions.button.state.write/schema.d.ts +49 -0
  9. package/dist/runtime/components/actions/buttons/2026-07-13/com.shwfed.actions.button.state.write/schema.js +90 -0
  10. package/dist/runtime/components/actions/components/triggers-field.d.vue.ts +9 -0
  11. package/dist/runtime/components/actions/components/triggers-field.vue +13 -15
  12. package/dist/runtime/components/actions/components/triggers-field.vue.d.ts +9 -0
  13. package/dist/runtime/components/actions/utils/steps.d.ts +26 -0
  14. package/dist/runtime/components/actions/utils/steps.js +9 -0
  15. package/dist/runtime/components/config/blocks/2026-05-06/com.shwfed.block.table/config.d.vue.ts +68 -68
  16. package/dist/runtime/components/config/blocks/2026-05-06/com.shwfed.block.table/config.vue.d.ts +68 -68
  17. package/dist/runtime/components/config/blocks/2026-05-06/com.shwfed.block.table/runtime.d.vue.ts +68 -68
  18. package/dist/runtime/components/config/blocks/2026-05-06/com.shwfed.block.table/runtime.vue.d.ts +68 -68
  19. package/dist/runtime/components/config/blocks/2026-05-06/com.shwfed.block.table/schema.d.ts +34 -34
  20. package/dist/runtime/components/form/fields/2026-04-22/com.shwfed.form.field.text/config.d.vue.ts +22 -22
  21. package/dist/runtime/components/form/fields/2026-04-22/com.shwfed.form.field.text/config.vue.d.ts +22 -22
  22. package/dist/runtime/components/form/fields/2026-04-28/com.shwfed.form.field.number/config.d.vue.ts +22 -22
  23. package/dist/runtime/components/form/fields/2026-04-28/com.shwfed.form.field.number/config.vue.d.ts +22 -22
  24. package/dist/runtime/components/form/fields/2026-05-28/com.shwfed.form.field.tree.combobox.multi/runtime.vue +55 -51
  25. package/dist/runtime/components/form/fields/2026-05-28/com.shwfed.form.field.tree.combobox.single/runtime.vue +54 -50
  26. package/dist/runtime/components/table/columns/2026-05-27/com.shwfed.table.column.tree-combobox-multi/config.d.vue.ts +2 -2
  27. package/dist/runtime/components/table/columns/2026-05-27/com.shwfed.table.column.tree-combobox-multi/config.vue.d.ts +2 -2
  28. package/dist/runtime/components/table/columns/2026-05-27/com.shwfed.table.column.tree-combobox-single/config.d.vue.ts +2 -2
  29. package/dist/runtime/components/table/columns/2026-05-27/com.shwfed.table.column.tree-combobox-single/config.vue.d.ts +2 -2
  30. package/dist/runtime/components/table/columns/2026-05-28/com.shwfed.table.column.tree-combobox-multi/config.d.vue.ts +2 -2
  31. package/dist/runtime/components/table/columns/2026-05-28/com.shwfed.table.column.tree-combobox-multi/config.vue.d.ts +2 -2
  32. package/dist/runtime/components/table/columns/2026-05-28/com.shwfed.table.column.tree-combobox-single/config.d.vue.ts +2 -2
  33. package/dist/runtime/components/table/columns/2026-05-28/com.shwfed.table.column.tree-combobox-single/config.vue.d.ts +2 -2
  34. package/dist/runtime/components/table/columns/2026-06-14/com.shwfed.table.column.tree-combobox-multi/config.d.vue.ts +2 -2
  35. package/dist/runtime/components/table/columns/2026-06-14/com.shwfed.table.column.tree-combobox-multi/config.vue.d.ts +2 -2
  36. package/dist/runtime/components/table/columns/2026-06-14/com.shwfed.table.column.tree-combobox-multi/runtime.vue +52 -48
  37. package/dist/runtime/components/table/columns/2026-06-14/com.shwfed.table.column.tree-combobox-single/config.d.vue.ts +2 -2
  38. package/dist/runtime/components/table/columns/2026-06-14/com.shwfed.table.column.tree-combobox-single/config.vue.d.ts +2 -2
  39. package/dist/runtime/components/table/columns/2026-06-14/com.shwfed.table.column.tree-combobox-single/runtime.vue +51 -47
  40. package/dist/runtime/components/table/schema.d.ts +68 -68
  41. package/dist/runtime/components/ui/command/CommandList.d.vue.ts +2 -2
  42. package/dist/runtime/components/ui/command/CommandList.vue +12 -4
  43. package/dist/runtime/components/ui/command/CommandList.vue.d.ts +2 -2
  44. package/dist/runtime/components/ui/expression-editor/ExpressionEditor.vue +1 -1
  45. package/dist/runtime/components/ui/input-group/InputGroupCombobox.d.vue.ts +2 -2
  46. package/dist/runtime/components/ui/input-group/InputGroupCombobox.vue +6 -0
  47. package/dist/runtime/components/ui/input-group/InputGroupCombobox.vue.d.ts +2 -2
  48. package/dist/runtime/components/ui/scroll-area/ScrollArea.d.vue.ts +1 -0
  49. package/dist/runtime/components/ui/scroll-area/ScrollArea.vue +9 -3
  50. package/dist/runtime/components/ui/scroll-area/ScrollArea.vue.d.ts +1 -0
  51. package/dist/runtime/share/event-bus.d.ts +9 -1
  52. package/dist/runtime/share/event-bus.js +4 -4
  53. package/package.json +1 -1
@@ -47,6 +47,40 @@ export declare function schema(configure: (env: Environment) => void, _blockRef:
47
47
  readonly message: string;
48
48
  }[]] | undefined;
49
49
  }[];
50
+ readonly query?: {
51
+ readonly style?: string | undefined;
52
+ readonly id?: string | undefined;
53
+ readonly initial?: {
54
+ readonly data: string;
55
+ readonly request?: string | undefined;
56
+ } | undefined;
57
+ readonly displayName?: string | undefined;
58
+ readonly kind: "shwfed.component.form";
59
+ readonly fields: readonly any[];
60
+ readonly layouts: readonly {
61
+ readonly name: string;
62
+ readonly layout: {
63
+ readonly style?: string | undefined;
64
+ readonly columns: number;
65
+ readonly gap?: number | undefined;
66
+ readonly rows?: number | undefined;
67
+ readonly placements: {
68
+ readonly [x: string]: {
69
+ readonly area: readonly [readonly [number, number], readonly [number, number]];
70
+ readonly v?: "stretch" | "center" | "end" | "start" | undefined;
71
+ readonly h?: "stretch" | "center" | "end" | "start" | undefined;
72
+ };
73
+ };
74
+ };
75
+ readonly media?: string | undefined;
76
+ }[];
77
+ readonly readonly?: string | undefined;
78
+ } | undefined;
79
+ readonly dataSource?: {
80
+ readonly data: string;
81
+ readonly total?: string | undefined;
82
+ readonly request?: string | undefined;
83
+ } | undefined;
50
84
  readonly actions?: {
51
85
  readonly size: "default" | "sm" | "xs";
52
86
  readonly style?: string | undefined;
@@ -114,40 +148,6 @@ export declare function schema(configure: (env: Environment) => void, _blockRef:
114
148
  readonly variant?: "default" | "link" | "destructive" | "primary" | "ghost" | undefined;
115
149
  }[];
116
150
  } | undefined;
117
- readonly query?: {
118
- readonly style?: string | undefined;
119
- readonly id?: string | undefined;
120
- readonly initial?: {
121
- readonly data: string;
122
- readonly request?: string | undefined;
123
- } | undefined;
124
- readonly displayName?: string | undefined;
125
- readonly kind: "shwfed.component.form";
126
- readonly fields: readonly any[];
127
- readonly layouts: readonly {
128
- readonly name: string;
129
- readonly layout: {
130
- readonly style?: string | undefined;
131
- readonly columns: number;
132
- readonly gap?: number | undefined;
133
- readonly rows?: number | undefined;
134
- readonly placements: {
135
- readonly [x: string]: {
136
- readonly area: readonly [readonly [number, number], readonly [number, number]];
137
- readonly v?: "stretch" | "center" | "end" | "start" | undefined;
138
- readonly h?: "stretch" | "center" | "end" | "start" | undefined;
139
- };
140
- };
141
- };
142
- readonly media?: string | undefined;
143
- }[];
144
- readonly readonly?: string | undefined;
145
- } | undefined;
146
- readonly dataSource?: {
147
- readonly data: string;
148
- readonly total?: string | undefined;
149
- readonly request?: string | undefined;
150
- } | undefined;
151
151
  readonly bottomActions?: {
152
152
  readonly size: "default" | "sm" | "xs";
153
153
  readonly style?: string | undefined;
@@ -39,17 +39,6 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_ModelProps, {},
39
39
  readonly mode: "formula" | "prefill";
40
40
  readonly expression: string;
41
41
  } | undefined;
42
- readonly validations?: readonly {
43
- readonly message: readonly [{
44
- readonly locale: "zh";
45
- readonly message: string;
46
- }, ...{
47
- readonly locale: "en" | "ja" | "ko";
48
- readonly message: string;
49
- }[]];
50
- readonly warning?: boolean | undefined;
51
- readonly when: string;
52
- }[] | undefined;
53
42
  readonly addon?: {
54
43
  readonly size: "default" | "sm" | "xs";
55
44
  readonly style?: string | undefined;
@@ -117,6 +106,17 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_ModelProps, {},
117
106
  readonly variant?: "default" | "link" | "destructive" | "primary" | "ghost" | undefined;
118
107
  }[];
119
108
  } | undefined;
109
+ readonly validations?: readonly {
110
+ readonly message: readonly [{
111
+ readonly locale: "zh";
112
+ readonly message: string;
113
+ }, ...{
114
+ readonly locale: "en" | "ja" | "ko";
115
+ readonly message: string;
116
+ }[]];
117
+ readonly warning?: boolean | undefined;
118
+ readonly when: string;
119
+ }[] | undefined;
120
120
  }) => any;
121
121
  }, string, import("vue").PublicProps, Readonly<__VLS_ModelProps> & Readonly<{
122
122
  "onUpdate:modelValue"?: ((value: {
@@ -155,17 +155,6 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_ModelProps, {},
155
155
  readonly mode: "formula" | "prefill";
156
156
  readonly expression: string;
157
157
  } | undefined;
158
- readonly validations?: readonly {
159
- readonly message: readonly [{
160
- readonly locale: "zh";
161
- readonly message: string;
162
- }, ...{
163
- readonly locale: "en" | "ja" | "ko";
164
- readonly message: string;
165
- }[]];
166
- readonly warning?: boolean | undefined;
167
- readonly when: string;
168
- }[] | undefined;
169
158
  readonly addon?: {
170
159
  readonly size: "default" | "sm" | "xs";
171
160
  readonly style?: string | undefined;
@@ -233,6 +222,17 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_ModelProps, {},
233
222
  readonly variant?: "default" | "link" | "destructive" | "primary" | "ghost" | undefined;
234
223
  }[];
235
224
  } | undefined;
225
+ readonly validations?: readonly {
226
+ readonly message: readonly [{
227
+ readonly locale: "zh";
228
+ readonly message: string;
229
+ }, ...{
230
+ readonly locale: "en" | "ja" | "ko";
231
+ readonly message: string;
232
+ }[]];
233
+ readonly warning?: boolean | undefined;
234
+ readonly when: string;
235
+ }[] | undefined;
236
236
  }) => any) | undefined;
237
237
  }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
238
238
  declare const _default: typeof __VLS_export;
@@ -39,17 +39,6 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_ModelProps, {},
39
39
  readonly mode: "formula" | "prefill";
40
40
  readonly expression: string;
41
41
  } | undefined;
42
- readonly validations?: readonly {
43
- readonly message: readonly [{
44
- readonly locale: "zh";
45
- readonly message: string;
46
- }, ...{
47
- readonly locale: "en" | "ja" | "ko";
48
- readonly message: string;
49
- }[]];
50
- readonly warning?: boolean | undefined;
51
- readonly when: string;
52
- }[] | undefined;
53
42
  readonly addon?: {
54
43
  readonly size: "default" | "sm" | "xs";
55
44
  readonly style?: string | undefined;
@@ -117,6 +106,17 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_ModelProps, {},
117
106
  readonly variant?: "default" | "link" | "destructive" | "primary" | "ghost" | undefined;
118
107
  }[];
119
108
  } | undefined;
109
+ readonly validations?: readonly {
110
+ readonly message: readonly [{
111
+ readonly locale: "zh";
112
+ readonly message: string;
113
+ }, ...{
114
+ readonly locale: "en" | "ja" | "ko";
115
+ readonly message: string;
116
+ }[]];
117
+ readonly warning?: boolean | undefined;
118
+ readonly when: string;
119
+ }[] | undefined;
120
120
  }) => any;
121
121
  }, string, import("vue").PublicProps, Readonly<__VLS_ModelProps> & Readonly<{
122
122
  "onUpdate:modelValue"?: ((value: {
@@ -155,17 +155,6 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_ModelProps, {},
155
155
  readonly mode: "formula" | "prefill";
156
156
  readonly expression: string;
157
157
  } | undefined;
158
- readonly validations?: readonly {
159
- readonly message: readonly [{
160
- readonly locale: "zh";
161
- readonly message: string;
162
- }, ...{
163
- readonly locale: "en" | "ja" | "ko";
164
- readonly message: string;
165
- }[]];
166
- readonly warning?: boolean | undefined;
167
- readonly when: string;
168
- }[] | undefined;
169
158
  readonly addon?: {
170
159
  readonly size: "default" | "sm" | "xs";
171
160
  readonly style?: string | undefined;
@@ -233,6 +222,17 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_ModelProps, {},
233
222
  readonly variant?: "default" | "link" | "destructive" | "primary" | "ghost" | undefined;
234
223
  }[];
235
224
  } | undefined;
225
+ readonly validations?: readonly {
226
+ readonly message: readonly [{
227
+ readonly locale: "zh";
228
+ readonly message: string;
229
+ }, ...{
230
+ readonly locale: "en" | "ja" | "ko";
231
+ readonly message: string;
232
+ }[]];
233
+ readonly warning?: boolean | undefined;
234
+ readonly when: string;
235
+ }[] | undefined;
236
236
  }) => any) | undefined;
237
237
  }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
238
238
  declare const _default: typeof __VLS_export;
@@ -42,17 +42,6 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_ModelProps, {},
42
42
  readonly mode: "formula" | "prefill";
43
43
  readonly expression: string;
44
44
  } | undefined;
45
- readonly validations?: readonly {
46
- readonly message: readonly [{
47
- readonly locale: "zh";
48
- readonly message: string;
49
- }, ...{
50
- readonly locale: "en" | "ja" | "ko";
51
- readonly message: string;
52
- }[]];
53
- readonly warning?: boolean | undefined;
54
- readonly when: string;
55
- }[] | undefined;
56
45
  readonly addon?: {
57
46
  readonly size: "default" | "sm" | "xs";
58
47
  readonly style?: string | undefined;
@@ -120,6 +109,17 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_ModelProps, {},
120
109
  readonly variant?: "default" | "link" | "destructive" | "primary" | "ghost" | undefined;
121
110
  }[];
122
111
  } | undefined;
112
+ readonly validations?: readonly {
113
+ readonly message: readonly [{
114
+ readonly locale: "zh";
115
+ readonly message: string;
116
+ }, ...{
117
+ readonly locale: "en" | "ja" | "ko";
118
+ readonly message: string;
119
+ }[]];
120
+ readonly warning?: boolean | undefined;
121
+ readonly when: string;
122
+ }[] | undefined;
123
123
  readonly precision?: number | undefined;
124
124
  readonly roundingMode?: "round" | "floor" | "ceil" | undefined;
125
125
  readonly valueAsString?: boolean | undefined;
@@ -165,17 +165,6 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_ModelProps, {},
165
165
  readonly mode: "formula" | "prefill";
166
166
  readonly expression: string;
167
167
  } | undefined;
168
- readonly validations?: readonly {
169
- readonly message: readonly [{
170
- readonly locale: "zh";
171
- readonly message: string;
172
- }, ...{
173
- readonly locale: "en" | "ja" | "ko";
174
- readonly message: string;
175
- }[]];
176
- readonly warning?: boolean | undefined;
177
- readonly when: string;
178
- }[] | undefined;
179
168
  readonly addon?: {
180
169
  readonly size: "default" | "sm" | "xs";
181
170
  readonly style?: string | undefined;
@@ -243,6 +232,17 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_ModelProps, {},
243
232
  readonly variant?: "default" | "link" | "destructive" | "primary" | "ghost" | undefined;
244
233
  }[];
245
234
  } | undefined;
235
+ readonly validations?: readonly {
236
+ readonly message: readonly [{
237
+ readonly locale: "zh";
238
+ readonly message: string;
239
+ }, ...{
240
+ readonly locale: "en" | "ja" | "ko";
241
+ readonly message: string;
242
+ }[]];
243
+ readonly warning?: boolean | undefined;
244
+ readonly when: string;
245
+ }[] | undefined;
246
246
  readonly precision?: number | undefined;
247
247
  readonly roundingMode?: "round" | "floor" | "ceil" | undefined;
248
248
  readonly valueAsString?: boolean | undefined;
@@ -42,17 +42,6 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_ModelProps, {},
42
42
  readonly mode: "formula" | "prefill";
43
43
  readonly expression: string;
44
44
  } | undefined;
45
- readonly validations?: readonly {
46
- readonly message: readonly [{
47
- readonly locale: "zh";
48
- readonly message: string;
49
- }, ...{
50
- readonly locale: "en" | "ja" | "ko";
51
- readonly message: string;
52
- }[]];
53
- readonly warning?: boolean | undefined;
54
- readonly when: string;
55
- }[] | undefined;
56
45
  readonly addon?: {
57
46
  readonly size: "default" | "sm" | "xs";
58
47
  readonly style?: string | undefined;
@@ -120,6 +109,17 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_ModelProps, {},
120
109
  readonly variant?: "default" | "link" | "destructive" | "primary" | "ghost" | undefined;
121
110
  }[];
122
111
  } | undefined;
112
+ readonly validations?: readonly {
113
+ readonly message: readonly [{
114
+ readonly locale: "zh";
115
+ readonly message: string;
116
+ }, ...{
117
+ readonly locale: "en" | "ja" | "ko";
118
+ readonly message: string;
119
+ }[]];
120
+ readonly warning?: boolean | undefined;
121
+ readonly when: string;
122
+ }[] | undefined;
123
123
  readonly precision?: number | undefined;
124
124
  readonly roundingMode?: "round" | "floor" | "ceil" | undefined;
125
125
  readonly valueAsString?: boolean | undefined;
@@ -165,17 +165,6 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_ModelProps, {},
165
165
  readonly mode: "formula" | "prefill";
166
166
  readonly expression: string;
167
167
  } | undefined;
168
- readonly validations?: readonly {
169
- readonly message: readonly [{
170
- readonly locale: "zh";
171
- readonly message: string;
172
- }, ...{
173
- readonly locale: "en" | "ja" | "ko";
174
- readonly message: string;
175
- }[]];
176
- readonly warning?: boolean | undefined;
177
- readonly when: string;
178
- }[] | undefined;
179
168
  readonly addon?: {
180
169
  readonly size: "default" | "sm" | "xs";
181
170
  readonly style?: string | undefined;
@@ -243,6 +232,17 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_ModelProps, {},
243
232
  readonly variant?: "default" | "link" | "destructive" | "primary" | "ghost" | undefined;
244
233
  }[];
245
234
  } | undefined;
235
+ readonly validations?: readonly {
236
+ readonly message: readonly [{
237
+ readonly locale: "zh";
238
+ readonly message: string;
239
+ }, ...{
240
+ readonly locale: "en" | "ja" | "ko";
241
+ readonly message: string;
242
+ }[]];
243
+ readonly warning?: boolean | undefined;
244
+ readonly when: string;
245
+ }[] | undefined;
246
246
  readonly precision?: number | undefined;
247
247
  readonly roundingMode?: "round" | "floor" | "ceil" | undefined;
248
248
  readonly valueAsString?: boolean | undefined;
@@ -13,6 +13,7 @@ import { Field, FieldLabel, FieldMessages } from "../../../../ui/field";
13
13
  import { InputGroup, InputGroupAddon, InputGroupButton, InputGroupInput } from "../../../../ui/input-group";
14
14
  import { Markdown } from "../../../../ui/markdown";
15
15
  import { Popover, PopoverAnchor, PopoverContent, PopoverTrigger } from "../../../../ui/popover";
16
+ import { ScrollArea } from "../../../../ui/scroll-area";
16
17
  import { Skeleton } from "../../../../ui/skeleton";
17
18
  import { Tree as UiTree } from "../../../../ui/tree";
18
19
  import { interpolateMarkdown } from "../../../../table/utils/runtime";
@@ -474,61 +475,64 @@ const hoveredTooltip = computed(() => {
474
475
  <Skeleton class="h-5 w-3/5" />
475
476
  </div>
476
477
 
477
- <UiTree
478
+ <ScrollArea
478
479
  v-else
479
- :roots="roots"
480
- :get-key="(w) => w.key"
481
- :get-children="getWrappedChildren"
482
- selection-mode="multi"
483
- :cascade="config.cascade ?? 'independent'"
484
- :model-value="model"
485
- :selectable="wrappedSelectable"
486
- :filter-predicate="filterPredicate"
487
- :filter-query="filterQuery"
488
- :initial-expanded="initialExpanded"
489
- :show-focused-row="false"
490
- :class="isDisabled ? 'pointer-events-none opacity-60' : void 0"
491
- class="max-h-72 overflow-y-auto"
492
- @update:model-value="handleUpdate"
480
+ class="max-h-72"
493
481
  >
494
- <template #node="{ node, selected }">
495
- <span
496
- class="flex flex-1 min-w-0 items-center justify-between gap-2"
497
- @mouseenter="hoveredKey = node.key"
498
- @focusin="hoveredKey = node.key"
499
- >
500
- <Markdown
501
- :source="wrappedLabelText(node)"
502
- class="prose prose-sm prose-zinc text-zinc-700 min-w-0"
503
- />
504
- <Icon
505
- v-if="selected"
506
- icon="fluent:checkmark-20-regular"
507
- class="size-3 shrink-0 text-zinc-700"
508
- />
509
- </span>
510
- </template>
482
+ <UiTree
483
+ :roots="roots"
484
+ :get-key="(w) => w.key"
485
+ :get-children="getWrappedChildren"
486
+ selection-mode="multi"
487
+ :cascade="config.cascade ?? 'independent'"
488
+ :model-value="model"
489
+ :selectable="wrappedSelectable"
490
+ :filter-predicate="filterPredicate"
491
+ :filter-query="filterQuery"
492
+ :initial-expanded="initialExpanded"
493
+ :show-focused-row="false"
494
+ :class="isDisabled ? 'pointer-events-none opacity-60' : void 0"
495
+ @update:model-value="handleUpdate"
496
+ >
497
+ <template #node="{ node, selected }">
498
+ <span
499
+ class="flex flex-1 min-w-0 items-center justify-between gap-2"
500
+ @mouseenter="hoveredKey = node.key"
501
+ @focusin="hoveredKey = node.key"
502
+ >
503
+ <Markdown
504
+ :source="wrappedLabelText(node)"
505
+ class="prose prose-sm prose-zinc text-zinc-700 min-w-0"
506
+ />
507
+ <Icon
508
+ v-if="selected"
509
+ icon="fluent:checkmark-20-regular"
510
+ class="size-3 shrink-0 text-zinc-700"
511
+ />
512
+ </span>
513
+ </template>
511
514
 
512
- <template #empty>
513
- <div class="py-6 text-center text-sm text-zinc-500">
514
- {{ t("tree-combobox-multi-empty") }}
515
- </div>
516
- </template>
515
+ <template #empty>
516
+ <div class="py-6 text-center text-sm text-zinc-500">
517
+ {{ t("tree-combobox-multi-empty") }}
518
+ </div>
519
+ </template>
517
520
 
518
- <template #error="{ error, retry }">
519
- <span class="inline-flex items-center gap-1 text-xs text-red-500">
520
- {{ t("tree-combobox-multi-load-error") }}
521
- <button
522
- type="button"
523
- class="underline hover:text-red-600"
524
- @click.stop="retry"
525
- >
526
- {{ t("tree-combobox-multi-retry") }}
527
- </button>
528
- <span class="sr-only">{{ String(error) }}</span>
529
- </span>
530
- </template>
531
- </UiTree>
521
+ <template #error="{ error, retry }">
522
+ <span class="inline-flex items-center gap-1 text-xs text-red-500">
523
+ {{ t("tree-combobox-multi-load-error") }}
524
+ <button
525
+ type="button"
526
+ class="underline hover:text-red-600"
527
+ @click.stop="retry"
528
+ >
529
+ {{ t("tree-combobox-multi-retry") }}
530
+ </button>
531
+ <span class="sr-only">{{ String(error) }}</span>
532
+ </span>
533
+ </template>
534
+ </UiTree>
535
+ </ScrollArea>
532
536
  </div>
533
537
  <div
534
538
  v-if="anyHasTooltip && hoveredTooltip"
@@ -13,6 +13,7 @@ import { Field, FieldLabel, FieldMessages } from "../../../../ui/field";
13
13
  import { InputGroup, InputGroupAddon, InputGroupButton, InputGroupInput } from "../../../../ui/input-group";
14
14
  import { Markdown } from "../../../../ui/markdown";
15
15
  import { Popover, PopoverAnchor, PopoverContent, PopoverTrigger } from "../../../../ui/popover";
16
+ import { ScrollArea } from "../../../../ui/scroll-area";
16
17
  import { Skeleton } from "../../../../ui/skeleton";
17
18
  import { Tree as UiTree } from "../../../../ui/tree";
18
19
  import { interpolateMarkdown } from "../../../../table/utils/runtime";
@@ -462,60 +463,63 @@ const hoveredTooltip = computed(() => {
462
463
  <Skeleton class="h-5 w-3/5" />
463
464
  </div>
464
465
 
465
- <UiTree
466
+ <ScrollArea
466
467
  v-else
467
- :roots="roots"
468
- :get-key="(w) => w.key"
469
- :get-children="getWrappedChildren"
470
- selection-mode="single"
471
- :model-value="model"
472
- :selectable="wrappedSelectable"
473
- :filter-predicate="filterPredicate"
474
- :filter-query="filterQuery"
475
- :initial-expanded="initialExpanded"
476
- :show-focused-row="false"
477
- :class="isDisabled ? 'pointer-events-none opacity-60' : void 0"
478
- class="max-h-72 overflow-y-auto"
479
- @update:model-value="handleUpdate"
468
+ class="max-h-72"
480
469
  >
481
- <template #node="{ node, selected }">
482
- <span
483
- class="flex flex-1 min-w-0 items-center justify-between gap-2"
484
- @mouseenter="hoveredKey = node.key"
485
- @focusin="hoveredKey = node.key"
486
- >
487
- <Markdown
488
- :source="wrappedLabelText(node)"
489
- class="prose prose-sm prose-zinc text-zinc-700 min-w-0"
490
- />
491
- <Icon
492
- v-if="selected"
493
- icon="fluent:checkmark-20-regular"
494
- class="size-3 shrink-0 text-zinc-700"
495
- />
496
- </span>
497
- </template>
470
+ <UiTree
471
+ :roots="roots"
472
+ :get-key="(w) => w.key"
473
+ :get-children="getWrappedChildren"
474
+ selection-mode="single"
475
+ :model-value="model"
476
+ :selectable="wrappedSelectable"
477
+ :filter-predicate="filterPredicate"
478
+ :filter-query="filterQuery"
479
+ :initial-expanded="initialExpanded"
480
+ :show-focused-row="false"
481
+ :class="isDisabled ? 'pointer-events-none opacity-60' : void 0"
482
+ @update:model-value="handleUpdate"
483
+ >
484
+ <template #node="{ node, selected }">
485
+ <span
486
+ class="flex flex-1 min-w-0 items-center justify-between gap-2"
487
+ @mouseenter="hoveredKey = node.key"
488
+ @focusin="hoveredKey = node.key"
489
+ >
490
+ <Markdown
491
+ :source="wrappedLabelText(node)"
492
+ class="prose prose-sm prose-zinc text-zinc-700 min-w-0"
493
+ />
494
+ <Icon
495
+ v-if="selected"
496
+ icon="fluent:checkmark-20-regular"
497
+ class="size-3 shrink-0 text-zinc-700"
498
+ />
499
+ </span>
500
+ </template>
498
501
 
499
- <template #empty>
500
- <div class="py-6 text-center text-sm text-zinc-500">
501
- {{ t("tree-combobox-single-empty") }}
502
- </div>
503
- </template>
502
+ <template #empty>
503
+ <div class="py-6 text-center text-sm text-zinc-500">
504
+ {{ t("tree-combobox-single-empty") }}
505
+ </div>
506
+ </template>
504
507
 
505
- <template #error="{ error, retry }">
506
- <span class="inline-flex items-center gap-1 text-xs text-red-500">
507
- {{ t("tree-combobox-single-load-error") }}
508
- <button
509
- type="button"
510
- class="underline hover:text-red-600"
511
- @click.stop="retry"
512
- >
513
- {{ t("tree-combobox-single-retry") }}
514
- </button>
515
- <span class="sr-only">{{ String(error) }}</span>
516
- </span>
517
- </template>
518
- </UiTree>
508
+ <template #error="{ error, retry }">
509
+ <span class="inline-flex items-center gap-1 text-xs text-red-500">
510
+ {{ t("tree-combobox-single-load-error") }}
511
+ <button
512
+ type="button"
513
+ class="underline hover:text-red-600"
514
+ @click.stop="retry"
515
+ >
516
+ {{ t("tree-combobox-single-retry") }}
517
+ </button>
518
+ <span class="sr-only">{{ String(error) }}</span>
519
+ </span>
520
+ </template>
521
+ </UiTree>
522
+ </ScrollArea>
519
523
  </div>
520
524
  <div
521
525
  v-if="anyHasTooltip && hoveredTooltip"
@@ -43,7 +43,6 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_ModelProps, {},
43
43
  readonly data: string;
44
44
  readonly request?: string | undefined;
45
45
  };
46
- readonly enableSorting?: boolean | undefined;
47
46
  readonly nodeKey: string;
48
47
  readonly nodeChildren: string;
49
48
  readonly nodeLabel: readonly [{
@@ -53,6 +52,7 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_ModelProps, {},
53
52
  readonly locale: "en" | "ja" | "ko";
54
53
  readonly message: string;
55
54
  }[]];
55
+ readonly enableSorting?: boolean | undefined;
56
56
  readonly cascade: "independent" | "cascade-down" | "cascade-both";
57
57
  readonly nodeTooltip?: readonly [{
58
58
  readonly locale: "zh";
@@ -106,7 +106,6 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_ModelProps, {},
106
106
  readonly data: string;
107
107
  readonly request?: string | undefined;
108
108
  };
109
- readonly enableSorting?: boolean | undefined;
110
109
  readonly nodeKey: string;
111
110
  readonly nodeChildren: string;
112
111
  readonly nodeLabel: readonly [{
@@ -116,6 +115,7 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_ModelProps, {},
116
115
  readonly locale: "en" | "ja" | "ko";
117
116
  readonly message: string;
118
117
  }[]];
118
+ readonly enableSorting?: boolean | undefined;
119
119
  readonly cascade: "independent" | "cascade-down" | "cascade-both";
120
120
  readonly nodeTooltip?: readonly [{
121
121
  readonly locale: "zh";