@synopackageland/ui 0.16.4 → 0.17.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +13 -0
- package/README.md +7 -5
- package/dist/components/composite/wizard/Wizard.vue.d.ts +9 -9
- package/dist/components/composite/wizard/WizardStep.vue.d.ts +1 -1
- package/dist/components/composite/wizard/types.d.ts +8 -7
- package/dist/components/composite/wizard/wizardContext.d.ts +2 -0
- package/dist/components/primitives/dialog/Dialog.vue.d.ts +12 -3
- package/dist/index.js +4721 -4741
- package/dist/json-preview/preview.js +1928 -1915
- package/dist/reka-runtime.json +1 -1
- package/dist/theme.css +1 -1
- package/dist/themes/dsm7-embedded-theme.css +1 -1
- package/dist/themes/dsm7-embedded.css +1 -1
- package/dist/themes/dsm7.css +1 -1
- package/docs/app-local-modal.md +14 -0
- package/docs/button-policy.md +1 -1
- package/docs/color-system.md +1 -1
- package/docs/wizard.md +66 -31
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,18 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 0.17.0 (2026-10-26)
|
|
4
|
+
|
|
5
|
+
Visual change: `Wizard` and `WizardDialog` follow DSM's wizard window. Props, slots, events and exposed methods keep working except where noted.
|
|
6
|
+
|
|
7
|
+
- `Wizard` has a fixed header: the wizard's name small (`title`), the current step's `headline` large, and a compact progress bar (a segment per step) with "Step n of total" beside it, then one line. The step no longer repeats its headline; it opens with its hero and its `description`. The header's title takes the focus on a step change and is described by the progress.
|
|
8
|
+
- The footer keeps the main action last at the right edge on every step: the step's `#actions` at the start, then Cancel (when `cancellable`), Back and the main action together at the end. Back was at the start.
|
|
9
|
+
- `stepper`: `auto` / `bar` is the header bar; `rail` lists the steps beside the step from `rail-min-width` (the bar below it); `header` (0.16's numbered band) now means the bar. `Wizard description` is deprecated and no longer shown.
|
|
10
|
+
- `WizardDialog`: no Cancel in the footer (`cancellable` defaults to `false`); the close button sits beside the wizard's name in one header band. Closing it, with the button or Escape, emits `cancel`. It opens like a DSM modal window: a light scrim instead of the dark mask, a soft glow all round (`--ui-shadow-modal`), rounder corners, and a press outside neither closes it nor reaches the app.
|
|
11
|
+
- `Dialog scrim` (`dim` | `light` | `none`), `close-on-outside` and `header-divider`, for a window-like dialog of your own. New tokens `--ui-overlay-light` and `--ui-shadow-modal`, light and dark.
|
|
12
|
+
- A quiet text action at the start of the wizard's footer (a ghost `#actions` button) shows its whole label; it was cut by the offset that lines it up with the step. A step scrolls a focused card into view with a small gap above and below.
|
|
13
|
+
- `Dialog` opens with the focus on the first visible field or button; a focusable element in a hidden part (a wizard's later step) no longer sends it to the close button.
|
|
14
|
+
- `pnpm check:wizard`: a real-browser check of `WizardDialog` at 960x600 and 1280x800, light and dark.
|
|
15
|
+
|
|
3
16
|
## 0.16.4 (2026-10-25)
|
|
4
17
|
|
|
5
18
|
- `ConnectionTopology` compact lanes no longer switch between wrap levels without end in a tight lane (a row of three cards at DPR 2): Chrome can report the track sizes of the last drawn frame right after a lane's words change, so the fit is now a first guess that each lane checks once drawn, wrapping a level more or less, and never back to a level it was drawn failing at.
|
package/README.md
CHANGED
|
@@ -302,11 +302,13 @@ lets dialogs be dragged out of the window, within the browser viewport. See
|
|
|
302
302
|
|
|
303
303
|
### Wizard
|
|
304
304
|
|
|
305
|
-
`WizardDialog` opens a multi-step setup in a large app-local dialog
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
305
|
+
`WizardDialog` opens a multi-step setup in a large app-local dialog, built like
|
|
306
|
+
DSM's wizards: a fixed header with the wizard's name, the step's title and a
|
|
307
|
+
compact progress bar; a scrolling step with its hero and one line; and a fixed
|
|
308
|
+
footer with Back and the one main action together at the end. The app behind
|
|
309
|
+
takes a light scrim, and a press on it does not close the wizard. `Wizard` is
|
|
310
|
+
the same layout for a `<Dialog flush>` of your own or a page (`framed`). See
|
|
311
|
+
[docs/wizard.md](docs/wizard.md).
|
|
310
312
|
|
|
311
313
|
### Toast notifications
|
|
312
314
|
|
|
@@ -3,25 +3,25 @@ type __VLS_Props = {
|
|
|
3
3
|
/** Initial / external reset key. Internal navigation keeps working when the caller does not bind it back. */
|
|
4
4
|
activeStepKey?: string;
|
|
5
5
|
footer?: WizardFooterConfig;
|
|
6
|
-
/** Shows the
|
|
6
|
+
/** Shows Cancel in the footer, beside Back. A wizard in a dialog leaves it to the header's close button. */
|
|
7
7
|
cancellable?: boolean;
|
|
8
8
|
ariaLabel?: string;
|
|
9
|
-
/** The wizard's name,
|
|
9
|
+
/** The wizard's name, small above the step title. `WizardDialog` puts it in the dialog header instead. */
|
|
10
10
|
title?: string;
|
|
11
|
-
/**
|
|
11
|
+
/** @deprecated Not shown since 0.17; put the line in the first step's `description`. */
|
|
12
12
|
description?: string;
|
|
13
|
-
/**
|
|
13
|
+
/** How the header shows the progress; see `WizardStepper`. */
|
|
14
14
|
stepper?: WizardStepper;
|
|
15
15
|
/** @deprecated Use `stepper`. `false` is `stepper="none"`. */
|
|
16
16
|
showSteps?: boolean;
|
|
17
17
|
/** Draws a border, rounded corners and a shadow, for a wizard placed on a page rather than in a dialog. */
|
|
18
18
|
framed?: boolean;
|
|
19
19
|
/** On a page: takes the height left below it in its scroll container, so
|
|
20
|
-
* the
|
|
20
|
+
* the header and the footer stay in view and only the step scrolls. */
|
|
21
21
|
fit?: boolean;
|
|
22
22
|
/** The least height `fit` takes; in a shorter window the page scrolls instead. */
|
|
23
23
|
fitMinHeight?: number;
|
|
24
|
-
/** With `stepper="
|
|
24
|
+
/** With `stepper="rail"`, the wizard width from which the rail shows; narrower shows the bar. */
|
|
25
25
|
railMinWidth?: number;
|
|
26
26
|
progressText?: (current: number, total: number) => string;
|
|
27
27
|
};
|
|
@@ -29,7 +29,7 @@ declare function toNextStep(): Promise<void>;
|
|
|
29
29
|
declare function toPreviousStep(): Promise<void>;
|
|
30
30
|
declare function finish(): Promise<void>;
|
|
31
31
|
declare function cancel(): void;
|
|
32
|
-
declare var
|
|
32
|
+
declare var __VLS_6: {}, __VLS_14: {
|
|
33
33
|
nextStep: typeof toNextStep;
|
|
34
34
|
previousStep: typeof toPreviousStep;
|
|
35
35
|
finish: typeof finish;
|
|
@@ -40,9 +40,9 @@ declare var __VLS_11: {}, __VLS_19: {
|
|
|
40
40
|
stepKey: string;
|
|
41
41
|
};
|
|
42
42
|
type __VLS_Slots = {} & {
|
|
43
|
-
default?: (props: typeof
|
|
43
|
+
default?: (props: typeof __VLS_6) => any;
|
|
44
44
|
} & {
|
|
45
|
-
footer?: (props: typeof
|
|
45
|
+
footer?: (props: typeof __VLS_14) => any;
|
|
46
46
|
};
|
|
47
47
|
declare const __VLS_base: import('vue').DefineComponent<__VLS_Props, {
|
|
48
48
|
activeStepKey: import('vue').ComputedRef<string>;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { WizardStepProps } from './types';
|
|
2
2
|
type __VLS_Slots = {
|
|
3
3
|
default?: () => unknown;
|
|
4
|
-
/** A picture or a diagram
|
|
4
|
+
/** A picture or a diagram at the top of the step, in place of the icon tile. */
|
|
5
5
|
hero?: () => unknown;
|
|
6
6
|
/** Secondary actions drawn in the wizard footer, before Cancel and the main action, while this step shows. */
|
|
7
7
|
actions?: () => unknown;
|
|
@@ -5,24 +5,25 @@ import { Component } from 'vue';
|
|
|
5
5
|
*/
|
|
6
6
|
export type WizardStepType = 'normal' | 'welcome' | 'done';
|
|
7
7
|
/**
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
*
|
|
8
|
+
* How the wizard shows its progress: a segmented bar beside the step title in
|
|
9
|
+
* the header (`'auto'`, `'bar'`), a rail listing the steps beside the step
|
|
10
|
+
* from `railMinWidth` and the bar below that (`'rail'`), or only the
|
|
11
|
+
* "Step n of total" line (`'none'`). `'header'` is the bar, kept for 0.16.
|
|
11
12
|
*/
|
|
12
|
-
export type WizardStepper = 'auto' | 'rail' | 'header' | 'none';
|
|
13
|
+
export type WizardStepper = 'auto' | 'bar' | 'rail' | 'header' | 'none';
|
|
13
14
|
/** A guard may return `false` (or resolve `false`) to block the step change. */
|
|
14
15
|
export type MaybePromise<T> = T | Promise<T>;
|
|
15
16
|
export type WizardStepProps = {
|
|
16
17
|
/** Unique key the wizard uses to identify this step. */
|
|
17
18
|
stepKey: string;
|
|
18
19
|
type?: WizardStepType;
|
|
19
|
-
/** The step's title,
|
|
20
|
+
/** The step's title, shown large in the wizard header while the step shows. */
|
|
20
21
|
headline?: string;
|
|
21
22
|
/** A shorter name for the step list; falls back to `headline`. */
|
|
22
23
|
label?: string;
|
|
23
|
-
/** One short line
|
|
24
|
+
/** One short line at the top of the step, under its hero. */
|
|
24
25
|
description?: string;
|
|
25
|
-
/** An icon shown in a tile beside the
|
|
26
|
+
/** An icon shown in a tile beside the description; the `#hero` slot replaces it with a picture or a diagram. */
|
|
26
27
|
icon?: Component;
|
|
27
28
|
/** Omitted on the final step: the forward button then becomes Apply. */
|
|
28
29
|
nextStepKey?: string | (() => string);
|
|
@@ -16,6 +16,8 @@ export type WizardContext = {
|
|
|
16
16
|
direction: Ref<WizardDirection>;
|
|
17
17
|
steps: Ref<WizardStepRegistration[]>;
|
|
18
18
|
busy: Ref<boolean>;
|
|
19
|
+
/** The id of the header's step title, which labels the shown step. */
|
|
20
|
+
headingId: string;
|
|
19
21
|
register: (registration: WizardStepRegistration) => void;
|
|
20
22
|
unregister: (key: string) => void;
|
|
21
23
|
};
|
|
@@ -19,14 +19,20 @@ type __VLS_Props = {
|
|
|
19
19
|
showClose?: boolean;
|
|
20
20
|
/** Drops the body's padding and scrolling, for content that lays out and scrolls itself (a `Wizard`). */
|
|
21
21
|
flush?: boolean;
|
|
22
|
+
/** `false` drops the line under the header, for content whose own header continues it (a `Wizard`'s step title). */
|
|
23
|
+
headerDivider?: boolean;
|
|
24
|
+
/** `false` keeps the dialog open when the user presses outside it, as DSM's modal windows do; Escape still closes it. */
|
|
25
|
+
closeOnOutside?: boolean;
|
|
26
|
+
/** The mask over the app behind: `dim` (default), `light` (a faint tint, as DSM leaves the window behind a wizard) or `none`. It blocks presses in each case. */
|
|
27
|
+
scrim?: 'dim' | 'light' | 'none';
|
|
22
28
|
};
|
|
23
|
-
declare var __VLS_14: {},
|
|
29
|
+
declare var __VLS_14: {}, __VLS_73: {}, __VLS_81: {};
|
|
24
30
|
type __VLS_Slots = {} & {
|
|
25
31
|
trigger?: (props: typeof __VLS_14) => any;
|
|
26
32
|
} & {
|
|
27
|
-
default?: (props: typeof
|
|
33
|
+
default?: (props: typeof __VLS_73) => any;
|
|
28
34
|
} & {
|
|
29
|
-
footer?: (props: typeof
|
|
35
|
+
footer?: (props: typeof __VLS_81) => any;
|
|
30
36
|
};
|
|
31
37
|
declare const __VLS_base: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
|
|
32
38
|
escapeKeyDown: (event: KeyboardEvent) => any;
|
|
@@ -47,6 +53,9 @@ declare const __VLS_base: import('vue').DefineComponent<__VLS_Props, {}, {}, {},
|
|
|
47
53
|
open: boolean;
|
|
48
54
|
flush: boolean;
|
|
49
55
|
showClose: boolean;
|
|
56
|
+
headerDivider: boolean;
|
|
57
|
+
closeOnOutside: boolean;
|
|
58
|
+
scrim: "dim" | "light" | "none";
|
|
50
59
|
}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
|
|
51
60
|
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
52
61
|
declare const _default: typeof __VLS_export;
|