@nxgt/material 3.42.0 → 3.43.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +16 -0
- package/README.md +1 -1
- package/dist/{components-g8mWYJE8.js → components-DSCK_Ohm.js} +5223 -5184
- package/dist/components.js +1 -1
- package/dist/lib/components/ui/collections/page-footer/page-footer.d.ts +7 -3
- package/dist/lib/components/ui/collections/server-table/bulk-action.d.ts +23 -10
- package/dist/lib/components/ui/collections/server-table/partials/server-table-bulk-buttons.d.ts +3 -1
- package/dist/lib/components/ui/collections/server-table/partials/server-table-bulk-focus.d.ts +38 -9
- package/dist/lib/components/ui/collections/server-table/partials/server-table-bulk.d.ts +4 -1
- package/dist/lib/components/ui/collections/server-table/partials/server-table-grid.d.ts +3 -1
- package/dist/lib/components/ui/feedback/confirm-dialog/confirm-dialog.d.ts +8 -1
- package/dist/lib/components/ui/feedback/custom-dialog/custom-dialog.d.ts +6 -1
- package/dist/main.js +1 -1
- package/dist/material.css +1 -1
- package/docs/components/data-table-filter-and-lists.md +28 -9
- package/docs/components/feedback-and-status.md +5 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,21 @@
|
|
|
1
1
|
# @nxgt/material
|
|
2
2
|
|
|
3
|
+
## 3.43.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- [#1798](https://github.com/softistx/nxgt-material/pull/1798) [`4213b47`](https://github.com/softistx/nxgt-material/commit/4213b47be532d801585264f480dc51e0bbe29e13) Thanks [@SteveGT96](https://github.com/SteveGT96)! - feat(page-footer): support a cursor feed without a total. `totalCount` is now optional on `PageFooter`: without it the footer shows no range, only Previous / Next (icon-only with `pageControls="icon"`), Next is disabled when `pageInfo.hasNextPage` is false, and an empty first page renders nothing. Fixes [#1796](https://github.com/softistx/nxgt-material/issues/1796).
|
|
8
|
+
|
|
9
|
+
### Patch Changes
|
|
10
|
+
|
|
11
|
+
- [#1799](https://github.com/softistx/nxgt-material/pull/1799) [`254e465`](https://github.com/softistx/nxgt-material/commit/254e46528ee8300ee2a041d4284c7b37a8ffeaeb) Thanks [@SteveGT96](https://github.com/SteveGT96)! - fix(confirm-dialog): forward `onCloseAutoFocus` so focus can return to a bulk action ([#1795](https://github.com/softistx/nxgt-material/issues/1795)). `ConfirmDialog` and `CustomDialog` (so `ConfirmationDialog` too) take `onCloseAutoFocus` and pass it to their content. A dialog opened from a ServerTable bulk action's `onClick` can then call `event.preventDefault()` and `ctx.focusTrigger()`, instead of the focus landing on the body when a redraw has replaced the button.
|
|
12
|
+
|
|
13
|
+
## 3.42.1
|
|
14
|
+
|
|
15
|
+
### Patch Changes
|
|
16
|
+
|
|
17
|
+
- [#1793](https://github.com/softistx/nxgt-material/pull/1793) [`8adf0be`](https://github.com/softistx/nxgt-material/commit/8adf0be0d73817756b08631119d1b5251ddc65dd) Thanks [@SteveGT96](https://github.com/SteveGT96)! - fix(server-table): the bulk actions' `focusTrigger()` survives a redraw of the bar ([#1788](https://github.com/softistx/nxgt-material/issues/1788)). A resize, a rotation, the move between the toolbar and the phone's bar, or an action moving into or out of the More menu drew the buttons again, and `focusTrigger()` held the old, disconnected one: the focus fell to the body or to "Select all". It now finds the action's button again at call time by a stable key, `data-bulk-action="<id>"` on every bulk button (`data-bulk-more` on the More button), focuses the More button when the action now sits in the More menu, and keeps its fallback chain when the action is hidden. The context of `onClick` gains `actionId` and `element()`, and `trigger` is read at call time instead of captured. A dialog opened from `onClick` should return the focus with `onCloseAutoFocus={(e) => { e.preventDefault(); ctx.focusTrigger(); }}`.
|
|
18
|
+
|
|
3
19
|
## 3.42.0
|
|
4
20
|
|
|
5
21
|
### Minor Changes
|
package/README.md
CHANGED
|
@@ -633,7 +633,7 @@ Not components: what the stylesheet gives any element.
|
|
|
633
633
|
| <img src="https://cdn.jsdelivr.net/npm/@nxgt/material@3/docs/previews/data-table-filter-lists-servertable.webp" width="120" alt="ServerTable"> | [`ServerTable`](https://cdn.jsdelivr.net/npm/@nxgt/material@3/docs/components/data-table-filter-and-lists.md#servertable), `createSorting`, `tableFilters`, `defineFilterModel`, `parseFilterQuery`, `serializeFilterQuery`, `paramsFromQuery`, `serverPagination`… | A server-mode `DataTable` driven by the URL's search params, for any router: the Filter in its top band with the page's title (optional), description and actions, the sort, forward cursor paging, a selection reset on a new query, the empty page (a scene and an action for "nothing yet", the filters as removable chips), a compact band (`bandDensity`), icon-only Previous / Next (`pageControls`, 44px targets on a touch screen, focus kept while a page loads), actions that stay on the search's row on a phone (`bandActions`), a bulk bar that reserves no row until a selection, bulk actions with `appliesTo` that count and run only the selected rows they apply to (hidden at zero), an accessible `name`, a `max` rows with a notice, and `focusTrigger()` to give the focus back after a dialog, a `filterRef` to focus the Filter, a page past the last (rows deleted) that says so and links back to the first, an error state with Retry for a failed fetch (`error`, `onRetry`), and one count announced. | `ServerTable`, `createSorting`, `tableFilters`, `serverPagination` |
|
|
634
634
|
| <img src="https://cdn.jsdelivr.net/npm/@nxgt/material@3/docs/previews/data-table-filter-lists-rowmenu.webp" width="120" alt="RowMenu"> | [`RowMenu`](https://cdn.jsdelivr.net/npm/@nxgt/material@3/docs/components/data-table-filter-and-lists.md#rowmenu), `RowMenuTrigger`, `rowMenuColumn` | A row's "..." button named after its row ("Actions for Ada"; 44px on touch, 36px with a mouse from `md`), its menu aligned to the end with the destructive item last and 44px items on touch, and a column helper for `DataTable` and `ServerTable` under a hidden but named "Actions" header; focus returns to the button, also from a dialog an item opened. | — |
|
|
635
635
|
| <img src="https://cdn.jsdelivr.net/npm/@nxgt/material@3/docs/previews/data-table-filter-lists-listempty.webp" width="120" alt="ListEmpty"> | [`ListEmpty`](https://cdn.jsdelivr.net/npm/@nxgt/material@3/docs/components/data-table-filter-and-lists.md#listempty) | A list's empty page: nothing yet (a title, or a scene, a line and an action), or nothing matches with what narrows it and a way out (a button or a link); its title is an `h2` (`headingLevel`). | `ListEmpty` |
|
|
636
|
-
| <img src="https://cdn.jsdelivr.net/npm/@nxgt/material@3/docs/previews/data-table-filter-lists-pagefooter.webp" width="120" alt="PageFooter"> | [`PageFooter`](https://cdn.jsdelivr.net/npm/@nxgt/material@3/docs/components/data-table-filter-and-lists.md#pagefooter) | The page footer of a feed that is not a table (a list of cards, a news feed) under a `FilterBar`: the range ("21–40 of 134") and Previous / Next as real links built from the URL's cursor trail (`pageInfo`, `totalCount`, `params`), the same footer `ServerTable` draws, icon-only with `pageControls="icon"` (44px targets on a touch screen); an end with no page is a disabled button, `aria-disabled`. | `PageFooter` |
|
|
636
|
+
| <img src="https://cdn.jsdelivr.net/npm/@nxgt/material@3/docs/previews/data-table-filter-lists-pagefooter.webp" width="120" alt="PageFooter"> | [`PageFooter`](https://cdn.jsdelivr.net/npm/@nxgt/material@3/docs/components/data-table-filter-and-lists.md#pagefooter) | The page footer of a feed that is not a table (a list of cards, a news feed) under a `FilterBar`: the range ("21–40 of 134") and Previous / Next as real links built from the URL's cursor trail (`pageInfo`, `totalCount`, `params`; `totalCount` is optional: a feed with no total shows no range, only Previous / Next), the same footer `ServerTable` draws, icon-only with `pageControls="icon"` (44px targets on a touch screen); an end with no page is a disabled button, `aria-disabled`. | `PageFooter` |
|
|
637
637
|
| <img src="https://cdn.jsdelivr.net/npm/@nxgt/material@3/docs/previews/data-table-filter-lists-datagrid.webp" width="120" alt="DataGrid"> | [`DataGrid`](https://cdn.jsdelivr.net/npm/@nxgt/material@3/docs/components/data-table-filter-and-lists.md#datagrid) | An editable grid over `DataTable`'s columns: spreadsheet keys, a selected range, editors for text, numbers (with codes such as "abs"), options, dates and checkboxes, or your own; paste from Excel or Sheets, a fill handle that continues series, resizable, hideable and reorderable columns, undo, totals, and saving per cell, per row or in a batch with versions and conflicts ([guide](https://cdn.jsdelivr.net/npm/@nxgt/material@3/docs/guides/data-grid.md)). Long grids render only what is in view; on a phone it is a list of rows that open a panel. | — (later) |
|
|
638
638
|
| <img src="https://cdn.jsdelivr.net/npm/@nxgt/material@3/docs/previews/data-table-filter-lists-daygroupedlist.webp" width="120" alt="DayGroupedList"> | [`DayGroupedList`](https://cdn.jsdelivr.net/npm/@nxgt/material@3/docs/components/data-table-filter-and-lists.md#daygroupedlist), `groupByDay` | A list split by day — Today, Yesterday, This week, Earlier — under headings that stick while their items scroll. | — (later) |
|
|
639
639
|
| <img src="https://cdn.jsdelivr.net/npm/@nxgt/material@3/docs/previews/data-table-filter-lists-filter.webp" width="120" alt="Filter"> | [`Filter`](https://cdn.jsdelivr.net/npm/@nxgt/material@3/docs/components/data-table-filter-and-lists.md#filter), `FilterProvider`, `FilterContent`, `FilterChips`, `FilterPresets`, `FilterSheetTrigger`, `FilterBar`, `useFilterUrlQuery` · `FilterFormField` | Schema-driven filters with chips, presets, validation, and URL or storage persistence, and a query-driven `variant="bar"` / `"facets"` (quick filters, locked conditions, a phone sheet, a URL codec for a loader; `bandDensity="compact"` as on `ServerTable`), and `FilterBar`, the same bar bound to the URL for a feed or list without a table (`useFilterUrlQuery` is its hook, also `ServerTable`'s), a field `default` shown as an uncounted hint chip (a button that opens the editor on the default), a pressed toggle or checked values with a "Default" word (`defaults` prop), a `scope` field as a leading pill kept by "Clear all", a server refusal shown on the chip (`errors`), on the search box (`searchError`) or as an Alert under the bar (`formError`) and a model with `search: false`; the filter bar's "Filters (N)" (`FilterSheetTrigger`) can be placed inside a `ServerTable` (its actions). | `Filter`, `FilterProvider`, `FilterContent`, `FilterChips`, `FilterPresets`, `FilterSheetTrigger`, `FilterFormField`; `FilterBar`, `useFilterUrlQuery`: — (later, #1569) |
|