vueye-table 3.0.0-beta.7 → 3.0.0-beta.8

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.
Files changed (2) hide show
  1. package/README.md +60 -16
  2. package/package.json +5 -5
package/README.md CHANGED
@@ -1,7 +1,5 @@
1
1
  # vueye-table
2
2
 
3
- `VueyeTable` and `VueyeGrid` support opt-in virtualization through `virtual`, `height`, `rowHeight` and `overscan`; grids also expose `virtualColumns` and `columnWidth`. Virtual tables default to no paging, with `paginate` available for large pages. The guide and runnable 100k-record example live in `docs/guide/virtualization.md` and `docs/examples/virtual-components.md`.
4
-
5
3
  A Vue framework for data, data tables, and spreadsheets.
6
4
 
7
5
  vueye-table began as a single table component. Version 3 is a rewrite around one idea: a table is
@@ -21,17 +19,42 @@ undo, clipboard, and export. Vue layers sit on top of it, and you pick the one t
21
19
  Each layer depends only on the layers beneath it, and `vueye-table` re-exports all of them, so
22
20
  one install covers every level.
23
21
 
24
- > **Status:** `3.0.0-alpha`. The API is provisional and may change between alpha releases. The
25
- > 2.x component lives on the [`legacy`](https://github.com/boussadjra/vueye-table/tree/legacy)
26
- > branch; see [Upgrading from 2.x](./docs/guide/upgrading-from-2.md).
22
+ <!-- current-release:start -->
23
+
24
+ > **Status:** `3.0.0-beta.8`, published on npm's `beta` and `latest` channels. The beta is for application
25
+ > feedback: documented import paths, options, events and slot scopes are kept stable, and a
26
+ > necessary breaking change ships with an ADR and migration notes. It is not production ready.
27
+ > See [the beta contract](https://github.com/boussadjra/vueye-table/blob/main/docs/guide/beta.md). The 2.x component lives on the
28
+ > [`legacy`](https://github.com/boussadjra/vueye-table/tree/legacy) branch; see
29
+ > [Upgrading from 2.x](https://github.com/boussadjra/vueye-table/blob/main/docs/guide/upgrading-from-2.md).
27
30
 
28
31
  ## Install
29
32
 
30
33
  ```bash
31
- pnpm add vueye-table
34
+ pnpm add vueye-table@beta
32
35
  ```
33
36
 
34
- Vue 3.5 or newer is a peer dependency.
37
+ Install an exact version such as `3.0.0-beta.8` to pin a release. Both `pnpm add vueye-table` and
38
+ `pnpm add vueye-table@beta` follow the current beta. Vue 3.5 or newer is a peer dependency.
39
+
40
+ <!-- current-release:end -->
41
+
42
+ ## What the beta covers
43
+
44
+ - **Tables and spreadsheets**: search, column filters, multi-column sorting, pagination,
45
+ selection, column visibility, CSV/TSV export, and a spreadsheet grid with clipboard and undo.
46
+ - **Editing and validation**: inline cell and row editing in `VueyeTable`, typed and custom
47
+ editors, validation issues, dirty rows, revert, and a saved baseline you acknowledge.
48
+ - **Expansion and trees**: detail rows, nested and lazy-loaded children, tree search that keeps
49
+ matching branches.
50
+ - **Grouping and layout**: nested group rows, aggregate headers or footers, column resizing,
51
+ sticky columns and top/bottom row regions, including virtualized tables and grids.
52
+ - **Large data**: opt-in row and column virtualization for tables and grids, and incremental
53
+ streams, cursor loading, and cancellable sources.
54
+ - **Language and themes**: every word shown or announced comes from `messages`, numbers and
55
+ ordering follow `locale`, search ignores case and accents, and host design tokens win over
56
+ the defaults.
57
+ - **Server data**: `manual` mode hands searching, sorting and paging to your API.
35
58
 
36
59
  ## Full table
37
60
 
@@ -75,9 +98,16 @@ const selected = ref<readonly RowKey[]>([]);
75
98
  Column ids are typed paths into your rows, so `format` above receives a `number`. Without
76
99
  `columns`, columns are inferred from the data.
77
100
 
78
- Every piece of state has a `v-model`: `page`, `pageSize`, `sorting`, `search`, `filters`,
79
- `hiddenColumns`, and `selected`. Add `manual` and `row-count` to let a server search, sort, and
80
- page, with the table presenting whatever page it returns.
101
+ The full components expose `v-model` bindings for `page`, `pageSize`, `sorting`, `search`,
102
+ `filters`, `hiddenColumns`, `selected`, `expanded`, `columnSizing`, `columnPinning`, `grouping`,
103
+ `expandedGroups` and `rowPinning`. Add `manual` and `row-count` to let a server search, sort,
104
+ and page, with the table presenting whatever page it returns.
105
+
106
+ Use `resizable-columns` for resize handles and `groupable` for ordered grouping controls.
107
+ `aggregate-position="footer"` moves group totals below their expanded leaves;
108
+ `row-pinning-controls` enables pin actions without enabling editing. See
109
+ [grouping](https://github.com/boussadjra/vueye-table/blob/main/docs/guide/grouping.md), [column layout](https://github.com/boussadjra/vueye-table/blob/main/docs/guide/columns.md) and
110
+ [row pinning](https://github.com/boussadjra/vueye-table/blob/main/docs/guide/row-pinning.md) for examples and model shapes.
81
111
 
82
112
  ## Spreadsheet
83
113
 
@@ -111,7 +141,8 @@ const table = useDataTable({ data: users, columns });
111
141
 
112
142
  Headless components render semantic, accessible markup (`aria-sort`, `aria-selected`,
113
143
  `aria-rowindex`, a polite live status, grid keyboard navigation) with `data-*` state attributes
114
- and no styles. Every one accepts `as` and exposes its state through slot props.
144
+ and no styles. Components expose slot props and `data-*` state; primitives with an `as` prop
145
+ let you choose their element. Structural group and pinned-row composition retain native rows.
115
146
 
116
147
  ## Engine
117
148
 
@@ -152,21 +183,34 @@ The styled layer is driven by CSS custom properties on `.vt-surface`:
152
183
  }
153
184
  ```
154
185
 
155
- Dark colors follow `prefers-color-scheme`; `theme="dark"` or `theme="light"` forces one.
156
- Density is `compact`, `comfortable`, or `spacious`.
186
+ Dark colors follow `prefers-color-scheme`; `theme="dark"` or `theme="light"` forces one, and
187
+ `theme="inherit"` declares no colors so the host's own tokens apply. The defaults have zero
188
+ specificity, so your tokens always win. Density is `compact`, `comfortable`, or `spacious`.
189
+
190
+ ## Language
191
+
192
+ ```vue
193
+ <VueyeTable :data="rows" :columns="columns" locale="fr" :messages="{ columns: 'Colonnes' }" />
194
+ ```
195
+
196
+ Every word a table shows or announces comes from `TableMessages`; whatever you leave out keeps its
197
+ English default. `app.use(VueyeTablePlugin, { locale, messages })` sets them for the whole
198
+ application. Arrow keys and chevrons mirror in right-to-left layouts.
157
199
 
158
200
  ## Development
159
201
 
160
202
  ```bash
161
203
  pnpm install
162
204
  pnpm playground # every layer, side by side
205
+ pnpm docs:dev # the documentation site
163
206
  pnpm test # every Vitest project
164
207
  pnpm check # format, lint, types, tests with coverage, build, boundaries, packages
208
+ pnpm docs:sync # sync current-release copy and the npm README from the package version
165
209
  ```
166
210
 
167
- Architecture lives in [ARCHITECTURE.md](./ARCHITECTURE.md) and decisions in
168
- [docs/adr](./docs/adr).
211
+ Architecture lives in [ARCHITECTURE.md](https://github.com/boussadjra/vueye-table/blob/main/ARCHITECTURE.md) and decisions in
212
+ [docs/adr](https://github.com/boussadjra/vueye-table/blob/main/docs/adr).
169
213
 
170
214
  ## License
171
215
 
172
- [MIT](./LICENSE)
216
+ [MIT](https://github.com/boussadjra/vueye-table/blob/main/LICENSE)
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "vueye-table",
3
- "version": "3.0.0-beta.7",
3
+ "version": "3.0.0-beta.8",
4
4
  "description": "A Vue framework for data tables and spreadsheets: a complete, themeable data table and grid, plus every layer beneath them.",
5
5
  "keywords": [
6
6
  "data-grid",
@@ -42,10 +42,10 @@
42
42
  "provenance": true
43
43
  },
44
44
  "dependencies": {
45
- "@vueye-table/core": "3.0.0-beta.7",
46
- "@vueye-table/headless": "3.0.0-beta.7",
47
- "@vueye-table/styled": "3.0.0-beta.7",
48
- "@vueye-table/vue": "3.0.0-beta.7"
45
+ "@vueye-table/vue": "3.0.0-beta.8",
46
+ "@vueye-table/core": "3.0.0-beta.8",
47
+ "@vueye-table/headless": "3.0.0-beta.8",
48
+ "@vueye-table/styled": "3.0.0-beta.8"
49
49
  },
50
50
  "devDependencies": {
51
51
  "vue": "3.5.43",