laif-ds 1.0.5-app-data-grid.104 → 1.0.5-app-data-grid.108
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/dist/CHANGELOG.md +1 -1
- package/dist/_virtual/index6.js +2 -2
- package/dist/_virtual/index7.js +2 -2
- package/dist/agent-docs/adoption-report.json +2 -2
- package/dist/agent-docs/components/AppDataGrid.md +4 -4
- package/dist/agent-docs/manifest.json +4 -4
- package/dist/components/design-tokens.js +2 -2
- package/dist/components/ui/app-data-grid/app-data-grid.js +1 -1
- package/dist/components/ui/app-data-grid/parts/grid-header.js +1 -2
- package/dist/components/ui/app-data-grid/parts/grid-scroll-area.js +5 -6
- package/dist/css-for-template.css +1 -2
- package/dist/index.d.ts +35 -58
- package/dist/node_modules/eventemitter3/index2.js +1 -1
- package/dist/node_modules/style-to-object/cjs/index.js +1 -1
- package/dist/styles.css +1 -1
- package/package.json +2 -4
package/dist/CHANGELOG.md
CHANGED
|
@@ -9,7 +9,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
9
9
|
|
|
10
10
|
### 🚀 Added
|
|
11
11
|
|
|
12
|
-
- **AppDataGrid**: New data grid, the successor to `DataTable`. Columns are declared with the `createGrid*Column` builders (string, number, boolean, date, date-time, single/multi select, computed, display, action, row menu, column groups). Filters live in a filter row inside the columns by default (`filterMode="row"`) or in a panel (`filterMode="panel"`, work in progress), can be lifted outside the grid (`filters`, `GridFilterChips`, `useGridFilters`), and application-declared filter controls are supported (`filterControls`); a `toolbar.resetFilters` slot restores filters and search to the page's own defaults. Server mode via `onQueryChange`, fired only on search/sort/filter/page changes and debounced by `debounceTime`; `paginated` mode — with an AppSelect page-size picker, a "Page i/N" indicator and a default `pageSize` of 25 — or an `infinite` source; `groupBy` grouping with aggregated cells; row selection with a page-selection bar for bulk actions; column pinning, resizing and reordering, notified through `onColumnWidthsChange` / `onColumnOrderChange
|
|
12
|
+
- **AppDataGrid**: New data grid, the successor to `DataTable`. Columns are declared with the `createGrid*Column` builders (string, number, boolean, date, date-time, single/multi select, computed, display, action, row menu, column groups). Filters live in a filter row inside the columns by default (`filterMode="row"`) or in a panel (`filterMode="panel"`, work in progress), can be lifted outside the grid (`filters`, `GridFilterChips`, `useGridFilters`), and application-declared filter controls are supported (`filterControls`); a `toolbar.resetFilters` slot restores filters and search to the page's own defaults. Server mode via `onQueryChange`, fired only on search/sort/filter/page changes and debounced by `debounceTime`; `paginated` mode — with an AppSelect page-size picker, a "Page i/N" indicator and a default `pageSize` of 25 — or an `infinite` source; `groupBy` grouping with aggregated cells; row selection with a page-selection bar for bulk actions; column pinning, resizing and reordering, notified through `onColumnWidthsChange` / `onColumnOrderChange` and capturable in saved views; `virtualized` rendering; `density` and full screen, with ghost toolbar buttons for the filter row, column visibility and full screen shown by default and individually disableable; saved views capturing filters, search, sorting, density, column visibility, widths and order (`preset`, `readGridViewPreset`, `createInMemoryGridViewStore`); `i18n` (`defaultGridI18n`); loading, empty and error/retry states; a polite live region announcing result changes. See `AppDataGrid.md`
|
|
13
13
|
- **DataTable**: The filter-option getters (`getStringFilterOptions`, `getNumberFilterOptions`, …), `defaultDataTableI18n` / `italianDataTableI18n` and the service helpers (`applyClientSideFilter`, `buildSearchFilter`, …) are now exported from the package root
|
|
14
14
|
- **designTokens**: The shared design-token object is now exported from the package root, including the new `table` (row/header heights, cell padding) and `tableZ` (z-index layers) entries
|
|
15
15
|
- **Button**: New `icon-xs` size
|
package/dist/_virtual/index6.js
CHANGED
package/dist/_virtual/index7.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
{
|
|
2
2
|
"schemaVersion": "1.0.0",
|
|
3
|
-
"generatedAt": "2026-09-
|
|
3
|
+
"generatedAt": "2026-09-30T14:07:52.586Z",
|
|
4
4
|
"package": {
|
|
5
5
|
"name": "laif-ds",
|
|
6
|
-
"version": "1.0.5-app-data-grid.
|
|
6
|
+
"version": "1.0.5-app-data-grid.108"
|
|
7
7
|
},
|
|
8
8
|
"summary": {
|
|
9
9
|
"scannedFiles": 502,
|
|
@@ -21,7 +21,7 @@ Design rules that shape the whole API:
|
|
|
21
21
|
- **Client vs server is a type-level union.** `AppDataGridProps<TData>` is `GridClientProps<TData> |
|
|
22
22
|
GridServerProps<TData>`. Grouping lives only on the client branch; `onQueryChange`, `paginated`,
|
|
23
23
|
`serverMode`, `serverConfig` and `initialState` live only on the server branch. Mixing them is a
|
|
24
|
-
compile error (see [
|
|
24
|
+
compile error (see [What the types reject](#what-the-types-reject)).
|
|
25
25
|
- **Controlled when passed, uncontrolled when omitted** for `density`, `filters`, `columnVisibility`
|
|
26
26
|
and `rowSelection`.
|
|
27
27
|
|
|
@@ -67,7 +67,7 @@ This file holds the overview, the full Props table and a quick-start example. Ea
|
|
|
67
67
|
Branch column: **both** = available on client and server grids; **client** = only when no server prop is
|
|
68
68
|
passed (the prop is `never` on the server branch); **server** = only on the server branch (the prop is
|
|
69
69
|
`never` on the client branch). `serverMode` and `serverConfig` are server-branch props documented in
|
|
70
|
-
[
|
|
70
|
+
[What the types reject](#what-the-types-reject).
|
|
71
71
|
|
|
72
72
|
| Prop | Type | Default | Description |
|
|
73
73
|
| -------------------------- | --------------------------------------------------------------- | ------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
@@ -157,7 +157,7 @@ interface GridServerState {
|
|
|
157
157
|
- An action that does not change the payload (e.g. switching the operator of a filter with no value)
|
|
158
158
|
emits nothing.
|
|
159
159
|
|
|
160
|
-
###
|
|
160
|
+
### What the types reject
|
|
161
161
|
|
|
162
162
|
`AppDataGridProps` is a union of a client variant and a server variant. These combinations **do not
|
|
163
163
|
compile**; there is no runtime warning because the compiler is the enforcement.
|
|
@@ -275,4 +275,4 @@ export const InvoicesGrid = ({ invoices }: { invoices: Invoice[] }) => (
|
|
|
275
275
|
the custom-filters status announcement lists every custom filter without truncation.
|
|
276
276
|
- **Testing:** the public showcase is the `App/AppDataGrid` story; regression suites live under
|
|
277
277
|
`CI-CD/AppDataGrid/<Area>/…` (Base, Barra degli strumenti, Colonne, Aspetto, Filtri, Dati dal server,
|
|
278
|
-
Raggruppamento, Selezione, Viste salvate)
|
|
278
|
+
Raggruppamento, Selezione, Viste salvate), run locally with `npm run spec`. Prefer the `data-*` hooks above over text selectors.
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
{
|
|
2
2
|
"schemaVersion": "1.1.0",
|
|
3
|
-
"generatedAt": "2026-09-
|
|
3
|
+
"generatedAt": "2026-09-30T14:07:52.065Z",
|
|
4
4
|
"package": {
|
|
5
5
|
"name": "laif-ds",
|
|
6
|
-
"version": "1.0.5-app-data-grid.
|
|
6
|
+
"version": "1.0.5-app-data-grid.108"
|
|
7
7
|
},
|
|
8
8
|
"stats": {
|
|
9
9
|
"documentedComponentCount": 97,
|
|
@@ -554,7 +554,7 @@
|
|
|
554
554
|
"exampleTitles": [
|
|
555
555
|
"AppDataGridProps<TData>",
|
|
556
556
|
"What arrives in `onQueryChange`",
|
|
557
|
-
"
|
|
557
|
+
"What the types reject",
|
|
558
558
|
"Client grid"
|
|
559
559
|
],
|
|
560
560
|
"controlledPattern": "controlled-uncontrolled-documented",
|
|
@@ -6536,5 +6536,5 @@
|
|
|
6536
6536
|
]
|
|
6537
6537
|
}
|
|
6538
6538
|
],
|
|
6539
|
-
"checksum": "
|
|
6539
|
+
"checksum": "5dbccbb04022a22098e46dfde742846b39bf63fe277af86b404cc6de7890b941"
|
|
6540
6540
|
}
|
|
@@ -85,8 +85,8 @@ const e = {
|
|
|
85
85
|
//
|
|
86
86
|
// ⚠️ Deliberately NOT a Tailwind class, for the same reason as `fullscreen`
|
|
87
87
|
// right below: neither config emits a step at this number — the v3 bundle
|
|
88
|
-
// emits only the multiples of ten from 0 to 50 — and the lane
|
|
89
|
-
//
|
|
88
|
+
// emits only the multiples of ten from 0 to 50 — and the lane writes no class
|
|
89
|
+
// token containing a bracket, variants included. It is
|
|
90
90
|
// applied INLINE from this token in `parts/grid-table.tsx`, one source.
|
|
91
91
|
//
|
|
92
92
|
// ⚠️ AND IT IS TEMPORARY. Applied only while a handle holds the focus, and
|
|
@@ -228,7 +228,7 @@ const Pt = [
|
|
|
228
228
|
// INERTI NEL MONTATO, e il difetto è SILENZIOSO perché su
|
|
229
229
|
// `GridColumnRegistryEntry` sono entrambi OPZIONALI: una prop opzionale
|
|
230
230
|
// mai popolata non è un errore di tipo, quindi `npm run check` resta verde
|
|
231
|
-
// e
|
|
231
|
+
// e il difetto si vede solo nel montato.
|
|
232
232
|
//
|
|
233
233
|
// MISURATO: senza `columnType` il pannello risolveva `columnTypeIcon` su
|
|
234
234
|
// `undefined` e rendeva la STESSA icona per ogni voce, cioè il criterio
|
|
@@ -207,8 +207,7 @@ const ie = ({
|
|
|
207
207
|
// `size-5` dà larghezza e altezza UGUALI (un `rounded-full` su un
|
|
208
208
|
// testo nudo darebbe una pillola, non un cerchio) e `rounded-full`
|
|
209
209
|
// porta il raggio. Nessun valore arbitrario fra parentesi quadre:
|
|
210
|
-
// i due bundle CSS li risolvono in modo diverso
|
|
211
|
-
// rifiuta. `tabular-nums` resta su QUESTO nodo, non su un figlio:
|
|
210
|
+
// i due bundle CSS li risolvono in modo diverso. `tabular-nums` resta su QUESTO nodo, non su un figlio:
|
|
212
211
|
// è lo stesso nodo su cui si misura il raggio, e le cifre di due
|
|
213
212
|
// colonne ordinate devono incolonnarsi.
|
|
214
213
|
/* @__PURE__ */ n(
|
|
@@ -55,8 +55,8 @@ function a({ orientation: l }) {
|
|
|
55
55
|
// stare SOPRA la foglia pinnata dell'header (`gridZClass.pinnedHeader`,
|
|
56
56
|
// 30) e SOTTO il pannello dei filtri (`gridZClass.overlay`, 50): fra i
|
|
57
57
|
// due esiste un solo gradino nominato, quello a 40. Un gradino
|
|
58
|
-
// arbitrario a 35
|
|
59
|
-
//
|
|
58
|
+
// arbitrario a 35 porterebbe parentesi quadre, che la corsia non usa, e
|
|
59
|
+
// un piolo
|
|
60
60
|
// dedicato in `grid-tokens.ts` non si può aggiungere in questa onda.
|
|
61
61
|
//
|
|
62
62
|
// IL PAREGGIO, E IL MECCANISMO SCRITTO QUI PRIMA ERA SBAGLIATO — rilievo
|
|
@@ -162,10 +162,9 @@ function a({ orientation: l }) {
|
|
|
162
162
|
// emettere: la frase che negava la loro esistenza era la ragione per cui
|
|
163
163
|
// esistevano, e il loro unico riscontro in tutto `src/` era quella frase.
|
|
164
164
|
//
|
|
165
|
-
// Ne segue una
|
|
166
|
-
//
|
|
167
|
-
//
|
|
168
|
-
// basta che il suo nome compaia da qualche parte sotto `src/`.
|
|
165
|
+
// Ne segue che una classe presente nel bundle non prova che serva a
|
|
166
|
+
// qualcuno: risolve anche se nessun codice la usa, basta che il suo nome
|
|
167
|
+
// compaia da qualche parte sotto `src/`.
|
|
169
168
|
"border-d-border",
|
|
170
169
|
o && "border-l",
|
|
171
170
|
!o && "flex-col border-t"
|
|
@@ -81,8 +81,7 @@
|
|
|
81
81
|
ragionamento per esteso — e il precedente misurato in cui le due toolchain
|
|
82
82
|
producevano bundle diversi da sorgenti identici — sta accanto alla regola in
|
|
83
83
|
`src/styles/index.css`: qui non si riscrive, perché tre copie della PROSA
|
|
84
|
-
divergerebbero, mentre il CSS
|
|
85
|
-
`scripts/check-grid-css.mjs`, che da adesso confronta tutti e tre i file.
|
|
84
|
+
divergerebbero, mentre il CSS va tenuto identico nei tre file.
|
|
86
85
|
--------------------------------------------------------------------------- */
|
|
87
86
|
[data-app-data-grid] input[type="search"]::-webkit-search-cancel-button {
|
|
88
87
|
-webkit-appearance: none;
|
package/dist/index.d.ts
CHANGED
|
@@ -2860,7 +2860,7 @@ export declare interface GridAdvancedFilterGroup {
|
|
|
2860
2860
|
* l'unico file autorizzato — lo traduce in `ColumnDef` e deposita TUTTO ciò che
|
|
2861
2861
|
* l'originale metteva in `meta` dentro `grid-column-registry.ts`, una `Map`
|
|
2862
2862
|
* laterale. È il sostituto dell'augmentation di `ColumnMeta`, che qui è vietata
|
|
2863
|
-
* dal primo commit
|
|
2863
|
+
* dal primo commit.
|
|
2864
2864
|
*/
|
|
2865
2865
|
/**
|
|
2866
2866
|
* L'aggregato di una colonna su una riga di GRUPPO — P9, R11.
|
|
@@ -3268,13 +3268,12 @@ export declare type GridClientProps<TData> = GridPropsBase<TData> & {
|
|
|
3268
3268
|
* che la griglia passerà — `(righe: CommessaConCodice[]) => string` su una
|
|
3269
3269
|
* griglia di `Commessa` — non compila. Con la forma a metodo i parametri sono
|
|
3270
3270
|
* BIVARIANTI e quella stessa firma passa, per poi leggere a runtime un campo che
|
|
3271
|
-
* non c'è.
|
|
3272
|
-
* `type-probes/aggregate.probe.tsx`.
|
|
3271
|
+
* non c'è.
|
|
3273
3272
|
*
|
|
3274
3273
|
* ⚠️ E LA BIVARIANZA NON SPIEGA TUTTO — la prima stesura di questo commento
|
|
3275
3274
|
* diceva che con la forma a metodo sarebbe passata anche
|
|
3276
3275
|
* `aggregate: (riga: Commessa) => string`, una riga al posto delle righe. È
|
|
3277
|
-
* FALSO
|
|
3276
|
+
* FALSO: `Commessa` e `Commessa[]`
|
|
3278
3277
|
* non sono in nessuna relazione di sottotipo, e la bivarianza salva un parametro
|
|
3279
3278
|
* più STRETTO, non uno non relativo. Che il dominio siano LE RIGHE è pinzato
|
|
3280
3279
|
* altrove e più forte — dal punto di applicazione in `grid-aggregate.ts`, che
|
|
@@ -3581,20 +3580,12 @@ export declare interface GridColumnRegistryEntry {
|
|
|
3581
3580
|
* perché nascondere non è cancellare.
|
|
3582
3581
|
*
|
|
3583
3582
|
* ────────────────────────────────────────────────────────────────────────────
|
|
3584
|
-
* ⚠️⚠️ DUE SEZIONI E LE SPUNTE DEL DESIGN SYSTEM,
|
|
3585
|
-
*
|
|
3586
|
-
*
|
|
3587
|
-
*
|
|
3588
|
-
*
|
|
3589
|
-
*
|
|
3590
|
-
* Quel gate (oggi rimosso) non sorvegliava gli import della corsia. Letto nel
|
|
3591
|
-
* sorgente e misurato allora: costruiva la lista dei primitivi condivisi dalla chiusura di ciò che
|
|
3592
|
-
* la tabella CONGELATA rende, e poi rifiutava la modifica di uno di quelli
|
|
3593
|
-
* INSIEME alla corsia — una regola di MESCOLANZA su file MODIFICATI, non su
|
|
3594
|
-
* file importati. `checkbox.tsx` e `button.tsx` non si toccano qui: si importano,
|
|
3595
|
-
* come `popover.tsx` è già importato da `grid-toolbar-slots.tsx` con la stessa
|
|
3596
|
-
* dichiarazione. La regola resta (la DataTable congelata rende gli stessi
|
|
3597
|
-
* primitivi) ma nessun gate la sorveglia più: va rivista a mano.
|
|
3583
|
+
* ⚠️⚠️ DUE SEZIONI E LE SPUNTE DEL DESIGN SYSTEM, non checkbox e bottoni nativi.
|
|
3584
|
+
* La regola dei primitivi condivisi con la tabella CONGELATA vieta di
|
|
3585
|
+
* MODIFICARLI insieme alla corsia, non di importarli. `checkbox.tsx` e
|
|
3586
|
+
* `button.tsx` non si toccano qui: si importano, come `popover.tsx` è già
|
|
3587
|
+
* importato da `grid-toolbar-slots.tsx` con la stessa dichiarazione. La regola
|
|
3588
|
+
* (la DataTable congelata rende gli stessi primitivi) va rivista a mano.
|
|
3598
3589
|
*
|
|
3599
3590
|
* Quindi le spunte sono `Checkbox` del DS. Costa: ZERO checkbox native nel
|
|
3600
3591
|
* pannello, verificabile con un selettore su `input` di tipo checkbox (zero), e la
|
|
@@ -3668,9 +3659,8 @@ export declare interface GridColumnRegistryEntry {
|
|
|
3668
3659
|
* 1. È LA FORMA CHE LA CASA HA GIÀ. Il pannello delle colonne della tabella
|
|
3669
3660
|
* CONGELATA (`tables/data-table/components/data-table-column-visibility.tsx`)
|
|
3670
3661
|
* riordina esattamente così, con lo stesso tipo MIME e la stessa semantica
|
|
3671
|
-
* della metà verticale. Letto e copiato, non importato:
|
|
3672
|
-
*
|
|
3673
|
-
* cartella.
|
|
3662
|
+
* della metà verticale. Letto e copiato, non importato: la corsia non
|
|
3663
|
+
* importa da quella cartella.
|
|
3674
3664
|
* 2. È IL MECCANISMO CHE UNA `play` PUÒ ASSERIRE. `userEvent` non simula il
|
|
3675
3665
|
* trascinamento nativo, quindi in ENTRAMBI i casi la spec deve emettere gli
|
|
3676
3666
|
* eventi a mano; con HTML5 sono quattro eventi (`dragstart`, `dragover`,
|
|
@@ -3889,7 +3879,7 @@ export declare type GridDensity = "compact" | "default" | "comfortable";
|
|
|
3889
3879
|
*
|
|
3890
3880
|
* TRE BOTTONI E NON UN `AppSelect`, invariato da P2 e per la stessa ragione: un
|
|
3891
3881
|
* select è un primitivo condiviso in più nella superficie della griglia, e
|
|
3892
|
-
* quella superficie si tiene minima a mano
|
|
3882
|
+
* quella superficie si tiene minima, a mano.
|
|
3893
3883
|
*/
|
|
3894
3884
|
export declare const GridDensityControl: ({ density, onChange, i18n, }: GridDensityControlProps) => JSX.Element;
|
|
3895
3885
|
|
|
@@ -4069,8 +4059,8 @@ export declare interface GridFilterColumn {
|
|
|
4069
4059
|
* ed è la stessa misura già eseguita su `aggregate`
|
|
4070
4060
|
* (`GridColumnAggregateFields`): sotto `strict` i parametri di una proprietà a
|
|
4071
4061
|
* freccia sono CONTROVARIANTI, quelli di un metodo BIVARIANTI. Con la forma a
|
|
4072
|
-
* metodo una `describe` dalla firma sbagliata compilerebbe, e
|
|
4073
|
-
*
|
|
4062
|
+
* metodo una `describe` dalla firma sbagliata compilerebbe, e il tipo
|
|
4063
|
+
* garantirebbe la sola presenza invece della firma.
|
|
4074
4064
|
*
|
|
4075
4065
|
* ⚠️ NON È GENERICA SU `TValue`, deliberatamente. Un `GridFilterControl<string>`
|
|
4076
4066
|
* non sarebbe assegnabile a `GridFilterControl<GridFilterControlValue>` proprio
|
|
@@ -4086,14 +4076,11 @@ export declare interface GridFilterControl {
|
|
|
4086
4076
|
* rende mai.
|
|
4087
4077
|
*
|
|
4088
4078
|
* ⚠️ È UN CONTRATTO PER CHI REGISTRA, NON PER LA LIBRERIA, e va detto perché
|
|
4089
|
-
* altrimenti è un membro obbligatorio senza nessun lettore:
|
|
4090
|
-
*
|
|
4091
|
-
*
|
|
4092
|
-
* `Control: () => null`, come fa il registro delle story. Un membro richiesto
|
|
4093
|
-
* che nessun ramo legge è un requisito che nessun gate può difendere: resta
|
|
4079
|
+
* altrimenti è un membro obbligatorio senza nessun lettore: la libreria legge
|
|
4080
|
+
* solo `toFragment` e `describe` — la coppia che il criterio 2 pretende — e il
|
|
4081
|
+
* registro delle story lo soddisfa con `Control: () => null`. Resta
|
|
4094
4082
|
* obbligatorio perché una voce di registro senza controllo non sarebbe
|
|
4095
|
-
* registrabile da nessuna applicazione
|
|
4096
|
-
* della libreria lo renderà servirà un terzo probe.
|
|
4083
|
+
* registrabile da nessuna applicazione.
|
|
4097
4084
|
*/
|
|
4098
4085
|
Control: (props: GridFilterControlProps) => ReactNode;
|
|
4099
4086
|
/**
|
|
@@ -4204,9 +4191,8 @@ export declare interface GridFilterOption {
|
|
|
4204
4191
|
* maniglia con il fuoco;
|
|
4205
4192
|
* - «il corpo si può smontare davvero»: RESTA VERO e resta `null` da chiuso.
|
|
4206
4193
|
*
|
|
4207
|
-
* ⚠️ LA LARGHEZZA È `w-72` E NON UN VALORE FRA PARENTESI QUADRE. La
|
|
4208
|
-
*
|
|
4209
|
-
* i due bundle CSS (v3 e v4) non risolvono le parentesi quadre allo stesso modo:
|
|
4194
|
+
* ⚠️ LA LARGHEZZA È `w-72` E NON UN VALORE FRA PARENTESI QUADRE. La corsia non
|
|
4195
|
+
* usa valori arbitrari, perché i due bundle CSS (v3 e v4) non risolvono le parentesi quadre allo stesso modo:
|
|
4210
4196
|
* una classe che il bundle v3 non emette è un pannello a larghezza piena in ogni
|
|
4211
4197
|
* consumer ancora su Tailwind 3, e `npm run check` non può vederlo. `w-72` è un
|
|
4212
4198
|
* gradino della scala, vale 18rem = 288px, ed è già nel bundle v3. La misura del
|
|
@@ -4215,8 +4201,8 @@ export declare interface GridFilterOption {
|
|
|
4215
4201
|
* dice cosa è stato reso.
|
|
4216
4202
|
*
|
|
4217
4203
|
* ⚠️ NON È UNA CELLA DI TABELLA e non nasce come una cella che si estende su
|
|
4218
|
-
* più colonne:
|
|
4219
|
-
*
|
|
4204
|
+
* più colonne: quell'attributo vive solo sui due nodi marcati di
|
|
4205
|
+
* `parts/grid-table.tsx` (vedi il TSDoc di `GridTable`).
|
|
4220
4206
|
*
|
|
4221
4207
|
* ⚠️ IL CORPO È `null` DA CHIUSO, NON `display: none`. È il criterio 2 di P7
|
|
4222
4208
|
* alla lettera, e la lettera conta: un pannello nascosto ma MONTATO tiene in
|
|
@@ -5092,8 +5078,7 @@ export declare interface GridI18n {
|
|
|
5092
5078
|
* ogni app senza una riga di migrazione. La prova è una riga che COMPILA, in
|
|
5093
5079
|
* `app-data-grid.stories.tsx` § `I18nSupersetAssegnabile`. Una chiave nuova
|
|
5094
5080
|
* OBBLIGATORIA rompe quell'assegnazione, e la cartella congelata non può
|
|
5095
|
-
* crescere la chiave corrispondente:
|
|
5096
|
-
* dovrebbe.
|
|
5081
|
+
* crescere la chiave corrispondente: è congelata, e deve restarlo.
|
|
5097
5082
|
*
|
|
5098
5083
|
* È stato `tsc` a trovarlo, non una review: la prima stesura di P4 la aveva
|
|
5099
5084
|
* obbligatoria. Chi aggiunge una sezione di i18n in P5-P10 la aggiunge
|
|
@@ -6262,8 +6247,8 @@ export declare interface GridResultScopeInput {
|
|
|
6262
6247
|
*
|
|
6263
6248
|
* PERCHÉ NON `Row<TData>`. Il contratto originale dichiara
|
|
6264
6249
|
* `cell?: (value, row, tableRow: Row<TData>) => ReactNode`, e `Row` vive in
|
|
6265
|
-
* `@tanstack/table-core`. Ma `@tanstack/*` è confinato in `engine
|
|
6266
|
-
*
|
|
6250
|
+
* `@tanstack/table-core`. Ma `@tanstack/*` è confinato in `engine/`, e il
|
|
6251
|
+
* confino non è un capriccio: `ColumnMeta` è
|
|
6267
6252
|
* dichiarata in `table-core`, quindi ogni file che apre quel pacchetto è un file
|
|
6268
6253
|
* da cui può partire l'augmentation globale che rompe i diciotto repo consumer.
|
|
6269
6254
|
* Un tipo pubblico che importa `Row` porterebbe il pacchetto nella superficie
|
|
@@ -6797,9 +6782,7 @@ export declare interface GridServerState {
|
|
|
6797
6782
|
* ⚠️ LE CITAZIONI NEI TSDOC DI QUESTO FILE SONO SCADUTE, E QUESTO BLOCCO È
|
|
6798
6783
|
* L'UNICO RICONCILIATO. Una quindicina di blocchi qui sotto dicono ancora «riga
|
|
6799
6784
|
* 1023» e «riga 1041», e che `GridPropsBase` «apre a `:543` e chiude a `:867`»:
|
|
6800
|
-
* i valori veri sono 1063, 1081, 565 e 942
|
|
6801
|
-
* registra di averli riconciliati il 2026-09-10 senza toccare la prosa. Non sono
|
|
6802
|
-
* gated — nessuno script li legge — quindi ripararli tutti è una riscrittura di
|
|
6785
|
+
* i valori veri sono 1063, 1081, 565 e 942. Ripararli tutti è una riscrittura di
|
|
6803
6786
|
* sedici punti in file che non c'entrano, e resta riportata invece che fatta.
|
|
6804
6787
|
* Chi scrive testo NUOVO qui scriva però i numeri veri, per non aggiungere la
|
|
6805
6788
|
* sedicesima citazione scaduta.
|
|
@@ -7436,7 +7419,7 @@ export declare type GridSortMode = "single" | "multi";
|
|
|
7436
7419
|
/**
|
|
7437
7420
|
* UNO SLOT SEMPRE RESO: `render` SOSTITUISCE il nodo, non lo toglie.
|
|
7438
7421
|
*
|
|
7439
|
-
* ⚠️ ESISTE PERCHE' `() => null` ERA IL BOOLEANO CHE
|
|
7422
|
+
* ⚠️ ESISTE PERCHE' `() => null` ERA IL BOOLEANO CHE `GridToolbarSlot` VIETA, e la review
|
|
7440
7423
|
* l'ha trovato dopo che la fase era stata firmata. `GridToolbarSlot.render` torna
|
|
7441
7424
|
* `ReactElement | null`, quindi `toolbar={{ search: { render: () => null } }}`
|
|
7442
7425
|
* COMPILAVA e la ricerca non si rendeva: la regola di P6 «i due controlli si
|
|
@@ -7444,11 +7427,8 @@ export declare type GridSortMode = "single" | "multi";
|
|
|
7444
7427
|
* decisione 26 vieta — raggiunto dal TIPO DI RITORNO invece che dal tipo della
|
|
7445
7428
|
* proprieta'.
|
|
7446
7429
|
*
|
|
7447
|
-
* ⚠️ E
|
|
7448
|
-
*
|
|
7449
|
-
* assomiglia a una funzione che torna `null`. Il gate era verde su una pretesa
|
|
7450
|
-
* FALSA: misurava la porta mentre la finestra era aperta. La riparazione e' il
|
|
7451
|
-
* tipo, e un terzo probe che chiude anche quella.
|
|
7430
|
+
* ⚠️ E RIFIUTARE `search: false` E `search: "si"` NON BASTAVA: nessuna delle due
|
|
7431
|
+
* forme assomiglia a una funzione che torna `null`. La riparazione e' il tipo.
|
|
7452
7432
|
*
|
|
7453
7433
|
* Qui `null` non e' ammesso: per `search` l'assenza non e' un esito legittimo, e
|
|
7454
7434
|
* per `fullscreen` / `filterRowToggle` lo spegnimento ha ORA una forma dichiarata
|
|
@@ -7506,9 +7486,7 @@ declare interface GridToolbarResetSlot extends GridToolbarSlot {
|
|
|
7506
7486
|
* degli slot obbligatori non c'è.
|
|
7507
7487
|
*
|
|
7508
7488
|
* ⚠️ E `toolbar={{ search: "si" }}` DEVE ESSERE UN ERRORE DEL COMPILATORE, non
|
|
7509
|
-
* una stringa accettata e ignorata
|
|
7510
|
-
* `type-probes/shell-slots.probe.tsx`, che pretende quel rifiuto invece di
|
|
7511
|
-
* fidarsi di questa prosa. Entrambe le forme vietate cadono sulla stessa
|
|
7489
|
+
* una stringa accettata e ignorata. Entrambe le forme vietate cadono sulla stessa
|
|
7512
7490
|
* proprietà di questo tipo — un oggetto con una sola chiave opzionale non
|
|
7513
7491
|
* accetta né un booleano né una stringa.
|
|
7514
7492
|
*/
|
|
@@ -7550,10 +7528,9 @@ declare interface GridToolbarSlot {
|
|
|
7550
7528
|
*
|
|
7551
7529
|
* ⚠️ E `toolbar={{ density: … }}` DEVE ESSERE UN ERRORE DEL COMPILATORE, per
|
|
7552
7530
|
* PROPRIETÀ SCONOSCIUTA e non più perché il valore è del tipo sbagliato. La
|
|
7553
|
-
* differenza NON è cosmetica:
|
|
7554
|
-
*
|
|
7555
|
-
*
|
|
7556
|
-
* `type-probes/shell-slots.probe.tsx`.
|
|
7531
|
+
* differenza NON è cosmetica: una verifica di «`density: false` è rifiutato»
|
|
7532
|
+
* resterebbe verde per il motivo nuovo senza più provare niente sulla decisione
|
|
7533
|
+
* 26.
|
|
7557
7534
|
*/
|
|
7558
7535
|
export declare interface GridToolbarSlots {
|
|
7559
7536
|
/**
|
|
@@ -7894,8 +7871,8 @@ export declare interface GridViewPresetQuery {
|
|
|
7894
7871
|
* ⚠️ IL NOME DICE «Version» E LA CLASSE COPRE ANCHE LA FORMA, ed è un residuo
|
|
7895
7872
|
* DICHIARATO e non una dimenticanza: rinominarla toccherebbe due barrel
|
|
7896
7873
|
* (`ui/app-data-grid/index.ts`, `organisms/index.ts`),
|
|
7897
|
-
* `scripts/codemod/rename-map.json` —
|
|
7898
|
-
*
|
|
7874
|
+
* `scripts/codemod/rename-map.json` — che classifica ogni export nominale del
|
|
7875
|
+
* barrel — due story, `AppDataGrid.md` e l'API pubblica di un
|
|
7899
7876
|
* prerelease, per un'informazione che il messaggio e `reason` danno già a chi
|
|
7900
7877
|
* legge. Chi intercetta l'errore ha la causa vera in `reason`, non nel nome.
|
|
7901
7878
|
*/
|