@synopackageland/ui 0.17.15 → 0.18.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 +26 -0
- package/README.md +9 -7
- package/dist/components/app/page-toolbar/PageToolbar.vue.d.ts +15 -0
- package/dist/components/composite/callout/Callout.vue.d.ts +14 -6
- package/dist/components/composite/comment-item/CommentItem.vue.d.ts +2 -2
- package/dist/components/composite/facet-panel/FacetPanel.vue.d.ts +34 -0
- package/dist/components/composite/new-items-pill/NewItemsPill.vue.d.ts +14 -0
- package/dist/components/composite/summary-card/SummaryCard.vue.d.ts +48 -0
- package/dist/components/composite/tag-editor/TagEditor.vue.d.ts +32 -0
- package/dist/components/composite/timeline-row/TimelineRow.vue.d.ts +57 -0
- package/dist/components/composite/tree-view/TreeView.vue.d.ts +2 -2
- package/dist/components/primitives/badge/Badge.vue.d.ts +7 -0
- package/dist/components/primitives/button/Button.vue.d.ts +1 -1
- package/dist/components/primitives/dropdown-menu/DropdownMenu.vue.d.ts +5 -0
- package/dist/components/primitives/dropdown-menu/types.d.ts +6 -0
- package/dist/components/primitives/popover/Popover.vue.d.ts +8 -1
- package/dist/components/primitives/segment-control/SegmentItem.vue.d.ts +2 -0
- package/dist/components/primitives/sheet/Sheet.vue.d.ts +10 -0
- package/dist/components/primitives/skeleton/SectionSkeleton.vue.d.ts +6 -0
- package/dist/i18n/text.d.ts +7 -0
- package/dist/index.d.ts +9 -0
- package/dist/index.js +10504 -9639
- package/dist/json/catalog.d.ts +2 -0
- package/dist/json/registry.d.ts +34 -0
- package/dist/json-ai-prompt.md +1 -1
- package/dist/json-catalog.schema.json +2 -1
- package/dist/json-preview/preview.js +7198 -6771
- package/dist/json.js +1 -1
- 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/button-policy.md +3 -1
- package/docs/callout.md +9 -2
- package/docs/layout-rules.md +2 -2
- package/docs/theme-hooks.md +16 -1
- package/package.json +1 -1
package/docs/button-policy.md
CHANGED
|
@@ -20,6 +20,7 @@ are in [dsm-native-metrics.md](dsm-native-metrics.md).
|
|
|
20
20
|
| Dialog, sheet or wizard footer | `Dialog`, `Sheet`, `Wizard` `#footer` | capsule | Cancel `secondary`, then OK `primary` |
|
|
21
21
|
| Wizard footer | `Wizard` | capsule | The step's `#actions` at the start (a quiet `ghost` `kind="tool"` text action); Cancel `secondary` (a page wizard only), Back `secondary`, then Next / Apply / Finish `primary` at the end |
|
|
22
22
|
| Confirmation of a destructive action | `Dialog` `#footer` | capsule | Cancel `secondary`, then Delete `danger` |
|
|
23
|
+
| Destructive choice beside the main action | `Dialog` `#footer` | capsule | Cancel `secondary`, the destructive choice `danger-outline` (Replace theirs), then the main action `primary` (Save as copy) |
|
|
23
24
|
| Form or window footer | `FormActions`, `AppActionBar`, `Footbar`, `Panel` `#fbar` | capsule | Reset `secondary`, then Apply `primary` |
|
|
24
25
|
| Notification | `Notification` `confirm` / `cancel` | capsule | Cancel `secondary`, then the action `primary` |
|
|
25
26
|
| Toolbar | `AppToolbar`, a row above a list | tool | `secondary`; `SplitButton` for Create and its variants |
|
|
@@ -36,7 +37,8 @@ are in [dsm-native-metrics.md](dsm-native-metrics.md).
|
|
|
36
37
|
wizard. An action that stays on the page, such as Disable this connection,
|
|
37
38
|
Open or Check again, is a tool button even in a section footer.
|
|
38
39
|
2. One main action per footer: one `primary`, or one `danger` for a
|
|
39
|
-
destructive confirmation. The others are `secondary
|
|
40
|
+
destructive confirmation. The others are `secondary`, or `danger-outline`
|
|
41
|
+
for a destructive choice that is not the main one.
|
|
40
42
|
3. The main action goes last, at the right edge: Cancel then OK, Reset then
|
|
41
43
|
Apply. A footer is right-aligned, except `FormActions` in a page form, which
|
|
42
44
|
starts at the field edge.
|
package/docs/callout.md
CHANGED
|
@@ -9,6 +9,7 @@ has its own component, and none of them is a full-width banner.
|
|
|
9
9
|
| A passing result: "Settings applied", "The check passed", "Copied" | `useToast()` | A toast that fades after 4.5 s. Do not leave a Callout behind for it. |
|
|
10
10
|
| Something the user has to act on: a missing setting, a failed connection, a sign-in that waits | `<Callout>` | One-line title, at most one line of text, one action. |
|
|
11
11
|
| A risk or a limit of a feature | `<Callout variant="inline">` | One short sentence; longer text in `#details` behind "Learn more", or a link. |
|
|
12
|
+
| A state of the page that fits its toolbar row: "Two devices are offline", "Read only" | `<Callout variant="hint">` | The icon and a few words on one line; the details in a tooltip. |
|
|
12
13
|
| A failure the user has to know about now, outside the page | `Notification` / `MessageBox` | See their docs. |
|
|
13
14
|
|
|
14
15
|
## Closing
|
|
@@ -57,6 +58,12 @@ icon and one line of secondary text, with a link or a small button after it.
|
|
|
57
58
|
Use it for a note under a field or a section heading, where a panel would
|
|
58
59
|
weigh more than the note.
|
|
59
60
|
|
|
61
|
+
`variant="hint"` is one toolbar-high line: the tone's icon, the title in bold
|
|
62
|
+
and the message after it, cut with an ellipsis when the row is short. The
|
|
63
|
+
`#details` slot goes behind an info mark whose tooltip opens on hover or focus,
|
|
64
|
+
and on a tap with a touch pointer. A hint has no close button; it goes away
|
|
65
|
+
when its cause does. Put it in a `PageToolbar` or another row of controls.
|
|
66
|
+
|
|
60
67
|
### Why this one
|
|
61
68
|
|
|
62
69
|
Three directions were drawn as working prototypes, each in every tone, with
|
|
@@ -122,11 +129,11 @@ Two earlier looks were rejected:
|
|
|
122
129
|
| Prop / slot | Use |
|
|
123
130
|
| --- | --- |
|
|
124
131
|
| `tone` | `info` (default), `success`, `warning`, `danger` |
|
|
125
|
-
| `variant` | `soft` (default) or `
|
|
132
|
+
| `variant` | `soft` (default), `inline` or `hint` |
|
|
126
133
|
| `title` | One line, the thing to know |
|
|
127
134
|
| default slot | The message |
|
|
128
135
|
| `#actions` | One action, at the end of the message |
|
|
129
|
-
| `#details` + `v-model:expanded` | Longer text behind a "Learn more" toggle (`moreLabel`, `lessLabel`) |
|
|
136
|
+
| `#details` + `v-model:expanded` | Longer text behind a "Learn more" toggle (`moreLabel`, `lessLabel`); in a hint, the tooltip of its info mark (named by `moreLabel`) |
|
|
130
137
|
| `code` | A machine error code, shown quieter after the message |
|
|
131
138
|
| `dismissible` (default `true`), `dismissKey`, `closeLabel`, `@close` | The close button; the callout returns when its text or `dismissKey` changes. `false` only for a state that must stay in view |
|
|
132
139
|
| `fill` | Span the container instead of stopping at 720px |
|
package/docs/layout-rules.md
CHANGED
|
@@ -54,7 +54,7 @@ The setting is a form value, saved with the page's Apply action. It does not nav
|
|
|
54
54
|
## Settings pages
|
|
55
55
|
|
|
56
56
|
- Use `<SectionTabs fill keep-mounted>` for settings with local unsaved drafts. `keep-mounted` mounts every supplied item panel immediately and hides inactive panels with `v-show`; their effects stay active. Without it, switching tabs unmounts the previous panel. `fill` alone only controls layout. Keep persistent business data and background work in the app when needed.
|
|
57
|
-
- `SettingsPage`
|
|
57
|
+
- `SettingsPage` stacks its body without a `Space` wrapper: each visible direct child sits `--ui-space-4` (16px) under the one before (a Callout, a skeleton, a section), and sibling `SettingsSection`s are `--ui-space-6` (24px) apart. Place them directly in its default slot. A `hidden` child (a closed Callout) takes no gap, and `Fieldset` keeps its own DSM spacing.
|
|
58
58
|
- A settings page has one label column. `FormItem` (horizontal), `SettingsRow` and `KeyValueRow` share `--ui-label-column` (`--ui-label-width`, at most 40% of a narrow row) and `--ui-label-gap`, so SDK panels and App rows line up; `FormActions inset` starts at the same edge. Labels and `KeyValueRow` values break between words, not inside one. Do not pass a different `labelWidth` per section.
|
|
59
59
|
- Labels sit left in the column, as on DSM's own settings pages: the eye runs down one edge, and a long label wraps instead of pushing the value.
|
|
60
60
|
- Colours are fixed by role: section title `--ui-text` semibold 14px, label and value `--ui-text`, help text `--ui-text-secondary` 12px.
|
|
@@ -107,7 +107,7 @@ The setting is a form value, saved with the page's Apply action. It does not nav
|
|
|
107
107
|
## Page
|
|
108
108
|
|
|
109
109
|
- `PageHeader` sticks to the top while the content scrolls.
|
|
110
|
-
- A settings page with tabs is `SectionTabs fill` with one `SettingsPage` per panel, in a container with a height (a window, `AppLayout height="fill"
|
|
110
|
+
- A settings page with tabs is `SectionTabs fill` with one `SettingsPage` per panel, in a container with a height (a window, `AppLayout height="fill"`; in a flex column it takes the height its siblings leave, with no override): the tab strip stays at the top, the footer at the bottom, and only the sections scroll. Without a height (a phone page), the page scrolls, the strip sticks to the top and the footer to the bottom, above the safe area. Under 520px of row width labels stack over their controls.
|
|
111
111
|
- `DataGrid` and `DataTable` fill the height their flex-column container leaves by default (`fill`), as DSM's lists do: the header row stays, the rows scroll inside the table, and a DataGrid's footer ("3 items", the pager) sits at the container's bottom whatever the row count. A list page uses `AppLayout height="fill"` and `PageContent height="fill"` so the table, its last child, gets that height. Where the page itself scrolls (a phone), the footer sticks to the bottom of the viewport above the safe area. Give a short table inside a form, a settings section or a dialog `:fill="false"`: it is as tall as its rows. Do not let the whole page scroll past a 50-row page to reach the pager.
|
|
112
112
|
- `PageHeader` keeps the title and its `meta` slot (an info button, a chip) on one line. Actions that would crowd the title move under it, at the right edge; a title longer than its line ends in "…" and shows in full on hover.
|
|
113
113
|
- `EmptyState` fills the remaining height and centres its content. Do not add footnotes below it.
|
package/docs/theme-hooks.md
CHANGED
|
@@ -79,20 +79,35 @@ here stay implementation details and can change in any release.
|
|
|
79
79
|
|
|
80
80
|
| Attribute | On | Values |
|
|
81
81
|
| --- | --- | --- |
|
|
82
|
-
| `data-variant` | `Button` | `primary`, `secondary`, `ghost`, `danger` |
|
|
82
|
+
| `data-variant` | `Button` | `primary`, `secondary`, `ghost`, `danger`, `danger-outline` |
|
|
83
83
|
| `data-variant` | `IconButton` | `primary`, `secondary`, `ghost` |
|
|
84
84
|
| `data-variant` | `SplitButton`'s outer group | `primary`, `secondary` |
|
|
85
85
|
| `data-kind` | `Button` | `tool`, `action` |
|
|
86
86
|
| `data-loading`, `data-disabled` | `Button` | present while loading / explicitly disabled |
|
|
87
|
+
| `data-lead`, `data-trail` | `Button`'s label | present when an element (icon, `StatusDot`) sits before / after the text |
|
|
87
88
|
| `data-split-main`, `data-split-arrow` | `SplitButton`'s two halves | present |
|
|
88
89
|
| `data-ui-surface` | `Surface` and every `Card` frame | present |
|
|
89
90
|
| `data-variant` | `Surface` / `Card` frame | `default`, `inset` |
|
|
90
91
|
| `data-ui-dialog`, `data-ui-sheet` | `Dialog` / `Sheet` panels | present |
|
|
92
|
+
| `data-modal` | a `Sheet` panel | `false` on a non-modal sheet |
|
|
93
|
+
| `data-ui-badge-dot` | `Badge`'s leading dot | present |
|
|
94
|
+
| `data-menu-description` | a `DropdownMenu` entry's second line | present |
|
|
95
|
+
| `data-ui-segment-count` | a `SegmentItem`'s count pill | present |
|
|
91
96
|
| `data-ui-list-item-title`, `-description`, `-meta`, `-actions`, `-leading` | `ListItem` parts | present |
|
|
92
97
|
| `data-ui-statistic-label`, `-value`, `-note` | `Statistic` parts | present |
|
|
93
98
|
| `data-ui-stat-tile` | `StatTile` (`data-tone`; a filter tile also `data-state` `on` / `off`) | present |
|
|
94
99
|
| `data-ui-stat-tile-label`, `-value`, `-unit`, `-note` | `StatTile` parts | present |
|
|
95
100
|
| `data-ui-stat-tile-group` | `StatTileGroup` | present |
|
|
101
|
+
| `data-ui-page-toolbar`, `-start`, `-actions` | `PageToolbar` and its two sides | present |
|
|
102
|
+
| `data-ui-summary-card` | `SummaryCard` (`data-state` `loading`, `error`, `ready`; `data-wide`) | present |
|
|
103
|
+
| `data-ui-summary-card-title`, `-state`, `-figures`, `-figure`, `-body`, `-note`, `-error` | `SummaryCard` parts | present |
|
|
104
|
+
| `data-ui-skeleton` | `SectionSkeleton` | `lines`, `figures`, `rows` (parts `data-ui-skeleton-line`, `-figure`, `-row`) |
|
|
105
|
+
| `data-ui-timeline-row` | `TimelineRow` (class `ui-timeline-row`, `data-tone`, `data-expanded`); under a 600px container the chip and time move under the meta | present |
|
|
106
|
+
| `data-ui-timeline-row-leading`, `-icon`, `-title`, `-meta`, `-chip`, `-time`, `-actions`, `-toggle`, `-detail` | `TimelineRow` parts | present |
|
|
107
|
+
| `data-ui-new-items-pill` | `NewItemsPill` (`data-edge` `top`, `bottom`) | present |
|
|
108
|
+
| `data-ui-facet-panel` | `FacetPanel` (`data-presentation` `panel`, `sheet`) | present |
|
|
109
|
+
| `data-ui-facet-group` (`data-key`), `-group-toggle`, `data-ui-facet-value` (`aria-pressed`), `data-ui-facet-count`, `data-ui-facet-panel-clear`, `-trigger`, `-count` | `FacetPanel` parts | present |
|
|
110
|
+
| `data-ui-tag-editor` (`data-editing`), `-read`, `-field`, `-input`, `-list`, `-option` (`data-kind` `option`, `create`) | `TagEditor` parts | present |
|
|
96
111
|
| `data-ui-fieldset` | `Fieldset` | present |
|
|
97
112
|
| `data-fieldset-description` | `Fieldset` description under the title | present |
|
|
98
113
|
| `data-ui-form-group` | `FormGroup` (`data-disabled` while disabled) | present |
|