@nxgt/material 2.11.1 → 2.13.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +38 -0
- package/README.md +1 -1
- package/dist/{_Uint8Array-azThpjEP.js → _Uint8Array-QCcRMhXd.js} +1 -1
- package/dist/{_overRest-DMn4Dt71.js → _overRest-C21ZmKyH.js} +1 -1
- package/dist/{async-slice-DhZDjEtw.js → async-slice-TBZ6Taw2.js} +2 -2
- package/dist/{blockDiagram-BEXU5L5S-CDfO7C_5.js → blockDiagram-BEXU5L5S-CQaNV8rX.js} +2 -2
- package/dist/{chunk-3FUC2YCW-DX6GTgi6.js → chunk-3FUC2YCW-DmtO_Y9L.js} +2 -2
- package/dist/{chunk-7M6MHVWA-DTELAJpl.js → chunk-7M6MHVWA-BQ0cJz5u.js} +1 -1
- package/dist/{chunk-GNY47TPC-DHf7k1Oo.js → chunk-GNY47TPC-DiVMvIit.js} +4 -4
- package/dist/{chunk-NETBCI7D-CxCnFTsw.js → chunk-NETBCI7D-B5Av2fJk.js} +1 -1
- package/dist/{chunk-Z7XXMR3K-B7iHRZcb.js → chunk-Z7XXMR3K-D4uKosJW.js} +1 -1
- package/dist/{classDiagram-v2-NBCMYWYE-CSaKhTA1.js → classDiagram-v2-NBCMYWYE-BYktffst.js} +2 -2
- package/dist/{components-Z9FC6CY-.js → components-C-y3kTRm.js} +23668 -23488
- package/dist/components.js +5 -5
- package/dist/{dagre-6A5THRUB-Bk4P7elf.js → dagre-6A5THRUB-BvQAvoOX.js} +11 -11
- package/dist/{diagram-22UHCM2B-CcBy66NF.js → diagram-22UHCM2B-BYd0lEdS.js} +2 -2
- package/dist/{diagram-3UASUU5V-DauW2GeC.js → diagram-3UASUU5V-B3ndNq2p.js} +1 -1
- package/dist/dnd.js +1 -1
- package/dist/{elk-276RUBZZ-DB8zFfHZ.js → elk-276RUBZZ-BxXn1nvc.js} +3 -3
- package/dist/{erDiagram-OPXOYQCR-DO6SpxA4.js → erDiagram-OPXOYQCR-DjYy4h_r.js} +2 -2
- package/dist/{field-blur-DgfIJceK.js → field-blur-V8o79CDN.js} +1 -1
- package/dist/{flowDiagram-KWPJA3E3-DewDNLd0.js → flowDiagram-KWPJA3E3-BD7xvcMh.js} +3 -3
- package/dist/{ganttDiagram-FUAMR5RP-B845QbUZ.js → ganttDiagram-FUAMR5RP-BAuk7X6i.js} +1 -1
- package/dist/{graphlib-DLjE3QPd.js → graphlib-CbcZi5bx.js} +6 -6
- package/dist/hooks.js +2 -2
- package/dist/{i18n-provider-CQL7fqLy.js → i18n-provider-D5hkauu6.js} +1 -1
- package/dist/i18n.js +6 -6
- package/dist/{isArrayLikeObject-CO-5KAzG.js → isArrayLikeObject-COiPdhFP.js} +3 -3
- package/dist/{isEmpty-Bl1drJE7.js → isEmpty-B7UlCLih.js} +3 -3
- package/dist/{journeyDiagram-ZHPQQLJL-DVX8uCK8.js → journeyDiagram-ZHPQQLJL-h2S56BMC.js} +1 -1
- package/dist/lib/components/ui/fields/search-field/index.d.ts +2 -2
- package/dist/lib/components/ui/selection/autocomplete/autocomplete.d.ts +2 -34
- package/dist/lib/components/ui/selection/autocomplete/partials/autocomplete-announcer.d.ts +10 -0
- package/dist/lib/components/ui/selection/autocomplete/partials/autocomplete-chips.d.ts +8 -3
- package/dist/lib/components/ui/selection/autocomplete/partials/autocomplete-list-status.d.ts +13 -0
- package/dist/lib/components/ui/selection/autocomplete/partials/autocomplete-popup.d.ts +26 -0
- package/dist/lib/components/ui/selection/autocomplete/types.d.ts +72 -0
- package/dist/lib/components/ui/selection/autocomplete/use-autocomplete-filter.d.ts +13 -0
- package/dist/lib/components/ui/selection/autocomplete/use-autocomplete-handlers.d.ts +17 -0
- package/dist/lib/components/ui/selection/autocomplete/use-autocomplete-search.d.ts +8 -0
- package/dist/lib/components/ui/selection/autocomplete/use-autocomplete-status.d.ts +28 -0
- package/dist/lib/components/ui/selection/autocomplete/use-autocomplete-values.d.ts +27 -0
- package/dist/lib/components/ui/selection/autocomplete/use-autocomplete.d.ts +29 -0
- package/dist/lib/components/ui/selection/radio-group/radio-group.d.ts +7 -4
- package/dist/lib/components/ui/selection/select-chip-field/select-chip-field.d.ts +8 -3
- package/dist/lib/i18n/resources/en/en.d.ts +4 -0
- package/dist/lib/i18n/resources/en/material.json.d.ts +5 -1
- package/dist/lib/i18n/resources/fr/fr.d.ts +4 -0
- package/dist/lib/i18n/resources/fr/material.json.d.ts +5 -1
- package/dist/lib/i18n/resources/resources.d.ts +8 -0
- package/dist/lib/i18n/translator.d.ts +1 -1
- package/dist/lib.js +3 -3
- package/dist/main.js +11 -11
- package/dist/map.js +2 -2
- package/dist/{merge-CwwtONfp.js → merge-KEf_u3Zy.js} +4 -4
- package/dist/{mermaid.core-0q3uq37S.js → mermaid.core-BWF4Tq7X.js} +21 -21
- package/dist/{mindmap-definition-NLK3R4M7-BU79I9UY.js → mindmap-definition-NLK3R4M7-Q-4J7KMu.js} +2 -2
- package/dist/{pieDiagram-5QR66LMP-DGVDzpXW.js → pieDiagram-5QR66LMP-BIxQ164y.js} +1 -1
- package/dist/print.js +2 -2
- package/dist/{quadrantDiagram-O4NWA36T-CAgci1ex.js → quadrantDiagram-O4NWA36T-BlI0otnv.js} +1 -1
- package/dist/{requirementDiagram-PLB6GJNP-CDOjIVlE.js → requirementDiagram-PLB6GJNP-CuVPUh0S.js} +2 -2
- package/dist/{sankeyDiagram-IPEJSGJF-DCbUg-Vu.js → sankeyDiagram-IPEJSGJF-Cke5i_9w.js} +1 -1
- package/dist/{sortable-provider-D4S-mqLP.js → sortable-provider-C8mr3XP2.js} +1 -1
- package/dist/{stateDiagram-v2-GCMORJYK-C3WWpb0o.js → stateDiagram-v2-GCMORJYK-CT53U-pL.js} +2 -2
- package/dist/{stored-language-BW32owje.js → stored-language-g121Yv0w.js} +10 -2
- package/dist/{swimlanes-2SLR337P-CtayEq5L.js → swimlanes-2SLR337P-BwEtm09G.js} +3 -3
- package/dist/{swimlanesDiagram-TC7HE7FX-yV5ARDns.js → swimlanesDiagram-TC7HE7FX-36JXV6X2.js} +3 -3
- package/dist/{timeline-definition-EJHVYXUP-BKuUPBMr.js → timeline-definition-EJHVYXUP-BeX-S1oM.js} +1 -1
- package/dist/{translate-material-ZEzF-LKH.js → translate-material-D3Hp_AI5.js} +2 -2
- package/dist/{translator-BfqVlNGW.js → translator-BMFC0lBV.js} +1 -1
- package/dist/{use-heading-spy-DvZVu15k.js → use-heading-spy--7KHY3lw.js} +2 -2
- package/dist/{use-material-translation-B2GUtxUY.js → use-material-translation-BGFp1yXp.js} +2 -2
- package/dist/{usecaseDiagram-POWQR4AR-ClgRhO0q.js → usecaseDiagram-POWQR4AR-Dfd0rXLr.js} +2 -2
- package/dist/{xychartDiagram-PMCCYNJV-BVKAUhvv.js → xychartDiagram-PMCCYNJV-D0UPPflL.js} +1 -1
- package/docs/components/selection-and-choice.md +76 -4
- package/docs/roadmap.md +4 -0
- package/docs/troubleshooting.md +98 -0
- package/package.json +7 -2
- package/dist/lib/components/ui/fields/search-field/debounce.d.ts +0 -5
|
@@ -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-
|
|
11
|
+
import "./chunk-Z7XXMR3K-D4uKosJW.js";
|
|
12
12
|
import "./chunk-UA2S7LBM-ChuksCDg.js";
|
|
13
|
-
import { n as ge } from "./chunk-GNY47TPC-
|
|
13
|
+
import { n as ge } from "./chunk-GNY47TPC-DiVMvIit.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-
|
|
305
|
+
let { diagram: e } = await import("./flowDiagram-KWPJA3E3-BD7xvcMh.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-
|
|
315
|
+
let { diagram: e } = await import("./diagram-22UHCM2B-BYd0lEdS.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-
|
|
325
|
+
let { diagram: e } = await import("./swimlanesDiagram-TC7HE7FX-36JXV6X2.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-
|
|
335
|
+
let { diagram: e } = await import("./erDiagram-OPXOYQCR-DjYy4h_r.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-
|
|
355
|
+
let { diagram: e } = await import("./ganttDiagram-FUAMR5RP-BAuk7X6i.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-
|
|
375
|
+
let { diagram: e } = await import("./pieDiagram-5QR66LMP-BIxQ164y.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-
|
|
385
|
+
let { diagram: e } = await import("./quadrantDiagram-O4NWA36T-BlI0otnv.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-
|
|
395
|
+
let { diagram: e } = await import("./xychartDiagram-PMCCYNJV-D0UPPflL.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-
|
|
405
|
+
let { diagram: e } = await import("./requirementDiagram-PLB6GJNP-CuVPUh0S.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-
|
|
425
|
+
let { diagram: e } = await import("./classDiagram-v2-NBCMYWYE-BYktffst.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-
|
|
435
|
+
let { diagram: e } = await import("./stateDiagram-v2-GCMORJYK-CT53U-pL.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-
|
|
445
|
+
let { diagram: e } = await import("./journeyDiagram-ZHPQQLJL-h2S56BMC.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-
|
|
463
|
+
let { diagram: e } = await import("./flowDiagram-KWPJA3E3-BD7xvcMh.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-
|
|
473
|
+
let { diagram: e } = await import("./timeline-definition-EJHVYXUP-BeX-S1oM.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-
|
|
483
|
+
let { diagram: e } = await import("./mindmap-definition-NLK3R4M7-Q-4J7KMu.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-
|
|
503
|
+
let { diagram: e } = await import("./sankeyDiagram-IPEJSGJF-Cke5i_9w.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-
|
|
533
|
+
let { diagram: e } = await import("./blockDiagram-BEXU5L5S-CQaNV8rX.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-
|
|
593
|
+
let { diagram: e } = await import("./diagram-3UASUU5V-B3ndNq2p.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-
|
|
603
|
+
let { diagram: e } = await import("./usecaseDiagram-POWQR4AR-Dfd0rXLr.js");
|
|
604
604
|
return {
|
|
605
605
|
id: nn,
|
|
606
606
|
diagram: e
|
package/dist/{mindmap-definition-NLK3R4M7-BU79I9UY.js → mindmap-definition-NLK3R4M7-Q-4J7KMu.js}
RENAMED
|
@@ -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-
|
|
10
|
+
import "./chunk-Z7XXMR3K-D4uKosJW.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-
|
|
14
|
+
import { r as f, t as p } from "./chunk-GNY47TPC-DiVMvIit.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-
|
|
1
|
+
import { ct as e, ot as t } from "./components-C-y3kTRm.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";
|
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-D5hkauu6.js";
|
|
2
|
+
import { t } from "./translate-material-D3Hp_AI5.js";
|
|
3
3
|
import { jsx as n, jsxs as r } from "react/jsx-runtime";
|
|
4
4
|
import { Children as i, createContext as a, isValidElement as o, useCallback as s, useContext as c, useEffect as l, useMemo as u, useState as d } from "react";
|
|
5
5
|
import { OBJECT_URL_TTL_MS as f, downloadPdfFile as p } from "@nxgt/material-core/pdf-download";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { rt as e } from "./components-
|
|
1
|
+
import { rt as e } from "./components-C-y3kTRm.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";
|
package/dist/{requirementDiagram-PLB6GJNP-CDOjIVlE.js → requirementDiagram-PLB6GJNP-CuVPUh0S.js}
RENAMED
|
@@ -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-
|
|
11
|
+
import "./chunk-Z7XXMR3K-D4uKosJW.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-
|
|
15
|
+
import { r as y, t as b } from "./chunk-GNY47TPC-DiVMvIit.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,6 +1,6 @@
|
|
|
1
1
|
import { t as e } from "./utils-DC8bw9A_.js";
|
|
2
2
|
import { pt as t, t as n } from "./icon-button-B1nN3J6B.js";
|
|
3
|
-
import { t as r } from "./use-material-translation-
|
|
3
|
+
import { t as r } from "./use-material-translation-BGFp1yXp.js";
|
|
4
4
|
import { GripVertical as i } from "lucide-react";
|
|
5
5
|
import { jsx as a } from "react/jsx-runtime";
|
|
6
6
|
import o, { cloneElement as s, createContext as c, forwardRef as l, memo as u, useCallback as d, useContext as f, useEffect as p, useLayoutEffect as m, useMemo as h, useReducer as g, useRef as _, useState as v } from "react";
|
|
@@ -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-
|
|
11
|
+
import "./chunk-Z7XXMR3K-D4uKosJW.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-
|
|
16
|
+
import { r as S, t as C } from "./chunk-GNY47TPC-DiVMvIit.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) {
|
|
@@ -754,7 +754,11 @@ var e = {
|
|
|
754
754
|
},
|
|
755
755
|
autocomplete: {
|
|
756
756
|
empty: "No option found.",
|
|
757
|
-
add: "Add \"{query}\""
|
|
757
|
+
add: "Add \"{query}\"",
|
|
758
|
+
loading: "Loading…",
|
|
759
|
+
results: "{count, plural, =0 {No results} one {# result} other {# results}}",
|
|
760
|
+
"search-error": "The search failed. Try again.",
|
|
761
|
+
"min-query": "Type at least {count, plural, one {# character} other {# characters}} to search."
|
|
758
762
|
},
|
|
759
763
|
avatar: {
|
|
760
764
|
online: "Online",
|
|
@@ -1961,7 +1965,11 @@ var e = {
|
|
|
1961
1965
|
},
|
|
1962
1966
|
autocomplete: {
|
|
1963
1967
|
empty: "Aucune option.",
|
|
1964
|
-
add: "Ajouter « {query} »"
|
|
1968
|
+
add: "Ajouter « {query} »",
|
|
1969
|
+
loading: "Chargement…",
|
|
1970
|
+
results: "{count, plural, =0 {Aucun résultat} one {# résultat} other {# résultats}}",
|
|
1971
|
+
"search-error": "La recherche a échoué. Réessayez.",
|
|
1972
|
+
"min-query": "Saisissez au moins {count, plural, one {# caractère} other {# caractères}} pour rechercher."
|
|
1965
1973
|
},
|
|
1966
1974
|
avatar: {
|
|
1967
1975
|
online: "En ligne",
|
|
@@ -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-
|
|
10
|
+
import "./chunk-Z7XXMR3K-D4uKosJW.js";
|
|
11
11
|
import "./chunk-UA2S7LBM-ChuksCDg.js";
|
|
12
|
-
import { r as n } from "./chunk-3FUC2YCW-
|
|
13
|
-
import { t as r } from "./chunk-NETBCI7D-
|
|
12
|
+
import { r as n } from "./chunk-3FUC2YCW-DmtO_Y9L.js";
|
|
13
|
+
import { t as r } from "./chunk-NETBCI7D-B5Av2fJk.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;
|
package/dist/{swimlanesDiagram-TC7HE7FX-yV5ARDns.js → swimlanesDiagram-TC7HE7FX-36JXV6X2.js}
RENAMED
|
@@ -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-
|
|
10
|
+
import "./chunk-Z7XXMR3K-D4uKosJW.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-
|
|
15
|
+
import "./chunk-GNY47TPC-DiVMvIit.js";
|
|
16
16
|
import "./chunk-LNGE3PJU-DJjGTS7O.js";
|
|
17
|
-
import { r as t, t as n } from "./chunk-7M6MHVWA-
|
|
17
|
+
import { r as t, t as n } from "./chunk-7M6MHVWA-BQ0cJz5u.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 {
|
package/dist/{timeline-definition-EJHVYXUP-BKuUPBMr.js → timeline-definition-EJHVYXUP-BeX-S1oM.js}
RENAMED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ct as e } from "./components-
|
|
1
|
+
import { ct as e } from "./components-C-y3kTRm.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";
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import "./stored-language-
|
|
2
|
-
import { E as e, r as t } from "./translator-
|
|
1
|
+
import "./stored-language-g121Yv0w.js";
|
|
2
|
+
import { E as e, r as t } from "./translator-BMFC0lBV.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,4 +1,4 @@
|
|
|
1
|
-
import { a as e, i as t, o as n, t as r } from "./stored-language-
|
|
1
|
+
import { a as e, i as t, o as n, t as r } from "./stored-language-g121Yv0w.js";
|
|
2
2
|
//#region ../../node_modules/@formatjs/fast-memoize/index.js
|
|
3
3
|
function i(e, t) {
|
|
4
4
|
let n = t && t.cache ? t.cache : ne, r = t && t.serializer ? t.serializer : ee;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { n as e } from "./stored-language-
|
|
2
|
-
import { r as t } from "./i18n-provider-
|
|
1
|
+
import { n as e } from "./stored-language-g121Yv0w.js";
|
|
2
|
+
import { r as t } from "./i18n-provider-D5hkauu6.js";
|
|
3
3
|
import { _ as n, g as r, h as i, n as a, v as o, y as s } from "./number.utils-BiBN2hWJ.js";
|
|
4
4
|
import { useCallback as c, useEffect as l, useMemo as u, useSyncExternalStore as d } from "react";
|
|
5
5
|
//#region lib/hooks/resolve-theme.ts
|
|
@@ -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-D5hkauu6.js";
|
|
2
|
+
import { t } from "./translate-material-D3Hp_AI5.js";
|
|
3
3
|
import { useCallback as n } from "react";
|
|
4
4
|
//#region lib/i18n/use-material-translation.ts
|
|
5
5
|
function r() {
|
|
@@ -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-
|
|
11
|
+
import "./chunk-Z7XXMR3K-D4uKosJW.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-
|
|
15
|
+
import { r as ne, t as re } from "./chunk-GNY47TPC-DiVMvIit.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-
|
|
1
|
+
import { at as e, rt as t, st as n } from "./components-C-y3kTRm.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";
|
|
@@ -250,7 +250,7 @@ export function Framework() {
|
|
|
250
250
|
|
|
251
251
|

|
|
252
252
|
|
|
253
|
-
Single or multiple (chips) autocomplete with free-solo values and a
|
|
253
|
+
Single or multiple (chips) autocomplete with free-solo values, accent-insensitive matching and a debounced server search.
|
|
254
254
|
|
|
255
255
|
```tsx
|
|
256
256
|
import { Autocomplete } from '@nxgt/material/components';
|
|
@@ -286,15 +286,79 @@ Parts: `Autocomplete`, `AutocompleteChips` (the chips row it uses in
|
|
|
286
286
|
| `mode` | `'single' \| 'multiple'` | — | required; decides the `value` type |
|
|
287
287
|
| `value` | `string` / `string[]` | — | required, per `mode` |
|
|
288
288
|
| `onValueChange` | `(value?: string \| null) => void` / `(value?: string[] \| null) => void` | — | per `mode` |
|
|
289
|
-
| `options` | `T[]` (`{ value, label }` by default) |
|
|
289
|
+
| `options` | `T[]` (`{ value, label }` by default) | `[]` | the items; with `onSearch`, the list before a search and the selected options' labels |
|
|
290
290
|
| `getOptionValue`, `getOptionLabel` | `(option: T) => string` | `.value`, `.label` | for other option shapes |
|
|
291
|
+
| `filter` | `'accent-insensitive' \| 'none' \| (option: T, query: string) => boolean` | `'accent-insensitive'`, `'none'` with `onSearch` | how the list is filtered as the user types: label or value, ignoring case and accents (`e` finds "École") in the provider's language; `'none'` shows `options` as given; a function gets the trimmed query, never an empty one |
|
|
291
292
|
| `freeSolo` | `boolean` | — | accept a typed value that is not an option |
|
|
292
|
-
| `
|
|
293
|
+
| `onSearch` | `(query: string, { signal }: { signal: AbortSignal }) => Promise<T[]>` | — | server search: called once typing pauses; its results become the list. Each search aborts the previous one, and a response that lands after a newer one is dropped |
|
|
294
|
+
| `onSearchError` | `(error: unknown) => void` | — | `onSearch` rejected (an abort is not a rejection) |
|
|
295
|
+
| `minQueryLength` | `number` | `1` | `onSearch` waits for this many characters; below it the list says "Type at least N characters to search." |
|
|
296
|
+
| `debounceMs` | `number` | `250` | the pause before `onSearch` and `onQueryChange` run |
|
|
297
|
+
| `onQueryChange` | `(query: string) => void` | — | the query once typing pauses — fetch `options` yourself here |
|
|
298
|
+
| `loading` | `boolean` | — | with `onQueryChange`: "Loading…" in the list, `aria-busy` on the listbox, announced |
|
|
299
|
+
| `searchError` | `ReactNode` | — | with `onQueryChange`: shown and announced in place of the options |
|
|
300
|
+
| `empty` | `ReactNode` | "No option found." | text when nothing matches |
|
|
293
301
|
| `actions` | `ReactNode \| ((query: string) => ReactNode)` | — | buttons at the end of the list ("Create …") |
|
|
294
302
|
| `required` | `boolean` | — | the asterisk, and `aria-required` on the `combobox` input, which the label names |
|
|
295
303
|
| `disabled` | `boolean` | — | disables the input and each chip's remove button |
|
|
296
304
|
| `error` | `boolean` | — | error border on the chips box, error helper text, `aria-invalid` on the input |
|
|
297
305
|
|
|
306
|
+
### Searching a server
|
|
307
|
+
|
|
308
|
+
`onSearch` takes the query and an `AbortSignal`; hand the signal to `fetch`
|
|
309
|
+
so a search the user typed past is cancelled. The field shows "Loading…",
|
|
310
|
+
keeps the last results until the new ones arrive, and never lets an older
|
|
311
|
+
response overwrite a newer one, even from an API that ignores the signal.
|
|
312
|
+
Pass the selected option in `options` so its chip has a label before any
|
|
313
|
+
search; a picked option keeps its chip once a new search no longer returns
|
|
314
|
+
it.
|
|
315
|
+
|
|
316
|
+
```tsx
|
|
317
|
+
import { Autocomplete } from '@nxgt/material/components';
|
|
318
|
+
import { useState } from 'react';
|
|
319
|
+
|
|
320
|
+
type Person = { value: string; label: string };
|
|
321
|
+
|
|
322
|
+
async function searchPeople(query: string, { signal }: { signal: AbortSignal }) {
|
|
323
|
+
const response = await fetch(`/api/people?q=${encodeURIComponent(query)}`, { signal });
|
|
324
|
+
if (!response.ok) throw new Error(`Search failed: ${response.status}`);
|
|
325
|
+
return (await response.json()) as Person[];
|
|
326
|
+
}
|
|
327
|
+
|
|
328
|
+
export function PersonField() {
|
|
329
|
+
const [value, setValue] = useState('');
|
|
330
|
+
return (
|
|
331
|
+
<Autocomplete<Person>
|
|
332
|
+
mode="single"
|
|
333
|
+
label="Person"
|
|
334
|
+
placeholder="Search by name"
|
|
335
|
+
value={value}
|
|
336
|
+
onValueChange={(next) => setValue(next ?? '')}
|
|
337
|
+
onSearch={searchPeople}
|
|
338
|
+
minQueryLength={2}
|
|
339
|
+
debounceMs={300}
|
|
340
|
+
/>
|
|
341
|
+
);
|
|
342
|
+
}
|
|
343
|
+
```
|
|
344
|
+
|
|
345
|
+
With `onSearch`, `minQueryLength` defaults to 1, `debounceMs` to 250 and `filter` to `'none'`
|
|
346
|
+
(the server filters). A rejected search shows and announces "The search
|
|
347
|
+
failed. Try again." by itself and hands the error to `onSearchError`; an abort is
|
|
348
|
+
never an error. Type your search with `AutocompleteSearch<T>` (its second
|
|
349
|
+
argument is `AutocompleteSearchContext`, `{ signal }`); `AutocompleteFilter<T>`
|
|
350
|
+
and `AutocompleteSearchProps<T>` are exported from `@nxgt/material/components` too.
|
|
351
|
+
|
|
352
|
+
To fetch it yourself instead, keep `options` and `loading` in your state,
|
|
353
|
+
update them from `onQueryChange`, and pass `filter="none"` when the server
|
|
354
|
+
already filtered.
|
|
355
|
+
|
|
356
|
+
**Accessibility.** A polite live region (`role="status"`) says "Loading…",
|
|
357
|
+
then "3 results" or "No results" (or the failure) once the search answers or
|
|
358
|
+
typing pauses — never on every keystroke. The listbox is `aria-busy` while
|
|
359
|
+
loading. The strings are `material.autocomplete.loading`, `.results`,
|
|
360
|
+
`.search-error` and `.min-query`. The keyboard works as before.
|
|
361
|
+
|
|
298
362
|
**Emits:** `string | null` in `single` mode, `string[]` in `multiple`.
|
|
299
363
|
**Form wrapper:** `AutocompleteFormField` — `control` and `name`, see
|
|
300
364
|
[forms](../guides/forms.md#the-pair) and [what each field emits](../guides/forms.md#what-each-field-emits).
|
|
@@ -409,7 +473,7 @@ full naming alignment is planned for 3.0.
|
|
|
409
473
|
|
|
410
474
|
| Prop | Type | Default | Effect |
|
|
411
475
|
| --- | --- | --- | --- |
|
|
412
|
-
| `options` | `{ value: string; label: ReactNode }[]` | — | the radios |
|
|
476
|
+
| `options` | `{ value: string; label: ReactNode; disabled?: boolean }[]` | — | the radios; `disabled` on an option disables only it |
|
|
413
477
|
| `value` / `defaultValue` | `string` | — | Radix radio group state |
|
|
414
478
|
| `onValueChange` | `(value: string) => void` | — | |
|
|
415
479
|
| `orientation` | `'vertical' \| 'horizontal'` | `'horizontal'` | layout |
|
|
@@ -422,6 +486,12 @@ before the first radio, and `error` sets `aria-invalid` on it (a `radiogroup`
|
|
|
422
486
|
may carry it; your own `aria-invalid` wins). Your own `aria-label` /
|
|
423
487
|
`aria-labelledby` wins, and your `aria-describedby` ids come first.
|
|
424
488
|
|
|
489
|
+
An option's type is exported as `RadioGroupOption`. A disabled option (`disabled: true` on it) is announced as disabled, skipped by
|
|
490
|
+
the arrow keys (as the Radix primitives do) and drawn with a muted label and a
|
|
491
|
+
faded radio; the label keeps 4.5:1 contrast in both themes. The group's own
|
|
492
|
+
`disabled` disables every option. An option disabled while it is the current
|
|
493
|
+
value stays checked.
|
|
494
|
+
|
|
425
495
|
**Emits:** `string`.
|
|
426
496
|
**Form wrapper:** `RadioGroupFormField` — `control` and `name`, see
|
|
427
497
|
[forms](../guides/forms.md#the-pair) and [what each field emits](../guides/forms.md#what-each-field-emits).
|
|
@@ -514,6 +584,8 @@ equality.
|
|
|
514
584
|
|
|
515
585
|
Single or multiple choice shown as toggleable chips.
|
|
516
586
|
|
|
587
|
+
The `ref` reaches the chosen chip, else the first (a `Ref<HTMLButtonElement>`), so a form library's `setFocus` and a plain `ref.current?.focus()` work.
|
|
588
|
+
|
|
517
589
|
```tsx
|
|
518
590
|
import { SelectChipField } from '@nxgt/material/components';
|
|
519
591
|
import { useState } from 'react';
|
package/docs/roadmap.md
CHANGED
|
@@ -130,6 +130,10 @@ version they shipped in, and planned entries may name the major they target.
|
|
|
130
130
|
|
|
131
131
|
## Shipped
|
|
132
132
|
|
|
133
|
+
- **An `Autocomplete` that searches a server** — `onSearch`, `debounceMs`, `minQueryLength`, `filter`, `loading`, `searchError`: a
|
|
134
|
+
debounced search with an `AbortSignal` whose stale responses are dropped,
|
|
135
|
+
a polite "Loading…" / "N results" announcement, and local matching that
|
|
136
|
+
ignores accents ("e" finds "École"). 2.12.0.
|
|
133
137
|
- **Toast actions that work everywhere** — `toasts.success(message, { action })`
|
|
134
138
|
and every other preset take sonner's own call shape and keep their action,
|
|
135
139
|
and a dialog a toast's action opens keeps the focus, then gives it back to
|