@synopackageland/ui 0.25.13 → 0.25.14

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.
@@ -318,6 +318,7 @@ const { state, width } = useAsidePreference('studio.aside', 'editor', { state: '
318
318
  - Focus moves to the composer's first field on open (not on touch, `initial-focus` changes it) and back to the rail button or the phone button on collapse.
319
319
  - Escape: docked and expanded leave it to the content (stop a reply). A floating panel with focus inside, or a sheet, collapses on Escape after any layer opened above it (a menu, a popover) has closed.
320
320
  - No transition runs before the first paint has settled. The state needs no `transitionend`: only a floating panel's exit waits for one, with the `normal` token as its deadline, and a new state change or reduced motion ends it at once.
321
+ - Header: by default (`header-layout="stacked"`) the `tabs` slot sits above a row with the title and the actions. `header-layout="inline"` puts the tabs in that row instead, at its start, with the actions at its end, and hides the title visually: it stays an `h2` for screen readers and the panel's accessible name (on a phone, the sheet dialog's name). Without a `tabs` slot the title stays visible. The header carries `data-ui-aside-header-layout`.
321
322
  - Labels: "Open {name}", "Collapse {name}", "Expand {name}" and "Restore {name}" with the title, in the nine locales; `open-label`, `collapse-label`, `expand-label` and `restore-label` replace them. The app binds its shortcut and calls the exposed `toggle()`.
322
323
  - `useAsidePreference(key, scope, defaults)` keeps `{"v":1,"<scope>":{"state","width"}}` in localStorage, written on each change (the width only when a drag ends); other fields in a scope's entry are kept. `readAsidePreference` reads it synchronously for a pre-paint script.
323
324
 
@@ -63,6 +63,7 @@ own browser tab) may follow `prefers-color-scheme` (see [Dark theme](color-syste
63
63
  | `data-ui-aside-rail` / `data-ui-aside-open` | the 48px rail and its button | present |
64
64
  | `data-ui-aside-fab` | the phone button | present |
65
65
  | `data-ui-aside-collapse` / `data-ui-aside-expand` / `data-ui-aside-restore` | header buttons | present |
66
+ | `data-ui-aside-header` | the panel's (or sheet's) header | `data-ui-aside-header-layout` is `stacked` or `inline` (the tabs share the actions' row; `inline` with no tabs reads `stacked`) |
66
67
  | `data-ui-aside-body` / `data-ui-aside-composer` | the thread scroller and the composer | present |
67
68
  | `data-ui-mobile-navigation` | the phone bar above the page | present |
68
69
  | `data-ui-mobile-menu` | the phone bar's menu (hamburger) button | present |
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@synopackageland/ui",
3
- "version": "0.25.13",
3
+ "version": "0.25.14",
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,67 @@
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:press": "node scripts/check-press.mjs",
89
+ "check:edges": "node scripts/check-edges.mjs",
90
+ "check:data-grid": "node scripts/check-data-grid.mjs",
91
+ "check:truncation": "node scripts/check-truncation.mjs",
92
+ "check:link": "node scripts/check-link.mjs",
93
+ "check:text-select": "node scripts/check-text-select.mjs",
94
+ "check:date-picker": "node scripts/check-date-picker.mjs",
95
+ "check:full-page": "node scripts/check-full-page.mjs",
96
+ "check:short-viewport": "node scripts/check-short-viewport.mjs",
97
+ "check:phone-layout": "node scripts/check-phone-layout.mjs",
98
+ "check:phone-bars": "node scripts/check-phone-bars.mjs",
99
+ "check:phone-fill": "node scripts/check-phone-fill.mjs",
100
+ "check:text-zoom": "node scripts/check-text-zoom.mjs",
101
+ "check:focus-restore": "node scripts/check-focus-restore.mjs",
102
+ "check:detail-surface": "node scripts/check-detail-surface.mjs",
103
+ "check:internal": "node --test scripts/check-internal-content.test.mjs scripts/check-npm-metadata.test.mjs && node scripts/check-internal-content.mjs --repo .",
104
+ "check:npm-metadata": "node scripts/check-npm-metadata.mjs",
105
+ "check:package": "node scripts/check-package-content.mjs",
106
+ "trace:restyle": "node scripts/trace-restyle.mjs",
107
+ "check:public-api-consumer": "node scripts/check-public-api-consumer.mjs",
108
+ "notices:update": "node scripts/third-party-notices.mjs --write",
109
+ "notices:check": "node scripts/third-party-notices.mjs --check",
110
+ "check": "bash scripts/docker-check.sh \"npm run gates\"",
111
+ "check:fast": "bash scripts/docker-check.sh \"npm run gates\"",
112
+ "check:local-browser": "node scripts/app-local-browser.mjs",
113
+ "check:infotip": "node scripts/check-infotip.mjs",
114
+ "release:stage": "node scripts/stage-release.mjs",
115
+ "check:polish": "bash scripts/docker-check.sh --build --out .polish-shots 'node scripts/check-polish.mjs'",
116
+ "check:acceptance": "node scripts/check-acceptance.mjs",
117
+ "check:palette": "node scripts/check-palette.mjs",
118
+ "gates": "node scripts/gates.mjs",
119
+ "gates:full": "node scripts/gates.mjs --full",
120
+ "check:layout": "node scripts/check-layout.mjs",
121
+ "release:smoke": "node scripts/release-smoke.mjs",
122
+ "check:browser-install": "playwright install chromium webkit"
123
+ },
63
124
  "peerDependencies": {
64
125
  "vue": "^3.5.0"
65
126
  },
@@ -79,9 +140,44 @@
79
140
  "@tiptap/vue-3": "3.32.1",
80
141
  "zod": "^4.6.5"
81
142
  },
143
+ "devDependencies": {
144
+ "@eslint/js": "10.0.1",
145
+ "@histoire/plugin-vue": "1.0.0-beta.1",
146
+ "@tailwindcss/vite": "4.3.3",
147
+ "@tanstack/vue-virtual": "3.13.39",
148
+ "@vitejs/plugin-vue": "6.0.9",
149
+ "@vue/test-utils": "2.5.1",
150
+ "@vueuse/core": "14.4.0",
151
+ "eslint": "10.11.0",
152
+ "eslint-plugin-vue": "10.11.1",
153
+ "flexsearch": "0.8.212",
154
+ "globals": "17.12.0",
155
+ "histoire": "1.0.0-beta.1",
156
+ "jsdom": "30.1.1",
157
+ "playwright": "1.58.2",
158
+ "reka-ui": "2.11.0",
159
+ "tailwindcss": "4.3.3",
160
+ "typescript": "5.9.3",
161
+ "typescript-eslint": "8.71.0",
162
+ "vite": "7.3.6",
163
+ "vite-plugin-dts": "5.1.1",
164
+ "vitest": "5.0.2",
165
+ "vscode-oniguruma": "2.0.1",
166
+ "vscode-textmate": "9.3.2",
167
+ "vue": "3.5.43",
168
+ "vue-eslint-parser": "10.4.1",
169
+ "vue-tsc": "3.3.11"
170
+ },
82
171
  "engines": {
83
172
  "node": ">=20"
84
173
  },
174
+ "packageManager": "pnpm@10.33.2",
175
+ "pnpm": {
176
+ "onlyBuiltDependencies": [
177
+ "esbuild",
178
+ "vue-demi"
179
+ ]
180
+ },
85
181
  "config": {
86
182
  "bundledRuntime": {
87
183
  "@tanstack/vue-virtual": "3.13.39",