@motifx-community/ui 0.1.0-beta.2 → 0.1.0-beta.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/CHANGELOG.md +87 -12
- package/README.md +6 -6
- package/dist/components/accordion/Accordion.d.ts +3 -3
- package/dist/components/accordion/AccordionItem.d.ts +1 -1
- package/dist/components/card/Card.d.ts +1 -1
- package/dist/components/contextmenu/ContextMenu.d.ts +1 -1
- package/dist/components/datagrid/DataGrid.d.ts +5 -5
- package/dist/components/datagrid/data-grid-props.d.ts +2 -2
- package/dist/components/datagrid/grid-adaptive-row-expanded-event-args.d.ts +1 -1
- package/dist/components/datagrid/grid-adaptive-row-expanding-event-args.d.ts +1 -1
- package/dist/components/datagrid/grid-grouping-changed-event-args.d.ts +1 -1
- package/dist/components/datagrid/grid-grouping-changing-event-args.d.ts +2 -2
- package/dist/components/datagrid/grid-master-detail.d.ts +1 -1
- package/dist/components/datagrid/grid-row-expanded-event-args.d.ts +1 -1
- package/dist/components/datagrid/grid-row-expanding-event-args.d.ts +1 -1
- package/dist/components/datagrid/grid-search-text-changed-event-args.d.ts +1 -1
- package/dist/components/datagrid/grid-search-text-changing-event-args.d.ts +1 -1
- package/dist/components/datagrid/grid-sort-changing-event-args.d.ts +1 -1
- package/dist/components/datagrid/model/GridSearch.d.ts +1 -1
- package/dist/components/draggable/Draggable.d.ts +99 -0
- package/dist/components/draggable/DropTarget.d.ts +38 -0
- package/dist/components/draggable/draggable-event-args.d.ts +17 -0
- package/dist/components/draggable/draggable-props.d.ts +37 -0
- package/dist/components/draggable/drop-event-args.d.ts +11 -0
- package/dist/components/draggable/drop-target-props.d.ts +13 -0
- package/dist/components/draggable/index.d.ts +6 -0
- package/dist/components/fileuploader/FileUploader.d.ts +1 -1
- package/dist/components/fileuploader/file-uploader-props.d.ts +1 -1
- package/dist/components/fileuploader/upload-mode.d.ts +1 -1
- package/dist/components/filterbuilder/FilterBuilder.d.ts +1 -1
- package/dist/components/gallery/Gallery.d.ts +132 -0
- package/dist/components/gallery/gallery-item-click-event-args.d.ts +9 -0
- package/dist/components/gallery/gallery-item.d.ts +18 -0
- package/dist/components/gallery/gallery-props.d.ts +38 -0
- package/dist/components/gallery/index.d.ts +6 -0
- package/dist/components/gallery/slide-changed-event-args.d.ts +11 -0
- package/dist/components/gallery/slide-changing-event-args.d.ts +14 -0
- package/dist/components/layout/ChildSettings.d.ts +1 -1
- package/dist/components/layout/DockPanel.d.ts +2 -2
- package/dist/components/layout/Grid.d.ts +1 -1
- package/dist/components/layout/SplitContainer.d.ts +1 -1
- package/dist/components/layout/Stack.d.ts +1 -1
- package/dist/components/multiview/MultiView.d.ts +87 -0
- package/dist/components/multiview/View.d.ts +41 -0
- package/dist/components/multiview/index.d.ts +6 -0
- package/dist/components/multiview/multi-view-props.d.ts +24 -0
- package/dist/components/multiview/view-props.d.ts +15 -0
- package/dist/components/multiview/view-selecting-event-args.d.ts +15 -0
- package/dist/components/multiview/view-selection-changed-event-args.d.ts +12 -0
- package/dist/components/numberbox/number-box-props.d.ts +1 -1
- package/dist/components/popover/Popover.d.ts +1 -1
- package/dist/components/popover/popover-props.d.ts +1 -1
- package/dist/components/resizable/Resizable.d.ts +84 -0
- package/dist/components/resizable/index.d.ts +3 -0
- package/dist/components/resizable/resizable-props.d.ts +41 -0
- package/dist/components/resizable/resize-event-args.d.ts +13 -0
- package/dist/components/scheduler/AppointmentEditor.d.ts +1 -1
- package/dist/components/scheduler/scheduler-props.d.ts +1 -1
- package/dist/components/scrollview/ScrollView.d.ts +1 -1
- package/dist/components/skeleton/Skeleton.d.ts +1 -1
- package/dist/components/speeddial/SpeedDial.d.ts +129 -0
- package/dist/components/speeddial/index.d.ts +6 -0
- package/dist/components/speeddial/speed-dial-action-click-event-args.d.ts +9 -0
- package/dist/components/speeddial/speed-dial-action.d.ts +25 -0
- package/dist/components/speeddial/speed-dial-event-args.d.ts +8 -0
- package/dist/components/speeddial/speed-dial-props.d.ts +49 -0
- package/dist/components/speeddial/speed-dial-tooltip.d.ts +3 -0
- package/dist/components/splitter/SplitPane.d.ts +45 -0
- package/dist/components/splitter/Splitter.d.ts +116 -0
- package/dist/components/splitter/index.d.ts +6 -0
- package/dist/components/splitter/split-pane-props.d.ts +21 -0
- package/dist/components/splitter/splitter-collapse-event-args.d.ts +13 -0
- package/dist/components/splitter/splitter-props.d.ts +25 -0
- package/dist/components/splitter/splitter-resize-event-args.d.ts +10 -0
- package/dist/components/stepper/Stepper.d.ts +1 -1
- package/dist/components/stepper/WizardStep.d.ts +1 -1
- package/dist/components/stepper/step-changed-event-args.d.ts +1 -1
- package/dist/components/stepper/step-changing-event-args.d.ts +1 -1
- package/dist/components/stepper/wizard-props.d.ts +1 -1
- package/dist/components/tabdocs/TabDocumentManager.d.ts +1 -1
- package/dist/components/tabs/Tabs.d.ts +2 -2
- package/dist/components/tileview/TileView.d.ts +128 -0
- package/dist/components/tileview/index.d.ts +6 -0
- package/dist/components/tileview/tile-click-event-args.d.ts +9 -0
- package/dist/components/tileview/tile-reorder-event-args.d.ts +11 -0
- package/dist/components/tileview/tile-selection-changed-event-args.d.ts +11 -0
- package/dist/components/tileview/tile-view-item.d.ts +18 -0
- package/dist/components/tileview/tile-view-props.d.ts +38 -0
- package/dist/components/timeline/Timeline.d.ts +113 -0
- package/dist/components/timeline/index.d.ts +5 -0
- package/dist/components/timeline/timeline-item-click-event-args.d.ts +9 -0
- package/dist/components/timeline/timeline-item.d.ts +24 -0
- package/dist/components/timeline/timeline-props.d.ts +30 -0
- package/dist/components/timeline/timeline-selection-changed-event-args.d.ts +11 -0
- package/dist/components/tooltip/Tooltip.d.ts +1 -1
- package/dist/components/treeview/TreeView.d.ts +1 -1
- package/dist/components/validationsummary/ValidationSummary.d.ts +56 -0
- package/dist/components/validationsummary/index.d.ts +3 -0
- package/dist/components/validationsummary/summary-item-click-event-args.d.ts +11 -0
- package/dist/components/validationsummary/validation-summary-props.d.ts +17 -0
- package/dist/core/control.d.ts +4 -4
- package/dist/core/flow-home.d.ts +1 -1
- package/dist/core/ui-strings.d.ts +26 -0
- package/dist/generated/tokens.d.ts +6390 -4745
- package/dist/index.d.ts +9 -0
- package/dist/index.js +5119 -759
- package/dist/index.js.map +1 -1
- package/dist/locales/en.json +22 -1
- package/dist/locales/tr.json +22 -1
- package/dist/parts/slide/slide-track-host.d.ts +19 -0
- package/dist/parts/slide/slide-track.d.ts +45 -0
- package/dist/styles.css +3072 -182
- package/dist/tokens/index.d.ts +6390 -4745
- package/dist/tokens/index.js +6390 -4745
- package/dist/tokens/index.js.map +1 -1
- package/dist/{tr-B218zMtu.js → tr-C5IXRzAH.js} +45 -3
- package/dist/{tr-B218zMtu.js.map → tr-C5IXRzAH.js.map} +1 -1
- package/docs/accordion.md +9 -9
- package/docs/actionsheet.md +2 -2
- package/docs/avatar.md +5 -5
- package/docs/badge.md +6 -6
- package/docs/bottomsheet.md +4 -4
- package/docs/breadcrumb.md +3 -3
- package/docs/button.md +8 -8
- package/docs/buttongroup.md +5 -5
- package/docs/calendar.md +6 -6
- package/docs/card.md +6 -6
- package/docs/checkbox.md +7 -7
- package/docs/chip.md +5 -5
- package/docs/colorbox.md +3 -3
- package/docs/combobox.md +7 -7
- package/docs/control.md +12 -12
- package/docs/datagrid-api.md +5 -5
- package/docs/datagrid-bands.md +1 -1
- package/docs/datagrid-drag-select.md +2 -2
- package/docs/datagrid-drag.md +1 -1
- package/docs/datagrid-editing.md +2 -2
- package/docs/datagrid-filtering.md +3 -3
- package/docs/datagrid-forms.md +1 -1
- package/docs/datagrid-grouping.md +1 -1
- package/docs/datagrid-layout.md +4 -4
- package/docs/datagrid-lookups.md +1 -1
- package/docs/datagrid-master-detail.md +3 -3
- package/docs/datagrid-scrolling.md +1 -1
- package/docs/datagrid-selection.md +3 -3
- package/docs/datagrid.md +8 -8
- package/docs/datebox.md +6 -6
- package/docs/daterangebox.md +4 -4
- package/docs/draggable.md +194 -0
- package/docs/drawer.md +1 -1
- package/docs/dropdown.md +8 -8
- package/docs/fileuploader.md +4 -4
- package/docs/filterbuilder.md +7 -7
- package/docs/formlayout.md +1 -1
- package/docs/gallery.md +244 -0
- package/docs/home.md +11 -7
- package/docs/keyboard.md +1 -1
- package/docs/language.md +1 -1
- package/docs/layout.md +13 -13
- package/docs/listbox.md +8 -8
- package/docs/loadpanel.md +4 -4
- package/docs/lookup.md +1 -1
- package/docs/menus.md +2 -2
- package/docs/multiview.md +202 -0
- package/docs/numberbox.md +7 -7
- package/docs/pagination.md +4 -4
- package/docs/popover.md +11 -11
- package/docs/progress.md +7 -7
- package/docs/radiogroup.md +7 -7
- package/docs/rating.md +4 -4
- package/docs/resizable.md +139 -0
- package/docs/scheduler-agenda.md +1 -1
- package/docs/scheduler-big-data.md +1 -1
- package/docs/scheduler-editing.md +5 -5
- package/docs/scheduler-form.md +1 -1
- package/docs/scheduler-icalendar.md +1 -1
- package/docs/scheduler-mobile.md +1 -1
- package/docs/scheduler-recurrence.md +2 -2
- package/docs/scheduler-resources.md +1 -1
- package/docs/scheduler-timeline.md +1 -1
- package/docs/scheduler.md +4 -4
- package/docs/scrollview.md +5 -5
- package/docs/showcase.md +1 -1
- package/docs/skeleton.md +2 -2
- package/docs/slider.md +7 -7
- package/docs/sortable.md +2 -2
- package/docs/speeddial.md +290 -0
- package/docs/splitter.md +204 -0
- package/docs/stepper.md +5 -5
- package/docs/switch.md +7 -7
- package/docs/tabdocs-dock.md +3 -3
- package/docs/tabdocs-drag.md +1 -1
- package/docs/tabdocs-menus.md +1 -1
- package/docs/tabdocs-mobile.md +1 -1
- package/docs/tabdocs-tabs.md +1 -1
- package/docs/tabdocs-windows.md +1 -1
- package/docs/tabdocs-workspace.md +1 -1
- package/docs/tabdocs.md +5 -5
- package/docs/tabs.md +9 -9
- package/docs/tagbox.md +8 -8
- package/docs/textarea.md +7 -7
- package/docs/textbox.md +8 -8
- package/docs/tileview.md +206 -0
- package/docs/timeline.md +174 -0
- package/docs/toast.md +5 -5
- package/docs/tokens.md +333 -4
- package/docs/toolbar.md +6 -6
- package/docs/tooltip.md +12 -12
- package/docs/treeview.md +9 -9
- package/docs/validationsummary.md +115 -0
- package/docs/window.md +5 -5
- package/docs/wizard.md +9 -9
- package/llms-full.txt +2525 -379
- package/llms.txt +13 -4
- package/package.json +1 -1
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
# ValidationSummary
|
|
2
|
+
|
|
3
|
+
> Editors · @motifx-community/ui 0.1.0-beta.3
|
|
4
|
+
|
|
5
|
+
The failed fields of a `ValidationGroup`, one line each with the field’s label and its message, under a header; a press on a line goes to the field. It draws itself again whenever a field of the group is checked or reset, and stays out of sight while nothing has failed.
|
|
6
|
+
|
|
7
|
+
## Import
|
|
8
|
+
|
|
9
|
+
```tsx
|
|
10
|
+
import { ValidationSummary, ValidationGroup } from '@motifx-community/ui';
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
## Above a form
|
|
14
|
+
|
|
15
|
+
Give it the `group` the fields join with `validationGroup`. After `group.validate()` the failed fields are listed; a field that passes again leaves the list, and `group.reset()` empties it. A press on a line focuses the field (`focusOnClick`).
|
|
16
|
+
|
|
17
|
+
```tsx
|
|
18
|
+
import { Button, NumberBox, Stack, TextBox, ValidationGroup, ValidationSummary } from '@motifx-community/ui';
|
|
19
|
+
|
|
20
|
+
/** The failed fields of a form listed above it after Save; a press on a line goes to the field. */
|
|
21
|
+
export default function Form() {
|
|
22
|
+
const group = new ValidationGroup();
|
|
23
|
+
return (
|
|
24
|
+
<Stack gap="md" style="inline-size: 100%; max-inline-size: 420px">
|
|
25
|
+
<ValidationSummary class="vs-form" group={group} />
|
|
26
|
+
<TextBox label="Name" required validationGroup={group} />
|
|
27
|
+
<TextBox label="E-mail" required rules={[{ type: 'email' }]} validationGroup={group} />
|
|
28
|
+
<NumberBox label="Guests" required rules={[{ type: 'range', min: 1, max: 8 }]} validationGroup={group} />
|
|
29
|
+
<Stack orientation="horizontal" gap="sm">
|
|
30
|
+
<Button class="vs-save" text="Save" tone="accent" onclick={() => void group.validate({ focus: false })} />
|
|
31
|
+
<Button class="vs-reset" text="Start again" variant="outline" onclick={() => group.reset()} />
|
|
32
|
+
</Stack>
|
|
33
|
+
</Stack>
|
|
34
|
+
);
|
|
35
|
+
}
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
## Programmatic use
|
|
39
|
+
|
|
40
|
+
`header` gives the line above the list, `showHeader` hides it; `onItemClick` tells which line was pressed, `failed` and `count` say what is listed.
|
|
41
|
+
|
|
42
|
+
```tsx
|
|
43
|
+
import { reactive } from '@motifx/core';
|
|
44
|
+
import { Button, Stack, TextBox, ValidationGroup, ValidationSummary } from '@motifx-community/ui';
|
|
45
|
+
|
|
46
|
+
/** A header of its own, or none; the lines tell which field was pressed, and `failed` says how many there are. */
|
|
47
|
+
export default function Programmatic() {
|
|
48
|
+
const group = new ValidationGroup();
|
|
49
|
+
const s = reactive({ header: true, told: '', count: 0 });
|
|
50
|
+
const summary = new ValidationSummary({
|
|
51
|
+
group,
|
|
52
|
+
header: 'Before you send it',
|
|
53
|
+
showHeader: () => s.header,
|
|
54
|
+
onItemClick: e => (s.told = `pressed: ${e.text}`)
|
|
55
|
+
});
|
|
56
|
+
return (
|
|
57
|
+
<Stack gap="md" style="inline-size: 100%; max-inline-size: 420px">
|
|
58
|
+
<span class="vs-coded" onConfig={c => c.controls.add(summary)} />
|
|
59
|
+
<TextBox label="Street" required validationGroup={group} />
|
|
60
|
+
<TextBox label="Town" required validationGroup={group} />
|
|
61
|
+
<Stack orientation="horizontal" wrap align="center">
|
|
62
|
+
<Button class="vs-coded-check" text="Check" tone="accent" onclick={async () => {
|
|
63
|
+
await group.validate({ focus: false });
|
|
64
|
+
s.count = summary.count;
|
|
65
|
+
}} />
|
|
66
|
+
<Button text="Header on and off" variant="outline" onclick={() => (s.header = !s.header)} />
|
|
67
|
+
<output class="vs-coded-told">{() => `${s.count} failed${s.told ? `, ${s.told}` : ''}`}</output>
|
|
68
|
+
</Stack>
|
|
69
|
+
</Stack>
|
|
70
|
+
);
|
|
71
|
+
}
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
## Accessibility
|
|
75
|
+
|
|
76
|
+
| Topic | How |
|
|
77
|
+
| --- | --- |
|
|
78
|
+
| `The summary` | A live region (`polite`): the lines are read out when they appear; out of sight while nothing has failed. |
|
|
79
|
+
| `A line` | A button with the field’s label and its message (“E-mail: Enter a valid e-mail address”); a press focuses the field. |
|
|
80
|
+
| `Glyph` | The mark before the header is decorative. |
|
|
81
|
+
|
|
82
|
+
## Styling
|
|
83
|
+
|
|
84
|
+
| Hook | What it is |
|
|
85
|
+
| --- | --- |
|
|
86
|
+
| `.mx-validation-summary` | The summary. `data-empty` while nothing has failed. |
|
|
87
|
+
| `.mx-validation-summary__header, .mx-validation-summary__icon, .mx-validation-summary__header-text` | The header, its glyph, its text. |
|
|
88
|
+
| `.mx-validation-summary__list, .mx-validation-summary__line, .mx-validation-summary__item` | The list, a line, the button in it. |
|
|
89
|
+
|
|
90
|
+
### Component tokens
|
|
91
|
+
|
|
92
|
+
| Token | What it sets |
|
|
93
|
+
| --- | --- |
|
|
94
|
+
| `validation-summary.box, .icon, .header, .item` | Units: the box, the glyph before the header (`icon`), the header’s text, a line (`hover`, `focus`). |
|
|
95
|
+
| `validation-summary.gap, .line-gap` | Between the header and the list; between the lines. |
|
|
96
|
+
|
|
97
|
+
## API reference
|
|
98
|
+
|
|
99
|
+
### Props
|
|
100
|
+
|
|
101
|
+
| Prop | Type | Default | Description |
|
|
102
|
+
| --- | --- | --- | --- |
|
|
103
|
+
| `group` | `Bind<ValidationGroup \| null>` | `null` | The group whose failed fields are listed. |
|
|
104
|
+
| `header` | `Bind<string>` | the kit’s “Please correct the following” | The line above the list. |
|
|
105
|
+
| `showHeader` | `Bind<boolean>` | `true` | The header is shown. |
|
|
106
|
+
| `focusOnClick` | `Bind<boolean>` | `true` | A press on a line focuses its field. |
|
|
107
|
+
|
|
108
|
+
### Events, properties and methods
|
|
109
|
+
|
|
110
|
+
| Member | Kind | Description |
|
|
111
|
+
| --- | --- | --- |
|
|
112
|
+
| `onItemClick` | event | A line was pressed (`target`, `text`). |
|
|
113
|
+
| `failed` | read-only | The failed targets listed now, in the group’s order. |
|
|
114
|
+
| `count` | read-only | How many lines there are. |
|
|
115
|
+
| `refresh()` | `void` | Draws the lines again from the fields as they are now. |
|
package/docs/window.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Window and dialog
|
|
2
2
|
|
|
3
|
-
> Navigation · @motifx-community/ui 0.1.0-beta.
|
|
3
|
+
> Navigation · @motifx-community/ui 0.1.0-beta.3
|
|
4
4
|
|
|
5
5
|
A window or a dialog on a native `<dialog>`: one form, shown modeless or modal by whoever shows it. It has a title bar, moves, resizes, minimizes and maximizes; Enter and Escape press its buttons; forms open forms. `messageBox` and `confirm` cover the common questions.
|
|
6
6
|
|
|
@@ -10,9 +10,9 @@ A window or a dialog on a native `<dialog>`: one form, shown modeless or modal b
|
|
|
10
10
|
import { MxForm, messageBox, confirm, type FormResult } from '@motifx-community/ui';
|
|
11
11
|
```
|
|
12
12
|
|
|
13
|
-
##
|
|
13
|
+
## Declarative and programmatic
|
|
14
14
|
|
|
15
|
-
In JSX, `x-model` shows the form while the value is true and writes `false` when the user closes it; it is hidden, not disposed, and lives with its parent.
|
|
15
|
+
In JSX, `x-model` shows the form while the value is true and writes `false` when the user closes it; it is hidden, not disposed, and lives with its parent. Programmatically, a form (often a class with a `view()`) is shown with `show(host)` or `showDialog(host)`; it is added to the host and disposed when it closes.
|
|
16
16
|
|
|
17
17
|
```tsx
|
|
18
18
|
import { reactive } from '@motifx/core';
|
|
@@ -206,7 +206,7 @@ export class RenameForm extends MxForm {
|
|
|
206
206
|
|
|
207
207
|
## Events
|
|
208
208
|
|
|
209
|
-
`onClosing` can keep the form open, here while it has changes; `reason` tells the user (close button, Escape)
|
|
209
|
+
`onClosing` can keep the form open, here while it has changes; `reason` tells the user (close button, Escape) programmatically and from the owner going away.
|
|
210
210
|
|
|
211
211
|
```tsx
|
|
212
212
|
import { reactive } from '@motifx/core';
|
|
@@ -451,7 +451,7 @@ import { reactive, type Component } from '@motifx/core';
|
|
|
451
451
|
import { Button, MxForm, Stack, TextBox, type FormResult } from '@motifx-community/ui';
|
|
452
452
|
import { RenameForm } from './RenameForm';
|
|
453
453
|
|
|
454
|
-
/** A modeless form in JSX shown through x-model, and a form class shown modal
|
|
454
|
+
/** A modeless form in JSX shown through x-model, and a form class shown modal programmatically. */
|
|
455
455
|
export default function JsxAndCode() {
|
|
456
456
|
const s = reactive({ find: false, query: '', found: '', renamed: '' });
|
|
457
457
|
let host: Component<HTMLDivElement> | null = null;
|
package/docs/wizard.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Wizard
|
|
2
2
|
|
|
3
|
-
> Navigation · @motifx-community/ui 0.1.0-beta.
|
|
3
|
+
> Navigation · @motifx-community/ui 0.1.0-beta.3
|
|
4
4
|
|
|
5
5
|
A task in steps: a [Stepper](stepper.md) above or beside one page per step, and the Back and Next buttons under them. Next validates the page first; on the last step it finishes.
|
|
6
6
|
|
|
@@ -44,7 +44,7 @@ export default function Basic() {
|
|
|
44
44
|
}
|
|
45
45
|
```
|
|
46
46
|
|
|
47
|
-
##
|
|
47
|
+
## Programmatic use
|
|
48
48
|
|
|
49
49
|
`steps` makes the steps from props, each page from a `content` factory when it is first shown; `add`, `insert` and `remove` change them later. `next()`, `previous()`, `goTo()` and `finish()` move it.
|
|
50
50
|
|
|
@@ -52,15 +52,15 @@ export default function Basic() {
|
|
|
52
52
|
import { Component, reactive } from '@motifx/core';
|
|
53
53
|
import { Button, Stack, Wizard, WizardStep } from '@motifx-community/ui';
|
|
54
54
|
|
|
55
|
-
// A page made
|
|
55
|
+
// A page made programmatically: any MotifJS component.
|
|
56
56
|
class Note extends Component<HTMLDivElement, { text: string }> {
|
|
57
57
|
override view() {
|
|
58
58
|
return <p>{this.props.text}</p>;
|
|
59
59
|
}
|
|
60
60
|
}
|
|
61
61
|
|
|
62
|
-
/** A wizard made
|
|
63
|
-
export default function
|
|
62
|
+
/** A wizard made programmatically: its steps as props with content factories, moved with its methods, a step added later. */
|
|
63
|
+
export default function Programmatic() {
|
|
64
64
|
const s = reactive({ told: '' });
|
|
65
65
|
const wizard = new Wizard({
|
|
66
66
|
label: 'Setup',
|
|
@@ -73,7 +73,7 @@ export default function FromCode() {
|
|
|
73
73
|
onFinished: () => (s.told = 'Finished.')
|
|
74
74
|
});
|
|
75
75
|
const addStep = () => {
|
|
76
|
-
wizard.insert(2, new WizardStep({ title: 'Extra', optional: true, content: () => new Note({ text: 'Added
|
|
76
|
+
wizard.insert(2, new WizardStep({ title: 'Extra', optional: true, content: () => new Note({ text: 'Added programmatically.' }) }));
|
|
77
77
|
};
|
|
78
78
|
return (
|
|
79
79
|
<Stack gap="md" style="inline-size: 100%">
|
|
@@ -195,7 +195,7 @@ export default function Custom() {
|
|
|
195
195
|
|
|
196
196
|
| Prop | Type | Default | Description |
|
|
197
197
|
| --- | --- | --- | --- |
|
|
198
|
-
| `steps` | `readonly WizardStepProps[]` | `[]` | Steps made
|
|
198
|
+
| `steps` | `readonly WizardStepProps[]` | `[]` | Steps made programmatically, each as the props of a `WizardStep`; the JSX `WizardStep` children come first. |
|
|
199
199
|
| `value` | `Bind<string \| number \| null>` | `0` | The current step: its `key`, else its index. `x-model` binds it two-way. |
|
|
200
200
|
| `linear` | `Bind<boolean>` | `true` | A step is reached only after the ones before it; optional steps may be skipped. |
|
|
201
201
|
| `orientation` | `Bind<StepperOrientation>` | `'horizontal'` | `horizontal`: the stepper above the pages; `vertical`: beside them. |
|
|
@@ -222,7 +222,7 @@ export default function Custom() {
|
|
|
222
222
|
| `validateFields` | `Bind<boolean>` | `true` | The kit’s fields on the page are validated before the wizard moves on from it; the first invalid one takes focus. |
|
|
223
223
|
| `validate` | `() => boolean \| Promise<boolean>` | — | Asked after the fields; `false` keeps the page and marks the step. |
|
|
224
224
|
| `lazy, keepAlive` | `Bind<boolean \| undefined>` | the wizard’s | See the wizard’s. |
|
|
225
|
-
| `content` | `() => ComponentBase \| ComponentBase[]` | — | Makes the page
|
|
225
|
+
| `content` | `() => ComponentBase \| ComponentBase[]` | — | Makes the page programmatically, when the page is built. |
|
|
226
226
|
|
|
227
227
|
### Events, properties and methods
|
|
228
228
|
|
|
@@ -234,7 +234,7 @@ export default function Custom() {
|
|
|
234
234
|
| `next(), previous(), goTo(step)` | `Promise<boolean>` | Next validates the page first and finishes on the last step; Back validates nothing; `goTo` validates when it goes forward. |
|
|
235
235
|
| `finish()` | `Promise<boolean>` | Validates the page, asks `onFinishing`, then finishes. |
|
|
236
236
|
| `leaveCheck()` | `Promise<boolean>` | Validates the current page the way Next does, without moving. |
|
|
237
|
-
| `add(step), insert(index, step), remove(step)` | `WizardStep` / `boolean` | Steps
|
|
237
|
+
| `add(step), insert(index, step), remove(step)` | `WizardStep` / `boolean` | Steps programmatically; a step of another wizard moves here. |
|
|
238
238
|
| `stepper, steps, currentStep, selectedIndex` | read-only | The `Stepper`, the `WizardStep`s in order, the current one and its index. |
|
|
239
239
|
| `isLast, isFinished` | read-only | The current step is the last that can be gone to (Next finishes); the wizard finished. |
|
|
240
240
|
| `previousButton, nextButton` | read-only | The kit’s buttons in the bar, for an icon or a look of your own. |
|