@shwfed/config 3.0.2 → 3.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/module.json +1 -1
- package/dist/runtime/components/actions/buttons/2026-07-13/com.shwfed.actions.button.state.write/config.d.vue.ts +53 -0
- package/dist/runtime/components/actions/buttons/2026-07-13/com.shwfed.actions.button.state.write/config.vue +174 -0
- package/dist/runtime/components/actions/buttons/2026-07-13/com.shwfed.actions.button.state.write/config.vue.d.ts +53 -0
- package/dist/runtime/components/actions/buttons/2026-07-13/com.shwfed.actions.button.state.write/runtime.d.vue.ts +8 -0
- package/dist/runtime/components/actions/buttons/2026-07-13/com.shwfed.actions.button.state.write/runtime.vue +70 -0
- package/dist/runtime/components/actions/buttons/2026-07-13/com.shwfed.actions.button.state.write/runtime.vue.d.ts +8 -0
- package/dist/runtime/components/actions/buttons/2026-07-13/com.shwfed.actions.button.state.write/schema.d.ts +49 -0
- package/dist/runtime/components/actions/buttons/2026-07-13/com.shwfed.actions.button.state.write/schema.js +90 -0
- package/dist/runtime/components/actions/components/triggers-field.d.vue.ts +9 -0
- package/dist/runtime/components/actions/components/triggers-field.vue +13 -15
- package/dist/runtime/components/actions/components/triggers-field.vue.d.ts +9 -0
- package/dist/runtime/components/actions/utils/steps.d.ts +26 -0
- package/dist/runtime/components/actions/utils/steps.js +9 -0
- package/dist/runtime/components/config/blocks/2026-05-06/com.shwfed.block.table/config.d.vue.ts +68 -68
- package/dist/runtime/components/config/blocks/2026-05-06/com.shwfed.block.table/config.vue.d.ts +68 -68
- package/dist/runtime/components/config/blocks/2026-05-06/com.shwfed.block.table/runtime.d.vue.ts +68 -68
- package/dist/runtime/components/config/blocks/2026-05-06/com.shwfed.block.table/runtime.vue.d.ts +68 -68
- package/dist/runtime/components/config/blocks/2026-05-06/com.shwfed.block.table/schema.d.ts +34 -34
- package/dist/runtime/components/form/fields/2026-05-28/com.shwfed.form.field.tree.combobox.multi/runtime.vue +55 -51
- package/dist/runtime/components/form/fields/2026-05-28/com.shwfed.form.field.tree.combobox.single/runtime.vue +54 -50
- package/dist/runtime/components/table/columns/2026-05-27/com.shwfed.table.column.tree-combobox-multi/config.d.vue.ts +2 -2
- package/dist/runtime/components/table/columns/2026-05-27/com.shwfed.table.column.tree-combobox-multi/config.vue.d.ts +2 -2
- package/dist/runtime/components/table/columns/2026-05-27/com.shwfed.table.column.tree-combobox-single/config.d.vue.ts +2 -2
- package/dist/runtime/components/table/columns/2026-05-27/com.shwfed.table.column.tree-combobox-single/config.vue.d.ts +2 -2
- package/dist/runtime/components/table/columns/2026-05-28/com.shwfed.table.column.tree-combobox-multi/config.d.vue.ts +2 -2
- package/dist/runtime/components/table/columns/2026-05-28/com.shwfed.table.column.tree-combobox-multi/config.vue.d.ts +2 -2
- package/dist/runtime/components/table/columns/2026-05-28/com.shwfed.table.column.tree-combobox-single/config.d.vue.ts +2 -2
- package/dist/runtime/components/table/columns/2026-05-28/com.shwfed.table.column.tree-combobox-single/config.vue.d.ts +2 -2
- package/dist/runtime/components/table/columns/2026-06-14/com.shwfed.table.column.tree-combobox-multi/config.d.vue.ts +2 -2
- package/dist/runtime/components/table/columns/2026-06-14/com.shwfed.table.column.tree-combobox-multi/config.vue.d.ts +2 -2
- package/dist/runtime/components/table/columns/2026-06-14/com.shwfed.table.column.tree-combobox-multi/runtime.vue +52 -48
- package/dist/runtime/components/table/columns/2026-06-14/com.shwfed.table.column.tree-combobox-single/config.d.vue.ts +2 -2
- package/dist/runtime/components/table/columns/2026-06-14/com.shwfed.table.column.tree-combobox-single/config.vue.d.ts +2 -2
- package/dist/runtime/components/table/columns/2026-06-14/com.shwfed.table.column.tree-combobox-single/runtime.vue +51 -47
- package/dist/runtime/components/table/schema.d.ts +68 -68
- package/dist/runtime/components/ui/command/CommandList.d.vue.ts +2 -2
- package/dist/runtime/components/ui/command/CommandList.vue +12 -4
- package/dist/runtime/components/ui/command/CommandList.vue.d.ts +2 -2
- package/dist/runtime/components/ui/expression-editor/ExpressionEditor.vue +1 -1
- package/dist/runtime/components/ui/input-group/InputGroupCombobox.d.vue.ts +2 -2
- package/dist/runtime/components/ui/input-group/InputGroupCombobox.vue +6 -0
- package/dist/runtime/components/ui/input-group/InputGroupCombobox.vue.d.ts +2 -2
- package/dist/runtime/components/ui/scroll-area/ScrollArea.d.vue.ts +1 -0
- package/dist/runtime/components/ui/scroll-area/ScrollArea.vue +9 -3
- package/dist/runtime/components/ui/scroll-area/ScrollArea.vue.d.ts +1 -0
- package/dist/runtime/share/event-bus.d.ts +9 -1
- package/dist/runtime/share/event-bus.js +4 -4
- package/package.json +1 -1
|
@@ -12,6 +12,7 @@ import { fetchJsonOption } from "../../../../../share/request";
|
|
|
12
12
|
import { InputGroup, InputGroupAddon, InputGroupButton, InputGroupInput } from "../../../../ui/input-group";
|
|
13
13
|
import { Markdown } from "../../../../ui/markdown";
|
|
14
14
|
import { Popover, PopoverAnchor, PopoverContent, PopoverTrigger } from "../../../../ui/popover";
|
|
15
|
+
import { ScrollArea } from "../../../../ui/scroll-area";
|
|
15
16
|
import { Skeleton } from "../../../../ui/skeleton";
|
|
16
17
|
import { Tree as UiTree } from "../../../../ui/tree";
|
|
17
18
|
import { useFormState } from "../../../../form/utils/state";
|
|
@@ -427,58 +428,61 @@ const hoveredTooltip = computed(() => {
|
|
|
427
428
|
<Skeleton class="h-4 w-3/5" />
|
|
428
429
|
</div>
|
|
429
430
|
|
|
430
|
-
<
|
|
431
|
+
<ScrollArea
|
|
431
432
|
v-else
|
|
432
|
-
|
|
433
|
-
:get-key="(w) => w.key"
|
|
434
|
-
:get-children="getWrappedChildren"
|
|
435
|
-
selection-mode="multi"
|
|
436
|
-
:cascade="column.cascade ?? 'independent'"
|
|
437
|
-
:model-value="displayKeys"
|
|
438
|
-
:selectable="wrappedSelectable"
|
|
439
|
-
:filter-predicate="filterPredicate"
|
|
440
|
-
:filter-query="filterQuery"
|
|
441
|
-
:initial-expanded="initialExpanded"
|
|
442
|
-
:show-focused-row="false"
|
|
443
|
-
:class="isDisabled ? 'pointer-events-none opacity-60' : void 0"
|
|
444
|
-
class="max-h-72 overflow-y-auto"
|
|
445
|
-
@update:model-value="handleUpdate"
|
|
433
|
+
class="max-h-72"
|
|
446
434
|
>
|
|
447
|
-
<
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
435
|
+
<UiTree
|
|
436
|
+
:roots="roots"
|
|
437
|
+
:get-key="(w) => w.key"
|
|
438
|
+
:get-children="getWrappedChildren"
|
|
439
|
+
selection-mode="multi"
|
|
440
|
+
:cascade="column.cascade ?? 'independent'"
|
|
441
|
+
:model-value="displayKeys"
|
|
442
|
+
:selectable="wrappedSelectable"
|
|
443
|
+
:filter-predicate="filterPredicate"
|
|
444
|
+
:filter-query="filterQuery"
|
|
445
|
+
:initial-expanded="initialExpanded"
|
|
446
|
+
:show-focused-row="false"
|
|
447
|
+
:class="isDisabled ? 'pointer-events-none opacity-60' : void 0"
|
|
448
|
+
@update:model-value="handleUpdate"
|
|
449
|
+
>
|
|
450
|
+
<template #node="{ node, selected }">
|
|
451
|
+
<span
|
|
452
|
+
class="flex flex-1 min-w-0 items-center justify-between gap-2"
|
|
453
|
+
@mouseenter="hoveredKey = node.key"
|
|
454
|
+
@focusin="hoveredKey = node.key"
|
|
455
|
+
>
|
|
456
|
+
<span class="min-w-0 truncate text-[0.75rem] text-zinc-700">{{ wrappedLabelText(node) }}</span>
|
|
457
|
+
<Icon
|
|
458
|
+
v-if="selected"
|
|
459
|
+
icon="fluent:checkmark-20-regular"
|
|
460
|
+
class="size-3 shrink-0 text-zinc-700"
|
|
461
|
+
/>
|
|
462
|
+
</span>
|
|
463
|
+
</template>
|
|
461
464
|
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
|
|
465
|
+
<template #empty>
|
|
466
|
+
<div class="min-h-7 px-2 py-1 text-[0.75rem] text-zinc-400">
|
|
467
|
+
{{ t("tree-combobox-multi-empty") }}
|
|
468
|
+
</div>
|
|
469
|
+
</template>
|
|
467
470
|
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
|
|
471
|
+
<template #error="{ error, retry }">
|
|
472
|
+
<span class="inline-flex items-center gap-1 text-xs text-red-500">
|
|
473
|
+
{{ t("tree-combobox-multi-load-error") }}
|
|
474
|
+
<button
|
|
475
|
+
type="button"
|
|
476
|
+
class="underline hover:text-red-600"
|
|
477
|
+
@click.stop="retry"
|
|
478
|
+
>
|
|
479
|
+
{{ t("tree-combobox-multi-retry") }}
|
|
480
|
+
</button>
|
|
481
|
+
<span class="sr-only">{{ String(error) }}</span>
|
|
482
|
+
</span>
|
|
483
|
+
</template>
|
|
484
|
+
</UiTree>
|
|
485
|
+
</ScrollArea>
|
|
482
486
|
</div>
|
|
483
487
|
<div
|
|
484
488
|
v-if="anyHasTooltip && hoveredTooltip"
|
|
@@ -45,10 +45,10 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_ModelProps, {},
|
|
|
45
45
|
readonly data: string;
|
|
46
46
|
readonly request?: string | undefined;
|
|
47
47
|
};
|
|
48
|
-
readonly enableSorting?: boolean | undefined;
|
|
49
48
|
readonly nodeKey: string;
|
|
50
49
|
readonly nodeChildren: string;
|
|
51
50
|
readonly nodeLabel: string;
|
|
51
|
+
readonly enableSorting?: boolean | undefined;
|
|
52
52
|
readonly nodeTooltip?: readonly [{
|
|
53
53
|
readonly locale: "zh";
|
|
54
54
|
readonly message: string;
|
|
@@ -103,10 +103,10 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_ModelProps, {},
|
|
|
103
103
|
readonly data: string;
|
|
104
104
|
readonly request?: string | undefined;
|
|
105
105
|
};
|
|
106
|
-
readonly enableSorting?: boolean | undefined;
|
|
107
106
|
readonly nodeKey: string;
|
|
108
107
|
readonly nodeChildren: string;
|
|
109
108
|
readonly nodeLabel: string;
|
|
109
|
+
readonly enableSorting?: boolean | undefined;
|
|
110
110
|
readonly nodeTooltip?: readonly [{
|
|
111
111
|
readonly locale: "zh";
|
|
112
112
|
readonly message: string;
|
|
@@ -45,10 +45,10 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_ModelProps, {},
|
|
|
45
45
|
readonly data: string;
|
|
46
46
|
readonly request?: string | undefined;
|
|
47
47
|
};
|
|
48
|
-
readonly enableSorting?: boolean | undefined;
|
|
49
48
|
readonly nodeKey: string;
|
|
50
49
|
readonly nodeChildren: string;
|
|
51
50
|
readonly nodeLabel: string;
|
|
51
|
+
readonly enableSorting?: boolean | undefined;
|
|
52
52
|
readonly nodeTooltip?: readonly [{
|
|
53
53
|
readonly locale: "zh";
|
|
54
54
|
readonly message: string;
|
|
@@ -103,10 +103,10 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_ModelProps, {},
|
|
|
103
103
|
readonly data: string;
|
|
104
104
|
readonly request?: string | undefined;
|
|
105
105
|
};
|
|
106
|
-
readonly enableSorting?: boolean | undefined;
|
|
107
106
|
readonly nodeKey: string;
|
|
108
107
|
readonly nodeChildren: string;
|
|
109
108
|
readonly nodeLabel: string;
|
|
109
|
+
readonly enableSorting?: boolean | undefined;
|
|
110
110
|
readonly nodeTooltip?: readonly [{
|
|
111
111
|
readonly locale: "zh";
|
|
112
112
|
readonly message: string;
|
|
@@ -12,6 +12,7 @@ import { fetchJsonOption } from "../../../../../share/request";
|
|
|
12
12
|
import { InputGroup, InputGroupAddon, InputGroupButton, InputGroupInput } from "../../../../ui/input-group";
|
|
13
13
|
import { Markdown } from "../../../../ui/markdown";
|
|
14
14
|
import { Popover, PopoverAnchor, PopoverContent, PopoverTrigger } from "../../../../ui/popover";
|
|
15
|
+
import { ScrollArea } from "../../../../ui/scroll-area";
|
|
15
16
|
import { Skeleton } from "../../../../ui/skeleton";
|
|
16
17
|
import { Tree as UiTree } from "../../../../ui/tree";
|
|
17
18
|
import { useFormState } from "../../../../form/utils/state";
|
|
@@ -393,57 +394,60 @@ const hoveredTooltip = computed(() => {
|
|
|
393
394
|
<Skeleton class="h-4 w-3/5" />
|
|
394
395
|
</div>
|
|
395
396
|
|
|
396
|
-
<
|
|
397
|
+
<ScrollArea
|
|
397
398
|
v-else
|
|
398
|
-
|
|
399
|
-
:get-key="(w) => w.key"
|
|
400
|
-
:get-children="getWrappedChildren"
|
|
401
|
-
selection-mode="single"
|
|
402
|
-
:model-value="model"
|
|
403
|
-
:selectable="wrappedSelectable"
|
|
404
|
-
:filter-predicate="filterPredicate"
|
|
405
|
-
:filter-query="filterQuery"
|
|
406
|
-
:initial-expanded="initialExpanded"
|
|
407
|
-
:show-focused-row="false"
|
|
408
|
-
:class="isDisabled ? 'pointer-events-none opacity-60' : void 0"
|
|
409
|
-
class="max-h-72 overflow-y-auto"
|
|
410
|
-
@update:model-value="handleUpdate"
|
|
399
|
+
class="max-h-72"
|
|
411
400
|
>
|
|
412
|
-
<
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
401
|
+
<UiTree
|
|
402
|
+
:roots="roots"
|
|
403
|
+
:get-key="(w) => w.key"
|
|
404
|
+
:get-children="getWrappedChildren"
|
|
405
|
+
selection-mode="single"
|
|
406
|
+
:model-value="model"
|
|
407
|
+
:selectable="wrappedSelectable"
|
|
408
|
+
:filter-predicate="filterPredicate"
|
|
409
|
+
:filter-query="filterQuery"
|
|
410
|
+
:initial-expanded="initialExpanded"
|
|
411
|
+
:show-focused-row="false"
|
|
412
|
+
:class="isDisabled ? 'pointer-events-none opacity-60' : void 0"
|
|
413
|
+
@update:model-value="handleUpdate"
|
|
414
|
+
>
|
|
415
|
+
<template #node="{ node, selected }">
|
|
416
|
+
<span
|
|
417
|
+
class="flex flex-1 min-w-0 items-center justify-between gap-2"
|
|
418
|
+
@mouseenter="hoveredKey = node.key"
|
|
419
|
+
@focusin="hoveredKey = node.key"
|
|
420
|
+
>
|
|
421
|
+
<span class="min-w-0 truncate text-[0.75rem] text-zinc-700">{{ wrappedLabelText(node) }}</span>
|
|
422
|
+
<Icon
|
|
423
|
+
v-if="selected"
|
|
424
|
+
icon="fluent:checkmark-20-regular"
|
|
425
|
+
class="size-3 shrink-0 text-zinc-700"
|
|
426
|
+
/>
|
|
427
|
+
</span>
|
|
428
|
+
</template>
|
|
426
429
|
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
430
|
+
<template #empty>
|
|
431
|
+
<div class="min-h-7 px-2 py-1 text-[0.75rem] text-zinc-400">
|
|
432
|
+
{{ t("tree-combobox-single-empty") }}
|
|
433
|
+
</div>
|
|
434
|
+
</template>
|
|
432
435
|
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
|
|
436
|
+
<template #error="{ error, retry }">
|
|
437
|
+
<span class="inline-flex items-center gap-1 text-xs text-red-500">
|
|
438
|
+
{{ t("tree-combobox-single-load-error") }}
|
|
439
|
+
<button
|
|
440
|
+
type="button"
|
|
441
|
+
class="underline hover:text-red-600"
|
|
442
|
+
@click.stop="retry"
|
|
443
|
+
>
|
|
444
|
+
{{ t("tree-combobox-single-retry") }}
|
|
445
|
+
</button>
|
|
446
|
+
<span class="sr-only">{{ String(error) }}</span>
|
|
447
|
+
</span>
|
|
448
|
+
</template>
|
|
449
|
+
</UiTree>
|
|
450
|
+
</ScrollArea>
|
|
447
451
|
</div>
|
|
448
452
|
<div
|
|
449
453
|
v-if="anyHasTooltip && hoveredTooltip"
|
|
@@ -158,6 +158,40 @@ export declare function TableConfig(configure: (env: Environment) => void): Sche
|
|
|
158
158
|
readonly message: string;
|
|
159
159
|
}[]] | undefined;
|
|
160
160
|
}[];
|
|
161
|
+
readonly query?: {
|
|
162
|
+
readonly style?: string | undefined;
|
|
163
|
+
readonly id?: string | undefined;
|
|
164
|
+
readonly initial?: {
|
|
165
|
+
readonly data: string;
|
|
166
|
+
readonly request?: string | undefined;
|
|
167
|
+
} | undefined;
|
|
168
|
+
readonly displayName?: string | undefined;
|
|
169
|
+
readonly kind: "shwfed.component.form";
|
|
170
|
+
readonly fields: readonly any[];
|
|
171
|
+
readonly layouts: readonly {
|
|
172
|
+
readonly name: string;
|
|
173
|
+
readonly layout: {
|
|
174
|
+
readonly style?: string | undefined;
|
|
175
|
+
readonly columns: number;
|
|
176
|
+
readonly gap?: number | undefined;
|
|
177
|
+
readonly rows?: number | undefined;
|
|
178
|
+
readonly placements: {
|
|
179
|
+
readonly [x: string]: {
|
|
180
|
+
readonly area: readonly [readonly [number, number], readonly [number, number]];
|
|
181
|
+
readonly v?: "stretch" | "center" | "end" | "start" | undefined;
|
|
182
|
+
readonly h?: "stretch" | "center" | "end" | "start" | undefined;
|
|
183
|
+
};
|
|
184
|
+
};
|
|
185
|
+
};
|
|
186
|
+
readonly media?: string | undefined;
|
|
187
|
+
}[];
|
|
188
|
+
readonly readonly?: string | undefined;
|
|
189
|
+
} | undefined;
|
|
190
|
+
readonly dataSource?: {
|
|
191
|
+
readonly data: string;
|
|
192
|
+
readonly total?: string | undefined;
|
|
193
|
+
readonly request?: string | undefined;
|
|
194
|
+
} | undefined;
|
|
161
195
|
readonly actions?: {
|
|
162
196
|
readonly size: "default" | "sm" | "xs";
|
|
163
197
|
readonly style?: string | undefined;
|
|
@@ -225,40 +259,6 @@ export declare function TableConfig(configure: (env: Environment) => void): Sche
|
|
|
225
259
|
readonly variant?: "default" | "link" | "destructive" | "primary" | "ghost" | undefined;
|
|
226
260
|
}[];
|
|
227
261
|
} | undefined;
|
|
228
|
-
readonly query?: {
|
|
229
|
-
readonly style?: string | undefined;
|
|
230
|
-
readonly id?: string | undefined;
|
|
231
|
-
readonly initial?: {
|
|
232
|
-
readonly data: string;
|
|
233
|
-
readonly request?: string | undefined;
|
|
234
|
-
} | undefined;
|
|
235
|
-
readonly displayName?: string | undefined;
|
|
236
|
-
readonly kind: "shwfed.component.form";
|
|
237
|
-
readonly fields: readonly any[];
|
|
238
|
-
readonly layouts: readonly {
|
|
239
|
-
readonly name: string;
|
|
240
|
-
readonly layout: {
|
|
241
|
-
readonly style?: string | undefined;
|
|
242
|
-
readonly columns: number;
|
|
243
|
-
readonly gap?: number | undefined;
|
|
244
|
-
readonly rows?: number | undefined;
|
|
245
|
-
readonly placements: {
|
|
246
|
-
readonly [x: string]: {
|
|
247
|
-
readonly area: readonly [readonly [number, number], readonly [number, number]];
|
|
248
|
-
readonly v?: "stretch" | "center" | "end" | "start" | undefined;
|
|
249
|
-
readonly h?: "stretch" | "center" | "end" | "start" | undefined;
|
|
250
|
-
};
|
|
251
|
-
};
|
|
252
|
-
};
|
|
253
|
-
readonly media?: string | undefined;
|
|
254
|
-
}[];
|
|
255
|
-
readonly readonly?: string | undefined;
|
|
256
|
-
} | undefined;
|
|
257
|
-
readonly dataSource?: {
|
|
258
|
-
readonly data: string;
|
|
259
|
-
readonly total?: string | undefined;
|
|
260
|
-
readonly request?: string | undefined;
|
|
261
|
-
} | undefined;
|
|
262
262
|
readonly bottomActions?: {
|
|
263
263
|
readonly size: "default" | "sm" | "xs";
|
|
264
264
|
readonly style?: string | undefined;
|
|
@@ -827,6 +827,40 @@ export declare function createTableConfig(body: Omit<Schema.Schema.Type<ReturnTy
|
|
|
827
827
|
readonly message: string;
|
|
828
828
|
}[]] | undefined;
|
|
829
829
|
}[];
|
|
830
|
+
query?: {
|
|
831
|
+
readonly style?: string | undefined;
|
|
832
|
+
readonly id?: string | undefined;
|
|
833
|
+
readonly initial?: {
|
|
834
|
+
readonly data: string;
|
|
835
|
+
readonly request?: string | undefined;
|
|
836
|
+
} | undefined;
|
|
837
|
+
readonly displayName?: string | undefined;
|
|
838
|
+
readonly kind: "shwfed.component.form";
|
|
839
|
+
readonly fields: readonly any[];
|
|
840
|
+
readonly layouts: readonly {
|
|
841
|
+
readonly name: string;
|
|
842
|
+
readonly layout: {
|
|
843
|
+
readonly style?: string | undefined;
|
|
844
|
+
readonly columns: number;
|
|
845
|
+
readonly gap?: number | undefined;
|
|
846
|
+
readonly rows?: number | undefined;
|
|
847
|
+
readonly placements: {
|
|
848
|
+
readonly [x: string]: {
|
|
849
|
+
readonly area: readonly [readonly [number, number], readonly [number, number]];
|
|
850
|
+
readonly v?: "stretch" | "center" | "end" | "start" | undefined;
|
|
851
|
+
readonly h?: "stretch" | "center" | "end" | "start" | undefined;
|
|
852
|
+
};
|
|
853
|
+
};
|
|
854
|
+
};
|
|
855
|
+
readonly media?: string | undefined;
|
|
856
|
+
}[];
|
|
857
|
+
readonly readonly?: string | undefined;
|
|
858
|
+
} | undefined;
|
|
859
|
+
dataSource?: {
|
|
860
|
+
readonly data: string;
|
|
861
|
+
readonly total?: string | undefined;
|
|
862
|
+
readonly request?: string | undefined;
|
|
863
|
+
} | undefined;
|
|
830
864
|
actions?: {
|
|
831
865
|
readonly size: "default" | "sm" | "xs";
|
|
832
866
|
readonly style?: string | undefined;
|
|
@@ -894,40 +928,6 @@ export declare function createTableConfig(body: Omit<Schema.Schema.Type<ReturnTy
|
|
|
894
928
|
readonly variant?: "default" | "link" | "destructive" | "primary" | "ghost" | undefined;
|
|
895
929
|
}[];
|
|
896
930
|
} | undefined;
|
|
897
|
-
query?: {
|
|
898
|
-
readonly style?: string | undefined;
|
|
899
|
-
readonly id?: string | undefined;
|
|
900
|
-
readonly initial?: {
|
|
901
|
-
readonly data: string;
|
|
902
|
-
readonly request?: string | undefined;
|
|
903
|
-
} | undefined;
|
|
904
|
-
readonly displayName?: string | undefined;
|
|
905
|
-
readonly kind: "shwfed.component.form";
|
|
906
|
-
readonly fields: readonly any[];
|
|
907
|
-
readonly layouts: readonly {
|
|
908
|
-
readonly name: string;
|
|
909
|
-
readonly layout: {
|
|
910
|
-
readonly style?: string | undefined;
|
|
911
|
-
readonly columns: number;
|
|
912
|
-
readonly gap?: number | undefined;
|
|
913
|
-
readonly rows?: number | undefined;
|
|
914
|
-
readonly placements: {
|
|
915
|
-
readonly [x: string]: {
|
|
916
|
-
readonly area: readonly [readonly [number, number], readonly [number, number]];
|
|
917
|
-
readonly v?: "stretch" | "center" | "end" | "start" | undefined;
|
|
918
|
-
readonly h?: "stretch" | "center" | "end" | "start" | undefined;
|
|
919
|
-
};
|
|
920
|
-
};
|
|
921
|
-
};
|
|
922
|
-
readonly media?: string | undefined;
|
|
923
|
-
}[];
|
|
924
|
-
readonly readonly?: string | undefined;
|
|
925
|
-
} | undefined;
|
|
926
|
-
dataSource?: {
|
|
927
|
-
readonly data: string;
|
|
928
|
-
readonly total?: string | undefined;
|
|
929
|
-
readonly request?: string | undefined;
|
|
930
|
-
} | undefined;
|
|
931
931
|
bottomActions?: {
|
|
932
932
|
readonly size: "default" | "sm" | "xs";
|
|
933
933
|
readonly style?: string | undefined;
|
|
@@ -3,9 +3,9 @@ import type { HTMLAttributes } from 'vue';
|
|
|
3
3
|
type __VLS_Props = ListboxContentProps & {
|
|
4
4
|
class?: HTMLAttributes['class'];
|
|
5
5
|
};
|
|
6
|
-
declare var
|
|
6
|
+
declare var __VLS_14: {};
|
|
7
7
|
type __VLS_Slots = {} & {
|
|
8
|
-
default?: (props: typeof
|
|
8
|
+
default?: (props: typeof __VLS_14) => any;
|
|
9
9
|
};
|
|
10
10
|
declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
11
11
|
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
import { reactiveOmit } from "@vueuse/core";
|
|
3
3
|
import { ListboxContent, useForwardProps } from "reka-ui";
|
|
4
4
|
import { cn } from "../../../utils/cn";
|
|
5
|
+
import { ScrollArea } from "../scroll-area";
|
|
5
6
|
const props = defineProps({
|
|
6
7
|
asChild: { type: Boolean, required: false },
|
|
7
8
|
as: { type: null, required: false },
|
|
@@ -12,13 +13,20 @@ const forwarded = useForwardProps(delegatedProps);
|
|
|
12
13
|
</script>
|
|
13
14
|
|
|
14
15
|
<template>
|
|
16
|
+
<!-- The cap stays on ListboxContent so callers keep overriding it through
|
|
17
|
+
`class`; ScrollArea inherits it and owns the actual overflow. -->
|
|
15
18
|
<ListboxContent
|
|
16
19
|
data-slot="command-list"
|
|
17
20
|
v-bind="forwarded"
|
|
18
|
-
:class="cn('max-h-[300px]
|
|
21
|
+
:class="cn('max-h-[300px] overflow-hidden', props.class)"
|
|
19
22
|
>
|
|
20
|
-
<
|
|
21
|
-
|
|
22
|
-
|
|
23
|
+
<ScrollArea
|
|
24
|
+
class="max-h-[inherit]"
|
|
25
|
+
viewport-class="scroll-py-1"
|
|
26
|
+
>
|
|
27
|
+
<div role="presentation">
|
|
28
|
+
<slot />
|
|
29
|
+
</div>
|
|
30
|
+
</ScrollArea>
|
|
23
31
|
</ListboxContent>
|
|
24
32
|
</template>
|
|
@@ -3,9 +3,9 @@ import type { HTMLAttributes } from 'vue';
|
|
|
3
3
|
type __VLS_Props = ListboxContentProps & {
|
|
4
4
|
class?: HTMLAttributes['class'];
|
|
5
5
|
};
|
|
6
|
-
declare var
|
|
6
|
+
declare var __VLS_14: {};
|
|
7
7
|
type __VLS_Slots = {} & {
|
|
8
|
-
default?: (props: typeof
|
|
8
|
+
default?: (props: typeof __VLS_14) => any;
|
|
9
9
|
};
|
|
10
10
|
declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
11
11
|
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
@@ -170,7 +170,7 @@ const leadingAlign = computed(
|
|
|
170
170
|
>
|
|
171
171
|
<Command class="rounded group-data-[side=top]/popover:flex-col-reverse">
|
|
172
172
|
<CommandInput placeholder="搜索可用变量" />
|
|
173
|
-
<CommandList class="max-h-48
|
|
173
|
+
<CommandList class="max-h-48">
|
|
174
174
|
<CommandEmpty>No variables.</CommandEmpty>
|
|
175
175
|
<CommandGroup>
|
|
176
176
|
<CommandItem
|
|
@@ -3,9 +3,9 @@ type __VLS_Props = PopoverContentProps & {
|
|
|
3
3
|
disabled?: boolean;
|
|
4
4
|
invalid?: boolean;
|
|
5
5
|
};
|
|
6
|
-
declare var
|
|
6
|
+
declare var __VLS_54: {};
|
|
7
7
|
type __VLS_Slots = {} & {
|
|
8
|
-
default?: (props: typeof
|
|
8
|
+
default?: (props: typeof __VLS_54) => any;
|
|
9
9
|
};
|
|
10
10
|
declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
11
11
|
blur: (...args: any[]) => void;
|
|
@@ -64,12 +64,18 @@ const open = ref(false);
|
|
|
64
64
|
@blur="emits('blur', $event)"
|
|
65
65
|
/>
|
|
66
66
|
</PopoverTrigger>
|
|
67
|
+
<!-- The search input is the trigger, so it sits outside the content. On
|
|
68
|
+
open reka's FocusScope focuses the first tabbable node inside the
|
|
69
|
+
content — `CommandList`'s ScrollArea viewport carries `tabindex=0` —
|
|
70
|
+
which blurs the input and makes the combobox untypeable. Keep focus
|
|
71
|
+
where the user put it. -->
|
|
67
72
|
<PopoverContent
|
|
68
73
|
v-bind="forwarded"
|
|
69
74
|
:reference="getInputGroupReference().value ?? void 0"
|
|
70
75
|
:style="{
|
|
71
76
|
width: 'var(--reka-popover-trigger-width)'
|
|
72
77
|
}"
|
|
78
|
+
@open-auto-focus="(event) => event.preventDefault()"
|
|
73
79
|
>
|
|
74
80
|
<CommandList>
|
|
75
81
|
<CommandEmpty as-child>
|
|
@@ -3,9 +3,9 @@ type __VLS_Props = PopoverContentProps & {
|
|
|
3
3
|
disabled?: boolean;
|
|
4
4
|
invalid?: boolean;
|
|
5
5
|
};
|
|
6
|
-
declare var
|
|
6
|
+
declare var __VLS_54: {};
|
|
7
7
|
type __VLS_Slots = {} & {
|
|
8
|
-
default?: (props: typeof
|
|
8
|
+
default?: (props: typeof __VLS_54) => any;
|
|
9
9
|
};
|
|
10
10
|
declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
11
11
|
blur: (...args: any[]) => void;
|
|
@@ -2,6 +2,7 @@ import type { ScrollAreaRootProps } from 'reka-ui';
|
|
|
2
2
|
import type { HTMLAttributes } from 'vue';
|
|
3
3
|
type __VLS_Props = ScrollAreaRootProps & {
|
|
4
4
|
class?: HTMLAttributes['class'];
|
|
5
|
+
viewportClass?: HTMLAttributes['class'];
|
|
5
6
|
};
|
|
6
7
|
declare var __VLS_14: {};
|
|
7
8
|
type __VLS_Slots = {} & {
|
|
@@ -14,9 +14,10 @@ const props = defineProps({
|
|
|
14
14
|
scrollHideDelay: { type: Number, required: false },
|
|
15
15
|
asChild: { type: Boolean, required: false },
|
|
16
16
|
as: { type: null, required: false },
|
|
17
|
-
class: { type: [Boolean, null, String, Object, Array], required: false, skipCheck: true }
|
|
17
|
+
class: { type: [Boolean, null, String, Object, Array], required: false, skipCheck: true },
|
|
18
|
+
viewportClass: { type: [Boolean, null, String, Object, Array], required: false, skipCheck: true }
|
|
18
19
|
});
|
|
19
|
-
const delegatedProps = reactiveOmit(props, "class");
|
|
20
|
+
const delegatedProps = reactiveOmit(props, "class", "viewportClass");
|
|
20
21
|
</script>
|
|
21
22
|
|
|
22
23
|
<template>
|
|
@@ -25,9 +26,14 @@ const delegatedProps = reactiveOmit(props, "class");
|
|
|
25
26
|
v-bind="delegatedProps"
|
|
26
27
|
:class="cn('relative', props.class)"
|
|
27
28
|
>
|
|
29
|
+
<!-- `max-h-[inherit]`: when the root is capped by `max-h-*` instead of a
|
|
30
|
+
definite height (a popover list sized by its content), `h-full` on the
|
|
31
|
+
viewport resolves to `auto` and it would grow past the cap unscrolled.
|
|
32
|
+
Inheriting the root's max-height gives the viewport the overflow it
|
|
33
|
+
needs; it computes to `none` for definite-height roots. -->
|
|
28
34
|
<ScrollAreaViewport
|
|
29
35
|
data-slot="scroll-area-viewport"
|
|
30
|
-
class="size-full rounded-[inherit] outline-none"
|
|
36
|
+
:class="cn('size-full max-h-[inherit] rounded-[inherit] outline-none', props.viewportClass)"
|
|
31
37
|
>
|
|
32
38
|
<slot />
|
|
33
39
|
</ScrollAreaViewport>
|
|
@@ -2,6 +2,7 @@ import type { ScrollAreaRootProps } from 'reka-ui';
|
|
|
2
2
|
import type { HTMLAttributes } from 'vue';
|
|
3
3
|
type __VLS_Props = ScrollAreaRootProps & {
|
|
4
4
|
class?: HTMLAttributes['class'];
|
|
5
|
+
viewportClass?: HTMLAttributes['class'];
|
|
5
6
|
};
|
|
6
7
|
declare var __VLS_14: {};
|
|
7
8
|
type __VLS_Slots = {} & {
|
|
@@ -160,8 +160,16 @@ export declare function useEventChannel(): EventChannel | undefined;
|
|
|
160
160
|
* scope (e.g. a table row's `row`) rather than the handling ancestor's. Pass it
|
|
161
161
|
* whenever the emitter has a CEL context; omit it and ops fall back to their
|
|
162
162
|
* host evaluator. See `OpRequest.cel`.
|
|
163
|
+
*
|
|
164
|
+
* `outputs` lets the CALLER own the chain's step-outputs map instead of getting
|
|
165
|
+
* a fresh private one. Two things need that, both in `state.write`: the button
|
|
166
|
+
* reads what its 写入前 chain published to thread into the write expressions'
|
|
167
|
+
* `steps`, and it passes the SAME map to its 写入后 chain, so an after-op can
|
|
168
|
+
* reference a before-op's output. A caller that supplies one MUST mint it per
|
|
169
|
+
* RUN (inside its own `Effect.suspend`) — otherwise one click's outputs leak
|
|
170
|
+
* into the next, which is exactly what the private map prevents.
|
|
163
171
|
*/
|
|
164
|
-
export declare function dispatchTriggers(channel: EventChannel | undefined, triggers: ReadonlyArray<TriggerValue> | undefined, cel?: CelEvaluator): Effect.Effect<void>;
|
|
172
|
+
export declare function dispatchTriggers(channel: EventChannel | undefined, triggers: ReadonlyArray<TriggerValue> | undefined, cel?: CelEvaluator, outputs?: Record<string, unknown>): Effect.Effect<void>;
|
|
165
173
|
/**
|
|
166
174
|
* One operation a component type exposes. `id` is what the trigger stores;
|
|
167
175
|
* `name`/`icon` are display only.
|