@nxgt/material 2.9.0 → 2.10.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.
Files changed (48) hide show
  1. package/CHANGELOG.md +22 -0
  2. package/dist/{blockDiagram-BEXU5L5S-BOsyK4E_.js → blockDiagram-BEXU5L5S-CJLOORWK.js} +1 -1
  3. package/dist/{chunk-3FUC2YCW-BCsKm3ZT.js → chunk-3FUC2YCW-ClO5Q7A1.js} +1 -1
  4. package/dist/{chunk-7M6MHVWA-C3qpW8zM.js → chunk-7M6MHVWA-DsMPzivr.js} +1 -1
  5. package/dist/{chunk-GNY47TPC-CzPNLW5k.js → chunk-GNY47TPC-CFItyjGy.js} +4 -4
  6. package/dist/{chunk-NETBCI7D-tNinefdn.js → chunk-NETBCI7D-Bll4gy0a.js} +1 -1
  7. package/dist/{chunk-Z7XXMR3K-C9P-XjM2.js → chunk-Z7XXMR3K-CwcuZpJa.js} +1 -1
  8. package/dist/{classDiagram-v2-NBCMYWYE-D00ZobEC.js → classDiagram-v2-NBCMYWYE-BAvo2puZ.js} +2 -2
  9. package/dist/components/theme-tokens.css +2 -2
  10. package/dist/{components-km60bAdr.js → components-N_PpCQjB.js} +21320 -21294
  11. package/dist/components.js +4 -4
  12. package/dist/{dagre-6A5THRUB-D_F3_LlW.js → dagre-6A5THRUB-C70bzAEw.js} +3 -3
  13. package/dist/{diagram-22UHCM2B-CsxOExpW.js → diagram-22UHCM2B-BtBii6xG.js} +2 -2
  14. package/dist/{diagram-3UASUU5V-Dl7AETV1.js → diagram-3UASUU5V-DMDUtIe2.js} +1 -1
  15. package/dist/dnd.js +1 -1
  16. package/dist/{elk-276RUBZZ-BK-NMLiI.js → elk-276RUBZZ-D2kPrlDF.js} +3 -3
  17. package/dist/{erDiagram-OPXOYQCR-DC1GgS4l.js → erDiagram-OPXOYQCR-CItUoDJi.js} +2 -2
  18. package/dist/{field-blur--x_n3oMy.js → field-blur-DbgP3nv0.js} +6 -6
  19. package/dist/{flowDiagram-KWPJA3E3-BUSlDNQP.js → flowDiagram-KWPJA3E3-BF73zGqG.js} +3 -3
  20. package/dist/{ganttDiagram-FUAMR5RP-DOp1p_x0.js → ganttDiagram-FUAMR5RP-DWnIg8g9.js} +1 -1
  21. package/dist/{icon-button-G9zdQ3Ix.js → icon-button-B1nN3J6B.js} +5 -5
  22. package/dist/{journeyDiagram-ZHPQQLJL-DuQ9Th0y.js → journeyDiagram-ZHPQQLJL-C1G4q1sS.js} +1 -1
  23. package/dist/lib/components/ui/feedback/toast/index.d.ts +1 -0
  24. package/dist/lib/components/ui/feedback/toast/partials/toast-actions.d.ts +12 -2
  25. package/dist/lib/components/ui/feedback/toast/toast-data.d.ts +26 -0
  26. package/dist/lib/components/ui/feedback/toast/toast.d.ts +6 -3
  27. package/dist/lib/components/ui/feedback/toast/toasts.d.ts +18 -6
  28. package/dist/main.js +4 -4
  29. package/dist/map.js +2 -2
  30. package/dist/material.css +1 -1
  31. package/dist/{mermaid.core-Dfr4zfuP.js → mermaid.core-C74WUE6C.js} +21 -21
  32. package/dist/{mindmap-definition-NLK3R4M7-_qKWGSrk.js → mindmap-definition-NLK3R4M7-CFOfIsM7.js} +2 -2
  33. package/dist/{pieDiagram-5QR66LMP-B6at48Bd.js → pieDiagram-5QR66LMP-B26Y_url.js} +1 -1
  34. package/dist/{quadrantDiagram-O4NWA36T-Cr9bA0xJ.js → quadrantDiagram-O4NWA36T-vIoMpSWW.js} +1 -1
  35. package/dist/{requirementDiagram-PLB6GJNP-BBs-lByV.js → requirementDiagram-PLB6GJNP-CL3H5GL7.js} +2 -2
  36. package/dist/{sankeyDiagram-IPEJSGJF-BzX37jGY.js → sankeyDiagram-IPEJSGJF-Wksiclao.js} +1 -1
  37. package/dist/{sortable-provider-WZT5I34N.js → sortable-provider-D4S-mqLP.js} +1 -1
  38. package/dist/{stateDiagram-v2-GCMORJYK-Chc9Z6Mr.js → stateDiagram-v2-GCMORJYK-oLPhH1yQ.js} +2 -2
  39. package/dist/{swimlanes-2SLR337P-D0yLvfot.js → swimlanes-2SLR337P-C6I2boWI.js} +3 -3
  40. package/dist/{swimlanesDiagram-TC7HE7FX-BOd0Czfs.js → swimlanesDiagram-TC7HE7FX-zAPI0RjB.js} +3 -3
  41. package/dist/{timeline-definition-EJHVYXUP-nDNR-Dt-.js → timeline-definition-EJHVYXUP-Dpsxn1Fj.js} +1 -1
  42. package/dist/{usecaseDiagram-POWQR4AR-Bwen99ay.js → usecaseDiagram-POWQR4AR-DLZ1ULxe.js} +2 -2
  43. package/dist/{xychartDiagram-PMCCYNJV-b-Quuxoi.js → xychartDiagram-PMCCYNJV-HJtnH7o5.js} +1 -1
  44. package/docs/components/feedback-and-status.md +35 -6
  45. package/docs/roadmap.md +5 -0
  46. package/docs/troubleshooting.md +49 -2
  47. package/lib/components/theme-tokens.css +2 -2
  48. package/package.json +2 -2
@@ -8,9 +8,9 @@ import { a as he } from "./chunk-MBY4JIJT-BFIqOe-8.js";
8
8
  import "./chunk-7PRAP22T-0C6_H8Li.js";
9
9
  import "./chunk-7INBJB4K-k-I67NSP.js";
10
10
  import "./chunk-5DYCD2WN-Cd1zazNp.js";
11
- import "./chunk-Z7XXMR3K-C9P-XjM2.js";
11
+ import "./chunk-Z7XXMR3K-CwcuZpJa.js";
12
12
  import "./chunk-UA2S7LBM-ChuksCDg.js";
13
- import { n as ge } from "./chunk-GNY47TPC-CzPNLW5k.js";
13
+ import { n as ge } from "./chunk-GNY47TPC-CFItyjGy.js";
14
14
  import { n as _e, t as ve } from "./chunk-LNGE3PJU-DJjGTS7O.js";
15
15
  //#region ../../node_modules/es-toolkit/dist/compat/_internal/isPrototype.mjs
16
16
  function ye(e) {
@@ -302,7 +302,7 @@ var qe = "c4", Je = {
302
302
  id: Ye,
303
303
  detector: /* @__PURE__ */ p((e) => /^\s*(graph|flowchart)/.test(e), "detector"),
304
304
  loader: /* @__PURE__ */ p(async () => {
305
- let { diagram: e } = await import("./flowDiagram-KWPJA3E3-BUSlDNQP.js");
305
+ let { diagram: e } = await import("./flowDiagram-KWPJA3E3-BF73zGqG.js");
306
306
  return {
307
307
  id: Ye,
308
308
  diagram: e
@@ -312,7 +312,7 @@ var qe = "c4", Je = {
312
312
  id: Ze,
313
313
  detector: /* @__PURE__ */ p((e) => /^\s*agentflow-beta\b/.test(e), "detector"),
314
314
  loader: /* @__PURE__ */ p(async () => {
315
- let { diagram: e } = await import("./diagram-22UHCM2B-CsxOExpW.js");
315
+ let { diagram: e } = await import("./diagram-22UHCM2B-BtBii6xG.js");
316
316
  return {
317
317
  id: Ze,
318
318
  diagram: e
@@ -322,7 +322,7 @@ var qe = "c4", Je = {
322
322
  id: $e,
323
323
  detector: /* @__PURE__ */ p((e) => /^\s*swimlane-beta\b/.test(e), "detector"),
324
324
  loader: /* @__PURE__ */ p(async () => {
325
- let { diagram: e } = await import("./swimlanesDiagram-TC7HE7FX-BOd0Czfs.js");
325
+ let { diagram: e } = await import("./swimlanesDiagram-TC7HE7FX-zAPI0RjB.js");
326
326
  return {
327
327
  id: $e,
328
328
  diagram: e
@@ -332,7 +332,7 @@ var qe = "c4", Je = {
332
332
  id: tt,
333
333
  detector: /* @__PURE__ */ p((e) => /^\s*erDiagram/.test(e), "detector"),
334
334
  loader: /* @__PURE__ */ p(async () => {
335
- let { diagram: e } = await import("./erDiagram-OPXOYQCR-DC1GgS4l.js");
335
+ let { diagram: e } = await import("./erDiagram-OPXOYQCR-CItUoDJi.js");
336
336
  return {
337
337
  id: tt,
338
338
  diagram: e
@@ -352,7 +352,7 @@ var qe = "c4", Je = {
352
352
  id: at,
353
353
  detector: /* @__PURE__ */ p((e) => /^\s*gantt/.test(e), "detector"),
354
354
  loader: /* @__PURE__ */ p(async () => {
355
- let { diagram: e } = await import("./ganttDiagram-FUAMR5RP-DOp1p_x0.js");
355
+ let { diagram: e } = await import("./ganttDiagram-FUAMR5RP-DWnIg8g9.js");
356
356
  return {
357
357
  id: at,
358
358
  diagram: e
@@ -372,7 +372,7 @@ var qe = "c4", Je = {
372
372
  id: lt,
373
373
  detector: /* @__PURE__ */ p((e) => /^\s*pie/.test(e), "detector"),
374
374
  loader: /* @__PURE__ */ p(async () => {
375
- let { diagram: e } = await import("./pieDiagram-5QR66LMP-B6at48Bd.js");
375
+ let { diagram: e } = await import("./pieDiagram-5QR66LMP-B26Y_url.js");
376
376
  return {
377
377
  id: lt,
378
378
  diagram: e
@@ -382,7 +382,7 @@ var qe = "c4", Je = {
382
382
  id: dt,
383
383
  detector: /* @__PURE__ */ p((e) => /^\s*quadrantChart/.test(e), "detector"),
384
384
  loader: /* @__PURE__ */ p(async () => {
385
- let { diagram: e } = await import("./quadrantDiagram-O4NWA36T-Cr9bA0xJ.js");
385
+ let { diagram: e } = await import("./quadrantDiagram-O4NWA36T-vIoMpSWW.js");
386
386
  return {
387
387
  id: dt,
388
388
  diagram: e
@@ -392,7 +392,7 @@ var qe = "c4", Je = {
392
392
  id: pt,
393
393
  detector: /* @__PURE__ */ p((e) => /^\s*xychart(-beta)?/.test(e), "detector"),
394
394
  loader: /* @__PURE__ */ p(async () => {
395
- let { diagram: e } = await import("./xychartDiagram-PMCCYNJV-b-Quuxoi.js");
395
+ let { diagram: e } = await import("./xychartDiagram-PMCCYNJV-HJtnH7o5.js");
396
396
  return {
397
397
  id: pt,
398
398
  diagram: e
@@ -402,7 +402,7 @@ var qe = "c4", Je = {
402
402
  id: ht,
403
403
  detector: /* @__PURE__ */ p((e) => /^\s*requirement(Diagram)?/.test(e), "detector"),
404
404
  loader: /* @__PURE__ */ p(async () => {
405
- let { diagram: e } = await import("./requirementDiagram-PLB6GJNP-BBs-lByV.js");
405
+ let { diagram: e } = await import("./requirementDiagram-PLB6GJNP-CL3H5GL7.js");
406
406
  return {
407
407
  id: ht,
408
408
  diagram: e
@@ -422,7 +422,7 @@ var qe = "c4", Je = {
422
422
  id: yt,
423
423
  detector: /* @__PURE__ */ p((e) => /^\s*classDiagram/.test(e), "detector"),
424
424
  loader: /* @__PURE__ */ p(async () => {
425
- let { diagram: e } = await import("./classDiagram-v2-NBCMYWYE-D00ZobEC.js");
425
+ let { diagram: e } = await import("./classDiagram-v2-NBCMYWYE-BAvo2puZ.js");
426
426
  return {
427
427
  id: yt,
428
428
  diagram: e
@@ -432,7 +432,7 @@ var qe = "c4", Je = {
432
432
  id: xt,
433
433
  detector: /* @__PURE__ */ p((e) => /^\s*stateDiagram/.test(e), "detector"),
434
434
  loader: /* @__PURE__ */ p(async () => {
435
- let { diagram: e } = await import("./stateDiagram-v2-GCMORJYK-Chc9Z6Mr.js");
435
+ let { diagram: e } = await import("./stateDiagram-v2-GCMORJYK-oLPhH1yQ.js");
436
436
  return {
437
437
  id: xt,
438
438
  diagram: e
@@ -442,7 +442,7 @@ var qe = "c4", Je = {
442
442
  id: Ct,
443
443
  detector: /* @__PURE__ */ p((e) => /^\s*journey/.test(e), "detector"),
444
444
  loader: /* @__PURE__ */ p(async () => {
445
- let { diagram: e } = await import("./journeyDiagram-ZHPQQLJL-DuQ9Th0y.js");
445
+ let { diagram: e } = await import("./journeyDiagram-ZHPQQLJL-C1G4q1sS.js");
446
446
  return {
447
447
  id: Ct,
448
448
  diagram: e
@@ -460,7 +460,7 @@ var qe = "c4", Je = {
460
460
  id: Ot,
461
461
  detector: /* @__PURE__ */ p((e, t = {}) => /^\s*flowchart-elk/.test(e) ? (t.layout = "elk", !0) : !1, "detector"),
462
462
  loader: /* @__PURE__ */ p(async () => {
463
- let { diagram: e } = await import("./flowDiagram-KWPJA3E3-BUSlDNQP.js");
463
+ let { diagram: e } = await import("./flowDiagram-KWPJA3E3-BF73zGqG.js");
464
464
  return {
465
465
  id: Ot,
466
466
  diagram: e
@@ -470,7 +470,7 @@ var qe = "c4", Je = {
470
470
  id: At,
471
471
  detector: /* @__PURE__ */ p((e) => /^\s*timeline/.test(e), "detector"),
472
472
  loader: /* @__PURE__ */ p(async () => {
473
- let { diagram: e } = await import("./timeline-definition-EJHVYXUP-nDNR-Dt-.js");
473
+ let { diagram: e } = await import("./timeline-definition-EJHVYXUP-Dpsxn1Fj.js");
474
474
  return {
475
475
  id: At,
476
476
  diagram: e
@@ -480,7 +480,7 @@ var qe = "c4", Je = {
480
480
  id: Mt,
481
481
  detector: /* @__PURE__ */ p((e) => /^\s*mindmap/.test(e), "detector"),
482
482
  loader: /* @__PURE__ */ p(async () => {
483
- let { diagram: e } = await import("./mindmap-definition-NLK3R4M7-_qKWGSrk.js");
483
+ let { diagram: e } = await import("./mindmap-definition-NLK3R4M7-CFOfIsM7.js");
484
484
  return {
485
485
  id: Mt,
486
486
  diagram: e
@@ -500,7 +500,7 @@ var qe = "c4", Je = {
500
500
  id: It,
501
501
  detector: /* @__PURE__ */ p((e) => /^\s*sankey(-beta)?/.test(e), "detector"),
502
502
  loader: /* @__PURE__ */ p(async () => {
503
- let { diagram: e } = await import("./sankeyDiagram-IPEJSGJF-BzX37jGY.js");
503
+ let { diagram: e } = await import("./sankeyDiagram-IPEJSGJF-Wksiclao.js");
504
504
  return {
505
505
  id: It,
506
506
  diagram: e
@@ -530,7 +530,7 @@ var qe = "c4", Je = {
530
530
  id: Ht,
531
531
  detector: /* @__PURE__ */ p((e) => /^\s*block(-beta)?/.test(e), "detector"),
532
532
  loader: /* @__PURE__ */ p(async () => {
533
- let { diagram: e } = await import("./blockDiagram-BEXU5L5S-BOsyK4E_.js");
533
+ let { diagram: e } = await import("./blockDiagram-BEXU5L5S-CJLOORWK.js");
534
534
  return {
535
535
  id: Ht,
536
536
  diagram: e
@@ -590,7 +590,7 @@ var qe = "c4", Je = {
590
590
  id: en,
591
591
  detector: /* @__PURE__ */ p((e) => /^\s*treemap/.test(e), "detector"),
592
592
  loader: /* @__PURE__ */ p(async () => {
593
- let { diagram: e } = await import("./diagram-3UASUU5V-Dl7AETV1.js");
593
+ let { diagram: e } = await import("./diagram-3UASUU5V-DMDUtIe2.js");
594
594
  return {
595
595
  id: en,
596
596
  diagram: e
@@ -600,7 +600,7 @@ var qe = "c4", Je = {
600
600
  id: nn,
601
601
  detector: /* @__PURE__ */ p((e) => /^\s*usecase-beta(?:\s|$)/.test(e), "detector"),
602
602
  loader: /* @__PURE__ */ p(async () => {
603
- let { diagram: e } = await import("./usecaseDiagram-POWQR4AR-Bwen99ay.js");
603
+ let { diagram: e } = await import("./usecaseDiagram-POWQR4AR-DLZ1ULxe.js");
604
604
  return {
605
605
  id: nn,
606
606
  diagram: e
@@ -7,11 +7,11 @@ import "./chunk-MBY4JIJT-BFIqOe-8.js";
7
7
  import "./chunk-7PRAP22T-0C6_H8Li.js";
8
8
  import "./chunk-7INBJB4K-k-I67NSP.js";
9
9
  import "./chunk-5DYCD2WN-Cd1zazNp.js";
10
- import "./chunk-Z7XXMR3K-C9P-XjM2.js";
10
+ import "./chunk-Z7XXMR3K-CwcuZpJa.js";
11
11
  import { t as u } from "./chunk-XXDRQBXY-dKXxu_aj.js";
12
12
  import { t as d } from "./chunk-WEXAMYUT-CbFOhEve.js";
13
13
  import "./chunk-UA2S7LBM-ChuksCDg.js";
14
- import { r as f, t as p } from "./chunk-GNY47TPC-CzPNLW5k.js";
14
+ import { r as f, t as p } from "./chunk-GNY47TPC-CFItyjGy.js";
15
15
  //#region ../../node_modules/uuid/dist/stringify.js
16
16
  var m = [];
17
17
  for (let e = 0; e < 256; ++e) m.push((e + 256).toString(16).slice(1));
@@ -1,4 +1,4 @@
1
- import { ct as e, ot as t } from "./components-km60bAdr.js";
1
+ import { ct as e, ot as t } from "./components-N_PpCQjB.js";
2
2
  import { n } from "./src-CsLQInsN.js";
3
3
  import { i as r, p as i } from "./chunk-ZIGJFQKS-9VXArDKF.js";
4
4
  import { t as a } from "./ordinal-DwxdXP1t.js";
@@ -1,4 +1,4 @@
1
- import { rt as e } from "./components-km60bAdr.js";
1
+ import { rt as e } from "./components-N_PpCQjB.js";
2
2
  import { n as t, t as n } from "./src-CsLQInsN.js";
3
3
  import { n as r } from "./chunk-Y2CYZVJY-BAad7w_K.js";
4
4
  import { D as i, H as a, U as o, a as s, c, f as l, q as u, v as d, w as f, x as p, y as m, z as h } from "./chunk-O7XYJQB3-BChweQ_V.js";
@@ -8,11 +8,11 @@ import "./chunk-7PRAP22T-0C6_H8Li.js";
8
8
  import { a as p, i as m, o as h, r as g } from "./chunk-J5ZVWO5B-DmRRmhon.js";
9
9
  import "./chunk-7INBJB4K-k-I67NSP.js";
10
10
  import "./chunk-5DYCD2WN-Cd1zazNp.js";
11
- import "./chunk-Z7XXMR3K-C9P-XjM2.js";
11
+ import "./chunk-Z7XXMR3K-CwcuZpJa.js";
12
12
  import { t as _ } from "./chunk-XXDRQBXY-dKXxu_aj.js";
13
13
  import { t as v } from "./chunk-WEXAMYUT-CbFOhEve.js";
14
14
  import "./chunk-UA2S7LBM-ChuksCDg.js";
15
- import { r as y, t as b } from "./chunk-GNY47TPC-CzPNLW5k.js";
15
+ import { r as y, t as b } from "./chunk-GNY47TPC-CFItyjGy.js";
16
16
  //#region ../../node_modules/mermaid/dist/chunks/mermaid.core/requirementDiagram-PLB6GJNP.mjs
17
17
  var x = (function() {
18
18
  var e = /* @__PURE__ */ n(function(e, t, n, r) {
@@ -1,4 +1,4 @@
1
- import { V as e } from "./components-km60bAdr.js";
1
+ import { V as e } from "./components-N_PpCQjB.js";
2
2
  import { t } from "./src-CsLQInsN.js";
3
3
  import { t as n } from "./ordinal-DwxdXP1t.js";
4
4
  import { n as r } from "./chunk-Y2CYZVJY-BAad7w_K.js";
@@ -1,5 +1,5 @@
1
1
  import { t as e } from "./utils-DC8bw9A_.js";
2
- import { pt as t, t as n } from "./icon-button-G9zdQ3Ix.js";
2
+ import { pt as t, t as n } from "./icon-button-B1nN3J6B.js";
3
3
  import { t as r } from "./use-material-translation-B2GUtxUY.js";
4
4
  import { GripVertical as i } from "lucide-react";
5
5
  import { jsx as a } from "react/jsx-runtime";
@@ -8,12 +8,12 @@ import "./chunk-7PRAP22T-0C6_H8Li.js";
8
8
  import { a as h, i as g, o as _, r as v } from "./chunk-J5ZVWO5B-DmRRmhon.js";
9
9
  import "./chunk-7INBJB4K-k-I67NSP.js";
10
10
  import "./chunk-5DYCD2WN-Cd1zazNp.js";
11
- import "./chunk-Z7XXMR3K-C9P-XjM2.js";
11
+ import "./chunk-Z7XXMR3K-CwcuZpJa.js";
12
12
  import { t as y } from "./chunk-GWA4HPMP-B8jXI0Tl.js";
13
13
  import { t as b } from "./chunk-XXDRQBXY-dKXxu_aj.js";
14
14
  import { t as x } from "./chunk-WEXAMYUT-CbFOhEve.js";
15
15
  import "./chunk-UA2S7LBM-ChuksCDg.js";
16
- import { r as S, t as C } from "./chunk-GNY47TPC-CzPNLW5k.js";
16
+ import { r as S, t as C } from "./chunk-GNY47TPC-CFItyjGy.js";
17
17
  //#region ../../node_modules/mermaid/dist/chunks/mermaid.core/stateDiagram-v2-GCMORJYK.mjs
18
18
  var w = (function() {
19
19
  var e = /* @__PURE__ */ i(function(e, t, n, r) {
@@ -7,10 +7,10 @@ import "./chunk-MBY4JIJT-BFIqOe-8.js";
7
7
  import "./chunk-7PRAP22T-0C6_H8Li.js";
8
8
  import "./chunk-7INBJB4K-k-I67NSP.js";
9
9
  import "./chunk-5DYCD2WN-Cd1zazNp.js";
10
- import "./chunk-Z7XXMR3K-C9P-XjM2.js";
10
+ import "./chunk-Z7XXMR3K-CwcuZpJa.js";
11
11
  import "./chunk-UA2S7LBM-ChuksCDg.js";
12
- import { r as n } from "./chunk-3FUC2YCW-BCsKm3ZT.js";
13
- import { t as r } from "./chunk-NETBCI7D-tNinefdn.js";
12
+ import { r as n } from "./chunk-3FUC2YCW-ClO5Q7A1.js";
13
+ import { t as r } from "./chunk-NETBCI7D-Bll4gy0a.js";
14
14
  //#region ../../node_modules/mermaid/dist/chunks/mermaid.core/swimlanes-2SLR337P.mjs
15
15
  function i(e, { measure: t }) {
16
16
  let n = e.config?.swimlane?.lineHops;
@@ -7,14 +7,14 @@ import "./chunk-MBY4JIJT-BFIqOe-8.js";
7
7
  import "./chunk-7PRAP22T-0C6_H8Li.js";
8
8
  import "./chunk-7INBJB4K-k-I67NSP.js";
9
9
  import "./chunk-5DYCD2WN-Cd1zazNp.js";
10
- import "./chunk-Z7XXMR3K-C9P-XjM2.js";
10
+ import "./chunk-Z7XXMR3K-CwcuZpJa.js";
11
11
  import "./chunk-GWA4HPMP-B8jXI0Tl.js";
12
12
  import "./chunk-XXDRQBXY-dKXxu_aj.js";
13
13
  import "./chunk-WEXAMYUT-CbFOhEve.js";
14
14
  import "./chunk-UA2S7LBM-ChuksCDg.js";
15
- import "./chunk-GNY47TPC-CzPNLW5k.js";
15
+ import "./chunk-GNY47TPC-CFItyjGy.js";
16
16
  import "./chunk-LNGE3PJU-DJjGTS7O.js";
17
- import { r as t, t as n } from "./chunk-7M6MHVWA-C3qpW8zM.js";
17
+ import { r as t, t as n } from "./chunk-7M6MHVWA-DsMPzivr.js";
18
18
  //#region ../../node_modules/mermaid/dist/chunks/mermaid.core/swimlanesDiagram-TC7HE7FX.mjs
19
19
  var r = n({ styles: /* @__PURE__ */ e((e) => `${t(e)}
20
20
  .swimlane.cluster:not([data-color-id]) rect {
@@ -1,4 +1,4 @@
1
- import { ct as e } from "./components-km60bAdr.js";
1
+ import { ct as e } from "./components-N_PpCQjB.js";
2
2
  import { n as t, t as n } from "./src-CsLQInsN.js";
3
3
  import { p as r } from "./chunk-ZIGJFQKS-9VXArDKF.js";
4
4
  import { n as i, t as a } from "./chunk-Y2CYZVJY-BAad7w_K.js";
@@ -8,11 +8,11 @@ import "./chunk-7PRAP22T-0C6_H8Li.js";
8
8
  import { a as g, i as _, o as v, r as y } from "./chunk-J5ZVWO5B-DmRRmhon.js";
9
9
  import "./chunk-7INBJB4K-k-I67NSP.js";
10
10
  import "./chunk-5DYCD2WN-Cd1zazNp.js";
11
- import "./chunk-Z7XXMR3K-C9P-XjM2.js";
11
+ import "./chunk-Z7XXMR3K-CwcuZpJa.js";
12
12
  import { t as ee } from "./chunk-XXDRQBXY-dKXxu_aj.js";
13
13
  import { t as te } from "./chunk-WEXAMYUT-CbFOhEve.js";
14
14
  import "./chunk-UA2S7LBM-ChuksCDg.js";
15
- import { r as ne, t as re } from "./chunk-GNY47TPC-CzPNLW5k.js";
15
+ import { r as ne, t as re } from "./chunk-GNY47TPC-CFItyjGy.js";
16
16
  //#region ../../node_modules/chevrotain/node_modules/lodash-es/_freeGlobal.js
17
17
  var ie = typeof global == "object" && global && global.Object === Object && global, ae = typeof self == "object" && self && self.Object === Object && self, b = ie || ae || Function("return this")(), oe = b.Symbol, se = Object.prototype, ce = se.hasOwnProperty, le = se.toString, ue = oe ? oe.toStringTag : void 0;
18
18
  function de(e) {
@@ -1,4 +1,4 @@
1
- import { at as e, rt as t, st as n } from "./components-km60bAdr.js";
1
+ import { at as e, rt as t, st as n } from "./components-N_PpCQjB.js";
2
2
  import { n as r } from "./src-CsLQInsN.js";
3
3
  import { i } from "./chunk-ZIGJFQKS-9VXArDKF.js";
4
4
  import { n as a } from "./chunk-Y2CYZVJY-BAad7w_K.js";
@@ -426,7 +426,7 @@ toasts.dismiss(id);
426
426
  | --- | --- | --- | --- |
427
427
  | `title` / `description` | `ReactNode` | preset title for `success`, `error`, `loading` | toast text |
428
428
  | `icon` | `ReactNode` (`toast`) · icon name (`toasts.custom`) | preset icon | leading icon |
429
- | `action` | `ToastAction`: `{ label, onClick? }` or `(dismiss) => ReactNode` | a translated “Close” for `success`, `info`, `error`; a preset keeps the caller's own | trailing button: `onClick`, then the toast closes; or what the function renders, given `dismiss`. Brings the X button and a persistent toast, see below |
429
+ | `action` | `ToastAction`: `{ label, onClick? }` or `(dismiss) => ReactNode` | a translated “Close” for `success`, `info`, `error`; every preset keeps the caller's own, in either call | trailing button: `onClick` (given the click event, optional when you call it yourself), then the toast closes; or what the function renders, given `dismiss`. Brings the X button and a persistent toast, see below |
430
430
  | `dismissLabel` | `string` | the translated “Close” when an `action` is given | accessible name of the X icon button beside the action; `''` hides it |
431
431
  | `role` | `'status' \| 'alert'` | none (`toasts.error`: `'alert'`) | live-region role. Toasts are already announced politely by the `Toaster`'s region; `alert` interrupts, and may be read twice by some screen readers |
432
432
  | `options` | Sonner `ExternalToast` | `duration: 5000` for presets, `Infinity` for `loading` and for any toast with your own `action` (a preset's fallback "Close" still times out at 5000) unless a `duration` is passed | passed to Sonner (`id`, `duration`, `position`…) |
@@ -438,7 +438,7 @@ forwarded; mount the one from `@nxgt/material/components`, not Sonner's own,
438
438
  or neither phone change below applies. `Toast` is the component each toast
439
439
  renders, for use with `sonnerToast.custom`.
440
440
 
441
- **Types:** `ToastAction`, `ToastProps`, `ToastMethodProps`, `ToasterProps`.
441
+ **Types:** `ToastAction`, `ToastProps`, `ToastMethodProps`, `ToastData`, `ToastArgs`, `ToasterProps`, and `PresetProps` (the props of `success`, `warning`, `info` and `error`: use it, not `Parameters<typeof toasts.success>[0]`, which is now a union with the `(message, data)` form).
442
442
 
443
443
  **On a phone** (under 600px wide, where Sonner lays toasts out across the
444
444
  screen), a `Toaster` with no `position` shows its toasts at the top
@@ -454,6 +454,27 @@ stay visible: `<Toaster mobileOffset={{ top: 72 }} />`.
454
454
  <Toaster position="bottom-center" /> // bottom-center everywhere
455
455
  ```
456
456
 
457
+ **sonner's call works too.** Every preset (`custom`, `success`, `info`,
458
+ `warning`, `error`, `loading`) also takes sonner's own `(message, data)`: the
459
+ message is the title, `data.description` and `data.action` are shown, and the
460
+ rest of `data` (`id`, `duration`, `onDismiss`…) is passed to sonner as the
461
+ options. `data` is typed `ToastData`, sonner's `ExternalToast` without `icon`
462
+ (a preset draws its own) and `cancel` (the X button stands for it): passing
463
+ either is a type error rather than a silent no-op.
464
+
465
+ ```ts
466
+ toasts.success('Staff member restored', {
467
+ description: 'They can sign in again.',
468
+ action: { label: 'Send an invitation', onClick: openInvite },
469
+ });
470
+ // the same as
471
+ toasts.success({
472
+ title: 'Staff member restored',
473
+ description: 'They can sign in again.',
474
+ action: { label: 'Send an invitation', onClick: openInvite },
475
+ });
476
+ ```
477
+
457
478
  **An action keeps the toast open.** `toast()` itself does it, so a preset and a
458
479
  direct call behave alike: any toast with an `action` is persistent by default
459
480
  (`options.duration: Infinity`, WCAG 2.2.1: a timed toast can vanish before a
@@ -471,10 +492,18 @@ elsewhere) is ignored, so a tapped toast still goes after its duration. On a
471
492
  touch screen a tap no longer fans out a stack of two or more toasts either: pass
472
493
  `expand` to keep the stack open. Sonner does not close a toast on Escape (it
473
494
  only collapses the stack); this `Toast` does when focus is inside it, with or
474
- without an action. The close button is reached with Tab. **Focus after a
475
- dismiss:** the dismissed toast leaves the page with the focused control in it,
476
- so focus falls back to `document.body`; move it yourself (`onClick`, or after
477
- `toasts.dismiss()`) when the flow needs it elsewhere.
495
+ without an action. The close button is reached with Tab.
496
+
497
+ **Focus after an action.** A click on a toast's action first gives the focus
498
+ back to the control that had it before the focus entered the toast, then runs
499
+ your `onClick`, then closes the toast; a function action's `dismiss` does the
500
+ same before it closes. So an action that opens a `Dialog` (or moves the focus
501
+ anywhere else) keeps it there: the dialog holds the control it focused once
502
+ the toast has gone, and gives the focus back to that earlier control when it
503
+ closes (WCAG 2.4.3). An action that moves the focus nowhere leaves it on that
504
+ earlier control. A toast closed by its X or by Escape takes its focused
505
+ control with it, so the focus falls back to `document.body`; move it yourself
506
+ (after `toasts.dismiss()`) when the flow needs it elsewhere.
478
507
 
479
508
  **Announced to screen readers:** `Toaster` renders a polite live region
480
509
  (`<section aria-live="polite">`) that is in the page before the first toast,
package/docs/roadmap.md CHANGED
@@ -88,6 +88,11 @@ Nothing in progress right now; see Next.
88
88
 
89
89
  ## Shipped
90
90
 
91
+ - **Toast actions that work everywhere** — `toasts.success(message, { action })`
92
+ and every other preset take sonner's own call shape and keep their action,
93
+ and a dialog a toast's action opens keeps the focus, then gives it back to
94
+ where it was before the toast. 2.10.0.
95
+
91
96
  - **Tabs in two looks** — `underline`, the new default, whose bar slides to
92
97
  the active tab, and a neutral `segmented` pill; a list that scrolls
93
98
  sideways on a phone instead of widening the page, right-to-left, a visible
@@ -32,6 +32,8 @@ words in your error.
32
32
  - [A toast covers the form's button on a phone](#a-toast-covers-the-forms-button-on-a-phone)
33
33
  - [A toast never goes away after a tap](#a-toast-never-goes-away-after-a-tap)
34
34
  - [A toast's action cannot be clicked while a dialog is open](#a-toasts-action-cannot-be-clicked-while-a-dialog-is-open)
35
+ - [`toasts.success(message, { action })` shows no action button](#toastssuccessmessage--action--shows-no-action-button)
36
+ - [The focus leaves a dialog that a toast's action opened](#the-focus-leaves-a-dialog-that-a-toasts-action-opened)
35
37
  - [A `ConfirmationDialog` reopened with new content blocks clicks](#a-confirmationdialog-reopened-with-new-content-blocks-clicks)
36
38
  - [The first Escape after closing a nested dialog does nothing](#the-first-escape-after-closing-a-nested-dialog-does-nothing)
37
39
 
@@ -433,8 +435,8 @@ In the dark theme, a filled `secondary` `Button` gave its near-white text
433
435
  `success`, `info` or `warning` one 3.5:1, 2.5:1 and 3.4:1. The dark
434
436
  `--secondary` is brighter (`oklch(0.66 ...)`, 6.5:1 as text on
435
437
  `--background`), and the filled `secondary`, `success`, `info` and `warning`
436
- `Button`s and `IconButton`s are tinted in the dark theme
437
- (`dark:bg-secondary/70`, `dark:bg-success/60`, …) so their text keeps 4.5:1.
438
+ `Button`s and `IconButton`s are filled in the dark theme with an opaque mix
439
+ toward `--background` (about 70 %), so their text keeps 4.5:1 over any backdrop.
438
440
  A filled button given a background of your own through `className` loses the
439
441
  tint in dark mode: add a matching `dark:` one.
440
442
 
@@ -642,6 +644,51 @@ counted a pointer down on a toast as outside the dialog.
642
644
  inside the `Toaster` as inside, so the action runs and the dialog stays open.
643
645
  Sonner's own `Toaster` keeps the old behaviour.
644
646
 
647
+ ### `toasts.success(message, { action })` shows no action button
648
+
649
+ **When:** a preset is called the way sonner's own `toast.success` is, with a
650
+ message and a `data` object: `toasts.success('Staff member restored', {
651
+ action: { label: 'Send an invitation', onClick } })`. The toast shows the
652
+ preset's default title ("Success") and its "Close" button, not your message,
653
+ description or action.
654
+ **Why:** the presets took one props object only (`{ title, description,
655
+ action, options }`): a string first argument was read as that object, and
656
+ the second argument was ignored.
657
+ **Fix:** update `@nxgt/material`: every preset (`custom`, `success`, `info`,
658
+ `warning`, `error`, `loading`) now takes `(message, data)` too, the message as
659
+ the title and `data.description` and `data.action` shown, the rest of `data`
660
+ as sonner's options. The props object works as before:
661
+
662
+ ```ts
663
+ toasts.success('Staff member restored', { action: { label: 'Send an invitation', onClick } });
664
+ toasts.success({ title: 'Staff member restored', action: { label: 'Send an invitation', onClick } });
665
+ ```
666
+
667
+ `data` takes no `icon` (a preset draws its own) and no `cancel` (the X button
668
+ beside the action stands for it).
669
+
670
+ ### The focus leaves a dialog that a toast's action opened
671
+
672
+ **When:** a toast's action opens a `Dialog` (or an `AlertDialog`, a `Sheet`,
673
+ a `Drawer`, or moves the focus anywhere else). Once the toast has gone, the
674
+ focus is no longer on the dialog's control (it is on the dialog itself, on
675
+ the page behind it, or on `document.body`), and closing the dialog leaves the
676
+ focus on `document.body` instead of where it was before the toast.
677
+ **Why:** sonner remembers the control focused before the focus entered the
678
+ `Toaster`, and focuses it again as soon as the focus leaves the `Toaster`.
679
+ The dialog taking the focus counted as leaving, so sonner pulled it back out
680
+ of the dialog (WCAG 2.4.3). The dialog, opened while the toast's button had
681
+ the focus, also gave the focus back to that button once closed: it had gone
682
+ with its toast, so the focus fell to `document.body`.
683
+ **Fix:** update `@nxgt/material` and give the toast an `action` (a `{ label,
684
+ onClick }`, or a function that calls the `dismiss` it is given): the action
685
+ gives the focus back to where it was before the toast first, then runs. The
686
+ dialog keeps its control, and gives the focus back to that earlier control
687
+ when it closes. A workaround that blurs the button and opens the dialog on
688
+ the next frame can go. A button you render in a function action and that
689
+ opens a dialog without calling `dismiss` is not covered: call `dismiss()`
690
+ before opening the dialog.
691
+
645
692
  ### A `ConfirmationDialog` reopened with new content blocks clicks
646
693
 
647
694
  **When:** a `ConfirmationDialog` or a `ConfirmDialog` (or a `Dialog`,
@@ -70,8 +70,8 @@
70
70
  --primary: oklch(46% 0.1135 276.35);
71
71
  --primary-foreground: oklch(0.984 0.003 247.858);
72
72
  /* Brighter than the light one: it is read as text on the dark surfaces (6.5:1
73
- on --background, 5.8:1 on --card); a filled secondary surface tints it
74
- (dark:bg-secondary/70) to keep 5.2:1 under its near-white text. */
73
+ on --background, 5.8:1 on --card); a filled secondary surface mixes it toward --background
74
+ (the opaque 70 % mix) to keep 5.2:1 under its near-white text. */
75
75
  --secondary: oklch(0.66 0.1135 245.65);
76
76
  --secondary-foreground: oklch(0.984 0.003 247.858);
77
77
  --muted: oklch(0.279 0.041 260.031);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nxgt/material",
3
- "version": "2.9.0",
3
+ "version": "2.10.1",
4
4
  "license": "MIT",
5
5
  "bugs": {
6
6
  "email": "stevegires@gmail.com"
@@ -114,7 +114,7 @@
114
114
  "docs:previews": "vitest run --project previews"
115
115
  },
116
116
  "dependencies": {
117
- "@nxgt/material-core": "^0.6.0",
117
+ "@nxgt/material-core": "^0.7.0",
118
118
  "@base-ui/react": "^1.6.0",
119
119
  "@dnd-kit/core": "^6.3.1",
120
120
  "@dnd-kit/sortable": "^10.0.0",