@nxgt/material 3.29.0 → 3.30.1
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 +27 -0
- package/README.md +4 -2
- package/dist/{async-slice-DmhasXmq.js → async-slice-Cll-4Mvg.js} +2 -2
- package/dist/{button-BjIg_Lz6.js → button-B47lM8a5.js} +1 -1
- package/dist/charts.js +3 -3
- package/dist/{chip-DIBIDUZH.js → chip-Bf80b1XT.js} +1 -1
- package/dist/{code-editor-2EU-q9FV.js → code-editor-BLLpzmCc.js} +4 -4
- package/dist/code-editor.js +4 -4
- package/dist/{code-language-items-C_UeMQMm.js → code-language-items-COd99vab.js} +2 -2
- package/dist/{components-CujnhLIR.js → components-BYanGWQo.js} +15680 -15532
- package/dist/components.js +26 -26
- package/dist/{dialog-LtXwv6N3.js → dialog-Cp7bS5LI.js} +1 -1
- package/dist/dnd.js +1 -1
- package/dist/{dropdown-menu-ppMPD12c.js → dropdown-menu-DJNMcPZa.js} +1 -1
- package/dist/editor.js +7 -7
- package/dist/{empty-state-X_nikpBS.js → empty-state-Dv9AtrMw.js} +1 -1
- package/dist/hooks.js +2 -2
- package/dist/{i18n-provider-BfyDgd2o.js → i18n-provider-BBhhsa4I.js} +1 -1
- package/dist/i18n.js +5 -5
- package/dist/{icon-badge-oLBh3Mlk.js → icon-badge-DEk244kn.js} +1 -1
- package/dist/lib/components/ui/collections/index.d.ts +1 -0
- package/dist/lib/components/ui/collections/row-menu/index.d.ts +3 -0
- package/dist/lib/components/ui/collections/row-menu/row-menu-column.d.ts +37 -0
- package/dist/lib/components/ui/collections/row-menu/row-menu-trigger.d.ts +16 -0
- package/dist/lib/components/ui/collections/row-menu/row-menu.d.ts +36 -0
- package/dist/lib/components/ui/display/badge/badge.d.ts +10 -2
- package/dist/lib/components/ui/display/index.d.ts +1 -0
- package/dist/lib/components/ui/display/zoned-time/index.d.ts +1 -0
- package/dist/lib/components/ui/display/zoned-time/zoned-time.d.ts +34 -0
- package/dist/lib/components/ui/layout/app-shell/header-title.d.ts +4 -1
- package/dist/lib/components/ui/overlays/command/command-dialog.d.ts +22 -0
- package/dist/lib/components/ui/overlays/command/command.d.ts +1 -12
- package/dist/lib/components/ui/overlays/command/index.d.ts +1 -0
- package/dist/lib/i18n/resources/en/en.d.ts +4 -0
- package/dist/lib/i18n/resources/en/material.json.d.ts +4 -0
- package/dist/lib/i18n/resources/fr/fr.d.ts +4 -0
- package/dist/lib/i18n/resources/fr/material.json.d.ts +4 -0
- package/dist/lib/i18n/resources/resources.d.ts +8 -0
- package/dist/lib/i18n/translator.d.ts +1 -1
- package/dist/lib/lib/zoned.d.ts +27 -0
- package/dist/lib.js +1 -1
- package/dist/main.js +43 -43
- package/dist/map.js +4 -4
- package/dist/material.css +1 -1
- package/dist/pdf-reader.js +1 -1
- package/dist/print.js +2 -2
- package/dist/{public-BeM7-x-m.js → public-Cvwb2tds.js} +6 -6
- package/dist/{rich-code-block-B4TIjZRA.js → rich-code-block-MItKFVB-.js} +4 -4
- package/dist/{sortable-provider-Dcsw0pgW.js → sortable-provider-CIlK0Vuk.js} +1 -1
- package/dist/{spinner-1Ia6Akhy.js → spinner-DRGPXRNW.js} +1 -1
- package/dist/{stored-language-DoWMr969.js → stored-language-CkPRWAaM.js} +8 -0
- package/dist/theme-picker.js +2 -2
- package/dist/{theme-toggle-GlKtdgYz.js → theme-toggle-CPzxOW_X.js} +1 -1
- package/dist/{toolbar-items-C1GdN9P9.js → toolbar-items-GIaifZbx.js} +2 -2
- package/dist/{translate-material-BneuBHXZ.js → translate-material-BEQGLLY7.js} +2 -2
- package/dist/{translator-D88BbpXZ.js → translator-Ec9Uj32C.js} +1 -1
- package/dist/{use-chat-composer-beyfZPBD.js → use-chat-composer-BEs82Xar.js} +12 -12
- package/dist/{use-heading-spy-BN0yeBod.js → use-heading-spy-BRAPVvfh.js} +1 -1
- package/dist/{use-material-translation-Cqcwkuur.js → use-material-translation-B0RHv3l7.js} +2 -2
- package/docs/components/data-display.md +44 -2
- package/docs/components/data-table-filter-and-lists.md +65 -0
- package/docs/components/overlays-and-menus.md +16 -3
- package/docs/previews/data-display-zonedtime.webp +0 -0
- package/docs/previews/data-table-filter-lists-rowmenu.webp +0 -0
- package/package.json +1 -1
- package/dist/lib/components/ui/display/change-history/zoned.d.ts +0 -12
package/dist/pdf-reader.js
CHANGED
package/dist/print.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { r as e } from "./i18n-provider-
|
|
2
|
-
import { t } from "./translate-material-
|
|
1
|
+
import { r as e } from "./i18n-provider-BBhhsa4I.js";
|
|
2
|
+
import { t } from "./translate-material-BEQGLLY7.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";
|
|
@@ -6,18 +6,18 @@ import { c as i, i as a, l as o, n as s, o as c, s as l } from "./dist-lmHmz_bu.
|
|
|
6
6
|
import { a as u, o as d } from "./tooltip-CkttDIab.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-
|
|
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-
|
|
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-
|
|
12
|
-
import { t as N } from "./use-material-translation-
|
|
13
|
-
import { t as _e } from "./button-
|
|
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-Cp7bS5LI.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-DJNMcPZa.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-GIaifZbx.js";
|
|
12
|
+
import { t as N } from "./use-material-translation-B0RHv3l7.js";
|
|
13
|
+
import { t as _e } from "./button-B47lM8a5.js";
|
|
14
14
|
import { n as ve, t as ye } from "./icon-button-ifTpXt0A.js";
|
|
15
15
|
import { t as be } from "./useEvent-2fKq-6w8.js";
|
|
16
16
|
import { n as xe, t as Se } from "./toggle-group-BMJNcFAC.js";
|
|
17
17
|
import { o as Ce } from "./escape-owner-C4W_sOAU.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-
|
|
20
|
+
import { n as Ee, t as De } from "./empty-state-Dv9AtrMw.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 { ArrowLeft as Ae, BookOpenText as je, ChevronDown as Me, ChevronLeft as Ne, ChevronRight as Pe, ChevronUp as Fe, Download as Ie, Eraser as Le, FileText as Re, FileWarning as ze, FileX2 as Be, Highlighter as Ve, KeyRound as He, LayoutGrid as Ue, List as We, Loader2 as Ge, Maximize as Ke, MessageSquareText as qe, Minimize as Je, MoreVertical as Ye, MousePointer2 as Xe, MoveHorizontal as Ze, PanelLeft as Qe, Pen as $e, PencilLine as et, Printer as tt, RotateCw as nt, Search as rt, StickyNote as it, Type as at, Underline as ot, Undo2 as st, Volume2 as ct, X as lt, XIcon as ut, ZoomIn as dt, ZoomOut as ft } from "lucide-react";
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { t as e } from "./tooltip-CkttDIab.js";
|
|
2
|
-
import { c as t, n, t as r } from "./dropdown-menu-
|
|
3
|
-
import { t as i } from "./use-material-translation-
|
|
4
|
-
import { a, i as o, n as s, o as c, t as l } from "./code-language-items-
|
|
2
|
+
import { c as t, n, t as r } from "./dropdown-menu-DJNMcPZa.js";
|
|
3
|
+
import { t as i } from "./use-material-translation-B0RHv3l7.js";
|
|
4
|
+
import { a, i as o, n as s, o as c, t as l } from "./code-language-items-COd99vab.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 { Check as h, ChevronDown as g, Copy as _, Maximize2 as v, WrapText as y } from "lucide-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 = x(() => import("./code-editor-
|
|
146
|
+
var N = x(() => import("./code-editor-BLLpzmCc.js").then((e) => e.n).then((e) => ({ default: e.CodeEditor })));
|
|
147
147
|
function P() {
|
|
148
148
|
let { t: e } = i();
|
|
149
149
|
return /* @__PURE__ */ T("div", {
|
|
@@ -1,6 +1,6 @@
|
|
|
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-
|
|
3
|
+
import { t as n } from "./use-material-translation-B0RHv3l7.js";
|
|
4
4
|
import { t as r } from "./icon-button-ifTpXt0A.js";
|
|
5
5
|
import { t as i } from "./compose-refs-DZ0iIVF-.js";
|
|
6
6
|
import { GripVertical as a } from "lucide-react";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { t as e } from "./utils-BLfntITJ.js";
|
|
2
2
|
import { o as t } from "./tooltip-CkttDIab.js";
|
|
3
|
-
import { t as n } from "./use-material-translation-
|
|
3
|
+
import { t as n } from "./use-material-translation-B0RHv3l7.js";
|
|
4
4
|
import { jsx as r } from "react/jsx-runtime";
|
|
5
5
|
//#region lib/components/ui/feedback/spinner/spinner.tsx
|
|
6
6
|
var i = t("transition-all duration-500", {
|
|
@@ -2663,6 +2663,10 @@ var t = {
|
|
|
2663
2663
|
recent: "Recent",
|
|
2664
2664
|
manage: "Manage…",
|
|
2665
2665
|
choose: "Choose"
|
|
2666
|
+
},
|
|
2667
|
+
"row-menu": {
|
|
2668
|
+
label: "Actions for {name}",
|
|
2669
|
+
column: "Actions"
|
|
2666
2670
|
}
|
|
2667
2671
|
} },
|
|
2668
2672
|
fr: { material: {
|
|
@@ -5326,6 +5330,10 @@ var t = {
|
|
|
5326
5330
|
recent: "Récents",
|
|
5327
5331
|
manage: "Gérer…",
|
|
5328
5332
|
choose: "Choisir"
|
|
5333
|
+
},
|
|
5334
|
+
"row-menu": {
|
|
5335
|
+
label: "Actions pour {name}",
|
|
5336
|
+
column: "Actions"
|
|
5329
5337
|
}
|
|
5330
5338
|
} }
|
|
5331
5339
|
}, n = "language", r = "en", i = Object.keys(t);
|
package/dist/theme-picker.js
CHANGED
|
@@ -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
|
-
import { t as s } from "./use-material-translation-
|
|
3
|
+
import { t as s } from "./use-material-translation-B0RHv3l7.js";
|
|
4
4
|
import { a as c, r as l } from "./icon-sprites-CaYXzOL4.js";
|
|
5
5
|
import { t as u } from "./use-theme-DMcyJ52N.js";
|
|
6
6
|
import { a as d, r as f } from "./theme-context-Cofk6vgs.js";
|
|
7
|
-
import { t as p } from "./theme-toggle-
|
|
7
|
+
import { t as p } from "./theme-toggle-CPzxOW_X.js";
|
|
8
8
|
import { n as m, t as h } from "./nxgt-theme-ZS945iMP.js";
|
|
9
9
|
import { Check as g } from "lucide-react";
|
|
10
10
|
import { useContext as _ } from "react";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { t as e } from "./use-material-translation-
|
|
1
|
+
import { t as e } from "./use-material-translation-B0RHv3l7.js";
|
|
2
2
|
import { i as t } from "./theme-store-CSl51uNH.js";
|
|
3
3
|
import { n, t as r } from "./use-theme-DMcyJ52N.js";
|
|
4
4
|
import { r as i } from "./theme-context-Cofk6vgs.js";
|
|
@@ -4,9 +4,9 @@ import { a as i, c as a, i as o, l as s, r as c, s as l } from "./dist-lmHmz_bu.
|
|
|
4
4
|
import { b as u, c as d, d as f, f as p, l as m, t as h, u as g, x as _ } from "./tooltip-CkttDIab.js";
|
|
5
5
|
import { i as v, n as y, r as b, t as x } from "./dist-C4wtXCjf.js";
|
|
6
6
|
import { a as S, c as C, l as w, o as T, r as ee, s as te, t as E } from "./in-dialog-Vwkyp-M5.js";
|
|
7
|
-
import { A as ne, M as re, N as ie, b as ae, d as oe, f as se, i as ce, j as le, l as ue, n as de, o as fe, r as pe, t as me, u as he, y as ge } from "./dropdown-menu-
|
|
7
|
+
import { A as ne, M as re, N as ie, b as ae, d as oe, f as se, i as ce, j as le, l as ue, n as de, o as fe, r as pe, t as me, u as he, y as ge } from "./dropdown-menu-DJNMcPZa.js";
|
|
8
8
|
import { a as _e, n as ve, r as ye, t as be } from "./dist-B7RjY7SL.js";
|
|
9
|
-
import { t as xe } from "./use-material-translation-
|
|
9
|
+
import { t as xe } from "./use-material-translation-B0RHv3l7.js";
|
|
10
10
|
import { t as Se } from "./warn-once-C_e47JM8.js";
|
|
11
11
|
import { o as Ce } from "./escape-owner-C4W_sOAU.js";
|
|
12
12
|
import { ChevronLeft as we, ChevronRightIcon as Te, MoreVertical as Ee } from "lucide-react";
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import "./stored-language-
|
|
2
|
-
import { a as e, r as t } from "./translator-
|
|
1
|
+
import "./stored-language-CkPRWAaM.js";
|
|
2
|
+
import { a as e, r as t } from "./translator-Ec9Uj32C.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-
|
|
2
|
+
import { a as t, i as n, r, t as i } from "./stored-language-CkPRWAaM.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) {
|
|
@@ -7,21 +7,21 @@ import { a as o, c as s, i as c, l, n as u, o as d, r as f, s as p, t as m } fro
|
|
|
7
7
|
import { _ as h, a as g, g as _, h as v, m as y, o as b, p as x, t as S, v as C, y as w } from "./tooltip-CkttDIab.js";
|
|
8
8
|
import { a as T, i as E, n as D, r as O, t as k } from "./dist-C4wtXCjf.js";
|
|
9
9
|
import { i as A, n as ee, t as j } from "./in-dialog-Vwkyp-M5.js";
|
|
10
|
-
import { A as M, C as N, D as te, E as ne, O as P, S as re, T as ie, _ as F, b as ae, f as oe, g as se, k as I, l as ce, m as le, n as ue, o as de, r as fe, s as pe, t as me, u as he, v as ge, w as _e, x as ve, y as ye } from "./dialog-
|
|
10
|
+
import { A as M, C as N, D as te, E as ne, O as P, S as re, T as ie, _ as F, b as ae, f as oe, g as se, k as I, l as ce, m as le, n as ue, o as de, r as fe, s as pe, t as me, u as he, v as ge, w as _e, x as ve, y as ye } from "./dialog-Cp7bS5LI.js";
|
|
11
11
|
import { A as be, C as xe, D as Se, E as Ce, O as we, S as Te, T as Ee, _ as De, a as Oe, b as ke, d as Ae, f as je, g as Me, h as Ne, i as Pe, k as Fe, l as Ie, m as Le, n as Re, o as ze, p as Be, r as Ve, s as He, t as Ue, u as We, v as Ge, w as Ke, x as qe, y as Je } from "./floating-ui.dom-KkZSW8_E.js";
|
|
12
|
-
import { D as Ye, E as Xe, N as Ze, O as Qe, c as $e, d as et, f as tt, i as nt, k as rt, m as it, n as at, o as ot, p as st, t as ct, u as lt } from "./dropdown-menu-
|
|
12
|
+
import { D as Ye, E as Xe, N as Ze, O as Qe, c as $e, d as et, f as tt, i as nt, k as rt, m as it, n as at, o as ot, p as st, t as ct, u as lt } from "./dropdown-menu-DJNMcPZa.js";
|
|
13
13
|
import { a as ut, i as dt, n as ft } from "./field-blur-context-Cft9s7Hg.js";
|
|
14
|
-
import { C as pt, S as mt, a as ht, c as gt, d as _t, l as vt, n as yt, o as bt, s as xt, u as St } from "./toolbar-items-
|
|
14
|
+
import { C as pt, S as mt, a as ht, c as gt, d as _t, l as vt, n as yt, o as bt, s as xt, u as St } from "./toolbar-items-GIaifZbx.js";
|
|
15
15
|
import { a as Ct, i as wt, n as Tt, o as Et, t as Dt } from "./bubble-input-B7BVd9fX.js";
|
|
16
16
|
import { i as Ot } from "./dist-B7RjY7SL.js";
|
|
17
|
-
import "./stored-language-
|
|
18
|
-
import { a as kt } from "./translator-
|
|
17
|
+
import "./stored-language-CkPRWAaM.js";
|
|
18
|
+
import { a as kt } from "./translator-Ec9Uj32C.js";
|
|
19
19
|
import { h as At } from "./get-CTzJAwfc.js";
|
|
20
20
|
import { t as jt } from "./isEmpty-F_g3jLf8.js";
|
|
21
|
-
import { t as L } from "./use-material-translation-
|
|
22
|
-
import { t as Mt } from "./spinner-
|
|
21
|
+
import { t as L } from "./use-material-translation-B0RHv3l7.js";
|
|
22
|
+
import { t as Mt } from "./spinner-DRGPXRNW.js";
|
|
23
23
|
import { a as Nt } from "./button-tones-BwuVvAmd.js";
|
|
24
|
-
import { a as Pt, i as Ft, n as It, r as Lt, t as Rt } from "./button-
|
|
24
|
+
import { a as Pt, i as Ft, n as It, r as Lt, t as Rt } from "./button-B47lM8a5.js";
|
|
25
25
|
import { t as R } from "./icon-button-ifTpXt0A.js";
|
|
26
26
|
import { a as zt, r as Bt } from "./icon-sprites-CaYXzOL4.js";
|
|
27
27
|
import { t as Vt } from "./use-ssr-media-query-C6M5m8sf.js";
|
|
@@ -35,10 +35,10 @@ import { a as tn, i as nn, o as rn } from "./escape-owner-C4W_sOAU.js";
|
|
|
35
35
|
import { n as an } from "./use-slice-reducer-BGkeGtML.js";
|
|
36
36
|
import { t as on } from "./browser-only-DQ94lWF8.js";
|
|
37
37
|
import { t as sn } from "./compose-refs-DZ0iIVF-.js";
|
|
38
|
-
import { n as cn, r as ln, t as un } from "./chip-
|
|
39
|
-
import { n as dn, t as fn } from "./icon-badge-
|
|
38
|
+
import { n as cn, r as ln, t as un } from "./chip-Bf80b1XT.js";
|
|
39
|
+
import { n as dn, t as fn } from "./icon-badge-DEk244kn.js";
|
|
40
40
|
import { r as pn } from "./use-csp-nonce-ZKs9k-ov.js";
|
|
41
|
-
import { t as mn } from "./empty-state-
|
|
41
|
+
import { t as mn } from "./empty-state-Dv9AtrMw.js";
|
|
42
42
|
import { t as hn } from "./skeleton-DSdtr2qc.js";
|
|
43
43
|
import { H as gn, V as _n, X as vn, bt as yn, it as bn, lt as xn, n as Sn, t as Cn, xt as wn, yt as Tn } from "./dist-moutbfbd.js";
|
|
44
44
|
import { t as En } from "./markdown-Dw_uH7j7.js";
|
|
@@ -10782,7 +10782,7 @@ var CS = (e = {}) => Dn({
|
|
|
10782
10782
|
let [{ default: t }, { lowlight: n }, { richCodeBlock: r }] = await Promise.all([
|
|
10783
10783
|
import("./dist-CRMFGjng.js"),
|
|
10784
10784
|
import("./lowlight-OtcjU2Sa.js"),
|
|
10785
|
-
import("./rich-code-block-
|
|
10785
|
+
import("./rich-code-block-MItKFVB-.js")
|
|
10786
10786
|
]);
|
|
10787
10787
|
return [r(t, {
|
|
10788
10788
|
lowlight: n,
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { r as e } from "./i18n-provider-
|
|
1
|
+
import { r as e } from "./i18n-provider-BBhhsa4I.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 } from "react";
|
|
4
4
|
//#region ../../node_modules/date-fns/locale/fr/_lib/formatDistance.js
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { r as e } from "./i18n-provider-
|
|
2
|
-
import { t } from "./translate-material-
|
|
1
|
+
import { r as e } from "./i18n-provider-BBhhsa4I.js";
|
|
2
|
+
import { t } from "./translate-material-BEQGLLY7.js";
|
|
3
3
|
import { useCallback as n } from "react";
|
|
4
4
|
//#region lib/i18n/use-material-translation.ts
|
|
5
5
|
function r() {
|
|
@@ -9,7 +9,7 @@ from `@nxgt/material/components`.
|
|
|
9
9
|
| <img src="../previews/data-display-avatar.webp" width="96" alt=""> | [Avatar](#avatar) | Image with a fallback and an optional online / offline dot |
|
|
10
10
|
| <img src="../previews/data-display-avatargroup.webp" width="96" alt=""> | [AvatarGroup](#avatargroup) | Overlapping avatars with a `+N` overflow |
|
|
11
11
|
| <img src="../previews/data-display-shape.webp" width="96" alt=""> | [Shape](#shape) | Material 3 Expressive's shapes as a backdrop, an icon container or a mask for a photo |
|
|
12
|
-
| <img src="../previews/data-display-badge.webp" width="96" alt=""> | [Badge](#badge) | Status pill, 20 px, in seven tones, soft or outlined |
|
|
12
|
+
| <img src="../previews/data-display-badge.webp" width="96" alt=""> | [Badge](#badge) | Status pill, 20 px, in seven tones, soft or outlined, with an optional decorative `icon` before the words |
|
|
13
13
|
| <img src="../previews/data-display-countbadge.webp" width="96" alt=""> | [CountBadge](#countbadge) | Count in the corner of its children |
|
|
14
14
|
| <img src="../previews/data-display-dayseparator.webp" width="96" alt=""> | [DaySeparator](#dayseparator) | "Today", "Yesterday" or the date between two hairlines |
|
|
15
15
|
| <img src="../previews/data-display-periodcards.webp" width="96" alt=""> | [PeriodCards](#periodcards) | Consecutive date ranges (terms, sprints) as cards, with a current marker and an optional link per card |
|
|
@@ -26,6 +26,7 @@ from `@nxgt/material/components`.
|
|
|
26
26
|
| <img src="../previews/data-display-accordioncard.webp" width="96" alt=""> | [AccordionCard](#accordioncard) | Accordion rendered from `items` |
|
|
27
27
|
| <img src="../previews/data-display-timeline.webp" width="96" alt=""> | [Timeline](#timeline) | Vertical event timeline with relative times |
|
|
28
28
|
| <img src="../previews/data-display-changehistory.webp" width="96" alt=""> | [ChangeHistory](#changehistory) | History of the changes made to anything, as a rail or as cards |
|
|
29
|
+
| <img src="../previews/data-display-zonedtime.webp" width="96" alt=""> | [ZonedTime](#zonedtime) | A moment written in a given time zone, identical on the server and the client |
|
|
29
30
|
| <img src="../previews/data-display-eventchip.webp" width="96" alt=""> | [EventChip](#eventchip) | Calendar event pill, soft, solid or outlined |
|
|
30
31
|
| <img src="../previews/data-display-codeblock.webp" width="96" alt=""> | [CodeBlock](#codeblock) | Code, JSON tree and tabbed samples |
|
|
31
32
|
| <img src="../previews/data-display-markdown.webp" width="96" alt=""> | [Markdown](#markdown) | GFM with math and mermaid |
|
|
@@ -226,17 +227,21 @@ import { Badge } from '@nxgt/material/components';
|
|
|
226
227
|
<Badge variant="soft" tone="success">Paid</Badge>
|
|
227
228
|
<Badge variant="outlined" tone="error">Late</Badge>
|
|
228
229
|
<Badge variant="success">New</Badge>
|
|
230
|
+
<Badge variant="soft" tone="warning" icon="box-archive">Archived</Badge>
|
|
229
231
|
```
|
|
230
232
|
|
|
233
|
+
With an `icon`, a status reads as icon plus words, so colour is never the only signal. The icon is decorative (`aria-hidden`: the words name the status), 12 px, and takes the tone's text colour in `soft` and `outlined`; nothing changes without it.
|
|
234
|
+
|
|
231
235
|
| Prop | Type | Default | Effect |
|
|
232
236
|
| --- | --- | --- | --- |
|
|
237
|
+
| `icon` | `IconName \| ReactNode` | — | a decorative icon before the label: a string is a Font Awesome name (drawn solid), a node is rendered as given. Ignored with `asChild` |
|
|
233
238
|
| `variant` | `'default' \| 'secondary' \| 'error' \| 'success' \| 'info' \| 'warning' \| 'soft' \| 'outlined'` | `'default'` | the filled tones, `soft` (recommended for a state) or `outlined` |
|
|
234
239
|
| `tone` | the eight named tones, or a tone of your own declared in `AppTones` | `'neutral'` | the colour of a `soft` or `outlined` badge; ignored by the filled variants |
|
|
235
240
|
| `asChild` | `boolean` | `false` | renders its child (a link) with the badge styles |
|
|
236
241
|
|
|
237
242
|
A `Badge` link (`asChild`) no longer fades on hover: a badge is a status, not a button. Put a `Chip` or a `Button` where the user acts.
|
|
238
243
|
|
|
239
|
-
**Storybook:** `Data display/Badge` (Soft, SoftContrast) · **Vue:** `Badge` (without `soft` and `tone` yet)
|
|
244
|
+
**Storybook:** `Data display/Badge` (Soft, SoftContrast), `Data display/Badge/Icon` · **Vue:** `Badge` (without `soft` and `tone` yet)
|
|
240
245
|
|
|
241
246
|
---
|
|
242
247
|
|
|
@@ -1083,6 +1088,43 @@ and the user's zone) and both sides agree:
|
|
|
1083
1088
|
|
|
1084
1089
|
---
|
|
1085
1090
|
|
|
1091
|
+
## ZonedTime
|
|
1092
|
+
|
|
1093
|
+

|
|
1094
|
+
|
|
1095
|
+
A moment written in a time zone you name, with the zone: `Mar 12, 2026, 4:04 PM UTC+1`
|
|
1096
|
+
inside a `<time dateTime>`. It prints the same on the server and in the browser,
|
|
1097
|
+
so there is no hydration warning to suppress: the zone is passed in (the
|
|
1098
|
+
component never reads the machine's), the date and the time are formatted
|
|
1099
|
+
separately and joined with a comma, and the zone is a computed offset (`UTC+2`,
|
|
1100
|
+
`UTC+5:30`, `UTC`), never a name that depends on the runtime's ICU data. The
|
|
1101
|
+
language is the provider's: `12 mars 2026, 16:04 UTC+1` in French.
|
|
1102
|
+
|
|
1103
|
+
```tsx
|
|
1104
|
+
import { ZonedTime } from '@nxgt/material/components';
|
|
1105
|
+
|
|
1106
|
+
<ZonedTime at="2026-03-12T15:04:05Z" timeZone="Europe/Paris" />
|
|
1107
|
+
// Mar 12, 2026, 4:04 PM UTC+1
|
|
1108
|
+
<ZonedTime at={event.startsAt} timeZone={school.timeZone} seconds zoneLabel="none" />
|
|
1109
|
+
```
|
|
1110
|
+
|
|
1111
|
+
| Prop | Type | Default | Effect |
|
|
1112
|
+
| --- | --- | --- | --- |
|
|
1113
|
+
| `at` | `Date \| string \| number` | — | the instant; an invalid one renders nothing |
|
|
1114
|
+
| `timeZone` | `string` | — | the IANA zone it is written in. One `Intl` does not know is written as `UTC`, not as the machine's zone |
|
|
1115
|
+
| `seconds` | `boolean` | `false` | writes the seconds (`4:04:05 PM`); lists read at a glance without |
|
|
1116
|
+
| `dateStyle` | `'short' \| 'medium' \| 'long'` | `'medium'` | `03/12/2026`, `Mar 12, 2026`, `March 12th, 2026` (the language's patterns) |
|
|
1117
|
+
| `zoneLabel` | `'offset' \| 'none'` | `'offset'` | the offset after the time, or nothing for a column whose header names the zone. A zone's short name (`CEST`) is not offered: it differs between ICU builds |
|
|
1118
|
+
| `className` | `string` | — | on the `<time>` |
|
|
1119
|
+
|
|
1120
|
+
The offset follows the instant (`Europe/Paris` is `UTC+1` in winter and
|
|
1121
|
+
`UTC+2` in summer). `ChangeHistory` takes a `timeZone` and `RelativeTime` a `now`
|
|
1122
|
+
the same way; pass the app's zone from the server so every screen agrees.
|
|
1123
|
+
|
|
1124
|
+
**Storybook:** `Data display/ZonedTime` · **Vue:** not yet (tracked as a `vue` issue)
|
|
1125
|
+
|
|
1126
|
+
---
|
|
1127
|
+
|
|
1086
1128
|
## EventChip
|
|
1087
1129
|
|
|
1088
1130
|

|
|
@@ -15,6 +15,7 @@ either can be used alone.
|
|
|
15
15
|
| --- | --- | --- |
|
|
16
16
|
| <img src="../previews/data-table-filter-lists-datatable.webp" width="96" alt=""> | [DataTable](#datatable) | TanStack Table v9 with sorting, selection, expansion and pagination, client-side or one server page at a time |
|
|
17
17
|
| <img src="../previews/data-table-filter-lists-servertable.webp" width="96" alt=""> | [ServerTable](#servertable) | A server-mode `DataTable` driven by the URL, with the Filter in its top band (a title and a description, or neither): sort, cursor paging, the empty page with a scene, an action and removable chips, one count announced |
|
|
18
|
+
| <img src="../previews/data-table-filter-lists-rowmenu.webp" width="96" alt=""> | [RowMenu](#rowmenu) | A row's "..." button named after its row ("Actions for Ada"), its menu aligned to the end with the destructive item last, and `rowMenuColumn` to drop both in a table |
|
|
18
19
|
| <img src="../previews/data-table-filter-lists-listempty.webp" width="96" alt=""> | [ListEmpty](#listempty) | A list's empty page: nothing yet, with a scene and an action, or nothing matches and the way out |
|
|
19
20
|
| <img src="../previews/data-table-filter-lists-datagrid.webp" width="96" alt=""> | [DataGrid](#datagrid) | An editable grid: spreadsheet keys, paste, a fill handle with series, undo, totals, saving with versions and conflicts (lazy ones fetch theirs on "Keep mine"), `onRefuse` for a refused paste or fill, row selection (`enableRowSelection`), and resizable, hideable and reorderable columns (`columnControls`, `columnLayout`, `DataGridColumnsMenu`) |
|
|
20
21
|
| <img src="../previews/data-table-filter-lists-daygroupedlist.webp" width="96" alt=""> | [DayGroupedList](#daygroupedlist) | A list split by day under sticky Today / Yesterday / Earlier headings |
|
|
@@ -955,6 +956,70 @@ page's `title`.
|
|
|
955
956
|
|
|
956
957
|
---
|
|
957
958
|
|
|
959
|
+
## RowMenu
|
|
960
|
+
|
|
961
|
+

|
|
962
|
+
|
|
963
|
+
The actions of a row: a ghost "..." button and a menu aligned to its end. The
|
|
964
|
+
button is named after its row ("Actions for Ada Lovelace", the template is
|
|
965
|
+
`material.row-menu.label`), so a screen reader does not hear a bare "Actions"
|
|
966
|
+
on every row. It is 44px on a coarse pointer (and below `md`) and 36px with a
|
|
967
|
+
fine pointer from `md` up; the menu's items are 44px high on a coarse pointer,
|
|
968
|
+
and the destructive ones come last, after a separator.
|
|
969
|
+
|
|
970
|
+
```tsx
|
|
971
|
+
import { DataTable, rowMenuColumn } from '@nxgt/material/components';
|
|
972
|
+
|
|
973
|
+
const columns = [
|
|
974
|
+
/* …your columns… */
|
|
975
|
+
rowMenuColumn<Person>({
|
|
976
|
+
label: (person) => person.name,
|
|
977
|
+
items: (person) => [
|
|
978
|
+
{ label: 'Edit', onSelect: () => edit(person) },
|
|
979
|
+
{ label: 'Delete…', destructive: true, onSelect: () => setRemoving(person) },
|
|
980
|
+
],
|
|
981
|
+
}),
|
|
982
|
+
];
|
|
983
|
+
|
|
984
|
+
<DataTable columns={columns} data={people} />
|
|
985
|
+
```
|
|
986
|
+
|
|
987
|
+
`rowMenuColumn` returns a column for `DataTable` and `ServerTable`: a header
|
|
988
|
+
that is visually hidden but named "Actions" (`material.row-menu.column`), a cell
|
|
989
|
+
per row, no sorting and no hiding. Build the columns once (outside the render,
|
|
990
|
+
or in a `useMemo`), and keep a dialog's state in the page, not in the cell: a
|
|
991
|
+
cell that remounts would lose it.
|
|
992
|
+
|
|
993
|
+
For a menu of your own, compose the parts: `RowMenuTrigger` forwards its props
|
|
994
|
+
and `ref`, so it is the child of a `DropdownMenuTrigger asChild`.
|
|
995
|
+
|
|
996
|
+
```tsx
|
|
997
|
+
<DropdownMenu>
|
|
998
|
+
<DropdownMenuTrigger asChild>
|
|
999
|
+
<RowMenuTrigger label={person.name} />
|
|
1000
|
+
</DropdownMenuTrigger>
|
|
1001
|
+
<DropdownMenuContent align="end">{/* items */}</DropdownMenuContent>
|
|
1002
|
+
</DropdownMenu>
|
|
1003
|
+
```
|
|
1004
|
+
|
|
1005
|
+
| Prop | Type | Default | Effect |
|
|
1006
|
+
| --- | --- | --- | --- |
|
|
1007
|
+
| `label` (`RowMenu`, `RowMenuTrigger`) | `string` | — | the row's name; the button's name is "Actions for {label}" (translated). An `aria-label` of your own wins |
|
|
1008
|
+
| `items` (`RowMenu`) | `{ label, icon?, onSelect?, disabled?, destructive?, id? }[]` | `[]` | the actions; `destructive` ones are drawn in the error colour and moved last, after a separator |
|
|
1009
|
+
| `children` (`RowMenu`) | `ReactNode` | — | menu content of your own, above `items` (put a destructive item last yourself) |
|
|
1010
|
+
| `triggerProps` (`RowMenu`) | button props | — | `disabled`, `className`, `data-*` on the button |
|
|
1011
|
+
| `open`, `onOpenChange` (`RowMenu`) | as `DropdownMenu` | — | controlled state |
|
|
1012
|
+
| `label`, `items`, `menu` (`rowMenuColumn`) | `(row) => string` / `(row) => RowMenuItem[]` / `(row) => ReactNode` | — | the row's name, its actions as data, or its menu content as nodes |
|
|
1013
|
+
| `id`, `className` (`rowMenuColumn`) | `string` | `'actions'`, `'w-12'` | the column's id and its cell classes |
|
|
1014
|
+
|
|
1015
|
+
Focus returns to the button when the menu closes, and when a dialog opened from
|
|
1016
|
+
an item (a `ConfirmDialog`, a `Dialog`, a `Sheet`) closes: the item is gone by
|
|
1017
|
+
then, so the dialog hands the focus back to the menu's button.
|
|
1018
|
+
|
|
1019
|
+
**Storybook:** `Data table, filter & lists/RowMenu`, `Guides/Accessibility/Touch targets/Row menu` · **Vue:** not yet (tracked as a `vue` issue)
|
|
1020
|
+
|
|
1021
|
+
---
|
|
1022
|
+
|
|
958
1023
|
## ListEmpty
|
|
959
1024
|
|
|
960
1025
|

|
|
@@ -42,7 +42,7 @@ item that is both chosen and highlighted gets an 18 % tint and the bar. `SelectF
|
|
|
42
42
|
| <img src="../previews/overlays-menus-dropdownmenu.webp" width="96" alt=""> | [DropdownMenu](#dropdownmenu) | Menu with checkbox and radio items, submenus and shortcuts |
|
|
43
43
|
| <img src="../previews/overlays-menus-contextmenu.webp" width="96" alt=""> | [ContextMenu](#contextmenu) | Right-click menu |
|
|
44
44
|
| <img src="../previews/overlays-menus-menubar.webp" width="96" alt=""> | [Menubar](#menubar) | Desktop-style menubar |
|
|
45
|
-
| <img src="../previews/overlays-menus-command.webp" width="96" alt=""> | [Command](#command) | Command palette, inline or in a modal |
|
|
45
|
+
| <img src="../previews/overlays-menus-command.webp" width="96" alt=""> | [Command](#command) | Command palette, inline or in a modal; `commandProps` for server results |
|
|
46
46
|
|
|
47
47
|
## Dialog
|
|
48
48
|
|
|
@@ -679,9 +679,22 @@ children and they replace that, as before.
|
|
|
679
679
|
| `shouldFilter` (`Command`) | `boolean` | `true` | `false` when you filter the items yourself (server search) |
|
|
680
680
|
| `title` / `description` (`CommandDialog`) | `string` | `"Command Palette"` / `"Search for a command to run..."` (translated) | the dialog's title and description, inside the dialog and visually hidden |
|
|
681
681
|
| `mobilePresentation` (`CommandDialog`) | `'dialog' \| 'top' \| 'fullscreen'` | `'top'` | below 640 px: pinned under the top edge (so the input and the results stay above the on-screen keyboard), the whole screen, or the centred modal it was before |
|
|
682
|
-
| `
|
|
682
|
+
| `commandProps` (`CommandDialog`) | `Pick<CommandProps, 'shouldFilter' \| 'value' \| 'onValueChange' \| 'loop' \| 'filter' \| 'label'>` | — | reaches the inner `Command`: `{ shouldFilter: false }` for a palette whose results come from a server (cmdk then does not hide them again by the typed text), `value` / `onValueChange` for the highlighted item, `label` for the input's accessible name. The input's sizing, the dialog's title and its focus stay as they are |
|
|
683
|
+
| `open`, `onOpenChange` (`CommandDialog`) | as `Dialog` | — | every other prop goes to the `Dialog` |
|
|
683
684
|
|
|
684
685
|
`CommandDialog` does not bind a keyboard shortcut; listen for ⌘K yourself and
|
|
685
686
|
set `open`.
|
|
686
687
|
|
|
687
|
-
|
|
688
|
+
```tsx
|
|
689
|
+
// A server-driven search: the server already filtered, cmdk must not again.
|
|
690
|
+
<CommandDialog open={open} onOpenChange={setOpen} commandProps={{ shouldFilter: false }}>
|
|
691
|
+
<CommandInput value={query} onValueChange={setQuery} />
|
|
692
|
+
<CommandList>
|
|
693
|
+
{results.map((r) => (
|
|
694
|
+
<CommandItem key={r.id} value={r.id}>{r.label}</CommandItem>
|
|
695
|
+
))}
|
|
696
|
+
</CommandList>
|
|
697
|
+
</CommandDialog>
|
|
698
|
+
```
|
|
699
|
+
|
|
700
|
+
**Storybook:** `Overlays & menus/Command`, `Overlays & menus/Command/Server results` · **Vue:** `Command`, `CommandDialog` (same parts)
|
|
Binary file
|
|
Binary file
|
package/package.json
CHANGED
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import { DayInput } from '@nxgt/material-core/day-math';
|
|
2
|
-
/**
|
|
3
|
-
* The wall clock of an instant in `timeZone`, as a `Date` whose local
|
|
4
|
-
* getters read it: `wallClock('2026-08-02T23:30:00Z', 'Asia/Tokyo')` is
|
|
5
|
-
* August 3rd, 08:30 whatever zone the machine runs in. The day maths
|
|
6
|
-
* (`daysAgo`, `localIsoDay`, `formatDayLabel`) then work on it unchanged, so
|
|
7
|
-
* a server and a browser group and label the same way. Without a
|
|
8
|
-
* `timeZone` (or with one `Intl` does not know), the instant itself.
|
|
9
|
-
*/
|
|
10
|
-
export declare function wallClock(value: DayInput, timeZone?: string): Date;
|
|
11
|
-
/** The wall clock as an offset-less ISO string, which date-fns reads as local: `2026-08-03T08:30:00`. */
|
|
12
|
-
export declare function wallIso(value: DayInput, timeZone?: string): string;
|