@synopackageland/ui 0.20.10 → 0.20.11
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 +11 -0
- package/README.md +7 -3
- package/dist/components/app/app-tab-bar/AppTabBar.vue.d.ts +3 -1
- package/dist/components/composite/file-picker/FilePicker.vue.d.ts +6 -0
- package/dist/i18n/filePicker.d.ts +1 -0
- package/dist/index.js +3216 -3208
- package/dist/json/catalog.d.ts +4 -4
- package/dist/json/registry.d.ts +68 -68
- package/dist/json-preview/preview.js +2468 -2466
- package/dist/lib/adaptiveLayout.d.ts +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 +5 -0
- package/docs/color-system.md +6 -4
- package/docs/theme-hooks.md +1 -1
- package/docs/wizard.md +4 -0
- package/package.json +89 -1
package/docs/button-policy.md
CHANGED
|
@@ -52,6 +52,11 @@ are in [dsm-native-metrics.md](dsm-native-metrics.md).
|
|
|
52
52
|
8. An icon-only action is an `IconButton` with a `label`; it shows as its
|
|
53
53
|
tooltip and names the button for screen readers.
|
|
54
54
|
9. Labels are verbs, without a closing period: Apply, Disable this connection.
|
|
55
|
+
10. A label is plain text, with at most an icon before or after it:
|
|
56
|
+
`<Button><Mic :size="16" />Record</Button>`. The Button counts only an `svg`
|
|
57
|
+
or an element marked `data-icon` (`Icon` and `StatusDot` are) as the icon:
|
|
58
|
+
it gets the 8px gap and sits on the label's centre line. Do not wrap the
|
|
59
|
+
text in a `<span>`; a span is read as text, so it gets no gap of its own.
|
|
55
60
|
|
|
56
61
|
## What the components do
|
|
57
62
|
|
package/docs/color-system.md
CHANGED
|
@@ -111,10 +111,12 @@ step 3, so links and selected labels stay readable on a dark page.
|
|
|
111
111
|
## Dark theme
|
|
112
112
|
|
|
113
113
|
The dark theme (`src/theme/dark.css`) ships inside `theme.css` and the embedded stylesheets. It applies wherever
|
|
114
|
-
`data-ui-color-scheme="dark"` is set: on the app root
|
|
115
|
-
`<AppRoot color-scheme="dark"
|
|
116
|
-
|
|
117
|
-
|
|
114
|
+
`data-ui-color-scheme="dark"` is set: on the app root (`[data-ui-app]`)
|
|
115
|
+
through `<AppRoot color-scheme="dark">`. With `theme.css` on a page of your own,
|
|
116
|
+
`<html data-ui-color-scheme="dark">` works too; the embedded stylesheets (a DSM
|
|
117
|
+
window) are scoped to the app root and read the attribute only there, never on
|
|
118
|
+
the host's `<html>` (an app with an accent passes `color-scheme="dark"` to
|
|
119
|
+
AppRoot in any case, which derives the accent for it). The library does not follow `prefers-color-scheme` by itself;
|
|
118
120
|
the host decides and sets the attribute.
|
|
119
121
|
|
|
120
122
|
The same roles, with the light page's sage carried into the greys:
|
package/docs/theme-hooks.md
CHANGED
|
@@ -31,7 +31,7 @@ here stay implementation details and can change in any release.
|
|
|
31
31
|
| --- | --- | --- |
|
|
32
32
|
| `data-ui-app` | `AppRoot`'s root and its floating hosts (portals) | present |
|
|
33
33
|
| `data-ui-theme`, `data-ui-density`, `data-ui-accent` | the app root (mirrored on floating hosts) | theme name, `compact`/`comfortable`, present |
|
|
34
|
-
| `data-ui-color-scheme` | the app root (AppRoot `color-scheme`, mirrored on floating hosts)
|
|
34
|
+
| `data-ui-color-scheme` | the app root (AppRoot `color-scheme`, mirrored on floating hosts); `<html>` only with `theme.css`, not the embedded stylesheets | `dark` |
|
|
35
35
|
| `data-ui-presentation` | `AppRoot` root | `mobile` (640px or narrower), else `web` for a `full-page` root or one holding an `AppLayout` with `wide-layout="web"` from 960px, else `window` (a DSM window at any width) |
|
|
36
36
|
| `data-ui-floating` | a floating host (dialog, menu, popover) | present |
|
|
37
37
|
| `data-ui-layout-mode` | `AppLayout` root | `mobile`, `window`, `web` |
|
package/docs/wizard.md
CHANGED
|
@@ -53,6 +53,10 @@ const open = ref(false)
|
|
|
53
53
|
- **Text.** `description` is one short line at the top of the step, under the
|
|
54
54
|
hero, without a closing period. Keep the content to the controls the step
|
|
55
55
|
needs; it may be wide (a row of cards) or a form.
|
|
56
|
+
- **Layout.** The step lays its content out as written, in block flow: it
|
|
57
|
+
does not stack its children with a gap. Several blocks go in one `Form`
|
|
58
|
+
(fields one field gap apart) or a `<Space direction="column">`; a lone
|
|
59
|
+
Callout, paragraph or card grid needs no wrapper.
|
|
56
60
|
- **Choices.** A step's 2–4 options are choice cards:
|
|
57
61
|
`<RadioGroup variant="card" orientation="horizontal" :options>`. Each card
|
|
58
62
|
shows the option's `icon` in a tile, its label and one line, and keeps the
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@synopackageland/ui",
|
|
3
|
-
"version": "0.20.
|
|
3
|
+
"version": "0.20.11",
|
|
4
4
|
"description": "Shared Vue 3 UI component library with a DSM 7 inspired application theme",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"type": "module",
|
|
@@ -60,6 +60,59 @@
|
|
|
60
60
|
"./themes/dsm7-embedded-reset.css": "./dist/themes/dsm7-embedded-reset.css",
|
|
61
61
|
"./themes/dsm7-embedded-theme.css": "./dist/themes/dsm7-embedded-theme.css"
|
|
62
62
|
},
|
|
63
|
+
"scripts": {
|
|
64
|
+
"check:docs": "node --test scripts/check-doc-versions.test.mjs && node scripts/check-doc-versions.mjs",
|
|
65
|
+
"dev": "vite build --watch",
|
|
66
|
+
"build": "vite build && vite build --mode json && vite build --mode rich-text && vite build --mode grid && vite build --mode cli && vite build --mode preview && vite build --mode embedded && node scripts/postbuild.mjs",
|
|
67
|
+
"lint": "eslint .",
|
|
68
|
+
"typecheck": "vue-tsc --noEmit -p tsconfig.json",
|
|
69
|
+
"test": "vitest run",
|
|
70
|
+
"test:watch": "vitest",
|
|
71
|
+
"test:changed": "echo \"test:changed skips the tests the changes since ${SYNOPKGLAND_GATE_BASE:-origin/master} do not reach (vitest --changed); pnpm check runs them all\" && vitest run --changed ${SYNOPKGLAND_GATE_BASE:-origin/master}",
|
|
72
|
+
"story": "histoire dev",
|
|
73
|
+
"story:build": "histoire build",
|
|
74
|
+
"check:host": "node scripts/dsm-host-shots.mjs",
|
|
75
|
+
"check:switch": "node scripts/check-switch.mjs",
|
|
76
|
+
"check:tabs": "node scripts/check-tabs.mjs",
|
|
77
|
+
"check:mobile": "node scripts/check-mobile-overflow.mjs",
|
|
78
|
+
"check:ui-patch": "node scripts/check-ui-patch.mjs",
|
|
79
|
+
"check:narrow": "node scripts/check-narrow-controls.mjs",
|
|
80
|
+
"check:drawer-form": "node scripts/check-drawer-form.mjs",
|
|
81
|
+
"check:responsive": "node scripts/check-responsive.mjs",
|
|
82
|
+
"check:adaptive": "node scripts/check-adaptive.mjs",
|
|
83
|
+
"check:sidebar-focus": "node scripts/check-sidebar-focus.mjs",
|
|
84
|
+
"check:json-render": "node scripts/check-json-render.mjs",
|
|
85
|
+
"check:motion": "node scripts/check-motion.mjs",
|
|
86
|
+
"check:topology": "node scripts/check-topology.mjs",
|
|
87
|
+
"check:wizard": "node scripts/check-wizard.mjs",
|
|
88
|
+
"check:edges": "node scripts/check-edges.mjs",
|
|
89
|
+
"check:data-grid": "node scripts/check-data-grid.mjs",
|
|
90
|
+
"check:truncation": "node scripts/check-truncation.mjs",
|
|
91
|
+
"check:link": "node scripts/check-link.mjs",
|
|
92
|
+
"check:text-select": "node scripts/check-text-select.mjs",
|
|
93
|
+
"check:date-picker": "node scripts/check-date-picker.mjs",
|
|
94
|
+
"check:full-page": "node scripts/check-full-page.mjs",
|
|
95
|
+
"check:detail-surface": "node scripts/check-detail-surface.mjs",
|
|
96
|
+
"check:internal": "node --test scripts/check-internal-content.test.mjs scripts/check-npm-metadata.test.mjs && node scripts/check-internal-content.mjs --repo .",
|
|
97
|
+
"check:npm-metadata": "node scripts/check-npm-metadata.mjs",
|
|
98
|
+
"check:package": "node scripts/check-package-content.mjs",
|
|
99
|
+
"check:public-api-consumer": "node scripts/check-public-api-consumer.mjs",
|
|
100
|
+
"notices:update": "node scripts/third-party-notices.mjs --write",
|
|
101
|
+
"notices:check": "node scripts/third-party-notices.mjs --check",
|
|
102
|
+
"check": "bash scripts/docker-check.sh \"npm run gates\"",
|
|
103
|
+
"check:fast": "bash scripts/docker-check.sh \"npm run gates\"",
|
|
104
|
+
"check:local-browser": "node scripts/app-local-browser.mjs",
|
|
105
|
+
"check:infotip": "node scripts/check-infotip.mjs",
|
|
106
|
+
"release:stage": "node scripts/stage-release.mjs",
|
|
107
|
+
"check:polish": "bash scripts/docker-check.sh --build --out .polish-shots 'node scripts/check-polish.mjs'",
|
|
108
|
+
"check:acceptance": "node scripts/check-acceptance.mjs",
|
|
109
|
+
"check:palette": "node scripts/check-palette.mjs",
|
|
110
|
+
"gates": "node scripts/gates.mjs",
|
|
111
|
+
"gates:full": "node scripts/gates.mjs --full",
|
|
112
|
+
"check:layout": "node scripts/check-layout.mjs",
|
|
113
|
+
"release:smoke": "node scripts/release-smoke.mjs",
|
|
114
|
+
"check:browser-install": "playwright install chromium"
|
|
115
|
+
},
|
|
63
116
|
"peerDependencies": {
|
|
64
117
|
"vue": "^3.5.0"
|
|
65
118
|
},
|
|
@@ -79,9 +132,44 @@
|
|
|
79
132
|
"@tiptap/vue-3": "3.32.1",
|
|
80
133
|
"zod": "^4.6.5"
|
|
81
134
|
},
|
|
135
|
+
"devDependencies": {
|
|
136
|
+
"@eslint/js": "10.0.1",
|
|
137
|
+
"@histoire/plugin-vue": "1.0.0-beta.1",
|
|
138
|
+
"@tailwindcss/vite": "4.3.3",
|
|
139
|
+
"@tanstack/vue-virtual": "3.13.39",
|
|
140
|
+
"@vitejs/plugin-vue": "6.0.9",
|
|
141
|
+
"@vue/test-utils": "2.5.1",
|
|
142
|
+
"@vueuse/core": "14.4.0",
|
|
143
|
+
"eslint": "10.11.0",
|
|
144
|
+
"eslint-plugin-vue": "10.11.1",
|
|
145
|
+
"flexsearch": "0.8.212",
|
|
146
|
+
"globals": "17.12.0",
|
|
147
|
+
"histoire": "1.0.0-beta.1",
|
|
148
|
+
"jsdom": "30.1.1",
|
|
149
|
+
"playwright": "1.58.2",
|
|
150
|
+
"reka-ui": "2.11.0",
|
|
151
|
+
"tailwindcss": "4.3.3",
|
|
152
|
+
"typescript": "5.9.3",
|
|
153
|
+
"typescript-eslint": "8.71.0",
|
|
154
|
+
"vite": "7.3.6",
|
|
155
|
+
"vite-plugin-dts": "5.1.1",
|
|
156
|
+
"vitest": "5.0.2",
|
|
157
|
+
"vscode-oniguruma": "2.0.1",
|
|
158
|
+
"vscode-textmate": "9.3.2",
|
|
159
|
+
"vue": "3.5.43",
|
|
160
|
+
"vue-eslint-parser": "10.4.1",
|
|
161
|
+
"vue-tsc": "3.3.11"
|
|
162
|
+
},
|
|
82
163
|
"engines": {
|
|
83
164
|
"node": ">=20"
|
|
84
165
|
},
|
|
166
|
+
"packageManager": "pnpm@10.33.2",
|
|
167
|
+
"pnpm": {
|
|
168
|
+
"onlyBuiltDependencies": [
|
|
169
|
+
"esbuild",
|
|
170
|
+
"vue-demi"
|
|
171
|
+
]
|
|
172
|
+
},
|
|
85
173
|
"config": {
|
|
86
174
|
"bundledRuntime": {
|
|
87
175
|
"@tanstack/vue-virtual": "3.13.39",
|