@synopackageland/ui 0.25.16 → 0.25.17
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 +12 -0
- package/dist/grid/host/controller.d.ts +9 -0
- package/dist/grid.js +1307 -1292
- package/docs/ux-grid.md +23 -1
- package/package.json +1 -97
package/docs/ux-grid.md
CHANGED
|
@@ -20,13 +20,35 @@ props (`getEditText`, `cell-commit`); cell painters are in `useGridCells`.
|
|
|
20
20
|
| Shift+click, Shift+arrow | Keep the anchor, move the head; Cmd/Ctrl+Shift+arrow jumps to the edge |
|
|
21
21
|
| Cmd/Ctrl+A | All cells |
|
|
22
22
|
| Column header click / Shift / Cmd | Select columns, extend, toggle |
|
|
23
|
-
| Row checkbox / Shift, corner checkbox | Select rows, a run of rows, all rows |
|
|
23
|
+
| Row checkbox / Shift, corner checkbox | Select rows, a run of rows, all rows (a click on the row number opens the record: see Row header) |
|
|
24
24
|
| Esc | Keeps the selection; cancels a drag, a resize or a fill in progress |
|
|
25
25
|
|
|
26
26
|
Hit-testing is arithmetic over cached column offsets and row heights: a
|
|
27
27
|
pointer move reads nothing from the DOM. Past the last column or row, over a
|
|
28
28
|
header or over blank space, a drag head clamps to the nearest data cell.
|
|
29
29
|
|
|
30
|
+
## Row header
|
|
31
|
+
|
|
32
|
+
The row header shows the row number; on hover or on a checked row its
|
|
33
|
+
`rowControls` replace the number.
|
|
34
|
+
|
|
35
|
+
| Click (mouse or pen) | Result |
|
|
36
|
+
|---|---|
|
|
37
|
+
| The row number (the header outside its controls) | Emits `row-expand(row)`: open the record, as the `expand` control and Space on a selected cell do. Pointer cursor |
|
|
38
|
+
| The checkbox | Toggles the row in the selection, as before (Shift selects a run). Never opens the record |
|
|
39
|
+
| The expand control | `row-expand(row)` |
|
|
40
|
+
|
|
41
|
+
Fallback: with no `row-expand` listener bound, a click on the row number
|
|
42
|
+
keeps the old behaviour. It opens nothing and changes no selection, and the
|
|
43
|
+
cursor stays the default. Apps that do not open records are unaffected. With
|
|
44
|
+
only a `checkbox` control the checkbox sits where the number is drawn, so a
|
|
45
|
+
click there selects. `GridHostController` asks the optional
|
|
46
|
+
`canExpandRow()` hook at click time; `GridHost` answers it from its listeners.
|
|
47
|
+
|
|
48
|
+
The row header takes no keyboard focus: the grid's one focus owner sits on the
|
|
49
|
+
active cell. To open a record from the keyboard, press Space on a selected
|
|
50
|
+
cell.
|
|
51
|
+
|
|
30
52
|
`selectionBlock(state, { rowCount, columnCount })` gives the rows and columns
|
|
31
53
|
a selection covers (a row selection covers every column, a column selection
|
|
32
54
|
every row); `cellRange` gives the rectangle of a cell selection.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@synopackageland/ui",
|
|
3
|
-
"version": "0.25.
|
|
3
|
+
"version": "0.25.17",
|
|
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,67 +60,6 @@
|
|
|
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
|
-
},
|
|
124
63
|
"peerDependencies": {
|
|
125
64
|
"vue": "^3.5.0"
|
|
126
65
|
},
|
|
@@ -140,44 +79,9 @@
|
|
|
140
79
|
"@tiptap/vue-3": "3.32.1",
|
|
141
80
|
"zod": "^4.6.5"
|
|
142
81
|
},
|
|
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
|
-
},
|
|
171
82
|
"engines": {
|
|
172
83
|
"node": ">=20"
|
|
173
84
|
},
|
|
174
|
-
"packageManager": "pnpm@10.33.2",
|
|
175
|
-
"pnpm": {
|
|
176
|
-
"onlyBuiltDependencies": [
|
|
177
|
-
"esbuild",
|
|
178
|
-
"vue-demi"
|
|
179
|
-
]
|
|
180
|
-
},
|
|
181
85
|
"config": {
|
|
182
86
|
"bundledRuntime": {
|
|
183
87
|
"@tanstack/vue-virtual": "3.13.39",
|