@nxgt/material 3.50.0 → 3.51.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.
Files changed (74) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/dist/{async-slice-3loEtzUY.js → async-slice-BGtmF3K5.js} +2 -2
  3. package/dist/{button-BRUaHD8z.js → button-BWcr2b49.js} +1 -1
  4. package/dist/charts.js +3 -3
  5. package/dist/{chip-DneTrtNj.js → chip-CmLW6ZrT.js} +2 -2
  6. package/dist/{code-editor-R_nPN_-d.js → code-editor-BKMaeIF6.js} +6 -6
  7. package/dist/code-editor.js +5 -5
  8. package/dist/{code-language-items-BKEUhQlF.js → code-language-items-Cs1Pwd1h.js} +2 -2
  9. package/dist/components/ui/layout/app-shell/activity-backdrop-shapes.css +14 -9
  10. package/dist/components/ui/layout/auth-card/auth-card-backdrop.css +2 -2
  11. package/dist/{components-D6xFLcoE.js → components-CuwU9Sux.js} +4155 -4007
  12. package/dist/components.js +19 -19
  13. package/dist/{dialog-S7dLsYRZ.js → dialog-TdT_5iUc.js} +4 -4
  14. package/dist/dnd.js +1 -1
  15. package/dist/{dropdown-menu-XLlxfDgq.js → dropdown-menu-BozV6Ikw.js} +1 -1
  16. package/dist/editor.js +9 -9
  17. package/dist/{empty-state-Dsf6R-Zo.js → empty-state-gzBPimAo.js} +2 -2
  18. package/dist/{escape-owner-B9eCwjLw.js → escape-owner-Bu-aDEEO.js} +1 -1
  19. package/dist/{field-blur-5uRDFHvB.js → field-blur-47zmuDkH.js} +1 -1
  20. package/dist/{field-blur-context-Cwt4TuBq.js → field-blur-context-6McYOnM8.js} +1 -1
  21. package/dist/hooks.js +2 -2
  22. package/dist/{hover-card-PHUgRSjJ.js → hover-card-zHdZJpBG.js} +2 -2
  23. package/dist/{i18n-provider-DPM_ALQ4.js → i18n-provider-Ang2f31m.js} +1 -1
  24. package/dist/i18n.js +5 -5
  25. package/dist/{icon-badge-Dh6-FNOF.js → icon-badge-CRFGIQPX.js} +3 -3
  26. package/dist/{icon-button-DSC2-IAG.js → icon-button-CtG3Snfm.js} +1 -1
  27. package/dist/lib/components/ui/collections/data-table/data-table-selection-host.d.ts +7 -0
  28. package/dist/lib/components/ui/collections/data-table/internal.d.ts +1 -0
  29. package/dist/lib/components/ui/collections/data-table/partials/layouts/data-table-list-bar.d.ts +2 -1
  30. package/dist/lib/components/ui/collections/server-table/partials/filtered-server-table.d.ts +8 -0
  31. package/dist/lib/components/ui/collections/server-table/partials/server-table-band.d.ts +10 -1
  32. package/dist/lib/components/ui/collections/server-table/partials/server-table-bulk-buttons.d.ts +3 -2
  33. package/dist/lib/components/ui/collections/server-table/partials/server-table-bulk-more.d.ts +4 -2
  34. package/dist/lib/components/ui/collections/server-table/partials/server-table-bulk.d.ts +2 -1
  35. package/dist/lib/components/ui/collections/server-table/partials/server-table-controls.d.ts +16 -0
  36. package/dist/lib/components/ui/collections/server-table/partials/server-table-grid.d.ts +3 -1
  37. package/dist/lib/components/ui/collections/server-table/partials/server-table-selection-bar.d.ts +17 -0
  38. package/dist/lib/components/ui/collections/server-table/partials/server-table-view.d.ts +15 -0
  39. package/dist/lib/components/ui/collections/server-table/partials/use-server-table-phone-row.d.ts +14 -0
  40. package/dist/lib/components/ui/collections/server-table/partials/use-server-table-selection-slots.d.ts +24 -0
  41. package/dist/lib/components/ui/collections/server-table/use-selection-band.d.ts +14 -0
  42. package/dist/lib/components/ui/fields/contacts/placeholders.d.ts +1 -1
  43. package/dist/lib/components/ui/layout/app-shell/use-keep-shapes-inside.d.ts +12 -1
  44. package/dist/lib/i18n/resources/en/en.d.ts +3 -0
  45. package/dist/lib/i18n/resources/en/material.json.d.ts +4 -1
  46. package/dist/lib/i18n/resources/fr/fr.d.ts +3 -0
  47. package/dist/lib/i18n/resources/fr/material.json.d.ts +4 -1
  48. package/dist/lib/i18n/resources/resources.d.ts +6 -0
  49. package/dist/lib/i18n/translator.d.ts +1 -1
  50. package/dist/lib.js +1 -1
  51. package/dist/main.js +25 -25
  52. package/dist/map.js +8 -8
  53. package/dist/material.css +1 -1
  54. package/dist/pdf-reader.js +1 -1
  55. package/dist/print.js +2 -2
  56. package/dist/{public-vxiijIJF.js → public-CTZ5RK_Y.js} +9 -9
  57. package/dist/{rich-code-block-BwvCXPqq.js → rich-code-block-oTgL-s4W.js} +5 -5
  58. package/dist/{sortable-provider-D2pAFWQB.js → sortable-provider-CpA5NYgD.js} +2 -2
  59. package/dist/{spinner-BpVwI1ps.js → spinner-UvqlDsV8.js} +1 -1
  60. package/dist/{stored-language-Beyj2ult.js → stored-language-Cb9FMEwk.js} +8 -2
  61. package/dist/theme-picker.js +2 -2
  62. package/dist/{theme-toggle-BTYRPkP4.js → theme-toggle-BZVz6O5q.js} +1 -1
  63. package/dist/{toolbar-items-CIMo4F9q.js → toolbar-items-C09bJphe.js} +4 -4
  64. package/dist/{translate-material-DEUlaL_1.js → translate-material-D6KCK21i.js} +2 -2
  65. package/dist/{translator-CBgIb3zP.js → translator-BnQXtpSZ.js} +1 -1
  66. package/dist/{use-chat-composer-D8UAsX0f.js → use-chat-composer-AZAj4tFJ.js} +16 -16
  67. package/dist/{use-heading-spy-C5LXtA8Z.js → use-heading-spy-C9-A2md2.js} +1 -1
  68. package/dist/{use-material-translation-DWWeeg-B.js → use-material-translation-pLgSqqLw.js} +2 -2
  69. package/docs/components/data-table-filter-and-lists.md +38 -5
  70. package/docs/guides/backgrounds.md +3 -1
  71. package/docs/guides/cards-and-tiles.md +3 -0
  72. package/lib/components/ui/layout/app-shell/activity-backdrop-shapes.css +14 -9
  73. package/lib/components/ui/layout/auth-card/auth-card-backdrop.css +2 -2
  74. package/package.json +1 -1
@@ -1,3 +1,3 @@
1
- import { t as e } from "./public-vxiijIJF.js";
1
+ import { t as e } from "./public-CTZ5RK_Y.js";
2
2
  import { configurePdfReader as t } from "@nxgt/material-core/pdf-reader";
3
3
  export { e as PdfReader, t as configurePdfReader };
package/dist/print.js CHANGED
@@ -1,5 +1,5 @@
1
- import { r as e } from "./i18n-provider-DPM_ALQ4.js";
2
- import { t } from "./translate-material-DEUlaL_1.js";
1
+ import { r as e } from "./i18n-provider-Ang2f31m.js";
2
+ import { t } from "./translate-material-D6KCK21i.js";
3
3
  import { Children as n, createContext as r, isValidElement as i, useCallback as a, useContext as o, useEffect as s, useMemo as c, useState as l } from "react";
4
4
  import { jsx as u, jsxs as d } from "react/jsx-runtime";
5
5
  import { resolvePdfFileName as f } from "@nxgt/material-core/pdf-file-name";
@@ -3,21 +3,21 @@ import { n as t } from "./ui.utils-CAnKTCw5.js";
3
3
  import { t as n } from "./utils-BLfntITJ.js";
4
4
  import { o as r } from "./dist-DVRQkaTK.js";
5
5
  import { c as i, i as a, l as o, n as s, o as c, s as l } from "./dist-lmHmz_bu.js";
6
- import { n as u, s as d } from "./spinner-BpVwI1ps.js";
6
+ import { n as u, s as d } from "./spinner-UvqlDsV8.js";
7
7
  import { i as f } from "./dist-C4wtXCjf.js";
8
8
  import { r as p, t as m } from "./in-dialog-Vwkyp-M5.js";
9
- import { C as h, D as g, E as _, O as v, S as y, T as b, _ as x, f as S, g as ee, k as te, r as ne, t as C, u as re, w } from "./dialog-S7dLsYRZ.js";
10
- import { c as T, d as ie, f as E, i as ae, l as oe, n as se, o as D, t as ce, u as O } from "./dropdown-menu-XLlxfDgq.js";
11
- import { S as le, a as k, d as A, g as ue, h as de, i as fe, m as pe, n as j, r as me, t as M, u as he, w as ge } from "./toolbar-items-CIMo4F9q.js";
12
- import { t as N } from "./use-material-translation-DWWeeg-B.js";
13
- import { t as _e } from "./button-BRUaHD8z.js";
14
- import { n as ve, t as ye } from "./icon-button-DSC2-IAG.js";
9
+ import { C as h, D as g, E as _, O as v, S as y, T as b, _ as x, f as S, g as ee, k as te, r as ne, t as C, u as re, w } from "./dialog-TdT_5iUc.js";
10
+ import { c as T, d as ie, f as E, i as ae, l as oe, n as se, o as D, t as ce, u as O } from "./dropdown-menu-BozV6Ikw.js";
11
+ import { S as le, a as k, d as A, g as ue, h as de, i as fe, m as pe, n as j, r as me, t as M, u as he, w as ge } from "./toolbar-items-C09bJphe.js";
12
+ import { t as N } from "./use-material-translation-pLgSqqLw.js";
13
+ import { t as _e } from "./button-BWcr2b49.js";
14
+ import { n as ve, t as ye } from "./icon-button-CtG3Snfm.js";
15
15
  import { t as be } from "./useEvent-2fKq-6w8.js";
16
16
  import { n as xe, t as Se } from "./toggle-group-BkH23Jk4.js";
17
- import { o as Ce } from "./escape-owner-B9eCwjLw.js";
17
+ import { o as Ce } from "./escape-owner-Bu-aDEEO.js";
18
18
  import { n as we } from "./use-slice-reducer-BGkeGtML.js";
19
19
  import { r as Te } from "./use-csp-nonce-ZKs9k-ov.js";
20
- import { n as Ee, t as De } from "./empty-state-Dsf6R-Zo.js";
20
+ import { n as Ee, t as De } from "./empty-state-gzBPimAo.js";
21
21
  import { t as Oe } from "./client-only.utils-3nHNzCki.js";
22
22
  import { t as ke } from "./use-scroll-away-PQRFZkT2.js";
23
23
  import * as P from "react";
@@ -1,7 +1,7 @@
1
- import { r as e } from "./spinner-BpVwI1ps.js";
2
- import { c as t, n, t as r } from "./dropdown-menu-XLlxfDgq.js";
3
- import { t as i } from "./use-material-translation-DWWeeg-B.js";
4
- import { a, i as o, n as s, o as c, t as l } from "./code-language-items-BKEUhQlF.js";
1
+ import { r as e } from "./spinner-UvqlDsV8.js";
2
+ import { c as t, n, t as r } from "./dropdown-menu-BozV6Ikw.js";
3
+ import { t as i } from "./use-material-translation-pLgSqqLw.js";
4
+ import { a, i as o, n as s, o as c, t as l } from "./code-language-items-Cs1Pwd1h.js";
5
5
  import { i as u, n as d, r as f, s as p } from "./dist-C3GR7kJd.js";
6
6
  import { t as m } from "./code-block-spec-CGLKRhwD.js";
7
7
  import { Suspense as h, lazy as g, useEffect as _, useRef as v, useState as y } from "react";
@@ -143,7 +143,7 @@ function M({ node: e, editor: t, updateAttributes: n, editable: r, wrap: a, onWr
143
143
  }
144
144
  //#endregion
145
145
  //#region lib/components/ui/widgets/editor/extensions/code/code-block-open.tsx
146
- var N = g(() => import("./code-editor-R_nPN_-d.js").then((e) => e.n).then((e) => ({ default: e.CodeEditor })));
146
+ var N = g(() => import("./code-editor-BKMaeIF6.js").then((e) => e.n).then((e) => ({ default: e.CodeEditor })));
147
147
  function P() {
148
148
  let { t: e } = i();
149
149
  return /* @__PURE__ */ b("div", {
@@ -1,7 +1,7 @@
1
1
  import { t as e } from "./utils-BLfntITJ.js";
2
2
  import { t } from "./dist-DVRQkaTK.js";
3
- import { t as n } from "./use-material-translation-DWWeeg-B.js";
4
- import { t as r } from "./icon-button-DSC2-IAG.js";
3
+ import { t as n } from "./use-material-translation-pLgSqqLw.js";
4
+ import { t as r } from "./icon-button-CtG3Snfm.js";
5
5
  import { t as i } from "./compose-refs-DZ0iIVF-.js";
6
6
  import a, { cloneElement as o, createContext as s, forwardRef as c, memo as l, useCallback as u, useContext as d, useEffect as f, useId as p, useLayoutEffect as m, useMemo as h, useReducer as g, useRef as _, useState as v } from "react";
7
7
  import { jsx as y } from "react/jsx-runtime";
@@ -3,7 +3,7 @@ import { n as t, t as n } from "./utils-BLfntITJ.js";
3
3
  import { i as r, o as i } from "./dist-DVRQkaTK.js";
4
4
  import { a, c as o, i as s, l as c, n as l, o as u, r as d, s as f, t as p, u as m } from "./dist-lmHmz_bu.js";
5
5
  import { a as h, c as g, d as _, i as v, l as y, o as b, r as x, t as S, u as C } from "./floating-ui.dom-KkZSW8_E.js";
6
- import { t as w } from "./use-material-translation-DWWeeg-B.js";
6
+ import { t as w } from "./use-material-translation-pLgSqqLw.js";
7
7
  import * as T from "react";
8
8
  import { useLayoutEffect as E, useRef as D, useSyncExternalStore as O } from "react";
9
9
  import { jsx as k, jsxs as A } from "react/jsx-runtime";
@@ -2076,7 +2076,10 @@ var t = {
2076
2076
  "bulk-action": "{label} ({count})",
2077
2077
  "bulk-action-name": "{label} {count, plural, one {# row} other {# rows}}",
2078
2078
  "bulk-max-notice": "Select {max, plural, one {# row} other {# rows}} or fewer to {label}",
2079
- "bulk-more": "More"
2079
+ "bulk-more": "More",
2080
+ "bulk-bar": "Selected rows",
2081
+ "bulk-selected": "{count} selected",
2082
+ "bulk-cancel": "Cancel"
2080
2083
  },
2081
2084
  "list-empty": { clear: "Clear search and filters" },
2082
2085
  "data-grid": {
@@ -4909,7 +4912,10 @@ var t = {
4909
4912
  "bulk-action": "{label} ({count})",
4910
4913
  "bulk-action-name": "{label} : {count, plural, one {# ligne} other {# lignes}}",
4911
4914
  "bulk-max-notice": "Sélectionnez {max, plural, one {# ligne} other {# lignes}} ou moins pour {label}",
4912
- "bulk-more": "Plus"
4915
+ "bulk-more": "Plus",
4916
+ "bulk-bar": "Lignes sélectionnées",
4917
+ "bulk-selected": "{count, plural, one {# sélectionnée} other {# sélectionnées}}",
4918
+ "bulk-cancel": "Annuler"
4913
4919
  },
4914
4920
  "list-empty": { clear: "Effacer la recherche et les filtres" },
4915
4921
  "data-grid": {
@@ -1,10 +1,10 @@
1
1
  import { t as e } from "./utils-BLfntITJ.js";
2
2
  import { a as t, i as n, n as r, o as i, r as a, t as o } from "./bubble-input-B7BVd9fX.js";
3
3
  import { a as s, r as c } from "./icon-sprites-CaYXzOL4.js";
4
- import { t as l } from "./use-material-translation-DWWeeg-B.js";
4
+ import { t as l } from "./use-material-translation-pLgSqqLw.js";
5
5
  import { t as u } from "./use-theme-BCLireTd.js";
6
6
  import { a as d, r as f } from "./theme-context-Cofk6vgs.js";
7
- import { t as p } from "./theme-toggle-BTYRPkP4.js";
7
+ import { t as p } from "./theme-toggle-BZVz6O5q.js";
8
8
  import { n as m, t as h } from "./nxgt-theme-ivgNca3z.js";
9
9
  import { useContext as g } from "react";
10
10
  import { jsx as _, jsxs as v } from "react/jsx-runtime";
@@ -1,4 +1,4 @@
1
- import { t as e } from "./use-material-translation-DWWeeg-B.js";
1
+ import { t as e } from "./use-material-translation-pLgSqqLw.js";
2
2
  import { i as t } from "./theme-store-BdPp43cV.js";
3
3
  import { n, t as r } from "./use-theme-BCLireTd.js";
4
4
  import { r as i } from "./theme-context-Cofk6vgs.js";
@@ -2,13 +2,13 @@ import { t as e } from "./utils-BLfntITJ.js";
2
2
  import { t } from "./warn-once-C_e47JM8.js";
3
3
  import { o as n, r, t as i } from "./dist-DVRQkaTK.js";
4
4
  import { a, c as o, i as s, l as c, r as l, s as u } from "./dist-lmHmz_bu.js";
5
- import { C as d, S as f, d as p, f as m, m as h, p as g, r as _, u as v } from "./spinner-BpVwI1ps.js";
5
+ import { C as d, S as f, d as p, f as m, m as h, p as g, r as _, u as v } from "./spinner-UvqlDsV8.js";
6
6
  import { i as y, n as b, r as x, t as S } from "./dist-C4wtXCjf.js";
7
7
  import { a as C, c as w, l as T, o as E, r as ee, s as te, t as ne } from "./in-dialog-Vwkyp-M5.js";
8
- import { A as re, M as ie, N as ae, b as oe, d as se, f as ce, i as le, j as ue, l as de, n as fe, o as pe, r as me, t as he, u as ge, y as _e } from "./dropdown-menu-XLlxfDgq.js";
8
+ import { A as re, M as ie, N as ae, b as oe, d as se, f as ce, i as le, j as ue, l as de, n as fe, o as pe, r as me, t as he, u as ge, y as _e } from "./dropdown-menu-BozV6Ikw.js";
9
9
  import { a as ve, n as ye, r as be, t as xe } from "./dist-B7RjY7SL.js";
10
- import { t as Se } from "./use-material-translation-DWWeeg-B.js";
11
- import { o as Ce } from "./escape-owner-B9eCwjLw.js";
10
+ import { t as Se } from "./use-material-translation-pLgSqqLw.js";
11
+ import { o as Ce } from "./escape-owner-Bu-aDEEO.js";
12
12
  import * as D from "react";
13
13
  import { createContext as O, useCallback as we, useContext as k, useEffect as A, useId as Te, useLayoutEffect as j, useMemo as M, useReducer as Ee, useRef as N, useState as P } from "react";
14
14
  import { Fragment as F, jsx as I, jsxs as L } from "react/jsx-runtime";
@@ -1,5 +1,5 @@
1
- import "./stored-language-Beyj2ult.js";
2
- import { a as e, r as t } from "./translator-CBgIb3zP.js";
1
+ import "./stored-language-Cb9FMEwk.js";
2
+ import { a as e, r as t } from "./translator-BnQXtpSZ.js";
3
3
  //#region lib/i18n/translate-material.ts
4
4
  function n(n, r, i, a) {
5
5
  if (n) for (let e of /* @__PURE__ */ new Set([n, n.split("-")[0]])) {
@@ -1,5 +1,5 @@
1
1
  import { t as e } from "./is-production-GLw59WU8.js";
2
- import { a as t, i as n, r, t as i } from "./stored-language-Beyj2ult.js";
2
+ import { a as t, i as n, r, t as i } from "./stored-language-Cb9FMEwk.js";
3
3
  import { t as a } from "./get-CTzJAwfc.js";
4
4
  //#region ../../node_modules/@formatjs/fast-memoize/index.js
5
5
  function o(e, t) {
@@ -5,39 +5,39 @@ import { t as r } from "./warn-once-C_e47JM8.js";
5
5
  import { n as i } from "./use-shape-morph-BKA_R5P5.js";
6
6
  import { n as a, o, t as s } from "./dist-DVRQkaTK.js";
7
7
  import { a as c, c as l, i as u, l as d, n as f, o as p, r as m, s as h, t as g } from "./dist-lmHmz_bu.js";
8
- import { _, a as v, b as y, c as b, g as x, h as S, i as C, n as w, o as T, r as E, s as D, t as O, v as k, x as A, y as ee } from "./spinner-BpVwI1ps.js";
8
+ import { _, a as v, b as y, c as b, g as x, h as S, i as C, n as w, o as T, r as E, s as D, t as O, v as k, x as A, y as ee } from "./spinner-UvqlDsV8.js";
9
9
  import { a as j, i as M, n as N, r as te, t as ne } from "./dist-C4wtXCjf.js";
10
10
  import { i as P, n as re, t as ie } from "./in-dialog-Vwkyp-M5.js";
11
- import { A as F, C as ae, D as oe, E as se, O as I, S as ce, T as le, _ as ue, b as de, f as fe, g as pe, k as me, l as he, m as ge, n as _e, o as ve, r as ye, s as be, t as xe, u as Se, v as Ce, w as we, x as Te, y as Ee } from "./dialog-S7dLsYRZ.js";
11
+ import { A as F, C as ae, D as oe, E as se, O as I, S as ce, T as le, _ as ue, b as de, f as fe, g as pe, k as me, l as he, m as ge, n as _e, o as ve, r as ye, s as be, t as xe, u as Se, v as Ce, w as we, x as Te, y as Ee } from "./dialog-TdT_5iUc.js";
12
12
  import { A as De, C as Oe, D as ke, E as Ae, O as je, S as Me, T as Ne, _ as Pe, a as Fe, b as Ie, d as Le, f as Re, g as ze, h as Be, i as Ve, k as He, l as Ue, m as We, n as Ge, o as Ke, p as qe, r as Je, s as Ye, t as Xe, u as Ze, v as Qe, w as $e, x as et, y as tt } from "./floating-ui.dom-KkZSW8_E.js";
13
- import { D as nt, E as rt, N as it, O as at, c as L, d as ot, f as st, i as ct, k as lt, m as ut, n as dt, o as ft, p as pt, t as mt, u as ht } from "./dropdown-menu-XLlxfDgq.js";
14
- import { a as gt, i as _t, n as vt } from "./field-blur-context-Cwt4TuBq.js";
15
- import { C as yt, S as bt, a as xt, c as St, d as Ct, l as wt, n as Tt, o as Et, s as Dt, u as Ot } from "./toolbar-items-CIMo4F9q.js";
13
+ import { D as nt, E as rt, N as it, O as at, c as L, d as ot, f as st, i as ct, k as lt, m as ut, n as dt, o as ft, p as pt, t as mt, u as ht } from "./dropdown-menu-BozV6Ikw.js";
14
+ import { a as gt, i as _t, n as vt } from "./field-blur-context-6McYOnM8.js";
15
+ import { C as yt, S as bt, a as xt, c as St, d as Ct, l as wt, n as Tt, o as Et, s as Dt, u as Ot } from "./toolbar-items-C09bJphe.js";
16
16
  import { a as kt, i as At, n as jt, o as Mt, t as Nt } from "./bubble-input-B7BVd9fX.js";
17
17
  import { i as Pt } from "./dist-B7RjY7SL.js";
18
18
  import { o as Ft, s as It, t as Lt } from "./use-click-lock-BZYtTmVt.js";
19
19
  import { a as Rt, r as zt } from "./icon-sprites-CaYXzOL4.js";
20
- import "./stored-language-Beyj2ult.js";
21
- import { a as Bt } from "./translator-CBgIb3zP.js";
20
+ import "./stored-language-Cb9FMEwk.js";
21
+ import { a as Bt } from "./translator-BnQXtpSZ.js";
22
22
  import { h as Vt } from "./get-CTzJAwfc.js";
23
23
  import { t as Ht } from "./isEmpty-F_g3jLf8.js";
24
- import { t as R } from "./use-material-translation-DWWeeg-B.js";
25
- import { i as Ut, r as Wt, t as Gt } from "./button-BRUaHD8z.js";
26
- import { t as z } from "./icon-button-DSC2-IAG.js";
24
+ import { t as R } from "./use-material-translation-pLgSqqLw.js";
25
+ import { i as Ut, r as Wt, t as Gt } from "./button-BWcr2b49.js";
26
+ import { t as z } from "./icon-button-CtG3Snfm.js";
27
27
  import { t as Kt } from "./use-ssr-media-query-C6M5m8sf.js";
28
28
  import { n as qt, t as Jt } from "./util-4heV2LPI.js";
29
29
  import { t as Yt } from "./useEvent-2fKq-6w8.js";
30
- import { f as Xt } from "./field-blur-5uRDFHvB.js";
30
+ import { f as Xt } from "./field-blur-47zmuDkH.js";
31
31
  import { c as Zt, i as Qt, l as $t, o as en, r as tn, s as nn, t as rn } from "./dist-C3GR7kJd.js";
32
32
  import { i as an } from "./toggle-group-BkH23Jk4.js";
33
- import { a as on, i as sn, o as cn } from "./escape-owner-B9eCwjLw.js";
33
+ import { a as on, i as sn, o as cn } from "./escape-owner-Bu-aDEEO.js";
34
34
  import { n as ln } from "./use-slice-reducer-BGkeGtML.js";
35
35
  import { t as un } from "./browser-only-DQ94lWF8.js";
36
36
  import { t as dn } from "./compose-refs-DZ0iIVF-.js";
37
- import { n as fn, r as pn, t as mn } from "./chip-DneTrtNj.js";
38
- import { n as hn, t as gn } from "./icon-badge-Dh6-FNOF.js";
37
+ import { n as fn, r as pn, t as mn } from "./chip-CmLW6ZrT.js";
38
+ import { n as hn, t as gn } from "./icon-badge-CRFGIQPX.js";
39
39
  import { r as _n } from "./use-csp-nonce-ZKs9k-ov.js";
40
- import { t as vn } from "./empty-state-Dsf6R-Zo.js";
40
+ import { t as vn } from "./empty-state-gzBPimAo.js";
41
41
  import { t as yn } from "./skeleton-DSdtr2qc.js";
42
42
  import { H as bn, V as xn, X as Sn, bt as Cn, it as wn, lt as Tn, n as En, t as Dn, xt as On, yt as kn } from "./dist-moutbfbd.js";
43
43
  import { t as An } from "./markdown-Dw_uH7j7.js";
@@ -11311,7 +11311,7 @@ var eC = (e = {}) => jn({
11311
11311
  let [{ default: t }, { lowlight: n }, { richCodeBlock: r }] = await Promise.all([
11312
11312
  import("./dist-CRMFGjng.js"),
11313
11313
  import("./lowlight-OtcjU2Sa.js"),
11314
- import("./rich-code-block-BwvCXPqq.js")
11314
+ import("./rich-code-block-oTgL-s4W.js")
11315
11315
  ]);
11316
11316
  return [r(t, {
11317
11317
  lowlight: n,
@@ -1,4 +1,4 @@
1
- import { r as e } from "./i18n-provider-DPM_ALQ4.js";
1
+ import { r as e } from "./i18n-provider-Ang2f31m.js";
2
2
  import { _ as t, g as n, h as r, n as i, v as a, y as o } from "./number.utils-BG_eEt5g.js";
3
3
  import { useCallback as s, useEffect as c, useMemo as l, useRef as u, useState as d } from "react";
4
4
  import { busySettler as f, busySettler as p, createSubmitGuard as m, createSubmitGuard as h } from "@nxgt/material-core/submit-guard";
@@ -1,5 +1,5 @@
1
- import { r as e } from "./i18n-provider-DPM_ALQ4.js";
2
- import { t } from "./translate-material-DEUlaL_1.js";
1
+ import { r as e } from "./i18n-provider-Ang2f31m.js";
2
+ import { t } from "./translate-material-D6KCK21i.js";
3
3
  import { useCallback as n } from "react";
4
4
  //#region lib/i18n/use-material-translation.ts
5
5
  function r() {
@@ -244,8 +244,10 @@ with a `select` column and `actions`, the toolbar keeps its band while
244
244
  nothing is selected, so the first selection does not move the rows (on a
245
245
  wide screen; on a phone the extra lines still push them down). Below 768px
246
246
  the declarative `bulkActions` fold past the third into a "More" menu in the
247
- toolbar too, so a list that stays a table on a phone (`layout="table"`) shows
248
- three actions and "More", as the cards and tiles do (#1797).
247
+ toolbar (a `ServerTable` without `filter`, or with the facets panel) and in a
248
+ phone's second row (#1719), as the cards and tiles do (#1797). The
249
+ [selection band](#the-selection-band) keeps one action and puts the rest in
250
+ "More".
249
251
 
250
252
  ```tsx
251
253
  <DataTable
@@ -293,6 +295,33 @@ press elsewhere is never pulled back. The footer's selected count is a polite
293
295
  status, so the first selection is announced ("1 row selected") when its bar
294
296
  shows up.
295
297
 
298
+ ### The selection band
299
+
300
+ With `bulkActions` and a `filter` (not `variant: 'facets'`), the first
301
+ selected row turns the band that holds the filter bar into a selection bar, in
302
+ place and on the same row: "N selected", the bulk actions, and a tonal
303
+ "Cancel" that clears the selection (#1718). The search and the page's
304
+ `actions` stay mounted, hidden (`invisible`, `inert`) and keep their size, so
305
+ the table does not move; clearing the selection brings them back. The bar's
306
+ height is the row's (40px, 44px on a coarse pointer). From 768px every
307
+ declarative action keeps its button; below it the bar is one row: the first
308
+ action keeps its button, the others go into "More" (an icon, still named),
309
+ and "Cancel" is an icon (its name and tooltip stay). Bulk actions written as a
310
+ function are rendered as they are, in the same place.
311
+
312
+ After "Cancel" the focus goes back to the control that started the selection
313
+ (the row's or the header's checkbox) when it is still on the page, else to the
314
+ list; a selection cleared another way (a bulk action's `selection.clear()`, a
315
+ new query) keeps its own focus rule. While rows are selected the search is
316
+ `inert`, so `filterRef.focus()` does nothing: cancel the selection first. The count is told once, politely, by the
317
+ footer's status ("N rows selected"); the bar's own count is plain text. The
318
+ cards' and tiles' list bar leaves its count and "Clear selection" to the bar.
319
+ A phone's second row of a list in cards or tiles with `actions` (#1719) is the
320
+ selection bar there, as before. Without `filter` (or with the facets panel) the
321
+ band has no filter bar to replace, and the bulk actions stay in the table's
322
+ toolbar. Text keys: `material.server-table.bulk-selected`, `bulk-cancel`,
323
+ `bulk-bar` (English and French).
324
+
296
325
  ### Focus after a bulk action
297
326
 
298
327
  When a bulk action clears the selection, its buttons unmount and the focus
@@ -410,7 +439,9 @@ grow the toolbar. Without the `select` column, or without `actions`, no band
410
439
  is kept above the table. `reserveActions={false}` keeps none either: the bar
411
440
  arrives on the first selection with a short grow (none under reduced motion),
412
441
  and the rows move down by its height. `ServerTable` passes `false`, so its
413
- bulk bar leaves no empty row under the band while nothing is selected.
442
+ bulk bar leaves no empty row under the band while nothing is selected. With
443
+ `filter` it has no toolbar row at all: the band's selection bar holds the bulk
444
+ actions ([the selection band](#the-selection-band)).
414
445
 
415
446
  ```tsx
416
447
  <DataTable
@@ -843,7 +874,8 @@ export default function Students() {
843
874
  onRetry={() => fetcher.reload()}
844
875
  />
845
876
  ```
846
- - **Selection.** With `bulkActions(ids, selection)`, rows are selectable;
877
+ - **Selection.** With `bulkActions(ids, selection)`, rows are selectable
878
+ (see [the selection band](#the-selection-band) for where the bulk actions show);
847
879
  the selection is kept across pages and drops on a new query.
848
880
  `selection.clear()` empties it and moves the focus to the table
849
881
  (`tabindex="-1"`, by script only; the list of cards or tiles in those layouts); `selection.deselect(ids)` drops rows
@@ -1036,7 +1068,8 @@ rows (the bulk bar is not drawn under it). With the declarative list form of
1036
1068
  (2)", named "Publish 2 rows"), hidden at 0 rows; the buttons wrap onto a second
1037
1069
  line rather than scroll, and past the third action the rest go into a "More"
1038
1070
  menu (`material.server-table.bulk-more`), each item keeping its count (the same
1039
- fold applies below 768px to every layout, a phone table included). From
1071
+ fold applies below 768px to every layout in the toolbar and in this row; the
1072
+ [selection band](#the-selection-band) of a list with `filter` keeps one action). From
1040
1073
  768px the buttons read "Label (n)" as before. When the focused button
1041
1074
  disappears the focus goes to the next one, else to "More", else to "Select all"; an action past `max` shows its notice there (an inline text, or a disabled More item). The function
1042
1075
  form (`bulkActions={(ids) => node}`) is drawn whole in the row, so keep it to
@@ -545,7 +545,9 @@ good.
545
545
  - The server renders every glyph. The drop happens after the first measure, on the client, in one frame (boxes read
546
546
  before any write), so the markup never differs between server and client.
547
547
  - A dropped glyph fades out in 150 ms (none under `prefers-reduced-motion`) and fades back when the content moves
548
- away. It runs again on resize and when the content changes.
548
+ away. It runs again on resize and when the content changes. A glyph the first pass drops is hidden at once: the fade
549
+ starts a frame later (`data-settled` on the scene), so no glyph is seen over a paragraph for the length of a fade on
550
+ a reload.
549
551
  - The open areas keep their glyphs; the space behind and between cards is empty. `keepClear={false}` on an `AuthCard`
550
552
  lets the glyphs run under the card.
551
553
  - **`keepClear="gaps"`** (on `ActivityLayout` and `AuthCard`, opt-in; `true` stays the default) lets a glyph stay between
@@ -144,6 +144,9 @@ is not `focusable`). On a narrow list (under 30rem) the bar stays on one row and
144
144
  Clear shrinks to an icon button; its label stays its accessible name, and it has
145
145
  a tooltip. Do not add your own in `actions`: that one is the bulk bar's.
146
146
  Once a bulk action clears the selection and the focus is lost, the list takes it.
147
+ In a `ServerTable` with `filter` and `bulkActions`, the band's own selection bar
148
+ tells the count and has "Cancel" (#1718), so the list bar leaves its count and
149
+ "Clear selection" out ([the selection band](../components/data-table-filter-and-lists.md#the-selection-band)).
147
150
 
148
151
  Inside a `ServerTable` with `filter` and `actions`, below 768px, the bar has no
149
152
  row of its own: its "Select all" (with a short visible label, "Select all"),
@@ -18,15 +18,20 @@
18
18
  visibility: hidden;
19
19
  }
20
20
 
21
- /* A shape over the page's text, controls or surfaces (cards, tables, lists) fades out and comes back once
22
- * clear (watch-content.ts): it is hidden, never moved. A compound body (the
23
- * moon, the planet, the eclipse: `.pt.mg`) is hidden whole, with its halo
24
- * (`.pt.mh`). The scene stays invisible until the first check, so nothing
25
- * flashes over the content. */
26
- [data-keep-inside] .mo > *,
27
- [data-keep-inside] .pt,
28
- [data-slot="activity-layout-backdrop"] [data-background] .mo > *,
29
- [data-slot="activity-layout-backdrop"] [data-background] .pt {
21
+ /* A shape over the page's text, controls or surfaces (cards, tables, lists)
22
+ * fades out and comes back once clear (watch-content.ts): it is hidden,
23
+ * never moved. A compound body (the moon, the planet, the eclipse: `.pt.mg`)
24
+ * is hidden whole, with its halo (`.pt.mh`). The scene stays invisible until
25
+ * the first check, so nothing flashes over the content. The fade waits for
26
+ * `data-settled`, set a frame after the first pass: a shape that pass drops
27
+ * is hidden at once, never seen fading out over the text on a reload. */
28
+ [data-keep-inside][data-settled] .mo > *,
29
+ [data-keep-inside][data-settled] .pt,
30
+ [data-slot="activity-layout-backdrop"]
31
+ [data-background][data-settled]
32
+ .mo
33
+ > *,
34
+ [data-slot="activity-layout-backdrop"] [data-background][data-settled] .pt {
30
35
  transition: opacity 150ms ease;
31
36
  }
32
37
  /* Important: a preset sets its own opacity on a body (`.md`, the dark
@@ -13,8 +13,8 @@
13
13
  visibility: hidden;
14
14
  }
15
15
  /* A shape over the card or the brand row fades out (watch-content.ts). */
16
- [data-slot="auth-card-backdrop"] [data-background] .mo > *,
17
- [data-slot="auth-card-backdrop"] [data-background] .pt {
16
+ [data-slot="auth-card-backdrop"] [data-background][data-settled] .mo > *,
17
+ [data-slot="auth-card-backdrop"] [data-background][data-settled] .pt {
18
18
  transition: opacity 150ms ease;
19
19
  }
20
20
  [data-slot="auth-card-backdrop"] [data-background] .mo > [data-hidden],
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nxgt/material",
3
- "version": "3.50.0",
3
+ "version": "3.51.0",
4
4
  "license": "MIT",
5
5
  "bugs": {
6
6
  "email": "stevegires@gmail.com"