From cbc32ae0730fb48b4c50916d7f09127dff56e798 Mon Sep 17 00:00:00 2001 From: Kevin Van Cott Date: Fri, 19 Dec 2025 12:26:09 -0600 Subject: [PATCH 01/38] progress on rewriting tanstack table with tanstack store --- docs/api/core/cell.md | 68 - docs/api/core/column-def.md | 107 - docs/api/core/column.md | 77 - docs/api/core/header-group.md | 33 - docs/api/core/header.md | 243 -- docs/api/core/row.md | 123 - docs/api/core/table.md | 385 -- docs/api/features/column-faceting.md | 46 - docs/api/features/column-filtering.md | 395 -- docs/api/features/column-ordering.md | 70 - docs/api/features/column-pinning.md | 266 -- docs/api/features/column-sizing.md | 253 -- docs/api/features/column-visibility.md | 178 - docs/api/features/expanding.md | 208 - docs/api/features/filters.md | 13 - docs/api/features/global-faceting.md | 30 - docs/api/features/global-filtering.md | 290 -- docs/api/features/grouping.md | 353 -- docs/api/features/pagination.md | 207 - docs/api/features/pinning.md | 11 - docs/api/features/row-pinning.md | 138 - docs/api/features/row-selection.md | 230 - docs/api/features/sorting.md | 385 -- docs/framework/angular/guide/table-state.md | 6 +- docs/framework/lit/guide/table-state.md | 6 +- docs/framework/react/guide/table-state.md | 6 +- docs/framework/solid/guide/table-state.md | 6 +- docs/framework/svelte/guide/table-state.md | 6 +- docs/framework/vue/guide/table-state.md | 6 +- docs/guide/column-filtering.md | 4 +- docs/guide/column-sizing.md | 2 +- docs/guide/custom-features.md | 2 +- docs/guide/global-filtering.md | 2 +- docs/guide/pagination.md | 2 +- docs/guide/row-selection.md | 2 +- docs/guide/sorting.md | 4 +- docs/guide/tables.md | 4 +- examples/angular/basic/package.json | 20 +- examples/angular/column-ordering/package.json | 18 +- .../column-pinning-sticky/package.json | 18 +- examples/angular/column-pinning/package.json | 20 +- .../column-resizing-performant/package.json | 22 +- .../angular/column-visibility/package.json | 18 +- examples/angular/editable/package.json | 22 +- examples/angular/expanding/package.json | 22 +- examples/angular/filters/package.json | 18 +- examples/angular/grouping/package.json | 18 +- examples/angular/remote-data/package.json | 28 +- examples/angular/row-dnd/package.json | 24 +- .../angular/row-selection-signal/package.json | 20 +- examples/angular/row-selection/package.json | 18 +- examples/angular/signal-input/package.json | 16 +- examples/angular/sub-components/package.json | 22 +- examples/lit/basic/package.json | 2 +- examples/lit/column-sizing/package.json | 2 +- examples/lit/filters/package.json | 2 +- examples/lit/row-selection/package.json | 2 +- .../lit/sorting-dynamic-data/package.json | 2 +- examples/lit/sorting/package.json | 2 +- examples/lit/virtualized-rows/package.json | 2 +- examples/preact/basic/package.json | 2 +- examples/preact/sorting/package.json | 2 +- examples/preact/sorting/src/main.tsx | 188 +- examples/react/basic-table-helper/index.html | 1 + .../react/basic-table-helper/package.json | 2 +- examples/react/basic/index.html | 1 + examples/react/basic/package.json | 2 +- examples/react/column-dnd/index.html | 1 + examples/react/column-dnd/package.json | 2 +- examples/react/column-dnd/src/main.tsx | 27 +- examples/react/column-dnd/src/makeData.ts | 2 +- examples/react/column-groups/index.html | 1 + examples/react/column-groups/package.json | 2 +- examples/react/column-ordering/index.html | 1 + examples/react/column-ordering/package.json | 2 +- examples/react/column-ordering/src/main.tsx | 179 +- .../react/column-pinning-split/index.html | 1 + .../react/column-pinning-split/package.json | 2 +- .../react/column-pinning-split/src/main.tsx | 551 ++- .../react/column-pinning-sticky/index.html | 1 + .../react/column-pinning-sticky/package.json | 2 +- .../react/column-pinning-sticky/src/main.tsx | 307 +- examples/react/column-pinning/index.html | 1 + examples/react/column-pinning/package.json | 2 +- examples/react/column-pinning/src/main.tsx | 259 +- .../column-resizing-performant/index.html | 1 + .../column-resizing-performant/package.json | 2 +- .../column-resizing-performant/src/main.tsx | 6 +- examples/react/column-resizing/index.html | 1 + examples/react/column-resizing/package.json | 2 +- examples/react/column-resizing/src/main.tsx | 10 +- examples/react/column-sizing/index.html | 1 + examples/react/column-sizing/package.json | 2 +- examples/react/column-sizing/src/main.tsx | 4 +- examples/react/column-visibility/index.html | 1 + examples/react/column-visibility/package.json | 2 +- examples/react/column-visibility/src/main.tsx | 159 +- examples/react/custom-features/index.html | 1 + examples/react/custom-features/package.json | 2 +- examples/react/custom-features/src/main.tsx | 8 +- examples/react/editable-data/index.html | 1 + examples/react/editable-data/package.json | 2 +- examples/react/editable-data/src/main.tsx | 6 +- examples/react/expanding/index.html | 1 + examples/react/expanding/package.json | 2 +- examples/react/expanding/src/main.tsx | 259 +- examples/react/filters-faceted/index.html | 1 + examples/react/filters-faceted/package.json | 2 +- examples/react/filters-faceted/src/main.tsx | 275 +- examples/react/filters-fuzzy/index.html | 1 + examples/react/filters-fuzzy/package.json | 2 +- examples/react/filters-fuzzy/src/main.tsx | 320 +- examples/react/filters/index.html | 1 + examples/react/filters/package.json | 2 +- examples/react/filters/src/main.tsx | 279 +- .../full-width-resizable-table/.gitignore | 5 - .../full-width-resizable-table/README.md | 4 - .../full-width-resizable-table/index.html | 13 - .../full-width-resizable-table/package.json | 26 - .../full-width-resizable-table/src/index.css | 53 - .../full-width-resizable-table/src/main.tsx | 155 - .../src/makeData.ts | 48 - .../full-width-resizable-table/tsconfig.json | 24 - .../full-width-resizable-table/vite.config.js | 17 - examples/react/full-width-table/.gitignore | 23 - examples/react/full-width-table/README.md | 4 - examples/react/full-width-table/index.html | 13 - examples/react/full-width-table/package.json | 26 - examples/react/full-width-table/src/index.css | 26 - examples/react/full-width-table/src/main.tsx | 224 - .../react/full-width-table/src/makeData.ts | 48 - examples/react/full-width-table/tsconfig.json | 24 - .../react/full-width-table/vite.config.js | 17 - examples/react/fully-controlled/index.html | 1 + examples/react/fully-controlled/package.json | 2 +- examples/react/fully-controlled/src/main.tsx | 6 +- examples/react/grouping/index.html | 1 + examples/react/grouping/package.json | 2 +- examples/react/grouping/src/main.tsx | 342 +- .../react/pagination-controlled/index.html | 1 + .../react/pagination-controlled/package.json | 2 +- .../react/pagination-controlled/src/main.tsx | 6 +- examples/react/pagination/index.html | 1 + examples/react/pagination/package.json | 2 +- examples/react/pagination/src/main.tsx | 270 +- .../query-router-search-params/index.html | 1 + .../query-router-search-params/package.json | 6 +- .../src/components/table.tsx | 6 +- examples/react/row-dnd/index.html | 1 + examples/react/row-dnd/package.json | 2 +- examples/react/row-pinning/index.html | 1 + examples/react/row-pinning/package.json | 2 +- examples/react/row-pinning/src/main.tsx | 6 +- examples/react/row-selection/index.html | 1 + examples/react/row-selection/package.json | 3 +- examples/react/row-selection/src/main.tsx | 419 +- examples/react/shadcn-basic/index.html | 1 + examples/react/shadcn-basic/package.json | 4 +- examples/react/shadcn-kitchen-sink/index.html | 1 + .../react/shadcn-kitchen-sink/package.json | 8 +- .../data-table/data-table-pagination.tsx | 8 +- .../react/shadcn-kitchen-sink/src/main.tsx | 2 +- examples/react/sorting/index.html | 1 + examples/react/sorting/package.json | 2 +- examples/react/sorting/src/main.tsx | 188 +- examples/react/sub-components/index.html | 1 + examples/react/sub-components/package.json | 2 +- .../index.html | 1 + .../package.json | 2 +- .../src/main.tsx | 2 +- examples/react/virtualized-columns/index.html | 1 + .../react/virtualized-columns/package.json | 2 +- .../virtualized-infinite-scrolling/index.html | 1 + .../package.json | 2 +- .../virtualized-rows-experimental/index.html | 1 + .../package.json | 2 +- .../src/main.tsx | 2 +- examples/react/virtualized-rows/index.html | 1 + examples/react/virtualized-rows/package.json | 2 +- .../solid/basic-table-helper/package.json | 2 +- examples/solid/basic/package.json | 2 +- examples/solid/column-groups/package.json | 2 +- examples/solid/column-ordering/package.json | 2 +- examples/solid/column-visibility/package.json | 2 +- examples/solid/filters-faceted/package.json | 2 +- examples/solid/filters/package.json | 2 +- examples/solid/sorting/package.json | 2 +- examples/svelte/basic-snippets/package.json | 4 +- .../svelte/basic-table-helper/package.json | 4 +- examples/svelte/basic/package.json | 4 +- examples/svelte/column-groups/package.json | 4 +- examples/svelte/column-ordering/package.json | 4 +- examples/svelte/column-pinning/package.json | 4 +- .../svelte/column-visibility/package.json | 4 +- examples/svelte/filtering/package.json | 4 +- examples/svelte/sorting/package.json | 4 +- examples/vanilla/basic/package.json | 4 +- examples/vanilla/pagination/package.json | 4 +- examples/vanilla/sorting/package.json | 4 +- examples/vue/basic/package.json | 6 +- examples/vue/column-ordering/package.json | 6 +- examples/vue/column-pinning/package.json | 6 +- examples/vue/filters/package.json | 6 +- .../vue/pagination-controlled/package.json | 6 +- examples/vue/pagination/package.json | 6 +- examples/vue/row-selection/package.json | 6 +- examples/vue/sorting/package.json | 6 +- examples/vue/sub-components/package.json | 6 +- examples/vue/virtualized-rows/package.json | 6 +- package.json | 14 +- packages/angular-table/package.json | 12 +- packages/preact-table/package.json | 1 + .../preact-table/src/createTableHelper.ts | 27 +- packages/preact-table/src/useTable.ts | 108 +- packages/react-table/eslint.config.js | 9 +- packages/react-table/package.json | 5 +- packages/react-table/src/createTableHelper.ts | 27 +- packages/react-table/src/useTable.ts | 108 +- packages/solid-table/src/createTable.ts | 40 +- packages/svelte-table/package.json | 2 +- .../svelte-table/src/createTable.svelte.ts | 39 +- packages/table-core/package.json | 3 + .../src/core/columns/coreColumnsFeature.ts | 8 +- packages/table-core/src/core/coreFeatures.ts | 2 +- .../src/core/headers/coreHeadersFeature.ts | 6 +- .../core/headers/coreHeadersFeature.utils.ts | 2 +- .../src/core/rows/coreRowsFeature.ts | 1 - .../src/core/table/constructTable.ts | 25 +- .../src/core/table/coreTablesFeature.ts | 15 +- .../src/core/table/coreTablesFeature.types.ts | 17 +- .../src/core/table/coreTablesFeature.utils.ts | 28 +- .../createFacetedMinMaxValues.ts | 10 +- .../column-faceting/createFacetedRowModel.ts | 14 +- .../createFacetedUniqueValues.ts | 10 +- .../columnFilteringFeature.utils.ts | 4 +- .../createFilteredRowModel.ts | 15 +- .../columnGroupingFeature.utils.ts | 4 +- .../column-grouping/createGroupedRowModel.ts | 13 +- .../column-ordering/columnOrderingFeature.ts | 10 +- .../columnOrderingFeature.utils.ts | 4 +- .../column-pinning/columnPinningFeature.ts | 36 +- .../columnPinningFeature.utils.ts | 27 +- .../columnResizingFeature.utils.ts | 2 +- .../column-sizing/columnSizingFeature.ts | 4 +- .../columnSizingFeature.utils.ts | 2 +- .../columnVisibilityFeature.ts | 8 +- .../columnVisibilityFeature.utils.ts | 2 +- .../row-expanding/createExpandedRowModel.ts | 16 +- .../rowExpandingFeature.utils.ts | 10 +- .../row-pagination/createPaginatedRowModel.ts | 18 +- .../rowPaginationFeature.utils.ts | 7 +- .../features/row-pinning/rowPinningFeature.ts | 8 +- .../row-pinning/rowPinningFeature.utils.ts | 8 +- .../row-selection/rowSelectionFeature.ts | 6 +- .../rowSelectionFeature.utils.ts | 23 +- .../row-sorting/createSortedRowModel.ts | 16 +- .../features/row-sorting/rowSortingFeature.ts | 1 + .../row-sorting/rowSortingFeature.utils.ts | 7 +- .../table-core/src/helpers/tableHelper.ts | 1 + packages/table-core/src/types/Table.ts | 2 + .../table-core/src/types/TableFeatures.ts | 5 + packages/table-core/src/utils.ts | 20 +- .../row-pinning/rowPinningFeature.test.ts | 24 +- packages/vue-table/package.json | 2 +- pnpm-lock.yaml | 3719 +++++++---------- 265 files changed, 4431 insertions(+), 9723 deletions(-) delete mode 100644 docs/api/core/cell.md delete mode 100644 docs/api/core/column-def.md delete mode 100644 docs/api/core/column.md delete mode 100644 docs/api/core/header-group.md delete mode 100644 docs/api/core/header.md delete mode 100644 docs/api/core/row.md delete mode 100644 docs/api/core/table.md delete mode 100644 docs/api/features/column-faceting.md delete mode 100644 docs/api/features/column-filtering.md delete mode 100644 docs/api/features/column-ordering.md delete mode 100644 docs/api/features/column-pinning.md delete mode 100644 docs/api/features/column-sizing.md delete mode 100644 docs/api/features/column-visibility.md delete mode 100644 docs/api/features/expanding.md delete mode 100644 docs/api/features/filters.md delete mode 100644 docs/api/features/global-faceting.md delete mode 100644 docs/api/features/global-filtering.md delete mode 100644 docs/api/features/grouping.md delete mode 100644 docs/api/features/pagination.md delete mode 100644 docs/api/features/pinning.md delete mode 100644 docs/api/features/row-pinning.md delete mode 100644 docs/api/features/row-selection.md delete mode 100644 docs/api/features/sorting.md delete mode 100644 examples/react/full-width-resizable-table/.gitignore delete mode 100755 examples/react/full-width-resizable-table/README.md delete mode 100644 examples/react/full-width-resizable-table/index.html delete mode 100755 examples/react/full-width-resizable-table/package.json delete mode 100755 examples/react/full-width-resizable-table/src/index.css delete mode 100644 examples/react/full-width-resizable-table/src/main.tsx delete mode 100755 examples/react/full-width-resizable-table/src/makeData.ts delete mode 100644 examples/react/full-width-resizable-table/tsconfig.json delete mode 100644 examples/react/full-width-resizable-table/vite.config.js delete mode 100755 examples/react/full-width-table/.gitignore delete mode 100755 examples/react/full-width-table/README.md delete mode 100644 examples/react/full-width-table/index.html delete mode 100755 examples/react/full-width-table/package.json delete mode 100755 examples/react/full-width-table/src/index.css delete mode 100644 examples/react/full-width-table/src/main.tsx delete mode 100755 examples/react/full-width-table/src/makeData.ts delete mode 100644 examples/react/full-width-table/tsconfig.json delete mode 100644 examples/react/full-width-table/vite.config.js diff --git a/docs/api/core/cell.md b/docs/api/core/cell.md deleted file mode 100644 index aa2041f5bf..0000000000 --- a/docs/api/core/cell.md +++ /dev/null @@ -1,68 +0,0 @@ ---- -title: Cell APIs ---- - -These are **core** options and API properties for all cells. More options and API properties are available for other [table features](../../../guide/features). - -## Cell API - -All cell objects have the following properties: - -### `id` - -```tsx -id: string -``` - -The unique ID for the cell across the entire table. - -### `getValue` - -```tsx -getValue: () => any -``` - -Returns the value for the cell, accessed via the associated column's accessor key or accessor function. - -### `renderValue` - -```tsx -renderValue: () => any -``` - -Renders the value for a cell the same as `getValue`, but will return the `renderFallbackValue` if no value is found. - -### `row` - -```tsx -row: Row -``` - -The associated Row object for the cell. - -### `column` - -```tsx -column: Column -``` - -The associated Column object for the cell. - -### `getContext` - -```tsx -getContext: () => { - table: Table - column: Column - row: Row - cell: Cell - getValue: () => TTValue - renderValue: () => TTValue | null -} -``` - -Returns the rendering context (or props) for cell-based components like cells and aggregated cells. Use these props with your framework's `flexRender` utility to render these using the template of your choice: - -```tsx -flexRender(cell.column.columnDef.cell, cell.getContext()) -``` diff --git a/docs/api/core/column-def.md b/docs/api/core/column-def.md deleted file mode 100644 index 04ea925b87..0000000000 --- a/docs/api/core/column-def.md +++ /dev/null @@ -1,107 +0,0 @@ ---- -title: ColumnDef APIs ---- - -Column definitions are plain objects with the following options: - -## Options - -### `id` - -```tsx -id: string -``` - -The unique identifier for the column. - -> 🧠 A column ID is optional when: -> -> - An accessor column is created with an object key accessor -> - The column header is defined as a string - -### `accessorKey` - -```tsx -accessorKey?: string & typeof TData -``` - -The key of the row object to use when extracting the value for the column. - -### `accessorFn` - -```tsx -accessorFn?: (originalRow: TData, index: number) => any -``` - -The accessor function to use when extracting the value for the column from each row. - -### `columns` - -```tsx -columns?: ColumnDef[] -``` - -The child column defs to include in a group column. - -### `header` - -```tsx -header?: - | string - | ((props: { - table: Table - header: Header - column: Column - }) => unknown) -``` - -The header to display for the column. If a string is passed, it can be used as a default for the column ID. If a function is passed, it will be passed a props object for the header and should return the rendered header value (the exact type depends on the adapter being used). - -### `footer` - -```tsx -footer?: - | string - | ((props: { - table: Table - header: Header - column: Column - }) => unknown) -``` - -The footer to display for the column. If a function is passed, it will be passed a props object for the footer and should return the rendered footer value (the exact type depends on the adapter being used). - -### `cell` - -```tsx -cell?: - | string - | ((props: { - table: Table - row: Row - column: Column - cell: Cell - getValue: () => any - renderValue: () => any - }) => unknown) -``` - -The cell to display each row for the column. If a function is passed, it will be passed a props object for the cell and should return the rendered cell value (the exact type depends on the adapter being used). - -### `meta` - -```tsx -meta?: ColumnMeta // This interface is extensible via declaration merging. See below! -``` - -The meta data to be associated with the column. We can access it anywhere when the column is available via `column.columnDef.meta`. This type is global to all tables and can be extended like so: - -```tsx -import '@tanstack/react-table' //or vue, svelte, solid, etc. - -declare module '@tanstack/react-table' { - interface ColumnMeta { - foo: string - } -} -``` diff --git a/docs/api/core/column.md b/docs/api/core/column.md deleted file mode 100644 index d4ad77bc07..0000000000 --- a/docs/api/core/column.md +++ /dev/null @@ -1,77 +0,0 @@ ---- -title: Column APIs ---- - -These are **core** options and API properties for all columns. More options and API properties are available for other [table features](../../../guide/features). - -## Column API - -All column objects have the following properties: - -### `id` - -```tsx -id: string -``` - -The resolved unique identifier for the column resolved in this priority: - -- A manual `id` property from the column def -- The accessor key from the column def -- The header string from the column def - -### `depth` - -```tsx -depth: number -``` - -The depth of the column (if grouped) relative to the root column def array. - -### `accessorFn` - -```tsx -accessorFn?: AccessorFn -``` - -The resolved accessor function to use when extracting the value for the column from each row. Will only be defined if the column def has a valid accessor key or function defined. - -### `columnDef` - -```tsx -columnDef: ColumnDef -``` - -The original column def used to create the column. - -### `columns` - -```tsx -type columns = ColumnDef[] -``` - -The child column (if the column is a group column). Will be an empty array if the column is not a group column. - -### `parent` - -```tsx -parent?: Column -``` - -The parent column for this column. Will be undefined if this is a root column. - -### `getFlatColumns` - -```tsx -type getFlatColumns = () => Column[] -``` - -Returns the flattened array of this column and all child/grand-child columns for this column. - -### `getLeafColumns` - -```tsx -type getLeafColumns = () => Column[] -``` - -Returns an array of all leaf-node columns for this column. If a column has no children, it is considered the only leaf-node column. diff --git a/docs/api/core/header-group.md b/docs/api/core/header-group.md deleted file mode 100644 index 221b65cdf7..0000000000 --- a/docs/api/core/header-group.md +++ /dev/null @@ -1,33 +0,0 @@ ---- -title: HeaderGroup APIs ---- - -These are **core** options and API properties for all header groups. More options and API properties may be available for other [table features](../../../guide/features). - -## Header Group API - -All header group objects have the following properties: - -### `id` - -```tsx -id: string -``` - -The unique identifier for the header group. - -### `depth` - -```tsx -depth: number -``` - -The depth of the header group, zero-indexed based. - -### `headers` - -```tsx -type headers = Header[] -``` - -An array of [Header](../header) objects that belong to this header group diff --git a/docs/api/core/header.md b/docs/api/core/header.md deleted file mode 100644 index ac1ca7c8b2..0000000000 --- a/docs/api/core/header.md +++ /dev/null @@ -1,243 +0,0 @@ ---- -title: Header APIs ---- - -These are **core** options and API properties for all headers. More options and API properties may be available for other [table features](../../../guide/features). - -## Header API - -All header objects have the following properties: - -### `id` - -```tsx -id: string -``` - -The unique identifier for the header. - -### `index` - -```tsx -index: number -``` - -The index for the header within the header group. - -### `depth` - -```tsx -depth: number -``` - -The depth of the header, zero-indexed based. - -### `column` - -```tsx -column: Column -``` - -The header's associated [Column](../column) object - -### `headerGroup` - -```tsx -headerGroup: HeaderGroup -``` - -The header's associated [HeaderGroup](../header-group) object - -### `subHeaders` - -```tsx -type subHeaders = Header[] -``` - -The header's hierarchical sub/child headers. Will be empty if the header's associated column is a leaf-column. - -### `colSpan` - -```tsx -colSpan: number -``` - -The col-span for the header. - -### `rowSpan` - -```tsx -rowSpan: number -``` - -The row-span for the header. - -### `getLeafHeaders` - -```tsx -type getLeafHeaders = () => Header[] -``` - -Returns the leaf headers hierarchically nested under this header. - -### `isPlaceholder` - -```tsx -isPlaceholder: boolean -``` - -A boolean denoting if the header is a placeholder header - -### `placeholderId` - -```tsx -placeholderId?: string -``` - -If the header is a placeholder header, this will be a unique header ID that does not conflict with any other headers across the table - -### `getContext` - -```tsx -getContext: () => { - table: Table - header: Header - column: Column -} -``` - -Returns the rendering context (or props) for column-based components like headers, footers and filters. Use these props with your framework's `flexRender` utility to render these using the template of your choice: - -```tsx -flexRender(header.column.columnDef.header, header.getContext()) -``` - -## Table API - -### `getHeaderGroups` - -```tsx -type getHeaderGroups = () => HeaderGroup[] -``` - -Returns all header groups for the table. - -### `getLeftHeaderGroups` - -```tsx -type getLeftHeaderGroups = () => HeaderGroup[] -``` - -If pinning, returns the header groups for the left pinned columns. - -### `getCenterHeaderGroups` - -```tsx -type getCenterHeaderGroups = () => HeaderGroup[] -``` - -If pinning, returns the header groups for columns that are not pinned. - -### `getRightHeaderGroups` - -```tsx -type getRightHeaderGroups = () => HeaderGroup[] -``` - -If pinning, returns the header groups for the right pinned columns. - -### `getFooterGroups` - -```tsx -type getFooterGroups = () => HeaderGroup[] -``` - -Returns all footer groups for the table. - -### `getLeftFooterGroups` - -```tsx -type getLeftFooterGroups = () => HeaderGroup[] -``` - -If pinning, returns the footer groups for the left pinned columns. - -### `getCenterFooterGroups` - -```tsx -type getCenterFooterGroups = () => HeaderGroup[] -``` - -If pinning, returns the footer groups for columns that are not pinned. - -### `getRightFooterGroups` - -```tsx -type getRightFooterGroups = () => HeaderGroup[] -``` - -If pinning, returns the footer groups for the right pinned columns. - -### `getFlatHeaders` - -```tsx -type getFlatHeaders = () => Header[] -``` - -Returns headers for all columns in the table, including parent headers. - -### `getLeftFlatHeaders` - -```tsx -type getLeftFlatHeaders = () => Header[] -``` - -If pinning, returns headers for all left pinned columns in the table, including parent headers. - -### `getCenterFlatHeaders` - -```tsx -type getCenterFlatHeaders = () => Header[] -``` - -If pinning, returns headers for all columns that are not pinned, including parent headers. - -### `getRightFlatHeaders` - -```tsx -type getRightFlatHeaders = () => Header[] -``` - -If pinning, returns headers for all right pinned columns in the table, including parent headers. - -### `getLeafHeaders` - -```tsx -type getLeafHeaders = () => Header[] -``` - -Returns headers for all leaf columns in the table, (not including parent headers). - -### `getLeftLeafHeaders` - -```tsx -type getLeftLeafHeaders = () => Header[] -``` - -If pinning, returns headers for all left pinned leaf columns in the table, (not including parent headers). - -### `getCenterLeafHeaders` - -```tsx -type getCenterLeafHeaders = () => Header[] -``` - -If pinning, returns headers for all columns that are not pinned, (not including parent headers). - -### `getRightLeafHeaders` - -```tsx -type getRightLeafHeaders = () => Header[] -``` - -If pinning, returns headers for all right pinned leaf columns in the table, (not including parent headers). diff --git a/docs/api/core/row.md b/docs/api/core/row.md deleted file mode 100644 index 72c01d3422..0000000000 --- a/docs/api/core/row.md +++ /dev/null @@ -1,123 +0,0 @@ ---- -title: Row APIs ---- - -These are **core** options and API properties for all rows. More options and API properties are available for other [table features](../../../guide/features). - -## Row API - -All row objects have the following properties: - -### `id` - -```tsx -id: string -``` - -The resolved unique identifier for the row resolved via the `options.getRowId` option. Defaults to the row's index (or relative index if it is a subRow) - -### `depth` - -```tsx -depth: number -``` - -The depth of the row (if nested or grouped) relative to the root row array. - -### `index` - -```tsx -index: number -``` - -The index of the row within its parent array (or the root data array) - -### `original` - -```tsx -original: TData -``` - -The original row object provided to the table. - -> 🧠 If the row is a grouped row, the original row object will be the first original in the group. - -### `parentId` - -```tsx -parentId?: string -``` - -If nested, this row's parent row id. - -### `getValue` - -```tsx -getValue: (columnId: string) => TValue -``` - -Returns the value from the row for a given columnId - -### `renderValue` - -```tsx -renderValue: (columnId: string) => TValue -``` - -Renders the value from the row for a given columnId, but will return the `renderFallbackValue` if no value is found. - -### `getUniqueValues` - -```tsx -getUniqueValues: (columnId: string) => TValue[] -``` - -Returns a unique array of values from the row for a given columnId. - -### `subRows` - -```tsx -type subRows = Row[] -``` - -An array of subRows for the row as returned and created by the `options.getSubRows` option. - -### `getParentRow` - -```tsx -type getParentRow = () => Row | undefined -``` - -Returns the parent row for the row, if it exists. - -### `getParentRows` - -```tsx -type getParentRows = () => Row[] -``` - -Returns the parent rows for the row, all the way up to a root row. - -### `getLeafRows` - -```tsx -type getLeafRows = () => Row[] -``` - -Returns the leaf rows for the row, not including any parent rows. - -### `originalSubRows` - -```tsx -originalSubRows?: TData[] -``` - -An array of the original subRows as returned by the `options.getSubRows` option. - -### `getAllCells` - -```tsx -type getAllCells = () => Cell[] -``` - -Returns all of the [Cells](../cell) for the row. diff --git a/docs/api/core/table.md b/docs/api/core/table.md deleted file mode 100644 index dc00a0182f..0000000000 --- a/docs/api/core/table.md +++ /dev/null @@ -1,385 +0,0 @@ ---- -title: Table APIs ---- - -## `createTable` / `useTable` / `injectTable` - -```tsx -type useTable = ( - options: TableOptions -) => Table -``` - -These functions are used to create a table. Which one you use depends on which framework adapter you are using. - -## Options - -These are **core** options and API properties for the table. More options and API properties are available for other [table features](../../../guide/features). - -### `data` - -```tsx -data: TData[] -``` - -The data for the table to display. This array should match the type you provided to `table.setRowType<...>`, but in theory could be an array of anything. It's common for each item in the array to be an object of key/values but this is not required. Columns can access this data via string/index or a functional accessor to return anything they want. - -When the `data` option changes reference (compared via `Object.is`), the table will reprocess the data. Any other data processing that relies on the core data model (such as grouping, sorting, filtering, etc) will also be reprocessed. - -> 🧠 Make sure your `data` option is only changing when you want the table to reprocess. Providing an inline `[]` or constructing the data array as a new object every time you want to render the table will result in a _lot_ of unnecessary re-processing. This can easily go unnoticed in smaller tables, but you will likely notice it in larger tables. - -### `columns` - -```tsx -type columns = ColumnDef[] -``` - -The array of column defs to use for the table. See the [Column Defs Guide](../../docs/guide/column-defs) for more information on creating column definitions. - -### `defaultColumn` - -```tsx -defaultColumn?: Partial> -``` - -Default column options to use for all column defs supplied to the table. This is useful for providing default cell/header/footer renderers, sorting/filtering/grouping options, etc. All column definitions passed to `options.columns` are merged with this default column definition to produce the final column definitions. - -### `initialState` - -```tsx -initialState?: Partial< - VisibilityTableState & - ColumnOrderTableState & - ColumnPinningTableState & - FiltersTableState & - SortingTableState & - ExpandedTableState & - GroupingTableState & - ColumnSizingTableState & - PaginationTableState & - RowSelectionTableState -> -``` - -Use this option to optionally pass initial state to the table. This state will be used when resetting various table states either automatically by the table (eg. `options.autoResetPageIndex`) or via functions like `table.resetRowSelection()`. Most reset function allow you optionally pass a flag to reset to a blank/default state instead of the initial state. - -> 🧠 Table state will not be reset when this object changes, which also means that the initial state object does not need to be stable. - -### `autoResetAll` - -```tsx -autoResetAll?: boolean -``` - -Set this option to override any of the `autoReset...` feature options. - -### `meta` - -```tsx -meta?: TableMeta // This interface is extensible via declaration merging. See below! -``` - -You can pass any object to `options.meta` and access it anywhere the `table` is available via `table.options.meta` This type is global to all tables and can be extended like so: - -```tsx -declare module '@tanstack/table-core' { - interface TableMeta { - foo: string - } -} -``` - -> 🧠 Think of this option as an arbitrary "context" for your table. This is a great way to pass arbitrary data or functions to your table without having to pass it to every thing the table touches. A good example is passing a locale object to your table to use for formatting dates, numbers, etc or even a function that can be used to update editable data like in the [editable-data example](../../../framework/react/examples/editable-data). - -### `state` - -```tsx -state?: Partial< - VisibilityTableState & - ColumnOrderTableState & - ColumnPinningTableState & - FiltersTableState & - SortingTableState & - ExpandedTableState & - GroupingTableState & - ColumnSizingTableState & - PaginationTableState & - RowSelectionTableState -> -``` - -The `state` option can be used to optionally _control_ part or all of the table state. The state you pass here will merge with and overwrite the internal automatically-managed state to produce the final state for the table. You can also listen to state changes via the `onStateChange` option. - -### `onStateChange` - -```tsx -onStateChange: (updater: Updater) => void -``` - -The `onStateChange` option can be used to optionally listen to state changes within the table. If you provide this options, you will be responsible for controlling and updating the table state yourself. You can provide the state back to the table with the `state` option. - -### `debugAll` - -> ⚠️ Debugging is only available in development mode. - -```tsx -debugAll?: boolean -``` - -Set this option to true to output all debugging information to the console. - -### `debugTable` - -> ⚠️ Debugging is only available in development mode. - -```tsx -debugTable?: boolean -``` - -Set this option to true to output table debugging information to the console. - -### `debugHeaders` - -> ⚠️ Debugging is only available in development mode. - -```tsx -debugHeaders?: boolean -``` - -Set this option to true to output header debugging information to the console. - -### `debugColumns` - -> ⚠️ Debugging is only available in development mode. - -```tsx -debugColumns?: boolean -``` - -Set this option to true to output column debugging information to the console. - -### `debugRows` - -> ⚠️ Debugging is only available in development mode. - -```tsx -debugRows?: boolean -``` - -Set this option to true to output row debugging information to the console. - -### `_features` - -```tsx -_features?: TableFeature[] -``` - -An array of extra features that you can add to the table instance. - -### `render` - -> ⚠️ This option is only necessary if you are implementing a table adapter. - -```tsx -type render = (template: Renderable, props: TProps) => any -``` - -The `render` option provides a renderer implementation for the table. This implementation is used to turn a table's various column header and cell templates into a result that is supported by the user's framework. - -### `mergeOptions` - -> ⚠️ This option is only necessary if you are implementing a table adapter. - -```tsx -type mergeOptions = (defaultOptions: T, options: Partial) => T -``` - -This option is used to optionally implement the merging of table options. Some framework like solid-js use proxies to track reactivity and usage, so merging reactive objects needs to be handled carefully. This option inverts control of this process to the adapter. - -### `getCoreRowModel` - -```tsx -getCoreRowModel: (table: Table) => () => RowModel -``` - -This required option is a factory for a function that computes and returns the core row model for the table. It is called **once** per table and should return a **new function** which will calculate and return the row model for the table. - -A default implementation is provided via any table adapter's `{ getCoreRowModel }` export. - -### `getSubRows` - -```tsx -getSubRows?: ( - originalRow: TData, - index: number -) => undefined | TData[] -``` - -This optional function is used to access the sub rows for any given row. If you are using nested rows, you will need to use this function to return the sub rows object (or undefined) from the row. - -### `getRowId` - -```tsx -getRowId?: ( - originalRow: TData, - index: number, - parent?: Row -) => string -``` - -This optional function is used to derive a unique ID for any given row. If not provided the rows index is used (nested rows join together with `.` using their grandparents' index eg. `index.index.index`). If you need to identify individual rows that are originating from any server-side operations, it's suggested you use this function to return an ID that makes sense regardless of network IO/ambiguity eg. a userId, taskId, database ID field, etc. - -## Table API - -These properties and methods are available on the table object: - -### `initialState` - -```tsx -initialState: VisibilityTableState & - ColumnOrderTableState & - ColumnPinningTableState & - FiltersTableState & - SortingTableState & - ExpandedTableState & - GroupingTableState & - ColumnSizingTableState & - PaginationTableState & - RowSelectionTableState -``` - -This is the resolved initial state of the table. - -### `reset` - -```tsx -reset: () => void -``` - -Call this function to reset the table state to the initial state. - -### `getState` - -```tsx -getState: () => TableState -``` - -Call this function to get the table's current state. It's recommended to use this function and its state, especially when managing the table state manually. It is the exact same state used internally by the table for every feature and function it provides. - -> 🧠 The state returned by this function is the shallow-merged result of the automatically-managed internal table-state and any manually-managed state passed via `options.state`. - -### `setState` - -```tsx -setState: (updater: Updater) => void -``` - -Call this function to update the table state. It's recommended you pass an updater function in the form of `(prevState) => newState` to update the state, but a direct object can also be passed. - -> 🧠 If `options.onStateChange` is provided, it will be triggered by this function with the new state. - -### `options` - -```tsx -options: TableOptions -``` - -A read-only reference to the table's current options. - -> ⚠️ This property is generally used internally or by adapters. It can be updated by passing new options to your table. This is different per adapter. For adapters themselves, table options must be updated via the `setOptions` function. - -### `setOptions` - -```tsx -setOptions: (newOptions: Updater>) => void -``` - -> ⚠️ This function is generally used by adapters to update the table options. It can be used to update the table options directly, but it is generally not recommended to bypass your adapters strategy for updating table options. - -### `getCoreRowModel` - -```tsx -getCoreRowModel: () => { - rows: Row[], - flatRows: Row[], - rowsById: Record>, -} -``` - -Returns the core row model before any processing has been applied. - -### `getRowModel` - -```tsx -getRowModel: () => { - rows: Row[], - flatRows: Row[], - rowsById: Record>, -} -``` - -Returns the final model after all processing from other used features has been applied. - -### `getAllColumns` - -```tsx -type getAllColumns = () => Column[] -``` - -Returns all columns in the table in their normalized and nested hierarchy, mirrored from the column defs passed to the table. - -### `getAllFlatColumns` - -```tsx -type getAllFlatColumns = () => Column[] -``` - -Returns all columns in the table flattened to a single level. This includes parent column objects throughout the hierarchy. - -### `getAllLeafColumns` - -```tsx -type getAllLeafColumns = () => Column[] -``` - -Returns all leaf-node columns in the table flattened to a single level. This does not include parent columns. - -### `getColumn` - -```tsx -type getColumn = (id: string) => Column | undefined -``` - -Returns a single column by its ID. - -### `getHeaderGroups` - -```tsx -type getHeaderGroups = () => HeaderGroup[] -``` - -Returns the header groups for the table. - -### `getFooterGroups` - -```tsx -type getFooterGroups = () => HeaderGroup[] -``` - -Returns the footer groups for the table. - -### `getFlatHeaders` - -```tsx -type getFlatHeaders = () => Header[] -``` - -Returns a flattened array of Header objects for the table, including parent headers. - -### `getLeafHeaders` - -```tsx -type getLeafHeaders = () => Header[] -``` - -Returns a flattened array of leaf-node Header objects for the table. diff --git a/docs/api/features/column-faceting.md b/docs/api/features/column-faceting.md deleted file mode 100644 index b80629037f..0000000000 --- a/docs/api/features/column-faceting.md +++ /dev/null @@ -1,46 +0,0 @@ ---- -title: Column Faceting APIs -id: column-faceting ---- - -## Column API - -### `getFacetedRowModel` - -```tsx -type getFacetedRowModel = () => RowModel -``` - -> ⚠️ Requires that you pass a valid `getFacetedRowModel` function to `options.facetedRowModel`. A default implementation is provided via the exported `getFacetedRowModel` function. - -Returns the row model with all other column filters applied, excluding its own filter. Useful for displaying faceted result counts. - -### `getFacetedUniqueValues` - -```tsx -getFacetedUniqueValues: () => Map -``` - -> ⚠️ Requires that you pass a valid `getFacetedUniqueValues` function to `options.getFacetedUniqueValues`. A default implementation is provided via the exported `getFacetedUniqueValues` function. - -A function that **computes and returns** a `Map` of unique values and their occurrences derived from `column.getFacetedRowModel`. Useful for displaying faceted result values. - -### `getFacetedMinMaxValues` - -```tsx -getFacetedMinMaxValues: () => Map -``` - -> ⚠️ Requires that you pass a valid `getFacetedMinMaxValues` function to `options.getFacetedMinMaxValues`. A default implementation is provided via the exported `getFacetedMinMaxValues` function. - -A function that **computes and returns** a min/max tuple derived from `column.getFacetedRowModel`. Useful for displaying faceted result values. - -## Table Options - -### `getColumnFacetedRowModel` - -```tsx -getColumnFacetedRowModel: (columnId: string) => RowModel -``` - -Returns the faceted row model for a given columnId. diff --git a/docs/api/features/column-filtering.md b/docs/api/features/column-filtering.md deleted file mode 100644 index f8201b5653..0000000000 --- a/docs/api/features/column-filtering.md +++ /dev/null @@ -1,395 +0,0 @@ ---- -title: Column Filtering APIs -id: column-filtering ---- - -## Can-Filter - -The ability for a column to be **column** filtered is determined by the following: - -- The column was defined with a valid `accessorKey`/`accessorFn`. -- `column.enableColumnFilter` is not set to `false` -- `options.enableColumnFilters` is not set to `false` -- `options.enableFilters` is not set to `false` - -## State - -Filter state is stored on the table using the following shape: - -```tsx -export interface ColumnFiltersTableState { - columnFilters: ColumnFiltersState -} - -export type ColumnFiltersState = ColumnFilter[] - -export interface ColumnFilter { - id: string - value: unknown -} -``` - -## Filter Functions - -The following filter functions are built-in to the table core: - -- `includesString` - - Case-insensitive string inclusion -- `includesStringSensitive` - - Case-sensitive string inclusion -- `equalsString` - - Case-insensitive string equality -- `equalsStringSensitive` - - Case-sensitive string equality -- `arrIncludes` - - Item inclusion within an array -- `arrIncludesAll` - - All items included in an array -- `arrIncludesSome` - - Some items included in an array -- `equals` - - Object/referential equality `Object.is`/`===` -- `weakEquals` - - Weak object/referential equality `==` -- `inNumberRange` - - Number range inclusion - -Every filter function receives: - -- The row to filter -- The columnId to use to retrieve the row's value -- The filter value - -and should return `true` if the row should be included in the filtered rows, and `false` if it should be removed. - -This is the type signature for every filter function: - -```tsx -export type FilterFn = { - ( - row: Row, - columnId: string, - filterValue: any, - addMeta: (meta: any) => void - ): boolean - resolveFilterValue?: TransformFilterValueFn - autoRemove?: ColumnFilterAutoRemoveTestFn - addMeta?: (meta?: any) => void -} - -export type TransformFilterValueFn = ( - value: any, - column?: Column -) => unknown - -export type ColumnFilterAutoRemoveTestFn = ( - value: any, - column?: Column -) => boolean - -export type CustomFilterFns = Record< - string, - FilterFn -> -``` - -### `filterFn.resolveFilterValue` - -This optional "hanging" method on any given `filterFn` allows the filter function to transform/sanitize/format the filter value before it is passed to the filter function. - -### `filterFn.autoRemove` - -This optional "hanging" method on any given `filterFn` is passed a filter value and expected to return `true` if the filter value should be removed from the filter state. eg. Some boolean-style filters may want to remove the filter value from the table state if the filter value is set to `false`. - -#### Using Filter Functions - -Filter functions can be used/referenced/defined by passing the following to `columnDefinition.filterFn`: - -- A `string` that references a built-in filter function -- A function directly provided to the `columnDefinition.filterFn` option - -The final list of filter functions available for the `columnDef.filterFn` option use the following type: - -```tsx -export type FilterFnOption = - | 'auto' - | BuiltInFilterFn - | FilterFn -``` - -#### Filter Meta - -Filtering data can often expose additional information about the data that can be used to aid other future operations on the same data. A good example of this concept is a ranking-system like that of [`match-sorter`](https://github.com/kentcdodds/match-sorter) that simultaneously ranks, filters and sorts data. While utilities like `match-sorter` make a lot of sense for single-dimensional filter+sort tasks, the decoupled filtering/sorting architecture of building a table makes them very difficult and slow to use. - -To make a ranking/filtering/sorting system work with tables, `filterFn`s can optionally mark results with a **filter meta** value that can be used later to sort/group/etc the data to your liking. This is done by calling the `addMeta` function supplied to your custom `filterFn`. - -Below is an example using our own `match-sorter-utils` package (a utility fork of `match-sorter`) to rank, filter, and sort the data - -```tsx -import { sortFns } from '@tanstack/react-table' -import { rankItem, compareItems } from '@tanstack/match-sorter-utils' - -const fuzzyFilter = (row, columnId, value, addMeta) => { - // Rank the item - const itemRank = rankItem(row.getValue(columnId), value) - - // Store the ranking info - addMeta(itemRank) - - // Return if the item should be filtered in/out - return itemRank.passed -} - -const fuzzySort = (rowA, rowB, columnId) => { - let dir = 0 - - // Only sort by rank if the column has ranking information - if (rowA.columnFiltersMeta[columnId]) { - dir = compareItems( - rowA.columnFiltersMeta[columnId]!, - rowB.columnFiltersMeta[columnId]! - ) - } - - // Provide an alphanumeric fallback for when the item ranks are equal - return dir === 0 ? sortFns.alphanumeric(rowA, rowB, columnId) : dir -} -``` - -## Column Def Options - -### `filterFn` - -```tsx -filterFn?: FilterFn | keyof FilterFns | keyof BuiltInFilterFns -``` - -The filter function to use with this column. - -Options: - -- A `string` referencing a [built-in filter function](#filter-functions)) -- A [custom filter function](#filter-functions) - -### `enableColumnFilter` - -```tsx -enableColumnFilter?: boolean -``` - -Enables/disables the **column** filter for this column. - -## Column API - -### `getCanFilter` - -```tsx -getCanFilter: () => boolean -``` - -Returns whether or not the column can be **column** filtered. - -### `getFilterIndex` - -```tsx -getFilterIndex: () => number -``` - -Returns the index (including `-1`) of the column filter in the table's `state.columnFilters` array. - -### `getIsFiltered` - -```tsx -getIsFiltered: () => boolean -``` - -Returns whether or not the column is currently filtered. - -### `getFilterValue` - -```tsx -getFilterValue: () => unknown -``` - -Returns the current filter value of the column. - -### `setFilterValue` - -```tsx -setFilterValue: (updater: Updater) => void -``` - -A function that sets the current filter value for the column. You can pass it a value or an updater function for immutability-safe operations on existing values. - -### `getAutoFilterFn` - -```tsx -getAutoFilterFn: (columnId: string) => FilterFn | undefined -``` - -Returns an automatically calculated filter function for the column based off of the columns first known value. - -### `getFilterFn` - -```tsx -getFilterFn: (columnId: string) => FilterFn | undefined -``` - -Returns the filter function (either user-defined or automatic, depending on configuration) for the columnId specified. - -## Row API - -### `columnFilters` - -```tsx -columnFilters: Record -``` - -The column filters map for the row. This object tracks whether a row is passing/failing specific filters by their column ID. - -### `columnFiltersMeta` - -```tsx -columnFiltersMeta: Record -``` - -The column filters meta map for the row. This object tracks any filter meta for a row as optionally provided during the filtering process. - -## Table Options - -### `filterFns` - -```tsx -filterFns?: Record -``` - -This option allows you to define custom filter functions that can be referenced in a column's `filterFn` option by their key. -Example: - -```tsx -declare module '@tanstack/[adapter]-table' { - interface FilterFns { - myCustomFilter: FilterFn - } -} - -const column = columnHelper.data('key', { - filterFn: 'myCustomFilter', -}) - -const table = useTable({ - columns: [column], - filterFns: { - myCustomFilter: (rows, columnIds, filterValue) => { - // return the filtered rows - }, - }, -}) -``` - -### `filterFromLeafRows` - -```tsx -filterFromLeafRows?: boolean -``` - -By default, filtering is done from parent rows down (so if a parent row is filtered out, all of its children will be filtered out as well). Setting this option to `true` will cause filtering to be done from leaf rows up (which means parent rows will be included so long as one of their child or grand-child rows is also included). - -### `maxLeafRowFilterDepth` - -```tsx -maxLeafRowFilterDepth?: number -``` - -By default, filtering is done for all rows (max depth of 100), no matter if they are root level parent rows or the child leaf rows of a parent row. Setting this option to `0` will cause filtering to only be applied to the root level parent rows, with all sub-rows remaining unfiltered. Similarly, setting this option to `1` will cause filtering to only be applied to child leaf rows 1 level deep, and so on. - -This is useful for situations where you want a row's entire child hierarchy to be visible regardless of the applied filter. - -### `enableFilters` - -```tsx -enableFilters?: boolean -``` - -Enables/disables all filters for the table. - -### `manualFiltering` - -```tsx -manualFiltering?: boolean -``` - -Disables the `getFilteredRowModel` from being used to filter data. This may be useful if your table needs to dynamically support both client-side and server-side filtering. - -### `onColumnFiltersChange` - -```tsx -onColumnFiltersChange?: OnChangeFn -``` - -If provided, this function will be called with an `updaterFn` when `state.columnFilters` changes. This overrides the default internal state management, so you will need to persist the state change either fully or partially outside of the table. - -### `enableColumnFilters` - -```tsx -enableColumnFilters?: boolean -``` - -Enables/disables **all** column filters for the table. - -### `getFilteredRowModel` - -```tsx -getFilteredRowModel?: ( - table: Table -) => () => RowModel -``` - -If provided, this function is called **once** per table and should return a **new function** which will calculate and return the row model for the table when it's filtered. - -- For server-side filtering, this function is unnecessary and can be ignored since the server should already return the filtered row model. -- For client-side filtering, this function is required. A default implementation is provided via any table adapter's `{ getFilteredRowModel }` export. - -Example: - -```tsx -import { getFilteredRowModel } from '@tanstack/[adapter]-table' - - - getFilteredRowModel: createFilteredRowModel(filterFns), -}) -``` - -## Table API - -### `setColumnFilters` - -```tsx -setColumnFilters: (updater: Updater) => void -``` - -Sets or updates the `state.columnFilters` state. - -### `resetColumnFilters` - -```tsx -resetColumnFilters: (defaultState?: boolean) => void -``` - -Resets the **columnFilters** state to `initialState.columnFilters`, or `true` can be passed to force a default blank state reset to `[]`. - -### `getPreFilteredRowModel` - -```tsx -getPreFilteredRowModel: () => RowModel -``` - -Returns the row model for the table before any **column** filtering has been applied. - -### `getFilteredRowModel` - -```tsx -getFilteredRowModel: () => RowModel -``` - -Returns the row model for the table after **column** filtering has been applied. diff --git a/docs/api/features/column-ordering.md b/docs/api/features/column-ordering.md deleted file mode 100644 index 37bfb95337..0000000000 --- a/docs/api/features/column-ordering.md +++ /dev/null @@ -1,70 +0,0 @@ ---- -title: Column Ordering APIs -id: column-ordering ---- - -## State - -Column ordering state is stored on the table using the following shape: - -```tsx -export type ColumnOrderTableState = { - columnOrder: ColumnOrderState -} - -export type ColumnOrderState = string[] -``` - -## Table Options - -### `onColumnOrderChange` - -```tsx -onColumnOrderChange?: OnChangeFn -``` - -If provided, this function will be called with an `updaterFn` when `state.columnOrder` changes. This overrides the default internal state management, so you will need to persist the state change either fully or partially outside of the table. - -## Table API - -### `setColumnOrder` - -```tsx -setColumnOrder: (updater: Updater) => void -``` - -Sets or updates the `state.columnOrder` state. - -### `resetColumnOrder` - -```tsx -resetColumnOrder: (defaultState?: boolean) => void -``` - -Resets the **columnOrder** state to `initialState.columnOrder`, or `true` can be passed to force a default blank state reset to `[]`. - -## Column API - -### `getIndex` - -```tsx -getIndex: (position?: ColumnPinningPosition) => number -``` - -Returns the index of the column in the order of the visible columns. Optionally pass a `position` parameter to get the index of the column in a sub-section of the table. - -### `getIsFirstColumn` - -```tsx -getIsFirstColumn: (position?: ColumnPinningPosition) => boolean -``` - -Returns `true` if the column is the first column in the order of the visible columns. Optionally pass a `position` parameter to check if the column is the first in a sub-section of the table. - -### `getIsLastColumn` - -```tsx -getIsLastColumn: (position?: ColumnPinningPosition) => boolean -``` - -Returns `true` if the column is the last column in the order of the visible columns. Optionally pass a `position` parameter to check if the column is the last in a sub-section of the table. \ No newline at end of file diff --git a/docs/api/features/column-pinning.md b/docs/api/features/column-pinning.md deleted file mode 100644 index 6adc0b1afe..0000000000 --- a/docs/api/features/column-pinning.md +++ /dev/null @@ -1,266 +0,0 @@ ---- -title: Column Pinning APIs -id: column-pinning ---- - -## Can-Pin - -The ability for a column to be **pinned** is determined by the following: - -- `options.enablePinning` is not set to `false` -- `options.enableColumnPinning` is not set to `false` -- `columnDefinition.enablePinning` is not set to `false` - -## State - -Pinning state is stored on the table using the following shape: - -```tsx -export type ColumnPinningPosition = false | 'left' | 'right' - -export type ColumnPinningState = { - left?: string[] - right?: string[] -} - - -export type ColumnPinningTableState = { - columnPinning: ColumnPinningState -} -``` - -## Table Options - -### `enableColumnPinning` - -```tsx -enableColumnPinning?: boolean -``` - -Enables/disables column pinning for all columns in the table. - -### `onColumnPinningChange` - -```tsx -onColumnPinningChange?: OnChangeFn -``` - -If provided, this function will be called with an `updaterFn` when `state.columnPinning` changes. This overrides the default internal state management, so you will also need to supply `state.columnPinning` from your own managed state. - -## Column Def Options - -### `enablePinning` - -```tsx -enablePinning?: boolean -``` - -Enables/disables pinning for the column. - -## Table API - -### `setColumnPinning` - -```tsx -setColumnPinning: (updater: Updater) => void -``` - -Sets or updates the `state.columnPinning` state. - -### `resetColumnPinning` - -```tsx -resetColumnPinning: (defaultState?: boolean) => void -``` - -Resets the **columnPinning** state to `initialState.columnPinning`, or `true` can be passed to force a default blank state reset to `{ left: [], right: [], }`. - -### `getIsSomeColumnsPinned` - -```tsx -getIsSomeColumnsPinned: (position?: ColumnPinningPosition) => boolean -``` - -Returns whether or not any columns are pinned. Optionally specify to only check for pinned columns in either the `left` or `right` position. - -_Note: Does not account for column visibility_ - -### `getLeftHeaderGroups` - -```tsx -getLeftHeaderGroups: () => HeaderGroup[] -``` - -Returns the left pinned header groups for the table. - -### `getCenterHeaderGroups` - -```tsx -getCenterHeaderGroups: () => HeaderGroup[] -``` - -Returns the unpinned/center header groups for the table. - -### `getRightHeaderGroups` - -```tsx -getRightHeaderGroups: () => HeaderGroup[] -``` - -Returns the right pinned header groups for the table. - -### `getLeftFooterGroups` - -```tsx -getLeftFooterGroups: () => HeaderGroup[] -``` - -Returns the left pinned footer groups for the table. - -### `getCenterFooterGroups` - -```tsx -getCenterFooterGroups: () => HeaderGroup[] -``` - -Returns the unpinned/center footer groups for the table. - -### `getRightFooterGroups` - -```tsx -getRightFooterGroups: () => HeaderGroup[] -``` - -Returns the right pinned footer groups for the table. - -### `getLeftFlatHeaders` - -```tsx -getLeftFlatHeaders: () => Header[] -``` - -Returns a flat array of left pinned headers for the table, including parent headers. - -### `getCenterFlatHeaders` - -```tsx -getCenterFlatHeaders: () => Header[] -``` - -Returns a flat array of unpinned/center headers for the table, including parent headers. - -### `getRightFlatHeaders` - -```tsx -getRightFlatHeaders: () => Header[] -``` - -Returns a flat array of right pinned headers for the table, including parent headers. - -### `getLeftLeafHeaders` - -```tsx -getLeftLeafHeaders: () => Header[] -``` - -Returns a flat array of leaf-node left pinned headers for the table. - -### `getCenterLeafHeaders` - -```tsx -getCenterLeafHeaders: () => Header[] -``` - -Returns a flat array of leaf-node unpinned/center headers for the table. - -### `getRightLeafHeaders` - -```tsx -getRightLeafHeaders: () => Header[] -``` - -Returns a flat array of leaf-node right pinned headers for the table. - -### `getLeftLeafColumns` - -```tsx -getLeftLeafColumns: () => Column[] -``` - -Returns all left pinned leaf columns. - -### `getRightLeafColumns` - -```tsx -getRightLeafColumns: () => Column[] -``` - -Returns all right pinned leaf columns. - -### `getCenterLeafColumns` - -```tsx -getCenterLeafColumns: () => Column[] -``` - -Returns all center pinned (unpinned) leaf columns. - -## Column API - -### `getCanPin` - -```tsx -getCanPin: () => boolean -``` - -Returns whether or not the column can be pinned. - -### `getPinnedIndex` - -```tsx -getPinnedIndex: () => number -``` - -Returns the numeric pinned index of the column within a pinned column group. - -### `getIsPinned` - -```tsx -getIsPinned: () => ColumnPinningPosition -``` - -Returns the pinned position of the column. (`'left'`, `'right'` or `false`) - -### `pin` - -```tsx -pin: (position: ColumnPinningPosition) => void -``` - -Pins a column to the `'left'` or `'right'`, or unpins the column to the center if `false` is passed. - -## Row API - -### `getLeftVisibleCells` - -```tsx -getLeftVisibleCells: () => Cell[] -``` - -Returns all left pinned leaf cells in the row. - -### `getRightVisibleCells` - -```tsx -getRightVisibleCells: () => Cell[] -``` - -Returns all right pinned leaf cells in the row. - -### `getCenterVisibleCells` - -```tsx -getCenterVisibleCells: () => Cell[] -``` - -Returns all center pinned (unpinned) leaf cells in the row. diff --git a/docs/api/features/column-sizing.md b/docs/api/features/column-sizing.md deleted file mode 100644 index 0bf7631be8..0000000000 --- a/docs/api/features/column-sizing.md +++ /dev/null @@ -1,253 +0,0 @@ ---- -title: Column Sizing APIs -id: column-sizing ---- - -## State - -Column sizing state is stored on the table using the following shape: - -```tsx -export type ColumnSizingTableState = { - columnSizing: ColumnSizing - columnSizingInfo: ColumnSizingInfoState -} - -export type ColumnSizing = Record - -export type ColumnSizingInfoState = { - startOffset: null | number - startSize: null | number - deltaOffset: null | number - deltaPercentage: null | number - isResizingColumn: false | string - columnSizingStart: [string, number][] -} -``` - -## Column Def Options - -### `enableResizing` - -```tsx -enableResizing?: boolean -``` - -Enables or disables column resizing for the column. - -### `size` - -```tsx -size?: number -``` - -The desired size for the column - -### `minSize` - -```tsx -minSize?: number -``` - -The minimum allowed size for the column - -### `maxSize` - -```tsx -maxSize?: number -``` - -The maximum allowed size for the column - -## Column API - -### `getSize` - -```tsx -getSize: () => number -``` - -Returns the current size of the column - -### `getStart` - -```tsx -getStart: (position?: ColumnPinningPosition) => number -``` - -Returns the offset measurement along the row-axis (usually the x-axis for standard tables) for the column, measuring the size of all preceding columns. - -Useful for sticky or absolute positioning of columns. (e.g. `left` or `transform`) - -### `getAfter` - -```tsx -getAfter: (position?: ColumnPinningPosition) => number -``` - -Returns the offset measurement along the row-axis (usually the x-axis for standard tables) for the column, measuring the size of all succeeding columns. - -Useful for sticky or absolute positioning of columns. (e.g. `right` or `transform`) - -### `getCanResize` - -```tsx -getCanResize: () => boolean -``` - -Returns `true` if the column can be resized. - -### `getIsResizing` - -```tsx -getIsResizing: () => boolean -``` - -Returns `true` if the column is currently being resized. - -### `resetSize` - -```tsx -resetSize: () => void -``` - -Resets the column size to its initial size. - -## Header API - -### `getSize` - -```tsx -getSize: () => number -``` - -Returns the size for the header, calculated by summing the size of all leaf-columns that belong to it. - -### `getStart` - -```tsx -getStart: (position?: ColumnPinningPosition) => number -``` - -Returns the offset measurement along the row-axis (usually the x-axis for standard tables) for the header. This is effectively a sum of the offset measurements of all preceding headers. - -### `getResizeHandler` - -```tsx -getResizeHandler: () => (event: unknown) => void -``` - -Returns an event handler function that can be used to resize the header. It can be used as an: - -- `onMouseDown` handler -- `onTouchStart` handler - -The dragging and release events are automatically handled for you. - -## Table Options - -### `enableColumnResizing` - -```tsx -enableColumnResizing?: boolean -``` - -Enables/disables column resizing for \*all columns\*\*. - -### `columnResizeMode` - -```tsx -columnResizeMode?: 'onChange' | 'onEnd' -``` - -Determines when the columnSizing state is updated. `onChange` updates the state when the user is dragging the resize handle. `onEnd` updates the state when the user releases the resize handle. - -### `columnResizeDirection` - -```tsx -columnResizeDirection?: 'ltr' | 'rtl' -``` - -Enables or disables right-to-left support for resizing the column. defaults to 'ltr'. - -### `onColumnSizingChange` - -```tsx -onColumnSizingChange?: OnChangeFn -``` - -This optional function will be called when the columnSizing state changes. If you provide this function, you will be responsible for maintaining its state yourself. You can pass this state back to the table via the `state.columnSizing` table option. - -### `onColumnSizingInfoChange` - -```tsx -onColumnSizingInfoChange?: OnChangeFn -``` - -This optional function will be called when the columnSizingInfo state changes. If you provide this function, you will be responsible for maintaining its state yourself. You can pass this state back to the table via the `state.columnSizingInfo` table option. - -## Table API - -### `setColumnSizing` - -```tsx -setColumnSizing: (updater: Updater) => void -``` - -Sets the column sizing state using an updater function or a value. This will trigger the underlying `onColumnSizingChange` function if one is passed to the table options, otherwise the state will be managed automatically by the table. - -### `setColumnSizingInfo` - -```tsx -setColumnSizingInfo: (updater: Updater) => void -``` - -Sets the column sizing info state using an updater function or a value. This will trigger the underlying `onColumnSizingInfoChange` function if one is passed to the table options, otherwise the state will be managed automatically by the table. - -### `resetColumnSizing` - -```tsx -resetColumnSizing: (defaultState?: boolean) => void -``` - -Resets column sizing to its initial state. If `defaultState` is `true`, the default state for the table will be used instead of the initialValue provided to the table. - -### `resetHeaderSizeInfo` - -```tsx -resetHeaderSizeInfo: (defaultState?: boolean) => void -``` - -Resets column sizing info to its initial state. If `defaultState` is `true`, the default state for the table will be used instead of the initialValue provided to the table. - -### `getTotalSize` - -```tsx -getTotalSize: () => number -``` - -Returns the total size of the table by calculating the sum of the sizes of all leaf-columns. - -### `getLeftTotalSize` - -```tsx -getLeftTotalSize: () => number -``` - -If pinning, returns the total size of the left portion of the table by calculating the sum of the sizes of all left leaf-columns. - -### `getCenterTotalSize` - -```tsx -getCenterTotalSize: () => number -``` - -If pinning, returns the total size of the center portion of the table by calculating the sum of the sizes of all unpinned/center leaf-columns. - -### `getRightTotalSize` - -```tsx -getRightTotalSize: () => number -``` - -If pinning, returns the total size of the right portion of the table by calculating the sum of the sizes of all right leaf-columns. diff --git a/docs/api/features/column-visibility.md b/docs/api/features/column-visibility.md deleted file mode 100644 index b0c8686a7a..0000000000 --- a/docs/api/features/column-visibility.md +++ /dev/null @@ -1,178 +0,0 @@ ---- -title: Column Visibility APIs -id: column-visibility ---- - -## State - -Column visibility state is stored on the table using the following shape: - -```tsx -export type ColumnVisibilityState = Record - -export type VisibilityTableState = { - columnVisibility: ColumnVisibilityState -} -``` - -## Column Def Options - -### `enableHiding` - -```tsx -enableHiding?: boolean -``` - -Enables/disables hiding the column - -## Column API - -### `getCanHide` - -```tsx -getCanHide: () => boolean -``` - -Returns whether the column can be hidden - -### `getIsVisible` - -```tsx -getIsVisible: () => boolean -``` - -Returns whether the column is visible - -### `toggleVisibility` - -```tsx -toggleVisibility: (value?: boolean) => void -``` - -Toggles the column visibility - -### `getToggleVisibilityHandler` - -```tsx -getToggleVisibilityHandler: () => (event: unknown) => void -``` - -Returns a function that can be used to toggle the column visibility. This function can be used to bind to an event handler to a checkbox. - -## Table Options - -### `onColumnVisibilityChange` - -```tsx -onColumnVisibilityChange?: OnChangeFn -``` - -If provided, this function will be called with an `updaterFn` when `state.columnVisibility` changes. This overrides the default internal state management, so you will need to persist the state change either fully or partially outside of the table. - -### `enableHiding` - -```tsx -enableHiding?: boolean -``` - -Enables/disables hiding of columns. - -## Table API - -### `getVisibleFlatColumns` - -```tsx -getVisibleFlatColumns: () => Column[] -``` - -Returns a flat array of columns that are visible, including parent columns. - -### `getVisibleLeafColumns` - -```tsx -getVisibleLeafColumns: () => Column[] -``` - -Returns a flat array of leaf-node columns that are visible. - -### `getLeftVisibleLeafColumns` - -```tsx -getLeftVisibleLeafColumns: () => Column[] -``` - -If column pinning, returns a flat array of leaf-node columns that are visible in the left portion of the table. - -### `getRightVisibleLeafColumns` - -```tsx -getRightVisibleLeafColumns: () => Column[] -``` - -If column pinning, returns a flat array of leaf-node columns that are visible in the right portion of the table. - -### `getCenterVisibleLeafColumns` - -```tsx -getCenterVisibleLeafColumns: () => Column[] -``` - -If column pinning, returns a flat array of leaf-node columns that are visible in the unpinned/center portion of the table. - -### `setColumnVisibility` - -```tsx -setColumnVisibility: (updater: Updater) => void -``` - -Updates the column visibility state via an updater function or value - -### `resetColumnVisibility` - -```tsx -resetColumnVisibility: (defaultState?: boolean) => void -``` - -Resets the column visibility state to the initial state. If `defaultState` is provided, the state will be reset to `{}` - -### `toggleAllColumnsVisible` - -```tsx -toggleAllColumnsVisible: (value?: boolean) => void -``` - -Toggles the visibility of all columns - -### `getIsAllColumnsVisible` - -```tsx -getIsAllColumnsVisible: () => boolean -``` - -Returns whether all columns are visible - -### `getIsSomeColumnsVisible` - -```tsx -getIsSomeColumnsVisible: () => boolean -``` - -Returns whether some columns are visible - -### `getToggleAllColumnsVisibilityHandler` - -```tsx -getToggleAllColumnsVisibilityHandler: () => ((event: unknown) => void) -``` - -Returns a handler for toggling the visibility of all columns, meant to be bound to a `input[type=checkbox]` element. - -## Row API - -### `getVisibleCells` - -```tsx -getVisibleCells: () => Cell[] -``` - -Returns an array of cells that account for column visibility for the row. \ No newline at end of file diff --git a/docs/api/features/expanding.md b/docs/api/features/expanding.md deleted file mode 100644 index d838513064..0000000000 --- a/docs/api/features/expanding.md +++ /dev/null @@ -1,208 +0,0 @@ ---- -title: Expanding APIs -id: expanding ---- - -## State - -Expanding state is stored on the table using the following shape: - -```tsx -export type ExpandedState = true | Record - -export type ExpandedTableState = { - expanded: ExpandedState -} -``` - -## Row API - -### `toggleExpanded` - -```tsx -toggleExpanded: (expanded?: boolean) => void -``` - -Toggles the expanded state (or sets it if `expanded` is provided) for the row. - -### `getIsExpanded` - -```tsx -getIsExpanded: () => boolean -``` - -Returns whether the row is expanded. - -### `getIsAllParentsExpanded` - -```tsx -getIsAllParentsExpanded: () => boolean -``` - -Returns whether all parent rows of the row are expanded. - -### `getCanExpand` - -```tsx -getCanExpand: () => boolean -``` - -Returns whether the row can be expanded. - -### `getToggleExpandedHandler` - -```tsx -getToggleExpandedHandler: () => () => void -``` - -Returns a function that can be used to toggle the expanded state of the row. This function can be used to bind to an event handler to a button. - -## Table Options - -### `manualExpanding` - -```tsx -manualExpanding?: boolean -``` - -Enables manual row expansion. If this is set to `true`, `getExpandedRowModel` will not be used to expand rows and you would be expected to perform the expansion in your own data model. This is useful if you are doing server-side expansion. - -### `onExpandedChange` - -```tsx -onExpandedChange?: OnChangeFn -``` - -This function is called when the `expanded` table state changes. If a function is provided, you will be responsible for managing this state on your own. To pass the managed state back to the table, use the `tableOptions.state.expanded` option. - -### `autoResetExpanded` - -```tsx -autoResetExpanded?: boolean -``` - -Enable this setting to automatically reset the expanded state of the table when expanding state changes. - -### `enableExpanding` - -```tsx -enableExpanding?: boolean -``` - -Enable/disable expanding for all rows. - -### `getExpandedRowModel` - -```tsx -getExpandedRowModel?: (table: Table) => () => RowModel -``` - -This function is responsible for returning the expanded row model. If this function is not provided, the table will not expand rows. You can use the default exported `getExpandedRowModel` function to get the expanded row model or implement your own. - -### `getIsRowExpanded` - -```tsx -getIsRowExpanded?: (row: Row) => boolean -``` - -If provided, allows you to override the default behavior of determining whether a row is currently expanded. - -### `getRowCanExpand` - -```tsx -getRowCanExpand?: (row: Row) => boolean -``` - -If provided, allows you to override the default behavior of determining whether a row can be expanded. - -### `paginateExpandedRows` - -```tsx -paginateExpandedRows?: boolean -``` - -If `true` expanded rows will be paginated along with the rest of the table (which means expanded rows may span multiple pages). - -If `false` expanded rows will not be considered for pagination (which means expanded rows will always render on their parents page. This also means more rows will be rendered than the set page size) - -## Table API - -### `setExpanded` - -```tsx -setExpanded: (updater: Updater) => void -``` - -Updates the expanded state of the table via an update function or value - -### `toggleAllRowsExpanded` - -```tsx -toggleAllRowsExpanded: (expanded?: boolean) => void -``` - -Toggles the expanded state for all rows. Optionally, provide a value to set the expanded state to. - -### `resetExpanded` - -```tsx -resetExpanded: (defaultState?: boolean) => void -``` - -Reset the expanded state of the table to the initial state. If `defaultState` is provided, the expanded state will be reset to `{}` - -### `getCanSomeRowsExpand` - -```tsx -getCanSomeRowsExpand: () => boolean -``` - -Returns whether there are any rows that can be expanded. - -### `getToggleAllRowsExpandedHandler` - -```tsx -getToggleAllRowsExpandedHandler: () => (event: unknown) => void -``` - -Returns a handler that can be used to toggle the expanded state of all rows. This handler is meant to be used with an `input[type=checkbox]` element. - -### `getIsSomeRowsExpanded` - -```tsx -getIsSomeRowsExpanded: () => boolean -``` - -Returns whether there are any rows that are currently expanded. - -### `getIsAllRowsExpanded` - -```tsx -getIsAllRowsExpanded: () => boolean -``` - -Returns whether all rows are currently expanded. - -### `getExpandedDepth` - -```tsx -getExpandedDepth: () => number -``` - -Returns the maximum depth of the expanded rows. - -### `getExpandedRowModel` - -```tsx -getExpandedRowModel: () => RowModel -``` - -Returns the row model after expansion has been applied. - -### `getPreExpandedRowModel` - -```tsx -getPreExpandedRowModel: () => RowModel -``` - -Returns the row model before expansion has been applied. diff --git a/docs/api/features/filters.md b/docs/api/features/filters.md deleted file mode 100644 index c7c05fcd73..0000000000 --- a/docs/api/features/filters.md +++ /dev/null @@ -1,13 +0,0 @@ ---- -title: Filter APIs -id: filters ---- - - - -The Filtering API docs are now split into multiple API doc pages: - -- [Column Faceting](../column-faceting) -- [Global Faceting](../global-faceting) -- [Column Filtering](../column-filtering) -- [Global Filtering](../global-filtering) \ No newline at end of file diff --git a/docs/api/features/global-faceting.md b/docs/api/features/global-faceting.md deleted file mode 100644 index 489571e1c4..0000000000 --- a/docs/api/features/global-faceting.md +++ /dev/null @@ -1,30 +0,0 @@ ---- -title: Global Faceting APIs -id: global-faceting ---- - -## Table API - -### `getGlobalFacetedRowModel` - -```tsx -getGlobalFacetedRowModel: () => RowModel -``` - -Returns the faceted row model for the global filter. - -### `getGlobalFacetedUniqueValues` - -```tsx -getGlobalFacetedUniqueValues: () => Map -``` - -Returns the faceted unique values for the global filter. - -### `getGlobalFacetedMinMaxValues` - -```tsx -getGlobalFacetedMinMaxValues: () => [number, number] -``` - -Returns the faceted min and max values for the global filter. diff --git a/docs/api/features/global-filtering.md b/docs/api/features/global-filtering.md deleted file mode 100644 index fe8d23b297..0000000000 --- a/docs/api/features/global-filtering.md +++ /dev/null @@ -1,290 +0,0 @@ ---- -title: Global Filtering APIs -id: global-filtering ---- - -## Can-Filter - -The ability for a column to be **globally** filtered is determined by the following: - -- The column was defined a valid `accessorKey`/`accessorFn`. -- If provided, `options.getColumnCanGlobalFilter` returns `true` for the given column. If it is not provided, the column is assumed to be globally filterable if the value in the first row is a `string` or `number` type. -- `column.enableColumnFilter` is not set to `false` -- `options.enableColumnFilters` is not set to `false` -- `options.enableFilters` is not set to `false` - -## State - -Filter state is stored on the table using the following shape: - -```tsx -export interface GlobalFilterTableState { - globalFilter: any -} -``` - -## Filter Functions - -You can use the same filter functions that are available for column filtering for global filtering. See the [Column Filtering APIs](../column-filtering) to learn more about filter functions. - -#### Using Filter Functions - -Filter functions can be used/referenced/defined by passing the following to `options.globalFilterFn`: - -- A `string` that references a built-in filter function -- A function directly provided to the `options.globalFilterFn` option - -The final list of filter functions available for the `tableOptions.globalFilterFn` options use the following type: - -```tsx -export type FilterFnOption = - | 'auto' - | BuiltInFilterFn - | FilterFn -``` - -#### Filter Meta - -Filtering data can often expose additional information about the data that can be used to aid other future operations on the same data. A good example of this concept is a ranking-system like that of [`match-sorter`](https://github.com/kentcdodds/match-sorter) that simultaneously ranks, filters and sorts data. While utilities like `match-sorter` make a lot of sense for single-dimensional filter+sort tasks, the decoupled filtering/sorting architecture of building a table makes them very difficult and slow to use. - -To make a ranking/filtering/sorting system work with tables, `filterFn`s can optionally mark results with a **filter meta** value that can be used later to sort/group/etc the data to your liking. This is done by calling the `addMeta` function supplied to your custom `filterFn`. - -Below is an example using our own `match-sorter-utils` package (a utility fork of `match-sorter`) to rank, filter, and sort the data - -```tsx -import { sortFns } from '@tanstack/[adapter]-table' -import { rankItem, compareItems } from '@tanstack/match-sorter-utils' - -const fuzzyFilter = (row, columnId, value, addMeta) => { - // Rank the item - const itemRank = rankItem(row.getValue(columnId), value) - - // Store the ranking info - addMeta(itemRank) - - // Return if the item should be filtered in/out - return itemRank.passed -} - -const fuzzySort = (rowA, rowB, columnId) => { - let dir = 0 - - // Only sort by rank if the column has ranking information - if (rowA.columnFiltersMeta[columnId]) { - dir = compareItems( - rowA.columnFiltersMeta[columnId]!, - rowB.columnFiltersMeta[columnId]! - ) - } - - // Provide an alphanumeric fallback for when the item ranks are equal - return dir === 0 ? sortFns.alphanumeric(rowA, rowB, columnId) : dir -} -``` - -## Column Def Options - -### `enableGlobalFilter` - -```tsx -enableGlobalFilter?: boolean -``` - -Enables/disables the **global** filter for this column. - -## Column API - -### `getCanGlobalFilter` - -```tsx -getCanGlobalFilter: () => boolean -``` - -Returns whether or not the column can be **globally** filtered. Set to `false` to disable a column from being scanned during global filtering. - -## Row API - -### `columnFiltersMeta` - -```tsx -columnFiltersMeta: Record -``` - -The column filters meta map for the row. This object tracks any filter meta for a row as optionally provided during the filtering process. - -## Table Options - -### `filterFns` - -```tsx -filterFns?: Record -``` - -This option allows you to define custom filter functions that can be referenced in a column's `filterFn` option by their key. -Example: - -```tsx -declare module '@tanstack/table-core' { - interface FilterFns { - myCustomFilter: FilterFn - } -} - -const column = columnHelper.data('key', { - filterFn: 'myCustomFilter', -}) - -const table = useTable({ - columns: [column], - filterFns: { - myCustomFilter: (rows, columnIds, filterValue) => { - // return the filtered rows - }, - }, -}) -``` - -### `filterFromLeafRows` - -```tsx -filterFromLeafRows?: boolean -``` - -By default, filtering is done from parent rows down (so if a parent row is filtered out, all of its children will be filtered out as well). Setting this option to `true` will cause filtering to be done from leaf rows up (which means parent rows will be included so long as one of their child or grand-child rows is also included). - -### `maxLeafRowFilterDepth` - -```tsx -maxLeafRowFilterDepth?: number -``` - -By default, filtering is done for all rows (max depth of 100), no matter if they are root level parent rows or the child leaf rows of a parent row. Setting this option to `0` will cause filtering to only be applied to the root level parent rows, with all sub-rows remaining unfiltered. Similarly, setting this option to `1` will cause filtering to only be applied to child leaf rows 1 level deep, and so on. - -This is useful for situations where you want a row's entire child hierarchy to be visible regardless of the applied filter. - -### `enableFilters` - -```tsx -enableFilters?: boolean -``` - -Enables/disables all filters for the table. - -### `manualFiltering` - -```tsx -manualFiltering?: boolean -``` - -Disables the `getFilteredRowModel` from being used to filter data. This may be useful if your table needs to dynamically support both client-side and server-side filtering. - -### `getFilteredRowModel` - -```tsx -getFilteredRowModel?: ( - table: Table -) => () => RowModel -``` - -If provided, this function is called **once** per table and should return a **new function** which will calculate and return the row model for the table when it's filtered. - -- For server-side filtering, this function is unnecessary and can be ignored since the server should already return the filtered row model. -- For client-side filtering, this function is required. A default implementation is provided via any table adapter's `{ getFilteredRowModel }` export. - -Example: - -```tsx -import { getFilteredRowModel } from '@tanstack/[adapter]-table' - - getFilteredRowModel: createFilteredRowModel(filterFns), -}) -``` - -### `globalFilterFn` - -```tsx -globalFilterFn?: FilterFn | keyof FilterFns | keyof BuiltInFilterFns -``` - -The filter function to use for global filtering. - -Options: - -- A `string` referencing a [built-in filter function](#filter-functions)) -- A `string` that references a custom filter functions provided via the `tableOptions.filterFns` option -- A [custom filter function](#filter-functions) - -### `onGlobalFilterChange` - -```tsx -onGlobalFilterChange?: OnChangeFn -``` - -If provided, this function will be called with an `updaterFn` when `state.globalFilter` changes. This overrides the default internal state management, so you will need to persist the state change either fully or partially outside of the table. - -### `enableGlobalFilter` - -```tsx -enableGlobalFilter?: boolean -``` - -Enables/disables the global filter for the table. - -### `getColumnCanGlobalFilter` - -```tsx -getColumnCanGlobalFilter?: (column: Column) => boolean -``` - -If provided, this function will be called with the column and should return `true` or `false` to indicate whether this column should be used for global filtering. -This is useful if the column can contain data that is not `string` or `number` (i.e. `undefined`). - -## Table API - -### `getPreFilteredRowModel` - -```tsx -getPreFilteredRowModel: () => RowModel -``` - -Returns the row model for the table before any **column** filtering has been applied. - -### `getFilteredRowModel` - -```tsx -getFilteredRowModel: () => RowModel -``` - -Returns the row model for the table after **column** filtering has been applied. - -### `setGlobalFilter` - -```tsx -setGlobalFilter: (updater: Updater) => void -``` - -Sets or updates the `state.globalFilter` state. - -### `resetGlobalFilter` - -```tsx -resetGlobalFilter: (defaultState?: boolean) => void -``` - -Resets the **globalFilter** state to `initialState.globalFilter`, or `true` can be passed to force a default blank state reset to `undefined`. - -### `getGlobalAutoFilterFn` - -```tsx -getGlobalAutoFilterFn: (columnId: string) => FilterFn | undefined -``` - -Currently, this function returns the built-in `includesString` filter function. In future releases, it may return more dynamic filter functions based on the nature of the data provided. - -### `getGlobalFilterFn` - -```tsx -getGlobalFilterFn: (columnId: string) => FilterFn | undefined -``` - -Returns the global filter function (either user-defined or automatic, depending on configuration) for the table. diff --git a/docs/api/features/grouping.md b/docs/api/features/grouping.md deleted file mode 100644 index f2c9776c60..0000000000 --- a/docs/api/features/grouping.md +++ /dev/null @@ -1,353 +0,0 @@ ---- -title: Grouping APIs -id: grouping ---- - -## State - -Grouping state is stored on the table using the following shape: - -```tsx -export type GroupingState = string[] - -export type GroupingTableState = { - grouping: GroupingState -} -``` - -## Aggregation Functions - -The following aggregation functions are built-in to the table core: - -- `sum` - - Sums the values of a group of rows -- `min` - - Finds the minimum value of a group of rows -- `max` - - Finds the maximum value of a group of rows -- `extent` - - Finds the minimum and maximum values of a group of rows -- `mean` - - Finds the mean/average value of a group of rows -- `median` - - Finds the median value of a group of rows -- `unique` - - Finds the unique values of a group of rows -- `uniqueCount` - - Finds the number of unique values of a group of rows -- `count` - - Calculates the number of rows in a group - -Every grouping function receives: - -- A function to retrieve the leaf values of the groups rows -- A function to retrieve the immediate-child values of the groups rows - -and should return a value (usually primitive) to build the aggregated row model. - -This is the type signature for every aggregation function: - -```tsx -export type AggregationFn = ( - getLeafRows: () => Row[], - getChildRows: () => Row[] -) => any -``` - -#### Using Aggregation Functions - -Aggregation functions can be used/referenced/defined by passing the following to `columnDefinition.aggregationFn`: - -- A `string` that references a built-in aggregation function -- A `string` that references a custom aggregation functions provided via the `tableOptions.aggregationFns` option -- A function directly provided to the `columnDefinition.aggregationFn` option - -The final list of aggregation functions available for the `columnDef.aggregationFn` use the following type: - -```tsx -export type AggregationFnOption = - | 'auto' - | keyof AggregationFns - | BuiltInAggregationFn - | AggregationFn -``` - -## Column Def Options - -### `aggregationFn` - -```tsx -aggregationFn?: AggregationFn | keyof AggregationFns | keyof BuiltInAggregationFns -``` - -The aggregation function to use with this column. - -Options: - -- A `string` referencing a [built-in aggregation function](#aggregation-functions)) -- A [custom aggregation function](#aggregation-functions) - -### `aggregatedCell` - -```tsx -aggregatedCell?: Renderable< - { - table: Table - row: Row - column: Column - cell: Cell - getValue: () => any - renderValue: () => any - } -> -``` - -The cell to display each row for the column if the cell is an aggregate. If a function is passed, it will be passed a props object with the context of the cell and should return the property type for your adapter (the exact type depends on the adapter being used). - -### `enableGrouping` - -```tsx -enableGrouping?: boolean -``` - -Enables/disables grouping for this column. - -### `getGroupingValue` - -```tsx -getGroupingValue?: (row: TData) => any -``` - -Specify a value to be used for grouping rows on this column. If this option is not specified, the value derived from `accessorKey` / `accessorFn` will be used instead. - -## Column API - -### `aggregationFn` - -```tsx -aggregationFn?: AggregationFnOption -``` - -The resolved aggregation function for the column. - -### `getCanGroup` - -```tsx -getCanGroup: () => boolean -``` - -Returns whether or not the column can be grouped. - -### `getIsGrouped` - -```tsx -getIsGrouped: () => boolean -``` - -Returns whether or not the column is currently grouped. - -### `getGroupedIndex` - -```tsx -getGroupedIndex: () => number -``` - -Returns the index of the column in the grouping state. - -### `toggleGrouping` - -```tsx -toggleGrouping: () => void -``` - -Toggles the grouping state of the column. - -### `getToggleGroupingHandler` - -```tsx -getToggleGroupingHandler: () => () => void -``` - -Returns a function that toggles the grouping state of the column. This is useful for passing to the `onClick` prop of a button. - -### `getAutoAggregationFn` - -```tsx -getAutoAggregationFn: () => AggregationFn | undefined -``` - -Returns the automatically inferred aggregation function for the column. - -### `getAggregationFn` - -```tsx -getAggregationFn: () => AggregationFn | undefined -``` - -Returns the aggregation function for the column. - -## Row API - -### `groupingColumnId` - -```tsx -groupingColumnId?: string -``` - -If this row is grouped, this is the id of the column that this row is grouped by. - -### `groupingValue` - -```tsx -groupingValue?: any -``` - -If this row is grouped, this is the unique/shared value for the `groupingColumnId` for all of the rows in this group. - -### `getIsGrouped` - -```tsx -getIsGrouped: () => boolean -``` - -Returns whether or not the row is currently grouped. - -### `getGroupingValue` - -```tsx -getGroupingValue: (columnId: string) => unknown -``` - -Returns the grouping value for any row and column (including leaf rows). - -## Table Options - -### `aggregationFns` - -```tsx -aggregationFns?: Record -``` - -This option allows you to define custom aggregation functions that can be referenced in a column's `aggregationFn` option by their key. -Example: - -```tsx -declare module '@tanstack/table-core' { - interface AggregationFns { - myCustomAggregation: AggregationFn - } -} - -const column = columnHelper.data('key', { - aggregationFn: 'myCustomAggregation', -}) - -const table = useTable({ - columns: [column], - aggregationFns: { - myCustomAggregation: (columnId, leafRows, childRows) => { - // return the aggregated value - }, - }, -}) -``` - -### `manualGrouping` - -```tsx -manualGrouping?: boolean -``` - -Enables manual grouping. If this option is set to `true`, the table will not automatically group rows using `getGroupedRowModel()` and instead will expect you to manually group the rows before passing them to the table. This is useful if you are doing server-side grouping and aggregation. - -### `onGroupingChange` - -```tsx -onGroupingChange?: OnChangeFn -``` - -If this function is provided, it will be called when the grouping state changes and you will be expected to manage the state yourself. You can pass the managed state back to the table via the `tableOptions.state.grouping` option. - -### `enableGrouping` - -```tsx -enableGrouping?: boolean -``` - -Enables/disables grouping for all columns. - -### `getGroupedRowModel` - -```tsx -getGroupedRowModel?: (table: Table) => () => RowModel -``` - -Returns the row model after grouping has taken place, but no further. - -### `groupedColumnMode` - -```tsx -groupedColumnMode?: false | 'reorder' | 'remove' // default: `reorder` -``` - -Grouping columns are automatically reordered by default to the start of the columns list. If you would rather remove them or leave them as-is, set the appropriate mode here. - -## Table API - -### `setGrouping` - -```tsx -setGrouping: (updater: Updater) => void -``` - -Sets or updates the `state.grouping` state. - -### `resetGrouping` - -```tsx -resetGrouping: (defaultState?: boolean) => void -``` - -Resets the **grouping** state to `initialState.grouping`, or `true` can be passed to force a default blank state reset to `[]`. - -### `getPreGroupedRowModel` - -```tsx -getPreGroupedRowModel: () => RowModel -``` - -Returns the row model for the table before any grouping has been applied. - -### `getGroupedRowModel` - -```tsx -getGroupedRowModel: () => RowModel -``` - -Returns the row model for the table after grouping has been applied. - -## Cell API - -### `getIsAggregated` - -```tsx -getIsAggregated: () => boolean -``` - -Returns whether or not the cell is currently aggregated. - -### `getIsGrouped` - -```tsx -getIsGrouped: () => boolean -``` - -Returns whether or not the cell is currently grouped. - -### `getIsPlaceholder` - -```tsx -getIsPlaceholder: () => boolean -``` - -Returns whether or not the cell is currently a placeholder. \ No newline at end of file diff --git a/docs/api/features/pagination.md b/docs/api/features/pagination.md deleted file mode 100644 index 0befc42a21..0000000000 --- a/docs/api/features/pagination.md +++ /dev/null @@ -1,207 +0,0 @@ ---- -title: Pagination APIs -id: pagination ---- - -## State - -Pagination state is stored on the table using the following shape: - -```tsx -export type PaginationState = { - pageIndex: number - pageSize: number -} - -export type PaginationTableState = { - pagination: PaginationState -} - -export type PaginationInitialTableState = { - pagination?: Partial -} -``` - -## Table Options - -### `manualPagination` - -```tsx -manualPagination?: boolean -``` - -Enables manual pagination. If this option is set to `true`, the table will not automatically paginate rows using `getPaginatedRowModel()` and instead will expect you to manually paginate the rows before passing them to the table. This is useful if you are doing server-side pagination and aggregation. - -### `pageCount` - -```tsx -pageCount?: number -``` - -When manually controlling pagination, you can supply a total `pageCount` value to the table if you know it. If you do not know how many pages there are, you can set this to `-1`. Alternatively, you can provide a `rowCount` value and the table will calculate the `pageCount` internally. - -### `rowCount` - -```tsx -rowCount?: number -``` - -When manually controlling pagination, you can supply a total `rowCount` value to the table if you know it. `pageCount` will be calculated internally from `rowCount` and `pageSize`. - -### `autoResetPageIndex` - -```tsx -autoResetPageIndex?: boolean -``` - -If set to `true`, pagination will be reset to the first page when page-altering state changes eg. `data` is updated, filters change, grouping changes, etc. - -> 🧠 Note: This option defaults to `false` if `manualPagination` is set to `true` - -### `onPaginationChange` - -```tsx -onPaginationChange?: OnChangeFn -``` - -If this function is provided, it will be called when the pagination state changes and you will be expected to manage the state yourself. You can pass the managed state back to the table via the `tableOptions.state.pagination` option. - -### `getPaginatedRowModel` - -```tsx -getPaginatedRowModel?: (table: Table) => () => RowModel -``` - -Returns the row model after pagination has taken place, but no further. - -Pagination columns are automatically reordered by default to the start of the columns list. If you would rather remove them or leave them as-is, set the appropriate mode here. - -## Table API - -### `setPagination` - -```tsx -setPagination: (updater: Updater) => void -``` - -Sets or updates the `state.pagination` state. - -### `resetPagination` - -```tsx -resetPagination: (defaultState?: boolean) => void -``` - -Resets the **pagination** state to `initialState.pagination`, or `true` can be passed to force a default blank state reset to `[]`. - -### `setPageIndex` - -```tsx -setPageIndex: (updater: Updater) => void -``` - -Updates the page index using the provided function or value. - -### `resetPageIndex` - -```tsx -resetPageIndex: (defaultState?: boolean) => void -``` - -Resets the page index to its initial state. If `defaultState` is `true`, the page index will be reset to `0` regardless of initial state. - -### `setPageSize` - -```tsx -setPageSize: (updater: Updater) => void -``` - -Updates the page size using the provided function or value. - -### `resetPageSize` - -```tsx -resetPageSize: (defaultState?: boolean) => void -``` - -Resets the page size to its initial state. If `defaultState` is `true`, the page size will be reset to `10` regardless of initial state. - -### `getPageOptions` - -```tsx -getPageOptions: () => number[] -``` - -Returns an array of page options (zero-index-based) for the current page size. - -### `getCanPreviousPage` - -```tsx -getCanPreviousPage: () => boolean -``` - -Returns whether the table can go to the previous page. - -### `getCanNextPage` - -```tsx -getCanNextPage: () => boolean -``` - -Returns whether the table can go to the next page. - -### `previousPage` - -```tsx -previousPage: () => void -``` - -Decrements the page index by one, if possible. - -### `nextPage` - -```tsx -nextPage: () => void -``` - -Increments the page index by one, if possible. - -### `firstPage` - -```tsx -firstPage: () => void -``` - -Sets the page index to `0`. - -### `lastPage` - -```tsx -lastPage: () => void -``` - -Sets the page index to the last available page. - -### `getPageCount` - -```tsx -getPageCount: () => number -``` - -Returns the page count. If manually paginating or controlling the pagination state, this will come directly from the `options.pageCount` table option, otherwise it will be calculated from the table data using the total row count and current page size. - -### `getPrePaginatedRowModel` - -```tsx -getPrePaginatedRowModel: () => RowModel -``` - -Returns the row model for the table before any pagination has been applied. - -### `getPaginatedRowModel` - -```tsx -getPaginatedRowModel: () => RowModel -``` - -Returns the row model for the table after pagination has been applied. diff --git a/docs/api/features/pinning.md b/docs/api/features/pinning.md deleted file mode 100644 index 92222ac7fe..0000000000 --- a/docs/api/features/pinning.md +++ /dev/null @@ -1,11 +0,0 @@ ---- -title: Pinning APIs -id: pinning ---- - - - -The pinning apis are now split into multiple api pages: - -- [Column Pinning](../column-pinning) -- [Row Pinning](../row-pinning) \ No newline at end of file diff --git a/docs/api/features/row-pinning.md b/docs/api/features/row-pinning.md deleted file mode 100644 index 8f06c07db1..0000000000 --- a/docs/api/features/row-pinning.md +++ /dev/null @@ -1,138 +0,0 @@ ---- -title: Row Pinning APIs -id: row-pinning ---- - -## Can-Pin - -The ability for a row to be **pinned** is determined by the following: - -- `options.enableRowPinning` resolves to `true` -- `options.enablePinning` is not set to `false` - -## State - -Pinning state is stored on the table using the following shape: - -```tsx -export type RowPinningPosition = false | 'top' | 'bottom' - -export type RowPinningState = { - top?: string[] - bottom?: string[] -} - -export type RowPinningRowState = { - rowPinning: RowPinningState -} -``` - -## Table Options - -### `enableRowPinning` - -```tsx -enableRowPinning?: boolean | ((row: Row) => boolean) -``` - -Enables/disables row pinning for all rows in the table. - -### `keepPinnedRows` - -```tsx -keepPinnedRows?: boolean -``` - -When `false`, pinned rows will not be visible if they are filtered or paginated out of the table. When `true`, pinned rows will always be visible regardless of filtering or pagination. Defaults to `true`. - -### `onRowPinningChange` - -```tsx -onRowPinningChange?: OnChangeFn -``` - -If provided, this function will be called with an `updaterFn` when `state.rowPinning` changes. This overrides the default internal state management, so you will also need to supply `state.rowPinning` from your own managed state. - -## Table API - -### `setRowPinning` - -```tsx -setRowPinning: (updater: Updater) => void -``` - -Sets or updates the `state.rowPinning` state. - -### `resetRowPinning` - -```tsx -resetRowPinning: (defaultState?: boolean) => void -``` - -Resets the **rowPinning** state to `initialState.rowPinning`, or `true` can be passed to force a default blank state reset to `{}`. - -### `getIsSomeRowsPinned` - -```tsx -getIsSomeRowsPinned: (position?: RowPinningPosition) => boolean -``` - -Returns whether or not any rows are pinned. Optionally specify to only check for pinned rows in either the `top` or `bottom` position. - -### `getTopRows` - -```tsx -getTopRows: () => Row[] -``` - -Returns all top pinned rows. - -### `getBottomRows` - -```tsx -getBottomRows: () => Row[] -``` - -Returns all bottom pinned rows. - -### `getCenterRows` - -```tsx -getCenterRows: () => Row[] -``` - -Returns all rows that are not pinned to the top or bottom. - -## Row API - -### `pin` - -```tsx -pin: (position: RowPinningPosition) => void -``` - -Pins a row to the `'top'` or `'bottom'`, or unpins the row to the center if `false` is passed. - -### `getCanPin` - -```tsx -getCanPin: () => boolean -``` - -Returns whether or not the row can be pinned. - -### `getIsPinned` - -```tsx -getIsPinned: () => RowPinningPosition -``` - -Returns the pinned position of the row. (`'top'`, `'bottom'` or `false`) - -### `getPinnedIndex` - -```tsx -getPinnedIndex: () => number -``` - -Returns the numeric pinned index of the row within a pinned row group. \ No newline at end of file diff --git a/docs/api/features/row-selection.md b/docs/api/features/row-selection.md deleted file mode 100644 index 5b488dccce..0000000000 --- a/docs/api/features/row-selection.md +++ /dev/null @@ -1,230 +0,0 @@ ---- -title: Row Selection APIs -id: row-selection ---- - -## State - -Row selection state is stored on the table using the following shape: - -```tsx -export type RowSelectionState = Record - -export type RowSelectionTableState = { - rowSelection: RowSelectionState -} -``` - -By default, the row selection state uses the index of each row as the row identifiers. Row selection state can instead be tracked with a custom unique row id by passing in a custom [getRowId](../../../api/core/table.md#getrowid) function to the the table. - -## Table Options - -### `enableRowSelection` - -```tsx -enableRowSelection?: boolean | ((row: Row) => boolean) -``` - -- Enables/disables row selection for all rows in the table OR -- A function that given a row, returns whether to enable/disable row selection for that row - -### `enableMultiRowSelection` - -```tsx -enableMultiRowSelection?: boolean | ((row: Row) => boolean) -``` - -- Enables/disables multiple row selection for all rows in the table OR -- A function that given a row, returns whether to enable/disable multiple row selection for that row's children/grandchildren - -### `enableSubRowSelection` - -```tsx -enableSubRowSelection?: boolean | ((row: Row) => boolean) -``` - -Enables/disables automatic sub-row selection when a parent row is selected, or a function that enables/disables automatic sub-row selection for each row. - -(Use in combination with expanding or grouping features) - -### `onRowSelectionChange` - -```tsx -onRowSelectionChange?: OnChangeFn -``` - -If provided, this function will be called with an `updaterFn` when `state.rowSelection` changes. This overrides the default internal state management, so you will need to persist the state change either fully or partially outside of the table. - -## Table API - -### `getToggleAllRowsSelectedHandler` - -```tsx -getToggleAllRowsSelectedHandler: () => (event: unknown) => void -``` - -Returns a handler that can be used to toggle all rows in the table. - -### `getToggleAllPageRowsSelectedHandler` - -```tsx -getToggleAllPageRowsSelectedHandler: () => (event: unknown) => void -``` - -Returns a handler that can be used to toggle all rows on the current page. - -### `setRowSelection` - -```tsx -setRowSelection: (updater: Updater) => void -``` - -Sets or updates the `state.rowSelection` state. - -### `resetRowSelection` - -```tsx -resetRowSelection: (defaultState?: boolean) => void -``` - -Resets the **rowSelection** state to the `initialState.rowSelection`, or `true` can be passed to force a default blank state reset to `{}`. - -### `getIsAllRowsSelected` - -```tsx -getIsAllRowsSelected: () => boolean -``` - -Returns whether or not all rows in the table are selected. - -### `getIsAllPageRowsSelected` - -```tsx -getIsAllPageRowsSelected: () => boolean -``` - -Returns whether or not all rows on the current page are selected. - -### `getIsSomeRowsSelected` - -```tsx -getIsSomeRowsSelected: () => boolean -``` - -Returns whether or not any rows in the table are selected. - -NOTE: Returns `false` if all rows are selected. - -### `getIsSomePageRowsSelected` - -```tsx -getIsSomePageRowsSelected: () => boolean -``` - -Returns whether or not any rows on the current page are selected. - -### `toggleAllRowsSelected` - -```tsx -toggleAllRowsSelected: (value: boolean) => void -``` - -Selects/deselects all rows in the table. - -### `toggleAllPageRowsSelected` - -```tsx -toggleAllPageRowsSelected: (value: boolean) => void -``` - -Selects/deselects all rows on the current page. - -### `getPreSelectedRowModel` - -```tsx -getPreSelectedRowModel: () => RowModel -``` - -### `getSelectedRowModel` - -```tsx -getSelectedRowModel: () => RowModel -``` - -### `getFilteredSelectedRowModel` - -```tsx -getFilteredSelectedRowModel: () => RowModel -``` - -### `getGroupedSelectedRowModel` - -```tsx -getGroupedSelectedRowModel: () => RowModel -``` - -## Row API - -### `getIsSelected` - -```tsx -getIsSelected: () => boolean -``` - -Returns whether or not the row is selected. - -### `getIsSomeSelected` - -```tsx -getIsSomeSelected: () => boolean -``` - -Returns whether or not some of the row's sub rows are selected. - -### `getIsAllSubRowsSelected` - -```tsx -getIsAllSubRowsSelected: () => boolean -``` - -Returns whether or not all of the row's sub rows are selected. - -### `getCanSelect` - -```tsx -getCanSelect: () => boolean -``` - -Returns whether or not the row can be selected. - -### `getCanMultiSelect` - -```tsx -getCanMultiSelect: () => boolean -``` - -Returns whether or not the row can multi-select. - -### `getCanSelectSubRows` - -```tsx -getCanSelectSubRows: () => boolean -``` - -Returns whether or not the row can select sub rows automatically when the parent row is selected. - -### `toggleSelected` - -```tsx -toggleSelected: (value?: boolean) => void -``` - -Selects/deselects the row. - -### `getToggleSelectedHandler` - -```tsx -getToggleSelectedHandler: () => (event: unknown) => void -``` - -Returns a handler that can be used to toggle the row. diff --git a/docs/api/features/sorting.md b/docs/api/features/sorting.md deleted file mode 100644 index 54c4bbad14..0000000000 --- a/docs/api/features/sorting.md +++ /dev/null @@ -1,385 +0,0 @@ ---- -title: Sorting APIs -id: sorting ---- - -## State - -Sorting state is stored on the table using the following shape: - -```tsx -export type SortDirection = 'asc' | 'desc' - -export type ColumnSort = { - id: string - desc: boolean -} - -export type SortingState = ColumnSort[] - -export type SortingTableState = { - sorting: SortingState -} -``` - -## Sorting Functions - -The following sorting functions are built-in to the table core: - -- `alphanumeric` - - Sorts by mixed alphanumeric values without case-sensitivity. Slower, but more accurate if your strings contain numbers that need to be naturally sorted. -- `alphanumericCaseSensitive` - - Sorts by mixed alphanumeric values with case-sensitivity. Slower, but more accurate if your strings contain numbers that need to be naturally sorted. -- `text` - - Sorts by text/string values without case-sensitivity. Faster, but less accurate if your strings contain numbers that need to be naturally sorted. -- `textCaseSensitive` - - Sorts by text/string values with case-sensitivity. Faster, but less accurate if your strings contain numbers that need to be naturally sorted. -- `datetime` - - Sorts by time, use this if your values are `Date` objects. -- `basic` - - Sorts using a basic/standard `a > b ? 1 : a < b ? -1 : 0` comparison. This is the fastest sorting function, but may not be the most accurate. - -Every sorting function receives 2 rows and a column ID and are expected to compare the two rows using the column ID to return `-1`, `0`, or `1` in ascending order. Here's a cheat sheet: - -| Return | Ascending Order | -| ------ | --------------- | -| `-1` | `a < b` | -| `0` | `a === b` | -| `1` | `a > b` | - -This is the type signature for every sorting function: - -```tsx -export type SortFn = { - (rowA: Row, rowB: Row, columnId: string): number -} -``` - -#### Using Sorting Functions - -Sorting functions can be used/referenced/defined by passing the following to `columnDefinition.sortFn`: - -- A `string` that references a built-in sorting function -- A `string` that references a custom sorting functions provided via the `tableOptions.sortFns` option -- A function directly provided to the `columnDefinition.sortFn` option - -The final list of sorting functions available for the `columnDef.sortFn` use the following type: - -```tsx -export type SortFnOption = - | 'auto' - | SortFns - | BuiltInSortFns - | SortFn -``` - -## Column Def Options - -### `sortFn` - -```tsx -sortFn?: SortFn | keyof SortFns | keyof BuiltInSortFns -``` - -The sorting function to use with this column. - -Options: - -- A `string` referencing a [built-in sorting function](#sorting-functions)) -- A [custom sorting function](#sorting-functions) - -### `sortDescFirst` - -```tsx -sortDescFirst?: boolean -``` - -Set to `true` for sorting toggles on this column to start in the descending direction. - -### `enableSorting` - -```tsx -enableSorting?: boolean -``` - -Enables/Disables sorting for this column. - -### `enableMultiSort` - -```tsx -enableMultiSort?: boolean -``` - -Enables/Disables multi-sorting for this column. - -### `invertSorting` - -```tsx -invertSorting?: boolean -``` - -Inverts the order of the sorting for this column. This is useful for values that have an inverted best/worst scale where lower numbers are better, eg. a ranking (1st, 2nd, 3rd) or golf-like scoring - -### `sortUndefined` - -```tsx -sortUndefined?: 'first' | 'last' | false | -1 | 1 // defaults to 1 -``` - -- `'first'` - - Undefined values will be pushed to the beginning of the list -- `'last'` - - Undefined values will be pushed to the end of the list -- `false` - - Undefined values will be considered tied and need to be sorted by the next column filter or original index (whichever applies) -- `-1` - - Undefined values will be sorted with higher priority (ascending) (if ascending, undefined will appear on the beginning of the list) -- `1` - - Undefined values will be sorted with lower priority (descending) (if ascending, undefined will appear on the end of the list) - -> NOTE: `'first'` and `'last'` options are new in v8.16.0 - -## Column API - -### `getAutoSortFn` - -```tsx -getAutoSortFn: () => SortFn -``` - -Returns a sorting function automatically inferred based on the columns values. - -### `getAutoSortDir` - -```tsx -getAutoSortDir: () => SortDirection -``` - -Returns a sort direction automatically inferred based on the columns values. - -### `getSortFn` - -```tsx -getSortFn: () => SortFn -``` - -Returns the resolved sorting function to be used for this column - -### `getNextSortingOrder` - -```tsx -getNextSortingOrder: () => SortDirection | false -``` - -Returns the next sorting order. - -### `getCanSort` - -```tsx -getCanSort: () => boolean -``` - -Returns whether this column can be sorted. - -### `getCanMultiSort` - -```tsx -getCanMultiSort: () => boolean -``` - -Returns whether this column can be multi-sorted. - -### `getSortIndex` - -```tsx -getSortIndex: () => number -``` - -Returns the index position of this column's sorting within the sorting state - -### `getIsSorted` - -```tsx -getIsSorted: () => false | SortDirection -``` - -Returns whether this column is sorted. - -### `getFirstSortDir` - -```tsx -getFirstSortDir: () => SortDirection -``` - -Returns the first direction that should be used when sorting this column. - -### `clearSorting` - -```tsx -clearSorting: () => void -``` - -Removes this column from the table's sorting state - -### `toggleSorting` - -```tsx -toggleSorting: (desc?: boolean, isMulti?: boolean) => void -``` - -Toggles this columns sorting state. If `desc` is provided, it will force the sort direction to that value. If `isMulti` is provided, it will additivity multi-sort the column (or toggle it if it is already sorted). - -### `getToggleSortingHandler` - -```tsx -getToggleSortingHandler: () => undefined | ((event: unknown) => void) -``` - -Returns a function that can be used to toggle this column's sorting state. This is useful for attaching a click handler to the column header. - -## Table Options - -### `sortFns` - -```tsx -sortFns?: Record -``` - -This option allows you to define custom sorting functions that can be referenced in a column's `sortFn` option by their key. -Example: - -```tsx -declare module '@tanstack/table-core' { - interface SortFns { - myCustomSorting: SortFn - } -} - -const column = columnHelper.data('key', { - sortFn: 'myCustomSorting', -}) - -const table = useTable({ - columns: [column], - sortFns: { - myCustomSorting: (rowA: any, rowB: any, columnId: any): number => - rowA.getValue(columnId).value < rowB.getValue(columnId).value ? 1 : -1, - }, -}) -``` - -### `manualSorting` - -```tsx -manualSorting?: boolean -``` - -Enables manual sorting for the table. If this is `true`, you will be expected to sort your data before it is passed to the table. This is useful if you are doing server-side sorting. - -### `onSortingChange` - -```tsx -onSortingChange?: OnChangeFn -``` - -If provided, this function will be called with an `updaterFn` when `state.sorting` changes. This overrides the default internal state management, so you will need to persist the state change either fully or partially outside of the table. - -### `enableSorting` - -```tsx -enableSorting?: boolean -``` - -Enables/Disables sorting for the table. - -### `enableSortingRemoval` - -```tsx -enableSortingRemoval?: boolean -``` - -Enables/Disables the ability to remove sorting for the table. -- If `true` then changing sort order will circle like: 'none' -> 'desc' -> 'asc' -> 'none' -> ... -- If `false` then changing sort order will circle like: 'none' -> 'desc' -> 'asc' -> 'desc' -> 'asc' -> ... - -### `enableMultiRemove` - -```tsx -enableMultiRemove?: boolean -``` - -Enables/disables the ability to remove multi-sorts - -### `enableMultiSort` - -```tsx -enableMultiSort?: boolean -``` - -Enables/Disables multi-sorting for the table. - -### `sortDescFirst` - -```tsx -sortDescFirst?: boolean -``` - -If `true`, all sorts will default to descending as their first toggle state. - -### `getSortedRowModel` - -```tsx -getSortedRowModel?: (table: Table) => () => RowModel -``` - -This function is used to retrieve the sorted row model. If using server-side sorting, this function is not required. To use client-side sorting, pass the exported `getSortedRowModel()` from your adapter to your table or implement your own. - -### `maxMultiSortColCount` - -```tsx -maxMultiSortColCount?: number -``` - -Set a maximum number of columns that can be multi-sorted. - -### `isMultiSortEvent` - -```tsx -isMultiSortEvent?: (e: unknown) => boolean -``` - -Pass a custom function that will be used to determine if a multi-sort event should be triggered. It is passed the event from the sort toggle handler and should return `true` if the event should trigger a multi-sort. - -## Table API - -### `setSorting` - -```tsx -setSorting: (updater: Updater) => void -``` - -Sets or updates the `state.sorting` state. - -### `resetSorting` - -```tsx -resetSorting: (defaultState?: boolean) => void -``` - -Resets the **sorting** state to `initialState.sorting`, or `true` can be passed to force a default blank state reset to `[]`. - -### `getPreSortedRowModel` - -```tsx -getPreSortedRowModel: () => RowModel -``` - -Returns the row model for the table before any sorting has been applied. - -### `getSortedRowModel` - -```tsx -getSortedRowModel: () => RowModel -``` - -Returns the row model for the table after sorting has been applied. diff --git a/docs/framework/angular/guide/table-state.md b/docs/framework/angular/guide/table-state.md index 770807c6a8..100e5fd601 100644 --- a/docs/framework/angular/guide/table-state.md +++ b/docs/framework/angular/guide/table-state.md @@ -8,7 +8,7 @@ TanStack Table has a simple underlying internal state management system to store ### Accessing Table State -You do not need to set up anything special in order for the table state to work. If you pass nothing into either `state`, `initialState`, or any of the `on[State]Change` table options, the table will manage its own state internally. You can access any part of this internal state by using the `table.getState()` table instance API. +You do not need to set up anything special in order for the table state to work. If you pass nothing into either `state`, `initialState`, or any of the `on[State]Change` table options, the table will manage its own state internally. You can access any part of this internal state by using the `table.store.state` table instance API. ```ts table = injectTable(() => ({ @@ -18,8 +18,8 @@ table = injectTable(() => ({ })) someHandler() { - console.log(this.table.getState()) //access the entire internal state - console.log(this.table.getState().rowSelection) //access just the row selection state + console.log(this.table.store.state) //access the entire internal state + console.log(this.table.store.state.rowSelection) //access just the row selection state } ``` diff --git a/docs/framework/lit/guide/table-state.md b/docs/framework/lit/guide/table-state.md index ddaf3032a5..a3e1ed87a1 100644 --- a/docs/framework/lit/guide/table-state.md +++ b/docs/framework/lit/guide/table-state.md @@ -8,7 +8,7 @@ TanStack Table has a simple underlying internal state management system to store ### Accessing Table State -You do not need to set up anything special in order for the table state to work. If you pass nothing into either `state`, `initialState`, or any of the `on[State]Change` table options, the table will manage its own state internally. You can access any part of this internal state by using the `table.getState()` table instance API. +You do not need to set up anything special in order for the table state to work. If you pass nothing into either `state`, `initialState`, or any of the `on[State]Change` table options, the table will manage its own state internally. You can access any part of this internal state by using the `table.store.state` table instance API. ```ts private tableController = new TableController(this); @@ -20,8 +20,8 @@ render() { ... }) - console.log(table.getState()) //access the entire internal state - console.log(table.getState().rowSelection) //access just the row selection state + console.log(table.store.state) //access the entire internal state + console.log(table.store.state.rowSelection) //access just the row selection state // ... } ``` diff --git a/docs/framework/react/guide/table-state.md b/docs/framework/react/guide/table-state.md index 2a9c3cd3ac..405e01ec51 100644 --- a/docs/framework/react/guide/table-state.md +++ b/docs/framework/react/guide/table-state.md @@ -15,7 +15,7 @@ TanStack Table has a simple underlying internal state management system to store ### Accessing Table State -You do not need to set up anything special in order for the table state to work. If you pass nothing into either `state`, `initialState`, or any of the `on[State]Change` table options, the table will manage its own state internally. You can access any part of this internal state by using the `table.getState()` table instance API. +You do not need to set up anything special in order for the table state to work. If you pass nothing into either `state`, `initialState`, or any of the `on[State]Change` table options, the table will manage its own state internally. You can access any part of this internal state by using the `table.store.state` table instance API. ```jsx const table = useTable({ @@ -24,8 +24,8 @@ const table = useTable({ //... }) -console.log(table.getState()) //access the entire internal state -console.log(table.getState().rowSelection) //access just the row selection state +console.log(table.store.state) //access the entire internal state +console.log(table.store.state.rowSelection) //access just the row selection state ``` ### Custom Initial State diff --git a/docs/framework/solid/guide/table-state.md b/docs/framework/solid/guide/table-state.md index fa4abf09e4..83a77d7f2f 100644 --- a/docs/framework/solid/guide/table-state.md +++ b/docs/framework/solid/guide/table-state.md @@ -8,7 +8,7 @@ TanStack Table has a simple underlying internal state management system to store ### Accessing Table State -You do not need to set up anything special in order for the table state to work. If you pass nothing into either `state`, `initialState`, or any of the `on[State]Change` table options, the table will manage its own state internally. You can access any part of this internal state by using the `table.getState()` table instance API. +You do not need to set up anything special in order for the table state to work. If you pass nothing into either `state`, `initialState`, or any of the `on[State]Change` table options, the table will manage its own state internally. You can access any part of this internal state by using the `table.store.state` table instance API. ```jsx const table = createTable({ @@ -19,8 +19,8 @@ const table = createTable({ //... }) -console.log(table.getState()) //access the entire internal state -console.log(table.getState().rowSelection) //access just the row selection state +console.log(table.store.state) //access the entire internal state +console.log(table.store.state.rowSelection) //access just the row selection state ``` ### Custom Initial State diff --git a/docs/framework/svelte/guide/table-state.md b/docs/framework/svelte/guide/table-state.md index e9b96f1e8c..a45cc3f675 100644 --- a/docs/framework/svelte/guide/table-state.md +++ b/docs/framework/svelte/guide/table-state.md @@ -8,7 +8,7 @@ TanStack Table has a simple underlying internal state management system to store ### Accessing Table State -You do not need to set up anything special in order for the table state to work. If you pass nothing into either `state`, `initialState`, or any of the `on[State]Change` table options, the table will manage its own state internally. You can access any part of this internal state by using the `table.getState()` table instance API. +You do not need to set up anything special in order for the table state to work. If you pass nothing into either `state`, `initialState`, or any of the `on[State]Change` table options, the table will manage its own state internally. You can access any part of this internal state by using the `table.store.state` table instance API. ```ts const table = createTable({ @@ -19,8 +19,8 @@ const table = createTable({ //... }) -console.log(table.getState()) //access the entire internal state -console.log(table.getState().rowSelection) //access just the row selection state +console.log(table.store.state) //access the entire internal state +console.log(table.store.state.rowSelection) //access just the row selection state ``` ### Custom Initial State diff --git a/docs/framework/vue/guide/table-state.md b/docs/framework/vue/guide/table-state.md index 09fb44f729..e58218e70e 100644 --- a/docs/framework/vue/guide/table-state.md +++ b/docs/framework/vue/guide/table-state.md @@ -8,7 +8,7 @@ TanStack Table has a simple underlying internal state management system to store ### Accessing Table State -You do not need to set up anything special in order for the table state to work. If you pass nothing into either `state`, `initialState`, or any of the `on[State]Change` table options, the table will manage its own state internally. You can access any part of this internal state by using the `table.getState()` table instance API. +You do not need to set up anything special in order for the table state to work. If you pass nothing into either `state`, `initialState`, or any of the `on[State]Change` table options, the table will manage its own state internally. You can access any part of this internal state by using the `table.store.state` table instance API. ```ts const table = useTable({ @@ -17,8 +17,8 @@ const table = useTable({ //... }) -console.log(table.getState()) //access the entire internal state -console.log(table.getState().rowSelection) //access just the row selection state +console.log(table.store.state) //access the entire internal state +console.log(table.store.state.rowSelection) //access just the row selection state ``` ### Using Reactive Data diff --git a/docs/guide/column-filtering.md b/docs/guide/column-filtering.md index 9d5190cbda..bce1395afb 100644 --- a/docs/guide/column-filtering.md +++ b/docs/guide/column-filtering.md @@ -94,7 +94,7 @@ Since the column filter state is an array of objects, you can have multiple colu #### Accessing Column Filter State -You can access the column filter state from the table instance just like any other table state using the `table.getState()` API. +You can access the column filter state from the table instance just like any other table state using the `table.store.state` API. ```jsx const table = useTable({ @@ -103,7 +103,7 @@ const table = useTable({ //... }) -console.log(table.getState().columnFilters) // access the column filters state from the table instance +console.log(table.store.state.columnFilters) // access the column filters state from the table instance ``` However, if you need to access the column filter state before the table is initialized, you can "control" the column filter state like down below. diff --git a/docs/guide/column-sizing.md b/docs/guide/column-sizing.md index ddd50a7779..46e304e908 100644 --- a/docs/guide/column-sizing.md +++ b/docs/guide/column-sizing.md @@ -156,7 +156,7 @@ TanStack Table keeps track of an state object called `columnSizingInfo` that you diff --git a/docs/guide/custom-features.md b/docs/guide/custom-features.md index c7879005ae..06ff0490d3 100644 --- a/docs/guide/custom-features.md +++ b/docs/guide/custom-features.md @@ -257,7 +257,7 @@ const table = useTable({ onDensityChange: setDensity, //using the new onDensityChange option, TS is still happy :) }) //... -const { density } = table.getState() +const { density } = table.store.state return( ([]) diff --git a/docs/guide/pagination.md b/docs/guide/pagination.md index bcc8b076a8..e5f932d94d 100644 --- a/docs/guide/pagination.md +++ b/docs/guide/pagination.md @@ -203,7 +203,7 @@ There are several pagination table instance APIs that are useful for hooking up {'>>'} {' '} - Toggle All - - - {table.getAllLeafColumns().map((column) => { - return ( -
+ ({ + // subscribe to only the column order and visibility state changes at root level + columnOrder: state.columnOrder, + columnVisibility: state.columnVisibility, + })} + > + {(state) => ( +
+
+
- ) - })} -
-
-
- - -
-
- - - {table.getHeaderGroups().map((headerGroup) => ( - - {headerGroup.headers.map((header) => ( - + {table.getAllLeafColumns().map((column) => { + return ( +
+ +
+ ) + })} + +
+
+ + +
+
+
- {header.isPlaceholder - ? null - : flexRender( - header.column.columnDef.header, - header.getContext(), - )} -
+ + {table.getHeaderGroups().map((headerGroup) => ( + + {headerGroup.headers.map((header) => ( + + ))} + ))} - - ))} - - - {table.getRowModel().rows.map((row) => ( - - {row.getVisibleCells().map((cell) => ( - - ))} - - ))} - - - {table.getFooterGroups().map((footerGroup) => ( - - {footerGroup.headers.map((header) => ( - + {table.getRowModel().rows.map((row) => ( + + {row.getVisibleCells().map((cell) => ( + + ))} + + ))} + + + {table.getFooterGroups().map((footerGroup) => ( + + {footerGroup.headers.map((header) => ( + + ))} + ))} - - ))} - -
+ {header.isPlaceholder + ? null + : flexRender( + header.column.columnDef.header, + header.getContext(), + )} +
- {flexRender(cell.column.columnDef.cell, cell.getContext())} -
- {header.isPlaceholder - ? null - : flexRender( - header.column.columnDef.footer, - header.getContext(), + +
+ {flexRender( + cell.column.columnDef.cell, + cell.getContext(), )} - +
+ {header.isPlaceholder + ? null + : flexRender( + header.column.columnDef.footer, + header.getContext(), + )} +
-
{JSON.stringify(table.getState().columnOrder, null, 2)}
-
+ + +
{JSON.stringify(state.columnOrder, null, 2)}
+
+ )} + ) } diff --git a/examples/react/column-pinning-split/index.html b/examples/react/column-pinning-split/index.html index 3fc40c9367..b6dad34a8f 100644 --- a/examples/react/column-pinning-split/index.html +++ b/examples/react/column-pinning-split/index.html @@ -5,6 +5,7 @@ Vite App +
diff --git a/examples/react/column-pinning-split/package.json b/examples/react/column-pinning-split/package.json index 207360577d..6ff071bb19 100644 --- a/examples/react/column-pinning-split/package.json +++ b/examples/react/column-pinning-split/package.json @@ -21,6 +21,6 @@ "@types/react-dom": "^19.2.3", "@vitejs/plugin-react": "^5.1.2", "typescript": "5.9.3", - "vite": "^7.2.7" + "vite": "^7.3.0" } } diff --git a/examples/react/column-pinning-split/src/main.tsx b/examples/react/column-pinning-split/src/main.tsx index c1079d235d..6c95d891d1 100644 --- a/examples/react/column-pinning-split/src/main.tsx +++ b/examples/react/column-pinning-split/src/main.tsx @@ -11,12 +11,7 @@ import { useTable, } from '@tanstack/react-table' import { makeData } from './makeData' -import type { - ColumnDef, - ColumnOrderState, - ColumnPinningState, - ColumnVisibilityState, -} from '@tanstack/react-table' +import type { ColumnDef } from '@tanstack/react-table' import type { Person } from './makeData' const _features = tableFeatures({ @@ -81,14 +76,6 @@ function App() { const [data, setData] = React.useState(() => makeData(5000)) const [columns] = React.useState(() => [...defaultColumns]) - const [columnVisibility, setColumnVisibility] = - React.useState({}) - const [columnOrder, setColumnOrder] = React.useState([]) - const [columnPinning, setColumnPinning] = React.useState({ - left: [], - right: [], - }) - const rerender = () => setData(() => makeData(5000)) const table = useTable({ @@ -96,14 +83,6 @@ function App() { _rowModels: {}, columns, data, - state: { - columnVisibility, - columnOrder, - columnPinning, - }, - onColumnVisibilityChange: setColumnVisibility, - onColumnOrderChange: setColumnOrder, - onColumnPinningChange: setColumnPinning, debugTable: true, debugHeaders: true, debugColumns: true, @@ -116,276 +95,286 @@ function App() { } return ( -
-
-
- -
- {table.getAllLeafColumns().map((column) => { - return ( -
+ ({ + columnVisibility: state.columnVisibility, + columnOrder: state.columnOrder, + columnPinning: state.columnPinning, + })} + > + {(state) => ( +
+
+
- ) - })} -
-
-
- - -
-
-

- This example takes advantage of the "splitting" APIs. (APIs that have - "left, "center", and "right" modifiers) -

-
- - - {table.getLeftHeaderGroups().map((headerGroup) => ( - - {headerGroup.headers.map((header) => ( - - ))} - - ))} - - - {table - .getRowModel() - .rows.slice(0, 20) - .map((row) => { - return ( - - {row.getLeftVisibleCells().map((cell) => { - return ( - - ) - })} + {table.getAllLeafColumns().map((column) => { + return ( +
+ +
+ ) + })} + +
+
+ + +
+
+

+ This example takes advantage of the "splitting" APIs. (APIs that + have "left, "center", and "right" modifiers) +

+
+
-
- {header.isPlaceholder - ? null - : flexRender( - header.column.columnDef.header, - header.getContext(), - )} -
- {!header.isPlaceholder && header.column.getCanPin() && ( -
- {header.column.getIsPinned() !== 'left' ? ( - - ) : null} - {header.column.getIsPinned() ? ( - - ) : null} - {header.column.getIsPinned() !== 'right' ? ( - - ) : null} -
- )} -
- {flexRender( - cell.column.columnDef.cell, - cell.getContext(), - )} -
+ + {table.getLeftHeaderGroups().map((headerGroup) => ( + + {headerGroup.headers.map((header) => ( + + ))} - ) - })} - -
+
+ {header.isPlaceholder + ? null + : flexRender( + header.column.columnDef.header, + header.getContext(), + )} +
+ {!header.isPlaceholder && header.column.getCanPin() && ( +
+ {header.column.getIsPinned() !== 'left' ? ( + + ) : null} + {header.column.getIsPinned() ? ( + + ) : null} + {header.column.getIsPinned() !== 'right' ? ( + + ) : null} +
+ )} +
- - - {table.getCenterHeaderGroups().map((headerGroup) => ( - - {headerGroup.headers.map((header) => ( - ))} - - ))} - - - {table - .getRowModel() - .rows.slice(0, 20) - .map((row) => { - return ( - - {row.getCenterVisibleCells().map((cell) => { - return ( - - ) - })} + + + {table + .getRowModel() + .rows.slice(0, 20) + .map((row) => { + return ( + + {row.getLeftVisibleCells().map((cell) => { + return ( + + ) + })} + + ) + })} + +
-
- {header.isPlaceholder - ? null - : flexRender( - header.column.columnDef.header, - header.getContext(), - )} -
- {!header.isPlaceholder && header.column.getCanPin() && ( -
- {header.column.getIsPinned() !== 'left' ? ( - - ) : null} - {header.column.getIsPinned() ? ( - - ) : null} - {header.column.getIsPinned() !== 'right' ? ( - - ) : null} -
- )} -
- {flexRender( - cell.column.columnDef.cell, - cell.getContext(), - )} -
+ {flexRender( + cell.column.columnDef.cell, + cell.getContext(), + )} +
+ + + {table.getCenterHeaderGroups().map((headerGroup) => ( + + {headerGroup.headers.map((header) => ( + + ))} - ) - })} - -
+
+ {header.isPlaceholder + ? null + : flexRender( + header.column.columnDef.header, + header.getContext(), + )} +
+ {!header.isPlaceholder && header.column.getCanPin() && ( +
+ {header.column.getIsPinned() !== 'left' ? ( + + ) : null} + {header.column.getIsPinned() ? ( + + ) : null} + {header.column.getIsPinned() !== 'right' ? ( + + ) : null} +
+ )} +
- - - {table.getRightHeaderGroups().map((headerGroup) => ( - - {headerGroup.headers.map((header) => ( - ))} - - ))} - - - {table - .getRowModel() - .rows.slice(0, 20) - .map((row) => { - return ( - - {row.getRightVisibleCells().map((cell) => { - return ( - - ) - })} + + + {table + .getRowModel() + .rows.slice(0, 20) + .map((row) => { + return ( + + {row.getCenterVisibleCells().map((cell) => { + return ( + + ) + })} + + ) + })} + +
-
- {header.isPlaceholder - ? null - : flexRender( - header.column.columnDef.header, - header.getContext(), - )} -
- {!header.isPlaceholder && header.column.getCanPin() && ( -
- {header.column.getIsPinned() !== 'left' ? ( - - ) : null} - {header.column.getIsPinned() ? ( - - ) : null} - {header.column.getIsPinned() !== 'right' ? ( - - ) : null} -
- )} -
- {flexRender( - cell.column.columnDef.cell, - cell.getContext(), - )} -
+ {flexRender( + cell.column.columnDef.cell, + cell.getContext(), + )} +
+ + + {table.getRightHeaderGroups().map((headerGroup) => ( + + {headerGroup.headers.map((header) => ( + + ))} - ) - })} - -
+
+ {header.isPlaceholder + ? null + : flexRender( + header.column.columnDef.header, + header.getContext(), + )} +
+ {!header.isPlaceholder && header.column.getCanPin() && ( +
+ {header.column.getIsPinned() !== 'left' ? ( + + ) : null} + {header.column.getIsPinned() ? ( + + ) : null} + {header.column.getIsPinned() !== 'right' ? ( + + ) : null} +
+ )} +
-
-
{JSON.stringify(table.getState().columnPinning, null, 2)}
-
+ ))} + + + {table + .getRowModel() + .rows.slice(0, 20) + .map((row) => { + return ( + + {row.getRightVisibleCells().map((cell) => { + return ( + + {flexRender( + cell.column.columnDef.cell, + cell.getContext(), + )} + + ) + })} + + ) + })} + + +
+
{JSON.stringify(state.columnPinning, null, 2)}
+
+ )} +
) } diff --git a/examples/react/column-pinning-sticky/index.html b/examples/react/column-pinning-sticky/index.html index 3fc40c9367..b6dad34a8f 100644 --- a/examples/react/column-pinning-sticky/index.html +++ b/examples/react/column-pinning-sticky/index.html @@ -5,6 +5,7 @@ Vite App +
diff --git a/examples/react/column-pinning-sticky/package.json b/examples/react/column-pinning-sticky/package.json index fc8fd8333d..7ada545779 100644 --- a/examples/react/column-pinning-sticky/package.json +++ b/examples/react/column-pinning-sticky/package.json @@ -21,6 +21,6 @@ "@types/react-dom": "^19.2.3", "@vitejs/plugin-react": "^5.1.2", "typescript": "5.9.3", - "vite": "^7.2.7" + "vite": "^7.3.0" } } diff --git a/examples/react/column-pinning-sticky/src/main.tsx b/examples/react/column-pinning-sticky/src/main.tsx index 405fd0941f..15106f45ad 100644 --- a/examples/react/column-pinning-sticky/src/main.tsx +++ b/examples/react/column-pinning-sticky/src/main.tsx @@ -18,11 +18,11 @@ import type { Person } from './makeData' import './index.css' const _features = tableFeatures({ - columnVisibilityFeature, - columnPinningFeature, columnOrderingFeature, - columnSizingFeature, + columnPinningFeature, columnResizingFeature, + columnSizingFeature, + columnVisibilityFeature, }) // These are the important styles to make sticky column pinning work! @@ -123,145 +123,186 @@ function App() { } return ( -
-
-
- -
- {table.getAllLeafColumns().map((column) => { - return ( -
+ ({ + columnVisibility: state.columnVisibility, + columnOrder: state.columnOrder, + columnPinning: state.columnPinning, + })} + > + {(_topLevelState) => ( +
+
+
- ) - })} -
-
-
- - -
-
-
- - - {table.getHeaderGroups().map((headerGroup) => ( - - {headerGroup.headers.map((header) => { - const { column } = header + {table.getAllLeafColumns().map((column) => { + return ( +
+ +
+ ) + })} + +
+
+ + +
+
+
+
+ + {table.getHeaderGroups().map((headerGroup) => ( + + {headerGroup.headers.map((header) => { + const { column } = header - return ( - + )} + + ) + })} + + ))} + + + {table.getRowModel().rows.map((row) => ( + + {row.getVisibleCells().map((cell) => { + const { column } = cell + return ( + ({ + isResizingColumn: + state.columnResizing.isResizingColumn === + column.id, + columnSize: state.columnSizing[column.id], + })} + > + {() => ( + - ))} - - - {table.getRowModel().rows.map((row) => ( - - {row.getVisibleCells().map((cell) => { - const { column } = cell - return ( - - ) - })} - - ))} - -
-
- {header.isPlaceholder - ? null - : flexRender( - header.column.columnDef.header, - header.getContext(), - )}{' '} - {/* Demo getIndex behavior */} - {column.getIndex(column.getIsPinned() || 'center')} -
- {!header.isPlaceholder && header.column.getCanPin() && ( -
- {header.column.getIsPinned() !== 'left' ? ( -
- {'<='} - - ) : null} - {header.column.getIsPinned() ? ( - + ) : null} + {header.column.getIsPinned() ? ( + + ) : null} + {header.column.getIsPinned() !== 'right' ? ( + + ) : null} + + )} +
header.column.resetSize()} + onMouseDown={header.getResizeHandler()} + onTouchStart={header.getResizeHandler()} + className={`resizer ${ + header.column.getIsResizing() + ? 'isResizing' + : '' + }`} + /> +
- X - - ) : null} - {header.column.getIsPinned() !== 'right' ? ( - - ) : null} - - )} -
header.column.resetSize()} - onMouseDown={header.getResizeHandler()} - onTouchStart={header.getResizeHandler()} - className={`resizer ${ - header.column.getIsResizing() ? 'isResizing' : '' - }`} - /> - - ) - })} -
- {flexRender( - cell.column.columnDef.cell, - cell.getContext(), - )} -
-
-
{JSON.stringify(table.getState().columnPinning, null, 2)}
-
+ {flexRender( + cell.column.columnDef.cell, + cell.getContext(), + )} + + )} + + ) + })} + + ))} + + +
+ state}> + {(state) =>
{JSON.stringify(state, null, 2)}
} +
+
+ )} +
) } diff --git a/examples/react/column-pinning/index.html b/examples/react/column-pinning/index.html index 3fc40c9367..b6dad34a8f 100644 --- a/examples/react/column-pinning/index.html +++ b/examples/react/column-pinning/index.html @@ -5,6 +5,7 @@ Vite App +
diff --git a/examples/react/column-pinning/package.json b/examples/react/column-pinning/package.json index cb48d7e9da..8b92d35e5c 100644 --- a/examples/react/column-pinning/package.json +++ b/examples/react/column-pinning/package.json @@ -21,6 +21,6 @@ "@types/react-dom": "^19.2.3", "@vitejs/plugin-react": "^5.1.2", "typescript": "5.9.3", - "vite": "^7.2.7" + "vite": "^7.3.0" } } diff --git a/examples/react/column-pinning/src/main.tsx b/examples/react/column-pinning/src/main.tsx index 1dff440fbe..87bdddcbc4 100644 --- a/examples/react/column-pinning/src/main.tsx +++ b/examples/react/column-pinning/src/main.tsx @@ -11,12 +11,7 @@ import { useTable, } from '@tanstack/react-table' import { makeData } from './makeData' -import type { - ColumnDef, - ColumnOrderState, - ColumnPinningState, - ColumnVisibilityState, -} from '@tanstack/react-table' +import type { ColumnDef } from '@tanstack/react-table' import type { Person } from './makeData' const _features = tableFeatures({ @@ -81,14 +76,6 @@ function App() { const [data, setData] = React.useState(() => makeData(5000)) const [columns] = React.useState(() => [...defaultColumns]) - const [columnVisibility, setColumnVisibility] = - React.useState({}) - const [columnOrder, setColumnOrder] = React.useState([]) - const [columnPinning, setColumnPinning] = React.useState({ - left: [], - right: [], - }) - const rerender = () => setData(() => makeData(5000)) const table = useTable({ @@ -96,14 +83,6 @@ function App() { _rowModels: {}, columns, data, - state: { - columnVisibility, - columnOrder, - columnPinning, - }, - onColumnVisibilityChange: setColumnVisibility, - onColumnOrderChange: setColumnOrder, - onColumnPinningChange: setColumnPinning, debugTable: true, debugHeaders: true, debugColumns: true, @@ -116,126 +95,136 @@ function App() { } return ( -
-
-
- -
- {table.getAllLeafColumns().map((column) => { - return ( -
+ ({ + columnVisibility: state.columnVisibility, + columnOrder: state.columnOrder, + columnPinning: state.columnPinning, + })} + > + {(state) => ( +
+
+
- ) - })} -
-
-
- - -
-
-

- This example using the non-split APIs. Columns are just reordered within - 1 table instead of being split into 3 different tables. -

-
- - - {table.getHeaderGroups().map((headerGroup) => ( - - {headerGroup.headers.map((header) => ( - - ))} - - ))} - - - {table - .getRowModel() - .rows.slice(0, 20) - .map((row) => { - return ( - - {row.getVisibleCells().map((cell) => { - return ( - - ) - })} + {table.getAllLeafColumns().map((column) => { + return ( +
+ +
+ ) + })} + +
+
+ + +
+
+

+ This example using the non-split APIs. Columns are just reordered + within 1 table instead of being split into 3 different tables. +

+
+
-
- {header.isPlaceholder - ? null - : flexRender( - header.column.columnDef.header, - header.getContext(), - )} -
- {!header.isPlaceholder && header.column.getCanPin() && ( -
- {header.column.getIsPinned() !== 'left' ? ( - - ) : null} - {header.column.getIsPinned() ? ( - - ) : null} - {header.column.getIsPinned() !== 'right' ? ( - - ) : null} -
- )} -
- {flexRender( - cell.column.columnDef.cell, - cell.getContext(), - )} -
+ + {table.getHeaderGroups().map((headerGroup) => ( + + {headerGroup.headers.map((header) => ( + + ))} - ) - })} - -
+
+ {header.isPlaceholder + ? null + : flexRender( + header.column.columnDef.header, + header.getContext(), + )} +
+ {!header.isPlaceholder && header.column.getCanPin() && ( +
+ {header.column.getIsPinned() !== 'left' ? ( + + ) : null} + {header.column.getIsPinned() ? ( + + ) : null} + {header.column.getIsPinned() !== 'right' ? ( + + ) : null} +
+ )} +
-
-
{JSON.stringify(table.getState().columnPinning, null, 2)}
-
+ ))} + + + {table + .getRowModel() + .rows.slice(0, 20) + .map((row) => { + return ( + + {row.getVisibleCells().map((cell) => { + return ( + + {flexRender( + cell.column.columnDef.cell, + cell.getContext(), + )} + + ) + })} + + ) + })} + + +
+
{JSON.stringify(state, null, 2)}
+
+ )} +
) } diff --git a/examples/react/column-resizing-performant/index.html b/examples/react/column-resizing-performant/index.html index 3fc40c9367..b6dad34a8f 100644 --- a/examples/react/column-resizing-performant/index.html +++ b/examples/react/column-resizing-performant/index.html @@ -5,6 +5,7 @@ Vite App +
diff --git a/examples/react/column-resizing-performant/package.json b/examples/react/column-resizing-performant/package.json index f30c652c71..c597dbc20b 100644 --- a/examples/react/column-resizing-performant/package.json +++ b/examples/react/column-resizing-performant/package.json @@ -21,6 +21,6 @@ "@types/react-dom": "^19.2.3", "@vitejs/plugin-react": "^5.1.2", "typescript": "5.9.3", - "vite": "^7.2.7" + "vite": "^7.3.0" } } diff --git a/examples/react/column-resizing-performant/src/main.tsx b/examples/react/column-resizing-performant/src/main.tsx index bc05f0ff8a..f3009c18b8 100644 --- a/examples/react/column-resizing-performant/src/main.tsx +++ b/examples/react/column-resizing-performant/src/main.tsx @@ -106,7 +106,7 @@ function App() { colSizes[`--col-${header.column.id}-size`] = header.column.getSize() } return colSizes - }, [table.getState().columnResizing, table.getState().columnSizing]) + }, [table.store.state.columnResizing, table.store.state.columnSizing]) // demo purposes const [enableMemo, setEnableMemo] = React.useState(true) @@ -133,7 +133,7 @@ function App() {
         {JSON.stringify(
           {
-            columnSizing: table.getState().columnSizing,
+            columnSizing: table.store.state.columnSizing,
           },
           null,
           2,
@@ -180,7 +180,7 @@ function App() {
             ))}
           
{/* When resizing any column we will render this special memoized version of our table body */} - {table.getState().columnResizing.isResizingColumn && enableMemo ? ( + {table.store.state.columnResizing.isResizingColumn && enableMemo ? ( ) : ( diff --git a/examples/react/column-resizing/index.html b/examples/react/column-resizing/index.html index 3fc40c9367..b6dad34a8f 100644 --- a/examples/react/column-resizing/index.html +++ b/examples/react/column-resizing/index.html @@ -5,6 +5,7 @@ Vite App +
diff --git a/examples/react/column-resizing/package.json b/examples/react/column-resizing/package.json index 308e2d8573..7e777838ad 100644 --- a/examples/react/column-resizing/package.json +++ b/examples/react/column-resizing/package.json @@ -20,6 +20,6 @@ "@types/react-dom": "^19.2.3", "@vitejs/plugin-react": "^5.1.2", "typescript": "5.9.3", - "vite": "^7.2.7" + "vite": "^7.3.0" } } diff --git a/examples/react/column-resizing/src/main.tsx b/examples/react/column-resizing/src/main.tsx index 6152f80cfc..03f26f6592 100644 --- a/examples/react/column-resizing/src/main.tsx +++ b/examples/react/column-resizing/src/main.tsx @@ -189,7 +189,7 @@ function App() { (table.options.columnResizeDirection === 'rtl' ? -1 : 1) * - (table.getState().columnResizing + (table.store.state.columnResizing .deltaOffset ?? 0) }px)` : '', @@ -257,7 +257,7 @@ function App() { (table.options.columnResizeDirection === 'rtl' ? -1 : 1) * - (table.getState().columnResizing + (table.store.state.columnResizing .deltaOffset ?? 0) }px)` : '', @@ -339,7 +339,7 @@ function App() { (table.options.columnResizeDirection === 'rtl' ? -1 : 1) * - (table.getState().columnResizing + (table.store.state.columnResizing .deltaOffset ?? 0) }px)` : '', @@ -388,8 +388,8 @@ function App() {
         {JSON.stringify(
           {
-            columnSizing: table.getState().columnSizing,
-            columnResizing: table.getState().columnResizing,
+            columnSizing: table.store.state.columnSizing,
+            columnResizing: table.store.state.columnResizing,
           },
           null,
           2,
diff --git a/examples/react/column-sizing/index.html b/examples/react/column-sizing/index.html
index 3fc40c9367..b6dad34a8f 100644
--- a/examples/react/column-sizing/index.html
+++ b/examples/react/column-sizing/index.html
@@ -5,6 +5,7 @@
     
     Vite App
     
+    
   
   
     
diff --git a/examples/react/column-sizing/package.json b/examples/react/column-sizing/package.json index 778be7f804..c139f70ac2 100644 --- a/examples/react/column-sizing/package.json +++ b/examples/react/column-sizing/package.json @@ -20,6 +20,6 @@ "@types/react-dom": "^19.2.3", "@vitejs/plugin-react": "^5.1.2", "typescript": "5.9.3", - "vite": "^7.2.7" + "vite": "^7.3.0" } } diff --git a/examples/react/column-sizing/src/main.tsx b/examples/react/column-sizing/src/main.tsx index 36bc48c1f1..ff7ace43ea 100644 --- a/examples/react/column-sizing/src/main.tsx +++ b/examples/react/column-sizing/src/main.tsx @@ -123,7 +123,7 @@ function App() { // Don't actually do this to resize columns. This is just for demonstration purposes. // See the Column Resizing Example for how to do this with dedicated resizing APIs efficiently. table.setColumnSizing({ - ...table.getState().columnSizing, + ...table.store.state.columnSizing, [column.id]: Number(e.target.value), }) }} @@ -308,7 +308,7 @@ function App() {
         {JSON.stringify(
           {
-            columnSizing: table.getState().columnSizing,
+            columnSizing: table.store.state.columnSizing,
           },
           null,
           2,
diff --git a/examples/react/column-visibility/index.html b/examples/react/column-visibility/index.html
index 3fc40c9367..b6dad34a8f 100644
--- a/examples/react/column-visibility/index.html
+++ b/examples/react/column-visibility/index.html
@@ -5,6 +5,7 @@
     
     Vite App
     
+    
   
   
     
diff --git a/examples/react/column-visibility/package.json b/examples/react/column-visibility/package.json index 403613c5d0..9c108ab68d 100644 --- a/examples/react/column-visibility/package.json +++ b/examples/react/column-visibility/package.json @@ -20,6 +20,6 @@ "@types/react-dom": "^19.2.3", "@vitejs/plugin-react": "^5.1.2", "typescript": "5.9.3", - "vite": "^7.2.7" + "vite": "^7.3.0" } } diff --git a/examples/react/column-visibility/src/main.tsx b/examples/react/column-visibility/src/main.tsx index fd60e29c3b..4ddf4e0de3 100644 --- a/examples/react/column-visibility/src/main.tsx +++ b/examples/react/column-visibility/src/main.tsx @@ -104,8 +104,6 @@ function App() { const [columns] = React.useState(() => [ ...defaultColumns, ]) - const [columnVisibility, setColumnVisibility] = React.useState({}) - const rerender = React.useReducer(() => ({}), {})[1] const table = useTable({ @@ -113,96 +111,103 @@ function App() { _rowModels: {}, columns, data, - state: { - columnVisibility, - }, - onColumnVisibilityChange: setColumnVisibility, debugTable: true, debugHeaders: true, debugColumns: true, }) return ( -
-
-
- -
- {table.getAllLeafColumns().map((column) => { - return ( -
+ ({ + columnVisibility: state.columnVisibility, + })} + > + {(state) => ( +
+
+
- ) - })} -
-
- - - {table.getHeaderGroups().map((headerGroup) => ( - - {headerGroup.headers.map((header) => ( - + {table.getAllLeafColumns().map((column) => { + return ( +
+ +
+ ) + })} + +
+
- {header.isPlaceholder - ? null - : flexRender( - header.column.columnDef.header, - header.getContext(), - )} -
+ + {table.getHeaderGroups().map((headerGroup) => ( + + {headerGroup.headers.map((header) => ( + + ))} + ))} - - ))} - - - {table.getRowModel().rows.map((row) => ( - - {row.getVisibleCells().map((cell) => ( - - ))} - - ))} - - - {table.getFooterGroups().map((footerGroup) => ( - - {footerGroup.headers.map((header) => ( - + {table.getRowModel().rows.map((row) => ( + + {row.getVisibleCells().map((cell) => ( + + ))} + + ))} + + + {table.getFooterGroups().map((footerGroup) => ( + + {footerGroup.headers.map((header) => ( + + ))} + ))} - - ))} - -
+ {header.isPlaceholder + ? null + : flexRender( + header.column.columnDef.header, + header.getContext(), + )} +
- {flexRender(cell.column.columnDef.cell, cell.getContext())} -
- {header.isPlaceholder - ? null - : flexRender( - header.column.columnDef.footer, - header.getContext(), + +
+ {flexRender( + cell.column.columnDef.cell, + cell.getContext(), )} - +
+ {header.isPlaceholder + ? null + : flexRender( + header.column.columnDef.footer, + header.getContext(), + )} +
-
- -
-
{JSON.stringify(table.getState().columnVisibility, null, 2)}
-
+ + +
+ +
+
{JSON.stringify(state.columnVisibility, null, 2)}
+
+ )} + ) } diff --git a/examples/react/custom-features/index.html b/examples/react/custom-features/index.html index 3fc40c9367..b6dad34a8f 100644 --- a/examples/react/custom-features/index.html +++ b/examples/react/custom-features/index.html @@ -5,6 +5,7 @@ Vite App +
diff --git a/examples/react/custom-features/package.json b/examples/react/custom-features/package.json index 30eca034c6..a21e0ffd04 100644 --- a/examples/react/custom-features/package.json +++ b/examples/react/custom-features/package.json @@ -21,6 +21,6 @@ "@types/react-dom": "^19.2.3", "@vitejs/plugin-react": "^5.1.2", "typescript": "5.9.3", - "vite": "^7.2.7" + "vite": "^7.3.0" } } diff --git a/examples/react/custom-features/src/main.tsx b/examples/react/custom-features/src/main.tsx index bfdd5f5fec..b061339437 100644 --- a/examples/react/custom-features/src/main.tsx +++ b/examples/react/custom-features/src/main.tsx @@ -291,7 +291,7 @@ function App() {
Page
- {table.getState().pagination.pageIndex + 1} of{' '} + {table.store.state.pagination.pageIndex + 1} of{' '} {table.getPageCount().toLocaleString()}
@@ -299,7 +299,7 @@ function App() { | Go to page: { const page = e.target.value ? Number(e.target.value) - 1 : 0 table.setPageIndex(page) @@ -308,7 +308,7 @@ function App() { /> { table.setPageSize(Number(e.target.value)) }} diff --git a/examples/react/expanding/index.html b/examples/react/expanding/index.html index 3fc40c9367..b6dad34a8f 100644 --- a/examples/react/expanding/index.html +++ b/examples/react/expanding/index.html @@ -5,6 +5,7 @@ Vite App +
diff --git a/examples/react/expanding/package.json b/examples/react/expanding/package.json index 6bf00eddf8..c78326b59b 100644 --- a/examples/react/expanding/package.json +++ b/examples/react/expanding/package.json @@ -21,6 +21,6 @@ "@types/react-dom": "^19.2.3", "@vitejs/plugin-react": "^5.1.2", "typescript": "5.9.3", - "vite": "^7.2.7" + "vite": "^7.3.0" } } diff --git a/examples/react/expanding/src/main.tsx b/examples/react/expanding/src/main.tsx index 08ae8479d5..06c0a50867 100644 --- a/examples/react/expanding/src/main.tsx +++ b/examples/react/expanding/src/main.tsx @@ -17,12 +17,7 @@ import { import { makeData } from './makeData' import type { HTMLProps } from 'react' import type { Person } from './makeData' -import type { - Column, - ColumnDef, - ExpandedState, - Table, -} from '@tanstack/react-table' +import type { Column, ColumnDef, Table } from '@tanstack/react-table' import './index.css' const tableHelper = createTableHelper({ @@ -129,15 +124,9 @@ function App() { const [data, setData] = React.useState(() => makeData(100, 5, 3)) const refreshData = () => setData(() => makeData(100, 5, 3)) - const [expanded, setExpanded] = React.useState({}) - const table = tableHelper.useTable({ columns, data, - state: { - expanded, - }, - onExpandedChange: setExpanded, getSubRows: (row) => row.subRows, // filterFromLeafRows: true, // maxLeafRowFilterDepth: 0, @@ -145,129 +134,137 @@ function App() { }) return ( -
-
- - - {table.getHeaderGroups().map((headerGroup) => ( - - {headerGroup.headers.map((header) => { - return ( -
- {header.isPlaceholder ? null : ( -
- {flexRender( - header.column.columnDef.header, - header.getContext(), - )} - {header.column.getCanFilter() ? ( + ({ + expanded: state.expanded, + pagination: state.pagination, + })} + > + {(state) => ( +
+
+ + + {table.getHeaderGroups().map((headerGroup) => ( + + {headerGroup.headers.map((header) => { + return ( + + )} + + ) + })} + + ))} + + + {table.getRowModel().rows.map((row) => { + return ( + + {row.getAllCells().map((cell) => { + return ( + + ) + })} + ) })} - - ))} - - - {table.getRowModel().rows.map((row) => { - return ( - - {row.getAllCells().map((cell) => { - return ( - - ) - })} - - ) - })} - -
+ {header.isPlaceholder ? null : (
- + {flexRender( + header.column.columnDef.header, + header.getContext(), + )} + {header.column.getCanFilter() ? ( +
+ +
+ ) : null}
- ) : null} - - )} -
+ {flexRender( + cell.column.columnDef.cell, + cell.getContext(), + )} +
- {flexRender( - cell.column.columnDef.cell, - cell.getContext(), - )} -
-
-
- - - - - -
Page
- - {table.getState().pagination.pageIndex + 1} of{' '} - {table.getPageCount()} - -
- - | Go to page: - { - const page = e.target.value ? Number(e.target.value) - 1 : 0 - table.setPageIndex(page) - }} - className="border p-1 rounded w-16" - /> - - -
-
{table.getRowModel().rows.length} Rows
-
- -
-
- -
- -
{JSON.stringify(expanded, null, 2)}
- -
{JSON.stringify(table.getState().rowSelection, null, 2)}
-
+ +
+
+
+ + + + + +
Page
+ + {state.pagination.pageIndex + 1} of {table.getPageCount()} + +
+ + | Go to page: + { + const page = e.target.value ? Number(e.target.value) - 1 : 0 + table.setPageIndex(page) + }} + className="border p-1 rounded w-16" + /> + + +
+
{table.getRowModel().rows.length} Rows
+
+ +
+
+ +
+ +
{JSON.stringify(state.expanded, null, 2)}
+ +
{JSON.stringify(table.store.state.rowSelection, null, 2)}
+
+ )} + ) } diff --git a/examples/react/filters-faceted/index.html b/examples/react/filters-faceted/index.html index 3fc40c9367..b6dad34a8f 100644 --- a/examples/react/filters-faceted/index.html +++ b/examples/react/filters-faceted/index.html @@ -5,6 +5,7 @@ Vite App +
diff --git a/examples/react/filters-faceted/package.json b/examples/react/filters-faceted/package.json index f58350b1f5..4a3824b132 100644 --- a/examples/react/filters-faceted/package.json +++ b/examples/react/filters-faceted/package.json @@ -22,6 +22,6 @@ "@types/react-dom": "^19.2.3", "@vitejs/plugin-react": "^5.1.2", "typescript": "5.9.3", - "vite": "^7.2.7" + "vite": "^7.3.0" } } diff --git a/examples/react/filters-faceted/src/main.tsx b/examples/react/filters-faceted/src/main.tsx index cd0fdfff48..8a797ace30 100644 --- a/examples/react/filters-faceted/src/main.tsx +++ b/examples/react/filters-faceted/src/main.tsx @@ -23,7 +23,6 @@ import type { CellData, Column, ColumnDef, - ColumnFiltersState, RowData, TableFeatures, } from '@tanstack/react-table' @@ -48,10 +47,6 @@ declare module '@tanstack/react-table' { } function App() { - const [columnFilters, setColumnFilters] = React.useState( - [], - ) - const columns = React.useMemo>>( () => [ { @@ -112,152 +107,152 @@ function App() { }, columns, data, - state: { - columnFilters, - }, - onColumnFiltersChange: setColumnFilters, debugTable: true, debugHeaders: true, debugColumns: false, }) return ( -
- - - {table.getHeaderGroups().map((headerGroup) => ( - - {headerGroup.headers.map((header) => { + ({ + columnFilters: state.columnFilters, + pagination: state.pagination, + })} + > + {(state) => ( +
+
+ + {table.getHeaderGroups().map((headerGroup) => ( + + {headerGroup.headers.map((header) => { + return ( + + ) + })} + + ))} + + + {table.getRowModel().rows.map((row) => { return ( - + {row.getAllCells().map((cell) => { + return ( + + ) + })} + ) })} - - ))} - - - {table.getRowModel().rows.map((row) => { - return ( - - {row.getAllCells().map((cell) => { - return ( - - ) - })} - - ) - })} - -
+ {header.isPlaceholder ? null : ( + <> +
+ {flexRender( + header.column.columnDef.header, + header.getContext(), + )} + {{ + asc: ' 🔼', + desc: ' 🔽', + }[header.column.getIsSorted() as string] ?? null} +
+ {header.column.getCanFilter() ? ( +
+ +
+ ) : null} + + )} +
- {header.isPlaceholder ? null : ( - <> -
+
{flexRender( - header.column.columnDef.header, - header.getContext(), + cell.column.columnDef.cell, + cell.getContext(), )} - {{ - asc: ' 🔼', - desc: ' 🔽', - }[header.column.getIsSorted() as string] ?? null} - - {header.column.getCanFilter() ? ( -
- -
- ) : null} - - )} - +
- {flexRender( - cell.column.columnDef.cell, - cell.getContext(), - )} -
-
-
- - - - - -
Page
- - {table.getState().pagination.pageIndex + 1} of{' '} - {table.getPageCount()} - -
- - | Go to page: - { - const page = e.target.value ? Number(e.target.value) - 1 : 0 - table.setPageIndex(page) - }} - className="border p-1 rounded w-16" - /> - - -
-
{table.getPrePaginatedRowModel().rows.length} Rows
-
- -
-
- -
-
-        {JSON.stringify(
-          { columnFilters: table.getState().columnFilters },
-          null,
-          2,
-        )}
-      
-
+ + +
+
+ + + + + +
Page
+ + {state.pagination.pageIndex + 1} of {table.getPageCount()} + +
+ + | Go to page: + { + const page = e.target.value ? Number(e.target.value) - 1 : 0 + table.setPageIndex(page) + }} + className="border p-1 rounded w-16" + /> + + +
+
{table.getPrePaginatedRowModel().rows.length} Rows
+
+ +
+
+ +
+
+            {JSON.stringify({ columnFilters: state.columnFilters }, null, 2)}
+          
+
+ )} + ) } diff --git a/examples/react/filters-fuzzy/index.html b/examples/react/filters-fuzzy/index.html index 3fc40c9367..b6dad34a8f 100644 --- a/examples/react/filters-fuzzy/index.html +++ b/examples/react/filters-fuzzy/index.html @@ -5,6 +5,7 @@ Vite App +
diff --git a/examples/react/filters-fuzzy/package.json b/examples/react/filters-fuzzy/package.json index 32bba16e54..29b3e1b23f 100644 --- a/examples/react/filters-fuzzy/package.json +++ b/examples/react/filters-fuzzy/package.json @@ -22,6 +22,6 @@ "@types/react-dom": "^19.2.3", "@vitejs/plugin-react": "^5.1.2", "typescript": "5.9.3", - "vite": "^7.2.7" + "vite": "^7.3.0" } } diff --git a/examples/react/filters-fuzzy/src/main.tsx b/examples/react/filters-fuzzy/src/main.tsx index 410720a74e..a23ce2d8ac 100644 --- a/examples/react/filters-fuzzy/src/main.tsx +++ b/examples/react/filters-fuzzy/src/main.tsx @@ -18,13 +18,7 @@ import { import { compareItems, rankItem } from '@tanstack/match-sorter-utils' import { makeData } from './makeData' import type { Person } from './makeData' -import type { - Column, - ColumnDef, - ColumnFiltersState, - FilterFn, - SortFn, -} from '@tanstack/react-table' +import type { Column, ColumnDef, FilterFn, SortFn } from '@tanstack/react-table' // A TanStack fork of Kent C. Dodds' match-sorter library that provides ranking information import type { RankingInfo } from '@tanstack/match-sorter-utils' @@ -84,11 +78,6 @@ declare module '@tanstack/react-table' { function App() { const rerender = React.useReducer(() => ({}), {})[1] - const [columnFilters, setColumnFilters] = React.useState( - [], - ) - const [globalFilter, setGlobalFilter] = React.useState('') - const columns = React.useMemo>>( () => [ { @@ -135,12 +124,6 @@ function App() { }, columns, data, - state: { - columnFilters, - globalFilter, - }, - onColumnFiltersChange: setColumnFilters, - onGlobalFilterChange: setGlobalFilter, globalFilterFn: 'fuzzy', // apply fuzzy filter to the global filter (most common use case for fuzzy filter) debugTable: true, debugHeaders: true, @@ -149,162 +132,171 @@ function App() { // apply the fuzzy sort if the fullName column is being filtered React.useEffect(() => { - if (table.getState().columnFilters[0]?.id === 'fullName') { - if (table.getState().sorting[0]?.id !== 'fullName') { + if (table.store.state.columnFilters[0]?.id === 'fullName') { + if (table.store.state.sorting[0]?.id !== 'fullName') { table.setSorting([{ id: 'fullName', desc: false }]) } } - }, [table.getState().columnFilters[0]?.id]) + }, [table.store.state.columnFilters[0]?.id]) return ( -
-
- setGlobalFilter(String(value))} - className="p-2 font-lg shadow border border-block" - placeholder="Search all columns..." - /> -
-
- - - {table.getHeaderGroups().map((headerGroup) => ( - - {headerGroup.headers.map((header) => { + ({ + columnFilters: state.columnFilters, + globalFilter: state.globalFilter, + pagination: state.pagination, + })} + > + {(state) => ( +
+
+ table.setGlobalFilter(String(value))} + className="p-2 font-lg shadow border border-block" + placeholder="Search all columns..." + /> +
+
+
+ + {table.getHeaderGroups().map((headerGroup) => ( + + {headerGroup.headers.map((header) => { + return ( + + ) + })} + + ))} + + + {table.getRowModel().rows.map((row) => { return ( - + {row.getAllCells().map((cell) => { + return ( + + ) + })} + ) })} - - ))} - - - {table.getRowModel().rows.map((row) => { - return ( - - {row.getAllCells().map((cell) => { - return ( - - ) - })} - - ) - })} - -
+ {header.isPlaceholder ? null : ( + <> +
+ {flexRender( + header.column.columnDef.header, + header.getContext(), + )} + {{ + asc: ' 🔼', + desc: ' 🔽', + }[header.column.getIsSorted() as string] ?? null} +
+ {header.column.getCanFilter() ? ( +
+ +
+ ) : null} + + )} +
- {header.isPlaceholder ? null : ( - <> -
+
{flexRender( - header.column.columnDef.header, - header.getContext(), + cell.column.columnDef.cell, + cell.getContext(), )} - {{ - asc: ' 🔼', - desc: ' 🔽', - }[header.column.getIsSorted() as string] ?? null} - - {header.column.getCanFilter() ? ( -
- -
- ) : null} - - )} - +
- {flexRender( - cell.column.columnDef.cell, - cell.getContext(), - )} -
-
-
- - - - - -
Page
- - {table.getState().pagination.pageIndex + 1} of{' '} - {table.getPageCount()} - -
- - | Go to page: - { - const page = e.target.value ? Number(e.target.value) - 1 : 0 - table.setPageIndex(page) - }} - className="border p-1 rounded w-16" - /> - - -
-
{table.getPrePaginatedRowModel().rows.length} Rows
-
- -
-
- -
-
-        {JSON.stringify(
-          {
-            columnFilters: table.getState().columnFilters,
-            globalFilter: table.getState().globalFilter,
-          },
-          null,
-          2,
-        )}
-      
-
+ + +
+
+ + + + + +
Page
+ + {state.pagination.pageIndex + 1} of {table.getPageCount()} + +
+ + | Go to page: + { + const page = e.target.value ? Number(e.target.value) - 1 : 0 + table.setPageIndex(page) + }} + className="border p-1 rounded w-16" + /> + + +
+
{table.getPrePaginatedRowModel().rows.length} Rows
+
+ +
+
+ +
+
+            {JSON.stringify(
+              {
+                columnFilters: state.columnFilters,
+                globalFilter: state.globalFilter,
+              },
+              null,
+              2,
+            )}
+          
+
+ )} + ) } diff --git a/examples/react/filters/index.html b/examples/react/filters/index.html index 3fc40c9367..b6dad34a8f 100644 --- a/examples/react/filters/index.html +++ b/examples/react/filters/index.html @@ -5,6 +5,7 @@ Vite App +
diff --git a/examples/react/filters/package.json b/examples/react/filters/package.json index 5f996e68a0..6459df98d0 100644 --- a/examples/react/filters/package.json +++ b/examples/react/filters/package.json @@ -22,6 +22,6 @@ "@types/react-dom": "^19.2.3", "@vitejs/plugin-react": "^5.1.2", "typescript": "5.9.3", - "vite": "^7.2.7" + "vite": "^7.3.0" } } diff --git a/examples/react/filters/src/main.tsx b/examples/react/filters/src/main.tsx index f28f687c59..d0923bf215 100644 --- a/examples/react/filters/src/main.tsx +++ b/examples/react/filters/src/main.tsx @@ -19,7 +19,6 @@ import type { CellData, Column, ColumnDef, - ColumnFiltersState, RowData, TableFeatures, } from '@tanstack/react-table' @@ -45,10 +44,6 @@ const _features = tableFeatures({ function App() { const rerender = React.useReducer(() => ({}), {})[1] - const [columnFilters, setColumnFilters] = React.useState( - [], - ) - const columns = React.useMemo>>( () => [ { @@ -111,153 +106,153 @@ function App() { }, columns, data, - state: { - columnFilters, - }, - onColumnFiltersChange: setColumnFilters, debugTable: true, debugColumns: true, }) return ( -
- - - {table.getHeaderGroups().map((headerGroup) => ( - - {headerGroup.headers.map((header) => { + ({ + columnFilters: state.columnFilters, + pagination: state.pagination, + })} + > + {(state) => ( +
+
+ + {table.getHeaderGroups().map((headerGroup) => ( + + {headerGroup.headers.map((header) => { + return ( + + ) + })} + + ))} + + + {table.getRowModel().rows.map((row) => { return ( - + {row.getAllCells().map((cell) => { + return ( + + ) + })} + ) })} - - ))} - - - {table.getRowModel().rows.map((row) => { - return ( - - {row.getAllCells().map((cell) => { - return ( - - ) - })} - - ) - })} - -
+ {header.isPlaceholder ? null : ( + <> +
+ {flexRender( + header.column.columnDef.header, + header.getContext(), + )} + {{ + asc: ' 🔼', + desc: ' 🔽', + }[header.column.getIsSorted() as string] ?? null} +
+ {header.column.getCanFilter() ? ( +
+ +
+ ) : null} + + )} +
- {header.isPlaceholder ? null : ( - <> -
+
{flexRender( - header.column.columnDef.header, - header.getContext(), + cell.column.columnDef.cell, + cell.getContext(), )} - {{ - asc: ' 🔼', - desc: ' 🔽', - }[header.column.getIsSorted() as string] ?? null} - - {header.column.getCanFilter() ? ( -
- -
- ) : null} - - )} - +
- {flexRender( - cell.column.columnDef.cell, - cell.getContext(), - )} -
-
-
- - - - - -
Page
- - {table.getState().pagination.pageIndex + 1} of{' '} - {table.getPageCount()} - -
- - | Go to page: - { - const page = e.target.value ? Number(e.target.value) - 1 : 0 - table.setPageIndex(page) - }} - className="border p-1 rounded w-16" - /> - - -
-
{table.getPrePaginatedRowModel().rows.length} Rows
-
- -
-
- -
-
-        {JSON.stringify(
-          { columnFilters: table.getState().columnFilters },
-          null,
-          2,
-        )}
-      
-
+ + +
+
+ + + + + +
Page
+ + {state.pagination.pageIndex + 1} of {table.getPageCount()} + +
+ + | Go to page: + { + const page = e.target.value ? Number(e.target.value) - 1 : 0 + table.setPageIndex(page) + }} + className="border p-1 rounded w-16" + /> + + +
+
{table.getPrePaginatedRowModel().rows.length} Rows
+
+ +
+
+ +
+
+            {JSON.stringify({ columnFilters: state.columnFilters }, null, 2)}
+          
+
+ )} + ) } diff --git a/examples/react/full-width-resizable-table/.gitignore b/examples/react/full-width-resizable-table/.gitignore deleted file mode 100644 index 53f7466aca..0000000000 --- a/examples/react/full-width-resizable-table/.gitignore +++ /dev/null @@ -1,5 +0,0 @@ -node_modules -.DS_Store -dist -dist-ssr -*.local \ No newline at end of file diff --git a/examples/react/full-width-resizable-table/README.md b/examples/react/full-width-resizable-table/README.md deleted file mode 100755 index a2fd61f947..0000000000 --- a/examples/react/full-width-resizable-table/README.md +++ /dev/null @@ -1,4 +0,0 @@ -# Full Width Resizable Table - -- [Open this example in a new CodeSandbox](https://codesandbox.io/s/github/tanstack/table/tree/main/examples/react/full-width-resizable-table) -- `yarn` and `yarn start` to run and edit the example diff --git a/examples/react/full-width-resizable-table/index.html b/examples/react/full-width-resizable-table/index.html deleted file mode 100644 index 3fc40c9367..0000000000 --- a/examples/react/full-width-resizable-table/index.html +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - Vite App - - - -
- - - diff --git a/examples/react/full-width-resizable-table/package.json b/examples/react/full-width-resizable-table/package.json deleted file mode 100755 index 9a6936eb3d..0000000000 --- a/examples/react/full-width-resizable-table/package.json +++ /dev/null @@ -1,26 +0,0 @@ -{ - "name": "tanstack-table-example-full-width-resizable-table", - "version": "0.0.0", - "private": true, - "scripts": { - "dev": "vite", - "build": "vite build", - "serve": "vite preview", - "start": "vite", - "lint": "eslint ./src" - }, - "dependencies": { - "@faker-js/faker": "^10.1.0", - "@tanstack/react-table": "^9.0.0-alpha.10", - "react": "^19.2.3", - "react-dom": "^19.2.3" - }, - "devDependencies": { - "@rollup/plugin-replace": "^6.0.3", - "@types/react": "^19.2.7", - "@types/react-dom": "^19.2.3", - "@vitejs/plugin-react": "^5.1.2", - "typescript": "5.9.3", - "vite": "^7.2.7" - } -} diff --git a/examples/react/full-width-resizable-table/src/index.css b/examples/react/full-width-resizable-table/src/index.css deleted file mode 100755 index cad3351a76..0000000000 --- a/examples/react/full-width-resizable-table/src/index.css +++ /dev/null @@ -1,53 +0,0 @@ -html { - font-family: sans-serif; - font-size: 14px; -} - -table { - border: 1px solid lightgray; -} - -tbody { - border-bottom: 1px solid lightgray; -} - -th { - border-bottom: 1px solid lightgray; - border-right: 1px solid lightgray; - padding: 2px 4px; -} - -tfoot { - color: gray; -} - -tfoot th { - font-weight: normal; -} - -.resizer { - position: absolute; - right: 0; - top: 0; - height: 100%; - width: 5px; - background: rgba(0, 0, 0, 0.5); - cursor: col-resize; - user-select: none; - touch-action: none; -} - -.resizer.isResizing { - background: blue; - opacity: 1; -} - -@media (hover: hover) { - .resizer { - opacity: 0; - } - - *:hover > .resizer { - opacity: 1; - } -} diff --git a/examples/react/full-width-resizable-table/src/main.tsx b/examples/react/full-width-resizable-table/src/main.tsx deleted file mode 100644 index c4039b787f..0000000000 --- a/examples/react/full-width-resizable-table/src/main.tsx +++ /dev/null @@ -1,155 +0,0 @@ -import React from 'react' -import ReactDOM from 'react-dom/client' -import './index.css' -import { - columnResizingFeature, - columnSizingFeature, - flexRender, - rowPaginationFeature, - tableFeatures, - useTable, -} from '@tanstack/react-table' -import { makeData } from './makeData' -import type { ColumnDef } from '@tanstack/react-table' -import type { Person } from './makeData' - -const _features = tableFeatures({ - columnSizingFeature, - columnResizingFeature, - rowPaginationFeature, -}) - -const columns: Array> = [ - { - header: 'Name', - footer: (props) => props.column.id, - columns: [ - { - accessorKey: 'firstName', - cell: (info) => info.getValue(), - footer: (props) => props.column.id, - }, - { - accessorFn: (row) => row.lastName, - id: 'lastName', - cell: (info) => info.getValue(), - header: () => Last Name, - footer: (props) => props.column.id, - }, - ], - }, - { - header: 'Info', - footer: (props) => props.column.id, - columns: [ - { - accessorKey: 'age', - header: () => 'Age', - footer: (props) => props.column.id, - }, - { - header: 'More Info', - columns: [ - { - accessorKey: 'visits', - header: () => Visits, - footer: (props) => props.column.id, - }, - { - accessorKey: 'status', - header: 'Status', - footer: (props) => props.column.id, - }, - { - accessorKey: 'progress', - header: 'Profile Progress', - footer: (props) => props.column.id, - }, - ], - }, - ], - }, -] - -function App() { - const data = React.useMemo(() => makeData(20), []) - - const table = useTable({ - _features, - _rowModels: {}, - columns, - data, - enableColumnResizing: true, - columnResizeMode: 'onChange', - debugTable: true, - debugHeaders: true, - debugColumns: true, - }) - - return ( -
-
- - - {table.getHeaderGroups().map((headerGroup) => ( - - {headerGroup.headers.map((header) => { - return ( - - ) - })} - - ))} - - - {table.getRowModel().rows.map((row) => { - return ( - - {row.getVisibleCells().map((cell) => { - return ( - - ) - })} - - ) - })} - -
- {header.isPlaceholder - ? null - : flexRender( - header.column.columnDef.header, - header.getContext(), - )} - {header.column.getCanResize() && ( -
- )} -
- {flexRender( - cell.column.columnDef.cell, - cell.getContext(), - )} -
-
-
- ) -} - -const rootElement = document.getElementById('root') -if (!rootElement) throw new Error('Failed to find the root element') - -ReactDOM.createRoot(rootElement).render( - - - , -) diff --git a/examples/react/full-width-resizable-table/src/makeData.ts b/examples/react/full-width-resizable-table/src/makeData.ts deleted file mode 100755 index b9fb014aba..0000000000 --- a/examples/react/full-width-resizable-table/src/makeData.ts +++ /dev/null @@ -1,48 +0,0 @@ -import { faker } from '@faker-js/faker' - -export type Person = { - firstName: string - lastName: string - age: number - visits: number - progress: number - status: 'relationship' | 'complicated' | 'single' - subRows?: Array -} - -const range = (len: number) => { - const arr: Array = [] - for (let i = 0; i < len; i++) { - arr.push(i) - } - return arr -} - -const newPerson = (): Person => { - return { - firstName: faker.person.firstName(), - lastName: faker.person.lastName(), - age: faker.number.int(40), - visits: faker.number.int(1000), - progress: faker.number.int(100), - status: faker.helpers.shuffle([ - 'relationship', - 'complicated', - 'single', - ])[0], - } -} - -export function makeData(...lens: Array) { - const makeDataLevel = (depth = 0): Array => { - const len = lens[depth] - return range(len).map((d): Person => { - return { - ...newPerson(), - subRows: lens[depth + 1] ? makeDataLevel(depth + 1) : undefined, - } - }) - } - - return makeDataLevel() -} diff --git a/examples/react/full-width-resizable-table/tsconfig.json b/examples/react/full-width-resizable-table/tsconfig.json deleted file mode 100644 index 6d545f543f..0000000000 --- a/examples/react/full-width-resizable-table/tsconfig.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "compilerOptions": { - "target": "ES2020", - "useDefineForClassFields": true, - "lib": ["ES2020", "DOM", "DOM.Iterable"], - "module": "ESNext", - "skipLibCheck": true, - - /* Bundler mode */ - "moduleResolution": "bundler", - "allowImportingTsExtensions": true, - "resolveJsonModule": true, - "isolatedModules": true, - "noEmit": true, - "jsx": "react-jsx", - - /* Linting */ - "strict": true, - "noUnusedLocals": true, - "noUnusedParameters": true, - "noFallthroughCasesInSwitch": true - }, - "include": ["src"] -} diff --git a/examples/react/full-width-resizable-table/vite.config.js b/examples/react/full-width-resizable-table/vite.config.js deleted file mode 100644 index 2e1361723a..0000000000 --- a/examples/react/full-width-resizable-table/vite.config.js +++ /dev/null @@ -1,17 +0,0 @@ -import { defineConfig } from 'vite' -import react from '@vitejs/plugin-react' -import rollupReplace from '@rollup/plugin-replace' - -// https://vitejs.dev/config/ -export default defineConfig({ - plugins: [ - rollupReplace({ - preventAssignment: true, - values: { - __DEV__: JSON.stringify(true), - 'process.env.NODE_ENV': JSON.stringify('development'), - }, - }), - react(), - ], -}) diff --git a/examples/react/full-width-table/.gitignore b/examples/react/full-width-table/.gitignore deleted file mode 100755 index 4d29575de8..0000000000 --- a/examples/react/full-width-table/.gitignore +++ /dev/null @@ -1,23 +0,0 @@ -# See https://help.github.com/articles/ignoring-files/ for more about ignoring files. - -# dependencies -/node_modules -/.pnp -.pnp.js - -# testing -/coverage - -# production -/build - -# misc -.DS_Store -.env.local -.env.development.local -.env.test.local -.env.production.local - -npm-debug.log* -yarn-debug.log* -yarn-error.log* diff --git a/examples/react/full-width-table/README.md b/examples/react/full-width-table/README.md deleted file mode 100755 index 866e19028a..0000000000 --- a/examples/react/full-width-table/README.md +++ /dev/null @@ -1,4 +0,0 @@ -# Full Width Table (with collapsible cells) - -- [Open this example in a new CodeSandbox](https://codesandbox.io/s/github/tanstack/react-table/tree/master/examples/full-width-table) -- `yarn` and `yarn start` to run and edit the example diff --git a/examples/react/full-width-table/index.html b/examples/react/full-width-table/index.html deleted file mode 100644 index 3fc40c9367..0000000000 --- a/examples/react/full-width-table/index.html +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - Vite App - - - -
- - - diff --git a/examples/react/full-width-table/package.json b/examples/react/full-width-table/package.json deleted file mode 100755 index 2c4f6acfa6..0000000000 --- a/examples/react/full-width-table/package.json +++ /dev/null @@ -1,26 +0,0 @@ -{ - "name": "tanstack-table-example-full-width", - "version": "0.0.0", - "private": true, - "scripts": { - "dev": "vite", - "build": "vite build", - "serve": "vite preview", - "start": "vite", - "lint": "eslint ./src" - }, - "dependencies": { - "@faker-js/faker": "^10.1.0", - "@tanstack/react-table": "^9.0.0-alpha.10", - "react": "^19.2.3", - "react-dom": "^19.2.3" - }, - "devDependencies": { - "@rollup/plugin-replace": "^6.0.3", - "@types/react": "^19.2.7", - "@types/react-dom": "^19.2.3", - "@vitejs/plugin-react": "^5.1.2", - "typescript": "5.9.3", - "vite": "^7.2.7" - } -} diff --git a/examples/react/full-width-table/src/index.css b/examples/react/full-width-table/src/index.css deleted file mode 100755 index 43c09e0f6b..0000000000 --- a/examples/react/full-width-table/src/index.css +++ /dev/null @@ -1,26 +0,0 @@ -html { - font-family: sans-serif; - font-size: 14px; -} - -table { - border: 1px solid lightgray; -} - -tbody { - border-bottom: 1px solid lightgray; -} - -th { - border-bottom: 1px solid lightgray; - border-right: 1px solid lightgray; - padding: 2px 4px; -} - -tfoot { - color: gray; -} - -tfoot th { - font-weight: normal; -} diff --git a/examples/react/full-width-table/src/main.tsx b/examples/react/full-width-table/src/main.tsx deleted file mode 100644 index 02d8779c44..0000000000 --- a/examples/react/full-width-table/src/main.tsx +++ /dev/null @@ -1,224 +0,0 @@ -import React from 'react' -import ReactDOM from 'react-dom/client' -import './index.css' -import { - createPaginatedRowModel, - flexRender, - rowPaginationFeature, - tableFeatures, - useTable, -} from '@tanstack/react-table' -import { makeData } from './makeData' -import type { ColumnDef, PaginationState } from '@tanstack/react-table' -import type { Person } from './makeData' - -const _features = tableFeatures({ - rowPaginationFeature, -}) - -function App() { - const rerender = React.useReducer(() => ({}), {})[1] - - const columns = React.useMemo>>( - () => [ - { - header: 'Name', - footer: (props) => props.column.id, - columns: [ - { - accessorKey: 'firstName', - cell: (info) => info.getValue(), - footer: (props) => props.column.id, - }, - { - accessorFn: (row) => row.lastName, - id: 'lastName', - cell: (info) => info.getValue(), - header: () => Last Name, - footer: (props) => props.column.id, - }, - ], - }, - { - header: 'Info', - footer: (props) => props.column.id, - columns: [ - { - accessorKey: 'age', - header: () => 'Age', - footer: (props) => props.column.id, - }, - { - accessorKey: 'visits', - header: () => Visits, - footer: (props) => props.column.id, - }, - { - accessorKey: 'status', - header: 'Status', - footer: (props) => props.column.id, - }, - { - accessorKey: 'progress', - header: 'Profile Progress', - footer: (props) => props.column.id, - }, - ], - }, - ], - [], - ) - - const [data, setData] = React.useState(() => makeData(100000)) - const refreshData = () => setData(() => makeData(100000)) - - const [pagination, setPagination] = React.useState({ - pageIndex: 0, - pageSize: 10, - }) - - const table = useTable({ - _features, - _rowModels: { - paginatedRowModel: createPaginatedRowModel(), - }, - columns, - data, - state: { - pagination, - }, - onPaginationChange: setPagination, - debugTable: true, - }) - - return ( - <> -
-
- - - {table.getHeaderGroups().map((headerGroup) => ( - - {headerGroup.headers.map((header) => { - return ( - - ) - })} - - ))} - - - {table.getRowModel().rows.map((row) => { - return ( - - {row.getVisibleCells().map((cell) => { - return ( - - ) - })} - - ) - })} - -
- {header.isPlaceholder ? null : ( -
- {flexRender( - header.column.columnDef.header, - header.getContext(), - )} -
- )} -
- {flexRender( - cell.column.columnDef.cell, - cell.getContext(), - )} -
-
-
- - - - - -
Page
- - {table.getState().pagination.pageIndex + 1} of{' '} - {table.getPageCount()} - -
- - | Go to page: - { - const page = e.target.value ? Number(e.target.value) - 1 : 0 - table.setPageIndex(page) - }} - className="border p-1 rounded w-16" - /> - - -
-
{table.getRowModel().rows.length} Rows
-
- -
-
- -
-
- -
-
{JSON.stringify(pagination, null, 2)}
- - ) -} - -const rootElement = document.getElementById('root') -if (!rootElement) throw new Error('Failed to find the root element') - -ReactDOM.createRoot(rootElement).render( - - - , -) diff --git a/examples/react/full-width-table/src/makeData.ts b/examples/react/full-width-table/src/makeData.ts deleted file mode 100755 index b9fb014aba..0000000000 --- a/examples/react/full-width-table/src/makeData.ts +++ /dev/null @@ -1,48 +0,0 @@ -import { faker } from '@faker-js/faker' - -export type Person = { - firstName: string - lastName: string - age: number - visits: number - progress: number - status: 'relationship' | 'complicated' | 'single' - subRows?: Array -} - -const range = (len: number) => { - const arr: Array = [] - for (let i = 0; i < len; i++) { - arr.push(i) - } - return arr -} - -const newPerson = (): Person => { - return { - firstName: faker.person.firstName(), - lastName: faker.person.lastName(), - age: faker.number.int(40), - visits: faker.number.int(1000), - progress: faker.number.int(100), - status: faker.helpers.shuffle([ - 'relationship', - 'complicated', - 'single', - ])[0], - } -} - -export function makeData(...lens: Array) { - const makeDataLevel = (depth = 0): Array => { - const len = lens[depth] - return range(len).map((d): Person => { - return { - ...newPerson(), - subRows: lens[depth + 1] ? makeDataLevel(depth + 1) : undefined, - } - }) - } - - return makeDataLevel() -} diff --git a/examples/react/full-width-table/tsconfig.json b/examples/react/full-width-table/tsconfig.json deleted file mode 100644 index 6d545f543f..0000000000 --- a/examples/react/full-width-table/tsconfig.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "compilerOptions": { - "target": "ES2020", - "useDefineForClassFields": true, - "lib": ["ES2020", "DOM", "DOM.Iterable"], - "module": "ESNext", - "skipLibCheck": true, - - /* Bundler mode */ - "moduleResolution": "bundler", - "allowImportingTsExtensions": true, - "resolveJsonModule": true, - "isolatedModules": true, - "noEmit": true, - "jsx": "react-jsx", - - /* Linting */ - "strict": true, - "noUnusedLocals": true, - "noUnusedParameters": true, - "noFallthroughCasesInSwitch": true - }, - "include": ["src"] -} diff --git a/examples/react/full-width-table/vite.config.js b/examples/react/full-width-table/vite.config.js deleted file mode 100644 index 2e1361723a..0000000000 --- a/examples/react/full-width-table/vite.config.js +++ /dev/null @@ -1,17 +0,0 @@ -import { defineConfig } from 'vite' -import react from '@vitejs/plugin-react' -import rollupReplace from '@rollup/plugin-replace' - -// https://vitejs.dev/config/ -export default defineConfig({ - plugins: [ - rollupReplace({ - preventAssignment: true, - values: { - __DEV__: JSON.stringify(true), - 'process.env.NODE_ENV': JSON.stringify('development'), - }, - }), - react(), - ], -}) diff --git a/examples/react/fully-controlled/index.html b/examples/react/fully-controlled/index.html index 3fc40c9367..b6dad34a8f 100644 --- a/examples/react/fully-controlled/index.html +++ b/examples/react/fully-controlled/index.html @@ -5,6 +5,7 @@ Vite App +
diff --git a/examples/react/fully-controlled/package.json b/examples/react/fully-controlled/package.json index 8226e81628..9bcdf4ca3c 100644 --- a/examples/react/fully-controlled/package.json +++ b/examples/react/fully-controlled/package.json @@ -21,6 +21,6 @@ "@types/react-dom": "^19.2.3", "@vitejs/plugin-react": "^5.1.2", "typescript": "5.9.3", - "vite": "^7.2.7" + "vite": "^7.3.0" } } diff --git a/examples/react/fully-controlled/src/main.tsx b/examples/react/fully-controlled/src/main.tsx index dc9c5159f9..6b41a02bd9 100644 --- a/examples/react/fully-controlled/src/main.tsx +++ b/examples/react/fully-controlled/src/main.tsx @@ -191,7 +191,7 @@ function App() {
Page
- {table.getState().pagination.pageIndex + 1} of{' '} + {table.store.state.pagination.pageIndex + 1} of{' '} {table.getPageCount()}
@@ -201,7 +201,7 @@ function App() { type="number" min="1" max={table.getPageCount()} - defaultValue={table.getState().pagination.pageIndex + 1} + defaultValue={table.store.state.pagination.pageIndex + 1} onChange={(e) => { const page = e.target.value ? Number(e.target.value) - 1 : 0 table.setPageIndex(page) @@ -210,7 +210,7 @@ function App() { /> { - const page = e.target.value ? Number(e.target.value) - 1 : 0 - table.setPageIndex(page) - }} - className="border p-1 rounded w-16" - /> - - -
-
{table.getRowModel().rows.length} Rows
-
- -
-
- -
-
{JSON.stringify(grouping, null, 2)}
-
+ ) + )} + + ) + })} + + ) + })} + + +
+
+ + + + + +
Page
+ + {state.pagination.pageIndex + 1} of {table.getPageCount()} + +
+ + | Go to page: + { + const page = e.target.value ? Number(e.target.value) - 1 : 0 + table.setPageIndex(page) + }} + className="border p-1 rounded w-16" + /> + + +
+
{table.getRowModel().rows.length} Rows
+
+ +
+
+ +
+
{JSON.stringify(state.grouping, null, 2)}
+
+ )} + ) } diff --git a/examples/react/pagination-controlled/index.html b/examples/react/pagination-controlled/index.html index 3fc40c9367..b6dad34a8f 100644 --- a/examples/react/pagination-controlled/index.html +++ b/examples/react/pagination-controlled/index.html @@ -5,6 +5,7 @@ Vite App +
diff --git a/examples/react/pagination-controlled/package.json b/examples/react/pagination-controlled/package.json index e79235adf6..49c0c494de 100644 --- a/examples/react/pagination-controlled/package.json +++ b/examples/react/pagination-controlled/package.json @@ -22,6 +22,6 @@ "@types/react-dom": "^19.2.3", "@vitejs/plugin-react": "^5.1.2", "typescript": "5.9.3", - "vite": "^7.2.7" + "vite": "^7.3.0" } } diff --git a/examples/react/pagination-controlled/src/main.tsx b/examples/react/pagination-controlled/src/main.tsx index 58413db0b4..bf7814549a 100644 --- a/examples/react/pagination-controlled/src/main.tsx +++ b/examples/react/pagination-controlled/src/main.tsx @@ -186,7 +186,7 @@ function App() {
Page
- {table.getState().pagination.pageIndex + 1} of{' '} + {table.store.state.pagination.pageIndex + 1} of{' '} {table.getPageCount().toLocaleString()}
@@ -196,7 +196,7 @@ function App() { type="number" min="1" max={table.getPageCount()} - defaultValue={table.getState().pagination.pageIndex + 1} + defaultValue={table.store.state.pagination.pageIndex + 1} onChange={(e) => { const page = e.target.value ? Number(e.target.value) - 1 : 0 table.setPageIndex(page) @@ -205,7 +205,7 @@ function App() { /> { - const page = e.target.value ? Number(e.target.value) - 1 : 0 - table.setPageIndex(page) - }} - className="border p-1 rounded w-16" - /> - - -
-
- Showing {table.getRowModel().rows.length.toLocaleString()} of{' '} - {table.getRowCount().toLocaleString()} Rows -
-
{JSON.stringify(table.getState().pagination, null, 2)}
-
+ + +
+
+ + + + + +
Page
+ + {state.pagination.pageIndex + 1} of{' '} + {table.getPageCount().toLocaleString()} + +
+ + | Go to page: + { + const page = e.target.value ? Number(e.target.value) - 1 : 0 + table.setPageIndex(page) + }} + className="border p-1 rounded w-16" + /> + + +
+
+ Showing {table.getRowModel().rows.length.toLocaleString()} of{' '} + {table.getRowCount().toLocaleString()} Rows +
+
{JSON.stringify(state.pagination, null, 2)}
+
+ )} + ) } diff --git a/examples/react/query-router-search-params/index.html b/examples/react/query-router-search-params/index.html index 3fc40c9367..b6dad34a8f 100644 --- a/examples/react/query-router-search-params/index.html +++ b/examples/react/query-router-search-params/index.html @@ -5,6 +5,7 @@ Vite App +
diff --git a/examples/react/query-router-search-params/package.json b/examples/react/query-router-search-params/package.json index 51be42d4d2..00acff3896 100644 --- a/examples/react/query-router-search-params/package.json +++ b/examples/react/query-router-search-params/package.json @@ -11,7 +11,7 @@ }, "dependencies": { "@tanstack/react-query": "^5.90.12", - "@tanstack/react-router": "^1.141.1", + "@tanstack/react-router": "^1.141.6", "@tanstack/react-table": "^9.0.0-alpha.10", "react": "^19.2.3", "react-dom": "^19.2.3" @@ -19,11 +19,11 @@ "devDependencies": { "@faker-js/faker": "^10.1.0", "@rollup/plugin-replace": "^6.0.3", - "@tanstack/router-vite-plugin": "^1.141.1", + "@tanstack/router-vite-plugin": "^1.141.7", "@types/react": "^19.2.7", "@types/react-dom": "^19.2.3", "@vitejs/plugin-react": "^5.1.2", "typescript": "5.9.3", - "vite": "^7.2.7" + "vite": "^7.3.0" } } diff --git a/examples/react/query-router-search-params/src/components/table.tsx b/examples/react/query-router-search-params/src/components/table.tsx index b8cc2fac86..d1fee79190 100644 --- a/examples/react/query-router-search-params/src/components/table.tsx +++ b/examples/react/query-router-search-params/src/components/table.tsx @@ -171,7 +171,7 @@ export default function Table>({
Page
- {table.getState().pagination.pageIndex + 1} of{' '} + {table.store.state.pagination.pageIndex + 1} of{' '} {table.getPageCount()}
@@ -179,7 +179,7 @@ export default function Table>({ | Go to page: { const page = e.target.value ? Number(e.target.value) - 1 : 0 table.setPageIndex(page) @@ -188,7 +188,7 @@ export default function Table>({ /> { table.setPageSize(Number(e.target.value)) }} diff --git a/examples/react/row-selection/index.html b/examples/react/row-selection/index.html index 3fc40c9367..b6dad34a8f 100644 --- a/examples/react/row-selection/index.html +++ b/examples/react/row-selection/index.html @@ -5,6 +5,7 @@ Vite App +
diff --git a/examples/react/row-selection/package.json b/examples/react/row-selection/package.json index 31f08344c9..21c11ad30e 100644 --- a/examples/react/row-selection/package.json +++ b/examples/react/row-selection/package.json @@ -11,6 +11,7 @@ }, "dependencies": { "@faker-js/faker": "^10.1.0", + "@tanstack/react-store": "^0.8.0", "@tanstack/react-table": "^9.0.0-alpha.10", "react": "^19.2.3", "react-dom": "^19.2.3" @@ -21,6 +22,6 @@ "@types/react-dom": "^19.2.3", "@vitejs/plugin-react": "^5.1.2", "typescript": "5.9.3", - "vite": "^7.2.7" + "vite": "^7.3.0" } } diff --git a/examples/react/row-selection/src/main.tsx b/examples/react/row-selection/src/main.tsx index 5a139baba8..17ad502b1e 100644 --- a/examples/react/row-selection/src/main.tsx +++ b/examples/react/row-selection/src/main.tsx @@ -6,6 +6,7 @@ import { createPaginatedRowModel, filterFns, flexRender, + globalFilteringFeature, rowPaginationFeature, rowSelectionFeature, tableFeatures, @@ -21,25 +22,29 @@ const _features = tableFeatures({ rowPaginationFeature, rowSelectionFeature, columnFilteringFeature, + globalFilteringFeature, }) function App() { const rerender = React.useReducer(() => ({}), {})[1] - const [rowSelection, setRowSelection] = React.useState({}) - const [globalFilter, setGlobalFilter] = React.useState('') - const columns = React.useMemo>>( () => [ { id: 'select', - header: ({ table }) => ( - - ), + header: () => { + return ( + state.rowSelection}> + {() => ( + + )} + + ) + }, cell: ({ row }) => (
makeData(1_000)) const refreshData = () => setData(() => makeData(100_000)) // stress test - const table = useTable({ - _features, - _rowModels: { - filteredRowModel: createFilteredRowModel(filterFns), - paginatedRowModel: createPaginatedRowModel(), - }, - columns, - data, - state: { - rowSelection, + const table = useTable( + { + _features, + _rowModels: { + filteredRowModel: createFilteredRowModel(filterFns), + paginatedRowModel: createPaginatedRowModel(), + }, + columns, + data, + getRowId: (row) => row.id, + enableRowSelection: true, // enable row selection for all rows + // enableRowSelection: row => row.original.age > 18, // or enable row selection conditionally per row + debugTable: true, }, - getRowId: (row) => row.id, - enableRowSelection: true, // enable row selection for all rows - // enableRowSelection: row => row.original.age > 18, // or enable row selection conditionally per row - onRowSelectionChange: setRowSelection, - debugTable: true, - }) + // (state) => state, // uncomment to subscribe to the entire table state (this is how v8 used to work by default) + ) + + table.state.rowSelection return ( -
-
- setGlobalFilter(e.target.value)} - className="p-2 font-lg shadow border border-block" - placeholder="Search all columns..." - /> -
-
- - - {table.getHeaderGroups().map((headerGroup) => ( - - {headerGroup.headers.map((header) => { - return ( - - - -
- {header.isPlaceholder ? null : ( - <> - {flexRender( - header.column.columnDef.header, - header.getContext(), + ({ + // don't include row selection state to optimize re-renders + columnFilters: state.columnFilters, + globalFilter: state.globalFilter, + pagination: state.pagination, + })} + > + {(state) => ( +
+
+ table.setGlobalFilter(e.target.value)} + className="p-2 font-lg shadow border border-block" + placeholder="Search all columns..." + /> +
+
+ + + {table.getHeaderGroups().map((headerGroup) => ( + + {headerGroup.headers.map((header) => { + return ( + + ) + })} + + ))} + + + {table.getRowModel().rows.map((row) => { + return ( + state.rowSelection[row.id]} // only re-render row when row selection changes (could down move to cell render too) + > + {() => ( + + {row.getAllCells().map((cell) => { + return ( + + ) + })} + )} - + ) })} - - ))} - - - {table.getRowModel().rows.map((row) => { - return ( - - {row.getAllCells().map((cell) => { - return ( - - ) - })} + + + + + - ) - })} - - - -
+ {header.isPlaceholder ? null : ( + <> + {flexRender( + header.column.columnDef.header, + header.getContext(), + )} + {header.column.getCanFilter() ? ( +
+ +
+ ) : null} + )} - {header.column.getCanFilter() ? ( -
- -
- ) : null} - +
+ {flexRender( + cell.column.columnDef.cell, + cell.getContext(), + )} +
- {flexRender( - cell.column.columnDef.cell, - cell.getContext(), - )} -
+ state.rowSelection}> + {() => ( + + )} + + + Page Rows ({table.getRowModel().rows.length}) +
- +
+
+
+ + + + + +
Page
+ + {table.store.state.pagination.pageIndex + 1} of{' '} + {table.getPageCount()} + +
+ + | Go to page: + { + const page = e.target.value ? Number(e.target.value) - 1 : 0 + table.setPageIndex(page) + }} + className="border p-1 rounded w-16" /> - -
Page Rows ({table.getRowModel().rows.length})
-
-
- - - - - -
Page
- - {table.getState().pagination.pageIndex + 1} of{' '} - {table.getPageCount()} - -
- - | Go to page: - { - const page = e.target.value ? Number(e.target.value) - 1 : 0 - table.setPageIndex(page) - }} - className="border p-1 rounded w-16" - /> - - -
-
-
- {Object.keys(rowSelection).length} of{' '} - {table.getPreFilteredRowModel().rows.length} Total Rows Selected -
-
-
-
- -
-
- -
-
- -
-
- -
{JSON.stringify(table.getState().rowSelection, null, 2)}
-
-
+ + +
+
+
+ ({ + numSelected: Object.keys(state.rowSelection).length, + })} + > + {({ numSelected }) => <>{numSelected} of } + + {table.getPreFilteredRowModel().rows.length} Total Rows Selected +
+
+
+
+ +
+
+ +
+
+ +
+
+ + state}> + {(state) =>
{JSON.stringify(state, null, 2)}
} +
+
+
+ )} + ) } diff --git a/examples/react/shadcn-basic/index.html b/examples/react/shadcn-basic/index.html index 3fc40c9367..b6dad34a8f 100644 --- a/examples/react/shadcn-basic/index.html +++ b/examples/react/shadcn-basic/index.html @@ -5,6 +5,7 @@ Vite App +
diff --git a/examples/react/shadcn-basic/package.json b/examples/react/shadcn-basic/package.json index 8b8f4ec2fe..9b74449ee4 100644 --- a/examples/react/shadcn-basic/package.json +++ b/examples/react/shadcn-basic/package.json @@ -16,7 +16,7 @@ "@tanstack/react-table": "^9.0.0-alpha.10", "class-variance-authority": "^0.7.1", "clsx": "^2.1.1", - "lucide-react": "^0.561.0", + "lucide-react": "^0.562.0", "react": "^19.2.3", "react-dom": "^19.2.3", "tailwind-merge": "^3.4.0", @@ -29,6 +29,6 @@ "@types/react-dom": "^19.2.3", "@vitejs/plugin-react": "^5.1.2", "typescript": "5.9.3", - "vite": "^7.2.7" + "vite": "^7.3.0" } } diff --git a/examples/react/shadcn-kitchen-sink/index.html b/examples/react/shadcn-kitchen-sink/index.html index 3fc40c9367..b6dad34a8f 100644 --- a/examples/react/shadcn-kitchen-sink/index.html +++ b/examples/react/shadcn-kitchen-sink/index.html @@ -5,6 +5,7 @@ Vite App +
diff --git a/examples/react/shadcn-kitchen-sink/package.json b/examples/react/shadcn-kitchen-sink/package.json index 156dbcc3b8..774df35774 100644 --- a/examples/react/shadcn-kitchen-sink/package.json +++ b/examples/react/shadcn-kitchen-sink/package.json @@ -28,9 +28,9 @@ "clsx": "^2.1.1", "cmdk": "1.1.1", "date-fns": "^4.1.0", - "lucide-react": "^0.561.0", + "lucide-react": "^0.562.0", "react": "^19.2.3", - "react-day-picker": "9.12.0", + "react-day-picker": "9.13.0", "react-dom": "^19.2.3", "tailwind-merge": "^3.4.0", "tailwindcss-animate": "^1.0.7" @@ -40,10 +40,10 @@ "@types/react": "^19.2.7", "@types/react-dom": "^19.2.3", "@vitejs/plugin-react": "^5.1.2", - "autoprefixer": "^10.4.22", + "autoprefixer": "^10.4.23", "postcss": "^8.5.6", "tailwindcss": "^4.1.18", "typescript": "5.9.3", - "vite": "^7.2.7" + "vite": "^7.3.0" } } diff --git a/examples/react/shadcn-kitchen-sink/src/components/data-table/data-table-pagination.tsx b/examples/react/shadcn-kitchen-sink/src/components/data-table/data-table-pagination.tsx index 0556c3d459..0f55a03c28 100644 --- a/examples/react/shadcn-kitchen-sink/src/components/data-table/data-table-pagination.tsx +++ b/examples/react/shadcn-kitchen-sink/src/components/data-table/data-table-pagination.tsx @@ -36,13 +36,15 @@ export function DataTablePagination({

Rows per page

- Page {table.getState().pagination.pageIndex + 1} of{' '} + Page {table.store.state.pagination.pageIndex + 1} of{' '} {table.getPageCount()}
diff --git a/examples/react/shadcn-kitchen-sink/src/main.tsx b/examples/react/shadcn-kitchen-sink/src/main.tsx index e06cbffdd4..07dc1d599c 100644 --- a/examples/react/shadcn-kitchen-sink/src/main.tsx +++ b/examples/react/shadcn-kitchen-sink/src/main.tsx @@ -343,7 +343,7 @@ function App() { colSizes[`--col-${header.column.id}-size`] = header.column.getSize() } return colSizes - }, [table.getState().columnSizing]) + }, [table.store.state.columnSizing]) return (
diff --git a/examples/react/sorting/index.html b/examples/react/sorting/index.html index 3fc40c9367..b6dad34a8f 100644 --- a/examples/react/sorting/index.html +++ b/examples/react/sorting/index.html @@ -5,6 +5,7 @@ Vite App +
diff --git a/examples/react/sorting/package.json b/examples/react/sorting/package.json index 214009ea2b..81d7dca2ff 100644 --- a/examples/react/sorting/package.json +++ b/examples/react/sorting/package.json @@ -21,6 +21,6 @@ "@types/react-dom": "^19.2.3", "@vitejs/plugin-react": "^5.1.2", "typescript": "5.9.3", - "vite": "^7.2.7" + "vite": "^7.3.0" } } diff --git a/examples/react/sorting/src/main.tsx b/examples/react/sorting/src/main.tsx index 03b68597dd..551d98b3fe 100644 --- a/examples/react/sorting/src/main.tsx +++ b/examples/react/sorting/src/main.tsx @@ -10,7 +10,7 @@ import { useTable, } from '@tanstack/react-table' import { makeData } from './makeData' -import type { ColumnDef, SortFn, SortingState } from '@tanstack/react-table' +import type { ColumnDef, SortFn } from '@tanstack/react-table' import type { Person } from './makeData' const _features = tableFeatures({ @@ -28,9 +28,6 @@ const sortStatusFn: SortFn = (rowA, rowB, _columnId) => { function App() { const rerender = React.useReducer(() => ({}), {})[1] - // optionally, manage sorting state in your own state management - const [sorting, setSorting] = React.useState([]) - const columns = React.useMemo>>( () => [ { @@ -83,105 +80,106 @@ function App() { const [data, setData] = React.useState(() => makeData(1_000)) const refreshData = () => setData(() => makeData(100_000)) // stress test with 100k rows - const table = useTable({ - _features, - _rowModels: { - sortedRowModel: createSortedRowModel(sortFns), // client-side sorting - }, - columns, - data, - debugTable: true, - onSortingChange: setSorting, // optionally control sorting state in your own scope for easy access - // sortFns: { - // sortStatusFn, //or provide our custom sorting function globally for all columns to be able to use - // }, - // no need to pass pageCount or rowCount with client-side pagination as it is calculated automatically - state: { - sorting, + const table = useTable( + { + _features, + _rowModels: { + sortedRowModel: createSortedRowModel(sortFns), // client-side sorting + }, + columns, + data, + debugTable: true, + // no need to pass pageCount or rowCount with client-side pagination as it is calculated automatically + // autoResetPageIndex: false, // turn off page index reset when sorting or filtering - default on/true + // enableMultiSort: false, //Don't allow shift key to sort multiple columns - default on/true + // enableSorting: false, // - default on/true + // enableSortingRemoval: false, //Don't allow - default on/true + // isMultiSortEvent: (e) => true, //Make all clicks multi-sort - default requires `shift` key + // maxMultiSortColCount: 3, // only allow 3 columns to be sorted at once - default is Infinity }, - // autoResetPageIndex: false, // turn off page index reset when sorting or filtering - default on/true - // enableMultiSort: false, //Don't allow shift key to sort multiple columns - default on/true - // enableSorting: false, // - default on/true - // enableSortingRemoval: false, //Don't allow - default on/true - // isMultiSortEvent: (e) => true, //Make all clicks multi-sort - default requires `shift` key - // maxMultiSortColCount: 3, // only allow 3 columns to be sorted at once - default is Infinity - }) + // (state) => state, // uncomment to subscribe to the entire table state (this is how v8 used to work by default) + ) return ( -
-
- - - {table.getHeaderGroups().map((headerGroup) => ( - - {headerGroup.headers.map((header) => { - return ( - - ) - })} - - ))} - - - {table - .getRowModel() - .rows.slice(0, 10) - .map((row) => { - return ( - - {row.getAllCells().map((cell) => { + ({ sorting: state.sorting })}> + {(state) => ( +
+
+
- {header.isPlaceholder ? null : ( -
- {flexRender( - header.column.columnDef.header, - header.getContext(), - )} - {{ - asc: ' 🔼', - desc: ' 🔽', - }[header.column.getIsSorted() as string] ?? null} -
- )} -
+ + {table.getHeaderGroups().map((headerGroup) => ( + + {headerGroup.headers.map((header) => { return ( - ) })} - ) - })} - -
- {flexRender( - cell.column.columnDef.cell, - cell.getContext(), + + {header.isPlaceholder ? null : ( +
+ {flexRender( + header.column.columnDef.header, + header.getContext(), + )} + {{ + asc: ' 🔼', + desc: ' 🔽', + }[header.column.getIsSorted() as string] ?? null} +
)} - +
-
{table.getRowModel().rows.length.toLocaleString()} Rows
-
- -
-
- -
-
{JSON.stringify(sorting, null, 2)}
-
+ ))} + + + {table + .getRowModel() + .rows.slice(0, 10) + .map((row) => { + return ( + + {row.getAllCells().map((cell) => { + return ( + + {flexRender( + cell.column.columnDef.cell, + cell.getContext(), + )} + + ) + })} + + ) + })} + + +
{table.getRowModel().rows.length.toLocaleString()} Rows
+
+ +
+
+ +
+
{JSON.stringify(state.sorting, null, 2)}
+
+ )} + ) } diff --git a/examples/react/sub-components/index.html b/examples/react/sub-components/index.html index 3fc40c9367..b6dad34a8f 100644 --- a/examples/react/sub-components/index.html +++ b/examples/react/sub-components/index.html @@ -5,6 +5,7 @@ Vite App +
diff --git a/examples/react/sub-components/package.json b/examples/react/sub-components/package.json index 9b6d8024e1..9766dc7bd9 100644 --- a/examples/react/sub-components/package.json +++ b/examples/react/sub-components/package.json @@ -21,6 +21,6 @@ "@types/react-dom": "^19.2.3", "@vitejs/plugin-react": "^5.1.2", "typescript": "5.9.3", - "vite": "^7.2.7" + "vite": "^7.3.0" } } diff --git a/examples/react/virtualized-columns-experimental/index.html b/examples/react/virtualized-columns-experimental/index.html index fa04f89341..217036eed9 100644 --- a/examples/react/virtualized-columns-experimental/index.html +++ b/examples/react/virtualized-columns-experimental/index.html @@ -5,6 +5,7 @@ Vite App +
diff --git a/examples/react/virtualized-columns-experimental/package.json b/examples/react/virtualized-columns-experimental/package.json index cb9098b1e1..3f32371bf4 100644 --- a/examples/react/virtualized-columns-experimental/package.json +++ b/examples/react/virtualized-columns-experimental/package.json @@ -21,6 +21,6 @@ "@types/react-dom": "^19.2.3", "@vitejs/plugin-react": "^5.1.2", "typescript": "5.9.3", - "vite": "^7.2.7" + "vite": "^7.3.0" } } diff --git a/examples/react/virtualized-columns-experimental/src/main.tsx b/examples/react/virtualized-columns-experimental/src/main.tsx index 568b8159d7..1bf1d67c44 100644 --- a/examples/react/virtualized-columns-experimental/src/main.tsx +++ b/examples/react/virtualized-columns-experimental/src/main.tsx @@ -263,7 +263,7 @@ function TableBody({ React.useLayoutEffect(() => { rowVirtualizer.measure() - }, [table.getState()]) + }, [table.store.state]) const virtualRowIndexes = rowVirtualizer.getVirtualIndexes() diff --git a/examples/react/virtualized-columns/index.html b/examples/react/virtualized-columns/index.html index fa04f89341..217036eed9 100644 --- a/examples/react/virtualized-columns/index.html +++ b/examples/react/virtualized-columns/index.html @@ -5,6 +5,7 @@ Vite App +
diff --git a/examples/react/virtualized-columns/package.json b/examples/react/virtualized-columns/package.json index 0f4584a20e..02cdb910a7 100644 --- a/examples/react/virtualized-columns/package.json +++ b/examples/react/virtualized-columns/package.json @@ -22,6 +22,6 @@ "@types/react-dom": "^19.2.3", "@vitejs/plugin-react": "^5.1.2", "typescript": "5.9.3", - "vite": "^7.2.7" + "vite": "^7.3.0" } } diff --git a/examples/react/virtualized-infinite-scrolling/index.html b/examples/react/virtualized-infinite-scrolling/index.html index 3fc40c9367..b6dad34a8f 100644 --- a/examples/react/virtualized-infinite-scrolling/index.html +++ b/examples/react/virtualized-infinite-scrolling/index.html @@ -5,6 +5,7 @@ Vite App +
diff --git a/examples/react/virtualized-infinite-scrolling/package.json b/examples/react/virtualized-infinite-scrolling/package.json index fbb440eb93..a5ac21f8aa 100644 --- a/examples/react/virtualized-infinite-scrolling/package.json +++ b/examples/react/virtualized-infinite-scrolling/package.json @@ -23,6 +23,6 @@ "@types/react-dom": "^19.2.3", "@vitejs/plugin-react": "^5.1.2", "typescript": "5.9.3", - "vite": "^7.2.7" + "vite": "^7.3.0" } } diff --git a/examples/react/virtualized-rows-experimental/index.html b/examples/react/virtualized-rows-experimental/index.html index fa04f89341..217036eed9 100644 --- a/examples/react/virtualized-rows-experimental/index.html +++ b/examples/react/virtualized-rows-experimental/index.html @@ -5,6 +5,7 @@ Vite App +
diff --git a/examples/react/virtualized-rows-experimental/package.json b/examples/react/virtualized-rows-experimental/package.json index fee9e3a756..134314f845 100644 --- a/examples/react/virtualized-rows-experimental/package.json +++ b/examples/react/virtualized-rows-experimental/package.json @@ -21,6 +21,6 @@ "@types/react-dom": "^19.2.3", "@vitejs/plugin-react": "^5.1.2", "typescript": "5.9.3", - "vite": "^7.2.7" + "vite": "^7.3.0" } } diff --git a/examples/react/virtualized-rows-experimental/src/main.tsx b/examples/react/virtualized-rows-experimental/src/main.tsx index 81d8734f46..4c6ac8b2ae 100644 --- a/examples/react/virtualized-rows-experimental/src/main.tsx +++ b/examples/react/virtualized-rows-experimental/src/main.tsx @@ -201,7 +201,7 @@ function TableBodyWrapper({ table, tableContainerRef }: TableBodyWrapperProps) { React.useLayoutEffect(() => { rowVirtualizer.measure() - }, [table.getState()]) + }, [table.store.state]) return ( Vite App +
diff --git a/examples/react/virtualized-rows/package.json b/examples/react/virtualized-rows/package.json index dde17aca2c..99403fa95a 100644 --- a/examples/react/virtualized-rows/package.json +++ b/examples/react/virtualized-rows/package.json @@ -22,6 +22,6 @@ "@types/react-dom": "^19.2.3", "@vitejs/plugin-react": "^5.1.2", "typescript": "5.9.3", - "vite": "^7.2.7" + "vite": "^7.3.0" } } diff --git a/examples/solid/basic-table-helper/package.json b/examples/solid/basic-table-helper/package.json index 007dff27aa..444ea6aee2 100644 --- a/examples/solid/basic-table-helper/package.json +++ b/examples/solid/basic-table-helper/package.json @@ -12,7 +12,7 @@ "license": "MIT", "devDependencies": { "typescript": "5.9.3", - "vite": "^7.2.7", + "vite": "^7.3.0", "vite-plugin-solid": "^2.11.10" }, "dependencies": { diff --git a/examples/solid/basic/package.json b/examples/solid/basic/package.json index 5c73e15da1..e3dcd8b004 100644 --- a/examples/solid/basic/package.json +++ b/examples/solid/basic/package.json @@ -12,7 +12,7 @@ "license": "MIT", "devDependencies": { "typescript": "5.9.3", - "vite": "^7.2.7", + "vite": "^7.3.0", "vite-plugin-solid": "^2.11.10" }, "dependencies": { diff --git a/examples/solid/column-groups/package.json b/examples/solid/column-groups/package.json index d6f0a05f16..ea5527bd9e 100644 --- a/examples/solid/column-groups/package.json +++ b/examples/solid/column-groups/package.json @@ -12,7 +12,7 @@ "license": "MIT", "devDependencies": { "typescript": "5.9.3", - "vite": "^7.2.7", + "vite": "^7.3.0", "vite-plugin-solid": "^2.11.10" }, "dependencies": { diff --git a/examples/solid/column-ordering/package.json b/examples/solid/column-ordering/package.json index 5d67f483a8..bcddbad412 100644 --- a/examples/solid/column-ordering/package.json +++ b/examples/solid/column-ordering/package.json @@ -13,7 +13,7 @@ "devDependencies": { "@faker-js/faker": "^10.1.0", "typescript": "5.9.3", - "vite": "^7.2.7", + "vite": "^7.3.0", "vite-plugin-solid": "^2.11.10" }, "dependencies": { diff --git a/examples/solid/column-visibility/package.json b/examples/solid/column-visibility/package.json index 39505b22be..10f6d79324 100644 --- a/examples/solid/column-visibility/package.json +++ b/examples/solid/column-visibility/package.json @@ -12,7 +12,7 @@ "license": "MIT", "devDependencies": { "typescript": "5.9.3", - "vite": "^7.2.7", + "vite": "^7.3.0", "vite-plugin-solid": "^2.11.10" }, "dependencies": { diff --git a/examples/solid/filters-faceted/package.json b/examples/solid/filters-faceted/package.json index c8ae5dcb5f..16fa944180 100644 --- a/examples/solid/filters-faceted/package.json +++ b/examples/solid/filters-faceted/package.json @@ -13,7 +13,7 @@ "devDependencies": { "@faker-js/faker": "^10.1.0", "typescript": "5.9.3", - "vite": "^7.2.7", + "vite": "^7.3.0", "vite-plugin-solid": "^2.11.10" }, "dependencies": { diff --git a/examples/solid/filters/package.json b/examples/solid/filters/package.json index 11247aca78..a20e04855a 100644 --- a/examples/solid/filters/package.json +++ b/examples/solid/filters/package.json @@ -13,7 +13,7 @@ "devDependencies": { "@faker-js/faker": "^10.1.0", "typescript": "5.9.3", - "vite": "^7.2.7", + "vite": "^7.3.0", "vite-plugin-solid": "^2.11.10" }, "dependencies": { diff --git a/examples/solid/sorting/package.json b/examples/solid/sorting/package.json index 3e974a450f..06e9a0af14 100644 --- a/examples/solid/sorting/package.json +++ b/examples/solid/sorting/package.json @@ -13,7 +13,7 @@ "devDependencies": { "@faker-js/faker": "^10.1.0", "typescript": "5.9.3", - "vite": "^7.2.7", + "vite": "^7.3.0", "vite-plugin-solid": "^2.11.10" }, "dependencies": { diff --git a/examples/svelte/basic-snippets/package.json b/examples/svelte/basic-snippets/package.json index 6376cb08c1..d5bd0e3f24 100644 --- a/examples/svelte/basic-snippets/package.json +++ b/examples/svelte/basic-snippets/package.json @@ -15,9 +15,9 @@ "@sveltejs/vite-plugin-svelte": "^6.2.1", "@tanstack/svelte-table": "^9.0.0-alpha.10", "@tsconfig/svelte": "^5.0.6", - "svelte": "^5.45.10", + "svelte": "^5.46.0", "svelte-check": "^4.3.4", "typescript": "5.9.3", - "vite": "^7.2.7" + "vite": "^7.3.0" } } diff --git a/examples/svelte/basic-table-helper/package.json b/examples/svelte/basic-table-helper/package.json index c0164bf2d6..90e793d2ab 100644 --- a/examples/svelte/basic-table-helper/package.json +++ b/examples/svelte/basic-table-helper/package.json @@ -15,9 +15,9 @@ "@sveltejs/vite-plugin-svelte": "^6.2.1", "@tanstack/svelte-table": "^9.0.0-alpha.10", "@tsconfig/svelte": "^5.0.6", - "svelte": "^5.45.10", + "svelte": "^5.46.0", "svelte-check": "^4.3.4", "typescript": "5.9.3", - "vite": "^7.2.7" + "vite": "^7.3.0" } } diff --git a/examples/svelte/basic/package.json b/examples/svelte/basic/package.json index 63841471c2..543de9bd33 100644 --- a/examples/svelte/basic/package.json +++ b/examples/svelte/basic/package.json @@ -15,9 +15,9 @@ "@sveltejs/vite-plugin-svelte": "^6.2.1", "@tanstack/svelte-table": "^9.0.0-alpha.10", "@tsconfig/svelte": "^5.0.6", - "svelte": "^5.45.10", + "svelte": "^5.46.0", "svelte-check": "^4.3.4", "typescript": "5.9.3", - "vite": "^7.2.7" + "vite": "^7.3.0" } } diff --git a/examples/svelte/column-groups/package.json b/examples/svelte/column-groups/package.json index 6bc408164e..f4e855d9e4 100644 --- a/examples/svelte/column-groups/package.json +++ b/examples/svelte/column-groups/package.json @@ -15,9 +15,9 @@ "@sveltejs/vite-plugin-svelte": "^6.2.1", "@tanstack/svelte-table": "^9.0.0-alpha.10", "@tsconfig/svelte": "^5.0.6", - "svelte": "^5.45.10", + "svelte": "^5.46.0", "svelte-check": "^4.3.4", "typescript": "5.9.3", - "vite": "^7.2.7" + "vite": "^7.3.0" } } diff --git a/examples/svelte/column-ordering/package.json b/examples/svelte/column-ordering/package.json index 2ff607ad52..325b40f0c6 100644 --- a/examples/svelte/column-ordering/package.json +++ b/examples/svelte/column-ordering/package.json @@ -16,9 +16,9 @@ "@sveltejs/vite-plugin-svelte": "^6.2.1", "@tanstack/svelte-table": "^9.0.0-alpha.10", "@tsconfig/svelte": "^5.0.6", - "svelte": "^5.45.10", + "svelte": "^5.46.0", "svelte-check": "^4.3.4", "typescript": "5.9.3", - "vite": "^7.2.7" + "vite": "^7.3.0" } } diff --git a/examples/svelte/column-pinning/package.json b/examples/svelte/column-pinning/package.json index fcf4d79d5a..ff70d5cdd9 100644 --- a/examples/svelte/column-pinning/package.json +++ b/examples/svelte/column-pinning/package.json @@ -16,9 +16,9 @@ "@sveltejs/vite-plugin-svelte": "^6.2.1", "@tanstack/svelte-table": "^9.0.0-alpha.10", "@tsconfig/svelte": "^5.0.6", - "svelte": "^5.45.10", + "svelte": "^5.46.0", "svelte-check": "^4.3.4", "typescript": "5.9.3", - "vite": "^7.2.7" + "vite": "^7.3.0" } } diff --git a/examples/svelte/column-visibility/package.json b/examples/svelte/column-visibility/package.json index 7187377685..4cf180bd26 100644 --- a/examples/svelte/column-visibility/package.json +++ b/examples/svelte/column-visibility/package.json @@ -15,9 +15,9 @@ "@sveltejs/vite-plugin-svelte": "^6.2.1", "@tanstack/svelte-table": "^9.0.0-alpha.10", "@tsconfig/svelte": "^5.0.6", - "svelte": "^5.45.10", + "svelte": "^5.46.0", "svelte-check": "^4.3.4", "typescript": "5.9.3", - "vite": "^7.2.7" + "vite": "^7.3.0" } } diff --git a/examples/svelte/filtering/package.json b/examples/svelte/filtering/package.json index 39b1671a2a..0ce3722227 100644 --- a/examples/svelte/filtering/package.json +++ b/examples/svelte/filtering/package.json @@ -17,9 +17,9 @@ "@tanstack/match-sorter-utils": "^9.0.0-alpha.4", "@tanstack/svelte-table": "^9.0.0-alpha.10", "@tsconfig/svelte": "^5.0.6", - "svelte": "^5.45.10", + "svelte": "^5.46.0", "svelte-check": "^4.3.4", "typescript": "5.9.3", - "vite": "^7.2.7" + "vite": "^7.3.0" } } diff --git a/examples/svelte/sorting/package.json b/examples/svelte/sorting/package.json index 58021e6b0f..0c7d0b372e 100644 --- a/examples/svelte/sorting/package.json +++ b/examples/svelte/sorting/package.json @@ -16,9 +16,9 @@ "@sveltejs/vite-plugin-svelte": "^6.2.1", "@tanstack/svelte-table": "^9.0.0-alpha.10", "@tsconfig/svelte": "^5.0.6", - "svelte": "^5.45.10", + "svelte": "^5.46.0", "svelte-check": "^4.3.4", "typescript": "5.9.3", - "vite": "^7.2.7" + "vite": "^7.3.0" } } diff --git a/examples/vanilla/basic/package.json b/examples/vanilla/basic/package.json index 675e20a0b6..f2f9669137 100644 --- a/examples/vanilla/basic/package.json +++ b/examples/vanilla/basic/package.json @@ -10,9 +10,9 @@ }, "devDependencies": { "@rollup/plugin-replace": "^6.0.3", - "@types/node": "^25.0.1", + "@types/node": "^25.0.3", "typescript": "5.9.3", - "vite": "^7.2.7" + "vite": "^7.3.0" }, "dependencies": { "@tanstack/table-core": "^9.0.0-alpha.10", diff --git a/examples/vanilla/pagination/package.json b/examples/vanilla/pagination/package.json index b48b2f7fb1..48f518071a 100644 --- a/examples/vanilla/pagination/package.json +++ b/examples/vanilla/pagination/package.json @@ -11,9 +11,9 @@ "devDependencies": { "@faker-js/faker": "^10.1.0", "@rollup/plugin-replace": "^6.0.3", - "@types/node": "^25.0.1", + "@types/node": "^25.0.3", "typescript": "5.9.3", - "vite": "^7.2.7" + "vite": "^7.3.0" }, "dependencies": { "@tanstack/table-core": "^9.0.0-alpha.10", diff --git a/examples/vanilla/sorting/package.json b/examples/vanilla/sorting/package.json index d6e6b69c77..67578ba932 100644 --- a/examples/vanilla/sorting/package.json +++ b/examples/vanilla/sorting/package.json @@ -11,9 +11,9 @@ "devDependencies": { "@faker-js/faker": "^10.1.0", "@rollup/plugin-replace": "^6.0.3", - "@types/node": "^25.0.1", + "@types/node": "^25.0.3", "typescript": "5.9.3", - "vite": "^7.2.7" + "vite": "^7.3.0" }, "dependencies": { "@tanstack/table-core": "^9.0.0-alpha.10", diff --git a/examples/vue/basic/package.json b/examples/vue/basic/package.json index 7ca07e5d44..1c0d7a3091 100644 --- a/examples/vue/basic/package.json +++ b/examples/vue/basic/package.json @@ -11,13 +11,13 @@ }, "dependencies": { "@tanstack/vue-table": "^9.0.0-alpha.10", - "vue": "^3.5.25" + "vue": "^3.5.26" }, "devDependencies": { - "@types/node": "^25.0.1", + "@types/node": "^25.0.3", "@vitejs/plugin-vue": "^6.0.3", "typescript": "5.9.3", - "vite": "^7.2.7", + "vite": "^7.3.0", "vue-tsc": "^3.1.8" } } diff --git a/examples/vue/column-ordering/package.json b/examples/vue/column-ordering/package.json index 8a0bffe2aa..4e9c7f7a57 100644 --- a/examples/vue/column-ordering/package.json +++ b/examples/vue/column-ordering/package.json @@ -10,13 +10,13 @@ "dependencies": { "@faker-js/faker": "^10.1.0", "@tanstack/vue-table": "^9.0.0-alpha.10", - "vue": "^3.5.25" + "vue": "^3.5.26" }, "devDependencies": { - "@types/node": "^25.0.1", + "@types/node": "^25.0.3", "@vitejs/plugin-vue": "^6.0.3", "typescript": "5.9.3", - "vite": "^7.2.7", + "vite": "^7.3.0", "vue-tsc": "^3.1.8" } } diff --git a/examples/vue/column-pinning/package.json b/examples/vue/column-pinning/package.json index aa99f8fa2f..d8e466c7db 100644 --- a/examples/vue/column-pinning/package.json +++ b/examples/vue/column-pinning/package.json @@ -11,13 +11,13 @@ "dependencies": { "@faker-js/faker": "^10.1.0", "@tanstack/vue-table": "^9.0.0-alpha.10", - "vue": "^3.5.25" + "vue": "^3.5.26" }, "devDependencies": { - "@types/node": "^25.0.1", + "@types/node": "^25.0.3", "@vitejs/plugin-vue": "^6.0.3", "typescript": "5.9.3", - "vite": "^7.2.7", + "vite": "^7.3.0", "vue-tsc": "^3.1.8" } } diff --git a/examples/vue/filters/package.json b/examples/vue/filters/package.json index 8c030d87c4..44b604cc4a 100644 --- a/examples/vue/filters/package.json +++ b/examples/vue/filters/package.json @@ -12,13 +12,13 @@ "dependencies": { "@faker-js/faker": "^10.1.0", "@tanstack/vue-table": "^9.0.0-alpha.10", - "vue": "^3.5.25" + "vue": "^3.5.26" }, "devDependencies": { - "@types/node": "^25.0.1", + "@types/node": "^25.0.3", "@vitejs/plugin-vue": "^6.0.3", "typescript": "5.9.3", - "vite": "^7.2.7", + "vite": "^7.3.0", "vue-tsc": "^3.1.8" } } diff --git a/examples/vue/pagination-controlled/package.json b/examples/vue/pagination-controlled/package.json index 155580b594..09c3d2f38c 100644 --- a/examples/vue/pagination-controlled/package.json +++ b/examples/vue/pagination-controlled/package.json @@ -12,13 +12,13 @@ "dependencies": { "@faker-js/faker": "^10.1.0", "@tanstack/vue-table": "^9.0.0-alpha.10", - "vue": "^3.5.25" + "vue": "^3.5.26" }, "devDependencies": { - "@types/node": "^25.0.1", + "@types/node": "^25.0.3", "@vitejs/plugin-vue": "^6.0.3", "typescript": "5.9.3", - "vite": "^7.2.7", + "vite": "^7.3.0", "vue-tsc": "^3.1.8" } } diff --git a/examples/vue/pagination/package.json b/examples/vue/pagination/package.json index 7f3291e26b..66810caa79 100644 --- a/examples/vue/pagination/package.json +++ b/examples/vue/pagination/package.json @@ -12,13 +12,13 @@ "dependencies": { "@faker-js/faker": "^10.1.0", "@tanstack/vue-table": "^9.0.0-alpha.10", - "vue": "^3.5.25" + "vue": "^3.5.26" }, "devDependencies": { - "@types/node": "^25.0.1", + "@types/node": "^25.0.3", "@vitejs/plugin-vue": "^6.0.3", "typescript": "5.9.3", - "vite": "^7.2.7", + "vite": "^7.3.0", "vue-tsc": "^3.1.8" } } diff --git a/examples/vue/row-selection/package.json b/examples/vue/row-selection/package.json index 35a11a1f2e..0d3297d7f1 100644 --- a/examples/vue/row-selection/package.json +++ b/examples/vue/row-selection/package.json @@ -11,14 +11,14 @@ "dependencies": { "@faker-js/faker": "^10.1.0", "@tanstack/vue-table": "^9.0.0-alpha.10", - "vue": "^3.5.25" + "vue": "^3.5.26" }, "devDependencies": { - "@types/node": "^25.0.1", + "@types/node": "^25.0.3", "@vitejs/plugin-vue": "^6.0.3", "@vitejs/plugin-vue-jsx": "^5.1.2", "typescript": "5.9.3", - "vite": "^7.2.7", + "vite": "^7.3.0", "vue-tsc": "^3.1.8" } } diff --git a/examples/vue/sorting/package.json b/examples/vue/sorting/package.json index f9f3353a82..e8e405a325 100644 --- a/examples/vue/sorting/package.json +++ b/examples/vue/sorting/package.json @@ -12,13 +12,13 @@ "dependencies": { "@faker-js/faker": "^10.1.0", "@tanstack/vue-table": "^9.0.0-alpha.10", - "vue": "^3.5.25" + "vue": "^3.5.26" }, "devDependencies": { - "@types/node": "^25.0.1", + "@types/node": "^25.0.3", "@vitejs/plugin-vue": "^6.0.3", "typescript": "5.9.3", - "vite": "^7.2.7", + "vite": "^7.3.0", "vue-tsc": "^3.1.8" } } diff --git a/examples/vue/sub-components/package.json b/examples/vue/sub-components/package.json index 51299c0053..4bf4db3e9f 100644 --- a/examples/vue/sub-components/package.json +++ b/examples/vue/sub-components/package.json @@ -12,13 +12,13 @@ "dependencies": { "@faker-js/faker": "^10.1.0", "@tanstack/vue-table": "^9.0.0-alpha.10", - "vue": "^3.5.25" + "vue": "^3.5.26" }, "devDependencies": { - "@types/node": "^25.0.1", + "@types/node": "^25.0.3", "@vitejs/plugin-vue": "^6.0.3", "typescript": "5.9.3", - "vite": "^7.2.7", + "vite": "^7.3.0", "vue-tsc": "^3.1.8" } } diff --git a/examples/vue/virtualized-rows/package.json b/examples/vue/virtualized-rows/package.json index e6f2c146a3..5b5c126f3e 100644 --- a/examples/vue/virtualized-rows/package.json +++ b/examples/vue/virtualized-rows/package.json @@ -11,14 +11,14 @@ "dependencies": { "@tanstack/vue-table": "^9.0.0-alpha.10", "@tanstack/vue-virtual": "^3.13.13", - "vue": "^3.5.25" + "vue": "^3.5.26" }, "devDependencies": { "@faker-js/faker": "^10.1.0", - "@types/node": "^25.0.1", + "@types/node": "^25.0.3", "@vitejs/plugin-vue": "^6.0.3", "typescript": "5.9.3", - "vite": "^7.2.7", + "vite": "^7.3.0", "vue-tsc": "^3.1.8" } } diff --git a/package.json b/package.json index e7c7719017..0cc6f4e593 100644 --- a/package.json +++ b/package.json @@ -54,20 +54,20 @@ "@size-limit/preset-small-lib": "^12.0.0", "@tanstack/config": "0.14.2", "@testing-library/jest-dom": "^6.9.1", - "@types/node": "^25.0.1", - "eslint": "^9.39.1", + "@types/node": "^25.0.3", + "eslint": "^9.39.2", "eslint-plugin-unused-imports": "^4.3.0", "jsdom": "^27.3.0", - "knip": "^5.73.3", - "nx": "^22.2.1", + "knip": "^5.75.2", + "nx": "^22.3.2", "prettier": "^3.7.4", - "prettier-plugin-svelte": "^3.4.0", + "prettier-plugin-svelte": "^3.4.1", "publint": "^0.3.16", "rimraf": "^6.1.2", "sherif": "^1.9.0", "size-limit": "^12.0.0", "typescript": "5.9.3", - "vite": "^7.2.7", - "vitest": "^4.0.15" + "vite": "^7.3.0", + "vitest": "^4.0.16" } } diff --git a/packages/angular-table/package.json b/packages/angular-table/package.json index 63cb2c949b..fc69ee0e6a 100644 --- a/packages/angular-table/package.json +++ b/packages/angular-table/package.json @@ -54,12 +54,12 @@ "tslib": "^2.8.1" }, "devDependencies": { - "@analogjs/vite-plugin-angular": "^2.1.3", - "@analogjs/vitest-angular": "^2.1.3", - "@angular/core": "^21.0.5", - "@angular/platform-browser": "^21.0.5", - "@angular/platform-browser-dynamic": "^21.0.5", - "ng-packagr": "^21.0.0", + "@analogjs/vite-plugin-angular": "^2.2.0", + "@analogjs/vitest-angular": "^2.2.0", + "@angular/core": "^21.0.6", + "@angular/platform-browser": "^21.0.6", + "@angular/platform-browser-dynamic": "^21.0.6", + "ng-packagr": "^21.0.1", "typescript": "~5.9.3" }, "peerDependencies": { diff --git a/packages/preact-table/package.json b/packages/preact-table/package.json index f29f0cbafc..194018a85b 100644 --- a/packages/preact-table/package.json +++ b/packages/preact-table/package.json @@ -55,6 +55,7 @@ "build": "vite build" }, "dependencies": { + "@tanstack/preact-store": "^0.10.1", "@tanstack/table-core": "workspace:*" }, "devDependencies": { diff --git a/packages/preact-table/src/createTableHelper.ts b/packages/preact-table/src/createTableHelper.ts index cb82307e7f..3219a7d4e1 100644 --- a/packages/preact-table/src/createTableHelper.ts +++ b/packages/preact-table/src/createTableHelper.ts @@ -1,24 +1,25 @@ import { constructTableHelper } from '@tanstack/table-core' -import { useTable } from './useTable' +import { PreactTable, useTable } from './useTable' import type { RowData, - Table, TableFeatures, TableHelperOptions, TableHelper_Core, TableOptions, + TableState, } from '@tanstack/table-core' export type TableHelper< TFeatures extends TableFeatures, TData extends RowData = any, > = Omit, 'tableCreator'> & { - useTable: ( + useTable: ( tableOptions: Omit< TableOptions, '_features' | '_rowModels' >, - ) => Table + selector?: (state: TableState) => TSelected, + ) => PreactTable } export function createTableHelper< @@ -30,8 +31,22 @@ export function createTableHelper< const tableHelper = constructTableHelper(useTable, tableHelperOptions) return { ...tableHelper, - useTable: tableHelper.tableCreator, - } as unknown as TableHelper + useTable: ( + tableOptions: Omit< + TableOptions, + '_features' | '_rowModels' + >, + selector?: (state: TableState) => TSelected, + ) => { + return useTable( + { ...tableHelper.options, ...tableOptions } as TableOptions< + TFeatures, + TData + >, + selector, + ) + }, + } } // test diff --git a/packages/preact-table/src/useTable.ts b/packages/preact-table/src/useTable.ts index 7b33465787..0cb82f5a0b 100644 --- a/packages/preact-table/src/useTable.ts +++ b/packages/preact-table/src/useTable.ts @@ -1,59 +1,87 @@ -import { useRef, useState } from 'preact/hooks' -import { - constructTable, - coreFeatures, - getInitialTableState, -} from '@tanstack/table-core' +import { useMemo, useState } from 'preact/hooks' +import { constructTable } from '@tanstack/table-core' import type { + NoInfer, RowData, Table, TableFeatures, TableOptions, TableState, } from '@tanstack/table-core' +import { useStore } from '@tanstack/preact-store' +import type { ComponentChildren } from 'preact' -/** - * Creates a table instance and caches it in a ref so that it will only be constructed once. - */ -function useTableRef( - options: TableOptions, -): Table { - const tableRef = useRef>(null) - - if (!tableRef.current) { - tableRef.current = constructTable(options) - } - - return tableRef.current +export type PreactTable< + TFeatures extends TableFeatures, + TData extends RowData, + TSelected = {}, +> = Table & { + /** + * A Preact HOC (Higher Order Component) that allows you to subscribe to the table state. + * + * This is useful for opting into state re-renders for specific parts of the table state. + * + * @example + * ({ rowSelection: state.rowSelection })}> + * {({ rowSelection }) => ( // important to include `{() => {()}}` syntax + * + * // render the row + * + * )} + * + */ + Subscribe: (props: { + selector: (state: NoInfer>) => TSelected + children: ((state: TSelected) => ComponentChildren) | ComponentChildren + }) => ComponentChildren + /** + * The selected state of the table. This state may not match the structure of `table.store.state` because it is selected by the `selector` function that you pass as the 2nd argument to `useTable`. + * + * @example + * const table = useTable(options, (state) => ({ globalFilter: state.globalFilter })) // only globalFilter is part of the selected state + * + * console.log(table.state.globalFilter) + */ + readonly state: Readonly } -/** - * Will re-render the table whenever the state or options change. Works just like the `useReactTable` from v8. - * @example const table = useTable({ columns, data, state, ...options }) - */ export function useTable< TFeatures extends TableFeatures, TData extends RowData, ->(tableOptions: TableOptions): Table { - const _features = { ...coreFeatures, ...tableOptions._features } + TSelected = {}, +>( + tableOptions: TableOptions, + selector: (state: TableState) => TSelected = () => + ({}) as TSelected, +): PreactTable { + const [table] = useState(() => { + const table = constructTable(tableOptions) as PreactTable< + TFeatures, + TData, + TSelected + > - const [state, setState] = useState>(() => - getInitialTableState(_features, tableOptions.initialState), - ) + table.Subscribe = function Subscribe(props: { + selector: (state: TableState) => TSelected + children: ((state: TSelected) => ComponentChildren) | ComponentChildren + }) { + const selected = useStore(table.store, props.selector) - const statefulOptions: TableOptions = { - ...tableOptions, - _features, - state: { ...state, ...tableOptions.state }, - onStateChange: (updater) => { - setState(updater) - tableOptions.onStateChange?.(updater) - }, - } + return typeof props.children === 'function' + ? props.children(selected) + : props.children + } - const table = useTableRef(statefulOptions) + return table + }) - table.setOptions((prev) => ({ ...prev, ...statefulOptions })) // force re-render when state or options change + const state = useStore(table.store, selector) - return table + return useMemo( + () => ({ + ...table, + state, + }), + [state, table], + ) } diff --git a/packages/react-table/eslint.config.js b/packages/react-table/eslint.config.js index 6279d73a95..ec5db3c6ca 100644 --- a/packages/react-table/eslint.config.js +++ b/packages/react-table/eslint.config.js @@ -1,11 +1,11 @@ // @ts-check import pluginReact from '@eslint-react/eslint-plugin' -// @ts-expect-error -// import pluginReactCompiler from 'eslint-plugin-react-compiler' +import pluginReactCompiler from 'eslint-plugin-react-compiler' import pluginReactHooks from 'eslint-plugin-react-hooks' import rootConfig from '../../eslint.config.js' +/** @type {import('eslint').Linter.Config[]} */ export default [ ...rootConfig, { @@ -15,11 +15,11 @@ export default [ { plugins: { 'react-hooks': pluginReactHooks, - // 'react-compiler': pluginReactCompiler, + 'react-compiler': pluginReactCompiler, }, rules: { '@eslint-react/dom/no-missing-button-type': 'off', - // 'react-compiler/react-compiler': 'error', + 'react-compiler/react-compiler': 'error', 'react-hooks/exhaustive-deps': 'error', 'react-hooks/rules-of-hooks': 'error', }, @@ -27,7 +27,6 @@ export default [ { files: ['**/__tests__/**'], rules: { - '@typescript-eslint/no-unnecessary-condition': 'off', // 'react-compiler/react-compiler': 'off', }, }, diff --git a/packages/react-table/package.json b/packages/react-table/package.json index 10831a936a..7cda686437 100644 --- a/packages/react-table/package.json +++ b/packages/react-table/package.json @@ -55,17 +55,18 @@ "build": "vite build" }, "dependencies": { + "@tanstack/react-store": "^0.8.0", "@tanstack/table-core": "workspace:*" }, "devDependencies": { "@eslint-react/eslint-plugin": "^2.3.13", "@types/react": "^19.2.7", "@vitejs/plugin-react": "^5.1.2", + "eslint-plugin-react-compiler": "19.1.0-rc.2", "eslint-plugin-react-hooks": "^7.0.1", "react": "^19.2.3" }, "peerDependencies": { - "react": ">=16.8", - "react-dom": ">=16.8" + "react": ">=18" } } diff --git a/packages/react-table/src/createTableHelper.ts b/packages/react-table/src/createTableHelper.ts index cb82307e7f..18496e0b11 100644 --- a/packages/react-table/src/createTableHelper.ts +++ b/packages/react-table/src/createTableHelper.ts @@ -1,24 +1,25 @@ import { constructTableHelper } from '@tanstack/table-core' -import { useTable } from './useTable' +import { ReactTable, useTable } from './useTable' import type { RowData, - Table, TableFeatures, TableHelperOptions, TableHelper_Core, TableOptions, + TableState, } from '@tanstack/table-core' export type TableHelper< TFeatures extends TableFeatures, TData extends RowData = any, > = Omit, 'tableCreator'> & { - useTable: ( + useTable: ( tableOptions: Omit< TableOptions, '_features' | '_rowModels' >, - ) => Table + selector?: (state: TableState) => TSelected, + ) => ReactTable } export function createTableHelper< @@ -30,8 +31,22 @@ export function createTableHelper< const tableHelper = constructTableHelper(useTable, tableHelperOptions) return { ...tableHelper, - useTable: tableHelper.tableCreator, - } as unknown as TableHelper + useTable: ( + tableOptions: Omit< + TableOptions, + '_features' | '_rowModels' + >, + selector?: (state: TableState) => TSelected, + ) => { + return useTable( + { ...tableHelper.options, ...tableOptions } as TableOptions< + TFeatures, + TData + >, + selector, + ) + }, + } } // test diff --git a/packages/react-table/src/useTable.ts b/packages/react-table/src/useTable.ts index c7a4d6a8cd..9ddf26f2ae 100644 --- a/packages/react-table/src/useTable.ts +++ b/packages/react-table/src/useTable.ts @@ -1,59 +1,87 @@ -import { useRef, useState } from 'react' -import { - constructTable, - coreFeatures, - getInitialTableState, -} from '@tanstack/table-core' +import { useMemo, useState } from 'react' +import { constructTable } from '@tanstack/table-core' import type { + NoInfer, RowData, Table, TableFeatures, TableOptions, TableState, } from '@tanstack/table-core' +import { useStore } from '@tanstack/react-store' +import type { FunctionComponent, ReactNode } from 'react' -/** - * Creates a table instance and caches it in a ref so that it will only be constructed once. - */ -function useTableRef( - options: TableOptions, -): Table { - const tableRef = useRef>(null) - - if (!tableRef.current) { - tableRef.current = constructTable(options) - } - - return tableRef.current +export type ReactTable< + TFeatures extends TableFeatures, + TData extends RowData, + TSelected = {}, +> = Table & { + /** + * A React HOC (Higher Order Component) that allows you to subscribe to the table state. + * + * This is useful for opting into state re-renders for specific parts of the table state. + * + * @example + * ({ rowSelection: state.rowSelection })}> + * {({ rowSelection }) => ( // important to include `{() => {()}}` syntax + * + // render the row + * + * ))} + * + */ + Subscribe: (props: { + selector: (state: NoInfer>) => TSelected + children: ((state: TSelected) => ReactNode) | ReactNode + }) => ReturnType + /** + * The selected state of the table. This state may not match the structure of `table.store.state` because it is selected by the `selector` function that you pass as the 2nd argument to `useTable`. + * + * @example + * const table = useTable(options, (state) => ({ globalFilter: state.globalFilter })) // only globalFilter is part of the selected state + * + * console.log(table.state.globalFilter) + */ + readonly state: Readonly } -/** - * Will re-render the table whenever the state or options change. Works just like the `useReactTable` from v8. - * @example const table = useTable({ columns, data, state, ...options }) - */ export function useTable< TFeatures extends TableFeatures, TData extends RowData, ->(tableOptions: TableOptions): Table { - const _features = { ...coreFeatures, ...tableOptions._features } + TSelected = {}, +>( + tableOptions: TableOptions, + selector: (state: TableState) => TSelected = () => + ({}) as TSelected, +): ReactTable { + const [table] = useState(() => { + const table = constructTable(tableOptions) as ReactTable< + TFeatures, + TData, + TSelected + > - const [state, setState] = useState>(() => - getInitialTableState(_features, tableOptions.initialState), - ) + table.Subscribe = function Subscribe(props: { + selector: (state: TableState) => TSelected + children: ((state: TSelected) => ReactNode) | ReactNode + }) { + const selected = useStore(table.store, props.selector) - const statefulOptions: TableOptions = { - ...tableOptions, - _features, - state: { ...state, ...tableOptions.state }, - onStateChange: (updater) => { - setState(updater) - tableOptions.onStateChange?.(updater) - }, - } + return typeof props.children === 'function' + ? props.children(selected) + : props.children + } - const table = useTableRef(statefulOptions) + return table + }) - table.setOptions((prev) => ({ ...prev, ...statefulOptions })) // force re-render when state or options change + const state = useStore(table.store, selector) - return table + return useMemo( + () => ({ + ...table, + state, + }), + [state, table], + ) } diff --git a/packages/solid-table/src/createTable.ts b/packages/solid-table/src/createTable.ts index d6084a39b5..2453c8e90f 100644 --- a/packages/solid-table/src/createTable.ts +++ b/packages/solid-table/src/createTable.ts @@ -1,17 +1,6 @@ -import { - constructTable, - coreFeatures, - getInitialTableState, -} from '@tanstack/table-core' -import { createComputed, mergeProps } from 'solid-js' -import { createStore } from 'solid-js/store' -import type { - RowData, - TableFeatures, - TableOptions, - TableState, - Updater, -} from '@tanstack/table-core' +import { constructTable, coreFeatures } from '@tanstack/table-core' +import { createEffect, mergeProps } from 'solid-js' +import type { RowData, TableFeatures, TableOptions } from '@tanstack/table-core' export function createTable< TFeatures extends TableFeatures, @@ -19,34 +8,27 @@ export function createTable< >(tableOptions: TableOptions) { const _features = { ...coreFeatures, ...tableOptions._features } - const [store, setStore] = createStore( - getInitialTableState(_features, tableOptions.initialState), - ) - const statefulOptions: TableOptions = { ...tableOptions, _features, - state: { ...store, ...tableOptions.state }, + // Remove state and onStateChange - store handles it internally + // But keep onStateChange if user provided for backward compatibility + onStateChange: tableOptions.onStateChange, mergeOptions: (defaultOptions, options) => { return mergeProps(defaultOptions, options) }, - onStateChange: (updater) => { - setStore(updater) - tableOptions.onStateChange?.(updater) - }, } const table = constructTable(statefulOptions) - createComputed(() => { + // Subscribe to store changes for Solid reactivity + createEffect(() => { + // Access store.state to create reactive dependency + table.store.state + // Update options when store changes table.setOptions((prev) => { return mergeProps(prev, tableOptions, { _features: { ...coreFeatures, ...tableOptions._features }, - state: mergeProps(store, tableOptions.state || {}), - onStateChange: (updater: Updater>) => { - setStore(updater) - tableOptions.onStateChange?.(updater) - }, }) as any }) }) diff --git a/packages/svelte-table/package.json b/packages/svelte-table/package.json index 13f271473e..e3342436dd 100644 --- a/packages/svelte-table/package.json +++ b/packages/svelte-table/package.json @@ -53,7 +53,7 @@ "@sveltejs/package": "^2.5.7", "@sveltejs/vite-plugin-svelte": "^6.2.1", "eslint-plugin-svelte": "^3.13.1", - "svelte": "^5.45.10", + "svelte": "^5.46.0", "svelte-check": "^4.3.4" }, "peerDependencies": { diff --git a/packages/svelte-table/src/createTable.svelte.ts b/packages/svelte-table/src/createTable.svelte.ts index e4d73c6555..88eaafa401 100644 --- a/packages/svelte-table/src/createTable.svelte.ts +++ b/packages/svelte-table/src/createTable.svelte.ts @@ -1,15 +1,5 @@ -import { - constructTable, - coreFeatures, - getInitialTableState, - isFunction, -} from '@tanstack/table-core' -import type { - RowData, - TableFeatures, - TableOptions, - TableState, -} from '@tanstack/table-core' +import { constructTable, coreFeatures } from '@tanstack/table-core' +import type { RowData, TableFeatures, TableOptions } from '@tanstack/table-core' export function createTable< TFeatures extends TableFeatures, @@ -17,17 +7,13 @@ export function createTable< >(tableOptions: TableOptions) { const _features = { ...coreFeatures, ...tableOptions._features } - let state = $state>>( - getInitialTableState(_features, tableOptions.initialState), - ) - const statefulOptions: TableOptions = mergeObjects( tableOptions, { _features, - get state() { - return { ...state, ...tableOptions.state } - }, + // Remove state and onStateChange - store handles it internally + // But keep onStateChange if user provided for backward compatibility + onStateChange: tableOptions.onStateChange, mergeOptions: ( defaultOptions: TableOptions, newOptions: Partial>, @@ -41,23 +27,16 @@ export function createTable< function updateOptions() { table.setOptions((prev) => { - return mergeObjects(prev, tableOptions, { - get state() { - return mergeObjects(state, tableOptions.state || {}) - }, - onStateChange: (updater: any) => { - if (isFunction(updater)) state = updater(state) - else state = mergeObjects(state, updater) - - tableOptions.onStateChange?.(updater) - }, - }) + return mergeObjects(prev, tableOptions) }) } updateOptions() + // Subscribe to store changes for Svelte reactivity $effect.pre(() => { + // Access store.state to create reactive dependency + table.store.state updateOptions() // re-render the table whenever the state or options change }) diff --git a/packages/table-core/package.json b/packages/table-core/package.json index dfa0b37ca8..61badcd984 100644 --- a/packages/table-core/package.json +++ b/packages/table-core/package.json @@ -59,5 +59,8 @@ "test:types": "tsc", "test:build": "publint --strict", "build": "vite build" + }, + "dependencies": { + "@tanstack/store": "^0.8.0" } } diff --git a/packages/table-core/src/core/columns/coreColumnsFeature.ts b/packages/table-core/src/core/columns/coreColumnsFeature.ts index 90fbe721b6..73ac3b0b52 100644 --- a/packages/table-core/src/core/columns/coreColumnsFeature.ts +++ b/packages/table-core/src/core/columns/coreColumnsFeature.ts @@ -43,8 +43,8 @@ export function constructCoreColumnsFeature< fn: () => column_getLeafColumns(column), fnName: 'column_getLeafColumns', memoDeps: () => [ - table.options.state?.columnOrder, - table.options.state?.grouping, + table.store.state.columnOrder, + table.store.state.grouping, table.options.columns, table.options.groupedColumnMode, ], @@ -78,8 +78,8 @@ export function constructCoreColumnsFeature< fn: () => table_getAllLeafColumns(table), fnName: 'table_getAllLeafColumns', memoDeps: () => [ - table.options.state?.columnOrder, - table.options.state?.grouping, + table.store.state.columnOrder, + table.store.state.grouping, table.options.columns, table.options.groupedColumnMode, ], diff --git a/packages/table-core/src/core/coreFeatures.ts b/packages/table-core/src/core/coreFeatures.ts index f762afa566..22d11f5762 100644 --- a/packages/table-core/src/core/coreFeatures.ts +++ b/packages/table-core/src/core/coreFeatures.ts @@ -18,7 +18,7 @@ export const coreFeatures: CoreFeatures = { coreCellsFeature, coreColumnsFeature, coreHeadersFeature, - coreRowsFeature, coreRowModelsFeature, + coreRowsFeature, coreTablesFeature, } diff --git a/packages/table-core/src/core/headers/coreHeadersFeature.ts b/packages/table-core/src/core/headers/coreHeadersFeature.ts index 1403bb38dd..970436b2b7 100644 --- a/packages/table-core/src/core/headers/coreHeadersFeature.ts +++ b/packages/table-core/src/core/headers/coreHeadersFeature.ts @@ -51,9 +51,9 @@ export function constructCoreHeadersFeature< fnName: 'table_getHeaderGroups', memoDeps: () => [ table.options.columns, - table.options.state?.columnOrder, - table.options.state?.grouping, - table.options.state?.columnPinning, + table.store.state?.columnOrder, + table.store.state.grouping, + table.store.state.columnPinning, table.options.groupedColumnMode, ], }, diff --git a/packages/table-core/src/core/headers/coreHeadersFeature.utils.ts b/packages/table-core/src/core/headers/coreHeadersFeature.utils.ts index f39a8edf1b..860b36198f 100644 --- a/packages/table-core/src/core/headers/coreHeadersFeature.utils.ts +++ b/packages/table-core/src/core/headers/coreHeadersFeature.utils.ts @@ -50,7 +50,7 @@ export function table_getHeaderGroups< TData extends RowData, >(table: Table_Internal) { const { left, right } = - table.options.state?.columnPinning ?? getDefaultColumnPinningState() + table.store.state.columnPinning ?? getDefaultColumnPinningState() const allColumns = table.getAllColumns() const leafColumns = callMemoOrStaticFn( table, diff --git a/packages/table-core/src/core/rows/coreRowsFeature.ts b/packages/table-core/src/core/rows/coreRowsFeature.ts index 1ab9b8fa96..878b6443e6 100644 --- a/packages/table-core/src/core/rows/coreRowsFeature.ts +++ b/packages/table-core/src/core/rows/coreRowsFeature.ts @@ -71,7 +71,6 @@ export function constructCoreRowsFeature< }, ]) }, - constructTableAPIs: (table) => { assignAPIs('coreRowsFeature', table, [ { diff --git a/packages/table-core/src/core/table/constructTable.ts b/packages/table-core/src/core/table/constructTable.ts index 1e838a9d93..3026a8e4a8 100644 --- a/packages/table-core/src/core/table/constructTable.ts +++ b/packages/table-core/src/core/table/constructTable.ts @@ -1,15 +1,17 @@ +import { Store } from '@tanstack/store' import { isDev } from '../../utils' import type { RowModelFns } from '../../types/RowModelFns' import type { CachedRowModels } from '../../types/RowModel' import type { Table_CoreProperties } from './coreTablesFeature.types' import type { RowData } from '../../types/type-utils' import type { TableFeature, TableFeatures } from '../../types/TableFeatures' -import type { Table } from '../../types/Table' +import type { Table, Table_Internal } from '../../types/Table' import type { TableOptions } from '../../types/TableOptions' import type { TableState } from '../../types/TableState' +import { coreFeatures } from '../coreFeatures' export function getInitialTableState( - features: TableFeatures, + features: TFeatures, initialState: Partial> | undefined = {}, ): TableState { Object.values(features).forEach((feature) => { @@ -20,12 +22,18 @@ export function getInitialTableState( return structuredClone(initialState) as TableState } +export function createTableStore( + features: TFeatures, + initialState: Partial> | undefined = {}, +): Store> { + return new Store(getInitialTableState(features, initialState)) +} + export function constructTable< TFeatures extends TableFeatures, TData extends RowData, >(options: TableOptions): Table { - const { _features = {} as TFeatures } = options - + const _features = { ...coreFeatures, ...options._features } const featuresList: Array> = Object.values(_features) if (isDev && (options.debugAll || options.debugTable)) { @@ -35,14 +43,16 @@ export function constructTable< ) } - const table = {} as unknown as Table + const table = {} as Table_Internal const defaultOptions = featuresList.reduce((obj, feature) => { - return Object.assign(obj, feature.getDefaultTableOptions?.(table as any)) + return Object.assign(obj, feature.getDefaultTableOptions?.(table)) }, {}) as TableOptions const initialState = getInitialTableState(_features, options.initialState) + const store = options.store ?? new Store(initialState) + const coreInstance: Table_CoreProperties = { _features, // features get stored here immediately _rowModels: {} as CachedRowModels, // row models get cached here later @@ -52,12 +62,13 @@ export function constructTable< ...options, }, initialState, + store, } Object.assign(table, coreInstance) for (const feature of featuresList) { - feature.constructTableAPIs?.(table as any) + feature.constructTableAPIs?.(table) } return table diff --git a/packages/table-core/src/core/table/coreTablesFeature.ts b/packages/table-core/src/core/table/coreTablesFeature.ts index 2a381105b1..2949c42f59 100644 --- a/packages/table-core/src/core/table/coreTablesFeature.ts +++ b/packages/table-core/src/core/table/coreTablesFeature.ts @@ -1,10 +1,5 @@ import { assignAPIs } from '../../utils' -import { - table_getState, - table_reset, - table_setOptions, - table_setState, -} from './coreTablesFeature.utils' +import { table_reset, table_setOptions } from './coreTablesFeature.utils' import type { RowData } from '../../types/type-utils' import type { TableFeature, TableFeatures } from '../../types/TableFeatures' // import type { TableOptions_Table, Table_Table } from './coreTablesFeature.types' @@ -24,10 +19,6 @@ export function constructCoreTablesFeature< return { constructTableAPIs: (table) => { assignAPIs('coreTablesFeature', table, [ - { - fn: () => table_getState(table), - fnName: 'table_getState', - }, { fn: () => table_reset(table), fnName: 'table_reset', @@ -36,10 +27,6 @@ export function constructCoreTablesFeature< fn: (updater) => table_setOptions(table, updater), fnName: 'table_setOptions', }, - { - fn: (updater) => table_setState(table, updater), - fnName: 'table_setState', - }, ]) }, } diff --git a/packages/table-core/src/core/table/coreTablesFeature.types.ts b/packages/table-core/src/core/table/coreTablesFeature.types.ts index cbd7844e6a..4e6c0ebebd 100644 --- a/packages/table-core/src/core/table/coreTablesFeature.types.ts +++ b/packages/table-core/src/core/table/coreTablesFeature.types.ts @@ -49,14 +49,9 @@ export interface TableOptions_Table< */ meta?: TableMeta /** - * The `onStateChange` option can be used to optionally listen to state changes within the table. + * Optionally, provide your own external TanStack Store instance if you want to manage the table state externally. */ - onStateChange?: (updater: Updater>) => void - /** - * The `state` option can be used to optionally _control_ part or all of the table state. The state you pass here will merge with and overwrite the internal automatically-managed state to produce the final state for the table. You can also listen to state changes via the `onStateChange` option. - * > Note: Any state passed in here will override both the internal state and any other `initialState` you provide. - */ - state?: Partial> + store?: Store> } export interface Table_CoreProperties< @@ -93,10 +88,6 @@ export interface Table_Table< TFeatures extends TableFeatures, TData extends RowData, > extends Table_CoreProperties { - /** - * Call this function to get the table's current state. It's recommended to use this function and its state, especially when managing the table state manually. It is the exact same state used internally by the table for every feature and function it provides. - */ - getState: () => TableState /** * Call this function to reset the table state to the initial state. */ @@ -105,8 +96,4 @@ export interface Table_Table< * This function can be used to update the table options. */ setOptions: (newOptions: Updater>) => void - /** - * Call this function to update the table state. - */ - setState: (updater: Updater>) => void } diff --git a/packages/table-core/src/core/table/coreTablesFeature.utils.ts b/packages/table-core/src/core/table/coreTablesFeature.utils.ts index 787bb2475e..e388e6b00c 100644 --- a/packages/table-core/src/core/table/coreTablesFeature.utils.ts +++ b/packages/table-core/src/core/table/coreTablesFeature.utils.ts @@ -3,13 +3,13 @@ import type { RowData, Updater } from '../../types/type-utils' import type { TableFeatures } from '../../types/TableFeatures' import type { Table_Internal } from '../../types/Table' import type { TableOptions } from '../../types/TableOptions' -import type { TableState } from '../../types/TableState' +import type { TableState_All } from '../../types/TableState' export function table_reset< TFeatures extends TableFeatures, TData extends RowData, >(table: Table_Internal): void { - table.setState(table.initialState) + table.store.setState(structuredClone(table.initialState)) } export function table_mergeOptions< @@ -41,27 +41,3 @@ export function table_setOptions< // This is needed atm for allowing _rowModels to use TData or not table.options = table_mergeOptions(table, newOptions) as any } - -export function table_getInitialState< - TFeatures extends TableFeatures, - TData extends RowData, ->(table: Table_Internal): TableState { - return structuredClone(table.initialState) -} - -export function table_getState< - TFeatures extends TableFeatures, - TData extends RowData, ->(table: Table_Internal): TableState { - return table.options.state as TableState -} - -export function table_setState< - TFeatures extends TableFeatures, - TData extends RowData, ->( - table: Table_Internal, - updater: Updater>, -): void { - table.options.onStateChange?.(updater) -} diff --git a/packages/table-core/src/features/column-faceting/createFacetedMinMaxValues.ts b/packages/table-core/src/features/column-faceting/createFacetedMinMaxValues.ts index a3a16b2f85..6e21a8dca1 100644 --- a/packages/table-core/src/features/column-faceting/createFacetedMinMaxValues.ts +++ b/packages/table-core/src/features/column-faceting/createFacetedMinMaxValues.ts @@ -1,7 +1,7 @@ import { tableMemo } from '../../utils' import { column_getFacetedRowModel } from './columnFacetingFeature.utils' import type { RowModel } from '../../core/row-models/coreRowModelsFeature.types' -import type { Table_Internal } from '../../types/Table' +import type { Table, Table_Internal } from '../../types/Table' import type { TableFeatures } from '../../types/TableFeatures' import type { RowData } from '../../types/type-utils' @@ -9,11 +9,12 @@ export function createFacetedMinMaxValues< TFeatures extends TableFeatures, TData extends RowData = any, >(): ( - table: Table_Internal, + table: Table, columnId: string, ) => () => undefined | [number, number] { - return (table, columnId) => - tableMemo({ + return (_table, columnId) => { + const table = _table as Table_Internal + return tableMemo({ feature: 'columnFacetingFeature', fn: (facetedRowModel) => _createFacetedMinMaxValues(columnId, facetedRowModel), @@ -24,6 +25,7 @@ export function createFacetedMinMaxValues< ], table, }) + } } function _createFacetedMinMaxValues< diff --git a/packages/table-core/src/features/column-faceting/createFacetedRowModel.ts b/packages/table-core/src/features/column-faceting/createFacetedRowModel.ts index cef79b8fae..b0f90eb2b2 100644 --- a/packages/table-core/src/features/column-faceting/createFacetedRowModel.ts +++ b/packages/table-core/src/features/column-faceting/createFacetedRowModel.ts @@ -1,6 +1,6 @@ import { tableMemo } from '../../utils' import { filterRows } from '../column-filtering/filterRowsUtils' -import type { Table_Internal } from '../../types/Table' +import type { Table, Table_Internal } from '../../types/Table' import type { ColumnFiltersState, Row_ColumnFiltering, @@ -14,18 +14,19 @@ export function createFacetedRowModel< TFeatures extends TableFeatures, TData extends RowData = any, >(): ( - table: Table_Internal, + table: Table, columnId: string, ) => () => RowModel { - return (table, columnId) => - tableMemo({ + return (_table, columnId) => { + const table = _table as Table_Internal + return tableMemo({ feature: 'columnFacetingFeature', table, fnName: 'createFacetedRowModel', memoDeps: () => [ table.getPreFilteredRowModel(), - table.options.state?.columnFilters, - table.options.state?.globalFilter, + table.store.state.columnFilters, + table.store.state.globalFilter, table.getFilteredRowModel(), ], fn: (preRowModel, columnFilters, globalFilter) => @@ -37,6 +38,7 @@ export function createFacetedRowModel< globalFilter, ), }) + } } function _createFacetedRowModel< diff --git a/packages/table-core/src/features/column-faceting/createFacetedUniqueValues.ts b/packages/table-core/src/features/column-faceting/createFacetedUniqueValues.ts index d2abce6c2f..cef2a500d3 100644 --- a/packages/table-core/src/features/column-faceting/createFacetedUniqueValues.ts +++ b/packages/table-core/src/features/column-faceting/createFacetedUniqueValues.ts @@ -1,6 +1,6 @@ import { tableMemo } from '../../utils' import { column_getFacetedRowModel } from './columnFacetingFeature.utils' -import type { Table_Internal } from '../../types/Table' +import type { Table, Table_Internal } from '../../types/Table' import type { RowModel } from '../../core/row-models/coreRowModelsFeature.types' import type { TableFeatures } from '../../types/TableFeatures' import type { RowData } from '../../types/type-utils' @@ -9,11 +9,12 @@ export function createFacetedUniqueValues< TFeatures extends TableFeatures, TData extends RowData = any, >(): ( - table: Table_Internal, + table: Table, columnId: string, ) => () => Map { - return (table, columnId) => - tableMemo({ + return (_table, columnId) => { + const table = _table as Table_Internal + return tableMemo({ feature: 'columnFacetingFeature', table, fnName: 'table.getFacetedUniqueValues', @@ -23,6 +24,7 @@ export function createFacetedUniqueValues< fn: (facetedRowModel) => _createFacetedUniqueValues(columnId, facetedRowModel), }) + } } function _createFacetedUniqueValues< diff --git a/packages/table-core/src/features/column-filtering/columnFilteringFeature.utils.ts b/packages/table-core/src/features/column-filtering/columnFilteringFeature.utils.ts index d8a6ba576c..5149f81672 100644 --- a/packages/table-core/src/features/column-filtering/columnFilteringFeature.utils.ts +++ b/packages/table-core/src/features/column-filtering/columnFilteringFeature.utils.ts @@ -100,7 +100,7 @@ export function column_getFilterValue< TData extends RowData, TValue extends CellData = CellData, >(column: Column_Internal) { - return column._table.options.state?.columnFilters?.find( + return column._table.store.state.columnFilters?.find( (d) => d.id === column.id, )?.value } @@ -111,7 +111,7 @@ export function column_getFilterIndex< TValue extends CellData = CellData, >(column: Column_Internal): number { return ( - column._table.options.state?.columnFilters?.findIndex( + column._table.store.state.columnFilters?.findIndex( (d) => d.id === column.id, ) ?? -1 ) diff --git a/packages/table-core/src/features/column-filtering/createFilteredRowModel.ts b/packages/table-core/src/features/column-filtering/createFilteredRowModel.ts index eb4e4ede8e..85eb27ac4e 100644 --- a/packages/table-core/src/features/column-filtering/createFilteredRowModel.ts +++ b/packages/table-core/src/features/column-filtering/createFilteredRowModel.ts @@ -10,7 +10,7 @@ import { column_getFilterFn } from './columnFilteringFeature.utils' import type { RowData } from '../../types/type-utils' import type { TableFeatures } from '../../types/TableFeatures' import type { RowModel } from '../../core/row-models/coreRowModelsFeature.types' -import type { Table_Internal } from '../../types/Table' +import type { Table, Table_Internal } from '../../types/Table' import type { Row } from '../../types/Row' import type { FilterFn, @@ -24,10 +24,9 @@ export function createFilteredRowModel< TData extends RowData = any, >( filterFns: Record>, -): ( - table: Table_Internal, -) => () => RowModel { - return (table) => { +): (table: Table) => () => RowModel { + return (_table) => { + const table = _table as Table_Internal if (!table._rowModelFns.filterFns) table._rowModelFns.filterFns = filterFns return tableMemo({ feature: 'columnFilteringFeature', @@ -35,8 +34,8 @@ export function createFilteredRowModel< fnName: 'table.getFilteredRowModel', memoDeps: () => [ table.getPreFilteredRowModel(), - table.options.state?.columnFilters, - table.options.state?.globalFilter, + table.store.state.columnFilters, + table.store.state.globalFilter, ], fn: () => _createFilteredRowModel(table), onAfterUpdate: () => table_autoResetPageIndex(table), @@ -49,7 +48,7 @@ function _createFilteredRowModel< TData extends RowData = any, >(table: Table_Internal): RowModel { const rowModel = table.getPreFilteredRowModel() - const { columnFilters, globalFilter } = table.options.state ?? {} + const { columnFilters, globalFilter } = table.store.state if (!rowModel.rows.length || (!columnFilters?.length && !globalFilter)) { for (const row of rowModel.flatRows as Array< diff --git a/packages/table-core/src/features/column-grouping/columnGroupingFeature.utils.ts b/packages/table-core/src/features/column-grouping/columnGroupingFeature.utils.ts index 024f0a73a3..41f3a6ed86 100644 --- a/packages/table-core/src/features/column-grouping/columnGroupingFeature.utils.ts +++ b/packages/table-core/src/features/column-grouping/columnGroupingFeature.utils.ts @@ -48,7 +48,7 @@ export function column_getIsGrouped< TData extends RowData, TValue extends CellData = CellData, >(column: Column_Internal): boolean { - return !!column._table.options.state?.grouping?.includes(column.id) + return !!column._table.store.state.grouping?.includes(column.id) } export function column_getGroupedIndex< @@ -56,7 +56,7 @@ export function column_getGroupedIndex< TData extends RowData, TValue extends CellData = CellData, >(column: Column_Internal): number { - return column._table.options.state?.grouping?.indexOf(column.id) ?? -1 + return column._table.store.state.grouping?.indexOf(column.id) ?? -1 } export function column_getToggleGroupingHandler< diff --git a/packages/table-core/src/features/column-grouping/createGroupedRowModel.ts b/packages/table-core/src/features/column-grouping/createGroupedRowModel.ts index ba5b8385bc..27d07d8f22 100644 --- a/packages/table-core/src/features/column-grouping/createGroupedRowModel.ts +++ b/packages/table-core/src/features/column-grouping/createGroupedRowModel.ts @@ -15,7 +15,7 @@ import type { } from './columnGroupingFeature.types' import type { TableFeatures } from '../../types/TableFeatures' import type { RowModel } from '../../core/row-models/coreRowModelsFeature.types' -import type { Table_Internal } from '../../types/Table' +import type { Table, Table_Internal } from '../../types/Table' import type { Row } from '../../types/Row' import type { RowData } from '../../types/type-utils' @@ -24,10 +24,9 @@ export function createGroupedRowModel< TData extends RowData = any, >( aggregationFns: Record>, -): ( - table: Table_Internal, -) => () => RowModel { - return (table) => { +): (table: Table) => () => RowModel { + return (_table) => { + const table = _table as Table_Internal if (!table._rowModelFns.aggregationFns) table._rowModelFns.aggregationFns = aggregationFns return tableMemo({ @@ -35,7 +34,7 @@ export function createGroupedRowModel< table, fnName: 'table.getGroupedRowModel', memoDeps: () => [ - table.options.state?.grouping, + table.store.state.grouping, table.getPreGroupedRowModel(), ], fn: () => _createGroupedRowModel(table), @@ -52,7 +51,7 @@ function _createGroupedRowModel< TData extends RowData = any, >(table: Table_Internal): RowModel { const rowModel = table.getPreGroupedRowModel() - const grouping = table.options.state?.grouping + const grouping = table.store.state.grouping if (!rowModel.rows.length || !grouping?.length) { rowModel.rows.forEach((row) => { diff --git a/packages/table-core/src/features/column-ordering/columnOrderingFeature.ts b/packages/table-core/src/features/column-ordering/columnOrderingFeature.ts index e7a222aa3a..851043aadf 100644 --- a/packages/table-core/src/features/column-ordering/columnOrderingFeature.ts +++ b/packages/table-core/src/features/column-ordering/columnOrderingFeature.ts @@ -52,9 +52,9 @@ export function constructColumnOrderingFeature< fnName: 'column_getIndex', memoDeps: (position) => [ position, - column._table.options.state?.columnOrder, - column._table.options.state?.columnPinning, - column._table.options.state?.grouping, + column._table.store.state.columnOrder, + column._table.store.state.columnPinning, + column._table.store.state.grouping, ], }, { @@ -82,8 +82,8 @@ export function constructColumnOrderingFeature< fn: () => table_getOrderColumnsFn(table), fnName: 'table_getOrderColumnsFn', memoDeps: () => [ - table.options.state?.columnOrder, - table.options.state?.grouping, + table.store.state.columnOrder, + table.store.state.grouping, table.options.groupedColumnMode, ], }, diff --git a/packages/table-core/src/features/column-ordering/columnOrderingFeature.utils.ts b/packages/table-core/src/features/column-ordering/columnOrderingFeature.utils.ts index afb15e3f53..c18f2e4e93 100644 --- a/packages/table-core/src/features/column-ordering/columnOrderingFeature.utils.ts +++ b/packages/table-core/src/features/column-ordering/columnOrderingFeature.utils.ts @@ -69,7 +69,7 @@ export function table_getOrderColumnsFn< TFeatures extends TableFeatures, TData extends RowData, >(table: Table_Internal) { - const { columnOrder = [] } = table.options.state ?? {} + const { columnOrder = [] } = table.store.state return (columns: Array>) => { // Sort grouped columns to the start of the column list @@ -111,7 +111,7 @@ export function orderColumns< table: Table_Internal, leafColumns: Array>, ) { - const grouping = table.options.state?.grouping ?? ([] as GroupingState) + const grouping = table.store.state.grouping ?? ([] as GroupingState) const { groupedColumnMode } = table.options if (!grouping.length || !groupedColumnMode) { diff --git a/packages/table-core/src/features/column-pinning/columnPinningFeature.ts b/packages/table-core/src/features/column-pinning/columnPinningFeature.ts index 11561c9830..6e0f8cea43 100644 --- a/packages/table-core/src/features/column-pinning/columnPinningFeature.ts +++ b/packages/table-core/src/features/column-pinning/columnPinningFeature.ts @@ -102,8 +102,8 @@ export function constructColumnPinningFeature< fnName: 'row_getCenterVisibleCells', memoDeps: () => [ row.getAllCells(), - row._table.options.state?.columnPinning, - row._table.options.state?.columnVisibility, + row._table.store.state.columnPinning, + row._table.store.state.columnVisibility, ], }, { @@ -111,8 +111,8 @@ export function constructColumnPinningFeature< fnName: 'row_getLeftVisibleCells', memoDeps: () => [ row.getAllCells(), - row._table.options.state?.columnPinning?.left, - row._table.options.state?.columnVisibility, + row._table.store.state.columnPinning?.left, + row._table.store.state.columnVisibility, ], }, { @@ -120,8 +120,8 @@ export function constructColumnPinningFeature< fnName: 'row_getRightVisibleCells', memoDeps: () => [ row.getAllCells(), - row._table.options.state?.columnPinning?.right, - row._table.options.state?.columnVisibility, + row._table.store.state.columnPinning?.right, + row._table.store.state.columnVisibility, ], }, ]) @@ -152,7 +152,7 @@ export function constructColumnPinningFeature< 'getVisibleLeafColumns', table_getVisibleLeafColumns, ), - table.options.state?.columnPinning?.left, + table.store.state.columnPinning?.left, ], }, { @@ -165,7 +165,7 @@ export function constructColumnPinningFeature< 'getVisibleLeafColumns', table_getVisibleLeafColumns, ), - table.options.state?.columnPinning, + table.store.state.columnPinning, ], }, { @@ -178,7 +178,7 @@ export function constructColumnPinningFeature< 'getVisibleLeafColumns', table_getVisibleLeafColumns, ), - table.options.state?.columnPinning?.right, + table.store.state.columnPinning?.right, ], }, // footer groups @@ -289,7 +289,7 @@ export function constructColumnPinningFeature< fnName: 'table_getLeftLeafColumns', memoDeps: () => [ table.options.columns, - table.options.state?.columnPinning, + table.store.state.columnPinning, ], }, { @@ -297,7 +297,7 @@ export function constructColumnPinningFeature< fnName: 'table_getRightLeafColumns', memoDeps: () => [ table.options.columns, - table.options.state?.columnPinning, + table.store.state.columnPinning, ], }, { @@ -305,7 +305,7 @@ export function constructColumnPinningFeature< fnName: 'table_getCenterLeafColumns', memoDeps: () => [ table.options.columns, - table.options.state?.columnPinning, + table.store.state.columnPinning, ], }, // visible leaf columns @@ -314,8 +314,8 @@ export function constructColumnPinningFeature< fnName: 'table_getLeftVisibleLeafColumns', memoDeps: () => [ table.options.columns, - table.options.state?.columnPinning, - table.options.state?.columnVisibility, + table.store.state.columnPinning, + table.store.state.columnVisibility, ], }, { @@ -323,8 +323,8 @@ export function constructColumnPinningFeature< fnName: 'table_getCenterVisibleLeafColumns', memoDeps: () => [ table.options.columns, - table.options.state?.columnPinning, - table.options.state?.columnVisibility, + table.store.state.columnPinning, + table.store.state.columnVisibility, ], }, { @@ -332,8 +332,8 @@ export function constructColumnPinningFeature< fnName: 'table_getRightVisibleLeafColumns', memoDeps: () => [ table.options.columns, - table.options.state?.columnPinning, - table.options.state?.columnVisibility, + table.store.state.columnPinning, + table.store.state.columnVisibility, ], }, ]) diff --git a/packages/table-core/src/features/column-pinning/columnPinningFeature.utils.ts b/packages/table-core/src/features/column-pinning/columnPinningFeature.utils.ts index f670227a8e..2b740072b0 100644 --- a/packages/table-core/src/features/column-pinning/columnPinningFeature.utils.ts +++ b/packages/table-core/src/features/column-pinning/columnPinningFeature.utils.ts @@ -92,7 +92,7 @@ export function column_getIsPinned< const leafColumnIds = column.getLeafColumns().map((d) => d.id) const { left, right } = - column._table.options.state?.columnPinning ?? getDefaultColumnPinningState() + column._table.store.state.columnPinning ?? getDefaultColumnPinningState() const isLeft = leafColumnIds.some((d) => left.includes(d)) const isRight = leafColumnIds.some((d) => right.includes(d)) @@ -108,9 +108,8 @@ export function column_getPinnedIndex< const position = column_getIsPinned(column) return position - ? (column._table.options.state?.columnPinning?.[position].indexOf( - column.id, - ) ?? -1) + ? (column._table.store.state.columnPinning?.[position].indexOf(column.id) ?? + -1) : 0 } @@ -126,7 +125,7 @@ export function row_getCenterVisibleCells< row_getAllVisibleCells, ) const { left, right } = - row._table.options.state?.columnPinning ?? getDefaultColumnPinningState() + row._table.store.state.columnPinning ?? getDefaultColumnPinningState() const leftAndRight: Array = [...left, ...right] return allCells.filter((d) => !leftAndRight.includes(d.column.id)) } @@ -141,7 +140,7 @@ export function row_getLeftVisibleCells< row_getAllVisibleCells, ) const { left } = - row._table.options.state?.columnPinning ?? getDefaultColumnPinningState() + row._table.store.state.columnPinning ?? getDefaultColumnPinningState() const cells = left .map((columnId) => allCells.find((cell) => cell.column.id === columnId)!) .filter(Boolean) @@ -159,7 +158,7 @@ export function row_getRightVisibleCells< row_getAllVisibleCells, ) const { right } = - row._table.options.state?.columnPinning ?? getDefaultColumnPinningState() + row._table.store.state.columnPinning ?? getDefaultColumnPinningState() const cells = right .map((columnId) => allCells.find((cell) => cell.column.id === columnId)!) .filter(Boolean) @@ -195,7 +194,7 @@ export function table_getIsSomeColumnsPinned< TFeatures extends TableFeatures, TData extends RowData, >(table: Table_Internal, position?: ColumnPinningPosition) { - const pinningState = table.options.state?.columnPinning + const pinningState = table.store.state.columnPinning if (!position) { return Boolean(pinningState?.left.length || pinningState?.right.length) @@ -216,7 +215,7 @@ export function table_getLeftHeaderGroups< table_getVisibleLeafColumns, ) as unknown as Array> const { left } = - table.options.state?.columnPinning ?? getDefaultColumnPinningState() + table.store.state.columnPinning ?? getDefaultColumnPinningState() const orderedLeafColumns = left .map((columnId) => leafColumns.find((d) => d.id === columnId)!) @@ -236,7 +235,7 @@ export function table_getRightHeaderGroups< table_getVisibleLeafColumns, ) as unknown as Array> const { right } = - table.options.state?.columnPinning ?? getDefaultColumnPinningState() + table.store.state.columnPinning ?? getDefaultColumnPinningState() const orderedLeafColumns = right .map((columnId) => leafColumns.find((d) => d.id === columnId)!) @@ -258,7 +257,7 @@ export function table_getCenterHeaderGroups< table_getVisibleLeafColumns, ) as unknown as Array> const { left, right } = - table.options.state?.columnPinning ?? getDefaultColumnPinningState() + table.store.state.columnPinning ?? getDefaultColumnPinningState() const leftAndRight: Array = [...left, ...right] leafColumns = leafColumns.filter( @@ -397,7 +396,7 @@ export function table_getLeftLeafColumns< TData extends RowData, >(table: Table_Internal) { const { left } = - table.options.state?.columnPinning ?? getDefaultColumnPinningState() + table.store.state.columnPinning ?? getDefaultColumnPinningState() return left .map( (columnId) => @@ -411,7 +410,7 @@ export function table_getRightLeafColumns< TData extends RowData, >(table: Table_Internal) { const { right } = - table.options.state?.columnPinning ?? getDefaultColumnPinningState() + table.store.state.columnPinning ?? getDefaultColumnPinningState() return right .map( (columnId) => @@ -425,7 +424,7 @@ export function table_getCenterLeafColumns< TData extends RowData, >(table: Table_Internal) { const { left, right } = - table.options.state?.columnPinning ?? getDefaultColumnPinningState() + table.store.state.columnPinning ?? getDefaultColumnPinningState() const leftAndRight: Array = [...left, ...right] return table.getAllLeafColumns().filter((d) => !leftAndRight.includes(d.id)) } diff --git a/packages/table-core/src/features/column-resizing/columnResizingFeature.utils.ts b/packages/table-core/src/features/column-resizing/columnResizingFeature.utils.ts index 22d07761d8..ff28a82ab0 100644 --- a/packages/table-core/src/features/column-resizing/columnResizingFeature.utils.ts +++ b/packages/table-core/src/features/column-resizing/columnResizingFeature.utils.ts @@ -40,7 +40,7 @@ export function column_getIsResizing< TValue extends CellData = CellData, >(column: Column_Internal) { return ( - column._table.options.state?.columnResizing?.isResizingColumn === column.id + column._table.store.state.columnResizing?.isResizingColumn === column.id ) } diff --git a/packages/table-core/src/features/column-sizing/columnSizingFeature.ts b/packages/table-core/src/features/column-sizing/columnSizingFeature.ts index 1560735698..539d204360 100644 --- a/packages/table-core/src/features/column-sizing/columnSizingFeature.ts +++ b/packages/table-core/src/features/column-sizing/columnSizingFeature.ts @@ -78,7 +78,7 @@ export function constructColumnSizingFeature< table_getPinnedVisibleLeafColumns, position, ), - column._table.options.state?.columnSizing, + column._table.store.state.columnSizing, ], }, { @@ -92,7 +92,7 @@ export function constructColumnSizingFeature< table_getPinnedVisibleLeafColumns, position, ), - column._table.options.state?.columnSizing, + column._table.store.state.columnSizing, ], }, { diff --git a/packages/table-core/src/features/column-sizing/columnSizingFeature.utils.ts b/packages/table-core/src/features/column-sizing/columnSizingFeature.utils.ts index dfaeeb2464..678d620715 100644 --- a/packages/table-core/src/features/column-sizing/columnSizingFeature.utils.ts +++ b/packages/table-core/src/features/column-sizing/columnSizingFeature.utils.ts @@ -32,7 +32,7 @@ export function column_getSize< TValue extends CellData = CellData, >(column: Column_Internal): number { const defaultSizes = getDefaultColumnSizingColumnDef() - const columnSize = column._table.options.state?.columnSizing?.[column.id] + const columnSize = column._table.store.state.columnSizing?.[column.id] return Math.min( Math.max( diff --git a/packages/table-core/src/features/column-visibility/columnVisibilityFeature.ts b/packages/table-core/src/features/column-visibility/columnVisibilityFeature.ts index 2206e1df21..9b7205cdea 100644 --- a/packages/table-core/src/features/column-visibility/columnVisibilityFeature.ts +++ b/packages/table-core/src/features/column-visibility/columnVisibilityFeature.ts @@ -69,7 +69,7 @@ export function constructColumnVisibilityFeature< fnName: 'column_getIsVisible', memoDeps: () => [ column._table.options.columns, - column._table.options.state?.columnVisibility, + column._table.store.state.columnVisibility, column.columns, ], }, @@ -95,7 +95,7 @@ export function constructColumnVisibilityFeature< fnName: 'row_getAllVisibleCells', memoDeps: () => [ row.getAllCells(), - row._table.options.state?.columnVisibility, + row._table.store.state.columnVisibility, ], }, { @@ -116,7 +116,7 @@ export function constructColumnVisibilityFeature< fn: () => table_getVisibleFlatColumns(table), fnName: 'table_getVisibleFlatColumns', memoDeps: () => [ - table.options.state?.columnVisibility, + table.store.state.columnVisibility, table.options.columns, ], }, @@ -124,7 +124,7 @@ export function constructColumnVisibilityFeature< fn: () => table_getVisibleLeafColumns(table), fnName: 'table_getVisibleLeafColumns', memoDeps: () => [ - table.options.state?.columnVisibility, + table.store.state.columnVisibility, table.options.columns, ], }, diff --git a/packages/table-core/src/features/column-visibility/columnVisibilityFeature.utils.ts b/packages/table-core/src/features/column-visibility/columnVisibilityFeature.utils.ts index 4fe1578cb7..d7fae02ac2 100644 --- a/packages/table-core/src/features/column-visibility/columnVisibilityFeature.utils.ts +++ b/packages/table-core/src/features/column-visibility/columnVisibilityFeature.utils.ts @@ -37,7 +37,7 @@ export function column_getIsVisible< ? childColumns.some((childColumn) => callMemoOrStaticFn(childColumn, 'getIsVisible', column_getIsVisible), ) - : column._table.options.state?.columnVisibility?.[column.id]) ?? true + : column._table.store.state.columnVisibility?.[column.id]) ?? true ) } diff --git a/packages/table-core/src/features/row-expanding/createExpandedRowModel.ts b/packages/table-core/src/features/row-expanding/createExpandedRowModel.ts index a6684d5f0a..1ef2c49ccc 100644 --- a/packages/table-core/src/features/row-expanding/createExpandedRowModel.ts +++ b/packages/table-core/src/features/row-expanding/createExpandedRowModel.ts @@ -2,28 +2,28 @@ import { tableMemo } from '../../utils' import { row_getIsExpanded } from './rowExpandingFeature.utils' import type { TableFeatures } from '../../types/TableFeatures' import type { RowModel } from '../../core/row-models/coreRowModelsFeature.types' -import type { Table_Internal } from '../../types/Table' +import type { Table, Table_Internal } from '../../types/Table' import type { Row } from '../../types/Row' import type { RowData } from '../../types/type-utils' export function createExpandedRowModel< TFeatures extends TableFeatures, TData extends RowData = any, ->(): ( - table: Table_Internal, -) => () => RowModel { - return (table) => - tableMemo({ +>(): (table: Table) => () => RowModel { + return (_table) => { + const table = _table as Table_Internal + return tableMemo({ feature: 'rowExpandingFeature', table, fnName: 'table.getExpandedRowModel', memoDeps: () => [ - table.options.state?.expanded, + table.store.state.expanded, table.getPreExpandedRowModel(), table.options.paginateExpandedRows, ], fn: () => _createExpandedRowModel(table), }) + } } function _createExpandedRowModel< @@ -31,7 +31,7 @@ function _createExpandedRowModel< TData extends RowData = any, >(table: Table_Internal): RowModel { const rowModel = table.getPreExpandedRowModel() - const expanded = table.options.state?.expanded + const expanded = table.store.state.expanded if ( !rowModel.rows.length || diff --git a/packages/table-core/src/features/row-expanding/rowExpandingFeature.utils.ts b/packages/table-core/src/features/row-expanding/rowExpandingFeature.utils.ts index 71586e70bc..6207d39d39 100644 --- a/packages/table-core/src/features/row-expanding/rowExpandingFeature.utils.ts +++ b/packages/table-core/src/features/row-expanding/rowExpandingFeature.utils.ts @@ -75,7 +75,7 @@ export function table_getIsSomeRowsExpanded< TFeatures extends TableFeatures, TData extends RowData, >(table: Table_Internal) { - const expanded = table.options.state?.expanded ?? {} + const expanded = table.store.state.expanded ?? {} return expanded === true || Object.values(expanded).some(Boolean) } @@ -83,7 +83,7 @@ export function table_getIsAllRowsExpanded< TFeatures extends TableFeatures, TData extends RowData, >(table: Table_Internal) { - const expanded = table.options.state?.expanded ?? {} + const expanded = table.store.state.expanded ?? {} // If expanded is true, save some cycles and return true if (expanded === true) { @@ -110,9 +110,9 @@ export function table_getExpandedDepth< let maxDepth = 0 const rowIds = - table.options.state?.expanded === true + table.store.state.expanded === true ? Object.keys(table.getRowModel().rowsById) - : Object.keys(table.options.state?.expanded ?? {}) + : Object.keys(table.store.state.expanded ?? {}) rowIds.forEach((id) => { const splitId = id.split('.') @@ -161,7 +161,7 @@ export function row_getIsExpanded< TFeatures extends TableFeatures, TData extends RowData, >(row: Row) { - const expanded = row._table.options.state?.expanded ?? ({} as ExpandedState) + const expanded = row._table.store.state.expanded ?? ({} as ExpandedState) return !!( row._table.options.getIsRowExpanded?.(row) ?? diff --git a/packages/table-core/src/features/row-pagination/createPaginatedRowModel.ts b/packages/table-core/src/features/row-pagination/createPaginatedRowModel.ts index 77d0fb8dd3..44548e0a12 100644 --- a/packages/table-core/src/features/row-pagination/createPaginatedRowModel.ts +++ b/packages/table-core/src/features/row-pagination/createPaginatedRowModel.ts @@ -3,30 +3,30 @@ import { expandRows } from '../row-expanding/createExpandedRowModel' import { getDefaultPaginationState } from './rowPaginationFeature.utils' import type { TableFeatures } from '../../types/TableFeatures' import type { RowModel } from '../../core/row-models/coreRowModelsFeature.types' -import type { Table_Internal } from '../../types/Table' +import type { Table, Table_Internal } from '../../types/Table' import type { Row } from '../../types/Row' import type { RowData } from '../../types/type-utils' export function createPaginatedRowModel< TFeatures extends TableFeatures, TData extends RowData = any, ->(): ( - table: Table_Internal, -) => () => RowModel { - return (table) => - tableMemo({ +>(): (table: Table) => () => RowModel { + return (_table) => { + const table = _table as Table_Internal + return tableMemo({ feature: 'rowPaginationFeature', table, fnName: 'table.getPaginatedRowModel', memoDeps: () => [ table.getPrePaginatedRowModel(), - table.options.state?.pagination, + table.store.state.pagination, table.options.paginateExpandedRows - ? table.options.state?.expanded + ? table.store.state.expanded : undefined, ], fn: () => _createPaginatedRowModel(table), }) + } } function _createPaginatedRowModel< @@ -34,7 +34,7 @@ function _createPaginatedRowModel< TData extends RowData = any, >(table: Table_Internal): RowModel { const prePaginatedRowModel = table.getPrePaginatedRowModel() - const pagination = table.options.state?.pagination + const pagination = table.store.state.pagination if (!prePaginatedRowModel.rows.length) { return prePaginatedRowModel diff --git a/packages/table-core/src/features/row-pagination/rowPaginationFeature.utils.ts b/packages/table-core/src/features/row-pagination/rowPaginationFeature.utils.ts index ad2face539..4a6cc76033 100644 --- a/packages/table-core/src/features/row-pagination/rowPaginationFeature.utils.ts +++ b/packages/table-core/src/features/row-pagination/rowPaginationFeature.utils.ts @@ -131,15 +131,14 @@ export function table_getCanPreviousPage< TFeatures extends TableFeatures, TData extends RowData, >(table: Table_Internal) { - return (table.options.state?.pagination?.pageIndex ?? 0) > 0 + return (table.store.state.pagination?.pageIndex ?? 0) > 0 } export function table_getCanNextPage< TFeatures extends TableFeatures, TData extends RowData, >(table: Table_Internal) { - const pageIndex = - table.options.state?.pagination?.pageIndex ?? defaultPageIndex + const pageIndex = table.store.state.pagination?.pageIndex ?? defaultPageIndex const pageCount = table_getPageCount(table) @@ -192,7 +191,7 @@ export function table_getPageCount< table.options.pageCount ?? Math.ceil( table_getRowCount(table) / - (table.options.state?.pagination?.pageSize ?? defaultPageSize), + (table.store.state.pagination?.pageSize ?? defaultPageSize), ) ) } diff --git a/packages/table-core/src/features/row-pinning/rowPinningFeature.ts b/packages/table-core/src/features/row-pinning/rowPinningFeature.ts index e0b4e5ac89..9cb7f1f145 100644 --- a/packages/table-core/src/features/row-pinning/rowPinningFeature.ts +++ b/packages/table-core/src/features/row-pinning/rowPinningFeature.ts @@ -67,7 +67,7 @@ export function constructRowPinningFeature< fnName: 'row_getPinnedIndex', memoDeps: () => [ row._table.getRowModel().rows, - row._table.options.state?.rowPinning, + row._table.store.state.rowPinning, ], }, { @@ -97,7 +97,7 @@ export function constructRowPinningFeature< fnName: 'table_getTopRows', memoDeps: () => [ table.getRowModel().rows, - table.options.state?.rowPinning?.top, + table.store.state.rowPinning?.top, ], }, { @@ -105,7 +105,7 @@ export function constructRowPinningFeature< fnName: 'table_getBottomRows', memoDeps: () => [ table.getRowModel().rows, - table.options.state?.rowPinning?.bottom, + table.store.state.rowPinning?.bottom, ], }, { @@ -113,7 +113,7 @@ export function constructRowPinningFeature< fnName: 'table_getCenterRows', memoDeps: () => [ table.getRowModel().rows, - table.options.state?.rowPinning, + table.store.state.rowPinning, ], }, ]) diff --git a/packages/table-core/src/features/row-pinning/rowPinningFeature.utils.ts b/packages/table-core/src/features/row-pinning/rowPinningFeature.utils.ts index 00b111c63d..c6eaea2599 100644 --- a/packages/table-core/src/features/row-pinning/rowPinningFeature.utils.ts +++ b/packages/table-core/src/features/row-pinning/rowPinningFeature.utils.ts @@ -49,7 +49,7 @@ export function table_getIsSomeRowsPinned< table: Table_Internal, position?: RowPinningPosition, ): boolean { - const rowPinning = table.options.state?.rowPinning + const rowPinning = table.store.state.rowPinning if (!position) { return Boolean(rowPinning?.top.length || rowPinning?.bottom.length) @@ -65,7 +65,7 @@ function table_getPinnedRows< position: 'top' | 'bottom', ): Array> { const visibleRows = table.getRowModel().rows - const pinnedRowIds = table.options.state?.rowPinning?.[position] ?? [] + const pinnedRowIds = table.store.state.rowPinning?.[position] ?? [] const rows = (table.options.keepPinnedRows ?? true) @@ -102,7 +102,7 @@ export function table_getCenterRows< TData extends RowData, >(table: Table_Internal): Array> { const { top, bottom } = - table.options.state?.rowPinning ?? getDefaultRowPinningState() + table.store.state.rowPinning ?? getDefaultRowPinningState() const allRows = table.getRowModel().rows const topAndBottom = new Set([...top, ...bottom]) @@ -127,7 +127,7 @@ export function row_getIsPinned< TData extends RowData, >(row: Row): RowPinningPosition { const { top, bottom } = - row._table.options.state?.rowPinning ?? getDefaultRowPinningState() + row._table.store.state.rowPinning ?? getDefaultRowPinningState() return top.includes(row.id) ? 'top' diff --git a/packages/table-core/src/features/row-selection/rowSelectionFeature.ts b/packages/table-core/src/features/row-selection/rowSelectionFeature.ts index d5c3a87762..b775f29b3d 100644 --- a/packages/table-core/src/features/row-selection/rowSelectionFeature.ts +++ b/packages/table-core/src/features/row-selection/rowSelectionFeature.ts @@ -127,7 +127,7 @@ export function constructRowSelectionFeature< fn: () => table_getSelectedRowModel(table), fnName: 'table_getSelectedRowModel', memoDeps: () => [ - table.options.state?.rowSelection, + table.store.state.rowSelection, table.getCoreRowModel(), ], }, @@ -135,7 +135,7 @@ export function constructRowSelectionFeature< fn: () => table_getFilteredSelectedRowModel(table), fnName: 'table_getFilteredSelectedRowModel', memoDeps: () => [ - table.options.state?.rowSelection, + table.store.state.rowSelection, table.getFilteredRowModel(), ], }, @@ -143,7 +143,7 @@ export function constructRowSelectionFeature< fn: () => table_getGroupedSelectedRowModel(table), fnName: 'table_getGroupedSelectedRowModel', memoDeps: () => [ - table.options.state?.rowSelection, + table.store.state.rowSelection, table.getSortedRowModel(), ], }, diff --git a/packages/table-core/src/features/row-selection/rowSelectionFeature.utils.ts b/packages/table-core/src/features/row-selection/rowSelectionFeature.utils.ts index 7258945fe8..fd307e629f 100644 --- a/packages/table-core/src/features/row-selection/rowSelectionFeature.utils.ts +++ b/packages/table-core/src/features/row-selection/rowSelectionFeature.utils.ts @@ -97,7 +97,7 @@ export function table_getSelectedRowModel< >(table: Table_Internal) { const rowModel = table.getCoreRowModel() - if (!Object.keys(table.options.state?.rowSelection ?? {}).length) { + if (!Object.keys(table.store.state.rowSelection ?? {}).length) { return { rows: [], flatRows: [], @@ -114,7 +114,7 @@ export function table_getFilteredSelectedRowModel< >(table: Table_Internal) { const rowModel = table.getCoreRowModel() - if (!Object.keys(table.options.state?.rowSelection ?? {}).length) { + if (!Object.keys(table.store.state.rowSelection ?? {}).length) { return { rows: [], flatRows: [], @@ -131,7 +131,7 @@ export function table_getGroupedSelectedRowModel< >(table: Table_Internal) { const rowModel = table.getCoreRowModel() - if (!Object.keys(table.options.state?.rowSelection ?? {}).length) { + if (!Object.keys(table.store.state.rowSelection ?? {}).length) { return { rows: [], flatRows: [], @@ -148,7 +148,7 @@ export function table_getIsAllRowsSelected< >(table: Table_Internal) { const preGroupedFlatRows = table.getFilteredRowModel().flatRows const rowSelection = - table.options.state?.rowSelection ?? ({} as RowSelectionState) + table.store.state.rowSelection ?? ({} as RowSelectionState) let isAllRowsSelected = Boolean( preGroupedFlatRows.length && Object.keys(rowSelection).length, @@ -175,7 +175,7 @@ export function table_getIsAllPageRowsSelected< .getPaginatedRowModel() .flatRows.filter((row) => row_getCanSelect(row)) const rowSelection = - table.options.state?.rowSelection ?? ({} as RowSelectionState) + table.store.state.rowSelection ?? ({} as RowSelectionState) let isAllPageRowsSelected = !!paginationFlatRows.length @@ -193,9 +193,7 @@ export function table_getIsSomeRowsSelected< TFeatures extends TableFeatures, TData extends RowData, >(table: Table_Internal) { - const totalSelected = Object.keys( - table.options.state?.rowSelection ?? {}, - ).length + const totalSelected = Object.keys(table.store.state.rowSelection ?? {}).length return ( totalSelected > 0 && totalSelected < table.getFilteredRowModel().flatRows.length @@ -421,11 +419,7 @@ export function isRowSelected< TFeatures extends TableFeatures, TData extends RowData, >(row: Row): boolean { - return ( - (row._table.options.state?.rowSelection ?? ({} as RowSelectionState))[ - row.id - ] ?? false - ) + return (row._table.store.state.rowSelection ?? {})[row.id] ?? false } export function isSubRowSelected< @@ -434,9 +428,6 @@ export function isSubRowSelected< >(row: Row): boolean | 'some' | 'all' { if (!row.subRows.length) return false - const rowSelection = - row._table.options.state?.rowSelection ?? ({} as RowSelectionState) - let allChildrenSelected = true let someSelected = false diff --git a/packages/table-core/src/features/row-sorting/createSortedRowModel.ts b/packages/table-core/src/features/row-sorting/createSortedRowModel.ts index ef0c3c0c40..67b88a1303 100644 --- a/packages/table-core/src/features/row-sorting/createSortedRowModel.ts +++ b/packages/table-core/src/features/row-sorting/createSortedRowModel.ts @@ -4,7 +4,7 @@ import { column_getCanSort, column_getSortFn } from './rowSortingFeature.utils' import type { Column_Internal } from '../../types/Column' import type { TableFeatures } from '../../types/TableFeatures' import type { RowModel } from '../../core/row-models/coreRowModelsFeature.types' -import type { Table_Internal } from '../../types/Table' +import type { Table, Table_Internal } from '../../types/Table' import type { Row } from '../../types/Row' import type { SortFn, SortFns } from './rowSortingFeature.types' import type { RowData } from '../../types/type-utils' @@ -14,19 +14,15 @@ export function createSortedRowModel< TData extends RowData, >( sortFns: Record>, -): ( - table: Table_Internal, -) => () => RowModel { - return (table) => { +): (table: Table) => () => RowModel { + return (_table) => { + const table = _table as Table_Internal if (!table._rowModelFns.sortFns) table._rowModelFns.sortFns = sortFns return tableMemo({ feature: 'rowSortingFeature', table, fnName: 'table.getSortedRowModel', - memoDeps: () => [ - table.options.state?.sorting, - table.getPreSortedRowModel(), - ], + memoDeps: () => [table.store.state.sorting, table.getPreSortedRowModel()], fn: () => _createSortedRowModel(table), onAfterUpdate: () => table_autoResetPageIndex(table), }) @@ -38,7 +34,7 @@ function _createSortedRowModel< TData extends RowData = any, >(table: Table_Internal): RowModel { const preSortedRowModel = table.getPreSortedRowModel() - const sorting = table.options.state?.sorting + const sorting = table.store.state.sorting if (!preSortedRowModel.rows.length || !sorting?.length) { return preSortedRowModel diff --git a/packages/table-core/src/features/row-sorting/rowSortingFeature.ts b/packages/table-core/src/features/row-sorting/rowSortingFeature.ts index 196e872bde..6cb38ce81f 100644 --- a/packages/table-core/src/features/row-sorting/rowSortingFeature.ts +++ b/packages/table-core/src/features/row-sorting/rowSortingFeature.ts @@ -18,6 +18,7 @@ import { } from './rowSortingFeature.utils' import type { RowData } from '../../types/type-utils' import type { TableFeature, TableFeatures } from '../../types/TableFeatures' +import { TableState_All } from '../../types/TableState' // import type { // CachedRowModel_Sorted, // ColumnDef_RowSorting, diff --git a/packages/table-core/src/features/row-sorting/rowSortingFeature.utils.ts b/packages/table-core/src/features/row-sorting/rowSortingFeature.utils.ts index 747a3f3f7e..b65b5823bb 100644 --- a/packages/table-core/src/features/row-sorting/rowSortingFeature.utils.ts +++ b/packages/table-core/src/features/row-sorting/rowSortingFeature.utils.ts @@ -271,7 +271,7 @@ export function column_getIsSorted< TData extends RowData, TValue extends CellData = CellData, >(column: Column_Internal): false | SortDirection { - const columnSort = column._table.options.state?.sorting?.find( + const columnSort = column._table.store.state.sorting?.find( (d) => d.id === column.id, ) return !columnSort ? false : columnSort.desc ? 'desc' : 'asc' @@ -283,9 +283,8 @@ export function column_getSortIndex< TValue extends CellData = CellData, >(column: Column_Internal): number { return ( - column._table.options.state?.sorting?.findIndex( - (d) => d.id === column.id, - ) ?? -1 + column._table.store.state.sorting?.findIndex((d) => d.id === column.id) ?? + -1 ) } diff --git a/packages/table-core/src/helpers/tableHelper.ts b/packages/table-core/src/helpers/tableHelper.ts index e3cfa6824f..c4d1493e70 100644 --- a/packages/table-core/src/helpers/tableHelper.ts +++ b/packages/table-core/src/helpers/tableHelper.ts @@ -51,6 +51,7 @@ export function constructTableHelper< >( tableCreator: ( tableOptions: TableOptions, + selector?: any, ) => Table, tableHelperOptions: TableHelperOptions, ): TableHelper_Core { diff --git a/packages/table-core/src/types/Table.ts b/packages/table-core/src/types/Table.ts index 2b2ee25932..58c4fa3e56 100644 --- a/packages/table-core/src/types/Table.ts +++ b/packages/table-core/src/types/Table.ts @@ -23,6 +23,7 @@ import type { Table_Headers } from '../core/headers/coreHeadersFeature.types' import type { Table_Rows } from '../core/rows/coreRowsFeature.types' import type { Table_Table } from '../core/table/coreTablesFeature.types' import type { TableOptions_All } from './TableOptions' +import { Store } from '@tanstack/store' /** * Use this interface as a target for declaration merging to add your own plugin properties. @@ -119,4 +120,5 @@ export type Table_Internal< initialState?: TableState_All } initialState: TableState_All + store: Store } diff --git a/packages/table-core/src/types/TableFeatures.ts b/packages/table-core/src/types/TableFeatures.ts index 7417f260a5..5e6685136c 100644 --- a/packages/table-core/src/types/TableFeatures.ts +++ b/packages/table-core/src/types/TableFeatures.ts @@ -122,6 +122,11 @@ export type GetInitialState = ( initialState: Partial & Partial, ) => TableState_All & Partial +export type GetDefaultStateSelector = + ( + state: TableState_All, + ) => Partial & Partial + export interface TableFeature { constructCellAPIs?: ConstructCellAPIs constructColumnAPIs?: ConstructColumnAPIs diff --git a/packages/table-core/src/utils.ts b/packages/table-core/src/utils.ts index da45fdfe6c..6583ce9c10 100755 --- a/packages/table-core/src/utils.ts +++ b/packages/table-core/src/utils.ts @@ -1,7 +1,7 @@ import type { Table_Internal } from './types/Table' import type { NoInfer, RowData, Updater } from './types/type-utils' import type { TableFeatures } from './types/TableFeatures' -import type { TableState } from './types/TableState' +import type { TableState, TableState_All } from './types/TableState' export const isDev = process.env.NODE_ENV === 'development' @@ -13,17 +13,19 @@ export function functionalUpdate(updater: Updater, input: T): T { export function noop() {} -export function makeStateUpdater>( +export function makeStateUpdater( key: K, instance: unknown, ) { return (updater: Updater[K]>) => { - ;(instance as any).setState((old: TTableState) => { - return { - ...old, - [key]: functionalUpdate(updater, (old as any)[key]), - } - }) + ;(instance as Table_Internal).store.setState( + (old: TTableState) => { + return { + ...old, + [key]: functionalUpdate(updater, old[key]), + } + }, + ) } } @@ -191,7 +193,7 @@ export function tableMemo< ) console.info({ feature, - state: table.getState(), + state: table.store.state, deps: memoOptions.memoDeps?.toString(), }) console.trace() diff --git a/packages/table-core/tests/implementation/features/row-pinning/rowPinningFeature.test.ts b/packages/table-core/tests/implementation/features/row-pinning/rowPinningFeature.test.ts index a9979864ba..37998376b2 100644 --- a/packages/table-core/tests/implementation/features/row-pinning/rowPinningFeature.test.ts +++ b/packages/table-core/tests/implementation/features/row-pinning/rowPinningFeature.test.ts @@ -29,7 +29,7 @@ describe('table methods', () => { table.setRowPinning(newState) - expect(table.getState().rowPinning).toEqual(newState) + expect(table.store.state.rowPinning).toEqual(newState) }) }) @@ -44,7 +44,7 @@ describe('table methods', () => { table.resetRowPinning(true) - expect(table.getState().rowPinning).toEqual(EMPTY_PINNING_STATE) + expect(table.store.state.rowPinning).toEqual(EMPTY_PINNING_STATE) }) it('should reset to initial state when defaultState is false', () => { @@ -66,7 +66,7 @@ describe('table methods', () => { table.resetRowPinning(false) - expect(table.getState().rowPinning).toEqual(initialState) + expect(table.store.state.rowPinning).toEqual(initialState) }) }) @@ -258,11 +258,11 @@ describe('row methods', () => { const row = table.getRow(ROW[0]) row.pin('top') - expect(table.getState().rowPinning.top).toEqual([ROW[0]]) + expect(table.store.state.rowPinning.top).toEqual([ROW[0]]) row.pin('bottom') - expect(table.getState().rowPinning.bottom).toEqual([ROW[0]]) - expect(table.getState().rowPinning.top).toEqual([]) + expect(table.store.state.rowPinning.bottom).toEqual([ROW[0]]) + expect(table.store.state.rowPinning.top).toEqual([]) }) it('should unpin row when position is false', () => { @@ -278,7 +278,7 @@ describe('row methods', () => { const row = table.getRow(ROW[0]) row.pin(false) - expect(table.getState().rowPinning).toEqual(EMPTY_PINNING_STATE) + expect(table.store.state.rowPinning).toEqual(EMPTY_PINNING_STATE) }) it('should include leaf rows when includeLeafRows is true', () => { @@ -289,11 +289,11 @@ describe('row methods', () => { row.pin('top', true) // Verify the row was pinned - expect(table.getState().rowPinning.top).toContain(ROW[0]) + expect(table.store.state.rowPinning.top).toContain(ROW[0]) // Verify the leaf rows were pinned - expect(table.getState().rowPinning.top).toContain(SUB_ROW[0]) - expect(table.getState().rowPinning.top).toContain(SUB_ROW[1]) + expect(table.store.state.rowPinning.top).toContain(SUB_ROW[0]) + expect(table.store.state.rowPinning.top).toContain(SUB_ROW[1]) }) it('should include parent rows when includeParentRows is true', () => { @@ -304,10 +304,10 @@ describe('row methods', () => { row.pin('top', false, true) // Verify the row was pinned - expect(table.getState().rowPinning.top).toContain(SUB_ROW[0]) + expect(table.store.state.rowPinning.top).toContain(SUB_ROW[0]) // Verify the parent row was pinned - expect(table.getState().rowPinning.top).toContain(ROW[0]) + expect(table.store.state.rowPinning.top).toContain(ROW[0]) }) }) }) diff --git a/packages/vue-table/package.json b/packages/vue-table/package.json index 0df9c12df4..d35066aa4e 100644 --- a/packages/vue-table/package.json +++ b/packages/vue-table/package.json @@ -58,7 +58,7 @@ "devDependencies": { "@vitejs/plugin-vue": "^6.0.3", "eslint-plugin-vue": "^10.6.2", - "vue": "^3.5.25" + "vue": "^3.5.26" }, "peerDependencies": { "vue": ">=3.2" diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 5ca202d77f..740dc5e55d 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -16,34 +16,34 @@ importers: version: 12.0.0(size-limit@12.0.0(jiti@2.6.1)) '@tanstack/config': specifier: 0.14.2 - version: 0.14.2(@types/node@25.0.1)(esbuild@0.27.1)(eslint@9.39.1(jiti@2.6.1))(rollup@4.53.3)(typescript@5.9.3)(vite@7.2.7(@types/node@25.0.1)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1)) + version: 0.14.2(@types/node@25.0.3)(esbuild@0.27.1)(eslint@9.39.2(jiti@2.6.1))(rollup@4.53.3)(typescript@5.9.3)(vite@7.3.0(@types/node@25.0.3)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1)) '@testing-library/jest-dom': specifier: ^6.9.1 version: 6.9.1 '@types/node': - specifier: ^25.0.1 - version: 25.0.1 + specifier: ^25.0.3 + version: 25.0.3 eslint: - specifier: ^9.39.1 - version: 9.39.1(jiti@2.6.1) + specifier: ^9.39.2 + version: 9.39.2(jiti@2.6.1) eslint-plugin-unused-imports: specifier: ^4.3.0 - version: 4.3.0(@typescript-eslint/eslint-plugin@8.19.0(@typescript-eslint/parser@8.19.0(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.1(jiti@2.6.1)) + version: 4.3.0(@typescript-eslint/eslint-plugin@8.19.0(@typescript-eslint/parser@8.19.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1)) jsdom: specifier: ^27.3.0 version: 27.3.0(postcss@8.5.6) knip: - specifier: ^5.73.3 - version: 5.73.3(@types/node@25.0.1)(typescript@5.9.3) + specifier: ^5.75.2 + version: 5.75.2(@types/node@25.0.3)(typescript@5.9.3) nx: - specifier: ^22.2.1 - version: 22.2.1 + specifier: ^22.3.2 + version: 22.3.2 prettier: specifier: ^3.7.4 version: 3.7.4 prettier-plugin-svelte: - specifier: ^3.4.0 - version: 3.4.0(prettier@3.7.4)(svelte@5.45.10) + specifier: ^3.4.1 + version: 3.4.1(prettier@3.7.4)(svelte@5.46.0) publint: specifier: ^0.3.16 version: 0.3.16 @@ -60,35 +60,35 @@ importers: specifier: 5.9.3 version: 5.9.3 vite: - specifier: ^7.2.7 - version: 7.2.7(@types/node@25.0.1)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1) + specifier: ^7.3.0 + version: 7.3.0(@types/node@25.0.3)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1) vitest: - specifier: ^4.0.15 - version: 4.0.15(@types/node@25.0.1)(jiti@2.6.1)(jsdom@27.3.0(postcss@8.5.6))(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1) + specifier: ^4.0.16 + version: 4.0.16(@types/node@25.0.3)(jiti@2.6.1)(jsdom@27.3.0(postcss@8.5.6))(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1) examples/angular/basic: dependencies: '@angular/common': - specifier: ^21.0.5 - version: 21.0.5(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2) + specifier: ^21.0.6 + version: 21.0.6(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2) '@angular/compiler': - specifier: ^21.0.5 - version: 21.0.5 + specifier: ^21.0.6 + version: 21.0.6 '@angular/core': - specifier: ^21.0.5 - version: 21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0) + specifier: ^21.0.6 + version: 21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0) '@angular/forms': - specifier: ^21.0.5 - version: 21.0.5(@angular/common@21.0.5(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2))(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0))(@angular/platform-browser@21.0.5(@angular/animations@21.0.5(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0)))(@angular/common@21.0.5(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2))(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0)))(@standard-schema/spec@1.0.0)(rxjs@7.8.2) + specifier: ^21.0.6 + version: 21.0.6(@angular/common@21.0.6(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2))(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0))(@angular/platform-browser@21.0.6(@angular/animations@21.0.6(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0)))(@angular/common@21.0.6(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2))(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0)))(rxjs@7.8.2) '@angular/platform-browser': - specifier: ^21.0.5 - version: 21.0.5(@angular/animations@21.0.5(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0)))(@angular/common@21.0.5(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2))(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0)) + specifier: ^21.0.6 + version: 21.0.6(@angular/animations@21.0.6(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0)))(@angular/common@21.0.6(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2))(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0)) '@angular/platform-browser-dynamic': - specifier: ^21.0.5 - version: 21.0.5(@angular/common@21.0.5(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2))(@angular/compiler@21.0.5)(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0))(@angular/platform-browser@21.0.5(@angular/animations@21.0.5(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0)))(@angular/common@21.0.5(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2))(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0))) + specifier: ^21.0.6 + version: 21.0.6(@angular/common@21.0.6(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2))(@angular/compiler@21.0.6)(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0))(@angular/platform-browser@21.0.6(@angular/animations@21.0.6(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0)))(@angular/common@21.0.6(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2))(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0))) '@angular/router': - specifier: ^21.0.5 - version: 21.0.5(@angular/common@21.0.5(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2))(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0))(@angular/platform-browser@21.0.5(@angular/animations@21.0.5(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0)))(@angular/common@21.0.5(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2))(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0)))(rxjs@7.8.2) + specifier: ^21.0.6 + version: 21.0.6(@angular/common@21.0.6(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2))(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0))(@angular/platform-browser@21.0.6(@angular/animations@21.0.6(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0)))(@angular/common@21.0.6(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2))(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0)))(rxjs@7.8.2) '@tanstack/angular-table': specifier: ^9.0.0-alpha.10 version: link:../../../packages/angular-table @@ -100,14 +100,14 @@ importers: version: 0.16.0 devDependencies: '@angular/build': - specifier: ^21.0.3 - version: 21.0.3(elcjkga7f7fsk5y3dltjzora5i) + specifier: ^21.0.4 + version: 21.0.4(e3rtbb43dph44bvayrqojrmlgq) '@angular/cli': - specifier: ^21.0.3 - version: 21.0.3(@types/node@25.0.1)(chokidar@4.0.3) + specifier: ^21.0.4 + version: 21.0.4(@types/node@25.0.3)(chokidar@4.0.3) '@angular/compiler-cli': - specifier: ^21.0.5 - version: 21.0.5(@angular/compiler@21.0.5)(typescript@5.9.3) + specifier: ^21.0.6 + version: 21.0.6(@angular/compiler@21.0.6)(typescript@5.9.3) '@types/jasmine': specifier: ~5.1.13 version: 5.1.13 @@ -124,23 +124,23 @@ importers: examples/angular/column-ordering: dependencies: '@angular/common': - specifier: ^21.0.5 - version: 21.0.5(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2) + specifier: ^21.0.6 + version: 21.0.6(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2) '@angular/compiler': - specifier: ^21.0.5 - version: 21.0.5 + specifier: ^21.0.6 + version: 21.0.6 '@angular/core': - specifier: ^21.0.5 - version: 21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0) + specifier: ^21.0.6 + version: 21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0) '@angular/forms': - specifier: ^21.0.5 - version: 21.0.5(@angular/common@21.0.5(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2))(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0))(@angular/platform-browser@21.0.5(@angular/animations@21.0.5(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0)))(@angular/common@21.0.5(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2))(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0)))(@standard-schema/spec@1.0.0)(rxjs@7.8.2) + specifier: ^21.0.6 + version: 21.0.6(@angular/common@21.0.6(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2))(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0))(@angular/platform-browser@21.0.6(@angular/animations@21.0.6(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0)))(@angular/common@21.0.6(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2))(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0)))(rxjs@7.8.2) '@angular/platform-browser': - specifier: ^21.0.5 - version: 21.0.5(@angular/animations@21.0.5(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0)))(@angular/common@21.0.5(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2))(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0)) + specifier: ^21.0.6 + version: 21.0.6(@angular/animations@21.0.6(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0)))(@angular/common@21.0.6(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2))(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0)) '@angular/platform-browser-dynamic': - specifier: ^21.0.5 - version: 21.0.5(@angular/common@21.0.5(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2))(@angular/compiler@21.0.5)(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0))(@angular/platform-browser@21.0.5(@angular/animations@21.0.5(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0)))(@angular/common@21.0.5(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2))(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0))) + specifier: ^21.0.6 + version: 21.0.6(@angular/common@21.0.6(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2))(@angular/compiler@21.0.6)(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0))(@angular/platform-browser@21.0.6(@angular/animations@21.0.6(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0)))(@angular/common@21.0.6(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2))(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0))) '@tanstack/angular-table': specifier: ^9.0.0-alpha.10 version: link:../../../packages/angular-table @@ -152,14 +152,14 @@ importers: version: 0.16.0 devDependencies: '@angular/build': - specifier: ^21.0.3 - version: 21.0.3(elcjkga7f7fsk5y3dltjzora5i) + specifier: ^21.0.4 + version: 21.0.4(e3rtbb43dph44bvayrqojrmlgq) '@angular/cli': - specifier: ^21.0.3 - version: 21.0.3(@types/node@25.0.1)(chokidar@4.0.3) + specifier: ^21.0.4 + version: 21.0.4(@types/node@25.0.3)(chokidar@4.0.3) '@angular/compiler-cli': - specifier: ^21.0.5 - version: 21.0.5(@angular/compiler@21.0.5)(typescript@5.9.3) + specifier: ^21.0.6 + version: 21.0.6(@angular/compiler@21.0.6)(typescript@5.9.3) tslib: specifier: ^2.8.1 version: 2.8.1 @@ -170,26 +170,26 @@ importers: examples/angular/column-pinning: dependencies: '@angular/animations': - specifier: ^21.0.5 - version: 21.0.5(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0)) + specifier: ^21.0.6 + version: 21.0.6(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0)) '@angular/common': - specifier: ^21.0.5 - version: 21.0.5(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2) + specifier: ^21.0.6 + version: 21.0.6(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2) '@angular/compiler': - specifier: ^21.0.5 - version: 21.0.5 + specifier: ^21.0.6 + version: 21.0.6 '@angular/core': - specifier: ^21.0.5 - version: 21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0) + specifier: ^21.0.6 + version: 21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0) '@angular/forms': - specifier: ^21.0.5 - version: 21.0.5(@angular/common@21.0.5(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2))(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0))(@angular/platform-browser@21.0.5(@angular/animations@21.0.5(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0)))(@angular/common@21.0.5(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2))(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0)))(@standard-schema/spec@1.0.0)(rxjs@7.8.2) + specifier: ^21.0.6 + version: 21.0.6(@angular/common@21.0.6(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2))(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0))(@angular/platform-browser@21.0.6(@angular/animations@21.0.6(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0)))(@angular/common@21.0.6(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2))(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0)))(rxjs@7.8.2) '@angular/platform-browser': - specifier: ^21.0.5 - version: 21.0.5(@angular/animations@21.0.5(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0)))(@angular/common@21.0.5(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2))(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0)) + specifier: ^21.0.6 + version: 21.0.6(@angular/animations@21.0.6(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0)))(@angular/common@21.0.6(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2))(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0)) '@angular/platform-browser-dynamic': - specifier: ^21.0.5 - version: 21.0.5(@angular/common@21.0.5(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2))(@angular/compiler@21.0.5)(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0))(@angular/platform-browser@21.0.5(@angular/animations@21.0.5(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0)))(@angular/common@21.0.5(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2))(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0))) + specifier: ^21.0.6 + version: 21.0.6(@angular/common@21.0.6(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2))(@angular/compiler@21.0.6)(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0))(@angular/platform-browser@21.0.6(@angular/animations@21.0.6(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0)))(@angular/common@21.0.6(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2))(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0))) '@faker-js/faker': specifier: ^10.1.0 version: 10.1.0 @@ -204,14 +204,14 @@ importers: version: 0.16.0 devDependencies: '@angular/build': - specifier: ^21.0.3 - version: 21.0.3(elcjkga7f7fsk5y3dltjzora5i) + specifier: ^21.0.4 + version: 21.0.4(e3rtbb43dph44bvayrqojrmlgq) '@angular/cli': - specifier: ^21.0.3 - version: 21.0.3(@types/node@25.0.1)(chokidar@4.0.3) + specifier: ^21.0.4 + version: 21.0.4(@types/node@25.0.3)(chokidar@4.0.3) '@angular/compiler-cli': - specifier: ^21.0.5 - version: 21.0.5(@angular/compiler@21.0.5)(typescript@5.9.3) + specifier: ^21.0.6 + version: 21.0.6(@angular/compiler@21.0.6)(typescript@5.9.3) tslib: specifier: ^2.8.1 version: 2.8.1 @@ -222,23 +222,23 @@ importers: examples/angular/column-pinning-sticky: dependencies: '@angular/common': - specifier: ^21.0.5 - version: 21.0.5(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2) + specifier: ^21.0.6 + version: 21.0.6(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2) '@angular/compiler': - specifier: ^21.0.5 - version: 21.0.5 + specifier: ^21.0.6 + version: 21.0.6 '@angular/core': - specifier: ^21.0.5 - version: 21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0) + specifier: ^21.0.6 + version: 21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0) '@angular/forms': - specifier: ^21.0.5 - version: 21.0.5(@angular/common@21.0.5(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2))(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0))(@angular/platform-browser@21.0.5(@angular/animations@21.0.5(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0)))(@angular/common@21.0.5(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2))(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0)))(@standard-schema/spec@1.0.0)(rxjs@7.8.2) + specifier: ^21.0.6 + version: 21.0.6(@angular/common@21.0.6(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2))(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0))(@angular/platform-browser@21.0.6(@angular/animations@21.0.6(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0)))(@angular/common@21.0.6(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2))(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0)))(rxjs@7.8.2) '@angular/platform-browser': - specifier: ^21.0.5 - version: 21.0.5(@angular/animations@21.0.5(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0)))(@angular/common@21.0.5(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2))(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0)) + specifier: ^21.0.6 + version: 21.0.6(@angular/animations@21.0.6(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0)))(@angular/common@21.0.6(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2))(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0)) '@angular/platform-browser-dynamic': - specifier: ^21.0.5 - version: 21.0.5(@angular/common@21.0.5(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2))(@angular/compiler@21.0.5)(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0))(@angular/platform-browser@21.0.5(@angular/animations@21.0.5(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0)))(@angular/common@21.0.5(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2))(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0))) + specifier: ^21.0.6 + version: 21.0.6(@angular/common@21.0.6(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2))(@angular/compiler@21.0.6)(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0))(@angular/platform-browser@21.0.6(@angular/animations@21.0.6(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0)))(@angular/common@21.0.6(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2))(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0))) '@faker-js/faker': specifier: ^10.1.0 version: 10.1.0 @@ -253,14 +253,14 @@ importers: version: 0.16.0 devDependencies: '@angular/build': - specifier: ^21.0.3 - version: 21.0.3(elcjkga7f7fsk5y3dltjzora5i) + specifier: ^21.0.4 + version: 21.0.4(e3rtbb43dph44bvayrqojrmlgq) '@angular/cli': - specifier: ^21.0.3 - version: 21.0.3(@types/node@25.0.1)(chokidar@4.0.3) + specifier: ^21.0.4 + version: 21.0.4(@types/node@25.0.3)(chokidar@4.0.3) '@angular/compiler-cli': - specifier: ^21.0.5 - version: 21.0.5(@angular/compiler@21.0.5)(typescript@5.9.3) + specifier: ^21.0.6 + version: 21.0.6(@angular/compiler@21.0.6)(typescript@5.9.3) tslib: specifier: ^2.8.1 version: 2.8.1 @@ -271,29 +271,29 @@ importers: examples/angular/column-resizing-performant: dependencies: '@angular/animations': - specifier: ^21.0.5 - version: 21.0.5(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0)) + specifier: ^21.0.6 + version: 21.0.6(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0)) '@angular/common': - specifier: ^21.0.5 - version: 21.0.5(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2) + specifier: ^21.0.6 + version: 21.0.6(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2) '@angular/compiler': - specifier: ^21.0.5 - version: 21.0.5 + specifier: ^21.0.6 + version: 21.0.6 '@angular/core': - specifier: ^21.0.5 - version: 21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0) + specifier: ^21.0.6 + version: 21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0) '@angular/forms': - specifier: ^21.0.5 - version: 21.0.5(@angular/common@21.0.5(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2))(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0))(@angular/platform-browser@21.0.5(@angular/animations@21.0.5(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0)))(@angular/common@21.0.5(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2))(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0)))(@standard-schema/spec@1.0.0)(rxjs@7.8.2) + specifier: ^21.0.6 + version: 21.0.6(@angular/common@21.0.6(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2))(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0))(@angular/platform-browser@21.0.6(@angular/animations@21.0.6(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0)))(@angular/common@21.0.6(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2))(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0)))(rxjs@7.8.2) '@angular/platform-browser': - specifier: ^21.0.5 - version: 21.0.5(@angular/animations@21.0.5(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0)))(@angular/common@21.0.5(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2))(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0)) + specifier: ^21.0.6 + version: 21.0.6(@angular/animations@21.0.6(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0)))(@angular/common@21.0.6(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2))(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0)) '@angular/platform-browser-dynamic': - specifier: ^21.0.5 - version: 21.0.5(@angular/common@21.0.5(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2))(@angular/compiler@21.0.5)(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0))(@angular/platform-browser@21.0.5(@angular/animations@21.0.5(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0)))(@angular/common@21.0.5(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2))(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0))) + specifier: ^21.0.6 + version: 21.0.6(@angular/common@21.0.6(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2))(@angular/compiler@21.0.6)(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0))(@angular/platform-browser@21.0.6(@angular/animations@21.0.6(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0)))(@angular/common@21.0.6(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2))(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0))) '@angular/router': - specifier: ^21.0.5 - version: 21.0.5(@angular/common@21.0.5(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2))(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0))(@angular/platform-browser@21.0.5(@angular/animations@21.0.5(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0)))(@angular/common@21.0.5(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2))(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0)))(rxjs@7.8.2) + specifier: ^21.0.6 + version: 21.0.6(@angular/common@21.0.6(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2))(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0))(@angular/platform-browser@21.0.6(@angular/animations@21.0.6(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0)))(@angular/common@21.0.6(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2))(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0)))(rxjs@7.8.2) '@faker-js/faker': specifier: ^10.1.0 version: 10.1.0 @@ -308,14 +308,14 @@ importers: version: 0.16.0 devDependencies: '@angular-devkit/build-angular': - specifier: ^21.0.3 - version: 21.0.3(yir27t2ldgqwoebr2mjmjasxwy) + specifier: ^21.0.4 + version: 21.0.4(phy7lfjktaw4enyqegwfhvlium) '@angular/cli': - specifier: ^21.0.3 - version: 21.0.3(@types/node@25.0.1)(chokidar@4.0.3) + specifier: ^21.0.4 + version: 21.0.4(@types/node@25.0.3)(chokidar@4.0.3) '@angular/compiler-cli': - specifier: ^21.0.5 - version: 21.0.5(@angular/compiler@21.0.5)(typescript@5.9.3) + specifier: ^21.0.6 + version: 21.0.6(@angular/compiler@21.0.6)(typescript@5.9.3) '@types/jasmine': specifier: ~5.1.13 version: 5.1.13 @@ -347,23 +347,23 @@ importers: examples/angular/column-visibility: dependencies: '@angular/common': - specifier: ^21.0.5 - version: 21.0.5(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2) + specifier: ^21.0.6 + version: 21.0.6(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2) '@angular/compiler': - specifier: ^21.0.5 - version: 21.0.5 + specifier: ^21.0.6 + version: 21.0.6 '@angular/core': - specifier: ^21.0.5 - version: 21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0) + specifier: ^21.0.6 + version: 21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0) '@angular/forms': - specifier: ^21.0.5 - version: 21.0.5(@angular/common@21.0.5(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2))(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0))(@angular/platform-browser@21.0.5(@angular/animations@21.0.5(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0)))(@angular/common@21.0.5(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2))(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0)))(@standard-schema/spec@1.0.0)(rxjs@7.8.2) + specifier: ^21.0.6 + version: 21.0.6(@angular/common@21.0.6(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2))(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0))(@angular/platform-browser@21.0.6(@angular/animations@21.0.6(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0)))(@angular/common@21.0.6(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2))(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0)))(rxjs@7.8.2) '@angular/platform-browser': - specifier: ^21.0.5 - version: 21.0.5(@angular/animations@21.0.5(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0)))(@angular/common@21.0.5(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2))(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0)) + specifier: ^21.0.6 + version: 21.0.6(@angular/animations@21.0.6(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0)))(@angular/common@21.0.6(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2))(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0)) '@angular/platform-browser-dynamic': - specifier: ^21.0.5 - version: 21.0.5(@angular/common@21.0.5(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2))(@angular/compiler@21.0.5)(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0))(@angular/platform-browser@21.0.5(@angular/animations@21.0.5(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0)))(@angular/common@21.0.5(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2))(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0))) + specifier: ^21.0.6 + version: 21.0.6(@angular/common@21.0.6(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2))(@angular/compiler@21.0.6)(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0))(@angular/platform-browser@21.0.6(@angular/animations@21.0.6(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0)))(@angular/common@21.0.6(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2))(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0))) '@tanstack/angular-table': specifier: ^9.0.0-alpha.10 version: link:../../../packages/angular-table @@ -375,14 +375,14 @@ importers: version: 0.16.0 devDependencies: '@angular/build': - specifier: ^21.0.3 - version: 21.0.3(elcjkga7f7fsk5y3dltjzora5i) + specifier: ^21.0.4 + version: 21.0.4(e3rtbb43dph44bvayrqojrmlgq) '@angular/cli': - specifier: ^21.0.3 - version: 21.0.3(@types/node@25.0.1)(chokidar@4.0.3) + specifier: ^21.0.4 + version: 21.0.4(@types/node@25.0.3)(chokidar@4.0.3) '@angular/compiler-cli': - specifier: ^21.0.5 - version: 21.0.5(@angular/compiler@21.0.5)(typescript@5.9.3) + specifier: ^21.0.6 + version: 21.0.6(@angular/compiler@21.0.6)(typescript@5.9.3) tslib: specifier: ^2.8.1 version: 2.8.1 @@ -393,29 +393,29 @@ importers: examples/angular/editable: dependencies: '@angular/animations': - specifier: ^21.0.5 - version: 21.0.5(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0)) + specifier: ^21.0.6 + version: 21.0.6(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0)) '@angular/common': - specifier: ^21.0.5 - version: 21.0.5(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2) + specifier: ^21.0.6 + version: 21.0.6(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2) '@angular/compiler': - specifier: ^21.0.5 - version: 21.0.5 + specifier: ^21.0.6 + version: 21.0.6 '@angular/core': - specifier: ^21.0.5 - version: 21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0) + specifier: ^21.0.6 + version: 21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0) '@angular/forms': - specifier: ^21.0.5 - version: 21.0.5(@angular/common@21.0.5(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2))(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0))(@angular/platform-browser@21.0.5(@angular/animations@21.0.5(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0)))(@angular/common@21.0.5(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2))(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0)))(@standard-schema/spec@1.0.0)(rxjs@7.8.2) + specifier: ^21.0.6 + version: 21.0.6(@angular/common@21.0.6(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2))(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0))(@angular/platform-browser@21.0.6(@angular/animations@21.0.6(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0)))(@angular/common@21.0.6(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2))(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0)))(rxjs@7.8.2) '@angular/platform-browser': - specifier: ^21.0.5 - version: 21.0.5(@angular/animations@21.0.5(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0)))(@angular/common@21.0.5(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2))(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0)) + specifier: ^21.0.6 + version: 21.0.6(@angular/animations@21.0.6(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0)))(@angular/common@21.0.6(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2))(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0)) '@angular/platform-browser-dynamic': - specifier: ^21.0.5 - version: 21.0.5(@angular/common@21.0.5(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2))(@angular/compiler@21.0.5)(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0))(@angular/platform-browser@21.0.5(@angular/animations@21.0.5(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0)))(@angular/common@21.0.5(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2))(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0))) + specifier: ^21.0.6 + version: 21.0.6(@angular/common@21.0.6(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2))(@angular/compiler@21.0.6)(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0))(@angular/platform-browser@21.0.6(@angular/animations@21.0.6(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0)))(@angular/common@21.0.6(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2))(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0))) '@angular/router': - specifier: ^21.0.5 - version: 21.0.5(@angular/common@21.0.5(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2))(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0))(@angular/platform-browser@21.0.5(@angular/animations@21.0.5(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0)))(@angular/common@21.0.5(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2))(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0)))(rxjs@7.8.2) + specifier: ^21.0.6 + version: 21.0.6(@angular/common@21.0.6(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2))(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0))(@angular/platform-browser@21.0.6(@angular/animations@21.0.6(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0)))(@angular/common@21.0.6(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2))(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0)))(rxjs@7.8.2) '@faker-js/faker': specifier: ^10.1.0 version: 10.1.0 @@ -430,14 +430,14 @@ importers: version: 0.16.0 devDependencies: '@angular-devkit/build-angular': - specifier: ^21.0.3 - version: 21.0.3(yir27t2ldgqwoebr2mjmjasxwy) + specifier: ^21.0.4 + version: 21.0.4(phy7lfjktaw4enyqegwfhvlium) '@angular/cli': - specifier: ^21.0.3 - version: 21.0.3(@types/node@25.0.1)(chokidar@4.0.3) + specifier: ^21.0.4 + version: 21.0.4(@types/node@25.0.3)(chokidar@4.0.3) '@angular/compiler-cli': - specifier: ^21.0.5 - version: 21.0.5(@angular/compiler@21.0.5)(typescript@5.9.3) + specifier: ^21.0.6 + version: 21.0.6(@angular/compiler@21.0.6)(typescript@5.9.3) '@types/jasmine': specifier: ~5.1.13 version: 5.1.13 @@ -469,29 +469,29 @@ importers: examples/angular/expanding: dependencies: '@angular/animations': - specifier: ^21.0.5 - version: 21.0.5(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0)) + specifier: ^21.0.6 + version: 21.0.6(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0)) '@angular/common': - specifier: ^21.0.5 - version: 21.0.5(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2) + specifier: ^21.0.6 + version: 21.0.6(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2) '@angular/compiler': - specifier: ^21.0.5 - version: 21.0.5 + specifier: ^21.0.6 + version: 21.0.6 '@angular/core': - specifier: ^21.0.5 - version: 21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0) + specifier: ^21.0.6 + version: 21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0) '@angular/forms': - specifier: ^21.0.5 - version: 21.0.5(@angular/common@21.0.5(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2))(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0))(@angular/platform-browser@21.0.5(@angular/animations@21.0.5(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0)))(@angular/common@21.0.5(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2))(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0)))(@standard-schema/spec@1.0.0)(rxjs@7.8.2) + specifier: ^21.0.6 + version: 21.0.6(@angular/common@21.0.6(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2))(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0))(@angular/platform-browser@21.0.6(@angular/animations@21.0.6(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0)))(@angular/common@21.0.6(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2))(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0)))(rxjs@7.8.2) '@angular/platform-browser': - specifier: ^21.0.5 - version: 21.0.5(@angular/animations@21.0.5(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0)))(@angular/common@21.0.5(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2))(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0)) + specifier: ^21.0.6 + version: 21.0.6(@angular/animations@21.0.6(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0)))(@angular/common@21.0.6(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2))(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0)) '@angular/platform-browser-dynamic': - specifier: ^21.0.5 - version: 21.0.5(@angular/common@21.0.5(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2))(@angular/compiler@21.0.5)(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0))(@angular/platform-browser@21.0.5(@angular/animations@21.0.5(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0)))(@angular/common@21.0.5(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2))(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0))) + specifier: ^21.0.6 + version: 21.0.6(@angular/common@21.0.6(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2))(@angular/compiler@21.0.6)(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0))(@angular/platform-browser@21.0.6(@angular/animations@21.0.6(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0)))(@angular/common@21.0.6(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2))(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0))) '@angular/router': - specifier: ^21.0.5 - version: 21.0.5(@angular/common@21.0.5(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2))(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0))(@angular/platform-browser@21.0.5(@angular/animations@21.0.5(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0)))(@angular/common@21.0.5(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2))(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0)))(rxjs@7.8.2) + specifier: ^21.0.6 + version: 21.0.6(@angular/common@21.0.6(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2))(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0))(@angular/platform-browser@21.0.6(@angular/animations@21.0.6(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0)))(@angular/common@21.0.6(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2))(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0)))(rxjs@7.8.2) '@faker-js/faker': specifier: ^10.1.0 version: 10.1.0 @@ -506,14 +506,14 @@ importers: version: 0.16.0 devDependencies: '@angular-devkit/build-angular': - specifier: ^21.0.3 - version: 21.0.3(yir27t2ldgqwoebr2mjmjasxwy) + specifier: ^21.0.4 + version: 21.0.4(phy7lfjktaw4enyqegwfhvlium) '@angular/cli': - specifier: ^21.0.3 - version: 21.0.3(@types/node@25.0.1)(chokidar@4.0.3) + specifier: ^21.0.4 + version: 21.0.4(@types/node@25.0.3)(chokidar@4.0.3) '@angular/compiler-cli': - specifier: ^21.0.5 - version: 21.0.5(@angular/compiler@21.0.5)(typescript@5.9.3) + specifier: ^21.0.6 + version: 21.0.6(@angular/compiler@21.0.6)(typescript@5.9.3) tslib: specifier: ^2.8.1 version: 2.8.1 @@ -524,23 +524,23 @@ importers: examples/angular/filters: dependencies: '@angular/common': - specifier: ^21.0.5 - version: 21.0.5(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2) + specifier: ^21.0.6 + version: 21.0.6(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2) '@angular/compiler': - specifier: ^21.0.5 - version: 21.0.5 + specifier: ^21.0.6 + version: 21.0.6 '@angular/core': - specifier: ^21.0.5 - version: 21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0) + specifier: ^21.0.6 + version: 21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0) '@angular/forms': - specifier: ^21.0.5 - version: 21.0.5(@angular/common@21.0.5(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2))(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0))(@angular/platform-browser@21.0.5(@angular/animations@21.0.5(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0)))(@angular/common@21.0.5(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2))(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0)))(@standard-schema/spec@1.0.0)(rxjs@7.8.2) + specifier: ^21.0.6 + version: 21.0.6(@angular/common@21.0.6(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2))(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0))(@angular/platform-browser@21.0.6(@angular/animations@21.0.6(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0)))(@angular/common@21.0.6(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2))(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0)))(rxjs@7.8.2) '@angular/platform-browser': - specifier: ^21.0.5 - version: 21.0.5(@angular/animations@21.0.5(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0)))(@angular/common@21.0.5(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2))(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0)) + specifier: ^21.0.6 + version: 21.0.6(@angular/animations@21.0.6(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0)))(@angular/common@21.0.6(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2))(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0)) '@angular/platform-browser-dynamic': - specifier: ^21.0.5 - version: 21.0.5(@angular/common@21.0.5(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2))(@angular/compiler@21.0.5)(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0))(@angular/platform-browser@21.0.5(@angular/animations@21.0.5(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0)))(@angular/common@21.0.5(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2))(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0))) + specifier: ^21.0.6 + version: 21.0.6(@angular/common@21.0.6(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2))(@angular/compiler@21.0.6)(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0))(@angular/platform-browser@21.0.6(@angular/animations@21.0.6(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0)))(@angular/common@21.0.6(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2))(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0))) '@faker-js/faker': specifier: ^10.1.0 version: 10.1.0 @@ -558,14 +558,14 @@ importers: version: 0.16.0 devDependencies: '@angular/build': - specifier: ^21.0.3 - version: 21.0.3(elcjkga7f7fsk5y3dltjzora5i) + specifier: ^21.0.4 + version: 21.0.4(e3rtbb43dph44bvayrqojrmlgq) '@angular/cli': - specifier: ^21.0.3 - version: 21.0.3(@types/node@25.0.1)(chokidar@4.0.3) + specifier: ^21.0.4 + version: 21.0.4(@types/node@25.0.3)(chokidar@4.0.3) '@angular/compiler-cli': - specifier: ^21.0.5 - version: 21.0.5(@angular/compiler@21.0.5)(typescript@5.9.3) + specifier: ^21.0.6 + version: 21.0.6(@angular/compiler@21.0.6)(typescript@5.9.3) typescript: specifier: 5.9.3 version: 5.9.3 @@ -573,23 +573,23 @@ importers: examples/angular/grouping: dependencies: '@angular/common': - specifier: ^21.0.5 - version: 21.0.5(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2) + specifier: ^21.0.6 + version: 21.0.6(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2) '@angular/compiler': - specifier: ^21.0.5 - version: 21.0.5 + specifier: ^21.0.6 + version: 21.0.6 '@angular/core': - specifier: ^21.0.5 - version: 21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0) + specifier: ^21.0.6 + version: 21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0) '@angular/forms': - specifier: ^21.0.5 - version: 21.0.5(@angular/common@21.0.5(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2))(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0))(@angular/platform-browser@21.0.5(@angular/animations@21.0.5(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0)))(@angular/common@21.0.5(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2))(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0)))(@standard-schema/spec@1.0.0)(rxjs@7.8.2) + specifier: ^21.0.6 + version: 21.0.6(@angular/common@21.0.6(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2))(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0))(@angular/platform-browser@21.0.6(@angular/animations@21.0.6(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0)))(@angular/common@21.0.6(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2))(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0)))(rxjs@7.8.2) '@angular/platform-browser': - specifier: ^21.0.5 - version: 21.0.5(@angular/animations@21.0.5(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0)))(@angular/common@21.0.5(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2))(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0)) + specifier: ^21.0.6 + version: 21.0.6(@angular/animations@21.0.6(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0)))(@angular/common@21.0.6(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2))(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0)) '@angular/platform-browser-dynamic': - specifier: ^21.0.5 - version: 21.0.5(@angular/common@21.0.5(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2))(@angular/compiler@21.0.5)(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0))(@angular/platform-browser@21.0.5(@angular/animations@21.0.5(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0)))(@angular/common@21.0.5(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2))(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0))) + specifier: ^21.0.6 + version: 21.0.6(@angular/common@21.0.6(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2))(@angular/compiler@21.0.6)(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0))(@angular/platform-browser@21.0.6(@angular/animations@21.0.6(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0)))(@angular/common@21.0.6(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2))(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0))) '@faker-js/faker': specifier: ^10.1.0 version: 10.1.0 @@ -604,14 +604,14 @@ importers: version: 0.16.0 devDependencies: '@angular/build': - specifier: ^21.0.3 - version: 21.0.3(elcjkga7f7fsk5y3dltjzora5i) + specifier: ^21.0.4 + version: 21.0.4(e3rtbb43dph44bvayrqojrmlgq) '@angular/cli': - specifier: ^21.0.3 - version: 21.0.3(@types/node@25.0.1)(chokidar@4.0.3) + specifier: ^21.0.4 + version: 21.0.4(@types/node@25.0.3)(chokidar@4.0.3) '@angular/compiler-cli': - specifier: ^21.0.5 - version: 21.0.5(@angular/compiler@21.0.5)(typescript@5.9.3) + specifier: ^21.0.6 + version: 21.0.6(@angular/compiler@21.0.6)(typescript@5.9.3) tslib: specifier: ^2.8.1 version: 2.8.1 @@ -622,35 +622,35 @@ importers: examples/angular/remote-data: dependencies: '@angular/animations': - specifier: ^21.0.5 - version: 21.0.5(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0)) + specifier: ^21.0.6 + version: 21.0.6(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0)) '@angular/common': - specifier: ^21.0.5 - version: 21.0.5(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2) + specifier: ^21.0.6 + version: 21.0.6(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2) '@angular/compiler': - specifier: ^21.0.5 - version: 21.0.5 + specifier: ^21.0.6 + version: 21.0.6 '@angular/core': - specifier: ^21.0.5 - version: 21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0) + specifier: ^21.0.6 + version: 21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0) '@angular/forms': - specifier: ^21.0.5 - version: 21.0.5(@angular/common@21.0.5(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2))(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0))(@angular/platform-browser@21.0.5(@angular/animations@21.0.5(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0)))(@angular/common@21.0.5(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2))(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0)))(@standard-schema/spec@1.0.0)(rxjs@7.8.2) + specifier: ^21.0.6 + version: 21.0.6(@angular/common@21.0.6(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2))(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0))(@angular/platform-browser@21.0.6(@angular/animations@21.0.6(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0)))(@angular/common@21.0.6(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2))(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0)))(rxjs@7.8.2) '@angular/platform-browser': - specifier: ^21.0.5 - version: 21.0.5(@angular/animations@21.0.5(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0)))(@angular/common@21.0.5(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2))(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0)) + specifier: ^21.0.6 + version: 21.0.6(@angular/animations@21.0.6(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0)))(@angular/common@21.0.6(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2))(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0)) '@angular/platform-browser-dynamic': - specifier: ^21.0.5 - version: 21.0.5(@angular/common@21.0.5(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2))(@angular/compiler@21.0.5)(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0))(@angular/platform-browser@21.0.5(@angular/animations@21.0.5(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0)))(@angular/common@21.0.5(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2))(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0))) + specifier: ^21.0.6 + version: 21.0.6(@angular/common@21.0.6(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2))(@angular/compiler@21.0.6)(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0))(@angular/platform-browser@21.0.6(@angular/animations@21.0.6(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0)))(@angular/common@21.0.6(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2))(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0))) '@angular/platform-server': - specifier: ^21.0.5 - version: 21.0.5(@angular/common@21.0.5(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2))(@angular/compiler@21.0.5)(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0))(@angular/platform-browser@21.0.5(@angular/animations@21.0.5(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0)))(@angular/common@21.0.5(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2))(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0)))(rxjs@7.8.2) + specifier: ^21.0.6 + version: 21.0.6(@angular/common@21.0.6(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2))(@angular/compiler@21.0.6)(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0))(@angular/platform-browser@21.0.6(@angular/animations@21.0.6(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0)))(@angular/common@21.0.6(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2))(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0)))(rxjs@7.8.2) '@angular/router': - specifier: ^21.0.5 - version: 21.0.5(@angular/common@21.0.5(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2))(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0))(@angular/platform-browser@21.0.5(@angular/animations@21.0.5(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0)))(@angular/common@21.0.5(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2))(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0)))(rxjs@7.8.2) + specifier: ^21.0.6 + version: 21.0.6(@angular/common@21.0.6(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2))(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0))(@angular/platform-browser@21.0.6(@angular/animations@21.0.6(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0)))(@angular/common@21.0.6(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2))(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0)))(rxjs@7.8.2) '@angular/ssr': - specifier: ^21.0.3 - version: 21.0.3(a7zg6jniaba33zmzoztiz6ir7e) + specifier: ^21.0.4 + version: 21.0.4(uptqe2xgtzvx3kutorqglogmxa) '@tanstack/angular-table': specifier: ^9.0.0-alpha.10 version: link:../../../packages/angular-table @@ -665,20 +665,20 @@ importers: version: 0.16.0 devDependencies: '@angular-devkit/build-angular': - specifier: ^21.0.3 - version: 21.0.3(yir27t2ldgqwoebr2mjmjasxwy) + specifier: ^21.0.4 + version: 21.0.4(phy7lfjktaw4enyqegwfhvlium) '@angular/cli': - specifier: ^21.0.3 - version: 21.0.3(@types/node@25.0.1)(chokidar@4.0.3) + specifier: ^21.0.4 + version: 21.0.4(@types/node@25.0.3)(chokidar@4.0.3) '@angular/compiler-cli': - specifier: ^21.0.5 - version: 21.0.5(@angular/compiler@21.0.5)(typescript@5.9.3) + specifier: ^21.0.6 + version: 21.0.6(@angular/compiler@21.0.6)(typescript@5.9.3) '@types/express': specifier: ^5.0.6 version: 5.0.6 '@types/node': - specifier: ^25.0.1 - version: 25.0.1 + specifier: ^25.0.3 + version: 25.0.3 tslib: specifier: ^2.8.1 version: 2.8.1 @@ -689,32 +689,32 @@ importers: examples/angular/row-dnd: dependencies: '@angular/animations': - specifier: ^21.0.5 - version: 21.0.5(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0)) + specifier: ^21.0.6 + version: 21.0.6(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0)) '@angular/cdk': - specifier: ^21.0.3 - version: 21.0.3(@angular/common@21.0.5(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2))(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2) - '@angular/common': specifier: ^21.0.5 - version: 21.0.5(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2) + version: 21.0.5(@angular/common@21.0.6(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2))(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2) + '@angular/common': + specifier: ^21.0.6 + version: 21.0.6(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2) '@angular/compiler': - specifier: ^21.0.5 - version: 21.0.5 + specifier: ^21.0.6 + version: 21.0.6 '@angular/core': - specifier: ^21.0.5 - version: 21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0) + specifier: ^21.0.6 + version: 21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0) '@angular/forms': - specifier: ^21.0.5 - version: 21.0.5(@angular/common@21.0.5(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2))(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0))(@angular/platform-browser@21.0.5(@angular/animations@21.0.5(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0)))(@angular/common@21.0.5(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2))(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0)))(@standard-schema/spec@1.0.0)(rxjs@7.8.2) + specifier: ^21.0.6 + version: 21.0.6(@angular/common@21.0.6(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2))(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0))(@angular/platform-browser@21.0.6(@angular/animations@21.0.6(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0)))(@angular/common@21.0.6(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2))(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0)))(rxjs@7.8.2) '@angular/platform-browser': - specifier: ^21.0.5 - version: 21.0.5(@angular/animations@21.0.5(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0)))(@angular/common@21.0.5(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2))(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0)) + specifier: ^21.0.6 + version: 21.0.6(@angular/animations@21.0.6(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0)))(@angular/common@21.0.6(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2))(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0)) '@angular/platform-browser-dynamic': - specifier: ^21.0.5 - version: 21.0.5(@angular/common@21.0.5(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2))(@angular/compiler@21.0.5)(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0))(@angular/platform-browser@21.0.5(@angular/animations@21.0.5(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0)))(@angular/common@21.0.5(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2))(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0))) + specifier: ^21.0.6 + version: 21.0.6(@angular/common@21.0.6(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2))(@angular/compiler@21.0.6)(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0))(@angular/platform-browser@21.0.6(@angular/animations@21.0.6(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0)))(@angular/common@21.0.6(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2))(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0))) '@angular/router': - specifier: ^21.0.5 - version: 21.0.5(@angular/common@21.0.5(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2))(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0))(@angular/platform-browser@21.0.5(@angular/animations@21.0.5(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0)))(@angular/common@21.0.5(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2))(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0)))(rxjs@7.8.2) + specifier: ^21.0.6 + version: 21.0.6(@angular/common@21.0.6(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2))(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0))(@angular/platform-browser@21.0.6(@angular/animations@21.0.6(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0)))(@angular/common@21.0.6(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2))(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0)))(rxjs@7.8.2) '@faker-js/faker': specifier: ^10.1.0 version: 10.1.0 @@ -729,14 +729,14 @@ importers: version: 0.16.0 devDependencies: '@angular-devkit/build-angular': - specifier: ^21.0.3 - version: 21.0.3(yir27t2ldgqwoebr2mjmjasxwy) + specifier: ^21.0.4 + version: 21.0.4(phy7lfjktaw4enyqegwfhvlium) '@angular/cli': - specifier: ^21.0.3 - version: 21.0.3(@types/node@25.0.1)(chokidar@4.0.3) + specifier: ^21.0.4 + version: 21.0.4(@types/node@25.0.3)(chokidar@4.0.3) '@angular/compiler-cli': - specifier: ^21.0.5 - version: 21.0.5(@angular/compiler@21.0.5)(typescript@5.9.3) + specifier: ^21.0.6 + version: 21.0.6(@angular/compiler@21.0.6)(typescript@5.9.3) '@types/jasmine': specifier: ~5.1.13 version: 5.1.13 @@ -768,23 +768,23 @@ importers: examples/angular/row-selection: dependencies: '@angular/common': - specifier: ^21.0.5 - version: 21.0.5(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2) + specifier: ^21.0.6 + version: 21.0.6(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2) '@angular/compiler': - specifier: ^21.0.5 - version: 21.0.5 + specifier: ^21.0.6 + version: 21.0.6 '@angular/core': - specifier: ^21.0.5 - version: 21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0) + specifier: ^21.0.6 + version: 21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0) '@angular/forms': - specifier: ^21.0.5 - version: 21.0.5(@angular/common@21.0.5(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2))(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0))(@angular/platform-browser@21.0.5(@angular/animations@21.0.5(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0)))(@angular/common@21.0.5(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2))(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0)))(@standard-schema/spec@1.0.0)(rxjs@7.8.2) + specifier: ^21.0.6 + version: 21.0.6(@angular/common@21.0.6(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2))(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0))(@angular/platform-browser@21.0.6(@angular/animations@21.0.6(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0)))(@angular/common@21.0.6(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2))(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0)))(rxjs@7.8.2) '@angular/platform-browser': - specifier: ^21.0.5 - version: 21.0.5(@angular/animations@21.0.5(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0)))(@angular/common@21.0.5(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2))(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0)) + specifier: ^21.0.6 + version: 21.0.6(@angular/animations@21.0.6(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0)))(@angular/common@21.0.6(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2))(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0)) '@angular/platform-browser-dynamic': - specifier: ^21.0.5 - version: 21.0.5(@angular/common@21.0.5(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2))(@angular/compiler@21.0.5)(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0))(@angular/platform-browser@21.0.5(@angular/animations@21.0.5(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0)))(@angular/common@21.0.5(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2))(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0))) + specifier: ^21.0.6 + version: 21.0.6(@angular/common@21.0.6(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2))(@angular/compiler@21.0.6)(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0))(@angular/platform-browser@21.0.6(@angular/animations@21.0.6(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0)))(@angular/common@21.0.6(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2))(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0))) '@faker-js/faker': specifier: ^10.1.0 version: 10.1.0 @@ -802,14 +802,14 @@ importers: version: 0.16.0 devDependencies: '@angular/build': - specifier: ^21.0.3 - version: 21.0.3(elcjkga7f7fsk5y3dltjzora5i) + specifier: ^21.0.4 + version: 21.0.4(e3rtbb43dph44bvayrqojrmlgq) '@angular/cli': - specifier: ^21.0.3 - version: 21.0.3(@types/node@25.0.1)(chokidar@4.0.3) + specifier: ^21.0.4 + version: 21.0.4(@types/node@25.0.3)(chokidar@4.0.3) '@angular/compiler-cli': - specifier: ^21.0.5 - version: 21.0.5(@angular/compiler@21.0.5)(typescript@5.9.3) + specifier: ^21.0.6 + version: 21.0.6(@angular/compiler@21.0.6)(typescript@5.9.3) typescript: specifier: 5.9.3 version: 5.9.3 @@ -817,26 +817,26 @@ importers: examples/angular/row-selection-signal: dependencies: '@angular/animations': - specifier: ^21.0.5 - version: 21.0.5(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0)) + specifier: ^21.0.6 + version: 21.0.6(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0)) '@angular/common': - specifier: ^21.0.5 - version: 21.0.5(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2) + specifier: ^21.0.6 + version: 21.0.6(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2) '@angular/compiler': - specifier: ^21.0.5 - version: 21.0.5 + specifier: ^21.0.6 + version: 21.0.6 '@angular/core': - specifier: ^21.0.5 - version: 21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0) + specifier: ^21.0.6 + version: 21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0) '@angular/forms': - specifier: ^21.0.5 - version: 21.0.5(@angular/common@21.0.5(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2))(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0))(@angular/platform-browser@21.0.5(@angular/animations@21.0.5(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0)))(@angular/common@21.0.5(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2))(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0)))(@standard-schema/spec@1.0.0)(rxjs@7.8.2) + specifier: ^21.0.6 + version: 21.0.6(@angular/common@21.0.6(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2))(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0))(@angular/platform-browser@21.0.6(@angular/animations@21.0.6(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0)))(@angular/common@21.0.6(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2))(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0)))(rxjs@7.8.2) '@angular/platform-browser': - specifier: ^21.0.5 - version: 21.0.5(@angular/animations@21.0.5(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0)))(@angular/common@21.0.5(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2))(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0)) + specifier: ^21.0.6 + version: 21.0.6(@angular/animations@21.0.6(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0)))(@angular/common@21.0.6(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2))(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0)) '@angular/platform-browser-dynamic': - specifier: ^21.0.5 - version: 21.0.5(@angular/common@21.0.5(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2))(@angular/compiler@21.0.5)(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0))(@angular/platform-browser@21.0.5(@angular/animations@21.0.5(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0)))(@angular/common@21.0.5(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2))(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0))) + specifier: ^21.0.6 + version: 21.0.6(@angular/common@21.0.6(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2))(@angular/compiler@21.0.6)(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0))(@angular/platform-browser@21.0.6(@angular/animations@21.0.6(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0)))(@angular/common@21.0.6(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2))(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0))) '@faker-js/faker': specifier: ^10.1.0 version: 10.1.0 @@ -854,14 +854,14 @@ importers: version: 0.16.0 devDependencies: '@angular/build': - specifier: ^21.0.3 - version: 21.0.3(elcjkga7f7fsk5y3dltjzora5i) + specifier: ^21.0.4 + version: 21.0.4(e3rtbb43dph44bvayrqojrmlgq) '@angular/cli': - specifier: ^21.0.3 - version: 21.0.3(@types/node@25.0.1)(chokidar@4.0.3) + specifier: ^21.0.4 + version: 21.0.4(@types/node@25.0.3)(chokidar@4.0.3) '@angular/compiler-cli': - specifier: ^21.0.5 - version: 21.0.5(@angular/compiler@21.0.5)(typescript@5.9.3) + specifier: ^21.0.6 + version: 21.0.6(@angular/compiler@21.0.6)(typescript@5.9.3) typescript: specifier: 5.9.3 version: 5.9.3 @@ -869,20 +869,20 @@ importers: examples/angular/signal-input: dependencies: '@angular/common': - specifier: ^21.0.5 - version: 21.0.5(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2) + specifier: ^21.0.6 + version: 21.0.6(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2) '@angular/compiler': - specifier: ^21.0.5 - version: 21.0.5 + specifier: ^21.0.6 + version: 21.0.6 '@angular/core': - specifier: ^21.0.5 - version: 21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0) + specifier: ^21.0.6 + version: 21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0) '@angular/platform-browser': - specifier: ^21.0.5 - version: 21.0.5(@angular/animations@21.0.5(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0)))(@angular/common@21.0.5(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2))(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0)) + specifier: ^21.0.6 + version: 21.0.6(@angular/animations@21.0.6(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0)))(@angular/common@21.0.6(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2))(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0)) '@angular/platform-browser-dynamic': - specifier: ^21.0.5 - version: 21.0.5(@angular/common@21.0.5(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2))(@angular/compiler@21.0.5)(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0))(@angular/platform-browser@21.0.5(@angular/animations@21.0.5(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0)))(@angular/common@21.0.5(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2))(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0))) + specifier: ^21.0.6 + version: 21.0.6(@angular/common@21.0.6(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2))(@angular/compiler@21.0.6)(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0))(@angular/platform-browser@21.0.6(@angular/animations@21.0.6(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0)))(@angular/common@21.0.6(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2))(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0))) '@faker-js/faker': specifier: ^10.1.0 version: 10.1.0 @@ -897,14 +897,14 @@ importers: version: 0.16.0 devDependencies: '@angular/build': - specifier: ^21.0.3 - version: 21.0.3(elcjkga7f7fsk5y3dltjzora5i) + specifier: ^21.0.4 + version: 21.0.4(e3rtbb43dph44bvayrqojrmlgq) '@angular/cli': - specifier: ^21.0.3 - version: 21.0.3(@types/node@25.0.1)(chokidar@4.0.3) + specifier: ^21.0.4 + version: 21.0.4(@types/node@25.0.3)(chokidar@4.0.3) '@angular/compiler-cli': - specifier: ^21.0.5 - version: 21.0.5(@angular/compiler@21.0.5)(typescript@5.9.3) + specifier: ^21.0.6 + version: 21.0.6(@angular/compiler@21.0.6)(typescript@5.9.3) tslib: specifier: ^2.8.1 version: 2.8.1 @@ -915,29 +915,29 @@ importers: examples/angular/sub-components: dependencies: '@angular/animations': - specifier: ^21.0.5 - version: 21.0.5(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0)) + specifier: ^21.0.6 + version: 21.0.6(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0)) '@angular/common': - specifier: ^21.0.5 - version: 21.0.5(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2) + specifier: ^21.0.6 + version: 21.0.6(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2) '@angular/compiler': - specifier: ^21.0.5 - version: 21.0.5 + specifier: ^21.0.6 + version: 21.0.6 '@angular/core': - specifier: ^21.0.5 - version: 21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0) + specifier: ^21.0.6 + version: 21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0) '@angular/forms': - specifier: ^21.0.5 - version: 21.0.5(@angular/common@21.0.5(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2))(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0))(@angular/platform-browser@21.0.5(@angular/animations@21.0.5(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0)))(@angular/common@21.0.5(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2))(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0)))(@standard-schema/spec@1.0.0)(rxjs@7.8.2) + specifier: ^21.0.6 + version: 21.0.6(@angular/common@21.0.6(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2))(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0))(@angular/platform-browser@21.0.6(@angular/animations@21.0.6(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0)))(@angular/common@21.0.6(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2))(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0)))(rxjs@7.8.2) '@angular/platform-browser': - specifier: ^21.0.5 - version: 21.0.5(@angular/animations@21.0.5(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0)))(@angular/common@21.0.5(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2))(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0)) + specifier: ^21.0.6 + version: 21.0.6(@angular/animations@21.0.6(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0)))(@angular/common@21.0.6(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2))(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0)) '@angular/platform-browser-dynamic': - specifier: ^21.0.5 - version: 21.0.5(@angular/common@21.0.5(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2))(@angular/compiler@21.0.5)(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0))(@angular/platform-browser@21.0.5(@angular/animations@21.0.5(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0)))(@angular/common@21.0.5(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2))(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0))) + specifier: ^21.0.6 + version: 21.0.6(@angular/common@21.0.6(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2))(@angular/compiler@21.0.6)(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0))(@angular/platform-browser@21.0.6(@angular/animations@21.0.6(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0)))(@angular/common@21.0.6(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2))(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0))) '@angular/router': - specifier: ^21.0.5 - version: 21.0.5(@angular/common@21.0.5(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2))(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0))(@angular/platform-browser@21.0.5(@angular/animations@21.0.5(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0)))(@angular/common@21.0.5(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2))(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0)))(rxjs@7.8.2) + specifier: ^21.0.6 + version: 21.0.6(@angular/common@21.0.6(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2))(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0))(@angular/platform-browser@21.0.6(@angular/animations@21.0.6(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0)))(@angular/common@21.0.6(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2))(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0)))(rxjs@7.8.2) '@faker-js/faker': specifier: ^10.1.0 version: 10.1.0 @@ -952,14 +952,14 @@ importers: version: 0.16.0 devDependencies: '@angular-devkit/build-angular': - specifier: ^21.0.3 - version: 21.0.3(yir27t2ldgqwoebr2mjmjasxwy) + specifier: ^21.0.4 + version: 21.0.4(phy7lfjktaw4enyqegwfhvlium) '@angular/cli': - specifier: ^21.0.3 - version: 21.0.3(@types/node@25.0.1)(chokidar@4.0.3) + specifier: ^21.0.4 + version: 21.0.4(@types/node@25.0.3)(chokidar@4.0.3) '@angular/compiler-cli': - specifier: ^21.0.5 - version: 21.0.5(@angular/compiler@21.0.5)(typescript@5.9.3) + specifier: ^21.0.6 + version: 21.0.6(@angular/compiler@21.0.6)(typescript@5.9.3) tslib: specifier: ^2.8.1 version: 2.8.1 @@ -995,8 +995,8 @@ importers: specifier: 5.9.3 version: 5.9.3 vite: - specifier: ^7.2.7 - version: 7.2.7(@types/node@25.0.1)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1) + specifier: ^7.3.0 + version: 7.3.0(@types/node@25.0.3)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1) examples/lit/column-sizing: dependencies: @@ -1017,8 +1017,8 @@ importers: specifier: 5.9.3 version: 5.9.3 vite: - specifier: ^7.2.7 - version: 7.2.7(@types/node@25.0.1)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1) + specifier: ^7.3.0 + version: 7.3.0(@types/node@25.0.3)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1) examples/lit/filters: dependencies: @@ -1039,8 +1039,8 @@ importers: specifier: 5.9.3 version: 5.9.3 vite: - specifier: ^7.2.7 - version: 7.2.7(@types/node@25.0.1)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1) + specifier: ^7.3.0 + version: 7.3.0(@types/node@25.0.3)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1) examples/lit/row-selection: dependencies: @@ -1061,8 +1061,8 @@ importers: specifier: 5.9.3 version: 5.9.3 vite: - specifier: ^7.2.7 - version: 7.2.7(@types/node@25.0.1)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1) + specifier: ^7.3.0 + version: 7.3.0(@types/node@25.0.3)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1) examples/lit/sorting: dependencies: @@ -1083,8 +1083,8 @@ importers: specifier: 5.9.3 version: 5.9.3 vite: - specifier: ^7.2.7 - version: 7.2.7(@types/node@25.0.1)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1) + specifier: ^7.3.0 + version: 7.3.0(@types/node@25.0.3)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1) examples/lit/sorting-dynamic-data: dependencies: @@ -1105,8 +1105,8 @@ importers: specifier: 5.9.3 version: 5.9.3 vite: - specifier: ^7.2.7 - version: 7.2.7(@types/node@25.0.1)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1) + specifier: ^7.3.0 + version: 7.3.0(@types/node@25.0.3)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1) examples/lit/virtualized-rows: dependencies: @@ -1130,8 +1130,8 @@ importers: specifier: 5.9.3 version: 5.9.3 vite: - specifier: ^7.2.7 - version: 7.2.7(@types/node@25.0.1)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1) + specifier: ^7.3.0 + version: 7.3.0(@types/node@25.0.3)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1) examples/preact/basic: dependencies: @@ -1144,13 +1144,13 @@ importers: devDependencies: '@preact/preset-vite': specifier: ^2.10.2 - version: 2.10.2(@babel/core@7.28.5)(preact@10.28.0)(vite@7.2.7(@types/node@25.0.1)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1)) + version: 2.10.2(@babel/core@7.28.5)(preact@10.28.0)(vite@7.3.0(@types/node@25.0.3)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1)) typescript: specifier: 5.9.3 version: 5.9.3 vite: - specifier: ^7.2.7 - version: 7.2.7(@types/node@25.0.1)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1) + specifier: ^7.3.0 + version: 7.3.0(@types/node@25.0.3)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1) examples/preact/sorting: dependencies: @@ -1166,13 +1166,13 @@ importers: devDependencies: '@preact/preset-vite': specifier: ^2.10.2 - version: 2.10.2(@babel/core@7.28.5)(preact@10.28.0)(vite@7.2.7(@types/node@25.0.1)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1)) + version: 2.10.2(@babel/core@7.28.5)(preact@10.28.0)(vite@7.3.0(@types/node@25.0.3)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1)) typescript: specifier: 5.9.3 version: 5.9.3 vite: - specifier: ^7.2.7 - version: 7.2.7(@types/node@25.0.1)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1) + specifier: ^7.3.0 + version: 7.3.0(@types/node@25.0.3)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1) examples/react/basic: dependencies: @@ -1197,13 +1197,13 @@ importers: version: 19.2.3(@types/react@19.2.7) '@vitejs/plugin-react': specifier: ^5.1.2 - version: 5.1.2(vite@7.2.7(@types/node@25.0.1)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1)) + version: 5.1.2(vite@7.3.0(@types/node@25.0.3)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1)) typescript: specifier: 5.9.3 version: 5.9.3 vite: - specifier: ^7.2.7 - version: 7.2.7(@types/node@25.0.1)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1) + specifier: ^7.3.0 + version: 7.3.0(@types/node@25.0.3)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1) examples/react/basic-table-helper: dependencies: @@ -1228,13 +1228,13 @@ importers: version: 19.2.3(@types/react@19.2.7) '@vitejs/plugin-react': specifier: ^5.1.2 - version: 5.1.2(vite@7.2.7(@types/node@25.0.1)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1)) + version: 5.1.2(vite@7.3.0(@types/node@25.0.3)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1)) typescript: specifier: 5.9.3 version: 5.9.3 vite: - specifier: ^7.2.7 - version: 7.2.7(@types/node@25.0.1)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1) + specifier: ^7.3.0 + version: 7.3.0(@types/node@25.0.3)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1) examples/react/column-dnd: dependencies: @@ -1274,13 +1274,13 @@ importers: version: 19.2.3(@types/react@19.2.7) '@vitejs/plugin-react': specifier: ^5.1.2 - version: 5.1.2(vite@7.2.7(@types/node@25.0.1)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1)) + version: 5.1.2(vite@7.3.0(@types/node@25.0.3)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1)) typescript: specifier: 5.9.3 version: 5.9.3 vite: - specifier: ^7.2.7 - version: 7.2.7(@types/node@25.0.1)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1) + specifier: ^7.3.0 + version: 7.3.0(@types/node@25.0.3)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1) examples/react/column-groups: dependencies: @@ -1305,13 +1305,13 @@ importers: version: 19.2.3(@types/react@19.2.7) '@vitejs/plugin-react': specifier: ^5.1.2 - version: 5.1.2(vite@7.2.7(@types/node@25.0.1)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1)) + version: 5.1.2(vite@7.3.0(@types/node@25.0.3)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1)) typescript: specifier: 5.9.3 version: 5.9.3 vite: - specifier: ^7.2.7 - version: 7.2.7(@types/node@25.0.1)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1) + specifier: ^7.3.0 + version: 7.3.0(@types/node@25.0.3)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1) examples/react/column-ordering: dependencies: @@ -1339,13 +1339,13 @@ importers: version: 19.2.3(@types/react@19.2.7) '@vitejs/plugin-react': specifier: ^5.1.2 - version: 5.1.2(vite@7.2.7(@types/node@25.0.1)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1)) + version: 5.1.2(vite@7.3.0(@types/node@25.0.3)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1)) typescript: specifier: 5.9.3 version: 5.9.3 vite: - specifier: ^7.2.7 - version: 7.2.7(@types/node@25.0.1)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1) + specifier: ^7.3.0 + version: 7.3.0(@types/node@25.0.3)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1) examples/react/column-pinning: dependencies: @@ -1373,13 +1373,13 @@ importers: version: 19.2.3(@types/react@19.2.7) '@vitejs/plugin-react': specifier: ^5.1.2 - version: 5.1.2(vite@7.2.7(@types/node@25.0.1)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1)) + version: 5.1.2(vite@7.3.0(@types/node@25.0.3)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1)) typescript: specifier: 5.9.3 version: 5.9.3 vite: - specifier: ^7.2.7 - version: 7.2.7(@types/node@25.0.1)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1) + specifier: ^7.3.0 + version: 7.3.0(@types/node@25.0.3)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1) examples/react/column-pinning-split: dependencies: @@ -1407,13 +1407,13 @@ importers: version: 19.2.3(@types/react@19.2.7) '@vitejs/plugin-react': specifier: ^5.1.2 - version: 5.1.2(vite@7.2.7(@types/node@25.0.1)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1)) + version: 5.1.2(vite@7.3.0(@types/node@25.0.3)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1)) typescript: specifier: 5.9.3 version: 5.9.3 vite: - specifier: ^7.2.7 - version: 7.2.7(@types/node@25.0.1)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1) + specifier: ^7.3.0 + version: 7.3.0(@types/node@25.0.3)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1) examples/react/column-pinning-sticky: dependencies: @@ -1441,13 +1441,13 @@ importers: version: 19.2.3(@types/react@19.2.7) '@vitejs/plugin-react': specifier: ^5.1.2 - version: 5.1.2(vite@7.2.7(@types/node@25.0.1)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1)) + version: 5.1.2(vite@7.3.0(@types/node@25.0.3)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1)) typescript: specifier: 5.9.3 version: 5.9.3 vite: - specifier: ^7.2.7 - version: 7.2.7(@types/node@25.0.1)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1) + specifier: ^7.3.0 + version: 7.3.0(@types/node@25.0.3)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1) examples/react/column-resizing: dependencies: @@ -1472,13 +1472,13 @@ importers: version: 19.2.3(@types/react@19.2.7) '@vitejs/plugin-react': specifier: ^5.1.2 - version: 5.1.2(vite@7.2.7(@types/node@25.0.1)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1)) + version: 5.1.2(vite@7.3.0(@types/node@25.0.3)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1)) typescript: specifier: 5.9.3 version: 5.9.3 vite: - specifier: ^7.2.7 - version: 7.2.7(@types/node@25.0.1)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1) + specifier: ^7.3.0 + version: 7.3.0(@types/node@25.0.3)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1) examples/react/column-resizing-performant: dependencies: @@ -1506,13 +1506,13 @@ importers: version: 19.2.3(@types/react@19.2.7) '@vitejs/plugin-react': specifier: ^5.1.2 - version: 5.1.2(vite@7.2.7(@types/node@25.0.1)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1)) + version: 5.1.2(vite@7.3.0(@types/node@25.0.3)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1)) typescript: specifier: 5.9.3 version: 5.9.3 vite: - specifier: ^7.2.7 - version: 7.2.7(@types/node@25.0.1)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1) + specifier: ^7.3.0 + version: 7.3.0(@types/node@25.0.3)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1) examples/react/column-sizing: dependencies: @@ -1537,13 +1537,13 @@ importers: version: 19.2.3(@types/react@19.2.7) '@vitejs/plugin-react': specifier: ^5.1.2 - version: 5.1.2(vite@7.2.7(@types/node@25.0.1)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1)) + version: 5.1.2(vite@7.3.0(@types/node@25.0.3)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1)) typescript: specifier: 5.9.3 version: 5.9.3 vite: - specifier: ^7.2.7 - version: 7.2.7(@types/node@25.0.1)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1) + specifier: ^7.3.0 + version: 7.3.0(@types/node@25.0.3)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1) examples/react/column-visibility: dependencies: @@ -1568,13 +1568,13 @@ importers: version: 19.2.3(@types/react@19.2.7) '@vitejs/plugin-react': specifier: ^5.1.2 - version: 5.1.2(vite@7.2.7(@types/node@25.0.1)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1)) + version: 5.1.2(vite@7.3.0(@types/node@25.0.3)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1)) typescript: specifier: 5.9.3 version: 5.9.3 vite: - specifier: ^7.2.7 - version: 7.2.7(@types/node@25.0.1)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1) + specifier: ^7.3.0 + version: 7.3.0(@types/node@25.0.3)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1) examples/react/custom-features: dependencies: @@ -1602,13 +1602,13 @@ importers: version: 19.2.3(@types/react@19.2.7) '@vitejs/plugin-react': specifier: ^5.1.2 - version: 5.1.2(vite@7.2.7(@types/node@25.0.1)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1)) + version: 5.1.2(vite@7.3.0(@types/node@25.0.3)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1)) typescript: specifier: 5.9.3 version: 5.9.3 vite: - specifier: ^7.2.7 - version: 7.2.7(@types/node@25.0.1)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1) + specifier: ^7.3.0 + version: 7.3.0(@types/node@25.0.3)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1) examples/react/editable-data: dependencies: @@ -1636,13 +1636,13 @@ importers: version: 19.2.3(@types/react@19.2.7) '@vitejs/plugin-react': specifier: ^5.1.2 - version: 5.1.2(vite@7.2.7(@types/node@25.0.1)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1)) + version: 5.1.2(vite@7.3.0(@types/node@25.0.3)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1)) typescript: specifier: 5.9.3 version: 5.9.3 vite: - specifier: ^7.2.7 - version: 7.2.7(@types/node@25.0.1)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1) + specifier: ^7.3.0 + version: 7.3.0(@types/node@25.0.3)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1) examples/react/expanding: dependencies: @@ -1670,13 +1670,13 @@ importers: version: 19.2.3(@types/react@19.2.7) '@vitejs/plugin-react': specifier: ^5.1.2 - version: 5.1.2(vite@7.2.7(@types/node@25.0.1)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1)) + version: 5.1.2(vite@7.3.0(@types/node@25.0.3)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1)) typescript: specifier: 5.9.3 version: 5.9.3 vite: - specifier: ^7.2.7 - version: 7.2.7(@types/node@25.0.1)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1) + specifier: ^7.3.0 + version: 7.3.0(@types/node@25.0.3)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1) examples/react/filters: dependencies: @@ -1707,13 +1707,13 @@ importers: version: 19.2.3(@types/react@19.2.7) '@vitejs/plugin-react': specifier: ^5.1.2 - version: 5.1.2(vite@7.2.7(@types/node@25.0.1)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1)) + version: 5.1.2(vite@7.3.0(@types/node@25.0.3)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1)) typescript: specifier: 5.9.3 version: 5.9.3 vite: - specifier: ^7.2.7 - version: 7.2.7(@types/node@25.0.1)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1) + specifier: ^7.3.0 + version: 7.3.0(@types/node@25.0.3)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1) examples/react/filters-faceted: dependencies: @@ -1744,13 +1744,13 @@ importers: version: 19.2.3(@types/react@19.2.7) '@vitejs/plugin-react': specifier: ^5.1.2 - version: 5.1.2(vite@7.2.7(@types/node@25.0.1)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1)) + version: 5.1.2(vite@7.3.0(@types/node@25.0.3)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1)) typescript: specifier: 5.9.3 version: 5.9.3 vite: - specifier: ^7.2.7 - version: 7.2.7(@types/node@25.0.1)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1) + specifier: ^7.3.0 + version: 7.3.0(@types/node@25.0.3)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1) examples/react/filters-fuzzy: dependencies: @@ -1781,81 +1781,13 @@ importers: version: 19.2.3(@types/react@19.2.7) '@vitejs/plugin-react': specifier: ^5.1.2 - version: 5.1.2(vite@7.2.7(@types/node@25.0.1)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1)) - typescript: - specifier: 5.9.3 - version: 5.9.3 - vite: - specifier: ^7.2.7 - version: 7.2.7(@types/node@25.0.1)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1) - - examples/react/full-width-resizable-table: - dependencies: - '@faker-js/faker': - specifier: ^10.1.0 - version: 10.1.0 - '@tanstack/react-table': - specifier: ^9.0.0-alpha.10 - version: link:../../../packages/react-table - react: - specifier: ^19.2.3 - version: 19.2.3 - react-dom: - specifier: ^19.2.3 - version: 19.2.3(react@19.2.3) - devDependencies: - '@rollup/plugin-replace': - specifier: ^6.0.3 - version: 6.0.3(rollup@4.53.3) - '@types/react': - specifier: ^19.2.7 - version: 19.2.7 - '@types/react-dom': - specifier: ^19.2.3 - version: 19.2.3(@types/react@19.2.7) - '@vitejs/plugin-react': - specifier: ^5.1.2 - version: 5.1.2(vite@7.2.7(@types/node@25.0.1)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1)) - typescript: - specifier: 5.9.3 - version: 5.9.3 - vite: - specifier: ^7.2.7 - version: 7.2.7(@types/node@25.0.1)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1) - - examples/react/full-width-table: - dependencies: - '@faker-js/faker': - specifier: ^10.1.0 - version: 10.1.0 - '@tanstack/react-table': - specifier: ^9.0.0-alpha.10 - version: link:../../../packages/react-table - react: - specifier: ^19.2.3 - version: 19.2.3 - react-dom: - specifier: ^19.2.3 - version: 19.2.3(react@19.2.3) - devDependencies: - '@rollup/plugin-replace': - specifier: ^6.0.3 - version: 6.0.3(rollup@4.53.3) - '@types/react': - specifier: ^19.2.7 - version: 19.2.7 - '@types/react-dom': - specifier: ^19.2.3 - version: 19.2.3(@types/react@19.2.7) - '@vitejs/plugin-react': - specifier: ^5.1.2 - version: 5.1.2(vite@7.2.7(@types/node@25.0.1)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1)) + version: 5.1.2(vite@7.3.0(@types/node@25.0.3)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1)) typescript: specifier: 5.9.3 version: 5.9.3 vite: - specifier: ^7.2.7 - version: 7.2.7(@types/node@25.0.1)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1) + specifier: ^7.3.0 + version: 7.3.0(@types/node@25.0.3)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1) examples/react/fully-controlled: dependencies: @@ -1883,13 +1815,13 @@ importers: version: 19.2.3(@types/react@19.2.7) '@vitejs/plugin-react': specifier: ^5.1.2 - version: 5.1.2(vite@7.2.7(@types/node@25.0.1)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1)) + version: 5.1.2(vite@7.3.0(@types/node@25.0.3)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1)) typescript: specifier: 5.9.3 version: 5.9.3 vite: - specifier: ^7.2.7 - version: 7.2.7(@types/node@25.0.1)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1) + specifier: ^7.3.0 + version: 7.3.0(@types/node@25.0.3)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1) examples/react/grouping: dependencies: @@ -1917,13 +1849,13 @@ importers: version: 19.2.3(@types/react@19.2.7) '@vitejs/plugin-react': specifier: ^5.1.2 - version: 5.1.2(vite@7.2.7(@types/node@25.0.1)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1)) + version: 5.1.2(vite@7.3.0(@types/node@25.0.3)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1)) typescript: specifier: 5.9.3 version: 5.9.3 vite: - specifier: ^7.2.7 - version: 7.2.7(@types/node@25.0.1)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1) + specifier: ^7.3.0 + version: 7.3.0(@types/node@25.0.3)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1) examples/react/pagination: dependencies: @@ -1951,13 +1883,13 @@ importers: version: 19.2.3(@types/react@19.2.7) '@vitejs/plugin-react': specifier: ^5.1.2 - version: 5.1.2(vite@7.2.7(@types/node@25.0.1)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1)) + version: 5.1.2(vite@7.3.0(@types/node@25.0.3)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1)) typescript: specifier: 5.9.3 version: 5.9.3 vite: - specifier: ^7.2.7 - version: 7.2.7(@types/node@25.0.1)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1) + specifier: ^7.3.0 + version: 7.3.0(@types/node@25.0.3)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1) examples/react/pagination-controlled: dependencies: @@ -1988,13 +1920,13 @@ importers: version: 19.2.3(@types/react@19.2.7) '@vitejs/plugin-react': specifier: ^5.1.2 - version: 5.1.2(vite@7.2.7(@types/node@25.0.1)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1)) + version: 5.1.2(vite@7.3.0(@types/node@25.0.3)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1)) typescript: specifier: 5.9.3 version: 5.9.3 vite: - specifier: ^7.2.7 - version: 7.2.7(@types/node@25.0.1)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1) + specifier: ^7.3.0 + version: 7.3.0(@types/node@25.0.3)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1) examples/react/query-router-search-params: dependencies: @@ -2002,8 +1934,8 @@ importers: specifier: ^5.90.12 version: 5.90.12(react@19.2.3) '@tanstack/react-router': - specifier: ^1.141.1 - version: 1.141.1(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + specifier: ^1.141.6 + version: 1.141.6(react-dom@19.2.3(react@19.2.3))(react@19.2.3) '@tanstack/react-table': specifier: ^9.0.0-alpha.10 version: link:../../../packages/react-table @@ -2021,8 +1953,8 @@ importers: specifier: ^6.0.3 version: 6.0.3(rollup@4.53.3) '@tanstack/router-vite-plugin': - specifier: ^1.141.1 - version: 1.141.1(@tanstack/react-router@1.141.1(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(vite-plugin-solid@2.11.10(@testing-library/jest-dom@6.9.1)(solid-js@1.9.10)(vite@7.2.7(@types/node@25.0.1)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1)))(vite@7.2.7(@types/node@25.0.1)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1))(webpack@5.102.1(esbuild@0.27.1)) + specifier: ^1.141.7 + version: 1.141.7(@tanstack/react-router@1.141.6(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(vite-plugin-solid@2.11.10(@testing-library/jest-dom@6.9.1)(solid-js@1.9.10)(vite@7.3.0(@types/node@25.0.3)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1)))(vite@7.3.0(@types/node@25.0.3)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1))(webpack@5.104.0(esbuild@0.27.1)) '@types/react': specifier: ^19.2.7 version: 19.2.7 @@ -2031,13 +1963,13 @@ importers: version: 19.2.3(@types/react@19.2.7) '@vitejs/plugin-react': specifier: ^5.1.2 - version: 5.1.2(vite@7.2.7(@types/node@25.0.1)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1)) + version: 5.1.2(vite@7.3.0(@types/node@25.0.3)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1)) typescript: specifier: 5.9.3 version: 5.9.3 vite: - specifier: ^7.2.7 - version: 7.2.7(@types/node@25.0.1)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1) + specifier: ^7.3.0 + version: 7.3.0(@types/node@25.0.3)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1) examples/react/row-dnd: dependencies: @@ -2077,13 +2009,13 @@ importers: version: 19.2.3(@types/react@19.2.7) '@vitejs/plugin-react': specifier: ^5.1.2 - version: 5.1.2(vite@7.2.7(@types/node@25.0.1)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1)) + version: 5.1.2(vite@7.3.0(@types/node@25.0.3)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1)) typescript: specifier: 5.9.3 version: 5.9.3 vite: - specifier: ^7.2.7 - version: 7.2.7(@types/node@25.0.1)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1) + specifier: ^7.3.0 + version: 7.3.0(@types/node@25.0.3)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1) examples/react/row-pinning: dependencies: @@ -2111,19 +2043,22 @@ importers: version: 19.2.3(@types/react@19.2.7) '@vitejs/plugin-react': specifier: ^5.1.2 - version: 5.1.2(vite@7.2.7(@types/node@25.0.1)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1)) + version: 5.1.2(vite@7.3.0(@types/node@25.0.3)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1)) typescript: specifier: 5.9.3 version: 5.9.3 vite: - specifier: ^7.2.7 - version: 7.2.7(@types/node@25.0.1)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1) + specifier: ^7.3.0 + version: 7.3.0(@types/node@25.0.3)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1) examples/react/row-selection: dependencies: '@faker-js/faker': specifier: ^10.1.0 version: 10.1.0 + '@tanstack/react-store': + specifier: ^0.8.0 + version: 0.8.0(react-dom@19.2.3(react@19.2.3))(react@19.2.3) '@tanstack/react-table': specifier: ^9.0.0-alpha.10 version: link:../../../packages/react-table @@ -2145,13 +2080,13 @@ importers: version: 19.2.3(@types/react@19.2.7) '@vitejs/plugin-react': specifier: ^5.1.2 - version: 5.1.2(vite@7.2.7(@types/node@25.0.1)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1)) + version: 5.1.2(vite@7.3.0(@types/node@25.0.3)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1)) typescript: specifier: 5.9.3 version: 5.9.3 vite: - specifier: ^7.2.7 - version: 7.2.7(@types/node@25.0.1)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1) + specifier: ^7.3.0 + version: 7.3.0(@types/node@25.0.3)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1) examples/react/shadcn-basic: dependencies: @@ -2160,7 +2095,7 @@ importers: version: 1.2.4(@types/react@19.2.7)(react@19.2.3) '@tailwindcss/vite': specifier: ^4.1.18 - version: 4.1.18(vite@7.2.7(@types/node@25.0.1)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1)) + version: 4.1.18(vite@7.3.0(@types/node@25.0.3)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1)) '@tanstack/react-table': specifier: ^9.0.0-alpha.10 version: link:../../../packages/react-table @@ -2171,8 +2106,8 @@ importers: specifier: ^2.1.1 version: 2.1.1 lucide-react: - specifier: ^0.561.0 - version: 0.561.0(react@19.2.3) + specifier: ^0.562.0 + version: 0.562.0(react@19.2.3) react: specifier: ^19.2.3 version: 19.2.3 @@ -2200,13 +2135,13 @@ importers: version: 19.2.3(@types/react@19.2.7) '@vitejs/plugin-react': specifier: ^5.1.2 - version: 5.1.2(vite@7.2.7(@types/node@25.0.1)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1)) + version: 5.1.2(vite@7.3.0(@types/node@25.0.3)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1)) typescript: specifier: 5.9.3 version: 5.9.3 vite: - specifier: ^7.2.7 - version: 7.2.7(@types/node@25.0.1)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1) + specifier: ^7.3.0 + version: 7.3.0(@types/node@25.0.3)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1) examples/react/shadcn-kitchen-sink: dependencies: @@ -2262,14 +2197,14 @@ importers: specifier: ^4.1.0 version: 4.1.0 lucide-react: - specifier: ^0.561.0 - version: 0.561.0(react@19.2.3) + specifier: ^0.562.0 + version: 0.562.0(react@19.2.3) react: specifier: ^19.2.3 version: 19.2.3 react-day-picker: - specifier: 9.12.0 - version: 9.12.0(react@19.2.3) + specifier: 9.13.0 + version: 9.13.0(react@19.2.3) react-dom: specifier: ^19.2.3 version: 19.2.3(react@19.2.3) @@ -2291,10 +2226,10 @@ importers: version: 19.2.3(@types/react@19.2.7) '@vitejs/plugin-react': specifier: ^5.1.2 - version: 5.1.2(vite@7.2.7(@types/node@25.0.1)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1)) + version: 5.1.2(vite@7.3.0(@types/node@25.0.3)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1)) autoprefixer: - specifier: ^10.4.22 - version: 10.4.22(postcss@8.5.6) + specifier: ^10.4.23 + version: 10.4.23(postcss@8.5.6) postcss: specifier: ^8.5.6 version: 8.5.6 @@ -2305,8 +2240,8 @@ importers: specifier: 5.9.3 version: 5.9.3 vite: - specifier: ^7.2.7 - version: 7.2.7(@types/node@25.0.1)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1) + specifier: ^7.3.0 + version: 7.3.0(@types/node@25.0.3)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1) examples/react/sorting: dependencies: @@ -2334,13 +2269,13 @@ importers: version: 19.2.3(@types/react@19.2.7) '@vitejs/plugin-react': specifier: ^5.1.2 - version: 5.1.2(vite@7.2.7(@types/node@25.0.1)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1)) + version: 5.1.2(vite@7.3.0(@types/node@25.0.3)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1)) typescript: specifier: 5.9.3 version: 5.9.3 vite: - specifier: ^7.2.7 - version: 7.2.7(@types/node@25.0.1)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1) + specifier: ^7.3.0 + version: 7.3.0(@types/node@25.0.3)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1) examples/react/sub-components: dependencies: @@ -2368,13 +2303,13 @@ importers: version: 19.2.3(@types/react@19.2.7) '@vitejs/plugin-react': specifier: ^5.1.2 - version: 5.1.2(vite@7.2.7(@types/node@25.0.1)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1)) + version: 5.1.2(vite@7.3.0(@types/node@25.0.3)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1)) typescript: specifier: 5.9.3 version: 5.9.3 vite: - specifier: ^7.2.7 - version: 7.2.7(@types/node@25.0.1)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1) + specifier: ^7.3.0 + version: 7.3.0(@types/node@25.0.3)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1) examples/react/virtualized-columns: dependencies: @@ -2405,13 +2340,13 @@ importers: version: 19.2.3(@types/react@19.2.7) '@vitejs/plugin-react': specifier: ^5.1.2 - version: 5.1.2(vite@7.2.7(@types/node@25.0.1)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1)) + version: 5.1.2(vite@7.3.0(@types/node@25.0.3)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1)) typescript: specifier: 5.9.3 version: 5.9.3 vite: - specifier: ^7.2.7 - version: 7.2.7(@types/node@25.0.1)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1) + specifier: ^7.3.0 + version: 7.3.0(@types/node@25.0.3)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1) examples/react/virtualized-columns-experimental: dependencies: @@ -2442,13 +2377,13 @@ importers: version: 19.2.3(@types/react@19.2.7) '@vitejs/plugin-react': specifier: ^5.1.2 - version: 5.1.2(vite@7.2.7(@types/node@25.0.1)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1)) + version: 5.1.2(vite@7.3.0(@types/node@25.0.3)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1)) typescript: specifier: 5.9.3 version: 5.9.3 vite: - specifier: ^7.2.7 - version: 7.2.7(@types/node@25.0.1)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1) + specifier: ^7.3.0 + version: 7.3.0(@types/node@25.0.3)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1) examples/react/virtualized-infinite-scrolling: dependencies: @@ -2482,13 +2417,13 @@ importers: version: 19.2.3(@types/react@19.2.7) '@vitejs/plugin-react': specifier: ^5.1.2 - version: 5.1.2(vite@7.2.7(@types/node@25.0.1)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1)) + version: 5.1.2(vite@7.3.0(@types/node@25.0.3)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1)) typescript: specifier: 5.9.3 version: 5.9.3 vite: - specifier: ^7.2.7 - version: 7.2.7(@types/node@25.0.1)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1) + specifier: ^7.3.0 + version: 7.3.0(@types/node@25.0.3)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1) examples/react/virtualized-rows: dependencies: @@ -2519,13 +2454,13 @@ importers: version: 19.2.3(@types/react@19.2.7) '@vitejs/plugin-react': specifier: ^5.1.2 - version: 5.1.2(vite@7.2.7(@types/node@25.0.1)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1)) + version: 5.1.2(vite@7.3.0(@types/node@25.0.3)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1)) typescript: specifier: 5.9.3 version: 5.9.3 vite: - specifier: ^7.2.7 - version: 7.2.7(@types/node@25.0.1)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1) + specifier: ^7.3.0 + version: 7.3.0(@types/node@25.0.3)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1) examples/react/virtualized-rows-experimental: dependencies: @@ -2556,13 +2491,13 @@ importers: version: 19.2.3(@types/react@19.2.7) '@vitejs/plugin-react': specifier: ^5.1.2 - version: 5.1.2(vite@7.2.7(@types/node@25.0.1)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1)) + version: 5.1.2(vite@7.3.0(@types/node@25.0.3)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1)) typescript: specifier: 5.9.3 version: 5.9.3 vite: - specifier: ^7.2.7 - version: 7.2.7(@types/node@25.0.1)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1) + specifier: ^7.3.0 + version: 7.3.0(@types/node@25.0.3)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1) examples/solid/basic: dependencies: @@ -2577,11 +2512,11 @@ importers: specifier: 5.9.3 version: 5.9.3 vite: - specifier: ^7.2.7 - version: 7.2.7(@types/node@25.0.1)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1) + specifier: ^7.3.0 + version: 7.3.0(@types/node@25.0.3)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1) vite-plugin-solid: specifier: ^2.11.10 - version: 2.11.10(@testing-library/jest-dom@6.9.1)(solid-js@1.9.10)(vite@7.2.7(@types/node@25.0.1)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1)) + version: 2.11.10(@testing-library/jest-dom@6.9.1)(solid-js@1.9.10)(vite@7.3.0(@types/node@25.0.3)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1)) examples/solid/basic-table-helper: dependencies: @@ -2596,11 +2531,11 @@ importers: specifier: 5.9.3 version: 5.9.3 vite: - specifier: ^7.2.7 - version: 7.2.7(@types/node@25.0.1)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1) + specifier: ^7.3.0 + version: 7.3.0(@types/node@25.0.3)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1) vite-plugin-solid: specifier: ^2.11.10 - version: 2.11.10(@testing-library/jest-dom@6.9.1)(solid-js@1.9.10)(vite@7.2.7(@types/node@25.0.1)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1)) + version: 2.11.10(@testing-library/jest-dom@6.9.1)(solid-js@1.9.10)(vite@7.3.0(@types/node@25.0.3)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1)) examples/solid/column-groups: dependencies: @@ -2615,11 +2550,11 @@ importers: specifier: 5.9.3 version: 5.9.3 vite: - specifier: ^7.2.7 - version: 7.2.7(@types/node@25.0.1)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1) + specifier: ^7.3.0 + version: 7.3.0(@types/node@25.0.3)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1) vite-plugin-solid: specifier: ^2.11.10 - version: 2.11.10(@testing-library/jest-dom@6.9.1)(solid-js@1.9.10)(vite@7.2.7(@types/node@25.0.1)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1)) + version: 2.11.10(@testing-library/jest-dom@6.9.1)(solid-js@1.9.10)(vite@7.3.0(@types/node@25.0.3)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1)) examples/solid/column-ordering: dependencies: @@ -2637,11 +2572,11 @@ importers: specifier: 5.9.3 version: 5.9.3 vite: - specifier: ^7.2.7 - version: 7.2.7(@types/node@25.0.1)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1) + specifier: ^7.3.0 + version: 7.3.0(@types/node@25.0.3)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1) vite-plugin-solid: specifier: ^2.11.10 - version: 2.11.10(@testing-library/jest-dom@6.9.1)(solid-js@1.9.10)(vite@7.2.7(@types/node@25.0.1)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1)) + version: 2.11.10(@testing-library/jest-dom@6.9.1)(solid-js@1.9.10)(vite@7.3.0(@types/node@25.0.3)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1)) examples/solid/column-visibility: dependencies: @@ -2656,11 +2591,11 @@ importers: specifier: 5.9.3 version: 5.9.3 vite: - specifier: ^7.2.7 - version: 7.2.7(@types/node@25.0.1)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1) + specifier: ^7.3.0 + version: 7.3.0(@types/node@25.0.3)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1) vite-plugin-solid: specifier: ^2.11.10 - version: 2.11.10(@testing-library/jest-dom@6.9.1)(solid-js@1.9.10)(vite@7.2.7(@types/node@25.0.1)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1)) + version: 2.11.10(@testing-library/jest-dom@6.9.1)(solid-js@1.9.10)(vite@7.3.0(@types/node@25.0.3)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1)) examples/solid/filters: dependencies: @@ -2681,11 +2616,11 @@ importers: specifier: 5.9.3 version: 5.9.3 vite: - specifier: ^7.2.7 - version: 7.2.7(@types/node@25.0.1)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1) + specifier: ^7.3.0 + version: 7.3.0(@types/node@25.0.3)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1) vite-plugin-solid: specifier: ^2.11.10 - version: 2.11.10(@testing-library/jest-dom@6.9.1)(solid-js@1.9.10)(vite@7.2.7(@types/node@25.0.1)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1)) + version: 2.11.10(@testing-library/jest-dom@6.9.1)(solid-js@1.9.10)(vite@7.3.0(@types/node@25.0.3)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1)) examples/solid/filters-faceted: dependencies: @@ -2706,11 +2641,11 @@ importers: specifier: 5.9.3 version: 5.9.3 vite: - specifier: ^7.2.7 - version: 7.2.7(@types/node@25.0.1)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1) + specifier: ^7.3.0 + version: 7.3.0(@types/node@25.0.3)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1) vite-plugin-solid: specifier: ^2.11.10 - version: 2.11.10(@testing-library/jest-dom@6.9.1)(solid-js@1.9.10)(vite@7.2.7(@types/node@25.0.1)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1)) + version: 2.11.10(@testing-library/jest-dom@6.9.1)(solid-js@1.9.10)(vite@7.3.0(@types/node@25.0.3)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1)) examples/solid/sorting: dependencies: @@ -2728,11 +2663,11 @@ importers: specifier: 5.9.3 version: 5.9.3 vite: - specifier: ^7.2.7 - version: 7.2.7(@types/node@25.0.1)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1) + specifier: ^7.3.0 + version: 7.3.0(@types/node@25.0.3)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1) vite-plugin-solid: specifier: ^2.11.10 - version: 2.11.10(@testing-library/jest-dom@6.9.1)(solid-js@1.9.10)(vite@7.2.7(@types/node@25.0.1)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1)) + version: 2.11.10(@testing-library/jest-dom@6.9.1)(solid-js@1.9.10)(vite@7.3.0(@types/node@25.0.3)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1)) examples/svelte/basic: devDependencies: @@ -2741,7 +2676,7 @@ importers: version: 6.0.3(rollup@4.53.3) '@sveltejs/vite-plugin-svelte': specifier: ^6.2.1 - version: 6.2.1(svelte@5.45.10)(vite@7.2.7(@types/node@25.0.1)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1)) + version: 6.2.1(svelte@5.46.0)(vite@7.3.0(@types/node@25.0.3)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1)) '@tanstack/svelte-table': specifier: ^9.0.0-alpha.10 version: link:../../../packages/svelte-table @@ -2749,17 +2684,17 @@ importers: specifier: ^5.0.6 version: 5.0.6 svelte: - specifier: ^5.45.10 - version: 5.45.10 + specifier: ^5.46.0 + version: 5.46.0 svelte-check: specifier: ^4.3.4 - version: 4.3.4(picomatch@4.0.3)(svelte@5.45.10)(typescript@5.9.3) + version: 4.3.4(picomatch@4.0.3)(svelte@5.46.0)(typescript@5.9.3) typescript: specifier: 5.9.3 version: 5.9.3 vite: - specifier: ^7.2.7 - version: 7.2.7(@types/node@25.0.1)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1) + specifier: ^7.3.0 + version: 7.3.0(@types/node@25.0.3)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1) examples/svelte/basic-snippets: devDependencies: @@ -2768,7 +2703,7 @@ importers: version: 6.0.3(rollup@4.53.3) '@sveltejs/vite-plugin-svelte': specifier: ^6.2.1 - version: 6.2.1(svelte@5.45.10)(vite@7.2.7(@types/node@25.0.1)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1)) + version: 6.2.1(svelte@5.46.0)(vite@7.3.0(@types/node@25.0.3)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1)) '@tanstack/svelte-table': specifier: ^9.0.0-alpha.10 version: link:../../../packages/svelte-table @@ -2776,17 +2711,17 @@ importers: specifier: ^5.0.6 version: 5.0.6 svelte: - specifier: ^5.45.10 - version: 5.45.10 + specifier: ^5.46.0 + version: 5.46.0 svelte-check: specifier: ^4.3.4 - version: 4.3.4(picomatch@4.0.3)(svelte@5.45.10)(typescript@5.9.3) + version: 4.3.4(picomatch@4.0.3)(svelte@5.46.0)(typescript@5.9.3) typescript: specifier: 5.9.3 version: 5.9.3 vite: - specifier: ^7.2.7 - version: 7.2.7(@types/node@25.0.1)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1) + specifier: ^7.3.0 + version: 7.3.0(@types/node@25.0.3)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1) examples/svelte/basic-table-helper: devDependencies: @@ -2795,7 +2730,7 @@ importers: version: 6.0.3(rollup@4.53.3) '@sveltejs/vite-plugin-svelte': specifier: ^6.2.1 - version: 6.2.1(svelte@5.45.10)(vite@7.2.7(@types/node@25.0.1)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1)) + version: 6.2.1(svelte@5.46.0)(vite@7.3.0(@types/node@25.0.3)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1)) '@tanstack/svelte-table': specifier: ^9.0.0-alpha.10 version: link:../../../packages/svelte-table @@ -2803,17 +2738,17 @@ importers: specifier: ^5.0.6 version: 5.0.6 svelte: - specifier: ^5.45.10 - version: 5.45.10 + specifier: ^5.46.0 + version: 5.46.0 svelte-check: specifier: ^4.3.4 - version: 4.3.4(picomatch@4.0.3)(svelte@5.45.10)(typescript@5.9.3) + version: 4.3.4(picomatch@4.0.3)(svelte@5.46.0)(typescript@5.9.3) typescript: specifier: 5.9.3 version: 5.9.3 vite: - specifier: ^7.2.7 - version: 7.2.7(@types/node@25.0.1)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1) + specifier: ^7.3.0 + version: 7.3.0(@types/node@25.0.3)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1) examples/svelte/column-groups: devDependencies: @@ -2822,7 +2757,7 @@ importers: version: 6.0.3(rollup@4.53.3) '@sveltejs/vite-plugin-svelte': specifier: ^6.2.1 - version: 6.2.1(svelte@5.45.10)(vite@7.2.7(@types/node@25.0.1)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1)) + version: 6.2.1(svelte@5.46.0)(vite@7.3.0(@types/node@25.0.3)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1)) '@tanstack/svelte-table': specifier: ^9.0.0-alpha.10 version: link:../../../packages/svelte-table @@ -2830,17 +2765,17 @@ importers: specifier: ^5.0.6 version: 5.0.6 svelte: - specifier: ^5.45.10 - version: 5.45.10 + specifier: ^5.46.0 + version: 5.46.0 svelte-check: specifier: ^4.3.4 - version: 4.3.4(picomatch@4.0.3)(svelte@5.45.10)(typescript@5.9.3) + version: 4.3.4(picomatch@4.0.3)(svelte@5.46.0)(typescript@5.9.3) typescript: specifier: 5.9.3 version: 5.9.3 vite: - specifier: ^7.2.7 - version: 7.2.7(@types/node@25.0.1)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1) + specifier: ^7.3.0 + version: 7.3.0(@types/node@25.0.3)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1) examples/svelte/column-ordering: devDependencies: @@ -2852,7 +2787,7 @@ importers: version: 6.0.3(rollup@4.53.3) '@sveltejs/vite-plugin-svelte': specifier: ^6.2.1 - version: 6.2.1(svelte@5.45.10)(vite@7.2.7(@types/node@25.0.1)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1)) + version: 6.2.1(svelte@5.46.0)(vite@7.3.0(@types/node@25.0.3)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1)) '@tanstack/svelte-table': specifier: ^9.0.0-alpha.10 version: link:../../../packages/svelte-table @@ -2860,17 +2795,17 @@ importers: specifier: ^5.0.6 version: 5.0.6 svelte: - specifier: ^5.45.10 - version: 5.45.10 + specifier: ^5.46.0 + version: 5.46.0 svelte-check: specifier: ^4.3.4 - version: 4.3.4(picomatch@4.0.3)(svelte@5.45.10)(typescript@5.9.3) + version: 4.3.4(picomatch@4.0.3)(svelte@5.46.0)(typescript@5.9.3) typescript: specifier: 5.9.3 version: 5.9.3 vite: - specifier: ^7.2.7 - version: 7.2.7(@types/node@25.0.1)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1) + specifier: ^7.3.0 + version: 7.3.0(@types/node@25.0.3)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1) examples/svelte/column-pinning: devDependencies: @@ -2882,7 +2817,7 @@ importers: version: 6.0.3(rollup@4.53.3) '@sveltejs/vite-plugin-svelte': specifier: ^6.2.1 - version: 6.2.1(svelte@5.45.10)(vite@7.2.7(@types/node@25.0.1)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1)) + version: 6.2.1(svelte@5.46.0)(vite@7.3.0(@types/node@25.0.3)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1)) '@tanstack/svelte-table': specifier: ^9.0.0-alpha.10 version: link:../../../packages/svelte-table @@ -2890,17 +2825,17 @@ importers: specifier: ^5.0.6 version: 5.0.6 svelte: - specifier: ^5.45.10 - version: 5.45.10 + specifier: ^5.46.0 + version: 5.46.0 svelte-check: specifier: ^4.3.4 - version: 4.3.4(picomatch@4.0.3)(svelte@5.45.10)(typescript@5.9.3) + version: 4.3.4(picomatch@4.0.3)(svelte@5.46.0)(typescript@5.9.3) typescript: specifier: 5.9.3 version: 5.9.3 vite: - specifier: ^7.2.7 - version: 7.2.7(@types/node@25.0.1)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1) + specifier: ^7.3.0 + version: 7.3.0(@types/node@25.0.3)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1) examples/svelte/column-visibility: devDependencies: @@ -2909,7 +2844,7 @@ importers: version: 6.0.3(rollup@4.53.3) '@sveltejs/vite-plugin-svelte': specifier: ^6.2.1 - version: 6.2.1(svelte@5.45.10)(vite@7.2.7(@types/node@25.0.1)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1)) + version: 6.2.1(svelte@5.46.0)(vite@7.3.0(@types/node@25.0.3)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1)) '@tanstack/svelte-table': specifier: ^9.0.0-alpha.10 version: link:../../../packages/svelte-table @@ -2917,17 +2852,17 @@ importers: specifier: ^5.0.6 version: 5.0.6 svelte: - specifier: ^5.45.10 - version: 5.45.10 + specifier: ^5.46.0 + version: 5.46.0 svelte-check: specifier: ^4.3.4 - version: 4.3.4(picomatch@4.0.3)(svelte@5.45.10)(typescript@5.9.3) + version: 4.3.4(picomatch@4.0.3)(svelte@5.46.0)(typescript@5.9.3) typescript: specifier: 5.9.3 version: 5.9.3 vite: - specifier: ^7.2.7 - version: 7.2.7(@types/node@25.0.1)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1) + specifier: ^7.3.0 + version: 7.3.0(@types/node@25.0.3)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1) examples/svelte/filtering: devDependencies: @@ -2939,7 +2874,7 @@ importers: version: 6.0.3(rollup@4.53.3) '@sveltejs/vite-plugin-svelte': specifier: ^6.2.1 - version: 6.2.1(svelte@5.45.10)(vite@7.2.7(@types/node@25.0.1)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1)) + version: 6.2.1(svelte@5.46.0)(vite@7.3.0(@types/node@25.0.3)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1)) '@tanstack/match-sorter-utils': specifier: ^9.0.0-alpha.4 version: link:../../../packages/match-sorter-utils @@ -2950,17 +2885,17 @@ importers: specifier: ^5.0.6 version: 5.0.6 svelte: - specifier: ^5.45.10 - version: 5.45.10 + specifier: ^5.46.0 + version: 5.46.0 svelte-check: specifier: ^4.3.4 - version: 4.3.4(picomatch@4.0.3)(svelte@5.45.10)(typescript@5.9.3) + version: 4.3.4(picomatch@4.0.3)(svelte@5.46.0)(typescript@5.9.3) typescript: specifier: 5.9.3 version: 5.9.3 vite: - specifier: ^7.2.7 - version: 7.2.7(@types/node@25.0.1)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1) + specifier: ^7.3.0 + version: 7.3.0(@types/node@25.0.3)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1) examples/svelte/sorting: devDependencies: @@ -2972,7 +2907,7 @@ importers: version: 6.0.3(rollup@4.53.3) '@sveltejs/vite-plugin-svelte': specifier: ^6.2.1 - version: 6.2.1(svelte@5.45.10)(vite@7.2.7(@types/node@25.0.1)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1)) + version: 6.2.1(svelte@5.46.0)(vite@7.3.0(@types/node@25.0.3)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1)) '@tanstack/svelte-table': specifier: ^9.0.0-alpha.10 version: link:../../../packages/svelte-table @@ -2980,17 +2915,17 @@ importers: specifier: ^5.0.6 version: 5.0.6 svelte: - specifier: ^5.45.10 - version: 5.45.10 + specifier: ^5.46.0 + version: 5.46.0 svelte-check: specifier: ^4.3.4 - version: 4.3.4(picomatch@4.0.3)(svelte@5.45.10)(typescript@5.9.3) + version: 4.3.4(picomatch@4.0.3)(svelte@5.46.0)(typescript@5.9.3) typescript: specifier: 5.9.3 version: 5.9.3 vite: - specifier: ^7.2.7 - version: 7.2.7(@types/node@25.0.1)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1) + specifier: ^7.3.0 + version: 7.3.0(@types/node@25.0.3)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1) examples/vanilla/basic: dependencies: @@ -3005,14 +2940,14 @@ importers: specifier: ^6.0.3 version: 6.0.3(rollup@4.53.3) '@types/node': - specifier: ^25.0.1 - version: 25.0.1 + specifier: ^25.0.3 + version: 25.0.3 typescript: specifier: 5.9.3 version: 5.9.3 vite: - specifier: ^7.2.7 - version: 7.2.7(@types/node@25.0.1)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1) + specifier: ^7.3.0 + version: 7.3.0(@types/node@25.0.3)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1) examples/vanilla/pagination: dependencies: @@ -3030,14 +2965,14 @@ importers: specifier: ^6.0.3 version: 6.0.3(rollup@4.53.3) '@types/node': - specifier: ^25.0.1 - version: 25.0.1 + specifier: ^25.0.3 + version: 25.0.3 typescript: specifier: 5.9.3 version: 5.9.3 vite: - specifier: ^7.2.7 - version: 7.2.7(@types/node@25.0.1)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1) + specifier: ^7.3.0 + version: 7.3.0(@types/node@25.0.3)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1) examples/vanilla/sorting: dependencies: @@ -3055,14 +2990,14 @@ importers: specifier: ^6.0.3 version: 6.0.3(rollup@4.53.3) '@types/node': - specifier: ^25.0.1 - version: 25.0.1 + specifier: ^25.0.3 + version: 25.0.3 typescript: specifier: 5.9.3 version: 5.9.3 vite: - specifier: ^7.2.7 - version: 7.2.7(@types/node@25.0.1)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1) + specifier: ^7.3.0 + version: 7.3.0(@types/node@25.0.3)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1) examples/vue/basic: dependencies: @@ -3070,21 +3005,21 @@ importers: specifier: ^9.0.0-alpha.10 version: link:../../../packages/vue-table vue: - specifier: ^3.5.25 - version: 3.5.25(typescript@5.9.3) + specifier: ^3.5.26 + version: 3.5.26(typescript@5.9.3) devDependencies: '@types/node': - specifier: ^25.0.1 - version: 25.0.1 + specifier: ^25.0.3 + version: 25.0.3 '@vitejs/plugin-vue': specifier: ^6.0.3 - version: 6.0.3(vite@7.2.7(@types/node@25.0.1)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1))(vue@3.5.25(typescript@5.9.3)) + version: 6.0.3(vite@7.3.0(@types/node@25.0.3)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1))(vue@3.5.26(typescript@5.9.3)) typescript: specifier: 5.9.3 version: 5.9.3 vite: - specifier: ^7.2.7 - version: 7.2.7(@types/node@25.0.1)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1) + specifier: ^7.3.0 + version: 7.3.0(@types/node@25.0.3)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1) vue-tsc: specifier: ^3.1.8 version: 3.1.8(typescript@5.9.3) @@ -3098,21 +3033,21 @@ importers: specifier: ^9.0.0-alpha.10 version: link:../../../packages/vue-table vue: - specifier: ^3.5.25 - version: 3.5.25(typescript@5.9.3) + specifier: ^3.5.26 + version: 3.5.26(typescript@5.9.3) devDependencies: '@types/node': - specifier: ^25.0.1 - version: 25.0.1 + specifier: ^25.0.3 + version: 25.0.3 '@vitejs/plugin-vue': specifier: ^6.0.3 - version: 6.0.3(vite@7.2.7(@types/node@25.0.1)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1))(vue@3.5.25(typescript@5.9.3)) + version: 6.0.3(vite@7.3.0(@types/node@25.0.3)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1))(vue@3.5.26(typescript@5.9.3)) typescript: specifier: 5.9.3 version: 5.9.3 vite: - specifier: ^7.2.7 - version: 7.2.7(@types/node@25.0.1)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1) + specifier: ^7.3.0 + version: 7.3.0(@types/node@25.0.3)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1) vue-tsc: specifier: ^3.1.8 version: 3.1.8(typescript@5.9.3) @@ -3126,21 +3061,21 @@ importers: specifier: ^9.0.0-alpha.10 version: link:../../../packages/vue-table vue: - specifier: ^3.5.25 - version: 3.5.25(typescript@5.9.3) + specifier: ^3.5.26 + version: 3.5.26(typescript@5.9.3) devDependencies: '@types/node': - specifier: ^25.0.1 - version: 25.0.1 + specifier: ^25.0.3 + version: 25.0.3 '@vitejs/plugin-vue': specifier: ^6.0.3 - version: 6.0.3(vite@7.2.7(@types/node@25.0.1)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1))(vue@3.5.25(typescript@5.9.3)) + version: 6.0.3(vite@7.3.0(@types/node@25.0.3)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1))(vue@3.5.26(typescript@5.9.3)) typescript: specifier: 5.9.3 version: 5.9.3 vite: - specifier: ^7.2.7 - version: 7.2.7(@types/node@25.0.1)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1) + specifier: ^7.3.0 + version: 7.3.0(@types/node@25.0.3)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1) vue-tsc: specifier: ^3.1.8 version: 3.1.8(typescript@5.9.3) @@ -3154,21 +3089,21 @@ importers: specifier: ^9.0.0-alpha.10 version: link:../../../packages/vue-table vue: - specifier: ^3.5.25 - version: 3.5.25(typescript@5.9.3) + specifier: ^3.5.26 + version: 3.5.26(typescript@5.9.3) devDependencies: '@types/node': - specifier: ^25.0.1 - version: 25.0.1 + specifier: ^25.0.3 + version: 25.0.3 '@vitejs/plugin-vue': specifier: ^6.0.3 - version: 6.0.3(vite@7.2.7(@types/node@25.0.1)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1))(vue@3.5.25(typescript@5.9.3)) + version: 6.0.3(vite@7.3.0(@types/node@25.0.3)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1))(vue@3.5.26(typescript@5.9.3)) typescript: specifier: 5.9.3 version: 5.9.3 vite: - specifier: ^7.2.7 - version: 7.2.7(@types/node@25.0.1)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1) + specifier: ^7.3.0 + version: 7.3.0(@types/node@25.0.3)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1) vue-tsc: specifier: ^3.1.8 version: 3.1.8(typescript@5.9.3) @@ -3182,21 +3117,21 @@ importers: specifier: ^9.0.0-alpha.10 version: link:../../../packages/vue-table vue: - specifier: ^3.5.25 - version: 3.5.25(typescript@5.9.3) + specifier: ^3.5.26 + version: 3.5.26(typescript@5.9.3) devDependencies: '@types/node': - specifier: ^25.0.1 - version: 25.0.1 + specifier: ^25.0.3 + version: 25.0.3 '@vitejs/plugin-vue': specifier: ^6.0.3 - version: 6.0.3(vite@7.2.7(@types/node@25.0.1)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1))(vue@3.5.25(typescript@5.9.3)) + version: 6.0.3(vite@7.3.0(@types/node@25.0.3)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1))(vue@3.5.26(typescript@5.9.3)) typescript: specifier: 5.9.3 version: 5.9.3 vite: - specifier: ^7.2.7 - version: 7.2.7(@types/node@25.0.1)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1) + specifier: ^7.3.0 + version: 7.3.0(@types/node@25.0.3)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1) vue-tsc: specifier: ^3.1.8 version: 3.1.8(typescript@5.9.3) @@ -3210,21 +3145,21 @@ importers: specifier: ^9.0.0-alpha.10 version: link:../../../packages/vue-table vue: - specifier: ^3.5.25 - version: 3.5.25(typescript@5.9.3) + specifier: ^3.5.26 + version: 3.5.26(typescript@5.9.3) devDependencies: '@types/node': - specifier: ^25.0.1 - version: 25.0.1 + specifier: ^25.0.3 + version: 25.0.3 '@vitejs/plugin-vue': specifier: ^6.0.3 - version: 6.0.3(vite@7.2.7(@types/node@25.0.1)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1))(vue@3.5.25(typescript@5.9.3)) + version: 6.0.3(vite@7.3.0(@types/node@25.0.3)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1))(vue@3.5.26(typescript@5.9.3)) typescript: specifier: 5.9.3 version: 5.9.3 vite: - specifier: ^7.2.7 - version: 7.2.7(@types/node@25.0.1)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1) + specifier: ^7.3.0 + version: 7.3.0(@types/node@25.0.3)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1) vue-tsc: specifier: ^3.1.8 version: 3.1.8(typescript@5.9.3) @@ -3238,24 +3173,24 @@ importers: specifier: ^9.0.0-alpha.10 version: link:../../../packages/vue-table vue: - specifier: ^3.5.25 - version: 3.5.25(typescript@5.9.3) + specifier: ^3.5.26 + version: 3.5.26(typescript@5.9.3) devDependencies: '@types/node': - specifier: ^25.0.1 - version: 25.0.1 + specifier: ^25.0.3 + version: 25.0.3 '@vitejs/plugin-vue': specifier: ^6.0.3 - version: 6.0.3(vite@7.2.7(@types/node@25.0.1)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1))(vue@3.5.25(typescript@5.9.3)) + version: 6.0.3(vite@7.3.0(@types/node@25.0.3)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1))(vue@3.5.26(typescript@5.9.3)) '@vitejs/plugin-vue-jsx': specifier: ^5.1.2 - version: 5.1.2(vite@7.2.7(@types/node@25.0.1)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1))(vue@3.5.25(typescript@5.9.3)) + version: 5.1.2(vite@7.3.0(@types/node@25.0.3)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1))(vue@3.5.26(typescript@5.9.3)) typescript: specifier: 5.9.3 version: 5.9.3 vite: - specifier: ^7.2.7 - version: 7.2.7(@types/node@25.0.1)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1) + specifier: ^7.3.0 + version: 7.3.0(@types/node@25.0.3)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1) vue-tsc: specifier: ^3.1.8 version: 3.1.8(typescript@5.9.3) @@ -3269,21 +3204,21 @@ importers: specifier: ^9.0.0-alpha.10 version: link:../../../packages/vue-table vue: - specifier: ^3.5.25 - version: 3.5.25(typescript@5.9.3) + specifier: ^3.5.26 + version: 3.5.26(typescript@5.9.3) devDependencies: '@types/node': - specifier: ^25.0.1 - version: 25.0.1 + specifier: ^25.0.3 + version: 25.0.3 '@vitejs/plugin-vue': specifier: ^6.0.3 - version: 6.0.3(vite@7.2.7(@types/node@25.0.1)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1))(vue@3.5.25(typescript@5.9.3)) + version: 6.0.3(vite@7.3.0(@types/node@25.0.3)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1))(vue@3.5.26(typescript@5.9.3)) typescript: specifier: 5.9.3 version: 5.9.3 vite: - specifier: ^7.2.7 - version: 7.2.7(@types/node@25.0.1)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1) + specifier: ^7.3.0 + version: 7.3.0(@types/node@25.0.3)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1) vue-tsc: specifier: ^3.1.8 version: 3.1.8(typescript@5.9.3) @@ -3297,21 +3232,21 @@ importers: specifier: ^9.0.0-alpha.10 version: link:../../../packages/vue-table vue: - specifier: ^3.5.25 - version: 3.5.25(typescript@5.9.3) + specifier: ^3.5.26 + version: 3.5.26(typescript@5.9.3) devDependencies: '@types/node': - specifier: ^25.0.1 - version: 25.0.1 + specifier: ^25.0.3 + version: 25.0.3 '@vitejs/plugin-vue': specifier: ^6.0.3 - version: 6.0.3(vite@7.2.7(@types/node@25.0.1)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1))(vue@3.5.25(typescript@5.9.3)) + version: 6.0.3(vite@7.3.0(@types/node@25.0.3)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1))(vue@3.5.26(typescript@5.9.3)) typescript: specifier: 5.9.3 version: 5.9.3 vite: - specifier: ^7.2.7 - version: 7.2.7(@types/node@25.0.1)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1) + specifier: ^7.3.0 + version: 7.3.0(@types/node@25.0.3)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1) vue-tsc: specifier: ^3.1.8 version: 3.1.8(typescript@5.9.3) @@ -3323,26 +3258,26 @@ importers: version: link:../../../packages/vue-table '@tanstack/vue-virtual': specifier: ^3.13.13 - version: 3.13.13(vue@3.5.25(typescript@5.9.3)) + version: 3.13.13(vue@3.5.26(typescript@5.9.3)) vue: - specifier: ^3.5.25 - version: 3.5.25(typescript@5.9.3) + specifier: ^3.5.26 + version: 3.5.26(typescript@5.9.3) devDependencies: '@faker-js/faker': specifier: ^10.1.0 version: 10.1.0 '@types/node': - specifier: ^25.0.1 - version: 25.0.1 + specifier: ^25.0.3 + version: 25.0.3 '@vitejs/plugin-vue': specifier: ^6.0.3 - version: 6.0.3(vite@7.2.7(@types/node@25.0.1)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1))(vue@3.5.25(typescript@5.9.3)) + version: 6.0.3(vite@7.3.0(@types/node@25.0.3)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1))(vue@3.5.26(typescript@5.9.3)) typescript: specifier: 5.9.3 version: 5.9.3 vite: - specifier: ^7.2.7 - version: 7.2.7(@types/node@25.0.1)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1) + specifier: ^7.3.0 + version: 7.3.0(@types/node@25.0.3)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1) vue-tsc: specifier: ^3.1.8 version: 3.1.8(typescript@5.9.3) @@ -3357,23 +3292,23 @@ importers: version: 2.8.1 devDependencies: '@analogjs/vite-plugin-angular': - specifier: ^2.1.3 - version: 2.1.3(@angular-devkit/build-angular@21.0.3(yir27t2ldgqwoebr2mjmjasxwy))(@angular/build@21.0.3(elcjkga7f7fsk5y3dltjzora5i)) + specifier: ^2.2.0 + version: 2.2.0(@angular-devkit/build-angular@21.0.4(phy7lfjktaw4enyqegwfhvlium))(@angular/build@21.0.4(e3rtbb43dph44bvayrqojrmlgq)) '@analogjs/vitest-angular': - specifier: ^2.1.3 - version: 2.1.3(@analogjs/vite-plugin-angular@2.1.3(@angular-devkit/build-angular@21.0.3(yir27t2ldgqwoebr2mjmjasxwy))(@angular/build@21.0.3(elcjkga7f7fsk5y3dltjzora5i)))(@angular-devkit/architect@0.2100.3(chokidar@4.0.3))(vitest@4.0.15(@types/node@25.0.1)(jiti@2.6.1)(jsdom@27.3.0(postcss@8.5.6))(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1)) + specifier: ^2.2.0 + version: 2.2.0(@analogjs/vite-plugin-angular@2.2.0(@angular-devkit/build-angular@21.0.4(phy7lfjktaw4enyqegwfhvlium))(@angular/build@21.0.4(e3rtbb43dph44bvayrqojrmlgq)))(@angular-devkit/architect@0.2100.4(chokidar@4.0.3))(vitest@4.0.16(@types/node@25.0.3)(jiti@2.6.1)(jsdom@27.3.0(postcss@8.5.6))(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1)) '@angular/core': - specifier: ^21.0.5 - version: 21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0) + specifier: ^21.0.6 + version: 21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0) '@angular/platform-browser': - specifier: ^21.0.5 - version: 21.0.5(@angular/animations@21.0.5(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0)))(@angular/common@21.0.5(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2))(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0)) + specifier: ^21.0.6 + version: 21.0.6(@angular/animations@21.0.6(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0)))(@angular/common@21.0.6(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2))(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0)) '@angular/platform-browser-dynamic': - specifier: ^21.0.5 - version: 21.0.5(@angular/common@21.0.5(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2))(@angular/compiler@21.0.5)(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0))(@angular/platform-browser@21.0.5(@angular/animations@21.0.5(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0)))(@angular/common@21.0.5(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2))(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0))) + specifier: ^21.0.6 + version: 21.0.6(@angular/common@21.0.6(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2))(@angular/compiler@21.0.6)(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0))(@angular/platform-browser@21.0.6(@angular/animations@21.0.6(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0)))(@angular/common@21.0.6(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2))(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0))) ng-packagr: - specifier: ^21.0.0 - version: 21.0.0(@angular/compiler-cli@21.0.5(@angular/compiler@21.0.5)(typescript@5.9.3))(tailwindcss@4.1.18)(tslib@2.8.1)(typescript@5.9.3) + specifier: ^21.0.1 + version: 21.0.1(@angular/compiler-cli@21.0.6(@angular/compiler@21.0.6)(typescript@5.9.3))(tailwindcss@4.1.18)(tslib@2.8.1)(typescript@5.9.3) typescript: specifier: ~5.9.3 version: 5.9.3 @@ -3396,38 +3331,44 @@ importers: packages/preact-table: dependencies: + '@tanstack/preact-store': + specifier: ^0.10.1 + version: 0.10.1(preact@10.28.0) '@tanstack/table-core': specifier: workspace:* version: link:../table-core devDependencies: '@preact/preset-vite': specifier: ^2.10.2 - version: 2.10.2(@babel/core@7.28.5)(preact@10.28.0)(vite@7.2.7(@types/node@25.0.1)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1)) + version: 2.10.2(@babel/core@7.28.5)(preact@10.28.0)(vite@7.3.0(@types/node@25.0.3)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1)) preact: specifier: ^10.28.0 version: 10.28.0 packages/react-table: dependencies: + '@tanstack/react-store': + specifier: ^0.8.0 + version: 0.8.0(react-dom@19.2.3(react@19.2.3))(react@19.2.3) '@tanstack/table-core': specifier: workspace:* version: link:../table-core - react-dom: - specifier: '>=16.8' - version: 18.3.1(react@19.2.3) devDependencies: '@eslint-react/eslint-plugin': specifier: ^2.3.13 - version: 2.3.13(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3) + version: 2.3.13(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) '@types/react': specifier: ^19.2.7 version: 19.2.7 '@vitejs/plugin-react': specifier: ^5.1.2 - version: 5.1.2(vite@7.2.7(@types/node@25.0.1)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1)) + version: 5.1.2(vite@7.3.0(@types/node@25.0.3)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1)) + eslint-plugin-react-compiler: + specifier: 19.1.0-rc.2 + version: 19.1.0-rc.2(eslint@9.39.2(jiti@2.6.1)) eslint-plugin-react-hooks: specifier: ^7.0.1 - version: 7.0.1(eslint@9.39.1(jiti@2.6.1)) + version: 7.0.1(eslint@9.39.2(jiti@2.6.1)) react: specifier: ^19.2.3 version: 19.2.3 @@ -3443,7 +3384,7 @@ importers: version: 1.9.10 vite-plugin-solid: specifier: ^2.11.10 - version: 2.11.10(@testing-library/jest-dom@6.9.1)(solid-js@1.9.10)(vite@7.2.7(@types/node@25.0.1)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1)) + version: 2.11.10(@testing-library/jest-dom@6.9.1)(solid-js@1.9.10)(vite@7.3.0(@types/node@25.0.3)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1)) packages/svelte-table: dependencies: @@ -3453,21 +3394,25 @@ importers: devDependencies: '@sveltejs/package': specifier: ^2.5.7 - version: 2.5.7(svelte@5.45.10)(typescript@5.9.3) + version: 2.5.7(svelte@5.46.0)(typescript@5.9.3) '@sveltejs/vite-plugin-svelte': specifier: ^6.2.1 - version: 6.2.1(svelte@5.45.10)(vite@7.2.7(@types/node@25.0.1)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1)) + version: 6.2.1(svelte@5.46.0)(vite@7.3.0(@types/node@25.0.3)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1)) eslint-plugin-svelte: specifier: ^3.13.1 - version: 3.13.1(eslint@9.39.1(jiti@2.6.1))(svelte@5.45.10) + version: 3.13.1(eslint@9.39.2(jiti@2.6.1))(svelte@5.46.0) svelte: - specifier: ^5.45.10 - version: 5.45.10 + specifier: ^5.46.0 + version: 5.46.0 svelte-check: specifier: ^4.3.4 - version: 4.3.4(picomatch@4.0.3)(svelte@5.45.10)(typescript@5.9.3) + version: 4.3.4(picomatch@4.0.3)(svelte@5.46.0)(typescript@5.9.3) - packages/table-core: {} + packages/table-core: + dependencies: + '@tanstack/store': + specifier: ^0.8.0 + version: 0.8.0 packages/vue-table: dependencies: @@ -3477,13 +3422,13 @@ importers: devDependencies: '@vitejs/plugin-vue': specifier: ^6.0.3 - version: 6.0.3(vite@7.2.7(@types/node@25.0.1)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1))(vue@3.5.25(typescript@5.9.3)) + version: 6.0.3(vite@7.3.0(@types/node@25.0.3)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1))(vue@3.5.26(typescript@5.9.3)) eslint-plugin-vue: specifier: ^10.6.2 - version: 10.6.2(@typescript-eslint/parser@8.19.0(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.1(jiti@2.6.1))(vue-eslint-parser@9.4.3(eslint@9.39.1(jiti@2.6.1))) + version: 10.6.2(@typescript-eslint/parser@8.19.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(vue-eslint-parser@9.4.3(eslint@9.39.2(jiti@2.6.1))) vue: - specifier: ^3.5.25 - version: 3.5.25(typescript@5.9.3) + specifier: ^3.5.26 + version: 3.5.26(typescript@5.9.3) packages: @@ -3553,8 +3498,8 @@ packages: resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==} engines: {node: '>=6.0.0'} - '@analogjs/vite-plugin-angular@2.1.3': - resolution: {integrity: sha512-mXL3LPMRC0nEWzSLP6sguXYUm+J4l+qRZmR9czhTQKWFP+PbNas6UHF6txe1fQs1pc/tMb7HQPZCEoaPMlol9Q==} + '@analogjs/vite-plugin-angular@2.2.0': + resolution: {integrity: sha512-ujHfBb0V2MqUJN1Lji057TvM3Wxfi0ll6eo77BGpELN0UsjMspc35veQ2qWPCOscTGk5CI4+csXs0svQHDTekA==} peerDependencies: '@angular-devkit/build-angular': ^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^20.0.0 || ^21.0.0 '@angular/build': ^18.0.0 || ^19.0.0 || ^20.0.0 || ^21.0.0 @@ -3564,19 +3509,19 @@ packages: '@angular/build': optional: true - '@analogjs/vitest-angular@2.1.3': - resolution: {integrity: sha512-oRZxP/8cnf7g6e+VDYkILeA2gQLDS+oDrytiPixoA5YQwlroGtB1B3DkPOuzSSlI3Z9YMHkdL3OLKFIcuCDr5g==} + '@analogjs/vitest-angular@2.2.0': + resolution: {integrity: sha512-IFLsxChJPL7noy9dksATL/L4ofIUbADdtaD0Taj5pSlGLZ7evmvG+Y71HUnJUyVcDWyfcNJpSnS8B16hmxAXgQ==} peerDependencies: '@analogjs/vite-plugin-angular': '*' '@angular-devkit/architect': '>=0.1500.0 < 0.2200.0' vitest: ^1.3.1 || ^2.0.0 || ^3.0.0 || ^4.0.0 - '@angular-devkit/architect@0.2100.3': - resolution: {integrity: sha512-PcruWF0+IxXOTZd9MN/3y4A5aTfblALzT/+zWym26PtisaBgWQ3tRPQsf/CgT8EdmZl8eUOAWlNBSkbUj/S/lQ==} + '@angular-devkit/architect@0.2100.4': + resolution: {integrity: sha512-tKtb0I8AU59m75JjHlL1XEsoPxVaEWhnHKeesDpk49RNm0sVqWnfXesse8IXqdVds0Hpjisc3In7j4xKbigfXg==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'} - '@angular-devkit/build-angular@21.0.3': - resolution: {integrity: sha512-KcaI9sDvY6rVsVvILSNBIzJaE5+KcapULShMInD90px9X0QoajXgm8l63FiQOBCNkZt+todMM0h3+u6y7UPsYQ==} + '@angular-devkit/build-angular@21.0.4': + resolution: {integrity: sha512-w81o1AYUloBLTyaBjGP5V2N4l6/zLpifc6kdu9QATNEhzZOoFdUG+vUiX4GOKBIXNV1OltnwvOfWsE9auJcNQA==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'} peerDependencies: '@angular/compiler-cli': ^21.0.0 @@ -3585,7 +3530,7 @@ packages: '@angular/platform-browser': ^21.0.0 '@angular/platform-server': ^21.0.0 '@angular/service-worker': ^21.0.0 - '@angular/ssr': ^21.0.3 + '@angular/ssr': ^21.0.4 '@web/test-runner': ^0.20.0 browser-sync: ^3.0.2 jest: ^30.2.0 @@ -3625,15 +3570,15 @@ packages: tailwindcss: optional: true - '@angular-devkit/build-webpack@0.2100.3': - resolution: {integrity: sha512-q76y3iwua3eL3pF3zlKRvDYgnICVWexyReQWIEcCHb4Q4K5hDeJCAO1eLX9no+xmTzbavCADmqcJ6hOkyRjw6g==} + '@angular-devkit/build-webpack@0.2100.4': + resolution: {integrity: sha512-tiWmC6AinrfDLarhGHrPuqQN6hLkGzrXBhhiC0ntzwK8sBlu9d44guxXAzR3Wl9sBnHuOPeoNZ0t6x/H6FzBUA==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'} peerDependencies: webpack: ^5.30.0 webpack-dev-server: ^5.0.2 - '@angular-devkit/core@21.0.3': - resolution: {integrity: sha512-X1y3GMYru9+Vt7vz+R8SFAEmDtgf0aZ+1JOpiE7ubHsQOnhA++Pb94HBjQ6CHqlUhQli/XPOBksKNdZkpup8rQ==} + '@angular-devkit/core@21.0.4': + resolution: {integrity: sha512-Mbze8tMtBs7keSOx4UIR9utLQs1uSiGjfTaOkCu/dbBEiG6umopy1OlUCvHiHyeiYqh+wR0yiGtTS+Cexo5iLg==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'} peerDependencies: chokidar: ^4.0.0 @@ -3641,18 +3586,18 @@ packages: chokidar: optional: true - '@angular-devkit/schematics@21.0.3': - resolution: {integrity: sha512-E/Nja+RIyMzjqLXREOnTRwv7GMrycpAD7kGwDg7l8cWrNQ7phqBZcXAt74Jv9K9aYsOC8tw2Ms9t59aQ6iow8w==} + '@angular-devkit/schematics@21.0.4': + resolution: {integrity: sha512-am39kuaBB/v7RL++bsepvUhP2JKDmfMLQbyJvyHIG6UxnQztxQYZ2/CiPb91dz9NMiqAZqIJaN+kqvIc8h7AeQ==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'} - '@angular/animations@21.0.5': - resolution: {integrity: sha512-7Lr60wLlYcGG+VDnnOY9xpn8Zz3yyJcWGSjNEbXPEGaaD0nTZLNZ1nIXRhTeYZwosK5GvPDFxq68kdLxczskHA==} + '@angular/animations@21.0.6': + resolution: {integrity: sha512-dSxhkh/ZlljdglZ0rriSy7GdC1Y3rGaagkx6oAzF5XqAoBbFmiVFEBZPxssSeQ+O0izmAw3GwsUnz3E/1JYsbA==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} peerDependencies: - '@angular/core': 21.0.5 + '@angular/core': 21.0.6 - '@angular/build@21.0.3': - resolution: {integrity: sha512-3h2s0Igruei1RB/Hmu7nwbKvjJQ2ykNaiicXYuS2muWUBhDg+lm0QsGTGXrQV2BD0M9YdHU4Byh9upiZgMYpjA==} + '@angular/build@21.0.4': + resolution: {integrity: sha512-tnh9llk9288noG6buV9HtsAfR/QCVIArTsx9pFJebAFOIDyObpHItfWTnmqYBQecSNEwH5l4XlkDInbjxM9MuA==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'} peerDependencies: '@angular/compiler': ^21.0.0 @@ -3662,7 +3607,7 @@ packages: '@angular/platform-browser': ^21.0.0 '@angular/platform-server': ^21.0.0 '@angular/service-worker': ^21.0.0 - '@angular/ssr': ^21.0.3 + '@angular/ssr': ^21.0.4 karma: ^6.4.0 less: ^4.2.0 ng-packagr: ^21.0.0 @@ -3697,45 +3642,45 @@ packages: vitest: optional: true - '@angular/cdk@21.0.3': - resolution: {integrity: sha512-abfckeZfFvovdpxuQHRE4gS1VLNa05Dx0ZSKLGVL9DsQsi4pgn6wWg1y9TkXMlmtpG/EhLmCBxUc6LOHfdeWQA==} + '@angular/cdk@21.0.5': + resolution: {integrity: sha512-yO/IRYEZ5wJkpwg3GT3b6RST4pqNFTAhuyPdEdLcE81cs283K3aKOsCYh2xUR3bR4WxBh2kBPSJ31AFZyJXbSA==} peerDependencies: '@angular/common': ^21.0.0 || ^22.0.0 '@angular/core': ^21.0.0 || ^22.0.0 rxjs: ^6.5.3 || ^7.4.0 - '@angular/cli@21.0.3': - resolution: {integrity: sha512-3lMR3J231JhLgAt37yEULSHFte3zPeta9VYpIIf92JiBsTnWrvKnaK8RXhfdiSQrvhqQ9FMQdl5AG62r1c4dbA==} + '@angular/cli@21.0.4': + resolution: {integrity: sha512-L4uKhC3KorF04x9A7noff2m25Phkq54wdqzuWNnbGg3bNfOHdXMv97t2e02J1mk+XOeEcPfDJmOiXj4fcviCLA==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'} hasBin: true - '@angular/common@21.0.5': - resolution: {integrity: sha512-/ZI11F6Wxr8TZRVO4O7pmhBJ9YxDg9mvA76e0PiivmqZggM02HY0y3XPMP3hAOe4K+PfaVBgMAu3P9t32klzfA==} + '@angular/common@21.0.6': + resolution: {integrity: sha512-Yd8PF0dR37FAzqEcBHAyVCiSGMJOezSJe6rV/4BC6AVLfaZ7oZLl8CNVxKsod2UHd6rKxt1hzx05QdVcVvYNeA==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} peerDependencies: - '@angular/core': 21.0.5 + '@angular/core': 21.0.6 rxjs: ^6.5.3 || ^7.4.0 - '@angular/compiler-cli@21.0.5': - resolution: {integrity: sha512-45sFKqt+badXl6Ab2XsxuOsdi0BbIZgcc9TdwmFPdXMNfcSUYDcPiOA0l1iPwDIZiu4VyqzepMfnHB9IwCatgA==} + '@angular/compiler-cli@21.0.6': + resolution: {integrity: sha512-UcIUx+fbn0VLlCBCIYxntAzWG3zPRUo0K7wvuK0MC6ZFCWawgewx9SdLLZTqcaWe1g5FRQlQeVQcFgHAO5R2Mw==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} hasBin: true peerDependencies: - '@angular/compiler': 21.0.5 + '@angular/compiler': 21.0.6 typescript: '>=5.9 <6.0' peerDependenciesMeta: typescript: optional: true - '@angular/compiler@21.0.5': - resolution: {integrity: sha512-92sv9pVm9o/8KfPM7T8j5VQmTaSOqmIajrJF8evXE2dNJcwkBpVtzZUqDzr23AV3vg94C7eYU64i8qrsmJ+cYQ==} + '@angular/compiler@21.0.6': + resolution: {integrity: sha512-rBMzG7WnQMouFfDST+daNSAOVYdtw560645PhlxyVeIeHMlCm0j1jjBgVPGTBNpVgKRdT/sqbi6W6JYkY9mERA==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} - '@angular/core@21.0.5': - resolution: {integrity: sha512-HFXfO5YsBVM+IEaU8h3DZSxO98yDZM2v49NlSVNDzFD3fhnkpTmcgT2NKz9ulIiuV9N376itt+x+NG12sg/+Fw==} + '@angular/core@21.0.6': + resolution: {integrity: sha512-SvWbOkkrsqprYJSBmzQEWkWjfZB/jkRYyFp2ClMJBPqOLxP1a+i3Om2rolcNQjZPz87bs9FszwgRlXUy7sw5cQ==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} peerDependencies: - '@angular/compiler': 21.0.5 + '@angular/compiler': 21.0.6 rxjs: ^6.5.3 || ^7.4.0 zone.js: ~0.15.0 || ~0.16.0 peerDependenciesMeta: @@ -3744,57 +3689,56 @@ packages: zone.js: optional: true - '@angular/forms@21.0.5': - resolution: {integrity: sha512-RcmXs/LgKyc7D70xVT+3aK/H2SCFEyuebAiw72Iz1te1Gbql2GDFF6hgEOaNwOUglDg8ogN5MdVif2DbRLD3Hw==} + '@angular/forms@21.0.6': + resolution: {integrity: sha512-aAkAAKuUrP8U7R4aH/HbmG/CXP90GlML77ECBI5b4qCSb+bvaTEYsaf85mCyTpr9jvGkia2LTe42hPcOuyzdsQ==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} peerDependencies: - '@angular/common': 21.0.5 - '@angular/core': 21.0.5 - '@angular/platform-browser': 21.0.5 - '@standard-schema/spec': ^1.0.0 + '@angular/common': 21.0.6 + '@angular/core': 21.0.6 + '@angular/platform-browser': 21.0.6 rxjs: ^6.5.3 || ^7.4.0 - '@angular/platform-browser-dynamic@21.0.5': - resolution: {integrity: sha512-0P5vFSS6UhiU7IBeVqPEKmRhMtyQqyXGN9+zF7kLK8H0cx1j0eGVmHRsVuY2YKoVp97fXDIeVGSbO0t5ZcFhoA==} + '@angular/platform-browser-dynamic@21.0.6': + resolution: {integrity: sha512-7mvlvEx66C1cwbAbaeTnbfw1EeZwK5eRCT55pGW+Fsx+vg/8TVF/6NPEbYO65earwIp9Xqt9mGGtq+fPopsbSA==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} peerDependencies: - '@angular/common': 21.0.5 - '@angular/compiler': 21.0.5 - '@angular/core': 21.0.5 - '@angular/platform-browser': 21.0.5 + '@angular/common': 21.0.6 + '@angular/compiler': 21.0.6 + '@angular/core': 21.0.6 + '@angular/platform-browser': 21.0.6 - '@angular/platform-browser@21.0.5': - resolution: {integrity: sha512-UVCrqOxFmX6kAG3Y6jqjCWvLoTP7fxeY96AsxTMp1fkBdqbQbEPleWQpwngNimsuUPvf+rA6XOxsqiDmRex5mA==} + '@angular/platform-browser@21.0.6': + resolution: {integrity: sha512-tPk8rlUEBPXIUPRYq6Xu7QhJgKtnVr0dOHHuhyi70biKTupr5VikpZC5X9dy2Q3H3zYbK6MHC6384YMuwfU2kg==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} peerDependencies: - '@angular/animations': 21.0.5 - '@angular/common': 21.0.5 - '@angular/core': 21.0.5 + '@angular/animations': 21.0.6 + '@angular/common': 21.0.6 + '@angular/core': 21.0.6 peerDependenciesMeta: '@angular/animations': optional: true - '@angular/platform-server@21.0.5': - resolution: {integrity: sha512-Yw8f4XRZp4OTtLaGiF2ekGwF7zjWVKzErwNXRaJb6tERKua/+3JpLKWQMkreJQolqEplPk3ngkoyExDGMB+DNQ==} + '@angular/platform-server@21.0.6': + resolution: {integrity: sha512-JjwjKfUOcbDb3vo3nG/Nk+ZLS6Hi35NYsxZNsHULA4X/2YXup65qwp7JfcyqYYqPW+lRjGjfYiCT5vSZK3fWJQ==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} peerDependencies: - '@angular/common': 21.0.5 - '@angular/compiler': 21.0.5 - '@angular/core': 21.0.5 - '@angular/platform-browser': 21.0.5 + '@angular/common': 21.0.6 + '@angular/compiler': 21.0.6 + '@angular/core': 21.0.6 + '@angular/platform-browser': 21.0.6 rxjs: ^6.5.3 || ^7.4.0 - '@angular/router@21.0.5': - resolution: {integrity: sha512-IFmf0Wd7jSOoZ8TI+4RXMsYmnIfHQG+kGxeMQVKrefTdr3uEHW/TEsNzbW5bkCpVJHRm4EhkH4hSu8D8tUQffQ==} + '@angular/router@21.0.6': + resolution: {integrity: sha512-HOfomKq7jRSgxt/uUvpdbB8RNaYuGB/FJQ3BfQCFfGw1O9L3B72b7Hilk6AcjCruul6cfv/kmT4EB6Vqi3dQtA==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} peerDependencies: - '@angular/common': 21.0.5 - '@angular/core': 21.0.5 - '@angular/platform-browser': 21.0.5 + '@angular/common': 21.0.6 + '@angular/core': 21.0.6 + '@angular/platform-browser': 21.0.6 rxjs: ^6.5.3 || ^7.4.0 - '@angular/ssr@21.0.3': - resolution: {integrity: sha512-waHJ1hEhDoKMJlABiaysbWqwaxDE5S/MQ9Ykq1GdudFuj+T7e/S4KKmy2pusEShVX4ztrJiBskT9zeO6P1qvAg==} + '@angular/ssr@21.0.4': + resolution: {integrity: sha512-3eSp3h84buLz9/OdOKt11WpXgaIv+7TZ27vxRIhvFOwWauE7YN6EB0E3xTH6dkRppH486w6mIZb+3Nyo4Zll8Q==} peerDependencies: '@angular/common': ^21.0.0 '@angular/core': ^21.0.0 @@ -3875,12 +3819,6 @@ packages: peerDependencies: '@babel/core': ^7.0.0 - '@babel/helper-create-regexp-features-plugin@7.26.3': - resolution: {integrity: sha512-G7ZRb40uUgdKOQqPLjfD12ZmGA54PzqDFUv2BKImnC9QIfGhIHKvVML0oN8IUiDq4iRqpq74ABpvOaerfWdong==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - '@babel/helper-create-regexp-features-plugin@7.28.5': resolution: {integrity: sha512-N1EhvLtHzOvj7QQOUCCS3NrPJP8c5W6ZXCHDn7Yialuy1iu4r5EmIYkXlKNqT99Ciw+W0mDqWoR6HWMZlFP3hw==} engines: {node: '>=6.9.0'} @@ -3992,11 +3930,6 @@ packages: resolution: {integrity: sha512-HFN59MmQXGHVyYadKLVumYsA9dBFun/ldYxipEjzA4196jpLZd8UjEEBLkbEkvfYreDqJhZxYAWFPtrfhNpj4w==} engines: {node: '>=6.9.0'} - '@babel/parser@7.26.3': - resolution: {integrity: sha512-WJ/CvmY8Mea8iDXo6a7RK2wbmJITT5fN3BEkRuFlxVyNx8jOKIIhmC4fSkTcPcf8JyavbBwIe6OpiCOBXt/IcA==} - engines: {node: '>=6.0.0'} - hasBin: true - '@babel/parser@7.26.7': resolution: {integrity: sha512-kEvgGGgEjRUutvdVvZhbn/BxVt+5VSpwXz1j3WYXQbXDo8KzFOPNG2GQbdAiNq8g6wn1yKk7C/qrke03a84V+w==} engines: {node: '>=6.0.0'} @@ -4037,6 +3970,13 @@ packages: peerDependencies: '@babel/core': ^7.0.0 + '@babel/plugin-proposal-private-methods@7.18.6': + resolution: {integrity: sha512-nutsvktDItsNn4rpGItSNV2sz1XwS+nfU0Rg8aCx3W3NOKVzdMjJRu0O5OkgDp3ZGICSTbgRpxZoWsxoKRvbeA==} + engines: {node: '>=6.9.0'} + deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-private-methods instead. + peerDependencies: + '@babel/core': ^7.0.0-0 + '@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2': resolution: {integrity: sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==} engines: {node: '>=6.9.0'} @@ -4555,21 +4495,12 @@ packages: peerDependencies: react: '>=16.8.0' - '@emnapi/core@1.3.1': - resolution: {integrity: sha512-pVGjBIt1Y6gg3EJN8jTcfpP/+uuRksIo055oE/OBkDNcjZqVbfkWCksG1Jp4yZnj3iKWyWX8fdG/j6UDYPbFog==} - '@emnapi/core@1.7.1': resolution: {integrity: sha512-o1uhUASyo921r2XtHYOHy7gdkGLge8ghBEQHMWmyJFoXlpU58kIrhhN3w26lpQb6dspetweapMn2CSNwQ8I4wg==} - '@emnapi/runtime@1.3.1': - resolution: {integrity: sha512-kEBmG8KyqtxJZv+ygbEim+KCGtIq1fC22Ms3S4ziXmYKm8uyoLX0MHONVKwp+9opg390VaKRNt4a7A9NwmpNhw==} - '@emnapi/runtime@1.7.1': resolution: {integrity: sha512-PVtJr5CmLwYAU9PZDMITZoR5iAOShYREoR45EyyLrbntV50mdePTgUn4AmOw90Ifcj+x2kRjdzr1HP3RrNiHGA==} - '@emnapi/wasi-threads@1.0.1': - resolution: {integrity: sha512-iIBu7mwkq4UQGeMEM8bLwNK962nXdhodeScX4slfQnRhEMMzvYivHhutCIk8uojvmASXXPC2WNEjwxFWk72Oqw==} - '@emnapi/wasi-threads@1.1.0': resolution: {integrity: sha512-WI0DdZ8xFSbgMjR1sFsKABJ/C5OnRrjT06JXbZKexJGrDuPTzZdDYfFlsgcCXCyf+suG5QU2e/y1Wo2V/OapLQ==} @@ -5270,8 +5201,8 @@ packages: resolution: {integrity: sha512-Sxc4hqcs1kTu0iID3kcZDW3JHq2a77HO9P8CP6YEA/FpH3Ll8UXE2r/86Rz9YJLKme39S9vU5OWNjC6Xl0Cr3w==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/js@9.39.1': - resolution: {integrity: sha512-S26Stp4zCy88tH94QbBv3XCuzRQiZ9yXofEILmglYTh/Ug/a9/umqvgFtYBAo3Lp0nsI/5/qH1CCrbdK3AP1Tw==} + '@eslint/js@9.39.2': + resolution: {integrity: sha512-q1mjIoW1VX4IvSocvM/vbTiveKC4k9eLrajNEuSsmjymSDEbpGddtpfOoN7YGAqBK3NG+uqo8ia4PDTt8buCYA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@eslint/object-schema@2.1.7': @@ -5475,10 +5406,6 @@ packages: resolution: {integrity: sha512-ZT55BDLV0yv0RBm2czMiZ+SqCGO7AvmOM3G/w2xhVPH+te0aKgFjmBvGlL1dH+ql2tgGO3MVrbb3jCKyvpgnxA==} engines: {node: 20 || >=22} - '@isaacs/cliui@8.0.2': - resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} - engines: {node: '>=12'} - '@isaacs/fs-minipass@4.0.1': resolution: {integrity: sha512-wgm9Ehl2jpeqP3zw/7mo3kRHFp5MEDhqAdwy1fTGkHAwnkGOVsgpvQhL8B5n1qlb01jV3n/bI0ZfZp5lWA1k4w==} engines: {node: '>=18.0.0'} @@ -5790,8 +5717,8 @@ packages: '@napi-rs/wasm-runtime@1.1.0': resolution: {integrity: sha512-Fq6DJW+Bb5jaWE69/qOE0D1TUN9+6uWhCeZpdnSBk14pjLcCWR7Q8n49PTSPHazM37JqrsdpEthXy2xn6jWWiA==} - '@ngtools/webpack@21.0.3': - resolution: {integrity: sha512-JDO+KOpNBL5bKgHugjLLgDNDt3odBZLYDaKyeC7s9xv3nAPu0UXQHkMcZe+sOJVMZS0zkSTTQ7zMO8BC6MDj3w==} + '@ngtools/webpack@21.0.4': + resolution: {integrity: sha512-0+XWJqZaRB5GGtJEaWgHV0iYzgB5pDhVjMEb/1Z6+CZazF8Aq2HuU8BErWYzPIwaiTLxR+lc3Z35RsAaeSmGFQ==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'} peerDependencies: '@angular/compiler-cli': ^21.0.0 @@ -5851,53 +5778,53 @@ packages: resolution: {integrity: sha512-ER2N6itRkzWbbtVmZ9WKaWxVlKlOeBFF1/7xx+KA5J1xKa4JjUwBdb6tDpk0v1qA+d+VDwHI9qmLcXSWcmi+Rw==} engines: {node: ^20.17.0 || >=22.9.0} - '@nx/nx-darwin-arm64@22.2.1': - resolution: {integrity: sha512-GcISvKjB0GiD8lpM3kNkpYplaXzfGWJA0ApOrqRvhKU9HB/pwKtnN+nMdkIWKs74Dlizm2WnDNVfS7eXEmpCvg==} + '@nx/nx-darwin-arm64@22.3.2': + resolution: {integrity: sha512-iWAhaYoOkRPz1LJFsE+aeGCqZ2Lyu5kRG0TmIv9SWBP3C754mq8dmvHXtFv/4NMViHmZAtiQI8wuHO20QTXAng==} cpu: [arm64] os: [darwin] - '@nx/nx-darwin-x64@22.2.1': - resolution: {integrity: sha512-Zikb50atIxdSm+zcrppuQ95STqXi1I2NWMzAxhnM3bw9Ty4mh4gIaXD9g0yp5O3AQYposkRl6+n1HXUwQHMMaA==} + '@nx/nx-darwin-x64@22.3.2': + resolution: {integrity: sha512-q5N7SfIeW/soEi+Z/wct+8e4KaY0Vqz2iIkyCJS4V2rQTfGrd61w0syQVbaO1nK9ooYY1cDFEK79HVavUF1ZcA==} cpu: [x64] os: [darwin] - '@nx/nx-freebsd-x64@22.2.1': - resolution: {integrity: sha512-zKiCxZ57o4NEx2wLIDuevCNy6X0gOU7vb74Qi6uNQ2lrZRXDlPTALdi4WKj2s3HaI2vTF2mkrxUKh6Ho/+PSqg==} + '@nx/nx-freebsd-x64@22.3.2': + resolution: {integrity: sha512-xXZ1zhSLsAqGHV4tyZcfJITFBdQSsF682g1l7rfkSsYdGriY5S7oFh/HhSXTeW/YhipxYl2xRMQ3JVZACMk4bA==} cpu: [x64] os: [freebsd] - '@nx/nx-linux-arm-gnueabihf@22.2.1': - resolution: {integrity: sha512-6Mq4XQLL2fpo1upP98xXs9Bt1UTi0Et3Jxo3KZMlmIDgFl8LLYM/p0kCdWmCPNn9EPhM769Fe3O21BNlRHYqvQ==} + '@nx/nx-linux-arm-gnueabihf@22.3.2': + resolution: {integrity: sha512-PN2LYprJ9U1B18Sa9ftXtmo3zcI2+h9dsguArARt8DXcvnywhWqBqVvRF1dAmUa44XAL/qJNOZUnWFqo1WZCNA==} cpu: [arm] os: [linux] - '@nx/nx-linux-arm64-gnu@22.2.1': - resolution: {integrity: sha512-HyGantAqciBEqu+fI4f58j7aEI9UCb7/AQHpKqgDdajgfA5RP0HgI0EGrSWnns8qPwZKMWCgeq5wp+lB/ukB9w==} + '@nx/nx-linux-arm64-gnu@22.3.2': + resolution: {integrity: sha512-l6I+C5c/Pu6H3Ky2PqR4zuZ8CjSPPxhUFA56n0HBjouPAFcYlNG91tl765Pj4i25oz61q3AGae5YZNia9pxkKQ==} cpu: [arm64] os: [linux] - '@nx/nx-linux-arm64-musl@22.2.1': - resolution: {integrity: sha512-fCTDiQxPSzTmRUAWODV4ZHSFA0BQ3wM+uGxpNtqTAvj2FL9O4LsVFH1c+mB6oVSjSfwMV/9+TztY40zsE35Btw==} + '@nx/nx-linux-arm64-musl@22.3.2': + resolution: {integrity: sha512-qsI3szxhEq2v5X5td41yKSAqVFfqyct3cNPECICqhDplQrYmgrn8aJlWpD1x1hOgKu3rS2qmVv0N32ro0wNEyg==} cpu: [arm64] os: [linux] - '@nx/nx-linux-x64-gnu@22.2.1': - resolution: {integrity: sha512-bOmNt2zNUv9M7iS3FHg5RZRrkQc4yFsbf0wGwVkQpcsmFKPkXR6RdLfZg08Qr1lUsgVX+5nnqT8d5xXnoao/hg==} + '@nx/nx-linux-x64-gnu@22.3.2': + resolution: {integrity: sha512-X0JRwXurulpANwUmJyW+02nAjbqI1s1/thpjHxNqlUH3Y9dAXxZ7T96CrFxA6GiM6PMlYwId6jnW+JrhOXb+3A==} cpu: [x64] os: [linux] - '@nx/nx-linux-x64-musl@22.2.1': - resolution: {integrity: sha512-dO08lbMhuBwvjzTADGEH8w+GSzobirpMt33hV/+Yuj35/SfsO2gwNCu72A2Fekh23MXODsO8gzAS0+0aqtvxXQ==} + '@nx/nx-linux-x64-musl@22.3.2': + resolution: {integrity: sha512-zWn1sQFg0ejOw/UhUwJe0V2aRSpNF6hoKs8H3NhNdA34ttcYzJiMIUlvN04iEaewsgYuGCMxJzbMBpM/x4MpMQ==} cpu: [x64] os: [linux] - '@nx/nx-win32-arm64-msvc@22.2.1': - resolution: {integrity: sha512-4cN4SoLgf004EFE7tlP6ibS/SDr986Urne3SgJhEnbrZv+GypEP+yJOnYejZArDnUDLAyeNe1Ha1aMy00p8AHg==} + '@nx/nx-win32-arm64-msvc@22.3.2': + resolution: {integrity: sha512-MYUtrvfxf7Gb1S6dUMV5ZnEsykq0G3FXlZ8ObA2GphAPX4LDat/r0fINdFWZr/yOhqMxZe5iJJQiLQF42M9xPQ==} cpu: [arm64] os: [win32] - '@nx/nx-win32-x64-msvc@22.2.1': - resolution: {integrity: sha512-N90PIFViLWurPOQq0dydtP060+GWuhiJwh840g6Gmzh/hOiv5545mx9tdKK+ZuCh01jKPbYU+tyDUkaGFrqtYA==} + '@nx/nx-win32-x64-msvc@22.3.2': + resolution: {integrity: sha512-siOubcaCO2129ViUYi/+s7mHaSW+HtZPLCb2pzlps5QB36L3ADf9OtziYJ/ftBZpYqzw88jxMqNh75qyrlil3Q==} cpu: [x64] os: [win32] @@ -6086,10 +6013,6 @@ packages: resolution: {integrity: sha512-i0GV1yJnm2n3Yq1qw6QrUrd/LI9bE8WEBOTtOkpCXHHdyN3TAGgqAK/DAT05z4fq2x04cARXt2pDmjWjL92iTQ==} engines: {node: '>= 10.0.0'} - '@pkgjs/parseargs@0.11.0': - resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} - engines: {node: '>=14'} - '@preact/preset-vite@2.10.2': resolution: {integrity: sha512-K9wHlJOtkE+cGqlyQ5v9kL3Ge0Ql4LlIZjkUTL+1zf3nNdF88F9UZN6VTV8jdzBX9Fl7WSzeNMSDG7qECPmSmg==} peerDependencies: @@ -6689,101 +6612,51 @@ packages: rollup: optional: true - '@rollup/rollup-android-arm-eabi@4.32.0': - resolution: {integrity: sha512-G2fUQQANtBPsNwiVFg4zKiPQyjVKZCUdQUol53R8E71J7AsheRMV/Yv/nB8giOcOVqP7//eB5xPqieBYZe9bGg==} - cpu: [arm] - os: [android] - '@rollup/rollup-android-arm-eabi@4.53.3': resolution: {integrity: sha512-mRSi+4cBjrRLoaal2PnqH82Wqyb+d3HsPUN/W+WslCXsZsyHa9ZeQQX/pQsZaVIWDkPcpV6jJ+3KLbTbgnwv8w==} cpu: [arm] os: [android] - '@rollup/rollup-android-arm64@4.32.0': - resolution: {integrity: sha512-qhFwQ+ljoymC+j5lXRv8DlaJYY/+8vyvYmVx074zrLsu5ZGWYsJNLjPPVJJjhZQpyAKUGPydOq9hRLLNvh1s3A==} - cpu: [arm64] - os: [android] - '@rollup/rollup-android-arm64@4.53.3': resolution: {integrity: sha512-CbDGaMpdE9sh7sCmTrTUyllhrg65t6SwhjlMJsLr+J8YjFuPmCEjbBSx4Z/e4SmDyH3aB5hGaJUP2ltV/vcs4w==} cpu: [arm64] os: [android] - '@rollup/rollup-darwin-arm64@4.32.0': - resolution: {integrity: sha512-44n/X3lAlWsEY6vF8CzgCx+LQaoqWGN7TzUfbJDiTIOjJm4+L2Yq+r5a8ytQRGyPqgJDs3Rgyo8eVL7n9iW6AQ==} - cpu: [arm64] - os: [darwin] - '@rollup/rollup-darwin-arm64@4.53.3': resolution: {integrity: sha512-Nr7SlQeqIBpOV6BHHGZgYBuSdanCXuw09hon14MGOLGmXAFYjx1wNvquVPmpZnl0tLjg25dEdr4IQ6GgyToCUA==} cpu: [arm64] os: [darwin] - '@rollup/rollup-darwin-x64@4.32.0': - resolution: {integrity: sha512-F9ct0+ZX5Np6+ZDztxiGCIvlCaW87HBdHcozUfsHnj1WCUTBUubAoanhHUfnUHZABlElyRikI0mgcw/qdEm2VQ==} - cpu: [x64] - os: [darwin] - '@rollup/rollup-darwin-x64@4.53.3': resolution: {integrity: sha512-DZ8N4CSNfl965CmPktJ8oBnfYr3F8dTTNBQkRlffnUarJ2ohudQD17sZBa097J8xhQ26AwhHJ5mvUyQW8ddTsQ==} cpu: [x64] os: [darwin] - '@rollup/rollup-freebsd-arm64@4.32.0': - resolution: {integrity: sha512-JpsGxLBB2EFXBsTLHfkZDsXSpSmKD3VxXCgBQtlPcuAqB8TlqtLcbeMhxXQkCDv1avgwNjF8uEIbq5p+Cee0PA==} - cpu: [arm64] - os: [freebsd] - '@rollup/rollup-freebsd-arm64@4.53.3': resolution: {integrity: sha512-yMTrCrK92aGyi7GuDNtGn2sNW+Gdb4vErx4t3Gv/Tr+1zRb8ax4z8GWVRfr3Jw8zJWvpGHNpss3vVlbF58DZ4w==} cpu: [arm64] os: [freebsd] - '@rollup/rollup-freebsd-x64@4.32.0': - resolution: {integrity: sha512-wegiyBT6rawdpvnD9lmbOpx5Sph+yVZKHbhnSP9MqUEDX08G4UzMU+D87jrazGE7lRSyTRs6NEYHtzfkJ3FjjQ==} - cpu: [x64] - os: [freebsd] - '@rollup/rollup-freebsd-x64@4.53.3': resolution: {integrity: sha512-lMfF8X7QhdQzseM6XaX0vbno2m3hlyZFhwcndRMw8fbAGUGL3WFMBdK0hbUBIUYcEcMhVLr1SIamDeuLBnXS+Q==} cpu: [x64] os: [freebsd] - '@rollup/rollup-linux-arm-gnueabihf@4.32.0': - resolution: {integrity: sha512-3pA7xecItbgOs1A5H58dDvOUEboG5UfpTq3WzAdF54acBbUM+olDJAPkgj1GRJ4ZqE12DZ9/hNS2QZk166v92A==} - cpu: [arm] - os: [linux] - '@rollup/rollup-linux-arm-gnueabihf@4.53.3': resolution: {integrity: sha512-k9oD15soC/Ln6d2Wv/JOFPzZXIAIFLp6B+i14KhxAfnq76ajt0EhYc5YPeX6W1xJkAdItcVT+JhKl1QZh44/qw==} cpu: [arm] os: [linux] - '@rollup/rollup-linux-arm-musleabihf@4.32.0': - resolution: {integrity: sha512-Y7XUZEVISGyge51QbYyYAEHwpGgmRrAxQXO3siyYo2kmaj72USSG8LtlQQgAtlGfxYiOwu+2BdbPjzEpcOpRmQ==} - cpu: [arm] - os: [linux] - '@rollup/rollup-linux-arm-musleabihf@4.53.3': resolution: {integrity: sha512-vTNlKq+N6CK/8UktsrFuc+/7NlEYVxgaEgRXVUVK258Z5ymho29skzW1sutgYjqNnquGwVUObAaxae8rZ6YMhg==} cpu: [arm] os: [linux] - '@rollup/rollup-linux-arm64-gnu@4.32.0': - resolution: {integrity: sha512-r7/OTF5MqeBrZo5omPXcTnjvv1GsrdH8a8RerARvDFiDwFpDVDnJyByYM/nX+mvks8XXsgPUxkwe/ltaX2VH7w==} - cpu: [arm64] - os: [linux] - '@rollup/rollup-linux-arm64-gnu@4.53.3': resolution: {integrity: sha512-RGrFLWgMhSxRs/EWJMIFM1O5Mzuz3Xy3/mnxJp/5cVhZ2XoCAxJnmNsEyeMJtpK+wu0FJFWz+QF4mjCA7AUQ3w==} cpu: [arm64] os: [linux] - '@rollup/rollup-linux-arm64-musl@4.32.0': - resolution: {integrity: sha512-HJbifC9vex9NqnlodV2BHVFNuzKL5OnsV2dvTw6e1dpZKkNjPG6WUq+nhEYV6Hv2Bv++BXkwcyoGlXnPrjAKXw==} - cpu: [arm64] - os: [linux] - '@rollup/rollup-linux-arm64-musl@4.53.3': resolution: {integrity: sha512-kASyvfBEWYPEwe0Qv4nfu6pNkITLTb32p4yTgzFCocHnJLAHs+9LjUu9ONIhvfT/5lv4YS5muBHyuV84epBo/A==} cpu: [arm64] @@ -6794,26 +6667,11 @@ packages: cpu: [loong64] os: [linux] - '@rollup/rollup-linux-loongarch64-gnu@4.32.0': - resolution: {integrity: sha512-VAEzZTD63YglFlWwRj3taofmkV1V3xhebDXffon7msNz4b14xKsz7utO6F8F4cqt8K/ktTl9rm88yryvDpsfOw==} - cpu: [loong64] - os: [linux] - - '@rollup/rollup-linux-powerpc64le-gnu@4.32.0': - resolution: {integrity: sha512-Sts5DST1jXAc9YH/iik1C9QRsLcCoOScf3dfbY5i4kH9RJpKxiTBXqm7qU5O6zTXBTEZry69bGszr3SMgYmMcQ==} - cpu: [ppc64] - os: [linux] - '@rollup/rollup-linux-ppc64-gnu@4.53.3': resolution: {integrity: sha512-EoGSa8nd6d3T7zLuqdojxC20oBfNT8nexBbB/rkxgKj5T5vhpAQKKnD+h3UkoMuTyXkP5jTjK/ccNRmQrPNDuw==} cpu: [ppc64] os: [linux] - '@rollup/rollup-linux-riscv64-gnu@4.32.0': - resolution: {integrity: sha512-qhlXeV9AqxIyY9/R1h1hBD6eMvQCO34ZmdYvry/K+/MBs6d1nRFLm6BOiITLVI+nFAAB9kUB6sdJRKyVHXnqZw==} - cpu: [riscv64] - os: [linux] - '@rollup/rollup-linux-riscv64-gnu@4.53.3': resolution: {integrity: sha512-4s+Wped2IHXHPnAEbIB0YWBv7SDohqxobiiPA1FIWZpX+w9o2i4LezzH/NkFUl8LRci/8udci6cLq+jJQlh+0g==} cpu: [riscv64] @@ -6824,28 +6682,13 @@ packages: cpu: [riscv64] os: [linux] - '@rollup/rollup-linux-s390x-gnu@4.32.0': - resolution: {integrity: sha512-8ZGN7ExnV0qjXa155Rsfi6H8M4iBBwNLBM9lcVS+4NcSzOFaNqmt7djlox8pN1lWrRPMRRQ8NeDlozIGx3Omsw==} - cpu: [s390x] - os: [linux] - '@rollup/rollup-linux-s390x-gnu@4.53.3': resolution: {integrity: sha512-VYsFMpULAz87ZW6BVYw3I6sWesGpsP9OPcyKe8ofdg9LHxSbRMd7zrVrr5xi/3kMZtpWL/wC+UIJWJYVX5uTKg==} cpu: [s390x] os: [linux] - '@rollup/rollup-linux-x64-gnu@4.32.0': - resolution: {integrity: sha512-VDzNHtLLI5s7xd/VubyS10mq6TxvZBp+4NRWoW+Hi3tgV05RtVm4qK99+dClwTN1McA6PHwob6DEJ6PlXbY83A==} - cpu: [x64] - os: [linux] - - '@rollup/rollup-linux-x64-gnu@4.53.3': - resolution: {integrity: sha512-3EhFi1FU6YL8HTUJZ51imGJWEX//ajQPfqWLI3BQq4TlvHy4X0MOr5q3D2Zof/ka0d5FNdPwZXm3Yyib/UEd+w==} - cpu: [x64] - os: [linux] - - '@rollup/rollup-linux-x64-musl@4.32.0': - resolution: {integrity: sha512-qcb9qYDlkxz9DxJo7SDhWxTWV1gFuwznjbTiov289pASxlfGbaOD54mgbs9+z94VwrXtKTu+2RqwlSTbiOqxGg==} + '@rollup/rollup-linux-x64-gnu@4.53.3': + resolution: {integrity: sha512-3EhFi1FU6YL8HTUJZ51imGJWEX//ajQPfqWLI3BQq4TlvHy4X0MOr5q3D2Zof/ka0d5FNdPwZXm3Yyib/UEd+w==} cpu: [x64] os: [linux] @@ -6859,21 +6702,11 @@ packages: cpu: [arm64] os: [openharmony] - '@rollup/rollup-win32-arm64-msvc@4.32.0': - resolution: {integrity: sha512-pFDdotFDMXW2AXVbfdUEfidPAk/OtwE/Hd4eYMTNVVaCQ6Yl8et0meDaKNL63L44Haxv4UExpv9ydSf3aSayDg==} - cpu: [arm64] - os: [win32] - '@rollup/rollup-win32-arm64-msvc@4.53.3': resolution: {integrity: sha512-GOFuKpsxR/whszbF/bzydebLiXIHSgsEUp6M0JI8dWvi+fFa1TD6YQa4aSZHtpmh2/uAlj/Dy+nmby3TJ3pkTw==} cpu: [arm64] os: [win32] - '@rollup/rollup-win32-ia32-msvc@4.32.0': - resolution: {integrity: sha512-/TG7WfrCAjeRNDvI4+0AAMoHxea/USWhAzf9PVDFHbcqrQ7hMMKp4jZIy4VEjk72AAfN5k4TiSMRXRKf/0akSw==} - cpu: [ia32] - os: [win32] - '@rollup/rollup-win32-ia32-msvc@4.53.3': resolution: {integrity: sha512-iah+THLcBJdpfZ1TstDFbKNznlzoxa8fmnFYK4V67HvmuNYkVdAywJSoteUszvBQ9/HqN2+9AZghbajMsFT+oA==} cpu: [ia32] @@ -6884,11 +6717,6 @@ packages: cpu: [x64] os: [win32] - '@rollup/rollup-win32-x64-msvc@4.32.0': - resolution: {integrity: sha512-5hqO5S3PTEO2E5VjCePxv40gIgyS2KvO7E7/vvC/NbIW4SIRamkMr1hqj+5Y67fbBWv/bQLB6KelBQmXlyCjWA==} - cpu: [x64] - os: [win32] - '@rollup/rollup-win32-x64-msvc@4.53.3': resolution: {integrity: sha512-UhTd8u31dXadv0MopwGgNOBpUVROFKWVQgAg5N1ESyCz8AuBcMqm4AuTjrwgQKGDfoFuz02EuMRHQIw/frmYKQ==} cpu: [x64] @@ -6921,8 +6749,8 @@ packages: '@rushstack/ts-command-line@4.22.3': resolution: {integrity: sha512-edMpWB3QhFFZ4KtSzS8WNjBgR4PXPPOVrOHMbb7kNpmQ1UFS9HdVtjCXg1H5fG+xYAbeE+TMPcVPUyX2p84STA==} - '@schematics/angular@21.0.3': - resolution: {integrity: sha512-XYOI2WOz8B+ydJ8iUHRXrUyjTx+YGdCQ8b2FlXnU46ksIctVU+zt4Zgu6462xeaPwOFYw6+r+TvaBAZ14a82Gw==} + '@schematics/angular@21.0.4': + resolution: {integrity: sha512-/jJOf3iLvTaVa25xwiYLsfmidVAzC6rPy3Nl85iRo5bVod8be+KhHTn8aGq/8o7pzzB6Cin1oLs+riPR1nLVhg==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'} '@shikijs/engine-oniguruma@1.24.4': @@ -7132,6 +6960,11 @@ packages: peerDependencies: lit: ^3.1.0 + '@tanstack/preact-store@0.10.1': + resolution: {integrity: sha512-LLwm4vd38kz/db8Af8J0KQd4h6vapS8QW2r0iE6jJ3x33GQeXGsi/CGTUe5QBhEP1RnXgUaAlFNnmusfXloreQ==} + peerDependencies: + preact: ^10.0.0 + '@tanstack/query-core@5.90.12': resolution: {integrity: sha512-T1/8t5DhV/SisWjDnaiU2drl6ySvsHj1bHBCWNXd+/T+Hh1cf6JodyEYMd5sgwm+b/mETT4EV3H+zCVczCU5hg==} @@ -7140,8 +6973,8 @@ packages: peerDependencies: react: ^18 || ^19 - '@tanstack/react-router@1.141.1': - resolution: {integrity: sha512-pLQ6ZFCh5s86ewZIAu2wQc2svf+DqttD7CFd1NPSxdEU20KvMMj9RPQdDHj/pbf2VvB3i1nEDxjli/Z0PBvnCQ==} + '@tanstack/react-router@1.141.6': + resolution: {integrity: sha512-qWFxi2D6eGc1L03RzUuhyEOplZ7Q6q62YOl7Of9Y0q4YjwQwxRm4zxwDVtvUIoy4RLVCpqp5UoE+Nxv2PY9trg==} engines: {node: '>=12'} peerDependencies: react: '>=18.0.0 || >=19.0.0' @@ -7166,20 +6999,20 @@ packages: react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 - '@tanstack/router-core@1.141.1': - resolution: {integrity: sha512-fR1GGpp6v3dVKu4KIAjEh+Sd0qGLQd/wvCOVHeopSY6aFidXKCzwrS5cBOBqoPPWTKmn6CdW1a0CzFr5Furdog==} + '@tanstack/router-core@1.141.6': + resolution: {integrity: sha512-AqH61axLq2xFaM+B0veGQ4OOzMzr2Ih+qXzBmGRy5e0wMJkr1efPZXLF0K7nEjF++bmL/excew2Br6v9xrZ/5g==} engines: {node: '>=12'} - '@tanstack/router-generator@1.141.1': - resolution: {integrity: sha512-21RbVAoIDn7s/n/PKMN6U60d5hCeVADrBH/uN6B/poMT4MVYtJXqISVzkc2RAboVRw6eRdYFeF+YlwA3nF6y3Q==} + '@tanstack/router-generator@1.141.7': + resolution: {integrity: sha512-SgOI/PmG3IGRf5q9bbYVE9xH1tP1ah0jIzGiI2w1D1nlljU+rd1DpSY7kEr9P6EHJpwDeb50DNi4Aq1WbEljSQ==} engines: {node: '>=12'} - '@tanstack/router-plugin@1.141.1': - resolution: {integrity: sha512-SoNXm8QK8cqX1Q4y1AfLU0tZLOt4mB4wkdpBI/Mi3ZEezF8tIrmaenyJ3987cjT9jedTy3VDBab1wN0g8MoOXg==} + '@tanstack/router-plugin@1.141.7': + resolution: {integrity: sha512-znYaRYaUIEl2uJ+lP2qkC//dKtowb2IwU7jOGa7ygnCRVpK3TcTUMezfyI67jfDiB0rM8ICj5sqONfhN9I/F2g==} engines: {node: '>=12'} peerDependencies: '@rsbuild/core': '>=1.0.2' - '@tanstack/react-router': ^1.141.1 + '@tanstack/react-router': ^1.141.6 vite: '>=5.0.0 || >=6.0.0 || >=7.0.0' vite-plugin-solid: ^2.11.10 webpack: '>=5.92.0' @@ -7199,8 +7032,8 @@ packages: resolution: {integrity: sha512-/eFGKCiix1SvjxwgzrmH4pHjMiMxc+GA4nIbgEkG2RdAJqyxLcRhd7RPLG0/LZaJ7d0ad3jrtRqsHLv2152Vbw==} engines: {node: '>=12'} - '@tanstack/router-vite-plugin@1.141.1': - resolution: {integrity: sha512-ueOBrKYgomHRAM3zWP0OjNhk9oipwg2jptBIZvN3QJnUdPs11bf0IFCCPIM/Sr08iyts2Pspa4hwzU5sap1rng==} + '@tanstack/router-vite-plugin@1.141.7': + resolution: {integrity: sha512-/ySoPfbiX1/iEuxz+WAmEzgx+nQUN/tAnjYYkjnSNq4bImEyHf/Wr95UgGMt97OWF3vokFCtfpkX7yHaJQZxkg==} engines: {node: '>=12'} '@tanstack/store@0.8.0': @@ -7375,8 +7208,8 @@ packages: '@types/node-forge@1.3.11': resolution: {integrity: sha512-FQx220y22OKNTqaByeBGqHWYz4cl94tpcxeFdvBo3wjG6XPBuZ0BNgNZRV5J5TFmmcsJ4IzsLkmGRiQbnYsBEQ==} - '@types/node@25.0.1': - resolution: {integrity: sha512-czWPzKIAXucn9PtsttxmumiQ9N0ok9FrBwgRWrwmVLlp86BrMExzvXRLFYRJ+Ex3g6yqj+KuaxfX1JTgV2lpfg==} + '@types/node@25.0.3': + resolution: {integrity: sha512-W609buLVRVmeW693xKfzHeIV6nJGGz98uCPfeXI1ELMLXVeKYZ9m15fAMSaUPBHYLGFsVRcMmSCksQOrZV9BYA==} '@types/qs@6.9.18': resolution: {integrity: sha512-kK7dgTYDyGqS+e2Q4aK9X3D7q234CIZ1Bv0q/7Z5IwRDoADNU81xXJK/YVyLbLTZCoIwUoDoffFeF+p/eIklAA==} @@ -7563,11 +7396,11 @@ packages: vite: ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 vue: ^3.2.25 - '@vitest/expect@4.0.15': - resolution: {integrity: sha512-Gfyva9/GxPAWXIWjyGDli9O+waHDC0Q0jaLdFP1qPAUUfo1FEXPXUfUkp3eZA0sSq340vPycSyOlYUeM15Ft1w==} + '@vitest/expect@4.0.16': + resolution: {integrity: sha512-eshqULT2It7McaJkQGLkPjPjNph+uevROGuIMJdG3V+0BSR2w9u6J9Lwu+E8cK5TETlfou8GRijhafIMhXsimA==} - '@vitest/mocker@4.0.15': - resolution: {integrity: sha512-CZ28GLfOEIFkvCFngN8Sfx5h+Se0zN+h4B7yOsPVCcgtiO7t5jt9xQh2E1UkFep+eb9fjyMfuC5gBypwb07fvQ==} + '@vitest/mocker@4.0.16': + resolution: {integrity: sha512-yb6k4AZxJTB+q9ycAvsoxGn+j/po0UaPgajllBgt1PzoMAAmJGYFdDk0uCcRcxb3BrME34I6u8gHZTQlkqSZpg==} peerDependencies: msw: ^2.4.9 vite: ^6.0.0 || ^7.0.0-0 @@ -7577,20 +7410,20 @@ packages: vite: optional: true - '@vitest/pretty-format@4.0.15': - resolution: {integrity: sha512-SWdqR8vEv83WtZcrfLNqlqeQXlQLh2iilO1Wk1gv4eiHKjEzvgHb2OVc3mIPyhZE6F+CtfYjNlDJwP5MN6Km7A==} + '@vitest/pretty-format@4.0.16': + resolution: {integrity: sha512-eNCYNsSty9xJKi/UdVD8Ou16alu7AYiS2fCPRs0b1OdhJiV89buAXQLpTbe+X8V9L6qrs9CqyvU7OaAopJYPsA==} - '@vitest/runner@4.0.15': - resolution: {integrity: sha512-+A+yMY8dGixUhHmNdPUxOh0la6uVzun86vAbuMT3hIDxMrAOmn5ILBHm8ajrqHE0t8R9T1dGnde1A5DTnmi3qw==} + '@vitest/runner@4.0.16': + resolution: {integrity: sha512-VWEDm5Wv9xEo80ctjORcTQRJ539EGPB3Pb9ApvVRAY1U/WkHXmmYISqU5E79uCwcW7xYUV38gwZD+RV755fu3Q==} - '@vitest/snapshot@4.0.15': - resolution: {integrity: sha512-A7Ob8EdFZJIBjLjeO0DZF4lqR6U7Ydi5/5LIZ0xcI+23lYlsYJAfGn8PrIWTYdZQRNnSRlzhg0zyGu37mVdy5g==} + '@vitest/snapshot@4.0.16': + resolution: {integrity: sha512-sf6NcrYhYBsSYefxnry+DR8n3UV4xWZwWxYbCJUt2YdvtqzSPR7VfGrY0zsv090DAbjFZsi7ZaMi1KnSRyK1XA==} - '@vitest/spy@4.0.15': - resolution: {integrity: sha512-+EIjOJmnY6mIfdXtE/bnozKEvTC4Uczg19yeZ2vtCz5Yyb0QQ31QWVQ8hswJ3Ysx/K2EqaNsVanjr//2+P3FHw==} + '@vitest/spy@4.0.16': + resolution: {integrity: sha512-4jIOWjKP0ZUaEmJm00E0cOBLU+5WE0BpeNr3XN6TEF05ltro6NJqHWxXD0kA8/Zc8Nh23AT8WQxwNG+WeROupw==} - '@vitest/utils@4.0.15': - resolution: {integrity: sha512-HXjPW2w5dxhTD0dLwtYHDnelK3j8sR8cWIaLxr22evTyY6q8pRCjZSmhRWVjBaOVXChQd6AwMzi9pucorXCPZA==} + '@vitest/utils@4.0.16': + resolution: {integrity: sha512-h8z9yYhV3e1LEfaQ3zdypIrnAg/9hguReGZoS7Gl0aBG5xgA410zBqECqmaF/+RkTggRsfnzc1XaAHA6bmUufA==} '@volar/language-core@2.4.11': resolution: {integrity: sha512-lN2C1+ByfW9/JRPpqScuZt/4OrUUse57GLI6TbLgTIqBVemdl1wNcZ1qYGEo2+Gw8coYLgCy7SuKqn6IrQcQgg==} @@ -7632,18 +7465,30 @@ packages: '@vue/compiler-core@3.5.25': resolution: {integrity: sha512-vay5/oQJdsNHmliWoZfHPoVZZRmnSWhug0BYT34njkYTPqClh3DNWLkZNJBVSjsNMrg0CCrBfoKkjZQPM/QVUw==} + '@vue/compiler-core@3.5.26': + resolution: {integrity: sha512-vXyI5GMfuoBCnv5ucIT7jhHKl55Y477yxP6fc4eUswjP8FG3FFVFd41eNDArR+Uk3QKn2Z85NavjaxLxOC19/w==} + '@vue/compiler-dom@3.5.13': resolution: {integrity: sha512-ZOJ46sMOKUjO3e94wPdCzQ6P1Lx/vhp2RSvfaab88Ajexs0AHeV0uasYhi99WPaogmBlRHNRuly8xV75cNTMDA==} '@vue/compiler-dom@3.5.25': resolution: {integrity: sha512-4We0OAcMZsKgYoGlMjzYvaoErltdFI2/25wqanuTu+S4gismOTRTBPi4IASOjxWdzIwrYSjnqONfKvuqkXzE2Q==} + '@vue/compiler-dom@3.5.26': + resolution: {integrity: sha512-y1Tcd3eXs834QjswshSilCBnKGeQjQXB6PqFn/1nxcQw4pmG42G8lwz+FZPAZAby6gZeHSt/8LMPfZ4Rb+Bd/A==} + '@vue/compiler-sfc@3.5.25': resolution: {integrity: sha512-PUgKp2rn8fFsI++lF2sO7gwO2d9Yj57Utr5yEsDf3GNaQcowCLKL7sf+LvVFvtJDXUp/03+dC6f2+LCv5aK1ag==} + '@vue/compiler-sfc@3.5.26': + resolution: {integrity: sha512-egp69qDTSEZcf4bGOSsprUr4xI73wfrY5oRs6GSgXFTiHrWj4Y3X5Ydtip9QMqiCMCPVwLglB9GBxXtTadJ3mA==} + '@vue/compiler-ssr@3.5.25': resolution: {integrity: sha512-ritPSKLBcParnsKYi+GNtbdbrIE1mtuFEJ4U1sWeuOMlIziK5GtOL85t5RhsNy4uWIXPgk+OUdpnXiTdzn8o3A==} + '@vue/compiler-ssr@3.5.26': + resolution: {integrity: sha512-lZT9/Y0nSIRUPVvapFJEVDbEXruZh2IYHMk2zTtEgJSlP5gVOqeWXH54xDKAaFS4rTnDeDBQUYDtxKyoW9FwDw==} + '@vue/compiler-vue2@2.7.16': resolution: {integrity: sha512-qYC3Psj9S/mfu9uVi5WvNZIzq+xnXMhOwbTFKKDD7b1lhpnn71jXSFdTQ+WsIEk0ONCd7VV2IMm7ONl6tbQ86A==} @@ -7663,19 +7508,19 @@ packages: typescript: optional: true - '@vue/reactivity@3.5.25': - resolution: {integrity: sha512-5xfAypCQepv4Jog1U4zn8cZIcbKKFka3AgWHEFQeK65OW+Ys4XybP6z2kKgws4YB43KGpqp5D/K3go2UPPunLA==} + '@vue/reactivity@3.5.26': + resolution: {integrity: sha512-9EnYB1/DIiUYYnzlnUBgwU32NNvLp/nhxLXeWRhHUEeWNTn1ECxX8aGO7RTXeX6PPcxe3LLuNBFoJbV4QZ+CFQ==} - '@vue/runtime-core@3.5.25': - resolution: {integrity: sha512-Z751v203YWwYzy460bzsYQISDfPjHTl+6Zzwo/a3CsAf+0ccEjQ8c+0CdX1WsumRTHeywvyUFtW6KvNukT/smA==} + '@vue/runtime-core@3.5.26': + resolution: {integrity: sha512-xJWM9KH1kd201w5DvMDOwDHYhrdPTrAatn56oB/LRG4plEQeZRQLw0Bpwih9KYoqmzaxF0OKSn6swzYi84e1/Q==} - '@vue/runtime-dom@3.5.25': - resolution: {integrity: sha512-a4WrkYFbb19i9pjkz38zJBg8wa/rboNERq3+hRRb0dHiJh13c+6kAbgqCPfMaJ2gg4weWD3APZswASOfmKwamA==} + '@vue/runtime-dom@3.5.26': + resolution: {integrity: sha512-XLLd/+4sPC2ZkN/6+V4O4gjJu6kSDbHAChvsyWgm1oGbdSO3efvGYnm25yCjtFm/K7rrSDvSfPDgN1pHgS4VNQ==} - '@vue/server-renderer@3.5.25': - resolution: {integrity: sha512-UJaXR54vMG61i8XNIzTSf2Q7MOqZHpp8+x3XLGtE3+fL+nQd+k7O5+X3D/uWrnQXOdMw5VPih+Uremcw+u1woQ==} + '@vue/server-renderer@3.5.26': + resolution: {integrity: sha512-TYKLXmrwWKSodyVuO1WAubucd+1XlLg4set0YoV+Hu8Lo79mp/YMwWV5mC5FgtsDxX3qo1ONrxFaTP1OQgy1uA==} peerDependencies: - vue: 3.5.25 + vue: 3.5.26 '@vue/shared@3.5.13': resolution: {integrity: sha512-/hnE/qP5ZoGpol0a5mDi45bOd7t3tjYJBjsgCsivow7D48cJeV5l05RD82lPqi7gRiphZM37rnhW1l6ZoCNNnQ==} @@ -7683,6 +7528,9 @@ packages: '@vue/shared@3.5.25': resolution: {integrity: sha512-AbOPdQQnAnzs58H2FrrDxYj/TJfmeS2jdfEEhgiKINy+bnOANmVizIEgq1r+C5zsbs6l1CCQxtcj71rwNQ4jWg==} + '@vue/shared@3.5.26': + resolution: {integrity: sha512-7Z6/y3uFI5PRoKeorTOSXKcDj0MSasfNNltcslbFrPpcw6aXRUALq4IfJlaTRspiWIUOEZbrpM+iQGmCOiWe4A==} + '@webassemblyjs/ast@1.14.1': resolution: {integrity: sha512-nuBEDgQfm1ccRp/8bCQrx1frohyufl4JlbMMZ4P1wpeOfDhF6FQkxZJ1b/e+PLwr6X1Nhw6OLme5usuBWYBvuQ==} @@ -7925,8 +7773,8 @@ packages: peerDependencies: postcss: ^8.1.0 - autoprefixer@10.4.22: - resolution: {integrity: sha512-ARe0v/t9gO28Bznv6GgqARmVqcWOV3mfgUPn9becPHMiD3o9BwlRgaeccZnwTpZ7Zwqrm+c1sUSsMxIzQzc8Xg==} + autoprefixer@10.4.23: + resolution: {integrity: sha512-YYTXSFulfwytnjAPlw8QHncHJmlvFKtczb8InXaAx9Q0LbfDnfEYDE55omerIJKihhmU61Ft+cAOSzQVaBUmeA==} engines: {node: ^10 || ^12 || >=14} hasBin: true peerDependencies: @@ -8043,11 +7891,6 @@ packages: resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} engines: {node: '>=8'} - browserslist@4.24.4: - resolution: {integrity: sha512-KDi1Ny1gSePi1vm0q4oxSF8b4DR44GF4BbmS2YdhPLOEqd8pDviZOGH/GsmRwoWJ2+5Lr085X7naowMwKHDG1A==} - engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} - hasBin: true - browserslist@4.28.1: resolution: {integrity: sha512-ZC5Bd0LgJXgwGqUknZY/vkUQ04r8NXnJZ3yYi4vDmSiZmC/pdSN0NbNRPxZpbtO4uAfDUAFffO8IZoM3Gj8IkA==} engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} @@ -8087,9 +7930,6 @@ packages: resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} engines: {node: '>=6'} - caniuse-lite@1.0.30001695: - resolution: {integrity: sha512-vHyLade6wTgI2u1ec3WQBxv+2BrTERV28UXQu9LO6lZ9pYeMk34vjXFLOxo1A4UBA8XTL4njRQZdno/yYaSmWw==} - caniuse-lite@1.0.30001760: resolution: {integrity: sha512-7AAMPcueWELt1p3mi13HR/LHH0TJLT11cnwDJEs3xA4+CK/PLKeO9Kl1oru24htkyUKtkGCvAx4ohB0Ttry8Dw==} @@ -8572,27 +8412,18 @@ packages: resolution: {integrity: sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==} engines: {node: '>= 0.4'} - eastasianwidth@0.2.0: - resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} - ee-first@1.1.1: resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} electron-to-chromium@1.5.267: resolution: {integrity: sha512-0Drusm6MVRXSOJpGbaSVgcQsuB4hEkMpHXaVstcPmhu5LIedxs1xNK/nIxmQIU/RPC0+1/o0AVZfBTkTNJOdUw==} - electron-to-chromium@1.5.88: - resolution: {integrity: sha512-K3C2qf1o+bGzbilTDCTBhTQcMS9KW60yTAaTeeXsfvQuTDDwlokLam/AdqlqcSy9u4UainDgsHV23ksXAOgamw==} - emoji-regex@10.4.0: resolution: {integrity: sha512-EC+0oUMY1Rqm4O6LLrgjtYDvcVYTy7chDnM4Q7030tP4Kwj3u/pR6gP9ygnp2CJMK5Gq+9Q2oqmrFJAz01DXjw==} emoji-regex@8.0.0: resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} - emoji-regex@9.2.2: - resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} - emojis-list@3.0.0: resolution: {integrity: sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==} engines: {node: '>= 4'} @@ -8623,10 +8454,6 @@ packages: resolution: {integrity: sha512-0/r0MySGYG8YqlayBZ6MuCfECmHFdJ5qyPh8s8wa5Hnm6SaFLSK1VYCbj+NKp090Nm1caZhD+QTnmxO7esYGyQ==} engines: {node: '>=10.13.0'} - enhanced-resolve@5.18.1: - resolution: {integrity: sha512-ZSW3ma5GkcQBIpwZTSRAI8N71Uuwgs93IezB7mf7R60tC8ZbJideoDNKjHn2O9KIlx6rkGTTEk1xUCK2E1Y2Yg==} - engines: {node: '>=10.13.0'} - enhanced-resolve@5.18.4: resolution: {integrity: sha512-LgQMM4WXU3QI+SYgEc2liRgznaD5ojbmY3sb8LxyguVkIg5FxdpTkvk72te2R38/TGKxH634oLxXRGY6d7AP+Q==} engines: {node: '>=10.13.0'} @@ -8647,6 +8474,10 @@ packages: resolution: {integrity: sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g==} engines: {node: '>=0.12'} + entities@7.0.0: + resolution: {integrity: sha512-FDWG5cmEYf2Z00IkYRhbFrwIwvdFKH07uV8dvNy0omp/Qb1xcyCWp2UDtcwJF4QZZvk0sLudP6/hAu42TaqVhQ==} + engines: {node: '>=0.12'} + env-paths@2.2.1: resolution: {integrity: sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==} engines: {node: '>=6'} @@ -8673,12 +8504,12 @@ packages: resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} engines: {node: '>= 0.4'} - es-module-lexer@1.6.0: - resolution: {integrity: sha512-qqnD1yMU6tk/jnaMosogGySTZP8YtUgAffA9nMN+E/rjxcfRQ6IEk7IiozUjgxKoFHBGjTLnrHB/YC45r/59EQ==} - es-module-lexer@1.7.0: resolution: {integrity: sha512-jEQoCwk8hyb2AZziIOLhDqpm5+2ww5uIE6lkO/6jcOCusfk6LhMHpXXfBLXTZ7Ydyt0j4VoUQv6uGNYbdW+kBA==} + es-module-lexer@2.0.0: + resolution: {integrity: sha512-5POEcUuZybH7IdmGsD8wlf0AI55wMecM9rVBTI/qEAy2c1kTOm3DjFYjrBdI2K3BaJjJYfYFeRtM0t9ssnRuxw==} + es-object-atoms@1.1.1: resolution: {integrity: sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==} engines: {node: '>= 0.4'} @@ -8759,6 +8590,12 @@ packages: peerDependencies: eslint: '>=8.23.0' + eslint-plugin-react-compiler@19.1.0-rc.2: + resolution: {integrity: sha512-oKalwDGcD+RX9mf3NEO4zOoUMeLvjSvcbbEOpquzmzqEEM2MQdp7/FY/Hx9NzmUwFzH1W9SKTz5fihfMldpEYw==} + engines: {node: ^14.17.0 || ^16.0.0 || >= 18.0.0} + peerDependencies: + eslint: '>=7' + eslint-plugin-react-dom@2.3.13: resolution: {integrity: sha512-O9jglTOnnuyfJcSxjeVc8lqIp5kuS9/0MLLCHlOTH8ZjIifHHxUr6GZ2fd4la9y0FsoEYXEO7DBIMjWx2vCwjg==} engines: {node: '>=20.19.0'} @@ -8861,8 +8698,8 @@ packages: resolution: {integrity: sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - eslint@9.39.1: - resolution: {integrity: sha512-BhHmn2yNOFA9H9JmmIVKJmd288g9hrVRDkdoIgRCRuSySRUHH7r/DI6aAXW9T1WwUuY3DFgrcaqB+deURBLR5g==} + eslint@9.39.2: + resolution: {integrity: sha512-LEyamqS7W5HB3ujJyvi0HQK/dtVINZvd5mAAp9eT5S/ujByGjiZLCzPcHVzuXbpJDJF/cxwHlfceVUDZ2lnSTw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} hasBin: true peerDependencies: @@ -9097,10 +8934,6 @@ packages: resolution: {integrity: sha512-0OABksIGrxKK8K4kynWkQ7y1zounQxP+CWnyclVwj81KW3vlLlGUx57DKGcP/LH216GzqnstnPocF16Nxs0Ycg==} engines: {node: '>=0.10.0'} - foreground-child@3.2.1: - resolution: {integrity: sha512-PXUUyLqrR2XCWICfv6ukppP96sdFwWbNEnfEMt7jNsISjMsvaLNinAHNDYyvkyU+SZG2BTSbT5NjG+vZslfGTA==} - engines: {node: '>=14'} - form-data@4.0.5: resolution: {integrity: sha512-8RipRLol37bNs2bhoV67fiTEvdTrbMUYcFTiy3+wuuOnUog2QBHCZWXDRijWQfAkhBj2Uf5UnVaiWwA5vdd82w==} engines: {node: '>= 6'} @@ -9208,11 +9041,6 @@ packages: glob-to-regexp@0.4.1: resolution: {integrity: sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==} - glob@10.4.2: - resolution: {integrity: sha512-GwMlUF6PkPo3Gk21UxkCohOv0PLcIXVtKyLlpEI28R/cO/4eNOdmLk3CMW1wROV/WR/EsZOWAfBbBOqYvs88/w==} - engines: {node: '>=16 || 14 >=14.18'} - hasBin: true - glob@13.0.0: resolution: {integrity: sha512-tvZgpqk6fz4BaNZ66ZsRaZnbHvP/jG3uKJvAZOwEVUL4RTA5nJeeLYfyN9/VA8NX/V3IBG+hkeuGpKjvELkVhA==} engines: {node: 20 || >=22} @@ -9655,10 +9483,6 @@ packages: resolution: {integrity: sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g==} engines: {node: '>=8'} - jackspeak@3.4.0: - resolution: {integrity: sha512-JVYhQnN59LVPFCEcVa2C3CrEKYacvjRfqIQl+h8oi91aLYQVWRYbxjPcv1bUiUy/kLmQaANrYfNMCO3kuEDHfw==} - engines: {node: '>=14'} - jasmine-core@4.6.1: resolution: {integrity: sha512-VYz/BjjmC3klLJlLwA4Kw8ytk0zDSmbbDLNs794VnWmkcCB7I9aAL/D48VNQtmITyPvea2C3jdUMfc3kAoy0PQ==} @@ -9690,10 +9514,6 @@ packages: resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==} hasBin: true - js-yaml@4.1.0: - resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} - hasBin: true - js-yaml@4.1.1: resolution: {integrity: sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==} hasBin: true @@ -9710,11 +9530,6 @@ packages: canvas: optional: true - jsesc@3.0.2: - resolution: {integrity: sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==} - engines: {node: '>=6'} - hasBin: true - jsesc@3.1.0: resolution: {integrity: sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==} engines: {node: '>=6'} @@ -9799,8 +9614,8 @@ packages: resolution: {integrity: sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==} engines: {node: '>=6'} - knip@5.73.3: - resolution: {integrity: sha512-676xuqNQidE9yZeUUX7lJeZ0d1N7QBTbmO1J0p+SyuXlbpdE4pd8Ql3WVMvrvaaaG2z/+3ExeFNm0Q9mVIjuKw==} + knip@5.75.2: + resolution: {integrity: sha512-ZSO9gGKG/RztUYawrMbPTqO9VG3qvTW/ddINJqYM+N+9F/0bX6HEBolo8+HKaBuTIgyM4dn2rZ8M+JLObRdzog==} engines: {node: '>=18.18.0'} hasBin: true peerDependencies: @@ -9829,11 +9644,6 @@ packages: webpack: optional: true - less@4.2.1: - resolution: {integrity: sha512-CasaJidTIhWmjcqv0Uj5vccMI7pJgfD9lMkKtlnTHAdJdYK/7l8pM9tumLyJ0zhbD4KJLo/YvTj+xznQd5NBhg==} - engines: {node: '>=6'} - hasBin: true - less@4.4.2: resolution: {integrity: sha512-j1n1IuTX1VQjIy3tT7cyGbX7nvQOsFLoIqobZv4ttI5axP923gA44zUj6miiA6R5Aoms4sEGVIIcucXUbRI14g==} engines: {node: '>=14'} @@ -9960,8 +9770,8 @@ packages: resolution: {integrity: sha512-GWV1kVi6uhrXWqe+3NXWO73OYe8fto6q8JMo0HOpk1vf8nEyFWgo4CSNJpIFzsOxOrysVUlcO48qRbQfmKd1gA==} hasBin: true - loader-runner@4.3.0: - resolution: {integrity: sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==} + loader-runner@4.3.1: + resolution: {integrity: sha512-IWqP2SCPhyVFTBtRcgMHdzlf9ul25NwaFx4wCEH/KjAXuuHY4yNjvPXsBokp8jCB936PyWRaPKUNh8NvylLp2Q==} engines: {node: '>=6.11.5'} loader-utils@2.0.4: @@ -10008,14 +9818,6 @@ packages: resolution: {integrity: sha512-1somDdy9sChrr9/f4UlzhdaGfDR2c/SaD2a4T7qEkG4jTS57/B3qmnjLYePwQ8cqWnUHZI0iAKxMBpCZICiZ2g==} engines: {node: '>=8.0'} - loose-envify@1.4.0: - resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} - hasBin: true - - lru-cache@10.3.0: - resolution: {integrity: sha512-CQl19J/g+Hbjbv4Y3mFNNXFEL/5t/KCg8POCuUqd4rMKjGG+j1ybER83hxV58zL+dFI1PTkt3GNFSHRt+d8qEQ==} - engines: {node: 14 || >=16.14} - lru-cache@11.0.2: resolution: {integrity: sha512-123qHRfJBmo2jXDbo/a5YOQrJoHF/GNQTLzQ5+IdK5pWpceK17yRc6ozlWd25FxvGKQbIUs91fDFkXmDHTKcyA==} engines: {node: 20 || >=22} @@ -10034,8 +9836,8 @@ packages: resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} engines: {node: '>=10'} - lucide-react@0.561.0: - resolution: {integrity: sha512-Y59gMY38tl4/i0qewcqohPdEbieBy7SovpBL9IFebhc2mDd8x4PZSOsiFRkpPcOq6bj1r/mjH/Rk73gSlIJP2A==} + lucide-react@0.562.0: + resolution: {integrity: sha512-82hOAu7y0dbVuFfmO4bYF1XEwYk/mEbM5E+b1jgci/udUBEE/R7LF5Ip0CCEmXe8AybRM8L+04eP+LGZeDvkiw==} peerDependencies: react: ^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0 @@ -10222,10 +10024,6 @@ packages: resolution: {integrity: sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==} engines: {node: '>=16 || 14 >=14.17'} - minizlib@3.0.1: - resolution: {integrity: sha512-umcy022ILvb5/3Djuu8LWeqUa8D68JaBzlttKeMWen48SjabqS3iY5w/vzeMzMUNhLDifyhbOwKDSznB1vvrwg==} - engines: {node: '>= 18'} - minizlib@3.1.0: resolution: {integrity: sha512-KZxYo1BUkWD2TVFLr0MQoM8vUUigWD3LlD83a/75BqC+4qE0Hb1Vo5v1FgcfaNXvfXzr+5EhQ6ing/CaBijTlw==} engines: {node: '>= 18'} @@ -10317,8 +10115,8 @@ packages: neo-async@2.6.2: resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==} - ng-packagr@21.0.0: - resolution: {integrity: sha512-2lMGkmS91FyP+p/Tzmu49hY+p1PDgHBNM+Fce8yrzZo8/EbybNPBYfJnwFfl0lwGmqpYLevH2oh12+ikKCLv9g==} + ng-packagr@21.0.1: + resolution: {integrity: sha512-IZGxuF226GF0d8FOZIfPvHsyBl53PrDEg/IB2+CVamsm3r4+gUw3mBp27eygpowBpdVLG0Sm2IbUiH4aSspzyA==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} hasBin: true peerDependencies: @@ -10355,9 +10153,6 @@ packages: node-machine-id@1.1.12: resolution: {integrity: sha512-QNABxbrPa3qEIfrE6GOJ7BYIuignnJw7iQ2YPbc3Nla1HzRJjXzZOiikfF8m7eAMfichLt3M4VgLOetqgDmgGQ==} - node-releases@2.0.19: - resolution: {integrity: sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==} - node-releases@2.0.27: resolution: {integrity: sha512-nmh3lCkYZ3grZvqcCH+fjmQ7X+H0OeZgP40OierEaAptX4XofMh5kwNbWh7lBduUzCcV/8kZ+NDLCwm2iorIlA==} @@ -10417,8 +10212,8 @@ packages: nth-check@2.1.1: resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==} - nx@22.2.1: - resolution: {integrity: sha512-f/tDP9QKcJ0IjG3liHxZkJORPIPwcYiL0A7JsFMRYKVBjGiuvZ+qkAijjsVGdJBF7S7jJ7dy3oNCIZKevVru8w==} + nx@22.3.2: + resolution: {integrity: sha512-xK41TbX9d09rLPyAVT1uf3UeTTxoK/LDPF6PLe7tPW+ciP9wNpmQedU2z98FbYXpj7WJy2T4Xa/LS5Sth5b2hQ==} hasBin: true peerDependencies: '@swc-node/register': ^1.8.0 @@ -10520,9 +10315,6 @@ packages: resolution: {integrity: sha512-hEt02O4hUct5wtwg4H4KcWgDdm+l1bOaEy/hWzd8xtXB9BqxTWBBhb+2ImAtH4Cv4rPjV76xN3Zumqk3k3AhhQ==} engines: {node: '>=16.17'} - package-json-from-dist@1.0.0: - resolution: {integrity: sha512-dATvCeZN/8wQsGywez1mzHtTlP22H8OEfPrVMLNr4/eGa+ijtLn/6M5f0dY8UKNrC2O9UCU6SSoG3qRKnt7STw==} - package-json-from-dist@1.0.1: resolution: {integrity: sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==} @@ -10597,10 +10389,6 @@ packages: resolution: {integrity: sha512-QLcPegTHF11axjfojBIoDygmS2E3Lf+8+jI6wOVmNVenrKSo3mFdSGiIgdSHenczw3wPtlVMQaFVwGmM7BJdtg==} engines: {node: '>=0.10.0'} - path-scurry@1.11.1: - resolution: {integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==} - engines: {node: '>=16 || 14 >=14.18'} - path-scurry@2.0.0: resolution: {integrity: sha512-ypGJsmGtdXUOeM5u93TyeIEfEhM6s+ljAhrk5vAvSx8uyY/02OvrZnA0YNGUrPXfpJMgI1ODd3nwz8Npx4O4cg==} engines: {node: 20 || >=22} @@ -10741,8 +10529,8 @@ packages: resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} engines: {node: '>= 0.8.0'} - prettier-plugin-svelte@3.4.0: - resolution: {integrity: sha512-pn1ra/0mPObzqoIQn/vUTR3ZZI6UuZ0sHqMK5x2jMLGrs53h0sXhkVuDcrlssHwIMk7FYrMjHBPoUSyyEEDlBQ==} + prettier-plugin-svelte@3.4.1: + resolution: {integrity: sha512-xL49LCloMoZRvSwa6IEdN2GV6cq2IqpYGstYtMT+5wmml1/dClEoI0MZR78MiVPpu6BdQFfN0/y73yO6+br5Pg==} peerDependencies: prettier: ^3.0.0 svelte: ^3.2.0 || ^4.0.0-next.0 || ^5.0.0-next.0 @@ -10830,17 +10618,12 @@ packages: resolution: {integrity: sha512-K5zQjDllxWkf7Z5xJdV0/B0WTNqx6vxG70zJE4N0kBs4LovmEYWJzQGxC9bS9RAKu3bgM40lrd5zoLJ12MQ5BA==} engines: {node: '>= 0.10'} - react-day-picker@9.12.0: - resolution: {integrity: sha512-t8OvG/Zrciso5CQJu5b1A7yzEmebvST+S3pOVQJWxwjjVngyG/CA2htN/D15dLI4uTEuLLkbZyS4YYt480FAtA==} + react-day-picker@9.13.0: + resolution: {integrity: sha512-euzj5Hlq+lOHqI53NiuNhCP8HWgsPf/bBAVijR50hNaY1XwjKjShAnIe8jm8RD2W9IJUvihDIZ+KrmqfFzNhFQ==} engines: {node: '>=18'} peerDependencies: react: '>=16.8.0' - react-dom@18.3.1: - resolution: {integrity: sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==} - peerDependencies: - react: ^18.3.1 - react-dom@19.2.3: resolution: {integrity: sha512-yELu4WmLPw5Mr/lmeEpox5rw3RETacE++JgHqQzd2dg+YbJuat3jH4ingc+WPZhxaoFzdv9y33G+F7Nl5O0GBg==} peerDependencies: @@ -10921,10 +10704,6 @@ packages: reflect-metadata@0.2.2: resolution: {integrity: sha512-urBwgfrvVP/eAyXx4hluJivBKzuEbSQs9rKWCrCkbSxNv8mxPcUZKeuoF3Uy4mJl3Lwprp6yy5/39VWigZ4K6Q==} - regenerate-unicode-properties@10.2.0: - resolution: {integrity: sha512-DqHn3DwbmmPVzeKj9woBadqmXxLvQoQIwu7nopMc72ztvxVmVk2SBhSnx67zuye5TP+lJsb/TBQsjLKhnDf3MA==} - engines: {node: '>=4'} - regenerate-unicode-properties@10.2.2: resolution: {integrity: sha512-m03P+zhBeQd1RGnYxrGyDAPpWX/epKirLrp8e3qevZdVkKtnCrjjWczIbYc8+xd6vcTStVlqfycTx1KR4LOr0g==} engines: {node: '>=4'} @@ -10935,10 +10714,6 @@ packages: regex-parser@2.3.0: resolution: {integrity: sha512-TVILVSz2jY5D47F4mA4MppkBrafEaiUWJO/TcZHEIuI13AqoZMkK1WMA4Om1YkYbTx+9Ki1/tSUXbceyr9saRg==} - regexpu-core@6.2.0: - resolution: {integrity: sha512-H66BPQMrv+V16t8xtmq+UC0CBpiTBA60V8ibS1QVReIp8T1z8hwFxqcGzm9K6lgsN7sB5edVH8a+ze6Fqm4weA==} - engines: {node: '>=4'} - regexpu-core@6.4.0: resolution: {integrity: sha512-0ghuzq67LI9bLXpOX/ISfve/Mq33a4aFRzoQYhnnok1JOFpmE/A2TBGkNVenOGEeSBCjIiWcc6MVOG5HEQv0sA==} engines: {node: '>=4'} @@ -10946,10 +10721,6 @@ packages: regjsgen@0.8.0: resolution: {integrity: sha512-RvwtGe3d7LvWiDQXeQw8p5asZUmfU1G/l6WbUXeHta7Y2PEIvBTwH6E2EfmYUK8pxcxEdEmaomqyp0vZZ7C+3Q==} - regjsparser@0.12.0: - resolution: {integrity: sha512-cnE+y8bz4NhMjISKbgeVJtqNbtf5QpjZP+Bslo+UqkIt9QPnX9q095eiRRASJG1/tz6dlNr6Z5NsBiWYokp6EQ==} - hasBin: true - regjsparser@0.13.0: resolution: {integrity: sha512-NZQZdC5wOE/H3UT28fVGL+ikOZcEzfMGk/c3iN9UGxzWHMa1op7274oyiUVrAG4B2EuFhus8SvkaYnhvW92p9Q==} hasBin: true @@ -11025,11 +10796,6 @@ packages: deprecated: Rimraf versions prior to v4 are no longer supported hasBin: true - rimraf@5.0.7: - resolution: {integrity: sha512-nV6YcJo5wbLW77m+8KjH8aB/7/rxQy9SZ0HY5shnwULfS+9nmTtVXAJET5NdZmCzA4fPI/Hm1wo/Po/4mopOdg==} - engines: {node: '>=14.18'} - hasBin: true - rimraf@6.1.2: resolution: {integrity: sha512-cFCkPslJv7BAXJsYlK1dZsbP8/ZNLkCAQ0bi1hf5EKX2QHegmDFEFA6QhuYJlk7UDdc+02JjO80YSOrWPpw06g==} engines: {node: 20 || >=22} @@ -11052,11 +10818,6 @@ packages: peerDependencies: rollup: 2.x || 3.x || 4.x - rollup@4.32.0: - resolution: {integrity: sha512-JmrhfQR31Q4AuNBjjAX4s+a/Pu/Q8Q9iwjWBsjRH1q52SPFE2NqRMK6fUZKKnvKO6id+h7JIRf0oYsph53eATg==} - engines: {node: '>=18.0.0', npm: '>=8.0.0'} - hasBin: true - rollup@4.53.3: resolution: {integrity: sha512-w8GmOxZfBmKknvdXU1sdM9NHcoQejwF/4mNgj2JuEEdRaHwwF12K7e9eXn1nLZ07ad+du76mkVsyeb2rKGllsA==} engines: {node: '>=18.0.0', npm: '>=8.0.0'} @@ -11114,11 +10875,6 @@ packages: webpack: optional: true - sass@1.83.1: - resolution: {integrity: sha512-EVJbDaEs4Rr3F0glJzFSOvtg2/oy2V/YrGFPqPY24UqcLDWcI9ZY5sN+qyO3c/QCZwzgfirvhXvINiJCE/OLcA==} - engines: {node: '>=14.0.0'} - hasBin: true - sass@1.93.2: resolution: {integrity: sha512-t+YPtOQHpGW1QWsh1CHQ5cPIr9lbbGZLZnbihP/D/qZj/yuV68m8qarcV17nvkOX81BCrvzAlq2klCQFZghyTg==} engines: {node: '>=14.0.0'} @@ -11131,16 +10887,9 @@ packages: resolution: {integrity: sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==} engines: {node: '>=v12.22.7'} - scheduler@0.23.2: - resolution: {integrity: sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==} - scheduler@0.27.0: resolution: {integrity: sha512-eNv+WrVbKu1f3vbYJT/xtiF5syA5HPIMtf9IgY/nKg0sWqzAUEvqY/xm7OcZc/qafLx/iO9FgOmeSAp4v5ti/Q==} - schema-utils@4.3.0: - resolution: {integrity: sha512-Gf9qqc58SpCA/xdziiHz35F4GNIWYWZrEshUc/G/r5BnLph6xpKuLeoJoQuj5WfBIx/eQLf+hmVPYHaxJu7V2g==} - engines: {node: '>= 10.13.0'} - schema-utils@4.3.3: resolution: {integrity: sha512-eflK8wEtyOE6+hsaRVPxvUKYCpRgzLqDTb8krvAsRIwOGlHoSgYLgBXoubGgLd2fT41/OUYdb48v4k4WWHQurA==} engines: {node: '>= 10.13.0'} @@ -11489,10 +11238,6 @@ packages: resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} engines: {node: '>=8'} - string-width@5.1.2: - resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==} - engines: {node: '>=12'} - string-width@7.2.0: resolution: {integrity: sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==} engines: {node: '>=18'} @@ -11511,10 +11256,6 @@ packages: resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} engines: {node: '>=8'} - strip-ansi@7.1.0: - resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==} - engines: {node: '>=12'} - strip-ansi@7.1.2: resolution: {integrity: sha512-gmBGslpoQJtgnMAvOVqGZpEz9dyoKTCzy2nfz/n8aIFhN/jCE/rCmcxabB6jOOHV+0WNnylOxaxBQPSvcWklhA==} engines: {node: '>=12'} @@ -11577,8 +11318,8 @@ packages: svelte: ^3.55 || ^4.0.0-next.0 || ^4.0 || ^5.0.0-next.0 typescript: ^4.9.4 || ^5.0.0 - svelte@5.45.10: - resolution: {integrity: sha512-GiWXq6akkEN3zVDMQ1BVlRolmks5JkEdzD/67mvXOz6drRfuddT5JwsGZjMGSnsTRv/PjAXX8fqBcOr2g2qc/Q==} + svelte@5.46.0: + resolution: {integrity: sha512-ZhLtvroYxUxr+HQJfMZEDRsGsmU46x12RvAv/zi9584f5KOX7bUrEbhPJ7cKFmUvZTJXi/CFZUYwDC6M1FigPw==} engines: {node: '>=18'} symbol-tree@3.2.4: @@ -11607,16 +11348,12 @@ packages: resolution: {integrity: sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==} engines: {node: '>=6'} - tar@7.4.3: - resolution: {integrity: sha512-5S7Va8hKfV7W5U6g3aYxXmlPoZVAwUMy9AOKyF2fVuZa2UD3qZjg578OrLRt8PcNN1PleVaL/5/yYATNL0ICUw==} - engines: {node: '>=18'} - tar@7.5.2: resolution: {integrity: sha512-7NyxrTE4Anh8km8iEy7o0QYPs+0JKBTj5ZaqHg6B39erLg0qYXN3BijtShwbsNSvQ+LN75+KV+C4QR/f6Gwnpg==} engines: {node: '>=18'} - terser-webpack-plugin@5.3.11: - resolution: {integrity: sha512-RVCsMfuD0+cTt3EwX8hSl2Ks56EbFHWmhluwcqoPKtBnfjiT6olaq7PRIRfhyU8nnC2MrnDrBLfrD/RGE+cVXQ==} + terser-webpack-plugin@5.3.16: + resolution: {integrity: sha512-h9oBFCWrq78NyWWVcSwZarJkZ01c2AyGrzs1crmHZO3QUg9D61Wu4NPjBy69n7JqylFF5y+CsUZYmYEIZ3mR+Q==} engines: {node: '>= 10.13.0'} peerDependencies: '@swc/core': '*' @@ -11838,10 +11575,6 @@ packages: resolution: {integrity: sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==} engines: {node: '>=4'} - unicode-match-property-value-ecmascript@2.2.0: - resolution: {integrity: sha512-4IehN3V/+kkr5YeSSDDQG8QLqO26XpL2XP3GQtqwlT/QYSECAwFztxVHjlbh0+gjJ3XmNLS0zDsbgs9jWKExLg==} - engines: {node: '>=4'} - unicode-match-property-value-ecmascript@2.2.1: resolution: {integrity: sha512-JQ84qTuMg4nVkx8ga4A16a1epI9H6uTXAknqxkGF/aFfRLw1xC/Bp24HNLaZhHSkWd3+84t8iXnp1J0kYcZHhg==} engines: {node: '>=4'} @@ -11874,12 +11607,6 @@ packages: resolution: {integrity: sha512-5uKD0nqiYVzlmCRs01Fhs2BdkEgBS3SAVP6ndrBsuK42iC2+JHyxM05Rm9G8+5mkmRtzMZGY8Ct5+mliZxU/Ww==} engines: {node: '>=18.12.0'} - update-browserslist-db@1.1.2: - resolution: {integrity: sha512-PPypAm5qvlD7XMZC3BujecnaOxwhrtoFR+Dqkk5Aa/6DssiH0ibKoketaj9w8LP7Bont1rYeoV5plxD7RTEPRg==} - hasBin: true - peerDependencies: - browserslist: '>= 4.21.0' - update-browserslist-db@1.2.2: resolution: {integrity: sha512-E85pfNzMQ9jpKkA7+TJAi4TJN+tBCuWh5rUcS/sv6cFi+1q9LYDwDI5dpUL0u/73EElyQ8d3TEaeW4sPedBqYA==} hasBin: true @@ -12021,8 +11748,8 @@ packages: yaml: optional: true - vite@7.2.7: - resolution: {integrity: sha512-ITcnkFeR3+fI8P1wMgItjGrR10170d8auB4EpMLPqmx6uxElH3a/hHGQabSHKdqd4FXWO1nFIp9rRn7JQ34ACQ==} + vite@7.3.0: + resolution: {integrity: sha512-dZwN5L1VlUBewiP6H9s2+B3e3Jg96D0vzN+Ry73sOefebhYr9f94wwkMNN/9ouoU8pV1BqA1d1zGk8928cx0rg==} engines: {node: ^20.19.0 || >=22.12.0} hasBin: true peerDependencies: @@ -12077,18 +11804,18 @@ packages: vite: optional: true - vitest@4.0.15: - resolution: {integrity: sha512-n1RxDp8UJm6N0IbJLQo+yzLZ2sQCDyl1o0LeugbPWf8+8Fttp29GghsQBjYJVmWq3gBFfe9Hs1spR44vovn2wA==} + vitest@4.0.16: + resolution: {integrity: sha512-E4t7DJ9pESL6E3I8nFjPa4xGUd3PmiWDLsDztS2qXSJWfHtbQnwAWylaBvSNY48I3vr8PTqIZlyK8TE3V3CA4Q==} engines: {node: ^20.0.0 || ^22.0.0 || >=24.0.0} hasBin: true peerDependencies: '@edge-runtime/vm': '*' '@opentelemetry/api': ^1.9.0 '@types/node': ^20.0.0 || ^22.0.0 || >=24.0.0 - '@vitest/browser-playwright': 4.0.15 - '@vitest/browser-preview': 4.0.15 - '@vitest/browser-webdriverio': 4.0.15 - '@vitest/ui': 4.0.15 + '@vitest/browser-playwright': 4.0.16 + '@vitest/browser-preview': 4.0.16 + '@vitest/browser-webdriverio': 4.0.16 + '@vitest/ui': 4.0.16 happy-dom: '*' jsdom: '*' peerDependenciesMeta: @@ -12136,8 +11863,8 @@ packages: peerDependencies: typescript: '>=5.0.0' - vue@3.5.25: - resolution: {integrity: sha512-YLVdgv2K13WJ6n+kD5owehKtEXwdwXuj2TTyJMsO7pSeKw2bfRNZGjhB7YzrpbMYj5b5QsUebHpOqR3R3ziy/g==} + vue@3.5.26: + resolution: {integrity: sha512-SJ/NTccVyAoNUJmkM9KUqPcYlY+u8OVL1X5EW9RIs3ch5H2uERxyyIUI4MRxVCSOiEcupX9xNGde1tL9ZKpimA==} peerDependencies: typescript: '*' peerDependenciesMeta: @@ -12195,10 +11922,6 @@ packages: resolution: {integrity: sha512-hXXvrjtx2PLYx4qruKl+kyRSLc52V+cCvMxRjmKwoA+CBbbF5GfIBtR6kCvl0fYGqTUPKB+1ktVmTHqMOzgCBg==} engines: {node: '>=18.0.0'} - webpack-sources@3.2.3: - resolution: {integrity: sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==} - engines: {node: '>=10.13.0'} - webpack-sources@3.3.3: resolution: {integrity: sha512-yd1RBzSGanHkitROoPFd6qsrxt+oFhg/129YzheDGqeustzX0vTZJZsSsQjVQC4yzBQ56K55XU8gaNCtIzOnTg==} engines: {node: '>=10.13.0'} @@ -12216,8 +11939,8 @@ packages: webpack-virtual-modules@0.6.2: resolution: {integrity: sha512-66/V2i5hQanC51vBQKPH4aI8NMAcBW59FVBs+rC7eGHupMyfn34q7rZIE+ETlJ+XTevqfUhVVBgSUNSW2flEUQ==} - webpack@5.102.1: - resolution: {integrity: sha512-7h/weGm9d/ywQ6qzJ+Xy+r9n/3qgp/thalBbpOi5i223dPXKi04IBtqPN9nTd+jBc7QKfvDbaBnFipYp4sJAUQ==} + webpack@5.104.0: + resolution: {integrity: sha512-5DeICTX8BVgNp6afSPYXAFjskIgWGlygQH58bcozPOXgo2r/6xx39Y1+cULZ3gTxUYQP88jmwLj2anu4Xaq84g==} engines: {node: '>=10.13.0'} hasBin: true peerDependencies: @@ -12285,10 +12008,6 @@ packages: resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} engines: {node: '>=10'} - wrap-ansi@8.1.0: - resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==} - engines: {node: '>=12'} - wrap-ansi@9.0.0: resolution: {integrity: sha512-G8ura3S+3Z2G+mkgNRq8dqaFZAuxfsxpBB8OCTGRTCtp+l/v9nbFNmCUP1BZMts3G1142MsZfn6eeUKrr4PD1Q==} engines: {node: '>=18'} @@ -12308,18 +12027,6 @@ packages: utf-8-validate: optional: true - ws@8.18.0: - resolution: {integrity: sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==} - engines: {node: '>=10.0.0'} - peerDependencies: - bufferutil: ^4.0.1 - utf-8-validate: '>=5.0.2' - peerDependenciesMeta: - bufferutil: - optional: true - utf-8-validate: - optional: true - ws@8.18.3: resolution: {integrity: sha512-PEIGCY5tSlUt50cqyMXfCzX+oOPqN0vuGqWzbcJ2xvnkzkq46oOpz7dQaTDBdfICb4N14+GARUDw2XV2N4tvzg==} engines: {node: '>=10.0.0'} @@ -12426,6 +12133,12 @@ packages: peerDependencies: zod: ^3.25 || ^4 + zod-validation-error@3.5.4: + resolution: {integrity: sha512-+hEiRIiPobgyuFlEojnqjJnhFvg4r/i3cqgcm67eehZf/WBaK3g6cD02YU9mtdVxZjv8CzCA9n/Rhrs3yAAvAw==} + engines: {node: '>=18.0.0'} + peerDependencies: + zod: ^3.24.4 + zod-validation-error@4.0.2: resolution: {integrity: sha512-Q6/nZLe6jxuU80qb/4uJ4t5v2VEZ44lzQjPDhYJNztRQ4wyWc6VF3D3Kb/fAuPetZQnhS3hnajCf9CsWesghLQ==} engines: {node: '>=18.0.0'} @@ -12533,37 +12246,37 @@ snapshots: '@ampproject/remapping@2.3.0': dependencies: - '@jridgewell/gen-mapping': 0.3.8 - '@jridgewell/trace-mapping': 0.3.25 + '@jridgewell/gen-mapping': 0.3.13 + '@jridgewell/trace-mapping': 0.3.31 - '@analogjs/vite-plugin-angular@2.1.3(@angular-devkit/build-angular@21.0.3(yir27t2ldgqwoebr2mjmjasxwy))(@angular/build@21.0.3(elcjkga7f7fsk5y3dltjzora5i))': + '@analogjs/vite-plugin-angular@2.2.0(@angular-devkit/build-angular@21.0.4(phy7lfjktaw4enyqegwfhvlium))(@angular/build@21.0.4(e3rtbb43dph44bvayrqojrmlgq))': dependencies: ts-morph: 21.0.1 optionalDependencies: - '@angular-devkit/build-angular': 21.0.3(yir27t2ldgqwoebr2mjmjasxwy) - '@angular/build': 21.0.3(elcjkga7f7fsk5y3dltjzora5i) + '@angular-devkit/build-angular': 21.0.4(phy7lfjktaw4enyqegwfhvlium) + '@angular/build': 21.0.4(e3rtbb43dph44bvayrqojrmlgq) - '@analogjs/vitest-angular@2.1.3(@analogjs/vite-plugin-angular@2.1.3(@angular-devkit/build-angular@21.0.3(yir27t2ldgqwoebr2mjmjasxwy))(@angular/build@21.0.3(elcjkga7f7fsk5y3dltjzora5i)))(@angular-devkit/architect@0.2100.3(chokidar@4.0.3))(vitest@4.0.15(@types/node@25.0.1)(jiti@2.6.1)(jsdom@27.3.0(postcss@8.5.6))(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1))': + '@analogjs/vitest-angular@2.2.0(@analogjs/vite-plugin-angular@2.2.0(@angular-devkit/build-angular@21.0.4(phy7lfjktaw4enyqegwfhvlium))(@angular/build@21.0.4(e3rtbb43dph44bvayrqojrmlgq)))(@angular-devkit/architect@0.2100.4(chokidar@4.0.3))(vitest@4.0.16(@types/node@25.0.3)(jiti@2.6.1)(jsdom@27.3.0(postcss@8.5.6))(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1))': dependencies: - '@analogjs/vite-plugin-angular': 2.1.3(@angular-devkit/build-angular@21.0.3(yir27t2ldgqwoebr2mjmjasxwy))(@angular/build@21.0.3(elcjkga7f7fsk5y3dltjzora5i)) - '@angular-devkit/architect': 0.2100.3(chokidar@4.0.3) - vitest: 4.0.15(@types/node@25.0.1)(jiti@2.6.1)(jsdom@27.3.0(postcss@8.5.6))(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1) + '@analogjs/vite-plugin-angular': 2.2.0(@angular-devkit/build-angular@21.0.4(phy7lfjktaw4enyqegwfhvlium))(@angular/build@21.0.4(e3rtbb43dph44bvayrqojrmlgq)) + '@angular-devkit/architect': 0.2100.4(chokidar@4.0.3) + vitest: 4.0.16(@types/node@25.0.3)(jiti@2.6.1)(jsdom@27.3.0(postcss@8.5.6))(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1) - '@angular-devkit/architect@0.2100.3(chokidar@4.0.3)': + '@angular-devkit/architect@0.2100.4(chokidar@4.0.3)': dependencies: - '@angular-devkit/core': 21.0.3(chokidar@4.0.3) + '@angular-devkit/core': 21.0.4(chokidar@4.0.3) rxjs: 7.8.2 transitivePeerDependencies: - chokidar - '@angular-devkit/build-angular@21.0.3(yir27t2ldgqwoebr2mjmjasxwy)': + '@angular-devkit/build-angular@21.0.4(phy7lfjktaw4enyqegwfhvlium)': dependencies: '@ampproject/remapping': 2.3.0 - '@angular-devkit/architect': 0.2100.3(chokidar@4.0.3) - '@angular-devkit/build-webpack': 0.2100.3(chokidar@4.0.3)(webpack-dev-server@5.2.2(webpack@5.102.1(esbuild@0.26.0)))(webpack@5.102.1(esbuild@0.26.0)) - '@angular-devkit/core': 21.0.3(chokidar@4.0.3) - '@angular/build': 21.0.3(elcjkga7f7fsk5y3dltjzora5i) - '@angular/compiler-cli': 21.0.5(@angular/compiler@21.0.5)(typescript@5.9.3) + '@angular-devkit/architect': 0.2100.4(chokidar@4.0.3) + '@angular-devkit/build-webpack': 0.2100.4(chokidar@4.0.3)(webpack-dev-server@5.2.2(webpack@5.104.0(esbuild@0.26.0)))(webpack@5.104.0(esbuild@0.26.0)) + '@angular-devkit/core': 21.0.4(chokidar@4.0.3) + '@angular/build': 21.0.4(e3rtbb43dph44bvayrqojrmlgq) + '@angular/compiler-cli': 21.0.6(@angular/compiler@21.0.6)(typescript@5.9.3) '@babel/core': 7.28.4 '@babel/generator': 7.28.3 '@babel/helper-annotate-as-pure': 7.27.3 @@ -12574,54 +12287,54 @@ snapshots: '@babel/preset-env': 7.28.3(@babel/core@7.28.4) '@babel/runtime': 7.28.4 '@discoveryjs/json-ext': 0.6.3 - '@ngtools/webpack': 21.0.3(@angular/compiler-cli@21.0.5(@angular/compiler@21.0.5)(typescript@5.9.3))(typescript@5.9.3)(webpack@5.102.1(esbuild@0.26.0)) + '@ngtools/webpack': 21.0.4(@angular/compiler-cli@21.0.6(@angular/compiler@21.0.6)(typescript@5.9.3))(typescript@5.9.3)(webpack@5.104.0(esbuild@0.26.0)) ansi-colors: 4.1.3 autoprefixer: 10.4.21(postcss@8.5.6) - babel-loader: 10.0.0(@babel/core@7.28.4)(webpack@5.102.1(esbuild@0.26.0)) + babel-loader: 10.0.0(@babel/core@7.28.4)(webpack@5.104.0(esbuild@0.26.0)) browserslist: 4.28.1 - copy-webpack-plugin: 13.0.1(webpack@5.102.1(esbuild@0.26.0)) - css-loader: 7.1.2(webpack@5.102.1(esbuild@0.26.0)) + copy-webpack-plugin: 13.0.1(webpack@5.104.0(esbuild@0.26.0)) + css-loader: 7.1.2(webpack@5.104.0(esbuild@0.26.0)) esbuild-wasm: 0.26.0 http-proxy-middleware: 3.0.5 istanbul-lib-instrument: 6.0.3 jsonc-parser: 3.3.1 karma-source-map-support: 1.4.0 less: 4.4.2 - less-loader: 12.3.0(less@4.4.2)(webpack@5.102.1(esbuild@0.26.0)) - license-webpack-plugin: 4.0.2(webpack@5.102.1(esbuild@0.26.0)) + less-loader: 12.3.0(less@4.4.2)(webpack@5.104.0(esbuild@0.26.0)) + license-webpack-plugin: 4.0.2(webpack@5.104.0(esbuild@0.26.0)) loader-utils: 3.3.1 - mini-css-extract-plugin: 2.9.4(webpack@5.102.1(esbuild@0.26.0)) + mini-css-extract-plugin: 2.9.4(webpack@5.104.0(esbuild@0.26.0)) open: 10.2.0 ora: 9.0.0 picomatch: 4.0.3 piscina: 5.1.3 postcss: 8.5.6 - postcss-loader: 8.2.0(postcss@8.5.6)(typescript@5.9.3)(webpack@5.102.1(esbuild@0.26.0)) + postcss-loader: 8.2.0(postcss@8.5.6)(typescript@5.9.3)(webpack@5.104.0(esbuild@0.26.0)) resolve-url-loader: 5.0.0 rxjs: 7.8.2 sass: 1.93.2 - sass-loader: 16.0.5(sass@1.93.2)(webpack@5.102.1(esbuild@0.26.0)) + sass-loader: 16.0.5(sass@1.93.2)(webpack@5.104.0(esbuild@0.26.0)) semver: 7.7.3 - source-map-loader: 5.0.0(webpack@5.102.1(esbuild@0.26.0)) + source-map-loader: 5.0.0(webpack@5.104.0(esbuild@0.26.0)) source-map-support: 0.5.21 terser: 5.44.0 tinyglobby: 0.2.15 tree-kill: 1.2.2 tslib: 2.8.1 typescript: 5.9.3 - webpack: 5.102.1(esbuild@0.27.1) - webpack-dev-middleware: 7.4.5(webpack@5.102.1(esbuild@0.26.0)) - webpack-dev-server: 5.2.2(webpack@5.102.1(esbuild@0.26.0)) + webpack: 5.104.0(esbuild@0.27.1) + webpack-dev-middleware: 7.4.5(webpack@5.104.0(esbuild@0.26.0)) + webpack-dev-server: 5.2.2(webpack@5.104.0(esbuild@0.26.0)) webpack-merge: 6.0.1 - webpack-subresource-integrity: 5.1.0(webpack@5.102.1(esbuild@0.26.0)) + webpack-subresource-integrity: 5.1.0(webpack@5.104.0(esbuild@0.26.0)) optionalDependencies: - '@angular/core': 21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0) - '@angular/platform-browser': 21.0.5(@angular/animations@21.0.5(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0)))(@angular/common@21.0.5(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2))(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0)) - '@angular/platform-server': 21.0.5(@angular/common@21.0.5(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2))(@angular/compiler@21.0.5)(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0))(@angular/platform-browser@21.0.5(@angular/animations@21.0.5(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0)))(@angular/common@21.0.5(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2))(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0)))(rxjs@7.8.2) - '@angular/ssr': 21.0.3(a7zg6jniaba33zmzoztiz6ir7e) + '@angular/core': 21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0) + '@angular/platform-browser': 21.0.6(@angular/animations@21.0.6(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0)))(@angular/common@21.0.6(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2))(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0)) + '@angular/platform-server': 21.0.6(@angular/common@21.0.6(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2))(@angular/compiler@21.0.6)(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0))(@angular/platform-browser@21.0.6(@angular/animations@21.0.6(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0)))(@angular/common@21.0.6(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2))(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0)))(rxjs@7.8.2) + '@angular/ssr': 21.0.4(uptqe2xgtzvx3kutorqglogmxa) esbuild: 0.26.0 karma: 6.4.4 - ng-packagr: 21.0.0(@angular/compiler-cli@21.0.5(@angular/compiler@21.0.5)(typescript@5.9.3))(tailwindcss@4.1.18)(tslib@2.8.1)(typescript@5.9.3) + ng-packagr: 21.0.1(@angular/compiler-cli@21.0.6(@angular/compiler@21.0.6)(typescript@5.9.3))(tailwindcss@4.1.18)(tslib@2.8.1)(typescript@5.9.3) tailwindcss: 4.1.18 transitivePeerDependencies: - '@angular/compiler' @@ -12646,16 +12359,16 @@ snapshots: - webpack-cli - yaml - '@angular-devkit/build-webpack@0.2100.3(chokidar@4.0.3)(webpack-dev-server@5.2.2(webpack@5.102.1(esbuild@0.26.0)))(webpack@5.102.1(esbuild@0.26.0))': + '@angular-devkit/build-webpack@0.2100.4(chokidar@4.0.3)(webpack-dev-server@5.2.2(webpack@5.104.0(esbuild@0.26.0)))(webpack@5.104.0(esbuild@0.26.0))': dependencies: - '@angular-devkit/architect': 0.2100.3(chokidar@4.0.3) + '@angular-devkit/architect': 0.2100.4(chokidar@4.0.3) rxjs: 7.8.2 - webpack: 5.102.1(esbuild@0.27.1) - webpack-dev-server: 5.2.2(webpack@5.102.1(esbuild@0.26.0)) + webpack: 5.104.0(esbuild@0.27.1) + webpack-dev-server: 5.2.2(webpack@5.104.0(esbuild@0.26.0)) transitivePeerDependencies: - chokidar - '@angular-devkit/core@21.0.3(chokidar@4.0.3)': + '@angular-devkit/core@21.0.4(chokidar@4.0.3)': dependencies: ajv: 8.17.1 ajv-formats: 3.0.1(ajv@8.17.1) @@ -12666,9 +12379,9 @@ snapshots: optionalDependencies: chokidar: 4.0.3 - '@angular-devkit/schematics@21.0.3(chokidar@4.0.3)': + '@angular-devkit/schematics@21.0.4(chokidar@4.0.3)': dependencies: - '@angular-devkit/core': 21.0.3(chokidar@4.0.3) + '@angular-devkit/core': 21.0.4(chokidar@4.0.3) jsonc-parser: 3.3.1 magic-string: 0.30.19 ora: 9.0.0 @@ -12676,22 +12389,22 @@ snapshots: transitivePeerDependencies: - chokidar - '@angular/animations@21.0.5(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0))': + '@angular/animations@21.0.6(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0))': dependencies: - '@angular/core': 21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0) + '@angular/core': 21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0) tslib: 2.8.1 - '@angular/build@21.0.3(elcjkga7f7fsk5y3dltjzora5i)': + '@angular/build@21.0.4(e3rtbb43dph44bvayrqojrmlgq)': dependencies: '@ampproject/remapping': 2.3.0 - '@angular-devkit/architect': 0.2100.3(chokidar@4.0.3) - '@angular/compiler': 21.0.5 - '@angular/compiler-cli': 21.0.5(@angular/compiler@21.0.5)(typescript@5.9.3) + '@angular-devkit/architect': 0.2100.4(chokidar@4.0.3) + '@angular/compiler': 21.0.6 + '@angular/compiler-cli': 21.0.6(@angular/compiler@21.0.6)(typescript@5.9.3) '@babel/core': 7.28.4 '@babel/helper-annotate-as-pure': 7.27.3 '@babel/helper-split-export-declaration': 7.24.7 - '@inquirer/confirm': 5.1.19(@types/node@25.0.1) - '@vitejs/plugin-basic-ssl': 2.1.0(vite@7.2.2(@types/node@25.0.1)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1)) + '@inquirer/confirm': 5.1.19(@types/node@25.0.3) + '@vitejs/plugin-basic-ssl': 2.1.0(vite@7.2.2(@types/node@25.0.3)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1)) beasties: 0.3.5 browserslist: 4.28.1 esbuild: 0.26.0 @@ -12712,20 +12425,20 @@ snapshots: tslib: 2.8.1 typescript: 5.9.3 undici: 7.16.0 - vite: 7.2.2(@types/node@25.0.1)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1) + vite: 7.2.2(@types/node@25.0.3)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1) watchpack: 2.4.4 optionalDependencies: - '@angular/core': 21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0) - '@angular/platform-browser': 21.0.5(@angular/animations@21.0.5(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0)))(@angular/common@21.0.5(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2))(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0)) - '@angular/platform-server': 21.0.5(@angular/common@21.0.5(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2))(@angular/compiler@21.0.5)(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0))(@angular/platform-browser@21.0.5(@angular/animations@21.0.5(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0)))(@angular/common@21.0.5(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2))(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0)))(rxjs@7.8.2) - '@angular/ssr': 21.0.3(a7zg6jniaba33zmzoztiz6ir7e) + '@angular/core': 21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0) + '@angular/platform-browser': 21.0.6(@angular/animations@21.0.6(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0)))(@angular/common@21.0.6(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2))(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0)) + '@angular/platform-server': 21.0.6(@angular/common@21.0.6(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2))(@angular/compiler@21.0.6)(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0))(@angular/platform-browser@21.0.6(@angular/animations@21.0.6(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0)))(@angular/common@21.0.6(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2))(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0)))(rxjs@7.8.2) + '@angular/ssr': 21.0.4(uptqe2xgtzvx3kutorqglogmxa) karma: 6.4.4 less: 4.4.2 lmdb: 3.4.3 - ng-packagr: 21.0.0(@angular/compiler-cli@21.0.5(@angular/compiler@21.0.5)(typescript@5.9.3))(tailwindcss@4.1.18)(tslib@2.8.1)(typescript@5.9.3) + ng-packagr: 21.0.1(@angular/compiler-cli@21.0.6(@angular/compiler@21.0.6)(typescript@5.9.3))(tailwindcss@4.1.18)(tslib@2.8.1)(typescript@5.9.3) postcss: 8.5.6 tailwindcss: 4.1.18 - vitest: 4.0.15(@types/node@25.0.1)(jiti@2.6.1)(jsdom@27.3.0(postcss@8.5.6))(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1) + vitest: 4.0.16(@types/node@25.0.3)(jiti@2.6.1)(jsdom@27.3.0(postcss@8.5.6))(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1) transitivePeerDependencies: - '@types/node' - chokidar @@ -12739,23 +12452,23 @@ snapshots: - tsx - yaml - '@angular/cdk@21.0.3(@angular/common@21.0.5(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2))(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2)': + '@angular/cdk@21.0.5(@angular/common@21.0.6(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2))(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2)': dependencies: - '@angular/common': 21.0.5(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2) - '@angular/core': 21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0) + '@angular/common': 21.0.6(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2) + '@angular/core': 21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0) parse5: 8.0.0 rxjs: 7.8.2 tslib: 2.8.1 - '@angular/cli@21.0.3(@types/node@25.0.1)(chokidar@4.0.3)': + '@angular/cli@21.0.4(@types/node@25.0.3)(chokidar@4.0.3)': dependencies: - '@angular-devkit/architect': 0.2100.3(chokidar@4.0.3) - '@angular-devkit/core': 21.0.3(chokidar@4.0.3) - '@angular-devkit/schematics': 21.0.3(chokidar@4.0.3) - '@inquirer/prompts': 7.9.0(@types/node@25.0.1) - '@listr2/prompt-adapter-inquirer': 3.0.5(@inquirer/prompts@7.9.0(@types/node@25.0.1))(@types/node@25.0.1)(listr2@9.0.5) + '@angular-devkit/architect': 0.2100.4(chokidar@4.0.3) + '@angular-devkit/core': 21.0.4(chokidar@4.0.3) + '@angular-devkit/schematics': 21.0.4(chokidar@4.0.3) + '@inquirer/prompts': 7.9.0(@types/node@25.0.3) + '@listr2/prompt-adapter-inquirer': 3.0.5(@inquirer/prompts@7.9.0(@types/node@25.0.3))(@types/node@25.0.3)(listr2@9.0.5) '@modelcontextprotocol/sdk': 1.24.0(zod@4.1.13) - '@schematics/angular': 21.0.3(chokidar@4.0.3) + '@schematics/angular': 21.0.4(chokidar@4.0.3) '@yarnpkg/lockfile': 1.1.0 algoliasearch: 5.40.1 ini: 5.0.0 @@ -12774,21 +12487,21 @@ snapshots: - chokidar - supports-color - '@angular/common@21.0.5(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2)': + '@angular/common@21.0.6(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2)': dependencies: - '@angular/core': 21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0) + '@angular/core': 21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0) rxjs: 7.8.2 tslib: 2.8.1 - '@angular/compiler-cli@21.0.5(@angular/compiler@21.0.5)(typescript@5.9.3)': + '@angular/compiler-cli@21.0.6(@angular/compiler@21.0.6)(typescript@5.9.3)': dependencies: - '@angular/compiler': 21.0.5 + '@angular/compiler': 21.0.6 '@babel/core': 7.28.4 - '@jridgewell/sourcemap-codec': 1.5.0 + '@jridgewell/sourcemap-codec': 1.5.5 chokidar: 4.0.3 convert-source-map: 1.9.0 reflect-metadata: 0.2.2 - semver: 7.6.3 + semver: 7.7.3 tslib: 2.8.1 yargs: 18.0.0 optionalDependencies: @@ -12796,69 +12509,69 @@ snapshots: transitivePeerDependencies: - supports-color - '@angular/compiler@21.0.5': + '@angular/compiler@21.0.6': dependencies: tslib: 2.8.1 - '@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0)': + '@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0)': dependencies: rxjs: 7.8.2 tslib: 2.8.1 optionalDependencies: - '@angular/compiler': 21.0.5 + '@angular/compiler': 21.0.6 zone.js: 0.16.0 - '@angular/forms@21.0.5(@angular/common@21.0.5(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2))(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0))(@angular/platform-browser@21.0.5(@angular/animations@21.0.5(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0)))(@angular/common@21.0.5(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2))(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0)))(@standard-schema/spec@1.0.0)(rxjs@7.8.2)': + '@angular/forms@21.0.6(@angular/common@21.0.6(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2))(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0))(@angular/platform-browser@21.0.6(@angular/animations@21.0.6(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0)))(@angular/common@21.0.6(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2))(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0)))(rxjs@7.8.2)': dependencies: - '@angular/common': 21.0.5(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2) - '@angular/core': 21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0) - '@angular/platform-browser': 21.0.5(@angular/animations@21.0.5(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0)))(@angular/common@21.0.5(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2))(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0)) + '@angular/common': 21.0.6(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2) + '@angular/core': 21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0) + '@angular/platform-browser': 21.0.6(@angular/animations@21.0.6(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0)))(@angular/common@21.0.6(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2))(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0)) '@standard-schema/spec': 1.0.0 rxjs: 7.8.2 tslib: 2.8.1 - '@angular/platform-browser-dynamic@21.0.5(@angular/common@21.0.5(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2))(@angular/compiler@21.0.5)(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0))(@angular/platform-browser@21.0.5(@angular/animations@21.0.5(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0)))(@angular/common@21.0.5(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2))(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0)))': + '@angular/platform-browser-dynamic@21.0.6(@angular/common@21.0.6(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2))(@angular/compiler@21.0.6)(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0))(@angular/platform-browser@21.0.6(@angular/animations@21.0.6(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0)))(@angular/common@21.0.6(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2))(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0)))': dependencies: - '@angular/common': 21.0.5(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2) - '@angular/compiler': 21.0.5 - '@angular/core': 21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0) - '@angular/platform-browser': 21.0.5(@angular/animations@21.0.5(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0)))(@angular/common@21.0.5(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2))(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0)) + '@angular/common': 21.0.6(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2) + '@angular/compiler': 21.0.6 + '@angular/core': 21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0) + '@angular/platform-browser': 21.0.6(@angular/animations@21.0.6(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0)))(@angular/common@21.0.6(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2))(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0)) tslib: 2.8.1 - '@angular/platform-browser@21.0.5(@angular/animations@21.0.5(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0)))(@angular/common@21.0.5(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2))(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0))': + '@angular/platform-browser@21.0.6(@angular/animations@21.0.6(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0)))(@angular/common@21.0.6(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2))(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0))': dependencies: - '@angular/common': 21.0.5(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2) - '@angular/core': 21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0) + '@angular/common': 21.0.6(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2) + '@angular/core': 21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0) tslib: 2.8.1 optionalDependencies: - '@angular/animations': 21.0.5(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0)) + '@angular/animations': 21.0.6(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0)) - '@angular/platform-server@21.0.5(@angular/common@21.0.5(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2))(@angular/compiler@21.0.5)(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0))(@angular/platform-browser@21.0.5(@angular/animations@21.0.5(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0)))(@angular/common@21.0.5(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2))(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0)))(rxjs@7.8.2)': + '@angular/platform-server@21.0.6(@angular/common@21.0.6(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2))(@angular/compiler@21.0.6)(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0))(@angular/platform-browser@21.0.6(@angular/animations@21.0.6(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0)))(@angular/common@21.0.6(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2))(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0)))(rxjs@7.8.2)': dependencies: - '@angular/common': 21.0.5(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2) - '@angular/compiler': 21.0.5 - '@angular/core': 21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0) - '@angular/platform-browser': 21.0.5(@angular/animations@21.0.5(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0)))(@angular/common@21.0.5(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2))(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0)) + '@angular/common': 21.0.6(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2) + '@angular/compiler': 21.0.6 + '@angular/core': 21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0) + '@angular/platform-browser': 21.0.6(@angular/animations@21.0.6(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0)))(@angular/common@21.0.6(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2))(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0)) rxjs: 7.8.2 tslib: 2.8.1 xhr2: 0.2.1 - '@angular/router@21.0.5(@angular/common@21.0.5(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2))(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0))(@angular/platform-browser@21.0.5(@angular/animations@21.0.5(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0)))(@angular/common@21.0.5(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2))(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0)))(rxjs@7.8.2)': + '@angular/router@21.0.6(@angular/common@21.0.6(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2))(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0))(@angular/platform-browser@21.0.6(@angular/animations@21.0.6(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0)))(@angular/common@21.0.6(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2))(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0)))(rxjs@7.8.2)': dependencies: - '@angular/common': 21.0.5(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2) - '@angular/core': 21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0) - '@angular/platform-browser': 21.0.5(@angular/animations@21.0.5(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0)))(@angular/common@21.0.5(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2))(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0)) + '@angular/common': 21.0.6(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2) + '@angular/core': 21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0) + '@angular/platform-browser': 21.0.6(@angular/animations@21.0.6(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0)))(@angular/common@21.0.6(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2))(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0)) rxjs: 7.8.2 tslib: 2.8.1 - '@angular/ssr@21.0.3(a7zg6jniaba33zmzoztiz6ir7e)': + '@angular/ssr@21.0.4(uptqe2xgtzvx3kutorqglogmxa)': dependencies: - '@angular/common': 21.0.5(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2) - '@angular/core': 21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0) - '@angular/router': 21.0.5(@angular/common@21.0.5(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2))(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0))(@angular/platform-browser@21.0.5(@angular/animations@21.0.5(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0)))(@angular/common@21.0.5(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2))(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0)))(rxjs@7.8.2) + '@angular/common': 21.0.6(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2) + '@angular/core': 21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0) + '@angular/router': 21.0.6(@angular/common@21.0.6(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2))(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0))(@angular/platform-browser@21.0.6(@angular/animations@21.0.6(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0)))(@angular/common@21.0.6(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2))(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0)))(rxjs@7.8.2) tslib: 2.8.1 optionalDependencies: - '@angular/platform-server': 21.0.5(@angular/common@21.0.5(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2))(@angular/compiler@21.0.5)(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0))(@angular/platform-browser@21.0.5(@angular/animations@21.0.5(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0)))(@angular/common@21.0.5(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2))(@angular/core@21.0.5(@angular/compiler@21.0.5)(rxjs@7.8.2)(zone.js@0.16.0)))(rxjs@7.8.2) + '@angular/platform-server': 21.0.6(@angular/common@21.0.6(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2))(@angular/compiler@21.0.6)(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0))(@angular/platform-browser@21.0.6(@angular/animations@21.0.6(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0)))(@angular/common@21.0.6(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0))(rxjs@7.8.2))(@angular/core@21.0.6(@angular/compiler@21.0.6)(rxjs@7.8.2)(zone.js@0.16.0)))(rxjs@7.8.2) '@asamuzakjp/css-color@4.1.0': dependencies: @@ -12927,7 +12640,7 @@ snapshots: '@babel/types': 7.28.5 '@jridgewell/remapping': 2.3.5 convert-source-map: 2.0.0 - debug: 4.4.0 + debug: 4.4.3 gensync: 1.0.0-beta.2 json5: 2.2.3 semver: 6.3.1 @@ -12956,7 +12669,7 @@ snapshots: '@babel/generator@7.26.5': dependencies: - '@babel/parser': 7.26.7 + '@babel/parser': 7.28.5 '@babel/types': 7.26.7 '@jridgewell/gen-mapping': 0.3.8 '@jridgewell/trace-mapping': 0.3.25 @@ -12990,7 +12703,7 @@ snapshots: dependencies: '@babel/compat-data': 7.26.5 '@babel/helper-validator-option': 7.25.9 - browserslist: 4.24.4 + browserslist: 4.28.1 lru-cache: 5.1.1 semver: 6.3.1 @@ -13028,13 +12741,6 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/helper-create-regexp-features-plugin@7.26.3(@babel/core@7.28.4)': - dependencies: - '@babel/core': 7.28.4 - '@babel/helper-annotate-as-pure': 7.27.3 - regexpu-core: 6.2.0 - semver: 6.3.1 - '@babel/helper-create-regexp-features-plugin@7.28.5(@babel/core@7.28.4)': dependencies: '@babel/core': 7.28.4 @@ -13049,7 +12755,7 @@ snapshots: '@babel/helper-plugin-utils': 7.27.1 debug: 4.4.3 lodash.debounce: 4.0.8 - resolve: 1.22.10 + resolve: 1.22.11 transitivePeerDependencies: - supports-color @@ -13064,7 +12770,7 @@ snapshots: '@babel/helper-module-imports@7.18.6': dependencies: - '@babel/types': 7.26.7 + '@babel/types': 7.28.5 '@babel/helper-module-imports@7.25.9': dependencies: @@ -13151,7 +12857,7 @@ snapshots: '@babel/helper-split-export-declaration@7.24.7': dependencies: - '@babel/types': 7.26.7 + '@babel/types': 7.28.5 '@babel/helper-string-parser@7.25.9': {} @@ -13183,10 +12889,6 @@ snapshots: '@babel/template': 7.27.2 '@babel/types': 7.28.5 - '@babel/parser@7.26.3': - dependencies: - '@babel/types': 7.26.3 - '@babel/parser@7.26.7': dependencies: '@babel/types': 7.26.7 @@ -13230,6 +12932,14 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/plugin-proposal-private-methods@7.18.6(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-create-class-features-plugin': 7.28.5(@babel/core@7.28.5) + '@babel/helper-plugin-utils': 7.27.1 + transitivePeerDependencies: + - supports-color + '@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.28.4)': dependencies: '@babel/core': 7.28.4 @@ -13267,7 +12977,7 @@ snapshots: '@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.28.4)': dependencies: '@babel/core': 7.28.4 - '@babel/helper-create-regexp-features-plugin': 7.26.3(@babel/core@7.28.4) + '@babel/helper-create-regexp-features-plugin': 7.28.5(@babel/core@7.28.4) '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-transform-arrow-functions@7.27.1(@babel/core@7.28.4)': @@ -13742,7 +13452,7 @@ snapshots: dependencies: '@babel/core': 7.28.4 '@babel/helper-plugin-utils': 7.27.1 - '@babel/types': 7.26.7 + '@babel/types': 7.28.5 esutils: 2.0.3 '@babel/preset-typescript@7.28.5(@babel/core@7.28.5)': @@ -13761,7 +13471,7 @@ snapshots: '@babel/template@7.25.9': dependencies: '@babel/code-frame': 7.26.2 - '@babel/parser': 7.26.3 + '@babel/parser': 7.28.5 '@babel/types': 7.26.3 '@babel/template@7.27.2': @@ -13773,10 +13483,10 @@ snapshots: '@babel/traverse@7.26.4': dependencies: '@babel/code-frame': 7.26.2 - '@babel/generator': 7.26.5 - '@babel/parser': 7.26.3 + '@babel/generator': 7.28.5 + '@babel/parser': 7.28.5 '@babel/template': 7.25.9 - '@babel/types': 7.26.3 + '@babel/types': 7.28.5 debug: 4.4.0 globals: 11.12.0 transitivePeerDependencies: @@ -13785,8 +13495,8 @@ snapshots: '@babel/traverse@7.26.7': dependencies: '@babel/code-frame': 7.26.2 - '@babel/generator': 7.26.5 - '@babel/parser': 7.26.7 + '@babel/generator': 7.28.5 + '@babel/parser': 7.28.5 '@babel/template': 7.25.9 '@babel/types': 7.26.7 debug: 4.4.0 @@ -13894,34 +13604,18 @@ snapshots: react: 19.2.3 tslib: 2.8.1 - '@emnapi/core@1.3.1': - dependencies: - '@emnapi/wasi-threads': 1.0.1 - tslib: 2.8.1 - '@emnapi/core@1.7.1': dependencies: '@emnapi/wasi-threads': 1.1.0 tslib: 2.8.1 - optional: true - - '@emnapi/runtime@1.3.1': - dependencies: - tslib: 2.8.1 '@emnapi/runtime@1.7.1': dependencies: tslib: 2.8.1 - optional: true - - '@emnapi/wasi-threads@1.0.1': - dependencies: - tslib: 2.8.1 '@emnapi/wasi-threads@1.1.0': dependencies: tslib: 2.8.1 - optional: true '@esbuild/aix-ppc64@0.23.1': optional: true @@ -14229,48 +13923,48 @@ snapshots: '@esbuild/win32-x64@0.27.1': optional: true - '@eslint-community/eslint-utils@4.4.0(eslint@9.39.1(jiti@2.6.1))': + '@eslint-community/eslint-utils@4.4.0(eslint@9.39.2(jiti@2.6.1))': dependencies: - eslint: 9.39.1(jiti@2.6.1) + eslint: 9.39.2(jiti@2.6.1) eslint-visitor-keys: 3.4.3 - '@eslint-community/eslint-utils@4.4.1(eslint@9.39.1(jiti@2.6.1))': + '@eslint-community/eslint-utils@4.4.1(eslint@9.39.2(jiti@2.6.1))': dependencies: - eslint: 9.39.1(jiti@2.6.1) + eslint: 9.39.2(jiti@2.6.1) eslint-visitor-keys: 3.4.3 - '@eslint-community/eslint-utils@4.9.0(eslint@9.39.1(jiti@2.6.1))': + '@eslint-community/eslint-utils@4.9.0(eslint@9.39.2(jiti@2.6.1))': dependencies: - eslint: 9.39.1(jiti@2.6.1) + eslint: 9.39.2(jiti@2.6.1) eslint-visitor-keys: 3.4.3 '@eslint-community/regexpp@4.11.0': {} '@eslint-community/regexpp@4.12.1': {} - '@eslint-react/ast@2.3.13(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3)': + '@eslint-react/ast@2.3.13(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3)': dependencies: '@eslint-react/eff': 2.3.13 '@typescript-eslint/types': 8.49.0 '@typescript-eslint/typescript-estree': 8.49.0(typescript@5.9.3) - '@typescript-eslint/utils': 8.49.0(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3) - eslint: 9.39.1(jiti@2.6.1) + '@typescript-eslint/utils': 8.49.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) + eslint: 9.39.2(jiti@2.6.1) string-ts: 2.3.1 typescript: 5.9.3 transitivePeerDependencies: - supports-color - '@eslint-react/core@2.3.13(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3)': + '@eslint-react/core@2.3.13(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3)': dependencies: - '@eslint-react/ast': 2.3.13(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3) + '@eslint-react/ast': 2.3.13(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) '@eslint-react/eff': 2.3.13 - '@eslint-react/shared': 2.3.13(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3) - '@eslint-react/var': 2.3.13(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3) + '@eslint-react/shared': 2.3.13(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) + '@eslint-react/var': 2.3.13(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) '@typescript-eslint/scope-manager': 8.49.0 '@typescript-eslint/types': 8.49.0 - '@typescript-eslint/utils': 8.49.0(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/utils': 8.49.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) birecord: 0.1.1 - eslint: 9.39.1(jiti@2.6.1) + eslint: 9.39.2(jiti@2.6.1) ts-pattern: 5.9.0 typescript: 5.9.3 transitivePeerDependencies: @@ -14278,44 +13972,44 @@ snapshots: '@eslint-react/eff@2.3.13': {} - '@eslint-react/eslint-plugin@2.3.13(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3)': + '@eslint-react/eslint-plugin@2.3.13(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3)': dependencies: '@eslint-react/eff': 2.3.13 - '@eslint-react/shared': 2.3.13(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3) + '@eslint-react/shared': 2.3.13(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) '@typescript-eslint/scope-manager': 8.49.0 - '@typescript-eslint/type-utils': 8.49.0(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/type-utils': 8.49.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) '@typescript-eslint/types': 8.49.0 - '@typescript-eslint/utils': 8.49.0(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3) - eslint: 9.39.1(jiti@2.6.1) - eslint-plugin-react-dom: 2.3.13(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3) - eslint-plugin-react-hooks-extra: 2.3.13(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3) - eslint-plugin-react-naming-convention: 2.3.13(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3) - eslint-plugin-react-web-api: 2.3.13(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3) - eslint-plugin-react-x: 2.3.13(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/utils': 8.49.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) + eslint: 9.39.2(jiti@2.6.1) + eslint-plugin-react-dom: 2.3.13(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) + eslint-plugin-react-hooks-extra: 2.3.13(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) + eslint-plugin-react-naming-convention: 2.3.13(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) + eslint-plugin-react-web-api: 2.3.13(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) + eslint-plugin-react-x: 2.3.13(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) ts-api-utils: 2.1.0(typescript@5.9.3) typescript: 5.9.3 transitivePeerDependencies: - supports-color - '@eslint-react/shared@2.3.13(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3)': + '@eslint-react/shared@2.3.13(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3)': dependencies: '@eslint-react/eff': 2.3.13 - '@typescript-eslint/utils': 8.49.0(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3) - eslint: 9.39.1(jiti@2.6.1) + '@typescript-eslint/utils': 8.49.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) + eslint: 9.39.2(jiti@2.6.1) ts-pattern: 5.9.0 typescript: 5.9.3 zod: 4.1.13 transitivePeerDependencies: - supports-color - '@eslint-react/var@2.3.13(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3)': + '@eslint-react/var@2.3.13(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3)': dependencies: - '@eslint-react/ast': 2.3.13(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3) + '@eslint-react/ast': 2.3.13(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) '@eslint-react/eff': 2.3.13 '@typescript-eslint/scope-manager': 8.49.0 '@typescript-eslint/types': 8.49.0 - '@typescript-eslint/utils': 8.49.0(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3) - eslint: 9.39.1(jiti@2.6.1) + '@typescript-eslint/utils': 8.49.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) + eslint: 9.39.2(jiti@2.6.1) ts-pattern: 5.9.0 typescript: 5.9.3 transitivePeerDependencies: @@ -14324,7 +14018,7 @@ snapshots: '@eslint/config-array@0.21.1': dependencies: '@eslint/object-schema': 2.1.7 - debug: 4.4.0 + debug: 4.4.3 minimatch: 3.1.2 transitivePeerDependencies: - supports-color @@ -14340,7 +14034,7 @@ snapshots: '@eslint/eslintrc@3.3.3': dependencies: ajv: 6.12.6 - debug: 4.4.0 + debug: 4.4.3 espree: 10.4.0 globals: 14.0.0 ignore: 5.3.2 @@ -14353,7 +14047,7 @@ snapshots: '@eslint/js@9.17.0': {} - '@eslint/js@9.39.1': {} + '@eslint/js@9.39.2': {} '@eslint/object-schema@2.1.7': {} @@ -14402,135 +14096,135 @@ snapshots: '@inquirer/ansi@1.0.2': {} - '@inquirer/checkbox@4.3.2(@types/node@25.0.1)': + '@inquirer/checkbox@4.3.2(@types/node@25.0.3)': dependencies: '@inquirer/ansi': 1.0.2 - '@inquirer/core': 10.3.2(@types/node@25.0.1) + '@inquirer/core': 10.3.2(@types/node@25.0.3) '@inquirer/figures': 1.0.15 - '@inquirer/type': 3.0.10(@types/node@25.0.1) + '@inquirer/type': 3.0.10(@types/node@25.0.3) yoctocolors-cjs: 2.1.3 optionalDependencies: - '@types/node': 25.0.1 + '@types/node': 25.0.3 - '@inquirer/confirm@5.1.19(@types/node@25.0.1)': + '@inquirer/confirm@5.1.19(@types/node@25.0.3)': dependencies: - '@inquirer/core': 10.3.2(@types/node@25.0.1) - '@inquirer/type': 3.0.10(@types/node@25.0.1) + '@inquirer/core': 10.3.2(@types/node@25.0.3) + '@inquirer/type': 3.0.10(@types/node@25.0.3) optionalDependencies: - '@types/node': 25.0.1 + '@types/node': 25.0.3 - '@inquirer/confirm@5.1.21(@types/node@25.0.1)': + '@inquirer/confirm@5.1.21(@types/node@25.0.3)': dependencies: - '@inquirer/core': 10.3.2(@types/node@25.0.1) - '@inquirer/type': 3.0.10(@types/node@25.0.1) + '@inquirer/core': 10.3.2(@types/node@25.0.3) + '@inquirer/type': 3.0.10(@types/node@25.0.3) optionalDependencies: - '@types/node': 25.0.1 + '@types/node': 25.0.3 - '@inquirer/core@10.3.2(@types/node@25.0.1)': + '@inquirer/core@10.3.2(@types/node@25.0.3)': dependencies: '@inquirer/ansi': 1.0.2 '@inquirer/figures': 1.0.15 - '@inquirer/type': 3.0.10(@types/node@25.0.1) + '@inquirer/type': 3.0.10(@types/node@25.0.3) cli-width: 4.1.0 mute-stream: 2.0.0 signal-exit: 4.1.0 wrap-ansi: 6.2.0 yoctocolors-cjs: 2.1.3 optionalDependencies: - '@types/node': 25.0.1 + '@types/node': 25.0.3 - '@inquirer/editor@4.2.23(@types/node@25.0.1)': + '@inquirer/editor@4.2.23(@types/node@25.0.3)': dependencies: - '@inquirer/core': 10.3.2(@types/node@25.0.1) - '@inquirer/external-editor': 1.0.3(@types/node@25.0.1) - '@inquirer/type': 3.0.10(@types/node@25.0.1) + '@inquirer/core': 10.3.2(@types/node@25.0.3) + '@inquirer/external-editor': 1.0.3(@types/node@25.0.3) + '@inquirer/type': 3.0.10(@types/node@25.0.3) optionalDependencies: - '@types/node': 25.0.1 + '@types/node': 25.0.3 - '@inquirer/expand@4.0.23(@types/node@25.0.1)': + '@inquirer/expand@4.0.23(@types/node@25.0.3)': dependencies: - '@inquirer/core': 10.3.2(@types/node@25.0.1) - '@inquirer/type': 3.0.10(@types/node@25.0.1) + '@inquirer/core': 10.3.2(@types/node@25.0.3) + '@inquirer/type': 3.0.10(@types/node@25.0.3) yoctocolors-cjs: 2.1.3 optionalDependencies: - '@types/node': 25.0.1 + '@types/node': 25.0.3 - '@inquirer/external-editor@1.0.3(@types/node@25.0.1)': + '@inquirer/external-editor@1.0.3(@types/node@25.0.3)': dependencies: chardet: 2.1.1 iconv-lite: 0.7.1 optionalDependencies: - '@types/node': 25.0.1 + '@types/node': 25.0.3 '@inquirer/figures@1.0.15': {} - '@inquirer/input@4.3.1(@types/node@25.0.1)': + '@inquirer/input@4.3.1(@types/node@25.0.3)': dependencies: - '@inquirer/core': 10.3.2(@types/node@25.0.1) - '@inquirer/type': 3.0.10(@types/node@25.0.1) + '@inquirer/core': 10.3.2(@types/node@25.0.3) + '@inquirer/type': 3.0.10(@types/node@25.0.3) optionalDependencies: - '@types/node': 25.0.1 + '@types/node': 25.0.3 - '@inquirer/number@3.0.23(@types/node@25.0.1)': + '@inquirer/number@3.0.23(@types/node@25.0.3)': dependencies: - '@inquirer/core': 10.3.2(@types/node@25.0.1) - '@inquirer/type': 3.0.10(@types/node@25.0.1) + '@inquirer/core': 10.3.2(@types/node@25.0.3) + '@inquirer/type': 3.0.10(@types/node@25.0.3) optionalDependencies: - '@types/node': 25.0.1 + '@types/node': 25.0.3 - '@inquirer/password@4.0.23(@types/node@25.0.1)': + '@inquirer/password@4.0.23(@types/node@25.0.3)': dependencies: '@inquirer/ansi': 1.0.2 - '@inquirer/core': 10.3.2(@types/node@25.0.1) - '@inquirer/type': 3.0.10(@types/node@25.0.1) + '@inquirer/core': 10.3.2(@types/node@25.0.3) + '@inquirer/type': 3.0.10(@types/node@25.0.3) optionalDependencies: - '@types/node': 25.0.1 - - '@inquirer/prompts@7.9.0(@types/node@25.0.1)': - dependencies: - '@inquirer/checkbox': 4.3.2(@types/node@25.0.1) - '@inquirer/confirm': 5.1.21(@types/node@25.0.1) - '@inquirer/editor': 4.2.23(@types/node@25.0.1) - '@inquirer/expand': 4.0.23(@types/node@25.0.1) - '@inquirer/input': 4.3.1(@types/node@25.0.1) - '@inquirer/number': 3.0.23(@types/node@25.0.1) - '@inquirer/password': 4.0.23(@types/node@25.0.1) - '@inquirer/rawlist': 4.1.11(@types/node@25.0.1) - '@inquirer/search': 3.2.2(@types/node@25.0.1) - '@inquirer/select': 4.4.2(@types/node@25.0.1) + '@types/node': 25.0.3 + + '@inquirer/prompts@7.9.0(@types/node@25.0.3)': + dependencies: + '@inquirer/checkbox': 4.3.2(@types/node@25.0.3) + '@inquirer/confirm': 5.1.21(@types/node@25.0.3) + '@inquirer/editor': 4.2.23(@types/node@25.0.3) + '@inquirer/expand': 4.0.23(@types/node@25.0.3) + '@inquirer/input': 4.3.1(@types/node@25.0.3) + '@inquirer/number': 3.0.23(@types/node@25.0.3) + '@inquirer/password': 4.0.23(@types/node@25.0.3) + '@inquirer/rawlist': 4.1.11(@types/node@25.0.3) + '@inquirer/search': 3.2.2(@types/node@25.0.3) + '@inquirer/select': 4.4.2(@types/node@25.0.3) optionalDependencies: - '@types/node': 25.0.1 + '@types/node': 25.0.3 - '@inquirer/rawlist@4.1.11(@types/node@25.0.1)': + '@inquirer/rawlist@4.1.11(@types/node@25.0.3)': dependencies: - '@inquirer/core': 10.3.2(@types/node@25.0.1) - '@inquirer/type': 3.0.10(@types/node@25.0.1) + '@inquirer/core': 10.3.2(@types/node@25.0.3) + '@inquirer/type': 3.0.10(@types/node@25.0.3) yoctocolors-cjs: 2.1.3 optionalDependencies: - '@types/node': 25.0.1 + '@types/node': 25.0.3 - '@inquirer/search@3.2.2(@types/node@25.0.1)': + '@inquirer/search@3.2.2(@types/node@25.0.3)': dependencies: - '@inquirer/core': 10.3.2(@types/node@25.0.1) + '@inquirer/core': 10.3.2(@types/node@25.0.3) '@inquirer/figures': 1.0.15 - '@inquirer/type': 3.0.10(@types/node@25.0.1) + '@inquirer/type': 3.0.10(@types/node@25.0.3) yoctocolors-cjs: 2.1.3 optionalDependencies: - '@types/node': 25.0.1 + '@types/node': 25.0.3 - '@inquirer/select@4.4.2(@types/node@25.0.1)': + '@inquirer/select@4.4.2(@types/node@25.0.3)': dependencies: '@inquirer/ansi': 1.0.2 - '@inquirer/core': 10.3.2(@types/node@25.0.1) + '@inquirer/core': 10.3.2(@types/node@25.0.3) '@inquirer/figures': 1.0.15 - '@inquirer/type': 3.0.10(@types/node@25.0.1) + '@inquirer/type': 3.0.10(@types/node@25.0.3) yoctocolors-cjs: 2.1.3 optionalDependencies: - '@types/node': 25.0.1 + '@types/node': 25.0.3 - '@inquirer/type@3.0.10(@types/node@25.0.1)': + '@inquirer/type@3.0.10(@types/node@25.0.3)': optionalDependencies: - '@types/node': 25.0.1 + '@types/node': 25.0.3 '@isaacs/balanced-match@4.0.1': {} @@ -14538,15 +14232,6 @@ snapshots: dependencies: '@isaacs/balanced-match': 4.0.1 - '@isaacs/cliui@8.0.2': - dependencies: - string-width: 5.1.2 - string-width-cjs: string-width@4.2.3 - strip-ansi: 7.1.0 - strip-ansi-cjs: strip-ansi@6.0.1 - wrap-ansi: 8.1.0 - wrap-ansi-cjs: wrap-ansi@7.0.0 - '@isaacs/fs-minipass@4.0.1': dependencies: minipass: 7.1.2 @@ -14563,13 +14248,13 @@ snapshots: '@jridgewell/gen-mapping@0.3.13': dependencies: - '@jridgewell/sourcemap-codec': 1.5.0 + '@jridgewell/sourcemap-codec': 1.5.5 '@jridgewell/trace-mapping': 0.3.31 '@jridgewell/gen-mapping@0.3.8': dependencies: '@jridgewell/set-array': 1.2.1 - '@jridgewell/sourcemap-codec': 1.5.0 + '@jridgewell/sourcemap-codec': 1.5.5 '@jridgewell/trace-mapping': 0.3.25 '@jridgewell/remapping@2.3.5': @@ -14583,8 +14268,8 @@ snapshots: '@jridgewell/source-map@0.3.6': dependencies: - '@jridgewell/gen-mapping': 0.3.8 - '@jridgewell/trace-mapping': 0.3.25 + '@jridgewell/gen-mapping': 0.3.13 + '@jridgewell/trace-mapping': 0.3.31 '@jridgewell/sourcemap-codec@1.5.0': {} @@ -14598,7 +14283,7 @@ snapshots: '@jridgewell/trace-mapping@0.3.31': dependencies: '@jridgewell/resolve-uri': 3.1.2 - '@jridgewell/sourcemap-codec': 1.5.0 + '@jridgewell/sourcemap-codec': 1.5.5 '@jsonjoy.com/base64@1.1.2(tslib@2.8.1)': dependencies: @@ -14646,10 +14331,10 @@ snapshots: '@leichtgewicht/ip-codec@2.0.5': {} - '@listr2/prompt-adapter-inquirer@3.0.5(@inquirer/prompts@7.9.0(@types/node@25.0.1))(@types/node@25.0.1)(listr2@9.0.5)': + '@listr2/prompt-adapter-inquirer@3.0.5(@inquirer/prompts@7.9.0(@types/node@25.0.3))(@types/node@25.0.3)(listr2@9.0.5)': dependencies: - '@inquirer/prompts': 7.9.0(@types/node@25.0.1) - '@inquirer/type': 3.0.10(@types/node@25.0.1) + '@inquirer/prompts': 7.9.0(@types/node@25.0.3) + '@inquirer/type': 3.0.10(@types/node@25.0.3) listr2: 9.0.5 transitivePeerDependencies: - '@types/node' @@ -14681,26 +14366,26 @@ snapshots: '@lmdb/lmdb-win32-x64@3.4.3': optional: true - '@microsoft/api-extractor-model@7.29.4(@types/node@25.0.1)': + '@microsoft/api-extractor-model@7.29.4(@types/node@25.0.3)': dependencies: '@microsoft/tsdoc': 0.15.0 '@microsoft/tsdoc-config': 0.17.0 - '@rushstack/node-core-library': 5.5.1(@types/node@25.0.1) + '@rushstack/node-core-library': 5.5.1(@types/node@25.0.3) transitivePeerDependencies: - '@types/node' - '@microsoft/api-extractor@7.47.4(@types/node@25.0.1)': + '@microsoft/api-extractor@7.47.4(@types/node@25.0.3)': dependencies: - '@microsoft/api-extractor-model': 7.29.4(@types/node@25.0.1) + '@microsoft/api-extractor-model': 7.29.4(@types/node@25.0.3) '@microsoft/tsdoc': 0.15.0 '@microsoft/tsdoc-config': 0.17.0 - '@rushstack/node-core-library': 5.5.1(@types/node@25.0.1) + '@rushstack/node-core-library': 5.5.1(@types/node@25.0.3) '@rushstack/rig-package': 0.5.3 - '@rushstack/terminal': 0.13.3(@types/node@25.0.1) - '@rushstack/ts-command-line': 4.22.3(@types/node@25.0.1) + '@rushstack/terminal': 0.13.3(@types/node@25.0.3) + '@rushstack/ts-command-line': 4.22.3(@types/node@25.0.3) lodash: 4.17.21 minimatch: 3.0.8 - resolve: 1.22.10 + resolve: 1.22.11 semver: 7.5.4 source-map: 0.6.1 typescript: 5.4.2 @@ -14712,7 +14397,7 @@ snapshots: '@microsoft/tsdoc': 0.15.0 ajv: 8.12.0 jju: 1.4.0 - resolve: 1.22.10 + resolve: 1.22.11 '@microsoft/tsdoc@0.15.0': {} @@ -14827,8 +14512,8 @@ snapshots: '@napi-rs/wasm-runtime@0.2.4': dependencies: - '@emnapi/core': 1.3.1 - '@emnapi/runtime': 1.3.1 + '@emnapi/core': 1.7.1 + '@emnapi/runtime': 1.7.1 '@tybys/wasm-util': 0.9.0 '@napi-rs/wasm-runtime@1.1.0': @@ -14838,11 +14523,11 @@ snapshots: '@tybys/wasm-util': 0.10.1 optional: true - '@ngtools/webpack@21.0.3(@angular/compiler-cli@21.0.5(@angular/compiler@21.0.5)(typescript@5.9.3))(typescript@5.9.3)(webpack@5.102.1(esbuild@0.26.0))': + '@ngtools/webpack@21.0.4(@angular/compiler-cli@21.0.6(@angular/compiler@21.0.6)(typescript@5.9.3))(typescript@5.9.3)(webpack@5.104.0(esbuild@0.26.0))': dependencies: - '@angular/compiler-cli': 21.0.5(@angular/compiler@21.0.5)(typescript@5.9.3) + '@angular/compiler-cli': 21.0.6(@angular/compiler@21.0.6)(typescript@5.9.3) typescript: 5.9.3 - webpack: 5.102.1(esbuild@0.27.1) + webpack: 5.104.0(esbuild@0.27.1) '@nodelib/fs.scandir@2.1.5': dependencies: @@ -14919,34 +14604,34 @@ snapshots: transitivePeerDependencies: - supports-color - '@nx/nx-darwin-arm64@22.2.1': + '@nx/nx-darwin-arm64@22.3.2': optional: true - '@nx/nx-darwin-x64@22.2.1': + '@nx/nx-darwin-x64@22.3.2': optional: true - '@nx/nx-freebsd-x64@22.2.1': + '@nx/nx-freebsd-x64@22.3.2': optional: true - '@nx/nx-linux-arm-gnueabihf@22.2.1': + '@nx/nx-linux-arm-gnueabihf@22.3.2': optional: true - '@nx/nx-linux-arm64-gnu@22.2.1': + '@nx/nx-linux-arm64-gnu@22.3.2': optional: true - '@nx/nx-linux-arm64-musl@22.2.1': + '@nx/nx-linux-arm64-musl@22.3.2': optional: true - '@nx/nx-linux-x64-gnu@22.2.1': + '@nx/nx-linux-x64-gnu@22.3.2': optional: true - '@nx/nx-linux-x64-musl@22.2.1': + '@nx/nx-linux-x64-musl@22.3.2': optional: true - '@nx/nx-win32-arm64-msvc@22.2.1': + '@nx/nx-win32-arm64-msvc@22.3.2': optional: true - '@nx/nx-win32-x64-msvc@22.2.1': + '@nx/nx-win32-x64-msvc@22.3.2': optional: true '@oxc-project/types@0.96.0': {} @@ -15074,21 +14759,18 @@ snapshots: '@parcel/watcher-win32-x64': 2.5.0 optional: true - '@pkgjs/parseargs@0.11.0': - optional: true - - '@preact/preset-vite@2.10.2(@babel/core@7.28.5)(preact@10.28.0)(vite@7.2.7(@types/node@25.0.1)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1))': + '@preact/preset-vite@2.10.2(@babel/core@7.28.5)(preact@10.28.0)(vite@7.3.0(@types/node@25.0.3)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1))': dependencies: '@babel/core': 7.28.5 '@babel/plugin-transform-react-jsx': 7.25.9(@babel/core@7.28.5) '@babel/plugin-transform-react-jsx-development': 7.25.9(@babel/core@7.28.5) - '@prefresh/vite': 2.4.6(preact@10.28.0)(vite@7.2.7(@types/node@25.0.1)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1)) + '@prefresh/vite': 2.4.6(preact@10.28.0)(vite@7.3.0(@types/node@25.0.3)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1)) '@rollup/pluginutils': 4.2.1 babel-plugin-transform-hook-names: 1.0.2(@babel/core@7.28.5) debug: 4.4.0 picocolors: 1.1.1 - vite: 7.2.7(@types/node@25.0.1)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1) - vite-prerender-plugin: 0.5.12(vite@7.2.7(@types/node@25.0.1)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1)) + vite: 7.3.0(@types/node@25.0.3)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1) + vite-prerender-plugin: 0.5.12(vite@7.3.0(@types/node@25.0.3)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1)) transitivePeerDependencies: - preact - supports-color @@ -15101,7 +14783,7 @@ snapshots: '@prefresh/utils@1.2.0': {} - '@prefresh/vite@2.4.6(preact@10.28.0)(vite@7.2.7(@types/node@25.0.1)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1))': + '@prefresh/vite@2.4.6(preact@10.28.0)(vite@7.3.0(@types/node@25.0.3)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1))': dependencies: '@babel/core': 7.26.0 '@prefresh/babel-plugin': 0.5.1 @@ -15109,7 +14791,7 @@ snapshots: '@prefresh/utils': 1.2.0 '@rollup/pluginutils': 4.2.1 preact: 10.28.0 - vite: 7.2.7(@types/node@25.0.1)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1) + vite: 7.3.0(@types/node@25.0.3)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1) transitivePeerDependencies: - supports-color @@ -15599,11 +15281,11 @@ snapshots: '@rolldown/pluginutils@1.0.0-beta.54': {} - '@rollup/plugin-json@6.1.0(rollup@4.32.0)': + '@rollup/plugin-json@6.1.0(rollup@4.53.3)': dependencies: - '@rollup/pluginutils': 5.1.0(rollup@4.32.0) + '@rollup/pluginutils': 5.1.0(rollup@4.53.3) optionalDependencies: - rollup: 4.32.0 + rollup: 4.53.3 '@rollup/plugin-replace@6.0.3(rollup@4.53.3)': dependencies: @@ -15617,14 +15299,6 @@ snapshots: estree-walker: 2.0.2 picomatch: 2.3.1 - '@rollup/pluginutils@5.1.0(rollup@4.32.0)': - dependencies: - '@types/estree': 1.0.5 - estree-walker: 2.0.2 - picomatch: 2.3.1 - optionalDependencies: - rollup: 4.32.0 - '@rollup/pluginutils@5.1.0(rollup@4.53.3)': dependencies: '@types/estree': 1.0.5 @@ -15633,126 +15307,69 @@ snapshots: optionalDependencies: rollup: 4.53.3 - '@rollup/rollup-android-arm-eabi@4.32.0': - optional: true - '@rollup/rollup-android-arm-eabi@4.53.3': optional: true - '@rollup/rollup-android-arm64@4.32.0': - optional: true - '@rollup/rollup-android-arm64@4.53.3': optional: true - '@rollup/rollup-darwin-arm64@4.32.0': - optional: true - '@rollup/rollup-darwin-arm64@4.53.3': optional: true - '@rollup/rollup-darwin-x64@4.32.0': - optional: true - '@rollup/rollup-darwin-x64@4.53.3': optional: true - '@rollup/rollup-freebsd-arm64@4.32.0': - optional: true - '@rollup/rollup-freebsd-arm64@4.53.3': optional: true - '@rollup/rollup-freebsd-x64@4.32.0': - optional: true - '@rollup/rollup-freebsd-x64@4.53.3': optional: true - '@rollup/rollup-linux-arm-gnueabihf@4.32.0': - optional: true - '@rollup/rollup-linux-arm-gnueabihf@4.53.3': optional: true - '@rollup/rollup-linux-arm-musleabihf@4.32.0': - optional: true - '@rollup/rollup-linux-arm-musleabihf@4.53.3': optional: true - '@rollup/rollup-linux-arm64-gnu@4.32.0': - optional: true - '@rollup/rollup-linux-arm64-gnu@4.53.3': optional: true - '@rollup/rollup-linux-arm64-musl@4.32.0': - optional: true - '@rollup/rollup-linux-arm64-musl@4.53.3': optional: true '@rollup/rollup-linux-loong64-gnu@4.53.3': optional: true - '@rollup/rollup-linux-loongarch64-gnu@4.32.0': - optional: true - - '@rollup/rollup-linux-powerpc64le-gnu@4.32.0': - optional: true - '@rollup/rollup-linux-ppc64-gnu@4.53.3': optional: true - '@rollup/rollup-linux-riscv64-gnu@4.32.0': - optional: true - '@rollup/rollup-linux-riscv64-gnu@4.53.3': optional: true '@rollup/rollup-linux-riscv64-musl@4.53.3': optional: true - '@rollup/rollup-linux-s390x-gnu@4.32.0': - optional: true - '@rollup/rollup-linux-s390x-gnu@4.53.3': optional: true - '@rollup/rollup-linux-x64-gnu@4.32.0': - optional: true - '@rollup/rollup-linux-x64-gnu@4.53.3': optional: true - '@rollup/rollup-linux-x64-musl@4.32.0': - optional: true - '@rollup/rollup-linux-x64-musl@4.53.3': optional: true '@rollup/rollup-openharmony-arm64@4.53.3': optional: true - '@rollup/rollup-win32-arm64-msvc@4.32.0': - optional: true - '@rollup/rollup-win32-arm64-msvc@4.53.3': optional: true - '@rollup/rollup-win32-ia32-msvc@4.32.0': - optional: true - '@rollup/rollup-win32-ia32-msvc@4.53.3': optional: true '@rollup/rollup-win32-x64-gnu@4.53.3': optional: true - '@rollup/rollup-win32-x64-msvc@4.32.0': - optional: true - '@rollup/rollup-win32-x64-msvc@4.53.3': optional: true @@ -15762,7 +15379,7 @@ snapshots: optionalDependencies: fsevents: 2.3.3 - '@rushstack/node-core-library@5.5.1(@types/node@25.0.1)': + '@rushstack/node-core-library@5.5.1(@types/node@25.0.3)': dependencies: ajv: 8.13.0 ajv-draft-04: 1.0.0(ajv@8.13.0) @@ -15770,36 +15387,36 @@ snapshots: fs-extra: 7.0.1 import-lazy: 4.0.0 jju: 1.4.0 - resolve: 1.22.10 + resolve: 1.22.11 semver: 7.5.4 optionalDependencies: - '@types/node': 25.0.1 + '@types/node': 25.0.3 '@rushstack/rig-package@0.5.3': dependencies: - resolve: 1.22.10 + resolve: 1.22.11 strip-json-comments: 3.1.1 - '@rushstack/terminal@0.13.3(@types/node@25.0.1)': + '@rushstack/terminal@0.13.3(@types/node@25.0.3)': dependencies: - '@rushstack/node-core-library': 5.5.1(@types/node@25.0.1) + '@rushstack/node-core-library': 5.5.1(@types/node@25.0.3) supports-color: 8.1.1 optionalDependencies: - '@types/node': 25.0.1 + '@types/node': 25.0.3 - '@rushstack/ts-command-line@4.22.3(@types/node@25.0.1)': + '@rushstack/ts-command-line@4.22.3(@types/node@25.0.3)': dependencies: - '@rushstack/terminal': 0.13.3(@types/node@25.0.1) + '@rushstack/terminal': 0.13.3(@types/node@25.0.3) '@types/argparse': 1.0.38 argparse: 1.0.10 string-argv: 0.3.2 transitivePeerDependencies: - '@types/node' - '@schematics/angular@21.0.3(chokidar@4.0.3)': + '@schematics/angular@21.0.4(chokidar@4.0.3)': dependencies: - '@angular-devkit/core': 21.0.3(chokidar@4.0.3) - '@angular-devkit/schematics': 21.0.3(chokidar@4.0.3) + '@angular-devkit/core': 21.0.4(chokidar@4.0.3) + '@angular-devkit/schematics': 21.0.4(chokidar@4.0.3) jsonc-parser: 3.3.1 transitivePeerDependencies: - chokidar @@ -15874,45 +15491,45 @@ snapshots: '@standard-schema/spec@1.0.0': {} - '@stylistic/eslint-plugin-js@2.12.1(eslint@9.39.1(jiti@2.6.1))': + '@stylistic/eslint-plugin-js@2.12.1(eslint@9.39.2(jiti@2.6.1))': dependencies: - eslint: 9.39.1(jiti@2.6.1) + eslint: 9.39.2(jiti@2.6.1) eslint-visitor-keys: 4.2.0 espree: 10.3.0 - '@sveltejs/acorn-typescript@1.0.8(acorn@8.14.0)': + '@sveltejs/acorn-typescript@1.0.8(acorn@8.15.0)': dependencies: - acorn: 8.14.0 + acorn: 8.15.0 - '@sveltejs/package@2.5.7(svelte@5.45.10)(typescript@5.9.3)': + '@sveltejs/package@2.5.7(svelte@5.46.0)(typescript@5.9.3)': dependencies: chokidar: 5.0.0 kleur: 4.1.5 sade: 1.8.1 semver: 7.6.3 - svelte: 5.45.10 - svelte2tsx: 0.7.45(svelte@5.45.10)(typescript@5.9.3) + svelte: 5.46.0 + svelte2tsx: 0.7.45(svelte@5.46.0)(typescript@5.9.3) transitivePeerDependencies: - typescript - '@sveltejs/vite-plugin-svelte-inspector@5.0.1(@sveltejs/vite-plugin-svelte@6.2.1(svelte@5.45.10)(vite@7.2.7(@types/node@25.0.1)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1)))(svelte@5.45.10)(vite@7.2.7(@types/node@25.0.1)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1))': + '@sveltejs/vite-plugin-svelte-inspector@5.0.1(@sveltejs/vite-plugin-svelte@6.2.1(svelte@5.46.0)(vite@7.3.0(@types/node@25.0.3)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1)))(svelte@5.46.0)(vite@7.3.0(@types/node@25.0.3)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1))': dependencies: - '@sveltejs/vite-plugin-svelte': 6.2.1(svelte@5.45.10)(vite@7.2.7(@types/node@25.0.1)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1)) + '@sveltejs/vite-plugin-svelte': 6.2.1(svelte@5.46.0)(vite@7.3.0(@types/node@25.0.3)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1)) debug: 4.4.3 - svelte: 5.45.10 - vite: 7.2.7(@types/node@25.0.1)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1) + svelte: 5.46.0 + vite: 7.3.0(@types/node@25.0.3)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1) transitivePeerDependencies: - supports-color - '@sveltejs/vite-plugin-svelte@6.2.1(svelte@5.45.10)(vite@7.2.7(@types/node@25.0.1)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1))': + '@sveltejs/vite-plugin-svelte@6.2.1(svelte@5.46.0)(vite@7.3.0(@types/node@25.0.3)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1))': dependencies: - '@sveltejs/vite-plugin-svelte-inspector': 5.0.1(@sveltejs/vite-plugin-svelte@6.2.1(svelte@5.45.10)(vite@7.2.7(@types/node@25.0.1)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1)))(svelte@5.45.10)(vite@7.2.7(@types/node@25.0.1)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1)) + '@sveltejs/vite-plugin-svelte-inspector': 5.0.1(@sveltejs/vite-plugin-svelte@6.2.1(svelte@5.46.0)(vite@7.3.0(@types/node@25.0.3)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1)))(svelte@5.46.0)(vite@7.3.0(@types/node@25.0.3)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1)) debug: 4.4.3 deepmerge: 4.3.1 magic-string: 0.30.17 - svelte: 5.45.10 - vite: 7.2.7(@types/node@25.0.1)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1) - vitefu: 1.1.1(vite@7.2.7(@types/node@25.0.1)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1)) + svelte: 5.46.0 + vite: 7.3.0(@types/node@25.0.3)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1) + vitefu: 1.1.1(vite@7.3.0(@types/node@25.0.3)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1)) transitivePeerDependencies: - supports-color @@ -15977,23 +15594,23 @@ snapshots: '@tailwindcss/oxide-win32-arm64-msvc': 4.1.18 '@tailwindcss/oxide-win32-x64-msvc': 4.1.18 - '@tailwindcss/vite@4.1.18(vite@7.2.7(@types/node@25.0.1)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1))': + '@tailwindcss/vite@4.1.18(vite@7.3.0(@types/node@25.0.3)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1))': dependencies: '@tailwindcss/node': 4.1.18 '@tailwindcss/oxide': 4.1.18 tailwindcss: 4.1.18 - vite: 7.2.7(@types/node@25.0.1)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1) + vite: 7.3.0(@types/node@25.0.3)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1) - '@tanstack/config@0.14.2(@types/node@25.0.1)(esbuild@0.27.1)(eslint@9.39.1(jiti@2.6.1))(rollup@4.53.3)(typescript@5.9.3)(vite@7.2.7(@types/node@25.0.1)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1))': + '@tanstack/config@0.14.2(@types/node@25.0.3)(esbuild@0.27.1)(eslint@9.39.2(jiti@2.6.1))(rollup@4.53.3)(typescript@5.9.3)(vite@7.3.0(@types/node@25.0.3)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1))': dependencies: '@commitlint/parse': 19.5.0 '@eslint/js': 9.17.0 - '@stylistic/eslint-plugin-js': 2.12.1(eslint@9.39.1(jiti@2.6.1)) + '@stylistic/eslint-plugin-js': 2.12.1(eslint@9.39.2(jiti@2.6.1)) commander: 12.1.0 current-git-branch: 1.1.0 esbuild-register: 3.6.0(esbuild@0.27.1) - eslint-plugin-import-x: 4.6.1(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3) - eslint-plugin-n: 17.15.1(eslint@9.39.1(jiti@2.6.1)) + eslint-plugin-import-x: 4.6.1(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) + eslint-plugin-n: 17.15.1(eslint@9.39.2(jiti@2.6.1)) globals: 15.14.0 interpret: 3.1.1 jsonfile: 6.1.0 @@ -16005,11 +15622,11 @@ snapshots: typedoc: 0.27.6(typescript@5.9.3) typedoc-plugin-frontmatter: 1.1.2(typedoc-plugin-markdown@4.4.0(typedoc@0.27.6(typescript@5.9.3))) typedoc-plugin-markdown: 4.4.0(typedoc@0.27.6(typescript@5.9.3)) - typescript-eslint: 8.19.0(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3) + typescript-eslint: 8.19.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) v8flags: 4.0.1 - vite-plugin-dts: 4.0.3(@types/node@25.0.1)(rollup@4.53.3)(typescript@5.9.3)(vite@7.2.7(@types/node@25.0.1)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1)) - vite-plugin-externalize-deps: 0.8.0(vite@7.2.7(@types/node@25.0.1)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1)) - vite-tsconfig-paths: 5.1.4(typescript@5.9.3)(vite@7.2.7(@types/node@25.0.1)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1)) + vite-plugin-dts: 4.0.3(@types/node@25.0.3)(rollup@4.53.3)(typescript@5.9.3)(vite@7.3.0(@types/node@25.0.3)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1)) + vite-plugin-externalize-deps: 0.8.0(vite@7.3.0(@types/node@25.0.3)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1)) + vite-tsconfig-paths: 5.1.4(typescript@5.9.3)(vite@7.3.0(@types/node@25.0.3)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1)) transitivePeerDependencies: - '@types/node' - esbuild @@ -16031,6 +15648,11 @@ snapshots: '@tanstack/virtual-core': 3.13.13 lit: 3.3.1 + '@tanstack/preact-store@0.10.1(preact@10.28.0)': + dependencies: + '@tanstack/store': 0.8.0 + preact: 10.28.0 + '@tanstack/query-core@5.90.12': {} '@tanstack/react-query@5.90.12(react@19.2.3)': @@ -16038,11 +15660,11 @@ snapshots: '@tanstack/query-core': 5.90.12 react: 19.2.3 - '@tanstack/react-router@1.141.1(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': + '@tanstack/react-router@1.141.6(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': dependencies: '@tanstack/history': 1.141.0 '@tanstack/react-store': 0.8.0(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - '@tanstack/router-core': 1.141.1 + '@tanstack/router-core': 1.141.6 isbot: 5.1.32 react: 19.2.3 react-dom: 19.2.3(react@19.2.3) @@ -16068,7 +15690,7 @@ snapshots: react: 19.2.3 react-dom: 19.2.3(react@19.2.3) - '@tanstack/router-core@1.141.1': + '@tanstack/router-core@1.141.6': dependencies: '@tanstack/history': 1.141.0 '@tanstack/store': 0.8.0 @@ -16078,20 +15700,20 @@ snapshots: tiny-invariant: 1.3.3 tiny-warning: 1.0.3 - '@tanstack/router-generator@1.141.1': + '@tanstack/router-generator@1.141.7': dependencies: - '@tanstack/router-core': 1.141.1 + '@tanstack/router-core': 1.141.6 '@tanstack/router-utils': 1.141.0 '@tanstack/virtual-file-routes': 1.141.0 prettier: 3.7.4 recast: 0.23.11 - source-map: 0.7.4 + source-map: 0.7.6 tsx: 4.19.2 zod: 3.25.76 transitivePeerDependencies: - supports-color - '@tanstack/router-plugin@1.141.1(@tanstack/react-router@1.141.1(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(vite-plugin-solid@2.11.10(@testing-library/jest-dom@6.9.1)(solid-js@1.9.10)(vite@7.2.7(@types/node@25.0.1)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1)))(vite@7.2.7(@types/node@25.0.1)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1))(webpack@5.102.1(esbuild@0.27.1))': + '@tanstack/router-plugin@1.141.7(@tanstack/react-router@1.141.6(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(vite-plugin-solid@2.11.10(@testing-library/jest-dom@6.9.1)(solid-js@1.9.10)(vite@7.3.0(@types/node@25.0.3)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1)))(vite@7.3.0(@types/node@25.0.3)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1))(webpack@5.104.0(esbuild@0.27.1))': dependencies: '@babel/core': 7.28.5 '@babel/plugin-syntax-jsx': 7.27.1(@babel/core@7.28.5) @@ -16099,8 +15721,8 @@ snapshots: '@babel/template': 7.27.2 '@babel/traverse': 7.28.5 '@babel/types': 7.28.5 - '@tanstack/router-core': 1.141.1 - '@tanstack/router-generator': 1.141.1 + '@tanstack/router-core': 1.141.6 + '@tanstack/router-generator': 1.141.7 '@tanstack/router-utils': 1.141.0 '@tanstack/virtual-file-routes': 1.141.0 babel-dead-code-elimination: 1.0.10 @@ -16108,10 +15730,10 @@ snapshots: unplugin: 2.3.11 zod: 3.25.76 optionalDependencies: - '@tanstack/react-router': 1.141.1(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - vite: 7.2.7(@types/node@25.0.1)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1) - vite-plugin-solid: 2.11.10(@testing-library/jest-dom@6.9.1)(solid-js@1.9.10)(vite@7.2.7(@types/node@25.0.1)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1)) - webpack: 5.102.1(esbuild@0.27.1) + '@tanstack/react-router': 1.141.6(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + vite: 7.3.0(@types/node@25.0.3)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1) + vite-plugin-solid: 2.11.10(@testing-library/jest-dom@6.9.1)(solid-js@1.9.10)(vite@7.3.0(@types/node@25.0.3)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1)) + webpack: 5.104.0(esbuild@0.27.1) transitivePeerDependencies: - supports-color @@ -16128,9 +15750,9 @@ snapshots: transitivePeerDependencies: - supports-color - '@tanstack/router-vite-plugin@1.141.1(@tanstack/react-router@1.141.1(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(vite-plugin-solid@2.11.10(@testing-library/jest-dom@6.9.1)(solid-js@1.9.10)(vite@7.2.7(@types/node@25.0.1)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1)))(vite@7.2.7(@types/node@25.0.1)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1))(webpack@5.102.1(esbuild@0.27.1))': + '@tanstack/router-vite-plugin@1.141.7(@tanstack/react-router@1.141.6(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(vite-plugin-solid@2.11.10(@testing-library/jest-dom@6.9.1)(solid-js@1.9.10)(vite@7.3.0(@types/node@25.0.3)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1)))(vite@7.3.0(@types/node@25.0.3)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1))(webpack@5.104.0(esbuild@0.27.1))': dependencies: - '@tanstack/router-plugin': 1.141.1(@tanstack/react-router@1.141.1(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(vite-plugin-solid@2.11.10(@testing-library/jest-dom@6.9.1)(solid-js@1.9.10)(vite@7.2.7(@types/node@25.0.1)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1)))(vite@7.2.7(@types/node@25.0.1)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1))(webpack@5.102.1(esbuild@0.27.1)) + '@tanstack/router-plugin': 1.141.7(@tanstack/react-router@1.141.6(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(vite-plugin-solid@2.11.10(@testing-library/jest-dom@6.9.1)(solid-js@1.9.10)(vite@7.3.0(@types/node@25.0.3)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1)))(vite@7.3.0(@types/node@25.0.3)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1))(webpack@5.104.0(esbuild@0.27.1)) transitivePeerDependencies: - '@rsbuild/core' - '@tanstack/react-router' @@ -16147,10 +15769,10 @@ snapshots: '@tanstack/virtual-file-routes@1.141.0': {} - '@tanstack/vue-virtual@3.13.13(vue@3.5.25(typescript@5.9.3))': + '@tanstack/vue-virtual@3.13.13(vue@3.5.26(typescript@5.9.3))': dependencies: '@tanstack/virtual-core': 3.13.13 - vue: 3.5.25(typescript@5.9.3) + vue: 3.5.26(typescript@5.9.3) '@testing-library/jest-dom@6.9.1': dependencies: @@ -16227,7 +15849,7 @@ snapshots: '@types/babel__template@7.4.4': dependencies: - '@babel/parser': 7.26.7 + '@babel/parser': 7.28.5 '@babel/types': 7.26.7 '@types/babel__traverse@7.20.6': @@ -16237,11 +15859,11 @@ snapshots: '@types/body-parser@1.19.5': dependencies: '@types/connect': 3.4.38 - '@types/node': 25.0.1 + '@types/node': 25.0.3 '@types/bonjour@3.5.13': dependencies: - '@types/node': 25.0.1 + '@types/node': 25.0.3 '@types/chai@5.2.3': dependencies: @@ -16251,19 +15873,19 @@ snapshots: '@types/connect-history-api-fallback@1.5.4': dependencies: '@types/express-serve-static-core': 5.0.5 - '@types/node': 25.0.1 + '@types/node': 25.0.3 '@types/connect@3.4.38': dependencies: - '@types/node': 25.0.1 + '@types/node': 25.0.3 '@types/conventional-commits-parser@5.0.0': dependencies: - '@types/node': 25.0.1 + '@types/node': 25.0.3 '@types/cors@2.8.17': dependencies: - '@types/node': 25.0.1 + '@types/node': 25.0.3 '@types/deep-eql@4.0.2': {} @@ -16287,14 +15909,14 @@ snapshots: '@types/express-serve-static-core@4.19.6': dependencies: - '@types/node': 25.0.1 + '@types/node': 25.0.3 '@types/qs': 6.9.18 '@types/range-parser': 1.2.7 '@types/send': 0.17.4 '@types/express-serve-static-core@5.0.5': dependencies: - '@types/node': 25.0.1 + '@types/node': 25.0.3 '@types/qs': 6.9.18 '@types/range-parser': 1.2.7 '@types/send': 0.17.4 @@ -16304,7 +15926,7 @@ snapshots: '@types/body-parser': 1.19.5 '@types/express-serve-static-core': 4.19.6 '@types/qs': 6.9.18 - '@types/serve-static': 1.15.7 + '@types/serve-static': 2.2.0 '@types/express@5.0.6': dependencies: @@ -16320,7 +15942,7 @@ snapshots: '@types/http-proxy@1.17.15': dependencies: - '@types/node': 25.0.1 + '@types/node': 25.0.3 '@types/jasmine@5.1.13': {} @@ -16330,9 +15952,9 @@ snapshots: '@types/node-forge@1.3.11': dependencies: - '@types/node': 25.0.1 + '@types/node': 25.0.3 - '@types/node@25.0.1': + '@types/node@25.0.3': dependencies: undici-types: 7.16.0 @@ -16353,7 +15975,7 @@ snapshots: '@types/send@0.17.4': dependencies: '@types/mime': 1.3.5 - '@types/node': 25.0.1 + '@types/node': 25.0.3 '@types/serve-index@1.9.4': dependencies: @@ -16362,17 +15984,17 @@ snapshots: '@types/serve-static@1.15.7': dependencies: '@types/http-errors': 2.0.4 - '@types/node': 25.0.1 + '@types/node': 25.0.3 '@types/send': 0.17.4 '@types/serve-static@2.2.0': dependencies: '@types/http-errors': 2.0.4 - '@types/node': 25.0.1 + '@types/node': 25.0.3 '@types/sockjs@0.3.36': dependencies: - '@types/node': 25.0.1 + '@types/node': 25.0.3 '@types/trusted-types@2.0.7': {} @@ -16380,17 +16002,17 @@ snapshots: '@types/ws@8.5.14': dependencies: - '@types/node': 25.0.1 + '@types/node': 25.0.3 - '@typescript-eslint/eslint-plugin@8.19.0(@typescript-eslint/parser@8.19.0(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3)': + '@typescript-eslint/eslint-plugin@8.19.0(@typescript-eslint/parser@8.19.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3)': dependencies: '@eslint-community/regexpp': 4.11.0 - '@typescript-eslint/parser': 8.19.0(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/parser': 8.19.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) '@typescript-eslint/scope-manager': 8.19.0 - '@typescript-eslint/type-utils': 8.19.0(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3) - '@typescript-eslint/utils': 8.19.0(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/type-utils': 8.19.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/utils': 8.19.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) '@typescript-eslint/visitor-keys': 8.19.0 - eslint: 9.39.1(jiti@2.6.1) + eslint: 9.39.2(jiti@2.6.1) graphemer: 1.4.0 ignore: 5.3.1 natural-compare: 1.4.0 @@ -16399,14 +16021,14 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@8.19.0(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3)': + '@typescript-eslint/parser@8.19.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3)': dependencies: '@typescript-eslint/scope-manager': 8.19.0 '@typescript-eslint/types': 8.19.0 '@typescript-eslint/typescript-estree': 8.19.0(typescript@5.9.3) '@typescript-eslint/visitor-keys': 8.19.0 debug: 4.4.0 - eslint: 9.39.1(jiti@2.6.1) + eslint: 9.39.2(jiti@2.6.1) typescript: 5.9.3 transitivePeerDependencies: - supports-color @@ -16415,7 +16037,7 @@ snapshots: dependencies: '@typescript-eslint/tsconfig-utils': 8.49.0(typescript@5.9.3) '@typescript-eslint/types': 8.49.0 - debug: 4.4.0 + debug: 4.4.3 typescript: 5.9.3 transitivePeerDependencies: - supports-color @@ -16439,24 +16061,24 @@ snapshots: dependencies: typescript: 5.9.3 - '@typescript-eslint/type-utils@8.19.0(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3)': + '@typescript-eslint/type-utils@8.19.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3)': dependencies: '@typescript-eslint/typescript-estree': 8.19.0(typescript@5.9.3) - '@typescript-eslint/utils': 8.19.0(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/utils': 8.19.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) debug: 4.4.0 - eslint: 9.39.1(jiti@2.6.1) + eslint: 9.39.2(jiti@2.6.1) ts-api-utils: 1.3.0(typescript@5.9.3) typescript: 5.9.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/type-utils@8.49.0(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3)': + '@typescript-eslint/type-utils@8.49.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3)': dependencies: '@typescript-eslint/types': 8.49.0 '@typescript-eslint/typescript-estree': 8.49.0(typescript@5.9.3) - '@typescript-eslint/utils': 8.49.0(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/utils': 8.49.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) debug: 4.4.0 - eslint: 9.39.1(jiti@2.6.1) + eslint: 9.39.2(jiti@2.6.1) ts-api-utils: 2.1.0(typescript@5.9.3) typescript: 5.9.3 transitivePeerDependencies: @@ -16476,7 +16098,7 @@ snapshots: fast-glob: 3.3.2 is-glob: 4.0.3 minimatch: 9.0.5 - semver: 7.6.3 + semver: 7.7.3 ts-api-utils: 1.3.0(typescript@5.9.3) typescript: 5.9.3 transitivePeerDependencies: @@ -16486,11 +16108,11 @@ snapshots: dependencies: '@typescript-eslint/types': 8.3.0 '@typescript-eslint/visitor-keys': 8.3.0 - debug: 4.4.0 + debug: 4.4.3 fast-glob: 3.3.3 is-glob: 4.0.3 minimatch: 9.0.5 - semver: 7.6.3 + semver: 7.7.3 ts-api-utils: 1.3.0(typescript@5.9.3) optionalDependencies: typescript: 5.9.3 @@ -16505,42 +16127,42 @@ snapshots: '@typescript-eslint/visitor-keys': 8.49.0 debug: 4.4.0 minimatch: 9.0.5 - semver: 7.6.3 + semver: 7.7.3 tinyglobby: 0.2.15 ts-api-utils: 2.1.0(typescript@5.9.3) typescript: 5.9.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@8.19.0(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3)': + '@typescript-eslint/utils@8.19.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3)': dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@9.39.1(jiti@2.6.1)) + '@eslint-community/eslint-utils': 4.4.0(eslint@9.39.2(jiti@2.6.1)) '@typescript-eslint/scope-manager': 8.19.0 '@typescript-eslint/types': 8.19.0 '@typescript-eslint/typescript-estree': 8.19.0(typescript@5.9.3) - eslint: 9.39.1(jiti@2.6.1) + eslint: 9.39.2(jiti@2.6.1) typescript: 5.9.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@8.3.0(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3)': + '@typescript-eslint/utils@8.3.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3)': dependencies: - '@eslint-community/eslint-utils': 4.4.1(eslint@9.39.1(jiti@2.6.1)) + '@eslint-community/eslint-utils': 4.9.0(eslint@9.39.2(jiti@2.6.1)) '@typescript-eslint/scope-manager': 8.3.0 '@typescript-eslint/types': 8.3.0 '@typescript-eslint/typescript-estree': 8.3.0(typescript@5.9.3) - eslint: 9.39.1(jiti@2.6.1) + eslint: 9.39.2(jiti@2.6.1) transitivePeerDependencies: - supports-color - typescript - '@typescript-eslint/utils@8.49.0(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3)': + '@typescript-eslint/utils@8.49.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3)': dependencies: - '@eslint-community/eslint-utils': 4.9.0(eslint@9.39.1(jiti@2.6.1)) + '@eslint-community/eslint-utils': 4.9.0(eslint@9.39.2(jiti@2.6.1)) '@typescript-eslint/scope-manager': 8.49.0 '@typescript-eslint/types': 8.49.0 '@typescript-eslint/typescript-estree': 8.49.0(typescript@5.9.3) - eslint: 9.39.1(jiti@2.6.1) + eslint: 9.39.2(jiti@2.6.1) typescript: 5.9.3 transitivePeerDependencies: - supports-color @@ -16560,11 +16182,11 @@ snapshots: '@typescript-eslint/types': 8.49.0 eslint-visitor-keys: 4.2.1 - '@vitejs/plugin-basic-ssl@2.1.0(vite@7.2.2(@types/node@25.0.1)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1))': + '@vitejs/plugin-basic-ssl@2.1.0(vite@7.2.2(@types/node@25.0.3)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1))': dependencies: - vite: 7.2.2(@types/node@25.0.1)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1) + vite: 7.2.2(@types/node@25.0.3)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1) - '@vitejs/plugin-react@5.1.2(vite@7.2.7(@types/node@25.0.1)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1))': + '@vitejs/plugin-react@5.1.2(vite@7.3.0(@types/node@25.0.3)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1))': dependencies: '@babel/core': 7.28.5 '@babel/plugin-transform-react-jsx-self': 7.27.1(@babel/core@7.28.5) @@ -16572,65 +16194,65 @@ snapshots: '@rolldown/pluginutils': 1.0.0-beta.53 '@types/babel__core': 7.20.5 react-refresh: 0.18.0 - vite: 7.2.7(@types/node@25.0.1)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1) + vite: 7.3.0(@types/node@25.0.3)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1) transitivePeerDependencies: - supports-color - '@vitejs/plugin-vue-jsx@5.1.2(vite@7.2.7(@types/node@25.0.1)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1))(vue@3.5.25(typescript@5.9.3))': + '@vitejs/plugin-vue-jsx@5.1.2(vite@7.3.0(@types/node@25.0.3)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1))(vue@3.5.26(typescript@5.9.3))': dependencies: '@babel/core': 7.28.5 '@babel/plugin-syntax-typescript': 7.27.1(@babel/core@7.28.5) '@babel/plugin-transform-typescript': 7.28.5(@babel/core@7.28.5) '@rolldown/pluginutils': 1.0.0-beta.54 '@vue/babel-plugin-jsx': 2.0.1(@babel/core@7.28.5) - vite: 7.2.7(@types/node@25.0.1)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1) - vue: 3.5.25(typescript@5.9.3) + vite: 7.3.0(@types/node@25.0.3)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1) + vue: 3.5.26(typescript@5.9.3) transitivePeerDependencies: - supports-color - '@vitejs/plugin-vue@6.0.3(vite@7.2.7(@types/node@25.0.1)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1))(vue@3.5.25(typescript@5.9.3))': + '@vitejs/plugin-vue@6.0.3(vite@7.3.0(@types/node@25.0.3)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1))(vue@3.5.26(typescript@5.9.3))': dependencies: '@rolldown/pluginutils': 1.0.0-beta.53 - vite: 7.2.7(@types/node@25.0.1)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1) - vue: 3.5.25(typescript@5.9.3) + vite: 7.3.0(@types/node@25.0.3)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1) + vue: 3.5.26(typescript@5.9.3) - '@vitest/expect@4.0.15': + '@vitest/expect@4.0.16': dependencies: '@standard-schema/spec': 1.0.0 '@types/chai': 5.2.3 - '@vitest/spy': 4.0.15 - '@vitest/utils': 4.0.15 + '@vitest/spy': 4.0.16 + '@vitest/utils': 4.0.16 chai: 6.2.1 tinyrainbow: 3.0.3 - '@vitest/mocker@4.0.15(vite@7.2.7(@types/node@25.0.1)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1))': + '@vitest/mocker@4.0.16(vite@7.3.0(@types/node@25.0.3)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1))': dependencies: - '@vitest/spy': 4.0.15 + '@vitest/spy': 4.0.16 estree-walker: 3.0.3 magic-string: 0.30.21 optionalDependencies: - vite: 7.2.7(@types/node@25.0.1)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1) + vite: 7.3.0(@types/node@25.0.3)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1) - '@vitest/pretty-format@4.0.15': + '@vitest/pretty-format@4.0.16': dependencies: tinyrainbow: 3.0.3 - '@vitest/runner@4.0.15': + '@vitest/runner@4.0.16': dependencies: - '@vitest/utils': 4.0.15 + '@vitest/utils': 4.0.16 pathe: 2.0.3 - '@vitest/snapshot@4.0.15': + '@vitest/snapshot@4.0.16': dependencies: - '@vitest/pretty-format': 4.0.15 + '@vitest/pretty-format': 4.0.16 magic-string: 0.30.21 pathe: 2.0.3 - '@vitest/spy@4.0.15': {} + '@vitest/spy@4.0.16': {} - '@vitest/utils@4.0.15': + '@vitest/utils@4.0.16': dependencies: - '@vitest/pretty-format': 4.0.15 + '@vitest/pretty-format': 4.0.16 tinyrainbow: 3.0.3 '@volar/language-core@2.4.11': @@ -16688,7 +16310,7 @@ snapshots: '@vue/compiler-core@3.5.13': dependencies: - '@babel/parser': 7.26.7 + '@babel/parser': 7.28.5 '@vue/shared': 3.5.13 entities: 4.5.0 estree-walker: 2.0.2 @@ -16702,6 +16324,14 @@ snapshots: estree-walker: 2.0.2 source-map-js: 1.2.1 + '@vue/compiler-core@3.5.26': + dependencies: + '@babel/parser': 7.28.5 + '@vue/shared': 3.5.26 + entities: 7.0.0 + estree-walker: 2.0.2 + source-map-js: 1.2.1 + '@vue/compiler-dom@3.5.13': dependencies: '@vue/compiler-core': 3.5.13 @@ -16712,6 +16342,11 @@ snapshots: '@vue/compiler-core': 3.5.25 '@vue/shared': 3.5.25 + '@vue/compiler-dom@3.5.26': + dependencies: + '@vue/compiler-core': 3.5.26 + '@vue/shared': 3.5.26 + '@vue/compiler-sfc@3.5.25': dependencies: '@babel/parser': 7.28.5 @@ -16724,11 +16359,28 @@ snapshots: postcss: 8.5.6 source-map-js: 1.2.1 + '@vue/compiler-sfc@3.5.26': + dependencies: + '@babel/parser': 7.28.5 + '@vue/compiler-core': 3.5.26 + '@vue/compiler-dom': 3.5.26 + '@vue/compiler-ssr': 3.5.26 + '@vue/shared': 3.5.26 + estree-walker: 2.0.2 + magic-string: 0.30.21 + postcss: 8.5.6 + source-map-js: 1.2.1 + '@vue/compiler-ssr@3.5.25': dependencies: '@vue/compiler-dom': 3.5.25 '@vue/shared': 3.5.25 + '@vue/compiler-ssr@3.5.26': + dependencies: + '@vue/compiler-dom': 3.5.26 + '@vue/shared': 3.5.26 + '@vue/compiler-vue2@2.7.16': dependencies: de-indent: 1.0.2 @@ -16759,32 +16411,34 @@ snapshots: optionalDependencies: typescript: 5.9.3 - '@vue/reactivity@3.5.25': + '@vue/reactivity@3.5.26': dependencies: - '@vue/shared': 3.5.25 + '@vue/shared': 3.5.26 - '@vue/runtime-core@3.5.25': + '@vue/runtime-core@3.5.26': dependencies: - '@vue/reactivity': 3.5.25 - '@vue/shared': 3.5.25 + '@vue/reactivity': 3.5.26 + '@vue/shared': 3.5.26 - '@vue/runtime-dom@3.5.25': + '@vue/runtime-dom@3.5.26': dependencies: - '@vue/reactivity': 3.5.25 - '@vue/runtime-core': 3.5.25 - '@vue/shared': 3.5.25 - csstype: 3.1.3 + '@vue/reactivity': 3.5.26 + '@vue/runtime-core': 3.5.26 + '@vue/shared': 3.5.26 + csstype: 3.2.3 - '@vue/server-renderer@3.5.25(vue@3.5.25(typescript@5.9.3))': + '@vue/server-renderer@3.5.26(vue@3.5.26(typescript@5.9.3))': dependencies: - '@vue/compiler-ssr': 3.5.25 - '@vue/shared': 3.5.25 - vue: 3.5.25(typescript@5.9.3) + '@vue/compiler-ssr': 3.5.26 + '@vue/shared': 3.5.26 + vue: 3.5.26(typescript@5.9.3) '@vue/shared@3.5.13': {} '@vue/shared@3.5.25': {} + '@vue/shared@3.5.26': {} + '@webassemblyjs/ast@1.14.1': dependencies: '@webassemblyjs/helper-numbers': 1.13.2 @@ -17049,19 +16703,18 @@ snapshots: postcss: 8.5.6 postcss-value-parser: 4.2.0 - autoprefixer@10.4.22(postcss@8.5.6): + autoprefixer@10.4.23(postcss@8.5.6): dependencies: browserslist: 4.28.1 caniuse-lite: 1.0.30001760 fraction.js: 5.3.4 - normalize-range: 0.1.2 picocolors: 1.1.1 postcss: 8.5.6 postcss-value-parser: 4.2.0 axios@1.13.2: dependencies: - follow-redirects: 1.15.9(debug@4.4.0) + follow-redirects: 1.15.9(debug@4.4.3) form-data: 4.0.5 proxy-from-env: 1.1.0 transitivePeerDependencies: @@ -17072,17 +16725,17 @@ snapshots: babel-dead-code-elimination@1.0.10: dependencies: '@babel/core': 7.28.5 - '@babel/parser': 7.26.7 + '@babel/parser': 7.28.5 '@babel/traverse': 7.28.5 '@babel/types': 7.28.5 transitivePeerDependencies: - supports-color - babel-loader@10.0.0(@babel/core@7.28.4)(webpack@5.102.1(esbuild@0.26.0)): + babel-loader@10.0.0(@babel/core@7.28.4)(webpack@5.104.0(esbuild@0.26.0)): dependencies: '@babel/core': 7.28.4 find-up: 5.0.0 - webpack: 5.102.1(esbuild@0.27.1) + webpack: 5.104.0(esbuild@0.27.1) babel-plugin-add-module-exports@0.2.1: {} @@ -17216,13 +16869,6 @@ snapshots: dependencies: fill-range: 7.1.1 - browserslist@4.24.4: - dependencies: - caniuse-lite: 1.0.30001695 - electron-to-chromium: 1.5.88 - node-releases: 2.0.19 - update-browserslist-db: 1.1.2(browserslist@4.24.4) - browserslist@4.28.1: dependencies: baseline-browser-mapping: 2.9.6 @@ -17272,8 +16918,6 @@ snapshots: callsites@3.1.0: {} - caniuse-lite@1.0.30001695: {} - caniuse-lite@1.0.30001760: {} chai@6.2.1: {} @@ -17353,7 +16997,7 @@ snapshots: cliui@9.0.1: dependencies: string-width: 7.2.0 - strip-ansi: 7.1.0 + strip-ansi: 7.1.2 wrap-ansi: 9.0.0 clone-deep@4.0.1: @@ -17409,7 +17053,7 @@ snapshots: compressible@2.0.18: dependencies: - mime-db: 1.52.0 + mime-db: 1.54.0 compression@1.7.5: dependencies: @@ -17477,14 +17121,14 @@ snapshots: dependencies: is-what: 3.14.1 - copy-webpack-plugin@13.0.1(webpack@5.102.1(esbuild@0.26.0)): + copy-webpack-plugin@13.0.1(webpack@5.104.0(esbuild@0.26.0)): dependencies: glob-parent: 6.0.2 normalize-path: 3.0.0 - schema-utils: 4.3.0 + schema-utils: 4.3.3 serialize-javascript: 6.0.2 tinyglobby: 0.2.15 - webpack: 5.102.1(esbuild@0.27.1) + webpack: 5.104.0(esbuild@0.27.1) core-js-compat@3.47.0: dependencies: @@ -17501,7 +17145,7 @@ snapshots: dependencies: env-paths: 2.2.1 import-fresh: 3.3.0 - js-yaml: 4.1.0 + js-yaml: 4.1.1 parse-json: 5.2.0 optionalDependencies: typescript: 5.9.3 @@ -17518,7 +17162,7 @@ snapshots: shebang-command: 2.0.0 which: 2.0.2 - css-loader@7.1.2(webpack@5.102.1(esbuild@0.26.0)): + css-loader@7.1.2(webpack@5.104.0(esbuild@0.26.0)): dependencies: icss-utils: 5.1.0(postcss@8.5.6) postcss: 8.5.6 @@ -17529,7 +17173,7 @@ snapshots: postcss-value-parser: 4.2.0 semver: 7.7.3 optionalDependencies: - webpack: 5.102.1(esbuild@0.27.1) + webpack: 5.104.0(esbuild@0.27.1) css-select@5.1.0: dependencies: @@ -17714,20 +17358,14 @@ snapshots: es-errors: 1.3.0 gopd: 1.2.0 - eastasianwidth@0.2.0: {} - ee-first@1.1.1: {} electron-to-chromium@1.5.267: {} - electron-to-chromium@1.5.88: {} - emoji-regex@10.4.0: {} emoji-regex@8.0.0: {} - emoji-regex@9.2.2: {} - emojis-list@3.0.0: {} encodeurl@1.0.2: {} @@ -17748,7 +17386,7 @@ snapshots: engine.io@6.6.4: dependencies: '@types/cors': 2.8.17 - '@types/node': 25.0.1 + '@types/node': 25.0.3 accepts: 1.3.8 base64id: 2.0.0 cookie: 0.7.2 @@ -17766,11 +17404,6 @@ snapshots: graceful-fs: 4.2.11 tapable: 2.2.1 - enhanced-resolve@5.18.1: - dependencies: - graceful-fs: 4.2.11 - tapable: 2.3.0 - enhanced-resolve@5.18.4: dependencies: graceful-fs: 4.2.11 @@ -17791,6 +17424,8 @@ snapshots: entities@6.0.1: {} + entities@7.0.0: {} + env-paths@2.2.1: {} environment@1.1.0: {} @@ -17810,10 +17445,10 @@ snapshots: es-errors@1.3.0: {} - es-module-lexer@1.6.0: {} - es-module-lexer@1.7.0: {} + es-module-lexer@2.0.0: {} + es-object-atoms@1.1.1: dependencies: es-errors: 1.3.0 @@ -17956,35 +17591,35 @@ snapshots: escape-string-regexp@4.0.0: {} - eslint-compat-utils@0.5.1(eslint@9.39.1(jiti@2.6.1)): + eslint-compat-utils@0.5.1(eslint@9.39.2(jiti@2.6.1)): dependencies: - eslint: 9.39.1(jiti@2.6.1) - semver: 7.6.3 + eslint: 9.39.2(jiti@2.6.1) + semver: 7.7.3 eslint-import-resolver-node@0.3.9: dependencies: debug: 3.2.7 is-core-module: 2.14.0 - resolve: 1.22.10 + resolve: 1.22.11 transitivePeerDependencies: - supports-color - eslint-plugin-es-x@7.8.0(eslint@9.39.1(jiti@2.6.1)): + eslint-plugin-es-x@7.8.0(eslint@9.39.2(jiti@2.6.1)): dependencies: - '@eslint-community/eslint-utils': 4.4.1(eslint@9.39.1(jiti@2.6.1)) + '@eslint-community/eslint-utils': 4.4.1(eslint@9.39.2(jiti@2.6.1)) '@eslint-community/regexpp': 4.11.0 - eslint: 9.39.1(jiti@2.6.1) - eslint-compat-utils: 0.5.1(eslint@9.39.1(jiti@2.6.1)) + eslint: 9.39.2(jiti@2.6.1) + eslint-compat-utils: 0.5.1(eslint@9.39.2(jiti@2.6.1)) - eslint-plugin-import-x@4.6.1(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3): + eslint-plugin-import-x@4.6.1(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3): dependencies: '@types/doctrine': 0.0.9 '@typescript-eslint/scope-manager': 8.3.0 - '@typescript-eslint/utils': 8.3.0(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/utils': 8.3.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) debug: 4.4.0 doctrine: 3.0.0 enhanced-resolve: 5.18.0 - eslint: 9.39.1(jiti@2.6.1) + eslint: 9.39.2(jiti@2.6.1) eslint-import-resolver-node: 0.3.9 get-tsconfig: 4.7.5 is-glob: 4.0.3 @@ -17996,114 +17631,126 @@ snapshots: - supports-color - typescript - eslint-plugin-n@17.15.1(eslint@9.39.1(jiti@2.6.1)): + eslint-plugin-n@17.15.1(eslint@9.39.2(jiti@2.6.1)): dependencies: - '@eslint-community/eslint-utils': 4.4.1(eslint@9.39.1(jiti@2.6.1)) + '@eslint-community/eslint-utils': 4.4.1(eslint@9.39.2(jiti@2.6.1)) enhanced-resolve: 5.18.0 - eslint: 9.39.1(jiti@2.6.1) - eslint-plugin-es-x: 7.8.0(eslint@9.39.1(jiti@2.6.1)) + eslint: 9.39.2(jiti@2.6.1) + eslint-plugin-es-x: 7.8.0(eslint@9.39.2(jiti@2.6.1)) get-tsconfig: 4.8.1 globals: 15.14.0 ignore: 5.3.2 minimatch: 9.0.5 semver: 7.6.3 - eslint-plugin-react-dom@2.3.13(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3): + eslint-plugin-react-compiler@19.1.0-rc.2(eslint@9.39.2(jiti@2.6.1)): dependencies: - '@eslint-react/ast': 2.3.13(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3) - '@eslint-react/core': 2.3.13(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3) + '@babel/core': 7.28.5 + '@babel/parser': 7.28.5 + '@babel/plugin-proposal-private-methods': 7.18.6(@babel/core@7.28.5) + eslint: 9.39.2(jiti@2.6.1) + hermes-parser: 0.25.1 + zod: 3.25.76 + zod-validation-error: 3.5.4(zod@3.25.76) + transitivePeerDependencies: + - supports-color + + eslint-plugin-react-dom@2.3.13(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3): + dependencies: + '@eslint-react/ast': 2.3.13(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) + '@eslint-react/core': 2.3.13(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) '@eslint-react/eff': 2.3.13 - '@eslint-react/shared': 2.3.13(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3) - '@eslint-react/var': 2.3.13(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3) + '@eslint-react/shared': 2.3.13(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) + '@eslint-react/var': 2.3.13(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) '@typescript-eslint/scope-manager': 8.49.0 '@typescript-eslint/types': 8.49.0 - '@typescript-eslint/utils': 8.49.0(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/utils': 8.49.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) compare-versions: 6.1.1 - eslint: 9.39.1(jiti@2.6.1) + eslint: 9.39.2(jiti@2.6.1) string-ts: 2.3.1 ts-pattern: 5.9.0 typescript: 5.9.3 transitivePeerDependencies: - supports-color - eslint-plugin-react-hooks-extra@2.3.13(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3): + eslint-plugin-react-hooks-extra@2.3.13(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3): dependencies: - '@eslint-react/ast': 2.3.13(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3) - '@eslint-react/core': 2.3.13(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3) + '@eslint-react/ast': 2.3.13(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) + '@eslint-react/core': 2.3.13(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) '@eslint-react/eff': 2.3.13 - '@eslint-react/shared': 2.3.13(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3) - '@eslint-react/var': 2.3.13(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3) + '@eslint-react/shared': 2.3.13(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) + '@eslint-react/var': 2.3.13(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) '@typescript-eslint/scope-manager': 8.49.0 - '@typescript-eslint/type-utils': 8.49.0(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/type-utils': 8.49.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) '@typescript-eslint/types': 8.49.0 - '@typescript-eslint/utils': 8.49.0(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3) - eslint: 9.39.1(jiti@2.6.1) + '@typescript-eslint/utils': 8.49.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) + eslint: 9.39.2(jiti@2.6.1) string-ts: 2.3.1 ts-pattern: 5.9.0 typescript: 5.9.3 transitivePeerDependencies: - supports-color - eslint-plugin-react-hooks@7.0.1(eslint@9.39.1(jiti@2.6.1)): + eslint-plugin-react-hooks@7.0.1(eslint@9.39.2(jiti@2.6.1)): dependencies: '@babel/core': 7.26.0 '@babel/parser': 7.26.7 - eslint: 9.39.1(jiti@2.6.1) + eslint: 9.39.2(jiti@2.6.1) hermes-parser: 0.25.1 zod: 4.1.13 zod-validation-error: 4.0.2(zod@4.1.13) transitivePeerDependencies: - supports-color - eslint-plugin-react-naming-convention@2.3.13(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3): + eslint-plugin-react-naming-convention@2.3.13(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3): dependencies: - '@eslint-react/ast': 2.3.13(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3) - '@eslint-react/core': 2.3.13(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3) + '@eslint-react/ast': 2.3.13(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) + '@eslint-react/core': 2.3.13(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) '@eslint-react/eff': 2.3.13 - '@eslint-react/shared': 2.3.13(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3) - '@eslint-react/var': 2.3.13(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3) + '@eslint-react/shared': 2.3.13(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) + '@eslint-react/var': 2.3.13(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) '@typescript-eslint/scope-manager': 8.49.0 - '@typescript-eslint/type-utils': 8.49.0(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/type-utils': 8.49.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) '@typescript-eslint/types': 8.49.0 - '@typescript-eslint/utils': 8.49.0(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3) - eslint: 9.39.1(jiti@2.6.1) + '@typescript-eslint/utils': 8.49.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) + eslint: 9.39.2(jiti@2.6.1) string-ts: 2.3.1 ts-pattern: 5.9.0 typescript: 5.9.3 transitivePeerDependencies: - supports-color - eslint-plugin-react-web-api@2.3.13(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3): + eslint-plugin-react-web-api@2.3.13(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3): dependencies: - '@eslint-react/ast': 2.3.13(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3) - '@eslint-react/core': 2.3.13(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3) + '@eslint-react/ast': 2.3.13(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) + '@eslint-react/core': 2.3.13(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) '@eslint-react/eff': 2.3.13 - '@eslint-react/shared': 2.3.13(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3) - '@eslint-react/var': 2.3.13(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3) + '@eslint-react/shared': 2.3.13(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) + '@eslint-react/var': 2.3.13(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) '@typescript-eslint/scope-manager': 8.49.0 '@typescript-eslint/types': 8.49.0 - '@typescript-eslint/utils': 8.49.0(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3) - eslint: 9.39.1(jiti@2.6.1) + '@typescript-eslint/utils': 8.49.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) + eslint: 9.39.2(jiti@2.6.1) string-ts: 2.3.1 ts-pattern: 5.9.0 typescript: 5.9.3 transitivePeerDependencies: - supports-color - eslint-plugin-react-x@2.3.13(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3): + eslint-plugin-react-x@2.3.13(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3): dependencies: - '@eslint-react/ast': 2.3.13(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3) - '@eslint-react/core': 2.3.13(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3) + '@eslint-react/ast': 2.3.13(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) + '@eslint-react/core': 2.3.13(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) '@eslint-react/eff': 2.3.13 - '@eslint-react/shared': 2.3.13(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3) - '@eslint-react/var': 2.3.13(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3) + '@eslint-react/shared': 2.3.13(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) + '@eslint-react/var': 2.3.13(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) '@typescript-eslint/scope-manager': 8.49.0 - '@typescript-eslint/type-utils': 8.49.0(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/type-utils': 8.49.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) '@typescript-eslint/types': 8.49.0 - '@typescript-eslint/utils': 8.49.0(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/utils': 8.49.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) compare-versions: 6.1.1 - eslint: 9.39.1(jiti@2.6.1) - is-immutable-type: 5.0.1(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3) + eslint: 9.39.2(jiti@2.6.1) + is-immutable-type: 5.0.1(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) string-ts: 2.3.1 ts-api-utils: 2.1.0(typescript@5.9.3) ts-pattern: 5.9.0 @@ -18111,11 +17758,11 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-plugin-svelte@3.13.1(eslint@9.39.1(jiti@2.6.1))(svelte@5.45.10): + eslint-plugin-svelte@3.13.1(eslint@9.39.2(jiti@2.6.1))(svelte@5.46.0): dependencies: - '@eslint-community/eslint-utils': 4.9.0(eslint@9.39.1(jiti@2.6.1)) + '@eslint-community/eslint-utils': 4.9.0(eslint@9.39.2(jiti@2.6.1)) '@jridgewell/sourcemap-codec': 1.5.0 - eslint: 9.39.1(jiti@2.6.1) + eslint: 9.39.2(jiti@2.6.1) esutils: 2.0.3 globals: 16.5.0 known-css-properties: 0.37.0 @@ -18123,30 +17770,30 @@ snapshots: postcss-load-config: 3.1.4(postcss@8.5.6) postcss-safe-parser: 7.0.1(postcss@8.5.6) semver: 7.6.3 - svelte-eslint-parser: 1.4.1(svelte@5.45.10) + svelte-eslint-parser: 1.4.1(svelte@5.46.0) optionalDependencies: - svelte: 5.45.10 + svelte: 5.46.0 transitivePeerDependencies: - ts-node - eslint-plugin-unused-imports@4.3.0(@typescript-eslint/eslint-plugin@8.19.0(@typescript-eslint/parser@8.19.0(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.1(jiti@2.6.1)): + eslint-plugin-unused-imports@4.3.0(@typescript-eslint/eslint-plugin@8.19.0(@typescript-eslint/parser@8.19.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1)): dependencies: - eslint: 9.39.1(jiti@2.6.1) + eslint: 9.39.2(jiti@2.6.1) optionalDependencies: - '@typescript-eslint/eslint-plugin': 8.19.0(@typescript-eslint/parser@8.19.0(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/eslint-plugin': 8.19.0(@typescript-eslint/parser@8.19.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) - eslint-plugin-vue@10.6.2(@typescript-eslint/parser@8.19.0(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.1(jiti@2.6.1))(vue-eslint-parser@9.4.3(eslint@9.39.1(jiti@2.6.1))): + eslint-plugin-vue@10.6.2(@typescript-eslint/parser@8.19.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(vue-eslint-parser@9.4.3(eslint@9.39.2(jiti@2.6.1))): dependencies: - '@eslint-community/eslint-utils': 4.4.1(eslint@9.39.1(jiti@2.6.1)) - eslint: 9.39.1(jiti@2.6.1) + '@eslint-community/eslint-utils': 4.4.1(eslint@9.39.2(jiti@2.6.1)) + eslint: 9.39.2(jiti@2.6.1) natural-compare: 1.4.0 nth-check: 2.1.1 postcss-selector-parser: 7.1.1 semver: 7.6.3 - vue-eslint-parser: 9.4.3(eslint@9.39.1(jiti@2.6.1)) + vue-eslint-parser: 9.4.3(eslint@9.39.2(jiti@2.6.1)) xml-name-validator: 4.0.0 optionalDependencies: - '@typescript-eslint/parser': 8.19.0(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/parser': 8.19.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) eslint-scope@5.1.1: dependencies: @@ -18174,24 +17821,24 @@ snapshots: eslint-visitor-keys@4.2.1: {} - eslint@9.39.1(jiti@2.6.1): + eslint@9.39.2(jiti@2.6.1): dependencies: - '@eslint-community/eslint-utils': 4.9.0(eslint@9.39.1(jiti@2.6.1)) + '@eslint-community/eslint-utils': 4.9.0(eslint@9.39.2(jiti@2.6.1)) '@eslint-community/regexpp': 4.12.1 '@eslint/config-array': 0.21.1 '@eslint/config-helpers': 0.4.2 '@eslint/core': 0.17.0 '@eslint/eslintrc': 3.3.3 - '@eslint/js': 9.39.1 + '@eslint/js': 9.39.2 '@eslint/plugin-kit': 0.4.1 '@humanfs/node': 0.16.6 '@humanwhocodes/module-importer': 1.0.1 '@humanwhocodes/retry': 0.4.3 - '@types/estree': 1.0.6 + '@types/estree': 1.0.8 ajv: 6.12.6 chalk: 4.1.2 cross-spawn: 7.0.6 - debug: 4.4.0 + debug: 4.4.3 escape-string-regexp: 4.0.0 eslint-scope: 8.4.0 eslint-visitor-keys: 4.2.1 @@ -18231,8 +17878,8 @@ snapshots: espree@9.6.1: dependencies: - acorn: 8.14.0 - acorn-jsx: 5.3.2(acorn@8.14.0) + acorn: 8.15.0 + acorn-jsx: 5.3.2(acorn@8.15.0) eslint-visitor-keys: 3.4.3 esprima@4.0.1: {} @@ -18243,7 +17890,7 @@ snapshots: esrap@2.2.1: dependencies: - '@jridgewell/sourcemap-codec': 1.5.0 + '@jridgewell/sourcemap-codec': 1.5.5 esrecurse@4.3.0: dependencies: @@ -18257,7 +17904,7 @@ snapshots: estree-walker@3.0.3: dependencies: - '@types/estree': 1.0.6 + '@types/estree': 1.0.8 esutils@2.0.3: {} @@ -18497,9 +18144,9 @@ snapshots: flatted@3.3.1: {} - follow-redirects@1.15.9(debug@4.4.0): + follow-redirects@1.15.9(debug@4.4.3): optionalDependencies: - debug: 4.4.0 + debug: 4.4.3 for-in@1.0.2: {} @@ -18507,11 +18154,6 @@ snapshots: dependencies: for-in: 1.0.2 - foreground-child@3.2.1: - dependencies: - cross-spawn: 7.0.6 - signal-exit: 4.1.0 - form-data@4.0.5: dependencies: asynckit: 0.4.0 @@ -18613,15 +18255,6 @@ snapshots: glob-to-regexp@0.4.1: {} - glob@10.4.2: - dependencies: - foreground-child: 3.2.1 - jackspeak: 3.4.0 - minimatch: 9.0.5 - minipass: 7.1.2 - package-json-from-dist: 1.0.0 - path-scurry: 1.11.1 - glob@13.0.0: dependencies: minimatch: 10.1.1 @@ -18758,7 +18391,7 @@ snapshots: http-proxy-middleware@2.0.9(@types/express@4.17.21): dependencies: '@types/http-proxy': 1.17.15 - http-proxy: 1.18.1(debug@4.4.0) + http-proxy: 1.18.1(debug@4.4.3) is-glob: 4.0.3 is-plain-obj: 3.0.0 micromatch: 4.0.8 @@ -18770,18 +18403,18 @@ snapshots: http-proxy-middleware@3.0.5: dependencies: '@types/http-proxy': 1.17.15 - debug: 4.4.0 - http-proxy: 1.18.1(debug@4.4.0) + debug: 4.4.3 + http-proxy: 1.18.1(debug@4.4.3) is-glob: 4.0.3 is-plain-object: 5.0.0 micromatch: 4.0.8 transitivePeerDependencies: - supports-color - http-proxy@1.18.1(debug@4.4.0): + http-proxy@1.18.1(debug@4.4.3): dependencies: eventemitter3: 4.0.7 - follow-redirects: 1.15.9(debug@4.4.0) + follow-redirects: 1.15.9(debug@4.4.3) requires-port: 1.0.0 transitivePeerDependencies: - debug @@ -18789,7 +18422,7 @@ snapshots: https-proxy-agent@7.0.6: dependencies: agent-base: 7.1.3 - debug: 4.4.0 + debug: 4.4.3 transitivePeerDependencies: - supports-color @@ -18909,10 +18542,10 @@ snapshots: dependencies: is-extglob: 2.1.1 - is-immutable-type@5.0.1(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3): + is-immutable-type@5.0.1(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3): dependencies: - '@typescript-eslint/type-utils': 8.49.0(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3) - eslint: 9.39.1(jiti@2.6.1) + '@typescript-eslint/type-utils': 8.49.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) + eslint: 9.39.2(jiti@2.6.1) ts-api-utils: 2.1.0(typescript@5.9.3) ts-declaration-location: 1.0.5(typescript@5.9.3) typescript: 5.9.3 @@ -18947,7 +18580,7 @@ snapshots: is-reference@3.0.3: dependencies: - '@types/estree': 1.0.6 + '@types/estree': 1.0.8 is-regex@1.2.1: dependencies: @@ -19004,8 +18637,8 @@ snapshots: istanbul-lib-instrument@5.2.1: dependencies: - '@babel/core': 7.26.0 - '@babel/parser': 7.26.7 + '@babel/core': 7.28.5 + '@babel/parser': 7.28.5 '@istanbuljs/schema': 0.1.3 istanbul-lib-coverage: 3.2.2 semver: 6.3.1 @@ -19014,8 +18647,8 @@ snapshots: istanbul-lib-instrument@6.0.3: dependencies: - '@babel/core': 7.28.4 - '@babel/parser': 7.26.7 + '@babel/core': 7.28.5 + '@babel/parser': 7.28.5 '@istanbuljs/schema': 0.1.3 istanbul-lib-coverage: 3.2.2 semver: 7.7.3 @@ -19041,12 +18674,6 @@ snapshots: html-escaper: 2.0.2 istanbul-lib-report: 3.0.1 - jackspeak@3.4.0: - dependencies: - '@isaacs/cliui': 8.0.2 - optionalDependencies: - '@pkgjs/parseargs': 0.11.0 - jasmine-core@4.6.1: {} jasmine-core@5.13.0: {} @@ -19060,7 +18687,7 @@ snapshots: jest-worker@27.5.1: dependencies: - '@types/node': 25.0.1 + '@types/node': 25.0.3 merge-stream: 2.0.0 supports-color: 8.1.1 @@ -19077,10 +18704,6 @@ snapshots: argparse: 1.0.10 esprima: 4.0.1 - js-yaml@4.1.0: - dependencies: - argparse: 2.0.1 - js-yaml@4.1.1: dependencies: argparse: 2.0.1 @@ -19115,8 +18738,6 @@ snapshots: - supports-color - utf-8-validate - jsesc@3.0.2: {} - jsesc@3.1.0: {} json-buffer@3.0.1: {} @@ -19190,7 +18811,7 @@ snapshots: dom-serialize: 2.2.1 glob: 7.2.3 graceful-fs: 4.2.11 - http-proxy: 1.18.1(debug@4.4.0) + http-proxy: 1.18.1(debug@4.4.3) isbinaryfile: 4.0.10 lodash: 4.17.21 log4js: 6.9.1 @@ -19219,10 +18840,10 @@ snapshots: kleur@4.1.5: {} - knip@5.73.3(@types/node@25.0.1)(typescript@5.9.3): + knip@5.75.2(@types/node@25.0.3)(typescript@5.9.3): dependencies: '@nodelib/fs.walk': 1.2.8 - '@types/node': 25.0.1 + '@types/node': 25.0.3 fast-glob: 3.3.3 formatly: 0.3.0 jiti: 2.6.1 @@ -19230,7 +18851,7 @@ snapshots: minimist: 1.2.8 oxc-resolver: 11.15.0 picocolors: 1.1.1 - picomatch: 4.0.2 + picomatch: 4.0.3 smol-toml: 1.5.2 strip-json-comments: 5.0.3 typescript: 5.9.3 @@ -19245,25 +18866,11 @@ snapshots: picocolors: 1.1.1 shell-quote: 1.8.2 - less-loader@12.3.0(less@4.4.2)(webpack@5.102.1(esbuild@0.26.0)): + less-loader@12.3.0(less@4.4.2)(webpack@5.104.0(esbuild@0.26.0)): dependencies: less: 4.4.2 optionalDependencies: - webpack: 5.102.1(esbuild@0.27.1) - - less@4.2.1: - dependencies: - copy-anything: 2.0.6 - parse-node-version: 1.0.1 - tslib: 2.8.1 - optionalDependencies: - errno: 0.1.8 - graceful-fs: 4.2.11 - image-size: 0.5.5 - make-dir: 2.1.0 - mime: 1.6.0 - needle: 3.3.1 - source-map: 0.6.1 + webpack: 5.104.0(esbuild@0.27.1) less@4.4.2: dependencies: @@ -19284,11 +18891,11 @@ snapshots: prelude-ls: 1.2.1 type-check: 0.4.0 - license-webpack-plugin@4.0.2(webpack@5.102.1(esbuild@0.26.0)): + license-webpack-plugin@4.0.2(webpack@5.104.0(esbuild@0.26.0)): dependencies: - webpack-sources: 3.2.3 + webpack-sources: 3.3.3 optionalDependencies: - webpack: 5.102.1(esbuild@0.27.1) + webpack: 5.104.0(esbuild@0.27.1) liftoff@5.0.0: dependencies: @@ -19403,7 +19010,7 @@ snapshots: '@lmdb/lmdb-win32-x64': 3.4.3 optional: true - loader-runner@4.3.0: {} + loader-runner@4.3.1: {} loader-utils@2.0.4: dependencies: @@ -19445,7 +19052,7 @@ snapshots: ansi-escapes: 7.0.0 cli-cursor: 5.0.0 slice-ansi: 7.1.0 - strip-ansi: 7.1.0 + strip-ansi: 7.1.2 wrap-ansi: 9.0.0 log4js@6.9.1: @@ -19458,12 +19065,6 @@ snapshots: transitivePeerDependencies: - supports-color - loose-envify@1.4.0: - dependencies: - js-tokens: 4.0.0 - - lru-cache@10.3.0: {} - lru-cache@11.0.2: {} lru-cache@11.2.4: {} @@ -19481,7 +19082,7 @@ snapshots: dependencies: yallist: 4.0.0 - lucide-react@0.561.0(react@19.2.3): + lucide-react@0.562.0(react@19.2.3): dependencies: react: 19.2.3 @@ -19598,11 +19199,11 @@ snapshots: min-indent@1.0.1: {} - mini-css-extract-plugin@2.9.4(webpack@5.102.1(esbuild@0.26.0)): + mini-css-extract-plugin@2.9.4(webpack@5.104.0(esbuild@0.26.0)): dependencies: - schema-utils: 4.3.0 - tapable: 2.2.1 - webpack: 5.102.1(esbuild@0.27.1) + schema-utils: 4.3.3 + tapable: 2.3.0 + webpack: 5.104.0(esbuild@0.27.1) minimalistic-assert@1.0.1: {} @@ -19640,7 +19241,7 @@ snapshots: dependencies: minipass: 7.1.2 minipass-sized: 1.0.3 - minizlib: 3.0.1 + minizlib: 3.1.0 optionalDependencies: encoding: 0.1.13 @@ -19662,11 +19263,6 @@ snapshots: minipass@7.1.2: {} - minizlib@3.0.1: - dependencies: - minipass: 7.1.2 - rimraf: 5.0.7 - minizlib@3.1.0: dependencies: minipass: 7.1.2 @@ -19746,11 +19342,11 @@ snapshots: neo-async@2.6.2: {} - ng-packagr@21.0.0(@angular/compiler-cli@21.0.5(@angular/compiler@21.0.5)(typescript@5.9.3))(tailwindcss@4.1.18)(tslib@2.8.1)(typescript@5.9.3): + ng-packagr@21.0.1(@angular/compiler-cli@21.0.6(@angular/compiler@21.0.6)(typescript@5.9.3))(tailwindcss@4.1.18)(tslib@2.8.1)(typescript@5.9.3): dependencies: '@ampproject/remapping': 2.3.0 - '@angular/compiler-cli': 21.0.5(@angular/compiler@21.0.5)(typescript@5.9.3) - '@rollup/plugin-json': 6.1.0(rollup@4.32.0) + '@angular/compiler-cli': 21.0.6(@angular/compiler@21.0.6)(typescript@5.9.3) + '@rollup/plugin-json': 6.1.0(rollup@4.53.3) '@rollup/wasm-node': 4.29.1 ajv: 8.17.1 ansi-colors: 4.1.3 @@ -19762,18 +19358,18 @@ snapshots: find-cache-directory: 6.0.0 injection-js: 2.4.0 jsonc-parser: 3.3.1 - less: 4.2.1 + less: 4.4.2 ora: 9.0.0 piscina: 5.1.4 postcss: 8.5.6 - rollup-plugin-dts: 6.3.0(rollup@4.32.0)(typescript@5.9.3) + rollup-plugin-dts: 6.3.0(rollup@4.53.3)(typescript@5.9.3) rxjs: 7.8.2 - sass: 1.83.1 + sass: 1.93.2 tinyglobby: 0.2.15 tslib: 2.8.1 typescript: 5.9.3 optionalDependencies: - rollup: 4.32.0 + rollup: 4.53.3 tailwindcss: 4.1.18 node-addon-api@6.1.0: @@ -19811,8 +19407,6 @@ snapshots: node-machine-id@1.1.12: {} - node-releases@2.0.19: {} - node-releases@2.0.27: {} nopt@9.0.0: @@ -19861,7 +19455,7 @@ snapshots: make-fetch-happen: 15.0.3 minipass: 7.1.2 minipass-fetch: 5.0.0 - minizlib: 3.0.1 + minizlib: 3.1.0 npm-package-arg: 13.0.1 proc-log: 6.1.0 transitivePeerDependencies: @@ -19879,7 +19473,7 @@ snapshots: dependencies: boolbase: 1.0.0 - nx@22.2.1: + nx@22.3.2: dependencies: '@napi-rs/wasm-runtime': 0.2.4 '@yarnpkg/lockfile': 1.1.0 @@ -19906,7 +19500,7 @@ snapshots: open: 8.4.2 ora: 5.3.0 resolve.exports: 2.0.3 - semver: 7.6.3 + semver: 7.7.3 string-width: 4.2.3 tar-stream: 2.2.0 tmp: 0.2.3 @@ -19917,16 +19511,16 @@ snapshots: yargs: 17.7.2 yargs-parser: 21.1.1 optionalDependencies: - '@nx/nx-darwin-arm64': 22.2.1 - '@nx/nx-darwin-x64': 22.2.1 - '@nx/nx-freebsd-x64': 22.2.1 - '@nx/nx-linux-arm-gnueabihf': 22.2.1 - '@nx/nx-linux-arm64-gnu': 22.2.1 - '@nx/nx-linux-arm64-musl': 22.2.1 - '@nx/nx-linux-x64-gnu': 22.2.1 - '@nx/nx-linux-x64-musl': 22.2.1 - '@nx/nx-win32-arm64-msvc': 22.2.1 - '@nx/nx-win32-x64-msvc': 22.2.1 + '@nx/nx-darwin-arm64': 22.3.2 + '@nx/nx-darwin-x64': 22.3.2 + '@nx/nx-freebsd-x64': 22.3.2 + '@nx/nx-linux-arm-gnueabihf': 22.3.2 + '@nx/nx-linux-arm64-gnu': 22.3.2 + '@nx/nx-linux-arm64-musl': 22.3.2 + '@nx/nx-linux-x64-gnu': 22.3.2 + '@nx/nx-linux-x64-musl': 22.3.2 + '@nx/nx-win32-arm64-msvc': 22.3.2 + '@nx/nx-win32-x64-msvc': 22.3.2 transitivePeerDependencies: - debug @@ -20060,8 +19654,6 @@ snapshots: is-network-error: 1.1.0 retry: 0.13.1 - package-json-from-dist@1.0.0: {} - package-json-from-dist@1.0.1: {} package-manager-detector@1.6.0: {} @@ -20084,7 +19676,7 @@ snapshots: promise-retry: 2.0.1 sigstore: 4.0.0 ssri: 12.0.0 - tar: 7.4.3 + tar: 7.5.2 transitivePeerDependencies: - supports-color @@ -20100,7 +19692,7 @@ snapshots: parse-json@5.2.0: dependencies: - '@babel/code-frame': 7.26.2 + '@babel/code-frame': 7.27.1 error-ex: 1.3.2 json-parse-even-better-errors: 2.3.1 lines-and-columns: 1.2.4 @@ -20143,11 +19735,6 @@ snapshots: dependencies: path-root-regex: 0.1.2 - path-scurry@1.11.1: - dependencies: - lru-cache: 10.3.0 - minipass: 7.1.2 - path-scurry@2.0.0: dependencies: lru-cache: 11.0.2 @@ -20199,14 +19786,14 @@ snapshots: optionalDependencies: postcss: 8.5.6 - postcss-loader@8.2.0(postcss@8.5.6)(typescript@5.9.3)(webpack@5.102.1(esbuild@0.26.0)): + postcss-loader@8.2.0(postcss@8.5.6)(typescript@5.9.3)(webpack@5.104.0(esbuild@0.26.0)): dependencies: cosmiconfig: 9.0.0(typescript@5.9.3) jiti: 2.6.1 postcss: 8.5.6 semver: 7.7.3 optionalDependencies: - webpack: 5.102.1(esbuild@0.27.1) + webpack: 5.104.0(esbuild@0.27.1) transitivePeerDependencies: - typescript @@ -20220,13 +19807,13 @@ snapshots: dependencies: icss-utils: 5.1.0(postcss@8.5.6) postcss: 8.5.6 - postcss-selector-parser: 7.0.0 + postcss-selector-parser: 7.1.1 postcss-value-parser: 4.2.0 postcss-modules-scope@3.2.1(postcss@8.5.6): dependencies: postcss: 8.5.6 - postcss-selector-parser: 7.0.0 + postcss-selector-parser: 7.1.1 postcss-modules-values@4.0.0(postcss@8.5.6): dependencies: @@ -20263,10 +19850,10 @@ snapshots: prelude-ls@1.2.1: {} - prettier-plugin-svelte@3.4.0(prettier@3.7.4)(svelte@5.45.10): + prettier-plugin-svelte@3.4.1(prettier@3.7.4)(svelte@5.46.0): dependencies: prettier: 3.7.4 - svelte: 5.45.10 + svelte: 5.46.0 prettier@3.7.4: {} @@ -20344,19 +19931,13 @@ snapshots: iconv-lite: 0.7.1 unpipe: 1.0.0 - react-day-picker@9.12.0(react@19.2.3): + react-day-picker@9.13.0(react@19.2.3): dependencies: '@date-fns/tz': 1.4.1 date-fns: 4.1.0 date-fns-jalali: 4.1.0-0 react: 19.2.3 - react-dom@18.3.1(react@19.2.3): - dependencies: - loose-envify: 1.4.0 - react: 19.2.3 - scheduler: 0.23.2 - react-dom@19.2.3(react@19.2.3): dependencies: react: 19.2.3 @@ -20429,7 +20010,7 @@ snapshots: rechoir@0.8.0: dependencies: - resolve: 1.22.10 + resolve: 1.22.11 redent@3.0.0: dependencies: @@ -20438,10 +20019,6 @@ snapshots: reflect-metadata@0.2.2: {} - regenerate-unicode-properties@10.2.0: - dependencies: - regenerate: 1.4.2 - regenerate-unicode-properties@10.2.2: dependencies: regenerate: 1.4.2 @@ -20450,15 +20027,6 @@ snapshots: regex-parser@2.3.0: {} - regexpu-core@6.2.0: - dependencies: - regenerate: 1.4.2 - regenerate-unicode-properties: 10.2.0 - regjsgen: 0.8.0 - regjsparser: 0.12.0 - unicode-match-property-ecmascript: 2.0.0 - unicode-match-property-value-ecmascript: 2.2.0 - regexpu-core@6.4.0: dependencies: regenerate: 1.4.2 @@ -20470,10 +20038,6 @@ snapshots: regjsgen@0.8.0: {} - regjsparser@0.12.0: - dependencies: - jsesc: 3.0.2 - regjsparser@0.13.0: dependencies: jsesc: 3.1.0 @@ -20539,10 +20103,6 @@ snapshots: dependencies: glob: 7.2.3 - rimraf@5.0.7: - dependencies: - glob: 10.4.2 - rimraf@6.1.2: dependencies: glob: 13.0.0 @@ -20568,10 +20128,10 @@ snapshots: '@rolldown/binding-win32-ia32-msvc': 1.0.0-beta.47 '@rolldown/binding-win32-x64-msvc': 1.0.0-beta.47 - rollup-plugin-dts@6.3.0(rollup@4.32.0)(typescript@5.9.3): + rollup-plugin-dts@6.3.0(rollup@4.53.3)(typescript@5.9.3): dependencies: magic-string: 0.30.21 - rollup: 4.32.0 + rollup: 4.53.3 typescript: 5.9.3 optionalDependencies: '@babel/code-frame': 7.27.1 @@ -20582,31 +20142,6 @@ snapshots: magic-string: 0.30.17 rollup: 4.53.3 - rollup@4.32.0: - dependencies: - '@types/estree': 1.0.6 - optionalDependencies: - '@rollup/rollup-android-arm-eabi': 4.32.0 - '@rollup/rollup-android-arm64': 4.32.0 - '@rollup/rollup-darwin-arm64': 4.32.0 - '@rollup/rollup-darwin-x64': 4.32.0 - '@rollup/rollup-freebsd-arm64': 4.32.0 - '@rollup/rollup-freebsd-x64': 4.32.0 - '@rollup/rollup-linux-arm-gnueabihf': 4.32.0 - '@rollup/rollup-linux-arm-musleabihf': 4.32.0 - '@rollup/rollup-linux-arm64-gnu': 4.32.0 - '@rollup/rollup-linux-arm64-musl': 4.32.0 - '@rollup/rollup-linux-loongarch64-gnu': 4.32.0 - '@rollup/rollup-linux-powerpc64le-gnu': 4.32.0 - '@rollup/rollup-linux-riscv64-gnu': 4.32.0 - '@rollup/rollup-linux-s390x-gnu': 4.32.0 - '@rollup/rollup-linux-x64-gnu': 4.32.0 - '@rollup/rollup-linux-x64-musl': 4.32.0 - '@rollup/rollup-win32-arm64-msvc': 4.32.0 - '@rollup/rollup-win32-ia32-msvc': 4.32.0 - '@rollup/rollup-win32-x64-msvc': 4.32.0 - fsevents: 2.3.3 - rollup@4.53.3: dependencies: '@types/estree': 1.0.8 @@ -20671,20 +20206,12 @@ snapshots: safer-buffer@2.1.2: {} - sass-loader@16.0.5(sass@1.93.2)(webpack@5.102.1(esbuild@0.26.0)): + sass-loader@16.0.5(sass@1.93.2)(webpack@5.104.0(esbuild@0.26.0)): dependencies: neo-async: 2.6.2 optionalDependencies: sass: 1.93.2 - webpack: 5.102.1(esbuild@0.27.1) - - sass@1.83.1: - dependencies: - chokidar: 4.0.3 - immutable: 5.0.3 - source-map-js: 1.2.1 - optionalDependencies: - '@parcel/watcher': 2.5.0 + webpack: 5.104.0(esbuild@0.27.1) sass@1.93.2: dependencies: @@ -20701,19 +20228,8 @@ snapshots: dependencies: xmlchars: 2.2.0 - scheduler@0.23.2: - dependencies: - loose-envify: 1.4.0 - scheduler@0.27.0: {} - schema-utils@4.3.0: - dependencies: - '@types/json-schema': 7.0.15 - ajv: 8.17.1 - ajv-formats: 2.1.1(ajv@8.17.1) - ajv-keywords: 5.1.0(ajv@8.17.1) - schema-utils@4.3.3: dependencies: '@types/json-schema': 7.0.15 @@ -20995,7 +20511,7 @@ snapshots: socks-proxy-agent@8.0.4: dependencies: agent-base: 7.1.3 - debug: 4.4.0 + debug: 4.4.3 socks: 2.8.3 transitivePeerDependencies: - supports-color @@ -21022,11 +20538,11 @@ snapshots: source-map-js@1.2.1: {} - source-map-loader@5.0.0(webpack@5.102.1(esbuild@0.26.0)): + source-map-loader@5.0.0(webpack@5.104.0(esbuild@0.26.0)): dependencies: iconv-lite: 0.6.3 source-map-js: 1.2.1 - webpack: 5.102.1(esbuild@0.27.1) + webpack: 5.104.0(esbuild@0.27.1) source-map-support@0.5.21: dependencies: @@ -21055,7 +20571,7 @@ snapshots: spdy-transport@3.0.0: dependencies: - debug: 4.4.0 + debug: 4.4.3 detect-node: 2.1.0 hpack.js: 2.1.6 obuf: 1.1.2 @@ -21066,7 +20582,7 @@ snapshots: spdy@4.0.2: dependencies: - debug: 4.4.0 + debug: 4.4.3 handle-thing: 2.0.1 http-deceiver: 1.2.7 select-hose: 2.0.0 @@ -21122,17 +20638,11 @@ snapshots: is-fullwidth-code-point: 3.0.0 strip-ansi: 6.0.1 - string-width@5.1.2: - dependencies: - eastasianwidth: 0.2.0 - emoji-regex: 9.2.2 - strip-ansi: 7.1.0 - string-width@7.2.0: dependencies: emoji-regex: 10.4.0 get-east-asian-width: 1.3.0 - strip-ansi: 7.1.0 + strip-ansi: 7.1.2 string-width@8.1.0: dependencies: @@ -21151,10 +20661,6 @@ snapshots: dependencies: ansi-regex: 5.0.1 - strip-ansi@7.1.0: - dependencies: - ansi-regex: 6.0.1 - strip-ansi@7.1.2: dependencies: ansi-regex: 6.0.1 @@ -21183,19 +20689,19 @@ snapshots: supports-preserve-symlinks-flag@1.0.0: {} - svelte-check@4.3.4(picomatch@4.0.3)(svelte@5.45.10)(typescript@5.9.3): + svelte-check@4.3.4(picomatch@4.0.3)(svelte@5.46.0)(typescript@5.9.3): dependencies: '@jridgewell/trace-mapping': 0.3.25 chokidar: 4.0.3 fdir: 6.4.3(picomatch@4.0.3) picocolors: 1.1.1 sade: 1.8.1 - svelte: 5.45.10 + svelte: 5.46.0 typescript: 5.9.3 transitivePeerDependencies: - picomatch - svelte-eslint-parser@1.4.1(svelte@5.45.10): + svelte-eslint-parser@1.4.1(svelte@5.46.0): dependencies: eslint-scope: 8.2.0 eslint-visitor-keys: 4.2.0 @@ -21204,22 +20710,22 @@ snapshots: postcss-scss: 4.0.9(postcss@8.5.6) postcss-selector-parser: 7.0.0 optionalDependencies: - svelte: 5.45.10 + svelte: 5.46.0 - svelte2tsx@0.7.45(svelte@5.45.10)(typescript@5.9.3): + svelte2tsx@0.7.45(svelte@5.46.0)(typescript@5.9.3): dependencies: dedent-js: 1.0.1 scule: 1.3.0 - svelte: 5.45.10 + svelte: 5.46.0 typescript: 5.9.3 - svelte@5.45.10: + svelte@5.46.0: dependencies: '@jridgewell/remapping': 2.3.5 - '@jridgewell/sourcemap-codec': 1.5.0 - '@sveltejs/acorn-typescript': 1.0.8(acorn@8.14.0) - '@types/estree': 1.0.6 - acorn: 8.14.0 + '@jridgewell/sourcemap-codec': 1.5.5 + '@sveltejs/acorn-typescript': 1.0.8(acorn@8.15.0) + '@types/estree': 1.0.8 + acorn: 8.15.0 aria-query: 5.3.2 axobject-query: 4.1.0 clsx: 2.1.1 @@ -21228,7 +20734,7 @@ snapshots: esrap: 2.2.1 is-reference: 3.0.3 locate-character: 3.0.0 - magic-string: 0.30.17 + magic-string: 0.30.21 zimmerframe: 1.1.2 symbol-tree@3.2.4: {} @@ -21253,15 +20759,6 @@ snapshots: inherits: 2.0.4 readable-stream: 3.6.2 - tar@7.4.3: - dependencies: - '@isaacs/fs-minipass': 4.0.1 - chownr: 3.0.0 - minipass: 7.1.2 - minizlib: 3.0.1 - mkdirp: 3.0.1 - yallist: 5.0.0 - tar@7.5.2: dependencies: '@isaacs/fs-minipass': 4.0.1 @@ -21270,14 +20767,14 @@ snapshots: minizlib: 3.1.0 yallist: 5.0.0 - terser-webpack-plugin@5.3.11(esbuild@0.27.1)(webpack@5.102.1(esbuild@0.26.0)): + terser-webpack-plugin@5.3.16(esbuild@0.27.1)(webpack@5.104.0(esbuild@0.26.0)): dependencies: - '@jridgewell/trace-mapping': 0.3.25 + '@jridgewell/trace-mapping': 0.3.31 jest-worker: 27.5.1 schema-utils: 4.3.3 serialize-javascript: 6.0.2 terser: 5.44.0 - webpack: 5.102.1(esbuild@0.27.1) + webpack: 5.104.0(esbuild@0.27.1) optionalDependencies: esbuild: 0.27.1 @@ -21423,12 +20920,12 @@ snapshots: typescript: 5.9.3 yaml: 2.6.1 - typescript-eslint@8.19.0(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3): + typescript-eslint@8.19.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3): dependencies: - '@typescript-eslint/eslint-plugin': 8.19.0(@typescript-eslint/parser@8.19.0(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3) - '@typescript-eslint/parser': 8.19.0(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3) - '@typescript-eslint/utils': 8.19.0(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3) - eslint: 9.39.1(jiti@2.6.1) + '@typescript-eslint/eslint-plugin': 8.19.0(@typescript-eslint/parser@8.19.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/parser': 8.19.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/utils': 8.19.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) + eslint: 9.39.2(jiti@2.6.1) typescript: 5.9.3 transitivePeerDependencies: - supports-color @@ -21456,8 +20953,6 @@ snapshots: unicode-canonical-property-names-ecmascript: 2.0.1 unicode-property-aliases-ecmascript: 2.1.0 - unicode-match-property-value-ecmascript@2.2.0: {} - unicode-match-property-value-ecmascript@2.2.1: {} unicode-property-aliases-ecmascript@2.1.0: {} @@ -21483,12 +20978,6 @@ snapshots: picomatch: 4.0.3 webpack-virtual-modules: 0.6.2 - update-browserslist-db@1.1.2(browserslist@4.24.4): - dependencies: - browserslist: 4.24.4 - escalade: 3.2.0 - picocolors: 1.1.1 - update-browserslist-db@1.2.2(browserslist@4.28.1): dependencies: browserslist: 4.28.1 @@ -21537,9 +21026,9 @@ snapshots: vary@1.1.2: {} - vite-plugin-dts@4.0.3(@types/node@25.0.1)(rollup@4.53.3)(typescript@5.9.3)(vite@7.2.7(@types/node@25.0.1)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1)): + vite-plugin-dts@4.0.3(@types/node@25.0.3)(rollup@4.53.3)(typescript@5.9.3)(vite@7.3.0(@types/node@25.0.3)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1)): dependencies: - '@microsoft/api-extractor': 7.47.4(@types/node@25.0.1) + '@microsoft/api-extractor': 7.47.4(@types/node@25.0.3) '@rollup/pluginutils': 5.1.0(rollup@4.53.3) '@volar/typescript': 2.4.11 '@vue/language-core': 2.0.29(typescript@5.9.3) @@ -21551,17 +21040,17 @@ snapshots: typescript: 5.9.3 vue-tsc: 2.0.29(typescript@5.9.3) optionalDependencies: - vite: 7.2.7(@types/node@25.0.1)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1) + vite: 7.3.0(@types/node@25.0.3)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1) transitivePeerDependencies: - '@types/node' - rollup - supports-color - vite-plugin-externalize-deps@0.8.0(vite@7.2.7(@types/node@25.0.1)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1)): + vite-plugin-externalize-deps@0.8.0(vite@7.3.0(@types/node@25.0.3)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1)): dependencies: - vite: 7.2.7(@types/node@25.0.1)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1) + vite: 7.3.0(@types/node@25.0.3)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1) - vite-plugin-solid@2.11.10(@testing-library/jest-dom@6.9.1)(solid-js@1.9.10)(vite@7.2.7(@types/node@25.0.1)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1)): + vite-plugin-solid@2.11.10(@testing-library/jest-dom@6.9.1)(solid-js@1.9.10)(vite@7.3.0(@types/node@25.0.3)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1)): dependencies: '@babel/core': 7.26.0 '@types/babel__core': 7.20.5 @@ -21569,14 +21058,14 @@ snapshots: merge-anything: 5.1.7 solid-js: 1.9.10 solid-refresh: 0.6.3(solid-js@1.9.10) - vite: 7.2.7(@types/node@25.0.1)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1) - vitefu: 1.0.4(vite@7.2.7(@types/node@25.0.1)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1)) + vite: 7.3.0(@types/node@25.0.3)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1) + vitefu: 1.0.4(vite@7.3.0(@types/node@25.0.3)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1)) optionalDependencies: '@testing-library/jest-dom': 6.9.1 transitivePeerDependencies: - supports-color - vite-prerender-plugin@0.5.12(vite@7.2.7(@types/node@25.0.1)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1)): + vite-prerender-plugin@0.5.12(vite@7.3.0(@types/node@25.0.3)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1)): dependencies: kolorist: 1.8.0 magic-string: 0.30.17 @@ -21584,20 +21073,20 @@ snapshots: simple-code-frame: 1.3.0 source-map: 0.7.4 stack-trace: 1.0.0-pre2 - vite: 7.2.7(@types/node@25.0.1)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1) + vite: 7.3.0(@types/node@25.0.3)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1) - vite-tsconfig-paths@5.1.4(typescript@5.9.3)(vite@7.2.7(@types/node@25.0.1)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1)): + vite-tsconfig-paths@5.1.4(typescript@5.9.3)(vite@7.3.0(@types/node@25.0.3)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1)): dependencies: debug: 4.4.0 globrex: 0.1.2 tsconfck: 3.1.1(typescript@5.9.3) optionalDependencies: - vite: 7.2.7(@types/node@25.0.1)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1) + vite: 7.3.0(@types/node@25.0.3)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1) transitivePeerDependencies: - supports-color - typescript - vite@7.2.2(@types/node@25.0.1)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1): + vite@7.2.2(@types/node@25.0.3)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1): dependencies: esbuild: 0.25.12 fdir: 6.5.0(picomatch@4.0.3) @@ -21606,7 +21095,7 @@ snapshots: rollup: 4.53.3 tinyglobby: 0.2.15 optionalDependencies: - '@types/node': 25.0.1 + '@types/node': 25.0.3 fsevents: 2.3.3 jiti: 2.6.1 less: 4.4.2 @@ -21616,16 +21105,16 @@ snapshots: tsx: 4.19.2 yaml: 2.6.1 - vite@7.2.7(@types/node@25.0.1)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1): + vite@7.3.0(@types/node@25.0.3)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1): dependencies: - esbuild: 0.25.12 + esbuild: 0.27.1 fdir: 6.5.0(picomatch@4.0.3) picomatch: 4.0.3 postcss: 8.5.6 rollup: 4.53.3 tinyglobby: 0.2.15 optionalDependencies: - '@types/node': 25.0.1 + '@types/node': 25.0.3 fsevents: 2.3.3 jiti: 2.6.1 less: 4.4.2 @@ -21635,23 +21124,23 @@ snapshots: tsx: 4.19.2 yaml: 2.6.1 - vitefu@1.0.4(vite@7.2.7(@types/node@25.0.1)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1)): + vitefu@1.0.4(vite@7.3.0(@types/node@25.0.3)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1)): optionalDependencies: - vite: 7.2.7(@types/node@25.0.1)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1) + vite: 7.3.0(@types/node@25.0.3)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1) - vitefu@1.1.1(vite@7.2.7(@types/node@25.0.1)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1)): + vitefu@1.1.1(vite@7.3.0(@types/node@25.0.3)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1)): optionalDependencies: - vite: 7.2.7(@types/node@25.0.1)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1) + vite: 7.3.0(@types/node@25.0.3)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1) - vitest@4.0.15(@types/node@25.0.1)(jiti@2.6.1)(jsdom@27.3.0(postcss@8.5.6))(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1): + vitest@4.0.16(@types/node@25.0.3)(jiti@2.6.1)(jsdom@27.3.0(postcss@8.5.6))(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1): dependencies: - '@vitest/expect': 4.0.15 - '@vitest/mocker': 4.0.15(vite@7.2.7(@types/node@25.0.1)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1)) - '@vitest/pretty-format': 4.0.15 - '@vitest/runner': 4.0.15 - '@vitest/snapshot': 4.0.15 - '@vitest/spy': 4.0.15 - '@vitest/utils': 4.0.15 + '@vitest/expect': 4.0.16 + '@vitest/mocker': 4.0.16(vite@7.3.0(@types/node@25.0.3)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1)) + '@vitest/pretty-format': 4.0.16 + '@vitest/runner': 4.0.16 + '@vitest/snapshot': 4.0.16 + '@vitest/spy': 4.0.16 + '@vitest/utils': 4.0.16 es-module-lexer: 1.7.0 expect-type: 1.3.0 magic-string: 0.30.21 @@ -21663,10 +21152,10 @@ snapshots: tinyexec: 1.0.2 tinyglobby: 0.2.15 tinyrainbow: 3.0.3 - vite: 7.2.7(@types/node@25.0.1)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1) + vite: 7.3.0(@types/node@25.0.3)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1) why-is-node-running: 2.3.0 optionalDependencies: - '@types/node': 25.0.1 + '@types/node': 25.0.3 jsdom: 27.3.0(postcss@8.5.6) transitivePeerDependencies: - jiti @@ -21685,16 +21174,16 @@ snapshots: vscode-uri@3.0.8: {} - vue-eslint-parser@9.4.3(eslint@9.39.1(jiti@2.6.1)): + vue-eslint-parser@9.4.3(eslint@9.39.2(jiti@2.6.1)): dependencies: - debug: 4.4.0 - eslint: 9.39.1(jiti@2.6.1) + debug: 4.4.3 + eslint: 9.39.2(jiti@2.6.1) eslint-scope: 7.2.2 eslint-visitor-keys: 3.4.3 espree: 9.6.1 esquery: 1.5.0 lodash: 4.17.21 - semver: 7.6.3 + semver: 7.7.3 transitivePeerDependencies: - supports-color @@ -21702,7 +21191,7 @@ snapshots: dependencies: '@volar/typescript': 2.4.11 '@vue/language-core': 2.0.29(typescript@5.9.3) - semver: 7.6.3 + semver: 7.7.3 typescript: 5.9.3 vue-tsc@3.1.8(typescript@5.9.3): @@ -21711,13 +21200,13 @@ snapshots: '@vue/language-core': 3.1.8(typescript@5.9.3) typescript: 5.9.3 - vue@3.5.25(typescript@5.9.3): + vue@3.5.26(typescript@5.9.3): dependencies: - '@vue/compiler-dom': 3.5.25 - '@vue/compiler-sfc': 3.5.25 - '@vue/runtime-dom': 3.5.25 - '@vue/server-renderer': 3.5.25(vue@3.5.25(typescript@5.9.3)) - '@vue/shared': 3.5.25 + '@vue/compiler-dom': 3.5.26 + '@vue/compiler-sfc': 3.5.26 + '@vue/runtime-dom': 3.5.26 + '@vue/server-renderer': 3.5.26(vue@3.5.26(typescript@5.9.3)) + '@vue/shared': 3.5.26 optionalDependencies: typescript: 5.9.3 @@ -21745,18 +21234,18 @@ snapshots: webidl-conversions@8.0.0: {} - webpack-dev-middleware@7.4.5(webpack@5.102.1(esbuild@0.26.0)): + webpack-dev-middleware@7.4.5(webpack@5.104.0(esbuild@0.26.0)): dependencies: colorette: 2.0.20 memfs: 4.51.1 mime-types: 3.0.2 on-finished: 2.4.1 range-parser: 1.2.1 - schema-utils: 4.3.0 + schema-utils: 4.3.3 optionalDependencies: - webpack: 5.102.1(esbuild@0.27.1) + webpack: 5.104.0(esbuild@0.27.1) - webpack-dev-server@5.2.2(webpack@5.102.1(esbuild@0.26.0)): + webpack-dev-server@5.2.2(webpack@5.104.0(esbuild@0.26.0)): dependencies: '@types/bonjour': 3.5.13 '@types/connect-history-api-fallback': 1.5.4 @@ -21779,15 +21268,15 @@ snapshots: launch-editor: 2.9.1 open: 10.2.0 p-retry: 6.2.1 - schema-utils: 4.3.0 + schema-utils: 4.3.3 selfsigned: 2.4.1 serve-index: 1.9.1 sockjs: 0.3.24 spdy: 4.0.2 - webpack-dev-middleware: 7.4.5(webpack@5.102.1(esbuild@0.26.0)) - ws: 8.18.0 + webpack-dev-middleware: 7.4.5(webpack@5.104.0(esbuild@0.26.0)) + ws: 8.18.3 optionalDependencies: - webpack: 5.102.1(esbuild@0.27.1) + webpack: 5.104.0(esbuild@0.27.1) transitivePeerDependencies: - bufferutil - debug @@ -21800,18 +21289,16 @@ snapshots: flat: 5.0.2 wildcard: 2.0.1 - webpack-sources@3.2.3: {} - webpack-sources@3.3.3: {} - webpack-subresource-integrity@5.1.0(webpack@5.102.1(esbuild@0.26.0)): + webpack-subresource-integrity@5.1.0(webpack@5.104.0(esbuild@0.26.0)): dependencies: typed-assert: 1.0.9 - webpack: 5.102.1(esbuild@0.27.1) + webpack: 5.104.0(esbuild@0.27.1) webpack-virtual-modules@0.6.2: {} - webpack@5.102.1(esbuild@0.27.1): + webpack@5.104.0(esbuild@0.27.1): dependencies: '@types/eslint-scope': 3.7.7 '@types/estree': 1.0.8 @@ -21823,19 +21310,19 @@ snapshots: acorn-import-phases: 1.0.4(acorn@8.15.0) browserslist: 4.28.1 chrome-trace-event: 1.0.4 - enhanced-resolve: 5.18.1 - es-module-lexer: 1.6.0 + enhanced-resolve: 5.18.4 + es-module-lexer: 2.0.0 eslint-scope: 5.1.1 events: 3.3.0 glob-to-regexp: 0.4.1 graceful-fs: 4.2.11 json-parse-even-better-errors: 2.3.1 - loader-runner: 4.3.0 + loader-runner: 4.3.1 mime-types: 2.1.35 neo-async: 2.6.2 schema-utils: 4.3.3 tapable: 2.3.0 - terser-webpack-plugin: 5.3.11(esbuild@0.27.1)(webpack@5.102.1(esbuild@0.26.0)) + terser-webpack-plugin: 5.3.16(esbuild@0.27.1)(webpack@5.104.0(esbuild@0.26.0)) watchpack: 2.4.4 webpack-sources: 3.3.3 transitivePeerDependencies: @@ -21899,24 +21386,16 @@ snapshots: string-width: 4.2.3 strip-ansi: 6.0.1 - wrap-ansi@8.1.0: - dependencies: - ansi-styles: 6.2.1 - string-width: 5.1.2 - strip-ansi: 7.1.0 - wrap-ansi@9.0.0: dependencies: ansi-styles: 6.2.1 string-width: 7.2.0 - strip-ansi: 7.1.0 + strip-ansi: 7.1.2 wrappy@1.0.2: {} ws@8.17.1: {} - ws@8.18.0: {} - ws@8.18.3: {} wsl-utils@0.1.0: @@ -21994,6 +21473,10 @@ snapshots: dependencies: zod: 4.1.13 + zod-validation-error@3.5.4(zod@3.25.76): + dependencies: + zod: 3.25.76 + zod-validation-error@4.0.2(zod@4.1.13): dependencies: zod: 4.1.13 From e6fe71ce77b40b1ffe963e65b4d76bb1041bffd8 Mon Sep 17 00:00:00 2001 From: Kevin Van Cott Date: Tue, 23 Dec 2025 22:32:07 -0600 Subject: [PATCH 02/38] poc for new solid table adapter --- examples/solid/column-ordering/src/App.tsx | 28 +- examples/solid/column-visibility/src/App.tsx | 194 ++++----- examples/solid/filters-faceted/src/App.tsx | 50 +-- examples/solid/filters/src/App.tsx | 153 ++++--- examples/solid/row-selection/README.md | 16 + examples/solid/row-selection/index.html | 16 + examples/solid/row-selection/package.json | 23 + examples/solid/row-selection/src/App.tsx | 400 ++++++++++++++++++ examples/solid/row-selection/src/index.css | 27 ++ examples/solid/row-selection/src/index.tsx | 7 + examples/solid/row-selection/src/makeData.ts | 51 +++ examples/solid/row-selection/tsconfig.json | 26 ++ examples/solid/row-selection/vite.config.ts | 11 + examples/solid/sorting/src/App.tsx | 127 +++--- packages/preact-table/src/useTable.ts | 8 +- packages/react-table/src/useTable.ts | 8 +- packages/solid-table/package.json | 1 + packages/solid-table/src/createTable.ts | 125 ++++-- packages/solid-table/src/createTableHelper.ts | 25 +- pnpm-lock.yaml | 35 ++ 20 files changed, 1010 insertions(+), 321 deletions(-) create mode 100644 examples/solid/row-selection/README.md create mode 100644 examples/solid/row-selection/index.html create mode 100644 examples/solid/row-selection/package.json create mode 100644 examples/solid/row-selection/src/App.tsx create mode 100644 examples/solid/row-selection/src/index.css create mode 100644 examples/solid/row-selection/src/index.tsx create mode 100644 examples/solid/row-selection/src/makeData.ts create mode 100644 examples/solid/row-selection/tsconfig.json create mode 100644 examples/solid/row-selection/vite.config.ts diff --git a/examples/solid/column-ordering/src/App.tsx b/examples/solid/column-ordering/src/App.tsx index 3fcde96f87..1d7b2cb6fb 100644 --- a/examples/solid/column-ordering/src/App.tsx +++ b/examples/solid/column-ordering/src/App.tsx @@ -74,9 +74,6 @@ const defaultColumns: Array> = [ function App() { const [data, setData] = createSignal(makeData(20)) - const [columnOrder, setColumnOrder] = createSignal([]) - const [columnVisibility, setColumnVisibility] = - createSignal({}) const rerender = () => setData(() => makeData(20)) const table = createTable({ @@ -85,16 +82,6 @@ function App() { return data() }, columns: defaultColumns, - state: { - get columnOrder() { - return columnOrder() - }, - get columnVisibility() { - return columnVisibility() - }, - }, - onColumnOrderChange: setColumnOrder, - onColumnVisibilityChange: setColumnVisibility, }) const randomizeColumns = () => { @@ -104,7 +91,14 @@ function App() { } return ( -
+ ({ + columnOrder: state.columnOrder, + columnVisibility: state.columnVisibility, + })} + > + {(state) => ( +
+ )} + ) } diff --git a/examples/solid/column-visibility/src/App.tsx b/examples/solid/column-visibility/src/App.tsx index 8f623246c0..3fb2b95db9 100644 --- a/examples/solid/column-visibility/src/App.tsx +++ b/examples/solid/column-visibility/src/App.tsx @@ -5,7 +5,7 @@ import { tableFeatures, } from '@tanstack/solid-table' import { For, Show, createSignal } from 'solid-js' -import type { ColumnDef, ColumnVisibilityState } from '@tanstack/solid-table' +import type { ColumnDef } from '@tanstack/solid-table' type Person = { firstName: string @@ -99,8 +99,6 @@ const defaultColumns: Array> = [ function App() { const [data, setData] = createSignal(defaultData) - const [columnVisibility, setColumnVisibility] = - createSignal({}) const rerender = () => setData(defaultData) const table = createTable({ @@ -109,110 +107,112 @@ function App() { return data() }, columns: defaultColumns, - state: { - get columnVisibility() { - return columnVisibility() - }, - }, - onColumnVisibilityChange: setColumnVisibility, }) return ( -
-
-
- -
- - {(column) => ( -
+ ({ columnVisibility: state.columnVisibility })} + > + {(state) => ( +
+
+
- )} - -
-
- - - - {(headerGroup) => ( - - - {(header) => ( - - )} - - - )} - - - - - {(row) => ( - - - {(cell) => ( - + )} + + + + + {(row) => ( + + + {(cell) => ( + + )} + + + )} + + + + + {(footerGroup) => ( + + + {(header) => ( + + )} + + + )} + + +
- - {flexRender( - header.column.columnDef.header, - header.getContext(), - )} - -
- {flexRender( - cell.column.columnDef.cell, - cell.getContext(), + + {(column) => ( +
+ +
+ )} +
+ +
+ + + + {(headerGroup) => ( + + + {(header) => ( + )} - - )} - - - )} - - - - - {(footerGroup) => ( - - - {(header) => ( - - )} - - - )} - - -
+ + {flexRender( + header.column.columnDef.header, + header.getContext(), + )} + +
- - {flexRender( - header.column.columnDef.footer, - header.getContext(), - )} - -
-
- -
-
{JSON.stringify(table.getState().columnVisibility, null, 2)}
-
+ +
+ {flexRender( + cell.column.columnDef.cell, + cell.getContext(), + )} +
+ + {flexRender( + header.column.columnDef.footer, + header.getContext(), + )} + +
+
+ +
+ state}> + {(state) =>
{JSON.stringify(state(), null, 2)}
} +
+
+ )} + ) } diff --git a/examples/solid/filters-faceted/src/App.tsx b/examples/solid/filters-faceted/src/App.tsx index be702dbbe5..d1d78e29d0 100644 --- a/examples/solid/filters-faceted/src/App.tsx +++ b/examples/solid/filters-faceted/src/App.tsx @@ -78,12 +78,6 @@ const columns: Array> = [ function App() { const [data, setData] = createSignal(makeData(1_000)) - const [columnFilters, setColumnFilters] = createSignal([]) - const [globalFilter, setGlobalFilter] = createSignal('') - const debounceSetGlobalFilter = debounce( - (value: string) => setGlobalFilter(value), - 500, - ) const refreshData = () => setData(makeData(50_000)) // stress test const table = createTable({ @@ -98,30 +92,34 @@ function App() { return data() }, columns, - state: { - get columnFilters() { - return columnFilters() - }, - get globalFilter() { - return globalFilter() - }, - }, - onGlobalFilterChange: setGlobalFilter, globalFilterFn: 'includesString', - onColumnFiltersChange: setColumnFilters, debugTable: true, debugHeaders: true, debugColumns: false, }) + const debounceSetGlobalFilter = debounce( + (value: string) => { + table.setGlobalFilter(value) + }, + 500, + ) + return ( -
- debounceSetGlobalFilter(e.currentTarget.value)} - placeholder="Search all columns..." - /> + ({ + columnFilters: state.columnFilters, + globalFilter: state.globalFilter, + })} + > + {(state) => ( +
+ debounceSetGlobalFilter(e.currentTarget.value)} + placeholder="Search all columns..." + />
@@ -177,8 +175,10 @@ function App() {
-
{JSON.stringify(table.getState(), null, 2)}
- +
{JSON.stringify(table.store.state, null, 2)}
+ + )} + ) } diff --git a/examples/solid/filters/src/App.tsx b/examples/solid/filters/src/App.tsx index 07ade1044a..6dc4ee9d64 100644 --- a/examples/solid/filters/src/App.tsx +++ b/examples/solid/filters/src/App.tsx @@ -16,7 +16,7 @@ import { For, createSignal } from 'solid-js' import { makeData } from './makeData' import ColumnFilter from './ColumnFilter' import type { Person } from './makeData' -import type { ColumnDef, ColumnFiltersState } from '@tanstack/solid-table' +import type { ColumnDef } from '@tanstack/solid-table' export const _features = tableFeatures({ columnFilteringFeature, @@ -81,12 +81,6 @@ const columns: Array> = [ function App() { const [data, setData] = createSignal(makeData(1_000)) - const [columnFilters, setColumnFilters] = createSignal([]) - const [globalFilter, setGlobalFilter] = createSignal('') - const debounceSetGlobalFilter = debounce( - (value: string) => setGlobalFilter(value), - 500, - ) const refreshData = () => setData(makeData(50_000)) // stress test const table = createTable({ @@ -101,87 +95,90 @@ function App() { return data() }, columns, - state: { - get columnFilters() { - return columnFilters() - }, - get globalFilter() { - return globalFilter() - }, - }, - onGlobalFilterChange: setGlobalFilter, globalFilterFn: 'includesString', - onColumnFiltersChange: setColumnFilters, debugTable: true, debugHeaders: true, debugColumns: false, }) + const debounceSetGlobalFilter = debounce((value: string) => { + table.setGlobalFilter(value) + }, 500) + return ( -
- debounceSetGlobalFilter(e.currentTarget.value)} - placeholder="Search all columns..." - /> -
-
- - - {(headerGroup) => ( - - - {(header) => ( - + )} + + +
- {header.isPlaceholder ? null : ( - <> - {flexRender( - header.column.columnDef.header, - header.getContext(), + ({ + columnFilters: state.columnFilters, + globalFilter: state.globalFilter, + })} + > + {(state) => ( +
+ debounceSetGlobalFilter(e.currentTarget.value)} + placeholder="Search all columns..." + /> +
+ + + + {(headerGroup) => ( + + + {(header) => ( + )} - - )} - - - )} - - - - - {(row) => ( - - - {(cell) => ( - + )} + + + + + {(row) => ( + + + {(cell) => ( + )} - - )} - - - )} - - -
+ {header.isPlaceholder ? null : ( + <> + {flexRender( + header.column.columnDef.header, + header.getContext(), + )} + {header.column.getCanFilter() ? ( +
+ +
+ ) : null} + )} - {header.column.getCanFilter() ? ( -
- -
- ) : null} - +
- {flexRender( - cell.column.columnDef.cell, - cell.getContext(), + +
+ {flexRender( + cell.column.columnDef.cell, + cell.getContext(), + )} +
-
{table.getRowModel().rows.length} Rows
-
- -
-
{JSON.stringify(table.getState(), null, 2)}
-
+ +
+
{table.getRowModel().rows.length} Rows
+
+ +
+
{JSON.stringify(table.store.state, null, 2)}
+
+ )} + ) } diff --git a/examples/solid/row-selection/README.md b/examples/solid/row-selection/README.md new file mode 100644 index 0000000000..64c59ab603 --- /dev/null +++ b/examples/solid/row-selection/README.md @@ -0,0 +1,16 @@ +# Row Selection Example + +This example demonstrates row selection functionality with TanStack Table in SolidJS. + +## Features + +- Row selection with checkboxes +- Select all / deselect all functionality +- Page-level row selection +- Filtering and pagination with row selection +- Fine-grained reactivity using `table.Subscribe` for optimal performance + +## Running the Example + +- `npm install` or `yarn` +- `npm run start` or `yarn start` diff --git a/examples/solid/row-selection/index.html b/examples/solid/row-selection/index.html new file mode 100644 index 0000000000..2b702c3347 --- /dev/null +++ b/examples/solid/row-selection/index.html @@ -0,0 +1,16 @@ + + + + + + + Solid Row Selection Example + + + +
+ + + + + diff --git a/examples/solid/row-selection/package.json b/examples/solid/row-selection/package.json new file mode 100644 index 0000000000..46396277e7 --- /dev/null +++ b/examples/solid/row-selection/package.json @@ -0,0 +1,23 @@ +{ + "name": "tanstack-table-example-solid-row-selection", + "version": "0.0.0", + "description": "", + "scripts": { + "start": "vite", + "dev": "vite", + "build": "vite build", + "serve": "vite preview", + "lint": "eslint ./src" + }, + "license": "MIT", + "devDependencies": { + "@faker-js/faker": "^10.1.0", + "typescript": "5.9.3", + "vite": "^7.3.0", + "vite-plugin-solid": "^2.11.10" + }, + "dependencies": { + "@tanstack/solid-table": "^9.0.0-alpha.10", + "solid-js": "^1.9.10" + } +} diff --git a/examples/solid/row-selection/src/App.tsx b/examples/solid/row-selection/src/App.tsx new file mode 100644 index 0000000000..9d44596e28 --- /dev/null +++ b/examples/solid/row-selection/src/App.tsx @@ -0,0 +1,400 @@ +import { + columnFilteringFeature, + createFilteredRowModel, + createPaginatedRowModel, + createTable, + filterFns, + flexRender, + globalFilteringFeature, + rowPaginationFeature, + rowSelectionFeature, + tableFeatures, +} from '@tanstack/solid-table' +import { For, Show, createEffect, createSignal } from 'solid-js' +import { makeData } from './makeData' +import type { + ColumnDef, + Column, + Table, + SolidTable, +} from '@tanstack/solid-table' +import type { Person } from './makeData' +import './index.css' + +export const _features = tableFeatures({ + rowPaginationFeature, + rowSelectionFeature, + columnFilteringFeature, + globalFilteringFeature, +}) + +function App() { + const [data, setData] = createSignal(makeData(1_000)) + const refreshData = () => setData(makeData(100_000)) // stress test + + // Create table first with a placeholder for columns + let table: SolidTable + + const columns: Array> = [ + { + id: 'select', + header: () => { + return ( + state.rowSelection}> + {() => ( + + )} + + ) + }, + cell: ({ row }) => ( +
+ +
+ ), + }, + { + header: 'Name', + footer: (props) => props.column.id, + columns: [ + { + accessorKey: 'firstName', + cell: (info) => info.getValue(), + footer: (props) => props.column.id, + }, + { + accessorFn: (row) => row.lastName, + id: 'lastName', + cell: (info) => info.getValue(), + header: () => Last Name, + footer: (props) => props.column.id, + }, + ], + }, + { + header: 'Info', + footer: (props) => props.column.id, + columns: [ + { + accessorKey: 'age', + header: () => 'Age', + footer: (props) => props.column.id, + }, + { + header: 'More Info', + columns: [ + { + accessorKey: 'visits', + header: () => Visits, + footer: (props) => props.column.id, + }, + { + accessorKey: 'status', + header: 'Status', + footer: (props) => props.column.id, + }, + { + accessorKey: 'progress', + header: 'Profile Progress', + footer: (props) => props.column.id, + }, + ], + }, + ], + }, + ] + + table = createTable({ + _features, + _rowModels: { + filteredRowModel: createFilteredRowModel(filterFns), + paginatedRowModel: createPaginatedRowModel(), + }, + get data() { + return data() + }, + columns, + getRowId: (row) => row.id, + enableRowSelection: true, // enable row selection for all rows + // enableRowSelection: row => row.original.age > 18, // or enable row selection conditionally per row + debugTable: true, + }) + + return ( + ({ + // don't include row selection state to optimize re-renders + columnFilters: state.columnFilters, + globalFilter: state.globalFilter, + pagination: state.pagination, + })} + > + {(state) => ( +
+
+ table.setGlobalFilter(e.target.value)} + class="p-2 font-lg shadow border border-block" + placeholder="Search all columns..." + /> +
+
+ + + + {(headerGroup) => ( + + + {(header) => ( + + )} + + + )} + + + + + {(row) => ( + state.rowSelection[row.id]} // only re-render row when row selection changes (could down move to cell render too) + > + {() => ( + + + {(cell) => ( + + )} + + + )} + + )} + + + + + + + + +
+ + <> + {flexRender( + header.column.columnDef.header, + header.getContext(), + )} + +
+ +
+
+ +
+
+ {flexRender( + cell.column.columnDef.cell, + cell.getContext(), + )} +
+ state.rowSelection}> + {() => ( + + )} + + + Page Rows ({table.getRowModel().rows.length}) +
+
+
+ + + + + +
Page
+ + {state().pagination.pageIndex + 1} of {table.getPageCount()} + +
+ + | Go to page: + { + const page = e.target.value ? Number(e.target.value) - 1 : 0 + table.setPageIndex(page) + }} + class="border p-1 rounded w-16" + /> + + +
+
+
+ ({ + numSelected: Object.keys(state.rowSelection).length, + })} + > + {(state) => <>{state().numSelected} of } + + {table.getPreFilteredRowModel().rows.length} Total Rows Selected +
+
+
+
+ +
+
+ +
+
+ + state}> + {(state) =>
{JSON.stringify(state(), null, 2)}
} +
+
+
+ )} + + ) +} + +function Filter(props: { + column: Column + table: Table +}) { + const firstValue = props.table + .getPreFilteredRowModel() + .flatRows[0]?.getValue(props.column.id) + + return typeof firstValue === 'number' ? ( +
+ + props.column.setFilterValue((old: any) => [e.target.value, old?.[1]]) + } + placeholder={`Min`} + class="w-24 border shadow rounded" + /> + + props.column.setFilterValue((old: any) => [old?.[0], e.target.value]) + } + placeholder={`Max`} + class="w-24 border shadow rounded" + /> +
+ ) : ( + props.column.setFilterValue(e.target.value)} + placeholder={`Search...`} + class="w-36 border shadow rounded" + /> + ) +} + +function IndeterminateCheckbox(props: { + indeterminate?: boolean + class?: string + checked?: boolean + disabled?: boolean + onChange?: (event: Event) => void +}) { + let ref: HTMLInputElement | undefined + + createEffect(() => { + if (typeof props.indeterminate === 'boolean' && ref) { + ref.indeterminate = !props.checked && props.indeterminate + } + }) + + return ( + + ) +} + +export default App diff --git a/examples/solid/row-selection/src/index.css b/examples/solid/row-selection/src/index.css new file mode 100644 index 0000000000..98ef951b35 --- /dev/null +++ b/examples/solid/row-selection/src/index.css @@ -0,0 +1,27 @@ +html { + font-family: sans-serif; + font-size: 14px; +} + +table { + border: 1px solid lightgray; +} + +tbody { + border-bottom: 1px solid lightgray; +} + +th { + border-bottom: 1px solid lightgray; + border-right: 1px solid lightgray; + padding: 2px 4px; +} + +tfoot { + color: gray; +} + +tfoot th { + font-weight: normal; +} + diff --git a/examples/solid/row-selection/src/index.tsx b/examples/solid/row-selection/src/index.tsx new file mode 100644 index 0000000000..f574921051 --- /dev/null +++ b/examples/solid/row-selection/src/index.tsx @@ -0,0 +1,7 @@ +/* @refresh reload */ +import { render } from 'solid-js/web' +import './index.css' +import App from './App' + +render(() => , document.getElementById('root') as HTMLElement) + diff --git a/examples/solid/row-selection/src/makeData.ts b/examples/solid/row-selection/src/makeData.ts new file mode 100644 index 0000000000..595347125d --- /dev/null +++ b/examples/solid/row-selection/src/makeData.ts @@ -0,0 +1,51 @@ +import { faker } from '@faker-js/faker' + +export type Person = { + id: string + firstName: string + lastName: string + age: number + visits: number + progress: number + status: 'relationship' | 'complicated' | 'single' + subRows?: Array +} + +const range = (len: number) => { + const arr: Array = [] + for (let i = 0; i < len; i++) { + arr.push(i) + } + return arr +} + +const newPerson = (): Person => { + return { + id: faker.string.uuid(), + firstName: faker.person.firstName(), + lastName: faker.person.lastName(), + age: faker.number.int(40), + visits: faker.number.int(1000), + progress: faker.number.int(100), + status: faker.helpers.shuffle([ + 'relationship', + 'complicated', + 'single', + ])[0], + } +} + +export function makeData(...lens: Array) { + const makeDataLevel = (depth = 0): Array => { + const len = lens[depth] + return range(len).map((_d): Person => { + return { + ...newPerson(), + subRows: lens[depth + 1] ? makeDataLevel(depth + 1) : undefined, + } + }) + } + + return makeDataLevel() +} + diff --git a/examples/solid/row-selection/tsconfig.json b/examples/solid/row-selection/tsconfig.json new file mode 100644 index 0000000000..26b67d10f0 --- /dev/null +++ b/examples/solid/row-selection/tsconfig.json @@ -0,0 +1,26 @@ +{ + "compilerOptions": { + "target": "ES2020", + "useDefineForClassFields": true, + "module": "ESNext", + "lib": ["ES2020", "DOM", "DOM.Iterable"], + "skipLibCheck": true, + + /* Bundler mode */ + "moduleResolution": "bundler", + "allowImportingTsExtensions": true, + "resolveJsonModule": true, + "isolatedModules": true, + "noEmit": true, + "jsx": "preserve", + "jsxImportSource": "solid-js", + + /* Linting */ + "strict": true, + "noUnusedLocals": true, + "noUnusedParameters": true, + "noFallthroughCasesInSwitch": true + }, + "include": ["src"] +} + diff --git a/examples/solid/row-selection/vite.config.ts b/examples/solid/row-selection/vite.config.ts new file mode 100644 index 0000000000..63bac26d10 --- /dev/null +++ b/examples/solid/row-selection/vite.config.ts @@ -0,0 +1,11 @@ +import { defineConfig } from 'vite' +import solidPlugin from 'vite-plugin-solid' + +export default defineConfig({ + plugins: [solidPlugin()], + build: { + target: 'esnext', + polyfillDynamicImport: false, + }, +}) + diff --git a/examples/solid/sorting/src/App.tsx b/examples/solid/sorting/src/App.tsx index dde484a742..9a512d8153 100644 --- a/examples/solid/sorting/src/App.tsx +++ b/examples/solid/sorting/src/App.tsx @@ -8,14 +8,13 @@ import { } from '@tanstack/solid-table' import { For, Show, createSignal } from 'solid-js' import { makeData } from './makeData' -import type { ColumnDef, SortingState } from '@tanstack/solid-table' +import type { ColumnDef } from '@tanstack/solid-table' import type { Person } from './makeData' const _features = tableFeatures({ rowSortingFeature }) function App() { const [data, setData] = createSignal(makeData(1_000)) - const [sorting, setSorting] = createSignal([]) const refreshData = () => setData(makeData(100_000)) // stress test const columns: Array> = [ @@ -79,76 +78,74 @@ function App() { return data() }, columns, - state: { - get sorting() { - return sorting() - }, - }, - onSortingChange: setSorting, debugTable: true, }) return ( -
- - - - {(headerGroup) => ( - - - {(header) => ( - + )} + + +
- -
+ ({ sorting: state.sorting })}> + {(state) => ( +
+ + + + {(headerGroup) => ( + + + {(header) => ( + + )} + + + )} + + + + + {(row) => ( + + + {(cell) => ( + - )} - - - - - {(row) => ( - - - {(cell) => ( - )} - - )} - - - )} - - -
+ +
+ {flexRender( + header.column.columnDef.header, + header.getContext(), + )} + {{ + asc: ' 🔼', + desc: ' 🔽', + }[header.column.getIsSorted() as string] ?? null} +
+
+
{flexRender( - header.column.columnDef.header, - header.getContext(), + cell.column.columnDef.cell, + cell.getContext(), )} - {{ - asc: ' 🔼', - desc: ' 🔽', - }[header.column.getIsSorted() as string] ?? null} - - - - )} - -
- {flexRender( - cell.column.columnDef.cell, - cell.getContext(), +
-
{table.getRowModel().rows.length} Rows
-
- -
-
{JSON.stringify(sorting(), null, 2)}
-
+ +
+
{table.getRowModel().rows.length} Rows
+
+ +
+
{JSON.stringify(state().sorting, null, 2)}
+
+ )} + ) } diff --git a/packages/preact-table/src/useTable.ts b/packages/preact-table/src/useTable.ts index 0cb82f5a0b..11a801cd7f 100644 --- a/packages/preact-table/src/useTable.ts +++ b/packages/preact-table/src/useTable.ts @@ -55,24 +55,24 @@ export function useTable< ({}) as TSelected, ): PreactTable { const [table] = useState(() => { - const table = constructTable(tableOptions) as PreactTable< + const instance = constructTable(tableOptions) as PreactTable< TFeatures, TData, TSelected > - table.Subscribe = function Subscribe(props: { + instance.Subscribe = function Subscribe(props: { selector: (state: TableState) => TSelected children: ((state: TSelected) => ComponentChildren) | ComponentChildren }) { - const selected = useStore(table.store, props.selector) + const selected = useStore(instance.store, props.selector) return typeof props.children === 'function' ? props.children(selected) : props.children } - return table + return instance }) const state = useStore(table.store, selector) diff --git a/packages/react-table/src/useTable.ts b/packages/react-table/src/useTable.ts index 9ddf26f2ae..5e870af589 100644 --- a/packages/react-table/src/useTable.ts +++ b/packages/react-table/src/useTable.ts @@ -55,24 +55,24 @@ export function useTable< ({}) as TSelected, ): ReactTable { const [table] = useState(() => { - const table = constructTable(tableOptions) as ReactTable< + const instance = constructTable(tableOptions) as ReactTable< TFeatures, TData, TSelected > - table.Subscribe = function Subscribe(props: { + instance.Subscribe = function Subscribe(props: { selector: (state: TableState) => TSelected children: ((state: TSelected) => ReactNode) | ReactNode }) { - const selected = useStore(table.store, props.selector) + const selected = useStore(instance.store, props.selector) return typeof props.children === 'function' ? props.children(selected) : props.children } - return table + return instance }) const state = useStore(table.store, selector) diff --git a/packages/solid-table/package.json b/packages/solid-table/package.json index c2b0b708b2..f0997d1745 100644 --- a/packages/solid-table/package.json +++ b/packages/solid-table/package.json @@ -52,6 +52,7 @@ "build": "tsc -p tsconfig.build.json" }, "dependencies": { + "@tanstack/solid-store": "^0.8.0", "@tanstack/table-core": "workspace:*" }, "devDependencies": { diff --git a/packages/solid-table/src/createTable.ts b/packages/solid-table/src/createTable.ts index 2453c8e90f..2ed8b5797e 100644 --- a/packages/solid-table/src/createTable.ts +++ b/packages/solid-table/src/createTable.ts @@ -1,37 +1,108 @@ -import { constructTable, coreFeatures } from '@tanstack/table-core' -import { createEffect, mergeProps } from 'solid-js' -import type { RowData, TableFeatures, TableOptions } from '@tanstack/table-core' +import { constructTable } from '@tanstack/table-core' +import type { + NoInfer, + RowData, + Table, + TableFeatures, + TableOptions, + TableState, +} from '@tanstack/table-core' +import { useStore } from '@tanstack/solid-store' +import { createComputed, createSignal, mergeProps } from 'solid-js' +import type { Accessor, JSX } from 'solid-js' + +export type SolidTable< + TFeatures extends TableFeatures, + TData extends RowData, + TSelected = {}, +> = Table & { + /** + * A Solid component that allows you to subscribe to the table state. + * + * This is useful for opting into state subscriptions for specific parts of the table state. + * + * @example + * ({ rowSelection: state.rowSelection })}> + * {(state) => ( + * + * // render the row + * + * )} + * + */ + Subscribe: (props: { + selector: (state: NoInfer>) => TSelected + children: ((state: Accessor) => JSX.Element) | JSX.Element + }) => JSX.Element + /** + * The selected state of the table. This state may not match the structure of `table.store.state` because it is selected by the `selector` function that you pass as the 2nd argument to `createTable`. + * + * @example + * const table = createTable(options, (state) => ({ globalFilter: state.globalFilter })) // only globalFilter is part of the selected state + * + * console.log(table.state().globalFilter) + */ + readonly state: Accessor> +} export function createTable< TFeatures extends TableFeatures, TData extends RowData, ->(tableOptions: TableOptions) { - const _features = { ...coreFeatures, ...tableOptions._features } - - const statefulOptions: TableOptions = { - ...tableOptions, - _features, - // Remove state and onStateChange - store handles it internally - // But keep onStateChange if user provided for backward compatibility - onStateChange: tableOptions.onStateChange, - mergeOptions: (defaultOptions, options) => { - return mergeProps(defaultOptions, options) - }, - } + TSelected = {}, +>( + tableOptions: TableOptions, + selector: (state: TableState) => TSelected = () => + ({}) as TSelected, +): SolidTable { + const table = constructTable(tableOptions) as SolidTable< + TFeatures, + TData, + TSelected + > - const table = constructTable(statefulOptions) + /** + * Temp force reactivity to all state changes on every table.get* method + */ + const allState = useStore(table.store, (state) => state) + const [renderVersion, setRenderVersion] = createSignal(0) - // Subscribe to store changes for Solid reactivity - createEffect(() => { - // Access store.state to create reactive dependency - table.store.state + createComputed(() => { + // Access storeState to create reactive dependency + allState() + // Increment version to invalidate cached get* methods + setRenderVersion((v) => v + 1) // Update options when store changes - table.setOptions((prev) => { - return mergeProps(prev, tableOptions, { - _features: { ...coreFeatures, ...tableOptions._features }, - }) as any - }) + // table.setOptions((prev) => { + // return mergeProps(prev, tableOptions) as TableOptions + // }) }) - return table + // Wrap all "get*" methods to make them reactive + Object.keys(table).forEach((key) => { + const value = (table as any)[key] + if (typeof value === 'function' && key.startsWith('get')) { + const originalMethod = value.bind(table) + ;(table as any)[key] = (...args: any[]) => { + renderVersion() + return originalMethod(...args) + } + } + }) + + table.Subscribe = function Subscribe(props: { + selector: (state: TableState) => TSelected + children: ((state: Accessor) => JSX.Element) | JSX.Element + }) { + const selected = useStore(table.store, props.selector) + return typeof props.children === 'function' + ? props.children(selected) + : props.children + } + + const state = useStore(table.store, selector) + + return { + ...table, + state, + } as SolidTable } diff --git a/packages/solid-table/src/createTableHelper.ts b/packages/solid-table/src/createTableHelper.ts index ce5f6870b1..d7f24e7c09 100644 --- a/packages/solid-table/src/createTableHelper.ts +++ b/packages/solid-table/src/createTableHelper.ts @@ -1,24 +1,25 @@ import { constructTableHelper } from '@tanstack/table-core' -import { createTable } from './createTable' +import { SolidTable, createTable } from './createTable' import type { RowData, - Table, TableFeatures, TableHelperOptions, TableHelper_Core, TableOptions, + TableState, } from '@tanstack/table-core' export type TableHelper< TFeatures extends TableFeatures, TData extends RowData = any, > = Omit, 'tableCreator'> & { - createTable: ( + createTable: ( tableOptions: Omit< TableOptions, '_features' | '_rowModels' >, - ) => Table + selector?: (state: TableState) => TSelected, + ) => SolidTable } export function createTableHelper< @@ -30,7 +31,21 @@ export function createTableHelper< const tableHelper = constructTableHelper(createTable, tableHelperOptions) return { ...tableHelper, - createTable: tableHelper.tableCreator, + createTable: ( + tableOptions: Omit< + TableOptions, + '_features' | '_rowModels' + >, + selector?: (state: TableState) => TSelected, + ) => { + return createTable( + { ...tableHelper.options, ...tableOptions } as TableOptions< + TFeatures, + TData + >, + selector, + ) + }, } as any } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 740dc5e55d..a70b4b61a7 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -2647,6 +2647,28 @@ importers: specifier: ^2.11.10 version: 2.11.10(@testing-library/jest-dom@6.9.1)(solid-js@1.9.10)(vite@7.3.0(@types/node@25.0.3)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1)) + examples/solid/row-selection: + dependencies: + '@tanstack/solid-table': + specifier: ^9.0.0-alpha.10 + version: link:../../../packages/solid-table + solid-js: + specifier: ^1.9.10 + version: 1.9.10 + devDependencies: + '@faker-js/faker': + specifier: ^10.1.0 + version: 10.1.0 + typescript: + specifier: 5.9.3 + version: 5.9.3 + vite: + specifier: ^7.3.0 + version: 7.3.0(@types/node@25.0.3)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1) + vite-plugin-solid: + specifier: ^2.11.10 + version: 2.11.10(@testing-library/jest-dom@6.9.1)(solid-js@1.9.10)(vite@7.3.0(@types/node@25.0.3)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(sass@1.93.2)(terser@5.44.0)(tsx@4.19.2)(yaml@2.6.1)) + examples/solid/sorting: dependencies: '@tanstack/solid-table': @@ -3375,6 +3397,9 @@ importers: packages/solid-table: dependencies: + '@tanstack/solid-store': + specifier: ^0.8.0 + version: 0.8.0(solid-js@1.9.10) '@tanstack/table-core': specifier: workspace:* version: link:../table-core @@ -7036,6 +7061,11 @@ packages: resolution: {integrity: sha512-/ySoPfbiX1/iEuxz+WAmEzgx+nQUN/tAnjYYkjnSNq4bImEyHf/Wr95UgGMt97OWF3vokFCtfpkX7yHaJQZxkg==} engines: {node: '>=12'} + '@tanstack/solid-store@0.8.0': + resolution: {integrity: sha512-JwqTedbxyOGw7mfmdGkB0RGgefRCw/tNauc8tlMcaS1mV5wTFT8c1KIB3LgttuHaanMJEBeqQJ7bc/R0WTP1fA==} + peerDependencies: + solid-js: ^1.6.0 + '@tanstack/store@0.8.0': resolution: {integrity: sha512-Om+BO0YfMZe//X2z0uLF2j+75nQga6TpTJgLJQBiq85aOyZNIhkCgleNcud2KQg4k4v9Y9l+Uhru3qWMPGTOzQ==} @@ -15761,6 +15791,11 @@ snapshots: - vite-plugin-solid - webpack + '@tanstack/solid-store@0.8.0(solid-js@1.9.10)': + dependencies: + '@tanstack/store': 0.8.0 + solid-js: 1.9.10 + '@tanstack/store@0.8.0': {} '@tanstack/table-core@8.20.5': {} From ab6b8a63675e090cbddb51af52e7f7ba821c2606 Mon Sep 17 00:00:00 2001 From: Kevin Van Cott Date: Wed, 24 Dec 2025 09:32:48 -0600 Subject: [PATCH 03/38] fix solid examples --- examples/solid/column-ordering/src/App.tsx | 192 ++++++++++----------- examples/solid/filters-faceted/src/App.tsx | 4 +- examples/solid/filters/src/App.tsx | 4 +- examples/solid/sorting/src/App.tsx | 6 +- 4 files changed, 105 insertions(+), 101 deletions(-) diff --git a/examples/solid/column-ordering/src/App.tsx b/examples/solid/column-ordering/src/App.tsx index 1d7b2cb6fb..8fb319eddd 100644 --- a/examples/solid/column-ordering/src/App.tsx +++ b/examples/solid/column-ordering/src/App.tsx @@ -9,11 +9,7 @@ import { } from '@tanstack/solid-table' import { makeData } from './makeData' import type { Person } from './makeData' -import type { - ColumnDef, - ColumnOrderState, - ColumnVisibilityState, -} from '@tanstack/solid-table' +import type { ColumnDef } from '@tanstack/solid-table' const _features = tableFeatures({ columnOrderingFeature, @@ -97,106 +93,108 @@ function App() { columnVisibility: state.columnVisibility, })} > - {(state) => ( + {(_state) => (
-
-
- -
- - {(column) => ( -
+
+
- )} - -
-
-
- - -
-
- - - - {(headerGroup) => ( - - - {(header) => ( - - )} - - - )} - - - - - {(row) => ( - - - {(cell) => ( - + )} + + +
- - {flexRender( - header.column.columnDef.header, - header.getContext(), - )} - -
- {flexRender( - cell.column.columnDef.cell, - cell.getContext(), + + {(column) => ( +
+ +
+ )} +
+ +
+
+ + +
+
+ + + + {(headerGroup) => ( + + + {(header) => ( + + )} + + + )} + + + + + {(row) => ( + + + {(cell) => ( + + )} + + + )} + + + + + {(footerGroup) => ( + + + {(header) => ( + )} - - )} - - - )} - - - - - {(footerGroup) => ( - - - {(header) => ( - - )} - - - )} - - -
+ + {flexRender( + header.column.columnDef.header, + header.getContext(), + )} + +
+ {flexRender( + cell.column.columnDef.cell, + cell.getContext(), + )} +
+ + {flexRender( + header.column.columnDef.footer, + header.getContext(), + )} + +
- - {flexRender( - header.column.columnDef.footer, - header.getContext(), - )} - -
-
-
{JSON.stringify(table.getState().columnOrder, null, 2)}
+ +
+
+ state}> + {(state) =>
{JSON.stringify(state(), null, 2)}
} +
)} diff --git a/examples/solid/filters-faceted/src/App.tsx b/examples/solid/filters-faceted/src/App.tsx index d1d78e29d0..46c0420c09 100644 --- a/examples/solid/filters-faceted/src/App.tsx +++ b/examples/solid/filters-faceted/src/App.tsx @@ -175,7 +175,9 @@ function App() {
-
{JSON.stringify(table.store.state, null, 2)}
+ state}> + {(state) =>
{JSON.stringify(state(), null, 2)}
} +
)} diff --git a/examples/solid/filters/src/App.tsx b/examples/solid/filters/src/App.tsx index 6dc4ee9d64..4262c8c9a5 100644 --- a/examples/solid/filters/src/App.tsx +++ b/examples/solid/filters/src/App.tsx @@ -175,7 +175,9 @@ function App() {
-
{JSON.stringify(table.store.state, null, 2)}
+ state}> + {(state) =>
{JSON.stringify(state(), null, 2)}
} +
)} diff --git a/examples/solid/sorting/src/App.tsx b/examples/solid/sorting/src/App.tsx index 9a512d8153..00d7453337 100644 --- a/examples/solid/sorting/src/App.tsx +++ b/examples/solid/sorting/src/App.tsx @@ -83,7 +83,7 @@ function App() { return ( ({ sorting: state.sorting })}> - {(state) => ( + {(_state) => (
@@ -142,7 +142,9 @@ function App() {
-
{JSON.stringify(state().sorting, null, 2)}
+ state}> + {(state) =>
{JSON.stringify(state(), null, 2)}
} +
)} From e09a06daab3a7e57bbe083ae7bab43fe5b24eb40 Mon Sep 17 00:00:00 2001 From: Kevin Van Cott Date: Wed, 24 Dec 2025 09:34:58 -0600 Subject: [PATCH 04/38] remove temp --- examples/react/row-selection/src/main.tsx | 2 -- 1 file changed, 2 deletions(-) diff --git a/examples/react/row-selection/src/main.tsx b/examples/react/row-selection/src/main.tsx index 17ad502b1e..6e7b4a4254 100644 --- a/examples/react/row-selection/src/main.tsx +++ b/examples/react/row-selection/src/main.tsx @@ -129,8 +129,6 @@ function App() { // (state) => state, // uncomment to subscribe to the entire table state (this is how v8 used to work by default) ) - table.state.rowSelection - return ( ({ From ae639eade96e2a1c9f9e14c8e1b61868fdbaa814 Mon Sep 17 00:00:00 2001 From: Kevin Van Cott Date: Wed, 24 Dec 2025 12:43:22 -0600 Subject: [PATCH 05/38] fix header groups bug --- examples/solid/row-selection/src/App.tsx | 376 +++++++++--------- .../src/core/headers/coreHeadersFeature.ts | 1 + .../columnPinningFeature.utils.ts | 2 +- 3 files changed, 194 insertions(+), 185 deletions(-) diff --git a/examples/solid/row-selection/src/App.tsx b/examples/solid/row-selection/src/App.tsx index 9d44596e28..c0e8a0c827 100644 --- a/examples/solid/row-selection/src/App.tsx +++ b/examples/solid/row-selection/src/App.tsx @@ -130,203 +130,211 @@ function App() { }) return ( - ({ - // don't include row selection state to optimize re-renders - columnFilters: state.columnFilters, - globalFilter: state.globalFilter, - pagination: state.pagination, - })} - > - {(state) => ( -
-
+ // ({ + // // don't include row selection state to optimize re-renders + // columnFilters: state.columnFilters, + // globalFilter: state.globalFilter, + // pagination: state.pagination, + // })} + // > + // {(state) => ( +
+
+ ({ globalFilter: state.globalFilter })} + > + {(state) => ( table.setGlobalFilter(e.target.value)} class="p-2 font-lg shadow border border-block" placeholder="Search all columns..." /> -
-
-
- - - {(headerGroup) => ( - - - {(header) => ( - + + +
- - <> - {flexRender( - header.column.columnDef.header, - header.getContext(), - )} - -
- -
-
- + )} + + +
+ + + + {(headerGroup) => ( + + + {(header) => ( + + + + + )} + + + )} + + + + + {(row) => ( + state.rowSelection[row.id]} // only re-render row when row selection changes (could down move to cell render too) + > + {() => ( + + + {(cell) => ( + )} )} - - - - - {(row) => ( - state.rowSelection[row.id]} // only re-render row when row selection changes (could down move to cell render too) - > - {() => ( - - - {(cell) => ( - - )} - - - )} - + + )} + + + + + - - - - - -
+ + <> + {flexRender( + header.column.columnDef.header, + header.getContext(), + )} + +
+ +
-
+ {flexRender( + cell.column.columnDef.cell, + cell.getContext(), + )} +
- {flexRender( - cell.column.columnDef.cell, - cell.getContext(), - )} -
+ state.rowSelection}> + {() => ( + )} - - -
- state.rowSelection}> - {() => ( - - )} - - - Page Rows ({table.getRowModel().rows.length}) -
-
-
- - - - - -
Page
- - {state().pagination.pageIndex + 1} of {table.getPageCount()} - -
- - | Go to page: - { - const page = e.target.value ? Number(e.target.value) - 1 : 0 - table.setPageIndex(page) + + +
Page Rows ({table.getRowModel().rows.length})
+
+
+ + + + + ({ pagination: state.pagination })} + > + {(state) => ( + <> + +
Page
+ + {state().pagination.pageIndex + 1} of {table.getPageCount()} + +
+ + | Go to page: + { + const page = e.target.value ? Number(e.target.value) - 1 : 0 + table.setPageIndex(page) + }} + class="border p-1 rounded w-16" + /> + + { - table.setPageSize(Number((e.target as HTMLSelectElement).value)) - }} - > - {[10, 20, 30, 40, 50].map((pageSize) => ( - - ))} - -
-
-
- ({ - numSelected: Object.keys(state.rowSelection).length, - })} - > - {(state) => <>{state().numSelected} of } - - {table.getPreFilteredRowModel().rows.length} Total Rows Selected -
-
-
-
- -
-
- -
-
- - state}> - {(state) =>
{JSON.stringify(state(), null, 2)}
} -
-
-
- )} - + > + {[10, 20, 30, 40, 50].map((pageSize) => ( + + ))} + + + )} + +
+
+
+ ({ + numSelected: Object.keys(state.rowSelection).length, + })} + > + {(state) => <>{state().numSelected} of } + + {table.getPreFilteredRowModel().rows.length} Total Rows Selected +
+
+
+
+ +
+
+ +
+
+ + state}> + {(state) =>
{JSON.stringify(state(), null, 2)}
} +
+
+
+ // )} + // ) } diff --git a/packages/table-core/src/core/headers/coreHeadersFeature.ts b/packages/table-core/src/core/headers/coreHeadersFeature.ts index 970436b2b7..e3ba18efac 100644 --- a/packages/table-core/src/core/headers/coreHeadersFeature.ts +++ b/packages/table-core/src/core/headers/coreHeadersFeature.ts @@ -54,6 +54,7 @@ export function constructCoreHeadersFeature< table.store.state?.columnOrder, table.store.state.grouping, table.store.state.columnPinning, + table.store.state.columnVisibility, table.options.groupedColumnMode, ], }, diff --git a/packages/table-core/src/features/column-pinning/columnPinningFeature.utils.ts b/packages/table-core/src/features/column-pinning/columnPinningFeature.utils.ts index 2b740072b0..ea2a966097 100644 --- a/packages/table-core/src/features/column-pinning/columnPinningFeature.utils.ts +++ b/packages/table-core/src/features/column-pinning/columnPinningFeature.utils.ts @@ -213,7 +213,7 @@ export function table_getLeftHeaderGroups< table, 'getVisibleLeafColumns', table_getVisibleLeafColumns, - ) as unknown as Array> + ) as Array> const { left } = table.store.state.columnPinning ?? getDefaultColumnPinningState() From 3576443bda8ae19e304f987c3b114592078fe334 Mon Sep 17 00:00:00 2001 From: Kevin Van Cott Date: Wed, 24 Dec 2025 13:05:09 -0600 Subject: [PATCH 06/38] refactor assignAPIs --- examples/solid/filters-faceted/src/App.tsx | 113 +++++++++--------- examples/solid/row-selection/index.html | 1 - examples/solid/row-selection/src/index.css | 1 - examples/solid/row-selection/src/index.tsx | 1 - examples/solid/row-selection/src/makeData.ts | 1 - examples/solid/row-selection/tsconfig.json | 1 - examples/solid/row-selection/vite.config.ts | 1 - .../src/core/cells/coreCellsFeature.ts | 13 +- .../src/core/columns/coreColumnsFeature.ts | 32 ++--- .../src/core/headers/coreHeadersFeature.ts | 26 ++-- .../core/row-models/coreRowModelsFeature.ts | 40 +++---- .../src/core/rows/coreRowsFeature.ts | 41 +++---- .../src/core/table/coreTablesFeature.ts | 10 +- .../column-faceting/columnFacetingFeature.ts | 26 ++-- .../columnFilteringFeature.ts | 35 ++---- .../columnFilteringFeature.types.ts | 2 +- .../column-grouping/columnGroupingFeature.ts | 58 ++++----- .../column-ordering/columnOrderingFeature.ts | 26 ++-- .../column-pinning/columnPinningFeature.ts | 96 ++++++--------- .../column-resizing/columnResizingFeature.ts | 27 ++--- .../column-sizing/columnSizingFeature.ts | 48 +++----- .../columnVisibilityFeature.ts | 54 ++++----- .../globalFilteringFeature.ts | 23 ++-- .../row-expanding/rowExpandingFeature.ts | 50 +++----- .../row-pagination/rowPaginationFeature.ts | 56 +++------ .../features/row-pinning/rowPinningFeature.ts | 38 +++--- .../row-selection/rowSelectionFeature.ts | 74 ++++-------- .../features/row-sorting/rowSortingFeature.ts | 50 +++----- packages/table-core/src/utils.ts | 17 ++- .../tests/helpers/rowPinningHelpers.ts | 5 +- .../row-pinning/rowPinningFeature.test.ts | 13 +- .../row-selection/rowSelectionFeature.test.ts | 39 ++---- .../columnPinningFeature.utils.test.ts | 5 +- .../columnVisibilityFeature.utils.test.ts | 25 ++-- 34 files changed, 416 insertions(+), 632 deletions(-) diff --git a/examples/solid/filters-faceted/src/App.tsx b/examples/solid/filters-faceted/src/App.tsx index 46c0420c09..938282ef9a 100644 --- a/examples/solid/filters-faceted/src/App.tsx +++ b/examples/solid/filters-faceted/src/App.tsx @@ -98,12 +98,9 @@ function App() { debugColumns: false, }) - const debounceSetGlobalFilter = debounce( - (value: string) => { - table.setGlobalFilter(value) - }, - 500, - ) + const debounceSetGlobalFilter = debounce((value: string) => { + table.setGlobalFilter(value) + }, 500) return ( debounceSetGlobalFilter(e.currentTarget.value)} placeholder="Search all columns..." /> -
- - - - {(headerGroup) => ( - - - {(header) => ( - + )} + + +
- {header.isPlaceholder ? null : ( - <> - {flexRender( - header.column.columnDef.header, - header.getContext(), +
+ + + + {(headerGroup) => ( + + + {(header) => ( + )} - - )} - - - )} - - - - - {(row) => ( - - - {(cell) => ( - + )} + + + + + {(row) => ( + + + {(cell) => ( + )} - - )} - - - )} - - -
+ {header.isPlaceholder ? null : ( + <> + {flexRender( + header.column.columnDef.header, + header.getContext(), + )} + {header.column.getCanFilter() ? ( +
+ +
+ ) : null} + )} - {header.column.getCanFilter() ? ( -
- -
- ) : null} - +
- {flexRender( - cell.column.columnDef.cell, - cell.getContext(), + +
+ {flexRender( + cell.column.columnDef.cell, + cell.getContext(), + )} +
-
{table.getRowModel().rows.length} Rows
-
- -
+ +
+
{table.getRowModel().rows.length} Rows
+
+ +
state}> {(state) =>
{JSON.stringify(state(), null, 2)}
}
diff --git a/examples/solid/row-selection/index.html b/examples/solid/row-selection/index.html index 2b702c3347..42fb7f56b6 100644 --- a/examples/solid/row-selection/index.html +++ b/examples/solid/row-selection/index.html @@ -13,4 +13,3 @@ - diff --git a/examples/solid/row-selection/src/index.css b/examples/solid/row-selection/src/index.css index 98ef951b35..43c09e0f6b 100644 --- a/examples/solid/row-selection/src/index.css +++ b/examples/solid/row-selection/src/index.css @@ -24,4 +24,3 @@ tfoot { tfoot th { font-weight: normal; } - diff --git a/examples/solid/row-selection/src/index.tsx b/examples/solid/row-selection/src/index.tsx index f574921051..ea9c952177 100644 --- a/examples/solid/row-selection/src/index.tsx +++ b/examples/solid/row-selection/src/index.tsx @@ -4,4 +4,3 @@ import './index.css' import App from './App' render(() => , document.getElementById('root') as HTMLElement) - diff --git a/examples/solid/row-selection/src/makeData.ts b/examples/solid/row-selection/src/makeData.ts index 595347125d..c34c43a03e 100644 --- a/examples/solid/row-selection/src/makeData.ts +++ b/examples/solid/row-selection/src/makeData.ts @@ -48,4 +48,3 @@ export function makeData(...lens: Array) { return makeDataLevel() } - diff --git a/examples/solid/row-selection/tsconfig.json b/examples/solid/row-selection/tsconfig.json index 26b67d10f0..7ab027b8d2 100644 --- a/examples/solid/row-selection/tsconfig.json +++ b/examples/solid/row-selection/tsconfig.json @@ -23,4 +23,3 @@ }, "include": ["src"] } - diff --git a/examples/solid/row-selection/vite.config.ts b/examples/solid/row-selection/vite.config.ts index 63bac26d10..d27427972d 100644 --- a/examples/solid/row-selection/vite.config.ts +++ b/examples/solid/row-selection/vite.config.ts @@ -8,4 +8,3 @@ export default defineConfig({ polyfillDynamicImport: false, }, }) - diff --git a/packages/table-core/src/core/cells/coreCellsFeature.ts b/packages/table-core/src/core/cells/coreCellsFeature.ts index a7e15cac04..81897816d3 100644 --- a/packages/table-core/src/core/cells/coreCellsFeature.ts +++ b/packages/table-core/src/core/cells/coreCellsFeature.ts @@ -22,21 +22,18 @@ export function constructCoreCellsFeature< >(): TableFeature> { return { constructCellAPIs: (cell) => { - assignAPIs('coreCellsFeature', cell, [ - { + assignAPIs('coreCellsFeature', cell, { + cell_getValue: { fn: () => cell_getValue(cell), - fnName: 'cell_getValue', }, - { + cell_renderValue: { fn: () => cell_renderValue(cell), - fnName: 'cell_renderValue', }, - { + cell_getContext: { fn: () => cell_getContext(cell), - fnName: 'cell_getContext', memoDeps: () => [cell], }, - ]) + }) }, } } diff --git a/packages/table-core/src/core/columns/coreColumnsFeature.ts b/packages/table-core/src/core/columns/coreColumnsFeature.ts index 73ac3b0b52..b130ff8b20 100644 --- a/packages/table-core/src/core/columns/coreColumnsFeature.ts +++ b/packages/table-core/src/core/columns/coreColumnsFeature.ts @@ -33,15 +33,13 @@ export function constructCoreColumnsFeature< return { constructColumnAPIs: (column) => { const { _table: table } = column - assignAPIs('coreColumnsFeature', column, [ - { + assignAPIs('coreColumnsFeature', column, { + column_getFlatColumns: { fn: () => column_getFlatColumns(column), - fnName: 'column_getFlatColumns', memoDeps: () => [table.options.columns], }, - { + column_getLeafColumns: { fn: () => column_getLeafColumns(column), - fnName: 'column_getLeafColumns', memoDeps: () => [ table.store.state.columnOrder, table.store.state.grouping, @@ -49,34 +47,29 @@ export function constructCoreColumnsFeature< table.options.groupedColumnMode, ], }, - ]) + }) }, constructTableAPIs: (table) => { - assignAPIs('coreColumnsFeature', table, [ - { + assignAPIs('coreColumnsFeature', table, { + table_getDefaultColumnDef: { fn: () => table_getDefaultColumnDef(table), - fnName: 'table_getDefaultColumnDef', memoDeps: () => [table.options.defaultColumn], }, - { + table_getAllColumns: { fn: () => table_getAllColumns(table), - fnName: 'table_getAllColumns', memoDeps: () => [table.options.columns], }, - { + table_getAllFlatColumns: { fn: () => table_getAllFlatColumns(table), - fnName: 'table_getAllFlatColumns', memoDeps: () => [table.options.columns], }, - { + table_getAllFlatColumnsById: { fn: () => table_getAllFlatColumnsById(table), - fnName: 'table_getAllFlatColumnsById', memoDeps: () => [table.options.columns], }, - { + table_getAllLeafColumns: { fn: () => table_getAllLeafColumns(table), - fnName: 'table_getAllLeafColumns', memoDeps: () => [ table.store.state.columnOrder, table.store.state.grouping, @@ -84,11 +77,10 @@ export function constructCoreColumnsFeature< table.options.groupedColumnMode, ], }, - { + table_getColumn: { fn: (columnId) => table_getColumn(table, columnId), - fnName: 'table_getColumn', }, - ]) + }) }, } } diff --git a/packages/table-core/src/core/headers/coreHeadersFeature.ts b/packages/table-core/src/core/headers/coreHeadersFeature.ts index e3ba18efac..ae94233e48 100644 --- a/packages/table-core/src/core/headers/coreHeadersFeature.ts +++ b/packages/table-core/src/core/headers/coreHeadersFeature.ts @@ -30,25 +30,22 @@ export function constructCoreHeadersFeature< >(): TableFeature> { return { constructHeaderAPIs: (header) => { - assignAPIs('coreHeadersFeature', header, [ - { + assignAPIs('coreHeadersFeature', header, { + header_getLeafHeaders: { fn: () => header_getLeafHeaders(header), - fnName: 'header_getLeafHeaders', memoDeps: () => [header.column._table.options.columns], }, - { + header_getContext: { fn: () => header_getContext(header), - fnName: 'header_getContext', memoDeps: () => [header.column._table.options.columns], }, - ]) + }) }, constructTableAPIs: (table) => { - assignAPIs('coreHeadersFeature', table, [ - { + assignAPIs('coreHeadersFeature', table, { + table_getHeaderGroups: { fn: () => table_getHeaderGroups(table), - fnName: 'table_getHeaderGroups', memoDeps: () => [ table.options.columns, table.store.state?.columnOrder, @@ -58,19 +55,16 @@ export function constructCoreHeadersFeature< table.options.groupedColumnMode, ], }, - { + table_getFooterGroups: { fn: () => table_getFooterGroups(table), - fnName: 'table_getFooterGroups', memoDeps: () => [table.getHeaderGroups()], }, - { + table_getFlatHeaders: { fn: () => table_getFlatHeaders(table), - fnName: 'table_getFlatHeaders', memoDeps: () => [table.getHeaderGroups()], }, - { + table_getLeafHeaders: { fn: () => table_getLeafHeaders(table), - fnName: 'table_getLeafHeaders', memoDeps: () => [ callMemoOrStaticFn( table, @@ -89,7 +83,7 @@ export function constructCoreHeadersFeature< ), ], }, - ]) + }) }, } } diff --git a/packages/table-core/src/core/row-models/coreRowModelsFeature.ts b/packages/table-core/src/core/row-models/coreRowModelsFeature.ts index da5a27d400..f814dca948 100644 --- a/packages/table-core/src/core/row-models/coreRowModelsFeature.ts +++ b/packages/table-core/src/core/row-models/coreRowModelsFeature.ts @@ -30,56 +30,44 @@ export function constructCoreRowModelsFeature< >(): TableFeature> { return { constructTableAPIs: (table) => { - assignAPIs('coreRowModelsFeature', table, [ - { + assignAPIs('coreRowModelsFeature', table, { + table_getCoreRowModel: { fn: () => table_getCoreRowModel(table), - fnName: 'table_getCoreRowModel', }, - { + table_getPreFilteredRowModel: { fn: () => table_getPreFilteredRowModel(table), - fnName: 'table_getPreFilteredRowModel', }, - { + table_getFilteredRowModel: { fn: () => table_getFilteredRowModel(table), - fnName: 'table_getFilteredRowModel', }, - { + table_getPreGroupedRowModel: { fn: () => table_getPreGroupedRowModel(table), - fnName: 'table_getPreGroupedRowModel', }, - { + table_getGroupedRowModel: { fn: () => table_getGroupedRowModel(table), - fnName: 'table_getGroupedRowModel', }, - { + table_getPreSortedRowModel: { fn: () => table_getPreSortedRowModel(table), - fnName: 'table_getPreSortedRowModel', }, - { + table_getSortedRowModel: { fn: () => table_getSortedRowModel(table), - fnName: 'table_getSortedRowModel', }, - { + table_getPreExpandedRowModel: { fn: () => table_getPreExpandedRowModel(table), - fnName: 'table_getPreExpandedRowModel', }, - { + table_getExpandedRowModel: { fn: () => table_getExpandedRowModel(table), - fnName: 'table_getExpandedRowModel', }, - { + table_getPrePaginatedRowModel: { fn: () => table_getPrePaginatedRowModel(table), - fnName: 'table_getPrePaginatedRowModel', }, - { + table_getPaginatedRowModel: { fn: () => table_getPaginatedRowModel(table), - fnName: 'table_getPaginatedRowModel', }, - { + table_getRowModel: { fn: () => table_getRowModel(table), - fnName: 'table_getRowModel', }, - ]) + }) }, } } diff --git a/packages/table-core/src/core/rows/coreRowsFeature.ts b/packages/table-core/src/core/rows/coreRowsFeature.ts index 878b6443e6..e0801b9b87 100644 --- a/packages/table-core/src/core/rows/coreRowsFeature.ts +++ b/packages/table-core/src/core/rows/coreRowsFeature.ts @@ -34,55 +34,46 @@ export function constructCoreRowsFeature< >(): TableFeature> { return { constructRowAPIs: (row) => { - assignAPIs('coreRowsFeature', row, [ - { + assignAPIs('coreRowsFeature', row, { + row_getAllCellsByColumnId: { fn: () => row_getAllCellsByColumnId(row), - fnName: 'row_getAllCellsByColumnId', memoDeps: () => [row.getAllCells()], }, - { + row_getAllCells: { fn: () => row_getAllCells(row), - fnName: 'row_getAllCells', memoDeps: () => [row._table.getAllLeafColumns()], }, - { + row_getLeafRows: { fn: () => row_getLeafRows(row), - fnName: 'row_getLeafRows', }, - { + row_getParentRow: { fn: () => row_getParentRow(row), - fnName: 'row_getParentRow', }, - { + row_getParentRows: { fn: () => row_getParentRows(row), - fnName: 'row_getParentRows', }, - { + row_getUniqueValues: { fn: (columnId) => row_getUniqueValues(row, columnId), - fnName: 'row_getUniqueValues', }, - { + row_getValue: { fn: (columnId) => row_getValue(row, columnId), - fnName: 'row_getValue', }, - { + row_renderValue: { fn: (columnId) => row_renderValue(row, columnId), - fnName: 'row_renderValue', }, - ]) + }) }, constructTableAPIs: (table) => { - assignAPIs('coreRowsFeature', table, [ - { - fn: (row, index, parent) => table_getRowId(row, table, index, parent), - fnName: 'table_getRowId', + assignAPIs('coreRowsFeature', table, { + table_getRowId: { + fn: (originalRow, index, parent) => + table_getRowId(originalRow, table, index, parent), }, - { + table_getRow: { fn: (id: string, searchAll?: boolean) => table_getRow(table, id, searchAll), - fnName: 'table_getRow', }, - ]) + }) }, } } diff --git a/packages/table-core/src/core/table/coreTablesFeature.ts b/packages/table-core/src/core/table/coreTablesFeature.ts index 2949c42f59..911f1eb801 100644 --- a/packages/table-core/src/core/table/coreTablesFeature.ts +++ b/packages/table-core/src/core/table/coreTablesFeature.ts @@ -18,16 +18,14 @@ export function constructCoreTablesFeature< >(): TableFeature> { return { constructTableAPIs: (table) => { - assignAPIs('coreTablesFeature', table, [ - { + assignAPIs('coreTablesFeature', table, { + table_reset: { fn: () => table_reset(table), - fnName: 'table_reset', }, - { + table_setOptions: { fn: (updater) => table_setOptions(table, updater), - fnName: 'table_setOptions', }, - ]) + }) }, } } diff --git a/packages/table-core/src/features/column-faceting/columnFacetingFeature.ts b/packages/table-core/src/features/column-faceting/columnFacetingFeature.ts index 0fea420410..379801820a 100644 --- a/packages/table-core/src/features/column-faceting/columnFacetingFeature.ts +++ b/packages/table-core/src/features/column-faceting/columnFacetingFeature.ts @@ -30,37 +30,31 @@ export function constructColumnFacetingFeature< >(): TableFeature> { return { constructColumnAPIs: (column) => { - assignAPIs('columnFacetingFeature', column, [ - { + assignAPIs('columnFacetingFeature', column, { + column_getFacetedMinMaxValues: { fn: () => column_getFacetedMinMaxValues(column, column._table), - fnName: 'column_getFacetedMinMaxValues', }, - { + column_getFacetedRowModel: { fn: () => column_getFacetedRowModel(column, column._table), - fnName: 'column_getFacetedRowModel', }, - { + column_getFacetedUniqueValues: { fn: () => column_getFacetedUniqueValues(column, column._table), - fnName: 'column_getFacetedUniqueValues', }, - ]) + }) }, constructTableAPIs: (table) => { - assignAPIs('columnFacetingFeature', table, [ - { + assignAPIs('columnFacetingFeature', table, { + table_getGlobalFacetedMinMaxValues: { fn: () => table_getGlobalFacetedMinMaxValues(table), - fnName: 'table_getGlobalFacetedMinMaxValues', }, - { + table_getGlobalFacetedRowModel: { fn: () => table_getGlobalFacetedRowModel(table), - fnName: 'table_getGlobalFacetedRowModel', }, - { + table_getGlobalFacetedUniqueValues: { fn: () => table_getGlobalFacetedUniqueValues(table), - fnName: 'table_getGlobalFacetedUniqueValues', }, - ]) + }) }, } } diff --git a/packages/table-core/src/features/column-filtering/columnFilteringFeature.ts b/packages/table-core/src/features/column-filtering/columnFilteringFeature.ts index 6994288302..aae26e2346 100644 --- a/packages/table-core/src/features/column-filtering/columnFilteringFeature.ts +++ b/packages/table-core/src/features/column-filtering/columnFilteringFeature.ts @@ -67,36 +67,29 @@ export function constructColumnFilteringFeature< }, constructColumnAPIs: (column) => { - assignAPIs('columnFilteringFeature', column, [ - { + assignAPIs('columnFilteringFeature', column, { + column_getAutoFilterFn: { fn: () => column_getAutoFilterFn(column), - fnName: 'column_getAutoFilterFn', }, - { + column_getFilterFn: { fn: () => column_getFilterFn(column), - fnName: 'column_getFilterFn', }, - { + column_getCanFilter: { fn: () => column_getCanFilter(column), - fnName: 'column_getCanFilter', }, - { + column_getIsFiltered: { fn: () => column_getIsFiltered(column), - fnName: 'column_getIsFiltered', }, - { + column_getFilterValue: { fn: () => column_getFilterValue(column), - fnName: 'column_getFilterValue', }, - { + column_getFilterIndex: { fn: () => column_getFilterIndex(column), - fnName: 'column_getFilterIndex', }, - { + column_setFilterValue: { fn: (value) => column_setFilterValue(column, value), - fnName: 'column_setFilterValue', }, - ]) + }) }, constructRowAPIs: (row) => { @@ -105,16 +98,14 @@ export function constructColumnFilteringFeature< }, constructTableAPIs: (table) => { - assignAPIs('columnFilteringFeature', table, [ - { + assignAPIs('columnFilteringFeature', table, { + table_setColumnFilters: { fn: (updater) => table_setColumnFilters(table, updater), - fnName: 'table_setColumnFilters', }, - { + table_resetColumnFilters: { fn: (defaultState) => table_resetColumnFilters(table, defaultState), - fnName: 'table_resetColumnFilters', }, - ]) + }) }, } } diff --git a/packages/table-core/src/features/column-filtering/columnFilteringFeature.types.ts b/packages/table-core/src/features/column-filtering/columnFilteringFeature.types.ts index 0f09923847..2ab6e5c616 100644 --- a/packages/table-core/src/features/column-filtering/columnFilteringFeature.types.ts +++ b/packages/table-core/src/features/column-filtering/columnFilteringFeature.types.ts @@ -172,7 +172,7 @@ export interface TableOptions_ColumnFiltering< onColumnFiltersChange?: OnChangeFn } -export interface Table_ColumnFiltering<> { +export interface Table_ColumnFiltering { /** * Resets the **columnFilters** state to `initialState.columnFilters`, or `true` can be passed to force a default blank state reset to `[]`. */ diff --git a/packages/table-core/src/features/column-grouping/columnGroupingFeature.ts b/packages/table-core/src/features/column-grouping/columnGroupingFeature.ts index 948ae497e1..04a8aa0767 100644 --- a/packages/table-core/src/features/column-grouping/columnGroupingFeature.ts +++ b/packages/table-core/src/features/column-grouping/columnGroupingFeature.ts @@ -74,81 +74,67 @@ export function constructColumnGroupingFeature< }, constructCellAPIs: (cell) => { - assignAPIs('columnGroupingFeature', cell, [ - { + assignAPIs('columnGroupingFeature', cell, { + cell_getIsGrouped: { fn: () => cell_getIsGrouped(cell), - fnName: 'cell_getIsGrouped', }, - { + cell_getIsPlaceholder: { fn: () => cell_getIsPlaceholder(cell), - fnName: 'cell_getIsPlaceholder', }, - { + cell_getIsAggregated: { fn: () => cell_getIsAggregated(cell), - fnName: 'cell_getIsAggregated', }, - ]) + }) }, constructColumnAPIs: (column) => { - assignAPIs('columnGroupingFeature', column, [ - { + assignAPIs('columnGroupingFeature', column, { + column_toggleGrouping: { fn: () => column_toggleGrouping(column), - fnName: 'column_toggleGrouping', }, - { + column_getCanGroup: { fn: () => column_getCanGroup(column), - fnName: 'column_getCanGroup', }, - { + column_getIsGrouped: { fn: () => column_getIsGrouped(column), - fnName: 'column_getIsGrouped', }, - { + column_getGroupedIndex: { fn: () => column_getGroupedIndex(column), - fnName: 'column_getGroupedIndex', }, - { + column_getToggleGroupingHandler: { fn: () => column_getToggleGroupingHandler(column), - fnName: 'column_getToggleGroupingHandler', }, - { + column_getAutoAggregationFn: { fn: () => column_getAutoAggregationFn(column), - fnName: 'column_getAutoAggregationFn', }, - { + column_getAggregationFn: { fn: () => column_getAggregationFn(column), - fnName: 'column_getAggregationFn', }, - ]) + }) }, constructRowAPIs: (row) => { ;(row as any)._groupingValuesCache = {} - assignAPIs('columnGroupingFeature', row, [ - { + assignAPIs('columnGroupingFeature', row, { + row_getIsGrouped: { fn: () => row_getIsGrouped(row), - fnName: 'row_getIsGrouped', }, - { + row_getGroupingValue: { fn: (columnId) => row_getGroupingValue(row, columnId), - fnName: 'row_getGroupingValue', }, - ]) + }) }, constructTableAPIs: (table) => { - assignAPIs('columnGroupingFeature', table, [ - { + assignAPIs('columnGroupingFeature', table, { + table_setGrouping: { fn: (updater) => table_setGrouping(table, updater), - fnName: 'table_setGrouping', }, - { + table_resetGrouping: { fn: (defaultState) => table_resetGrouping(table, defaultState), - fnName: 'table_resetGrouping', }, - ]) + }) }, } } diff --git a/packages/table-core/src/features/column-ordering/columnOrderingFeature.ts b/packages/table-core/src/features/column-ordering/columnOrderingFeature.ts index 851043aadf..2c79acf889 100644 --- a/packages/table-core/src/features/column-ordering/columnOrderingFeature.ts +++ b/packages/table-core/src/features/column-ordering/columnOrderingFeature.ts @@ -46,10 +46,9 @@ export function constructColumnOrderingFeature< }, constructColumnAPIs: (column) => { - assignAPIs('columnOrderingFeature', column, [ - { + assignAPIs('columnOrderingFeature', column, { + column_getIndex: { fn: (position) => column_getIndex(column, position), - fnName: 'column_getIndex', memoDeps: (position) => [ position, column._table.store.state.columnOrder, @@ -57,37 +56,32 @@ export function constructColumnOrderingFeature< column._table.store.state.grouping, ], }, - { + column_getIsFirstColumn: { fn: (position) => column_getIsFirstColumn(column, position), - fnName: 'column_getIsFirstColumn', }, - { + column_getIsLastColumn: { fn: (position) => column_getIsLastColumn(column, position), - fnName: 'column_getIsLastColumn', }, - ]) + }) }, constructTableAPIs: (table) => { - assignAPIs('columnOrderingFeature', table, [ - { + assignAPIs('columnOrderingFeature', table, { + table_setColumnOrder: { fn: (updater) => table_setColumnOrder(table, updater), - fnName: 'table_setColumnOrder', }, - { + table_resetColumnOrder: { fn: (defaultState) => table_resetColumnOrder(table, defaultState), - fnName: 'table_resetColumnOrder', }, - { + table_getOrderColumnsFn: { fn: () => table_getOrderColumnsFn(table), - fnName: 'table_getOrderColumnsFn', memoDeps: () => [ table.store.state.columnOrder, table.store.state.grouping, table.options.groupedColumnMode, ], }, - ]) + }) }, } } diff --git a/packages/table-core/src/features/column-pinning/columnPinningFeature.ts b/packages/table-core/src/features/column-pinning/columnPinningFeature.ts index 6e0f8cea43..a23994a570 100644 --- a/packages/table-core/src/features/column-pinning/columnPinningFeature.ts +++ b/packages/table-core/src/features/column-pinning/columnPinningFeature.ts @@ -75,76 +75,65 @@ export function constructColumnPinningFeature< }, constructColumnAPIs: (column) => { - assignAPIs('columnPinningFeature', column, [ - { + assignAPIs('columnPinningFeature', column, { + column_pin: { fn: (position) => column_pin(column, position), - fnName: 'column_pin', }, - { + column_getCanPin: { fn: () => column_getCanPin(column), - fnName: 'column_getCanPin', }, - { + column_getPinnedIndex: { fn: () => column_getPinnedIndex(column), - fnName: 'column_getPinnedIndex', }, - { + column_getIsPinned: { fn: () => column_getIsPinned(column), - fnName: 'column_getIsPinned', }, - ]) + }) }, constructRowAPIs: (row) => { - assignAPIs('columnPinningFeature', row, [ - { + assignAPIs('columnPinningFeature', row, { + row_getCenterVisibleCells: { fn: () => row_getCenterVisibleCells(row), - fnName: 'row_getCenterVisibleCells', memoDeps: () => [ row.getAllCells(), row._table.store.state.columnPinning, row._table.store.state.columnVisibility, ], }, - { + row_getLeftVisibleCells: { fn: () => row_getLeftVisibleCells(row), - fnName: 'row_getLeftVisibleCells', memoDeps: () => [ row.getAllCells(), row._table.store.state.columnPinning?.left, row._table.store.state.columnVisibility, ], }, - { + row_getRightVisibleCells: { fn: () => row_getRightVisibleCells(row), - fnName: 'row_getRightVisibleCells', memoDeps: () => [ row.getAllCells(), row._table.store.state.columnPinning?.right, row._table.store.state.columnVisibility, ], }, - ]) + }) }, constructTableAPIs: (table) => { - assignAPIs('columnPinningFeature', table, [ - { + assignAPIs('columnPinningFeature', table, { + table_setColumnPinning: { fn: (updater) => table_setColumnPinning(table, updater), - fnName: 'table_setColumnPinning', }, - { + table_resetColumnPinning: { fn: (defaultState) => table_resetColumnPinning(table, defaultState), - fnName: 'table_resetColumnPinning', }, - { + table_getIsSomeColumnsPinned: { fn: (position) => table_getIsSomeColumnsPinned(table, position), - fnName: 'table_getIsSomeColumnsPinned', }, // header groups - { + table_getLeftHeaderGroups: { fn: () => table_getLeftHeaderGroups(table), - fnName: 'table_getLeftHeaderGroups', memoDeps: () => [ table.getAllColumns(), callMemoOrStaticFn( @@ -155,9 +144,8 @@ export function constructColumnPinningFeature< table.store.state.columnPinning?.left, ], }, - { + table_getCenterHeaderGroups: { fn: () => table_getCenterHeaderGroups(table), - fnName: 'table_getCenterHeaderGroups', memoDeps: () => [ table.getAllColumns(), callMemoOrStaticFn( @@ -168,9 +156,8 @@ export function constructColumnPinningFeature< table.store.state.columnPinning, ], }, - { + table_getRightHeaderGroups: { fn: () => table_getRightHeaderGroups(table), - fnName: 'table_getRightHeaderGroups', memoDeps: () => [ table.getAllColumns(), callMemoOrStaticFn( @@ -182,9 +169,8 @@ export function constructColumnPinningFeature< ], }, // footer groups - { + table_getLeftFooterGroups: { fn: () => table_getLeftFooterGroups(table), - fnName: 'table_getLeftFooterGroups', memoDeps: () => [ callMemoOrStaticFn( table, @@ -193,9 +179,8 @@ export function constructColumnPinningFeature< ), ], }, - { + table_getCenterFooterGroups: { fn: () => table_getCenterFooterGroups(table), - fnName: 'table_getCenterFooterGroups', memoDeps: () => [ callMemoOrStaticFn( table, @@ -204,9 +189,8 @@ export function constructColumnPinningFeature< ), ], }, - { + table_getRightFooterGroups: { fn: () => table_getRightFooterGroups(table), - fnName: 'table_getRightFooterGroups', memoDeps: () => [ callMemoOrStaticFn( table, @@ -216,9 +200,8 @@ export function constructColumnPinningFeature< ], }, // flat headers - { + table_getLeftFlatHeaders: { fn: () => table_getLeftFlatHeaders(table), - fnName: 'table_getLeftFlatHeaders', memoDeps: () => [ callMemoOrStaticFn( table, @@ -227,9 +210,8 @@ export function constructColumnPinningFeature< ), ], }, - { + table_getRightFlatHeaders: { fn: () => table_getRightFlatHeaders(table), - fnName: 'table_getRightFlatHeaders', memoDeps: () => [ callMemoOrStaticFn( table, @@ -238,9 +220,8 @@ export function constructColumnPinningFeature< ), ], }, - { + table_getCenterFlatHeaders: { fn: () => table_getCenterFlatHeaders(table), - fnName: 'table_getCenterFlatHeaders', memoDeps: () => [ callMemoOrStaticFn( table, @@ -250,9 +231,8 @@ export function constructColumnPinningFeature< ], }, // leaf headers - { + table_getLeftLeafHeaders: { fn: () => table_getLeftLeafHeaders(table), - fnName: 'table_getLeftLeafHeaders', memoDeps: () => [ callMemoOrStaticFn( table, @@ -261,9 +241,8 @@ export function constructColumnPinningFeature< ), ], }, - { + table_getRightLeafHeaders: { fn: () => table_getRightLeafHeaders(table), - fnName: 'table_getRightLeafHeaders', memoDeps: () => [ callMemoOrStaticFn( table, @@ -272,9 +251,8 @@ export function constructColumnPinningFeature< ), ], }, - { + table_getCenterLeafHeaders: { fn: () => table_getCenterLeafHeaders(table), - fnName: 'table_getCenterLeafHeaders', memoDeps: () => [ callMemoOrStaticFn( table, @@ -284,59 +262,53 @@ export function constructColumnPinningFeature< ], }, // leaf columns - { + table_getLeftLeafColumns: { fn: () => table_getLeftLeafColumns(table), - fnName: 'table_getLeftLeafColumns', memoDeps: () => [ table.options.columns, table.store.state.columnPinning, ], }, - { + table_getRightLeafColumns: { fn: () => table_getRightLeafColumns(table), - fnName: 'table_getRightLeafColumns', memoDeps: () => [ table.options.columns, table.store.state.columnPinning, ], }, - { + table_getCenterLeafColumns: { fn: () => table_getCenterLeafColumns(table), - fnName: 'table_getCenterLeafColumns', memoDeps: () => [ table.options.columns, table.store.state.columnPinning, ], }, // visible leaf columns - { + table_getLeftVisibleLeafColumns: { fn: () => table_getLeftVisibleLeafColumns(table), - fnName: 'table_getLeftVisibleLeafColumns', memoDeps: () => [ table.options.columns, table.store.state.columnPinning, table.store.state.columnVisibility, ], }, - { + table_getCenterVisibleLeafColumns: { fn: () => table_getCenterVisibleLeafColumns(table), - fnName: 'table_getCenterVisibleLeafColumns', memoDeps: () => [ table.options.columns, table.store.state.columnPinning, table.store.state.columnVisibility, ], }, - { + table_getRightVisibleLeafColumns: { fn: () => table_getRightVisibleLeafColumns(table), - fnName: 'table_getRightVisibleLeafColumns', memoDeps: () => [ table.options.columns, table.store.state.columnPinning, table.store.state.columnVisibility, ], }, - ]) + }) }, } } diff --git a/packages/table-core/src/features/column-resizing/columnResizingFeature.ts b/packages/table-core/src/features/column-resizing/columnResizingFeature.ts index 9991d48ab2..a98bf2e542 100644 --- a/packages/table-core/src/features/column-resizing/columnResizingFeature.ts +++ b/packages/table-core/src/features/column-resizing/columnResizingFeature.ts @@ -49,39 +49,34 @@ export function constructColumnResizingFeature< }, constructColumnAPIs: (column) => { - assignAPIs('columnResizingFeature', column, [ - { + assignAPIs('columnResizingFeature', column, { + column_getCanResize: { fn: () => column_getCanResize(column), - fnName: 'column_getCanResize', }, - { + column_getIsResizing: { fn: () => column_getIsResizing(column), - fnName: 'column_getIsResizing', }, - ]) + }) }, constructHeaderAPIs: (header) => { - assignAPIs('columnResizingFeature', header, [ - { + assignAPIs('columnResizingFeature', header, { + header_getResizeHandler: { fn: (_contextDocument) => header_getResizeHandler(header, _contextDocument), - fnName: 'header_getResizeHandler', }, - ]) + }) }, constructTableAPIs: (table) => { - assignAPIs('columnResizingFeature', table, [ - { + assignAPIs('columnResizingFeature', table, { + table_setColumnResizing: { fn: (updater) => table_setColumnResizing(table, updater), - fnName: 'table_setColumnResizing', }, - { + table_resetHeaderSizeInfo: { fn: (defaultState) => table_resetHeaderSizeInfo(table, defaultState), - fnName: 'table_resetHeaderSizeInfo', }, - ]) + }) }, } } diff --git a/packages/table-core/src/features/column-sizing/columnSizingFeature.ts b/packages/table-core/src/features/column-sizing/columnSizingFeature.ts index 539d204360..571db401ab 100644 --- a/packages/table-core/src/features/column-sizing/columnSizingFeature.ts +++ b/packages/table-core/src/features/column-sizing/columnSizingFeature.ts @@ -62,14 +62,12 @@ export function constructColumnSizingFeature< }, constructColumnAPIs: (column) => { - assignAPIs('columnSizingFeature', column, [ - { + assignAPIs('columnSizingFeature', column, { + column_getSize: { fn: () => column_getSize(column), - fnName: 'column_getSize', }, - { + column_getStart: { fn: (position) => column_getStart(column, position), - fnName: 'column_getStart', memoDeps: (position) => [ position, callMemoOrStaticFn( @@ -81,9 +79,8 @@ export function constructColumnSizingFeature< column._table.store.state.columnSizing, ], }, - { + column_getAfter: { fn: (position) => column_getAfter(column, position), - fnName: 'column_getAfter', memoDeps: (position) => [ position, callMemoOrStaticFn( @@ -95,53 +92,44 @@ export function constructColumnSizingFeature< column._table.store.state.columnSizing, ], }, - { + column_resetSize: { fn: () => column_resetSize(column), - fnName: 'column_resetSize', }, - ]) + }) }, constructHeaderAPIs: (header) => { - assignAPIs('columnSizingFeature', header, [ - { + assignAPIs('columnSizingFeature', header, { + header_getSize: { fn: () => header_getSize(header), - fnName: 'header_getSize', }, - { + header_getStart: { fn: () => header_getStart(header), - fnName: 'header_getStart', }, - ]) + }) }, constructTableAPIs: (table) => { - assignAPIs('columnSizingFeature', table, [ - { + assignAPIs('columnSizingFeature', table, { + table_setColumnSizing: { fn: (updater) => table_setColumnSizing(table, updater), - fnName: 'table_setColumnSizing', }, - { + table_resetColumnSizing: { fn: (defaultState) => table_resetColumnSizing(table, defaultState), - fnName: 'table_resetColumnSizing', }, - { + table_getTotalSize: { fn: () => table_getTotalSize(table), - fnName: 'table_getTotalSize', }, - { + table_getLeftTotalSize: { fn: () => table_getLeftTotalSize(table), - fnName: 'table_getLeftTotalSize', }, - { + table_getCenterTotalSize: { fn: () => table_getCenterTotalSize(table), - fnName: 'table_getCenterTotalSize', }, - { + table_getRightTotalSize: { fn: () => table_getRightTotalSize(table), - fnName: 'table_getRightTotalSize', }, - ]) + }) }, } } diff --git a/packages/table-core/src/features/column-visibility/columnVisibilityFeature.ts b/packages/table-core/src/features/column-visibility/columnVisibilityFeature.ts index 9b7205cdea..a456ea2201 100644 --- a/packages/table-core/src/features/column-visibility/columnVisibilityFeature.ts +++ b/packages/table-core/src/features/column-visibility/columnVisibilityFeature.ts @@ -63,97 +63,83 @@ export function constructColumnVisibilityFeature< }, constructColumnAPIs: (column) => { - assignAPIs('columnVisibilityFeature', column, [ - { + assignAPIs('columnVisibilityFeature', column, { + column_getIsVisible: { fn: () => column_getIsVisible(column), - fnName: 'column_getIsVisible', memoDeps: () => [ column._table.options.columns, column._table.store.state.columnVisibility, column.columns, ], }, - { + column_getCanHide: { fn: () => column_getCanHide(column), - fnName: 'column_getCanHide', }, - { + column_getToggleVisibilityHandler: { fn: () => column_getToggleVisibilityHandler(column), - fnName: 'column_getToggleVisibilityHandler', }, - { + column_toggleVisibility: { fn: (visible) => column_toggleVisibility(column, visible), - fnName: 'column_toggleVisibility', }, - ]) + }) }, constructRowAPIs: (row) => { - assignAPIs('columnVisibilityFeature', row, [ - { + assignAPIs('columnVisibilityFeature', row, { + row_getAllVisibleCells: { fn: () => row_getAllVisibleCells(row), - fnName: 'row_getAllVisibleCells', memoDeps: () => [ row.getAllCells(), row._table.store.state.columnVisibility, ], }, - { + row_getVisibleCells: { fn: (left, center, right) => row_getVisibleCells(left, center, right), - fnName: 'row_getVisibleCells', memoDeps: () => [ row_getLeftVisibleCells(row), row_getCenterVisibleCells(row), row_getRightVisibleCells(row), ], }, - ]) + }) }, constructTableAPIs: (table) => { - assignAPIs('columnVisibilityFeature', table, [ - { + assignAPIs('columnVisibilityFeature', table, { + table_getVisibleFlatColumns: { fn: () => table_getVisibleFlatColumns(table), - fnName: 'table_getVisibleFlatColumns', memoDeps: () => [ table.store.state.columnVisibility, table.options.columns, ], }, - { + table_getVisibleLeafColumns: { fn: () => table_getVisibleLeafColumns(table), - fnName: 'table_getVisibleLeafColumns', memoDeps: () => [ table.store.state.columnVisibility, table.options.columns, ], }, - { + table_setColumnVisibility: { fn: (updater) => table_setColumnVisibility(table, updater), - fnName: 'table_setColumnVisibility', }, - { + table_resetColumnVisibility: { fn: (defaultState) => table_resetColumnVisibility(table, defaultState), - fnName: 'table_resetColumnVisibility', }, - { + table_toggleAllColumnsVisible: { fn: (value) => table_toggleAllColumnsVisible(table, value), - fnName: 'table_toggleAllColumnsVisible', }, - { + table_getIsAllColumnsVisible: { fn: () => table_getIsAllColumnsVisible(table), - fnName: 'table_getIsAllColumnsVisible', }, - { + table_getIsSomeColumnsVisible: { fn: () => table_getIsSomeColumnsVisible(table), - fnName: 'table_getIsSomeColumnsVisible', }, - { + table_getToggleAllColumnsVisibilityHandler: { fn: () => table_getToggleAllColumnsVisibilityHandler(table), - fnName: 'table_getToggleAllColumnsVisibilityHandler', }, - ]) + }) }, } } diff --git a/packages/table-core/src/features/global-filtering/globalFilteringFeature.ts b/packages/table-core/src/features/global-filtering/globalFilteringFeature.ts index 26697a82f5..6fe79e98dc 100644 --- a/packages/table-core/src/features/global-filtering/globalFilteringFeature.ts +++ b/packages/table-core/src/features/global-filtering/globalFilteringFeature.ts @@ -55,33 +55,28 @@ export function constructGlobalFilteringFeature< }, constructColumnAPIs: (column) => { - assignAPIs('globalFilteringFeature', column, [ - { + assignAPIs('globalFilteringFeature', column, { + column_getCanGlobalFilter: { fn: () => column_getCanGlobalFilter(column), - fnName: 'column_getCanGlobalFilter', }, - ]) + }) }, constructTableAPIs: (table) => { - assignAPIs('globalFilteringFeature', table, [ - { + assignAPIs('globalFilteringFeature', table, { + table_getGlobalAutoFilterFn: { fn: () => table_getGlobalAutoFilterFn(), - fnName: 'table_getGlobalAutoFilterFn', }, - { + table_getGlobalFilterFn: { fn: () => table_getGlobalFilterFn(table), - fnName: 'table_getGlobalFilterFn', }, - { + table_setGlobalFilter: { fn: (updater) => table_setGlobalFilter(table, updater), - fnName: 'table_setGlobalFilter', }, - { + table_resetGlobalFilter: { fn: (defaultState) => table_resetGlobalFilter(table, defaultState), - fnName: 'table_resetGlobalFilter', }, - ]) + }) }, } } diff --git a/packages/table-core/src/features/row-expanding/rowExpandingFeature.ts b/packages/table-core/src/features/row-expanding/rowExpandingFeature.ts index f0fb983a72..176f70563b 100644 --- a/packages/table-core/src/features/row-expanding/rowExpandingFeature.ts +++ b/packages/table-core/src/features/row-expanding/rowExpandingFeature.ts @@ -59,69 +59,55 @@ export function constructRowExpandingFeature< }, constructRowAPIs: (row) => { - assignAPIs('rowExpandingFeature', row, [ - { + assignAPIs('rowExpandingFeature', row, { + row_toggleExpanded: { fn: (expanded) => row_toggleExpanded(row, expanded), - fnName: 'row_toggleExpanded', }, - { + row_getIsExpanded: { fn: () => row_getIsExpanded(row), - fnName: 'row_getIsExpanded', }, - { + row_getCanExpand: { fn: () => row_getCanExpand(row), - fnName: 'row_getCanExpand', }, - { + row_getIsAllParentsExpanded: { fn: () => row_getIsAllParentsExpanded(row), - fnName: 'row_getIsAllParentsExpanded', }, - { + row_getToggleExpandedHandler: { fn: () => row_getToggleExpandedHandler(row), - fnName: 'row_getToggleExpandedHandler', }, - ]) + }) }, constructTableAPIs: (table) => { - assignAPIs('rowExpandingFeature', table, [ - { + assignAPIs('rowExpandingFeature', table, { + table_autoResetExpanded: { fn: () => table_autoResetExpanded(table), - fnName: 'table_autoResetExpanded', }, - { + table_setExpanded: { fn: (updater) => table_setExpanded(table, updater), - fnName: 'table_setExpanded', }, - { + table_toggleAllRowsExpanded: { fn: (expanded) => table_toggleAllRowsExpanded(table, expanded), - fnName: 'table_toggleAllRowsExpanded', }, - { + table_resetExpanded: { fn: (defaultState) => table_resetExpanded(table, defaultState), - fnName: 'table_resetExpanded', }, - { + table_getCanSomeRowsExpand: { fn: () => table_getCanSomeRowsExpand(table), - fnName: 'table_getCanSomeRowsExpand', }, - { + table_getToggleAllRowsExpandedHandler: { fn: () => table_getToggleAllRowsExpandedHandler(table), - fnName: 'table_getToggleAllRowsExpandedHandler', }, - { + table_getIsSomeRowsExpanded: { fn: () => table_getIsSomeRowsExpanded(table), - fnName: 'table_getIsSomeRowsExpanded', }, - { + table_getIsAllRowsExpanded: { fn: () => table_getIsAllRowsExpanded(table), - fnName: 'table_getIsAllRowsExpanded', }, - { + table_getExpandedDepth: { fn: () => table_getExpandedDepth(table), - fnName: 'table_getExpandedDepth', }, - ]) + }) }, } } diff --git a/packages/table-core/src/features/row-pagination/rowPaginationFeature.ts b/packages/table-core/src/features/row-pagination/rowPaginationFeature.ts index 835cdb5f4d..51c82c1c98 100644 --- a/packages/table-core/src/features/row-pagination/rowPaginationFeature.ts +++ b/packages/table-core/src/features/row-pagination/rowPaginationFeature.ts @@ -61,76 +61,56 @@ export function constructRowPaginationFeature< }, constructTableAPIs: (table) => { - assignAPIs('rowPaginationFeature', table, [ - { + assignAPIs('rowPaginationFeature', table, { + table_autoResetPageIndex: { fn: () => table_autoResetPageIndex(table), - fnName: 'table_autoResetPageIndex', }, - { + table_setPagination: { fn: (updater) => table_setPagination(table, updater), - fnName: 'table_setPagination', }, - { + table_resetPagination: { fn: (defaultState) => table_resetPagination(table, defaultState), - fnName: 'table_resetPagination', }, - { + table_setPageIndex: { fn: (updater) => table_setPageIndex(table, updater), - fnName: 'table_setPageIndex', }, - { + table_resetPageIndex: { fn: (defaultState) => table_resetPageIndex(table, defaultState), - fnName: 'table_resetPageIndex', }, - { + table_setPageSize: { fn: (updater) => table_setPageSize(table, updater), - fnName: 'table_setPageSize', }, - { + table_getPageCount: { fn: () => table_getPageCount(table), - fnName: 'table_getPageCount', }, - { + table_resetPageSize: { fn: (defaultState) => table_resetPageSize(table, defaultState), - fnName: 'table_resetPageSize', }, - { + table_getPageOptions: { fn: () => table_getPageOptions(table), - fnName: 'table_getPageOptions', }, - { + table_getCanPreviousPage: { fn: () => table_getCanPreviousPage(table), - fnName: 'table_getCanPreviousPage', }, - { + table_getCanNextPage: { fn: () => table_getCanNextPage(table), - fnName: 'table_getCanNextPage', }, - { + table_previousPage: { fn: () => table_previousPage(table), - fnName: 'table_previousPage', }, - { + table_nextPage: { fn: () => table_nextPage(table), - fnName: 'table_nextPage', }, - { + table_firstPage: { fn: () => table_firstPage(table), - fnName: 'table_firstPage', }, - { + table_lastPage: { fn: () => table_lastPage(table), - fnName: 'table_lastPage', }, - { - fn: () => table_getPageCount(table), - fnName: 'table_getPageCount', - }, - { + table_getRowCount: { fn: () => table_getRowCount(table), - fnName: 'table_getRowCount', }, - ]) + }) }, } } diff --git a/packages/table-core/src/features/row-pinning/rowPinningFeature.ts b/packages/table-core/src/features/row-pinning/rowPinningFeature.ts index 9cb7f1f145..cad26cc704 100644 --- a/packages/table-core/src/features/row-pinning/rowPinningFeature.ts +++ b/packages/table-core/src/features/row-pinning/rowPinningFeature.ts @@ -53,70 +53,60 @@ export function constructRowPinningFeature< }, constructRowAPIs: (row) => { - assignAPIs('rowPinningFeature', row, [ - { + assignAPIs('rowPinningFeature', row, { + row_getCanPin: { fn: () => row_getCanPin(row), - fnName: 'row_getCanPin', }, - { + row_getIsPinned: { fn: () => row_getIsPinned(row), - fnName: 'row_getIsPinned', }, - { + row_getPinnedIndex: { fn: () => row_getPinnedIndex(row), - fnName: 'row_getPinnedIndex', memoDeps: () => [ row._table.getRowModel().rows, row._table.store.state.rowPinning, ], }, - { + row_pin: { fn: (position, includeLeafRows, includeParentRows) => row_pin(row, position, includeLeafRows, includeParentRows), - fnName: 'row_pin', }, - ]) + }) }, constructTableAPIs: (table) => { - assignAPIs('rowPinningFeature', table, [ - { + assignAPIs('rowPinningFeature', table, { + table_setRowPinning: { fn: (updater) => table_setRowPinning(table, updater), - fnName: 'table_setRowPinning', }, - { + table_resetRowPinning: { fn: (defaultState) => table_resetRowPinning(table, defaultState), - fnName: 'table_resetRowPinning', }, - { + table_getIsSomeRowsPinned: { fn: (position) => table_getIsSomeRowsPinned(table, position), - fnName: 'table_getIsSomeRowsPinned', }, - { + table_getTopRows: { fn: () => table_getTopRows(table), - fnName: 'table_getTopRows', memoDeps: () => [ table.getRowModel().rows, table.store.state.rowPinning?.top, ], }, - { + table_getBottomRows: { fn: () => table_getBottomRows(table), - fnName: 'table_getBottomRows', memoDeps: () => [ table.getRowModel().rows, table.store.state.rowPinning?.bottom, ], }, - { + table_getCenterRows: { fn: () => table_getCenterRows(table), - fnName: 'table_getCenterRows', memoDeps: () => [ table.getRowModel().rows, table.store.state.rowPinning, ], }, - ]) + }) }, } } diff --git a/packages/table-core/src/features/row-selection/rowSelectionFeature.ts b/packages/table-core/src/features/row-selection/rowSelectionFeature.ts index b775f29b3d..e1f45e0016 100644 --- a/packages/table-core/src/features/row-selection/rowSelectionFeature.ts +++ b/packages/table-core/src/features/row-selection/rowSelectionFeature.ts @@ -65,113 +65,91 @@ export function constructRowSelectionFeature< }, constructRowAPIs: (row) => { - assignAPIs('rowSelectionFeature', row, [ - { + assignAPIs('rowSelectionFeature', row, { + row_toggleSelected: { fn: (value, opts) => row_toggleSelected(row, value, opts), - fnName: 'row_toggleSelected', }, - { + row_getIsSelected: { fn: () => row_getIsSelected(row), - fnName: 'row_getIsSelected', }, - { + row_getIsSomeSelected: { fn: () => row_getIsSomeSelected(row), - fnName: 'row_getIsSomeSelected', }, - { + row_getIsAllSubRowsSelected: { fn: () => row_getIsAllSubRowsSelected(row), - fnName: 'row_getIsAllSubRowsSelected', }, - { + row_getCanSelect: { fn: () => row_getCanSelect(row), - fnName: 'row_getCanSelect', }, - { + row_getCanSelectSubRows: { fn: () => row_getCanSelectSubRows(row), - fnName: 'row_getCanSelectSubRows', }, - { + row_getCanMultiSelect: { fn: () => row_getCanMultiSelect(row), - fnName: 'row_getCanMultiSelect', }, - { + row_getToggleSelectedHandler: { fn: () => row_getToggleSelectedHandler(row), - fnName: 'row_getToggleSelectedHandler', }, - ]) + }) }, constructTableAPIs: (table) => { - assignAPIs('rowSelectionFeature', table, [ - { + assignAPIs('rowSelectionFeature', table, { + table_setRowSelection: { fn: (updater) => table_setRowSelection(table, updater), - fnName: 'table_setRowSelection', }, - { + table_resetRowSelection: { fn: (defaultState) => table_resetRowSelection(table, defaultState), - fnName: 'table_resetRowSelection', }, - { + table_toggleAllRowsSelected: { fn: (value) => table_toggleAllRowsSelected(table, value), - fnName: 'table_toggleAllRowsSelected', }, - { + table_toggleAllPageRowsSelected: { fn: (value) => table_toggleAllPageRowsSelected(table, value), - fnName: 'table_toggleAllPageRowsSelected', }, - { + table_getPreSelectedRowModel: { fn: () => table_getPreSelectedRowModel(table), - fnName: 'table_getPreSelectedRowModel', }, - { + table_getSelectedRowModel: { fn: () => table_getSelectedRowModel(table), - fnName: 'table_getSelectedRowModel', memoDeps: () => [ table.store.state.rowSelection, table.getCoreRowModel(), ], }, - { + table_getFilteredSelectedRowModel: { fn: () => table_getFilteredSelectedRowModel(table), - fnName: 'table_getFilteredSelectedRowModel', memoDeps: () => [ table.store.state.rowSelection, table.getFilteredRowModel(), ], }, - { + table_getGroupedSelectedRowModel: { fn: () => table_getGroupedSelectedRowModel(table), - fnName: 'table_getGroupedSelectedRowModel', memoDeps: () => [ table.store.state.rowSelection, table.getSortedRowModel(), ], }, - { + table_getIsAllRowsSelected: { fn: () => table_getIsAllRowsSelected(table), - fnName: 'table_getIsAllRowsSelected', }, - { + table_getIsAllPageRowsSelected: { fn: () => table_getIsAllPageRowsSelected(table), - fnName: 'table_getIsAllPageRowsSelected', }, - { + table_getIsSomeRowsSelected: { fn: () => table_getIsSomeRowsSelected(table), - fnName: 'table_getIsSomeRowsSelected', }, - { + table_getIsSomePageRowsSelected: { fn: () => table_getIsSomePageRowsSelected(table), - fnName: 'table_getIsSomePageRowsSelected', }, - { + table_getToggleAllRowsSelectedHandler: { fn: () => table_getToggleAllRowsSelectedHandler(table), - fnName: 'table_getToggleAllRowsSelectedHandler', }, - { + table_getToggleAllPageRowsSelectedHandler: { fn: () => table_getToggleAllPageRowsSelectedHandler(table), - fnName: 'table_getToggleAllPageRowsSelectedHandler', }, - ]) + }) }, } } diff --git a/packages/table-core/src/features/row-sorting/rowSortingFeature.ts b/packages/table-core/src/features/row-sorting/rowSortingFeature.ts index 6cb38ce81f..38a18a8ab2 100644 --- a/packages/table-core/src/features/row-sorting/rowSortingFeature.ts +++ b/packages/table-core/src/features/row-sorting/rowSortingFeature.ts @@ -73,69 +73,55 @@ export function constructRowSortingFeature< }, constructColumnAPIs(column) { - assignAPIs('rowSortingFeature', column, [ - { + assignAPIs('rowSortingFeature', column, { + 'column.getAutoSortFn': { fn: () => column_getAutoSortFn(column), - fnName: 'column.getAutoSortFn', }, - { + 'column.getAutoSortDir': { fn: () => column_getAutoSortDir(column), - fnName: 'column.getAutoSortDir', }, - { + column_getSortFn: { fn: () => column_getSortFn(column), - fnName: 'column_getSortFn', }, - { + column_toggleSorting: { fn: (desc, multi) => column_toggleSorting(column, desc, multi), - fnName: 'column_toggleSorting', }, - { + column_getFirstSortDir: { fn: () => column_getFirstSortDir(column), - fnName: 'column_getFirstSortDir', }, - { + column_getNextSortingOrder: { fn: (multi) => column_getNextSortingOrder(column, multi), - fnName: 'column_getNextSortingOrder', }, - { + column_getCanSort: { fn: () => column_getCanSort(column), - fnName: 'column_getCanSort', }, - { + column_getCanMultiSort: { fn: () => column_getCanMultiSort(column), - fnName: 'column_getCanMultiSort', }, - { + column_getIsSorted: { fn: () => column_getIsSorted(column), - fnName: 'column_getIsSorted', }, - { + column_getSortIndex: { fn: () => column_getSortIndex(column), - fnName: 'column_getSortIndex', }, - { + column_clearSorting: { fn: () => column_clearSorting(column), - fnName: 'column_clearSorting', }, - { + column_getToggleSortingHandler: { fn: () => column_getToggleSortingHandler(column), - fnName: 'column_getToggleSortingHandler', }, - ]) + }) }, constructTableAPIs(table) { - assignAPIs('rowSortingFeature', table, [ - { + assignAPIs('rowSortingFeature', table, { + table_setSorting: { fn: (updater) => table_setSorting(table, updater), - fnName: 'table_setSorting', }, - { + table_resetSorting: { fn: (defaultState) => table_resetSorting(table, defaultState), - fnName: 'table_resetSorting', }, - ]) + }) }, } } diff --git a/packages/table-core/src/utils.ts b/packages/table-core/src/utils.ts index 6583ce9c10..265295ce0b 100755 --- a/packages/table-core/src/utils.ts +++ b/packages/table-core/src/utils.ts @@ -244,12 +244,16 @@ export function tableMemo< }) } -interface API, TDepArgs> { +export interface API, TDepArgs> { fn: (...args: any) => any memoDeps?: (depArgs?: any) => [...any] | undefined - fnName: string } +export type APIObject, TDepArgs> = Record< + string, + API +> + /** * Assumes that a function name is in the format of `parentName_fnKey` and returns the `fnKey` and `fnName` in the format of `parentName.fnKey`. */ @@ -267,7 +271,8 @@ export function getFunctionNameInfo( } /** - * Takes a static function, looks at its name and assigns it to an object with optional memoization and debugging. + * Takes an object of API definitions keyed by function name (e.g., 'row_getValue') + * and assigns them to the target object with optional memoization and debugging. */ export function assignAPIs< TFeatures extends TableFeatures, @@ -278,10 +283,10 @@ export function assignAPIs< >( feature: keyof TFeatures & string, obj: TObject extends Record ? U : never, // table, row, cell, column, header - apis: Array>>, + apis: APIObject>, ): void { const table = (obj._table ?? obj) as Table_Internal - apis.forEach(({ fn, memoDeps, fnName: staticFnName }) => { + for (const [staticFnName, { fn, memoDeps }] of Object.entries(apis)) { const { fnKey, fnName } = getFunctionNameInfo(staticFnName) obj[fnKey] = memoDeps @@ -294,7 +299,7 @@ export function assignAPIs< feature, }) : fn - }) + } } /** diff --git a/packages/table-core/tests/helpers/rowPinningHelpers.ts b/packages/table-core/tests/helpers/rowPinningHelpers.ts index 2ebdb93842..dd7d5e310b 100644 --- a/packages/table-core/tests/helpers/rowPinningHelpers.ts +++ b/packages/table-core/tests/helpers/rowPinningHelpers.ts @@ -26,7 +26,10 @@ export function createTableWithPinningState( return table } -export function createTableWithMockOnPinningChange(rowCount = 10) { +export function createTableWithMockOnPinningChange(rowCount = 10): { + table: ReturnType + onRowPinningChangeMock: ReturnType +} { const onRowPinningChangeMock = vi.fn() const table = generateTestTableWithData(rowCount) table.options.onRowPinningChange = onRowPinningChangeMock diff --git a/packages/table-core/tests/implementation/features/row-pinning/rowPinningFeature.test.ts b/packages/table-core/tests/implementation/features/row-pinning/rowPinningFeature.test.ts index 37998376b2..ca2efb3572 100644 --- a/packages/table-core/tests/implementation/features/row-pinning/rowPinningFeature.test.ts +++ b/packages/table-core/tests/implementation/features/row-pinning/rowPinningFeature.test.ts @@ -1,5 +1,9 @@ import { describe, expect, it } from 'vitest' -import { createPaginatedRowModel, rowPaginationFeature } from '../../../../src' +import { + createPaginatedRowModel, + rowPaginationFeature, + type Row, +} from '../../../../src' import { createRowPinningTable } from '../../../helpers/rowPinningHelpers' const ROW = { @@ -115,7 +119,10 @@ describe('table methods', () => { expect(centerRows).toHaveLength(8) expect( - centerRows.every((row) => row.id !== ROW[0] && row.id !== ROW[2]), + centerRows.every( + (row: (typeof centerRows)[number]) => + row.id !== ROW[0] && row.id !== ROW[2], + ), ).toBe(true) }) @@ -195,7 +202,7 @@ describe('row methods', () => { it('should use enableRowPinning function when provided', () => { const table = createRowPinningTable({ _features: {}, - enableRowPinning: (row) => row.id === ROW[1], + enableRowPinning: (row: Row) => row.id === ROW[1], }) expect(table.getRow(ROW[0]).getCanPin()).toBe(false) diff --git a/packages/table-core/tests/implementation/features/row-selection/rowSelectionFeature.test.ts b/packages/table-core/tests/implementation/features/row-selection/rowSelectionFeature.test.ts index 29bdc9c5cf..a5a4a729d8 100644 --- a/packages/table-core/tests/implementation/features/row-selection/rowSelectionFeature.test.ts +++ b/packages/table-core/tests/implementation/features/row-selection/rowSelectionFeature.test.ts @@ -44,11 +44,10 @@ describe('rowSelectionFeature', () => { _features, _rowModels: {}, enableRowSelection: true, - onStateChange() {}, renderFallbackValue: '', data, getSubRows: (row) => row.subRows, - state: { + initialState: { rowSelection: { '0': true, '2': true, @@ -74,11 +73,10 @@ describe('rowSelectionFeature', () => { _features, _rowModels: {}, enableRowSelection: true, - onStateChange() {}, renderFallbackValue: '', data, getSubRows: (row) => row.subRows, - state: { + initialState: { rowSelection: { '0': true, '0.0': true, @@ -104,11 +102,10 @@ describe('rowSelectionFeature', () => { _features, _rowModels: {}, enableRowSelection: true, - onStateChange() {}, renderFallbackValue: '', data, getSubRows: (row) => row.subRows, - state: { + initialState: { rowSelection: {}, }, columns, @@ -131,10 +128,9 @@ describe('rowSelectionFeature', () => { _features, _rowModels: {}, enableRowSelection: true, - onStateChange() {}, renderFallbackValue: '', data, - state: { + initialState: { rowSelection: { '123': true, '456': false, @@ -157,10 +153,9 @@ describe('rowSelectionFeature', () => { _features, _rowModels: {}, enableRowSelection: true, - onStateChange() {}, renderFallbackValue: '', data, - state: { + initialState: { rowSelection: { '123': true, '456': false, @@ -183,10 +178,9 @@ describe('rowSelectionFeature', () => { _features, _rowModels: {}, enableRowSelection: true, - onStateChange() {}, renderFallbackValue: '', data, - state: { + initialState: { rowSelection: { '123': true, '456': false, @@ -209,10 +203,9 @@ describe('rowSelectionFeature', () => { _features, _rowModels: {}, enableRowSelection: true, - onStateChange() {}, renderFallbackValue: '', data, - state: {}, + initialState: {}, columns, }) @@ -231,10 +224,9 @@ describe('rowSelectionFeature', () => { _features, _rowModels: {}, enableRowSelection: true, - onStateChange() {}, renderFallbackValue: '', data, - state: {}, + initialState: {}, columns, }) @@ -253,11 +245,10 @@ describe('rowSelectionFeature', () => { _features, _rowModels: {}, enableRowSelection: true, - onStateChange() {}, renderFallbackValue: '', data, getSubRows: (row) => row.subRows, - state: { + initialState: { rowSelection: {}, }, columns, @@ -278,11 +269,10 @@ describe('rowSelectionFeature', () => { _features, _rowModels: {}, enableRowSelection: true, - onStateChange() {}, renderFallbackValue: '', data, getSubRows: (row) => row.subRows, - state: { + initialState: { rowSelection: { '0.0': true, }, @@ -305,11 +295,10 @@ describe('rowSelectionFeature', () => { _features, _rowModels: {}, enableRowSelection: true, - onStateChange() {}, renderFallbackValue: '', data, getSubRows: (row) => row.subRows, - state: { + initialState: { rowSelection: { '0.0': true, '0.1': true, @@ -332,11 +321,10 @@ describe('rowSelectionFeature', () => { _features, _rowModels: {}, enableRowSelection: (row) => row.index === 0, // only first row is selectable (of 2 sub-rows) - onStateChange() {}, renderFallbackValue: '', data, getSubRows: (row) => row.subRows, - state: { + initialState: { rowSelection: { '0.0': true, // first sub-row }, @@ -358,11 +346,10 @@ describe('rowSelectionFeature', () => { _features, _rowModels: {}, enableRowSelection: true, - onStateChange() {}, renderFallbackValue: '', data, getSubRows: (row) => row.subRows, - state: { + initialState: { rowSelection: { '0.0.0': true, // first nested sub-row }, diff --git a/packages/table-core/tests/unit/features/column-pinning/columnPinningFeature.utils.test.ts b/packages/table-core/tests/unit/features/column-pinning/columnPinningFeature.utils.test.ts index 004b5a47fb..98fdb805cd 100644 --- a/packages/table-core/tests/unit/features/column-pinning/columnPinningFeature.utils.test.ts +++ b/packages/table-core/tests/unit/features/column-pinning/columnPinningFeature.utils.test.ts @@ -26,6 +26,7 @@ import { table_getVisibleLeafColumns, table_resetColumnPinning, table_setColumnPinning, + type Header, } from '../../../../src' import { generateTestTableWithData } from '../../../helpers/generateTestTable' import { getUpdaterResult } from '../../../helpers/testUtils' @@ -464,7 +465,7 @@ describe('table_getCenterHeaderGroups', () => { const headerGroups = table_getCenterHeaderGroups(table as any) const centerColumnIds = headerGroups[0]?.headers.map( - (header) => header.column.id, + (header: Header) => header.column.id, ) expect(centerColumnIds).not.toContain('firstName') @@ -664,7 +665,7 @@ describe('table_getFooterGroups', () => { const footerGroups = table_getCenterFooterGroups(table as any) const centerColumnIds = footerGroups[0]?.headers.map( - (header) => header.column.id, + (header: Header) => header.column.id, ) expect(centerColumnIds).not.toContain('firstName') diff --git a/packages/table-core/tests/unit/features/column-visibility/columnVisibilityFeature.utils.test.ts b/packages/table-core/tests/unit/features/column-visibility/columnVisibilityFeature.utils.test.ts index bcceb4edb3..678a102b4c 100644 --- a/packages/table-core/tests/unit/features/column-visibility/columnVisibilityFeature.utils.test.ts +++ b/packages/table-core/tests/unit/features/column-visibility/columnVisibilityFeature.utils.test.ts @@ -18,6 +18,7 @@ import { table_resetColumnVisibility, table_setColumnVisibility, table_toggleAllColumnsVisible, + type Column, } from '../../../../src' import { generateTestTableWithData } from '../../../helpers/generateTestTable' import { getUpdaterResult } from '../../../helpers/testUtils' @@ -325,9 +326,11 @@ describe('columnVisibilityFeature.utils', () => { expect(onColumnVisibilityChange).toHaveBeenCalled() const result = onColumnVisibilityChange.mock.calls[0]?.[0] - const allColumnIds = table.getAllLeafColumns().map((col) => col.id) + const allColumnIds = table + .getAllLeafColumns() + .map((col: Column) => col.id) expect(Object.entries(result)).toEqual( - allColumnIds.map((id) => [id, true]), + allColumnIds.map((id: string) => [id, true]), ) }) @@ -342,9 +345,11 @@ describe('columnVisibilityFeature.utils', () => { expect(onColumnVisibilityChange).toHaveBeenCalled() const result = onColumnVisibilityChange.mock.calls[0]?.[0] - const allColumnIds = table.getAllLeafColumns().map((col) => col.id) + const allColumnIds = table + .getAllLeafColumns() + .map((col: Column) => col.id) expect(Object.entries(result)).toEqual( - allColumnIds.map((id) => [id, false]), + allColumnIds.map((id: string) => [id, false]), ) }) }) @@ -391,9 +396,11 @@ describe('columnVisibilityFeature.utils', () => { it('should return false when no columns are visible', () => { const table = generateTestTableWithData(1, { _features }) - const allColumnIds = table.getAllLeafColumns().map((col) => col.id) + const allColumnIds = table + .getAllLeafColumns() + .map((col: Column) => col.id) const hideAllColumns = Object.fromEntries( - allColumnIds.map((id) => [id, false]), + allColumnIds.map((id: string) => [id, false]), ) const tableWithHiddenColumns = generateTestTableWithData(1, { @@ -422,9 +429,11 @@ describe('columnVisibilityFeature.utils', () => { expect(onColumnVisibilityChange).toHaveBeenCalled() const result = onColumnVisibilityChange.mock.calls[0]?.[0] - const allColumnIds = table.getAllLeafColumns().map((col) => col.id) + const allColumnIds = table + .getAllLeafColumns() + .map((col: Column) => col.id) expect(Object.entries(result)).toEqual( - allColumnIds.map((id) => [id, true]), + allColumnIds.map((id: string) => [id, true]), ) }) }) From 95c431d613e8dae8a393b417fdb59567ea1bbd8c Mon Sep 17 00:00:00 2001 From: Kevin Van Cott Date: Wed, 24 Dec 2025 18:10:25 -0600 Subject: [PATCH 07/38] svelte somewhat working --- examples/svelte/filtering/src/App.svelte | 52 ++- examples/svelte/row-selection/index.html | 15 + examples/svelte/row-selection/package.json | 25 ++ examples/svelte/row-selection/src/App.svelte | 342 ++++++++++++++++++ examples/svelte/row-selection/src/index.css | 27 ++ examples/svelte/row-selection/src/main.ts | 9 + examples/svelte/row-selection/src/makeData.ts | 51 +++ .../svelte/row-selection/svelte.config.js | 6 + examples/svelte/row-selection/tsconfig.json | 18 + examples/svelte/row-selection/vite.config.js | 18 + examples/svelte/sorting/src/App.svelte | 44 +-- examples/svelte/sorting/src/Header.svelte | 37 +- packages/svelte-table/package.json | 1 + packages/svelte-table/src/FlexRender.svelte | 1 - packages/svelte-table/src/Subscribe.svelte | 47 +++ .../svelte-table/src/createTable.svelte.ts | 107 +++++- packages/svelte-table/src/index.ts | 1 + pnpm-lock.yaml | 91 ++++- 18 files changed, 793 insertions(+), 99 deletions(-) create mode 100644 examples/svelte/row-selection/index.html create mode 100644 examples/svelte/row-selection/package.json create mode 100644 examples/svelte/row-selection/src/App.svelte create mode 100644 examples/svelte/row-selection/src/index.css create mode 100644 examples/svelte/row-selection/src/main.ts create mode 100644 examples/svelte/row-selection/src/makeData.ts create mode 100644 examples/svelte/row-selection/svelte.config.js create mode 100644 examples/svelte/row-selection/tsconfig.json create mode 100644 examples/svelte/row-selection/vite.config.js create mode 100644 packages/svelte-table/src/Subscribe.svelte diff --git a/examples/svelte/filtering/src/App.svelte b/examples/svelte/filtering/src/App.svelte index 6665f0fe4f..1bbe66ed0a 100644 --- a/examples/svelte/filtering/src/App.svelte +++ b/examples/svelte/filtering/src/App.svelte @@ -10,10 +10,8 @@ createTable, filterFns, globalFilteringFeature, - isFunction, tableFeatures, } from '@tanstack/svelte-table' - import { type Updater } from 'svelte/store' import './index.css' import { makeData, type Person } from './makeData' @@ -50,36 +48,29 @@ }, ] - let globalFilter = $state('') - - function setGlobalFilter(updater: Updater) { - if (isFunction(updater)) { - globalFilter = updater(globalFilter) - } else globalFilter = updater - } - - const table = createTable({ - _features, - _rowModels: { - filteredRowModel: createFilteredRowModel({ - ...filterFns, - fuzzy: fuzzyFilter, - }), - paginatedRowModel: createPaginatedRowModel(), - }, - data: makeData(25), - columns, - state: { - get globalFilter() { - return globalFilter + const table = createTable( + { + _features, + _rowModels: { + filteredRowModel: createFilteredRowModel({ + ...filterFns, + fuzzy: fuzzyFilter, + }), + paginatedRowModel: createPaginatedRowModel(), }, + data: makeData(25), + columns, + globalFilterFn: fuzzyFilter, }, - onGlobalFilterChange: setGlobalFilter, - globalFilterFn: fuzzyFilter, - }) + (state) => ({ + globalFilter: state.globalFilter, + }), + ) + // Access selected state reactively $effect(() => { - table.setGlobalFilter(globalFilter) + // Access table.state to create reactive dependency + table.state }) @@ -87,7 +78,8 @@ type="text" placeholder="Global filter" class="border w-full p-1" - bind:value={globalFilter} + value={table.state.globalFilter ?? ''} + oninput={(e) => table.setGlobalFilter(e.target.value)} />
@@ -123,4 +115,4 @@
-
"globalFilter": "{table.getState().globalFilter}"
+
"globalFilter": "{table.state.globalFilter}"
diff --git a/examples/svelte/row-selection/index.html b/examples/svelte/row-selection/index.html new file mode 100644 index 0000000000..b79a86cc4f --- /dev/null +++ b/examples/svelte/row-selection/index.html @@ -0,0 +1,15 @@ + + + + + + Svelte Row Selection Example + + + + +
+ + + + diff --git a/examples/svelte/row-selection/package.json b/examples/svelte/row-selection/package.json new file mode 100644 index 0000000000..db80d74591 --- /dev/null +++ b/examples/svelte/row-selection/package.json @@ -0,0 +1,25 @@ +{ + "name": "tanstack-table-example-svelte-row-selection", + "version": "0.0.0", + "private": true, + "type": "module", + "scripts": { + "dev": "vite", + "build": "vite build", + "serve": "vite preview", + "test:types": "svelte-check --tsconfig ./tsconfig.json", + "lint": "eslint ./src" + }, + "devDependencies": { + "@faker-js/faker": "^10.1.0", + "@rollup/plugin-replace": "^6.0.3", + "@sveltejs/vite-plugin-svelte": "^6.2.1", + "@tanstack/svelte-table": "^9.0.0-alpha.10", + "@tsconfig/svelte": "^5.0.6", + "svelte": "^5.46.0", + "svelte-check": "^4.3.4", + "typescript": "5.9.3", + "vite": "^7.3.0" + } +} + diff --git a/examples/svelte/row-selection/src/App.svelte b/examples/svelte/row-selection/src/App.svelte new file mode 100644 index 0000000000..8aaa059727 --- /dev/null +++ b/examples/svelte/row-selection/src/App.svelte @@ -0,0 +1,342 @@ + + +
+
+ table.setGlobalFilter(e.target.value)} + class="p-2 font-lg shadow border border-block" + placeholder="Search all columns..." + /> +
+
+ + + {#each table.getHeaderGroups() as headerGroup} + + {#each headerGroup.headers as header} + + {/each} + + {/each} + + + {#each table.getRowModel().rows as row} + + {#each row.getAllCells() as cell} + + {/each} + + {/each} + + + + + + + +
+ {#if !header.isPlaceholder} + {#if header.id === 'select'} + + {:else} + + {/if} + {#if header.column.getCanFilter()} +
+ +
+ {/if} + {/if} +
+ {#if cell.column.id === 'select'} + + {:else} + + {/if} +
+ + Page Rows ({table.getRowModel().rows.length})
+
+
+ + + + + +
Page
+ + {table.state.pagination.pageIndex + 1} of {table.getPageCount()} + +
+ + | Go to page: + { + const page = e.target.value ? Number(e.target.value) - 1 : 0 + table.setPageIndex(page) + }} + class="border p-1 rounded w-16" + /> + + +
+
+
+ {Object.keys(table.state.rowSelection).length} of{' '} + {table.getPreFilteredRowModel().rows.length} Total Rows Selected +
+
+
+
+ +
+
+ +
+
+ +
{JSON.stringify(table.state, null, 2)}
+
+
+ +{#snippet Filter({ column, table }: { column: Column; table: SvelteTable })} + {@const firstValue = table + .getPreFilteredRowModel() + .flatRows[0]?.getValue(column.id)} + + {#if typeof firstValue === 'number'} +
+ + column.setFilterValue((old: any) => [e.target.value, old?.[1]]) + } + placeholder={`Min`} + class="w-24 border shadow rounded" + /> + + column.setFilterValue((old: any) => [old?.[0], e.target.value]) + } + placeholder={`Max`} + class="w-24 border shadow rounded" + /> +
+ {:else} + column.setFilterValue(e.target.value)} + placeholder={`Search...`} + class="w-36 border shadow rounded" + /> + {/if} +{/snippet} + +{#snippet IndeterminateCheckbox({ indeterminate, class: className = '', checked, disabled, onChange }: { indeterminate?: boolean; class?: string; checked?: boolean; disabled?: boolean; onChange?: (event: Event) => void })} + {@const ref = $state(null)} + + $effect(() => { + if (typeof indeterminate === 'boolean' && ref) { + ref.indeterminate = !checked && indeterminate + } + }) + + +{/snippet} diff --git a/examples/svelte/row-selection/src/index.css b/examples/svelte/row-selection/src/index.css new file mode 100644 index 0000000000..98ef951b35 --- /dev/null +++ b/examples/svelte/row-selection/src/index.css @@ -0,0 +1,27 @@ +html { + font-family: sans-serif; + font-size: 14px; +} + +table { + border: 1px solid lightgray; +} + +tbody { + border-bottom: 1px solid lightgray; +} + +th { + border-bottom: 1px solid lightgray; + border-right: 1px solid lightgray; + padding: 2px 4px; +} + +tfoot { + color: gray; +} + +tfoot th { + font-weight: normal; +} + diff --git a/examples/svelte/row-selection/src/main.ts b/examples/svelte/row-selection/src/main.ts new file mode 100644 index 0000000000..b5cf8b16d9 --- /dev/null +++ b/examples/svelte/row-selection/src/main.ts @@ -0,0 +1,9 @@ +import App from './App.svelte' + +const rootElement = document.getElementById('root') +if (!rootElement) throw new Error('Failed to find the root element') + +new App({ + target: rootElement, +}) + diff --git a/examples/svelte/row-selection/src/makeData.ts b/examples/svelte/row-selection/src/makeData.ts new file mode 100644 index 0000000000..595347125d --- /dev/null +++ b/examples/svelte/row-selection/src/makeData.ts @@ -0,0 +1,51 @@ +import { faker } from '@faker-js/faker' + +export type Person = { + id: string + firstName: string + lastName: string + age: number + visits: number + progress: number + status: 'relationship' | 'complicated' | 'single' + subRows?: Array +} + +const range = (len: number) => { + const arr: Array = [] + for (let i = 0; i < len; i++) { + arr.push(i) + } + return arr +} + +const newPerson = (): Person => { + return { + id: faker.string.uuid(), + firstName: faker.person.firstName(), + lastName: faker.person.lastName(), + age: faker.number.int(40), + visits: faker.number.int(1000), + progress: faker.number.int(100), + status: faker.helpers.shuffle([ + 'relationship', + 'complicated', + 'single', + ])[0], + } +} + +export function makeData(...lens: Array) { + const makeDataLevel = (depth = 0): Array => { + const len = lens[depth] + return range(len).map((_d): Person => { + return { + ...newPerson(), + subRows: lens[depth + 1] ? makeDataLevel(depth + 1) : undefined, + } + }) + } + + return makeDataLevel() +} + diff --git a/examples/svelte/row-selection/svelte.config.js b/examples/svelte/row-selection/svelte.config.js new file mode 100644 index 0000000000..57f76ac028 --- /dev/null +++ b/examples/svelte/row-selection/svelte.config.js @@ -0,0 +1,6 @@ +import { vitePreprocess } from '@sveltejs/vite-plugin-svelte' + +export default { + preprocess: vitePreprocess(), +} + diff --git a/examples/svelte/row-selection/tsconfig.json b/examples/svelte/row-selection/tsconfig.json new file mode 100644 index 0000000000..bfc95d888d --- /dev/null +++ b/examples/svelte/row-selection/tsconfig.json @@ -0,0 +1,18 @@ +{ + "extends": "@tsconfig/svelte/tsconfig.json", + "compilerOptions": { + "target": "ESNext", + "useDefineForClassFields": true, + "module": "ESNext", + "lib": ["ESNext", "DOM"], + "moduleResolution": "bundler", + "resolveJsonModule": true, + "allowJs": true, + "checkJs": true, + "isolatedModules": true, + "strict": true + }, + "include": ["src/**/*.ts", "src/**/*.svelte"], + "references": [{ "path": "./tsconfig.node.json" }] +} + diff --git a/examples/svelte/row-selection/vite.config.js b/examples/svelte/row-selection/vite.config.js new file mode 100644 index 0000000000..37e1e618f3 --- /dev/null +++ b/examples/svelte/row-selection/vite.config.js @@ -0,0 +1,18 @@ +import { defineConfig } from 'vite' +import { svelte } from '@sveltejs/vite-plugin-svelte' +import rollupReplace from '@rollup/plugin-replace' + +// https://vitejs.dev/config/ +export default defineConfig({ + plugins: [ + rollupReplace({ + preventAssignment: true, + values: { + __DEV__: JSON.stringify(true), + 'process.env.NODE_ENV': JSON.stringify('development'), + }, + }), + svelte(), + ], +}) + diff --git a/examples/svelte/sorting/src/App.svelte b/examples/svelte/sorting/src/App.svelte index 4cfb768772..32a594df8f 100644 --- a/examples/svelte/sorting/src/App.svelte +++ b/examples/svelte/sorting/src/App.svelte @@ -1,10 +1,10 @@
@@ -155,5 +153,9 @@
-
{JSON.stringify(table.getState().sorting, null, 2)}
+ state} {table}> + {#snippet children(state)} +
{JSON.stringify(state, null, 2)}
+ {/snippet} +
diff --git a/examples/svelte/sorting/src/Header.svelte b/examples/svelte/sorting/src/Header.svelte index 1aa79c7e3a..178517c879 100644 --- a/examples/svelte/sorting/src/Header.svelte +++ b/examples/svelte/sorting/src/Header.svelte @@ -1,28 +1,31 @@ - +{#if header && header.column} + +{:else} + {label ?? ''} +{/if}