@nxgt/material 3.64.0 → 3.66.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (126) hide show
  1. package/CHANGELOG.md +46 -0
  2. package/README.md +4 -1
  3. package/dist/{alert-dialog-RHm6WtQj.js → alert-dialog-BgQDxcYh.js} +1 -1
  4. package/dist/{async-slice-DmX59NyA.js → async-slice-BCZyWgGr.js} +48 -25
  5. package/dist/{background-qdnet2A5.js → background-D1gC4m2R.js} +1 -1
  6. package/dist/backgrounds.js +1 -1
  7. package/dist/{button-DfS_amfQ.js → button-2de_lrix.js} +1 -1
  8. package/dist/charts.js +818 -807
  9. package/dist/{chip-Cbndukko.js → chip-Cs0uEjpu.js} +2 -2
  10. package/dist/{code-editor-B0tN8Ha_.js → code-editor-BYhBAfcc.js} +403 -393
  11. package/dist/code-editor.js +5 -5
  12. package/dist/{code-language-items-andgHKrM.js → code-language-items-xhmbF6wA.js} +2 -2
  13. package/dist/components/components.css +2 -0
  14. package/dist/components/ui/display/chip/chip-soft.css +19 -5
  15. package/dist/components/ui/layout/app-shell/activity-backdrop.css +4 -3
  16. package/dist/components/ui/primitives/tabs/tabs-nav-forced.css +27 -0
  17. package/dist/components/ui/primitives/toggle-group/toggle-group-segmented.css +10 -2
  18. package/dist/components/ui/primitives/toggle-group/toggle-group.css +5 -1
  19. package/dist/{components-2kTVPsMg.js → components-DYiyCe6v.js} +16922 -16679
  20. package/dist/components.js +28 -28
  21. package/dist/{compose-refs-DZ0iIVF-.js → compose-refs-G4J4kaUA.js} +1 -1
  22. package/dist/{dialog-Bd7Hid2L.js → dialog-Co5oksU1.js} +4 -4
  23. package/dist/dnd.js +2 -2
  24. package/dist/{dropdown-menu-_SyVmSuy.js → dropdown-menu-DdzyvN76.js} +1 -1
  25. package/dist/editor.js +365 -365
  26. package/dist/{empty-state-D-2ZMXXJ.js → empty-state-CQ0CV0kA.js} +2 -2
  27. package/dist/{field-blur-DyOByjzw.js → field-blur-B2y-bNYi.js} +1 -1
  28. package/dist/{field-blur-context-DPe5_Nv5.js → field-blur-context-BZtwcPUV.js} +1 -1
  29. package/dist/{hooks-a7_exKWS.js → hooks-DjuYsY-j.js} +2 -2
  30. package/dist/hooks.js +2 -2
  31. package/dist/{hover-card-D_0smKBQ.js → hover-card-BeBVy6tB.js} +1 -1
  32. package/dist/i18n.js +3 -3
  33. package/dist/{icon-badge-CBCU3ySF.js → icon-badge-DbYsbzwZ.js} +3 -3
  34. package/dist/{icon-button-hKHsWTAt.js → icon-button-Co6ttdv1.js} +1 -1
  35. package/dist/lib/components/ui/actions/index.d.ts +1 -0
  36. package/dist/lib/components/ui/actions/link/link.d.ts +1 -19
  37. package/dist/lib/components/ui/actions/share-button/index.d.ts +3 -0
  38. package/dist/lib/components/ui/actions/share-button/share-button.d.ts +17 -0
  39. package/dist/lib/components/ui/actions/share-button/share-or-copy.d.ts +17 -0
  40. package/dist/lib/components/ui/collections/dnd/index.d.ts +1 -1
  41. package/dist/lib/components/ui/collections/filter/use-filter-field-config.d.ts +1 -0
  42. package/dist/lib/components/ui/collections/server-table/past-end.d.ts +3 -0
  43. package/dist/lib/components/ui/collections/server-table/types.d.ts +2 -2
  44. package/dist/lib/components/ui/collections/server-table/use-table-answer.d.ts +1 -1
  45. package/dist/lib/components/ui/display/enrolment-card/use-enrolment-card-labels.d.ts +1 -1
  46. package/dist/lib/components/ui/display/recovery-codes/use-recovery-codes-labels.d.ts +1 -1
  47. package/dist/lib/components/ui/display/recovery-codes-status/use-recovery-codes-status-labels.d.ts +1 -1
  48. package/dist/lib/components/ui/display/stat-card/partials/stat-card-link-parts.d.ts +7 -0
  49. package/dist/lib/components/ui/display/stat-card/stat-card.d.ts +6 -1
  50. package/dist/lib/components/ui/display/stat-card/types.d.ts +14 -0
  51. package/dist/lib/components/ui/feedback/step-up-dialog/use-step-up-labels.d.ts +1 -1
  52. package/dist/lib/components/ui/fields/contacts/placeholders.d.ts +1 -1
  53. package/dist/lib/components/ui/fields/number-field/number-control.d.ts +4 -1
  54. package/dist/lib/components/ui/fields/number-field/number-stepper.d.ts +5 -0
  55. package/dist/lib/components/ui/fields/verification-code/use-verification-labels.d.ts +1 -1
  56. package/dist/lib/components/ui/layout/app-shell/route-transition.d.ts +1 -1
  57. package/dist/lib/components/ui/primitives/link/link-component-provider.d.ts +1 -1
  58. package/dist/lib/components/ui/primitives/link/nav-current.d.ts +22 -0
  59. package/dist/lib/components/ui/primitives/link/router-link.d.ts +25 -0
  60. package/dist/lib/components/ui/primitives/tabs/index.d.ts +2 -0
  61. package/dist/lib/components/ui/primitives/tabs/internal.d.ts +2 -0
  62. package/dist/lib/components/ui/primitives/tabs/partials/tabs-nav-link.d.ts +22 -0
  63. package/dist/lib/components/ui/primitives/tabs/tab-param-url.d.ts +53 -0
  64. package/dist/lib/components/ui/primitives/tabs/tabs-nav.d.ts +22 -0
  65. package/dist/lib/components/ui/primitives/tabs/tabs-selectors.d.ts +8 -0
  66. package/dist/lib/components/ui/primitives/tabs/use-tab-param.d.ts +35 -0
  67. package/dist/lib/components/ui/primitives/tabs/use-tabs-overflow.d.ts +4 -1
  68. package/dist/lib/components/ui/primitives/toggle-group/index.d.ts +1 -0
  69. package/dist/lib/components/ui/primitives/toggle-group/segmented-nav-item.d.ts +20 -0
  70. package/dist/lib/components/ui/primitives/toggle-group/segmented-nav.d.ts +22 -0
  71. package/dist/lib/components/ui/primitives/toggle-group/toggle-group.d.ts +4 -3
  72. package/dist/lib/components/ui/widgets/code-editor/code-editor-field.d.ts +7 -6
  73. package/dist/lib/components/ui/widgets/code-editor/code-editor-types.d.ts +6 -0
  74. package/dist/lib/components/ui/widgets/code-editor/use-code-editor-instance.d.ts +12 -1
  75. package/dist/lib/components/ui/widgets/native-charts/core/reference-geometry.d.ts +16 -2
  76. package/dist/lib/i18n/resources/en/en.d.ts +6 -0
  77. package/dist/lib/i18n/resources/en/material.json.d.ts +7 -1
  78. package/dist/lib/i18n/resources/fr/fr.d.ts +6 -0
  79. package/dist/lib/i18n/resources/fr/material.json.d.ts +7 -1
  80. package/dist/lib/i18n/resources/resources.d.ts +12 -0
  81. package/dist/lib/i18n/translator.d.ts +1 -1
  82. package/dist/lib.js +31 -54
  83. package/dist/main.js +42 -42
  84. package/dist/map.js +8 -8
  85. package/dist/material.css +1 -1
  86. package/dist/pdf-reader.js +1 -1
  87. package/dist/print.js +1 -1
  88. package/dist/{public-D8JGp3PH.js → public-AXwv1h3v.js} +10 -10
  89. package/dist/{rich-code-block-0R3bidsM.js → rich-code-block-qSvkA5rI.js} +5 -5
  90. package/dist/{sortable-provider-B75v53sB.js → sortable-provider-DPk-RVEU.js} +3 -3
  91. package/dist/{spinner-CAnpF3RK.js → spinner-PdSk7zEs.js} +1 -1
  92. package/dist/theme-picker.js +2 -2
  93. package/dist/{theme-toggle-pQ5F602V.js → theme-toggle-CZQckLDd.js} +2 -2
  94. package/dist/{toggle-group-BkH23Jk4.js → toggle-group-DXXlqid2.js} +1 -1
  95. package/dist/{toolbar-items-_ezD5B0r.js → toolbar-items-BmNYNaRB.js} +3 -3
  96. package/dist/{translate-material-CvZK8_S6.js → translate-material-BlCQ6AW9.js} +1 -1
  97. package/dist/{translator-Caf-d96e.js → translator-ChpeKCO3.js} +10 -2
  98. package/dist/{typography-CEK19bj8.js → typography-C4JSRr2B.js} +1 -1
  99. package/dist/{use-chat-composer-Dpvi_-CR.js → use-chat-composer-OUa9akfM.js} +1725 -1719
  100. package/dist/{use-heading-spy-mmcyEGmm.js → use-heading-spy-K-HUp4o_.js} +4 -4
  101. package/dist/{use-material-translation-C_1cWRzW.js → use-material-translation-DkE9J5NE.js} +1 -1
  102. package/dist/{use-return-focus-1ZIchrBM.js → use-return-focus-KypnR7vv.js} +1 -1
  103. package/docs/components/README.md +3 -1
  104. package/docs/components/buttons-and-actions.md +30 -1
  105. package/docs/components/data-display.md +14 -1
  106. package/docs/components/data-table-filter-and-lists.md +16 -3
  107. package/docs/components/form-fields.md +9 -1
  108. package/docs/components/navigation-and-layout.md +9 -5
  109. package/docs/components/primitives.md +209 -0
  110. package/docs/components/rich-widgets.md +1 -0
  111. package/docs/guides/charts.md +1 -1
  112. package/docs/guides/code-editor.md +14 -0
  113. package/docs/guides/i18n.md +3 -1
  114. package/docs/previews/buttons-actions-sharebutton.webp +0 -0
  115. package/docs/previews/primitives-segmentednav.webp +0 -0
  116. package/docs/previews/primitives-tabsnav.webp +0 -0
  117. package/docs/roadmap.md +2 -1
  118. package/docs/troubleshooting.md +35 -7
  119. package/lib/components/components.css +2 -0
  120. package/lib/components/ui/display/chip/chip-soft.css +19 -5
  121. package/lib/components/ui/layout/app-shell/activity-backdrop.css +4 -3
  122. package/lib/components/ui/primitives/tabs/tabs-nav-forced.css +27 -0
  123. package/lib/components/ui/primitives/toggle-group/toggle-group-segmented.css +10 -2
  124. package/lib/components/ui/primitives/toggle-group/toggle-group.css +5 -1
  125. package/package.json +2 -2
  126. /package/dist/lib/{components/ui/collections/dnd → lib}/compose-refs.d.ts +0 -0
@@ -1,14 +1,14 @@
1
1
  import { t as e } from "./utils-BLfntITJ.js";
2
2
  import { a as t } from "./dist-lmHmz_bu.js";
3
- import { d as n, r, t as i, u as a } from "./toolbar-items-_ezD5B0r.js";
4
- import { t as o } from "./use-material-translation-C_1cWRzW.js";
5
- import { i as s, n as c, o as l } from "./code-language-items-andgHKrM.js";
6
- import { r as u, t as d } from "./field-blur-DyOByjzw.js";
3
+ import { d as n, r, t as i, u as a } from "./toolbar-items-BmNYNaRB.js";
4
+ import { t as o } from "./use-material-translation-DkE9J5NE.js";
5
+ import { i as s, n as c, o as l } from "./code-language-items-xhmbF6wA.js";
6
+ import { r as u, t as d } from "./field-blur-B2y-bNYi.js";
7
7
  import { t as f } from "./skeleton-DSdtr2qc.js";
8
8
  import { t as p } from "./live-status-BGPaN8r8.js";
9
9
  import { t as m } from "./use-mobile-BDro060N.js";
10
10
  import { t as h } from "./react-node-text-Crkpfpco.js";
11
- import { a as g, c as _, d as v, f as y, i as b, l as x, m as S, o as C, p as w, r as T, s as E, t as D, u as O } from "./code-editor-B0tN8Ha_.js";
11
+ import { a as g, c as _, d as v, f as y, i as b, l as x, m as S, o as C, p as w, r as T, s as E, t as D, u as O } from "./code-editor-BYhBAfcc.js";
12
12
  import { useEffect as k, useRef as A, useState as j } from "react";
13
13
  import { Fragment as M, jsx as N, jsxs as P } from "react/jsx-runtime";
14
14
  import { getCspNonce as F } from "@nxgt/material-core/csp-nonce";
@@ -1,5 +1,5 @@
1
- import { d as e, f as t } from "./dropdown-menu-_SyVmSuy.js";
2
- import { t as n } from "./use-material-translation-C_1cWRzW.js";
1
+ import { d as e, f as t } from "./dropdown-menu-DdzyvN76.js";
2
+ import { t as n } from "./use-material-translation-DkE9J5NE.js";
3
3
  import { t as r } from "./live-status-BGPaN8r8.js";
4
4
  import { useEffect as i, useRef as a, useState as o } from "react";
5
5
  import { jsx as s } from "react/jsx-runtime";
@@ -122,6 +122,8 @@
122
122
  @import "./ui/primitives/accordion/accordion.css";
123
123
  @import "./ui/primitives/accordion/accordion-surfaces.css";
124
124
  @import "./ui/primitives/collapsible/collapsible.css";
125
+ /* TabsNav in forced colours (the current link's mark). */
126
+ @import "./ui/primitives/tabs/tabs-nav-forced.css";
125
127
  /* ToggleGroup: shared rules, then one file per variant. */
126
128
  @import "./ui/primitives/toggle-group/toggle-group.css";
127
129
  @import "./ui/primitives/toggle-group/toggle-group-connected.css";
@@ -1,6 +1,10 @@
1
1
  /* Chip `tonal` and `filled`, "soft": no outline at all. A low tonal fill that reads as a
2
2
  * chip on any surface; selected = the library's primary tint, a hairline
3
- * ring in primary-text and a check (the ≥3:1 cue), the label unchanged. */
3
+ * ring in primary-text and a check (the ≥3:1 cue), the label unchanged. In
4
+ * dark the tint is mixed from --primary-text, the light end of the primary,
5
+ * 56 % at rest and 58 % on hover, and the label is white: in all 14 themes
6
+ * the fill is ≥3:1 over the surface and the label ≥4.5:1 (#2044); the deep
7
+ * --primary gave 1.3:1. */
4
8
  @layer components {
5
9
  .nxgt-chip[data-look="soft"] {
6
10
  --chip-bg: color-mix(in oklab, var(--foreground) 6.5%, var(--background));
@@ -9,8 +13,8 @@
9
13
  var(--foreground) 10%,
10
14
  var(--background)
11
15
  );
12
- --chip-on: color-mix(in oklab, var(--primary) 12%, var(--background));
13
- --chip-on-hover: color-mix(in oklab, var(--primary) 17%, var(--background));
16
+ --chip-on: color-mix(in oklab, var(--primary) 20%, var(--background));
17
+ --chip-on-hover: color-mix(in oklab, var(--primary) 25%, var(--background));
14
18
  --chip-on-ring: color-mix(
15
19
  in oklab,
16
20
  var(--primary-text) 75%,
@@ -25,8 +29,13 @@
25
29
  var(--foreground) 14%,
26
30
  var(--background)
27
31
  );
28
- --chip-on: color-mix(in oklab, var(--primary) 42%, var(--background));
29
- --chip-on-hover: color-mix(in oklab, var(--primary) 52%, var(--background));
32
+ --chip-on: color-mix(in oklab, var(--primary-text) 56%, var(--background));
33
+ --chip-on-hover: color-mix(
34
+ in oklab,
35
+ var(--primary-text) 58%,
36
+ var(--background)
37
+ );
38
+ --chip-on-text: white;
30
39
  --chip-on-ring: color-mix(
31
40
  in oklab,
32
41
  var(--primary-text) 80%,
@@ -43,6 +52,11 @@
43
52
  background: var(--chip-on);
44
53
  box-shadow: inset 0 0 0 1px var(--chip-on-ring);
45
54
  }
55
+ /* Dark: the label on the lighter fill is white (the foreground fell under
56
+ * 4.5:1 on some themes' hover). Light keeps the foreground. */
57
+ .nxgt-chip[data-look="soft"][data-selected] {
58
+ color: var(--chip-on-text, var(--foreground));
59
+ }
46
60
  .nxgt-chip[data-look="soft"][data-selected]:is(
47
61
  button:hover,
48
62
  :has(> button[data-slot="chip-body"]:hover)
@@ -149,9 +149,10 @@
149
149
  backdrop-filter: blur(var(--nxgt-backdrop-blur));
150
150
  }
151
151
 
152
- /* Tabs: the strip is a band, its top corners rounded. (The segmented look
153
- * has its own track.) */
154
- [data-slot="activity-layout"][data-backdrop] [data-slot="tabs-list"] {
152
+ /* Tabs and route tabs (`TabsNav`): the strip is a band, its top corners
153
+ * rounded. (The segmented look has its own track.) */
154
+ [data-slot="activity-layout"][data-backdrop]
155
+ :is([data-slot="tabs-list"], [data-slot="tabs-nav"]) {
155
156
  border-start-start-radius: var(--radius);
156
157
  border-start-end-radius: var(--radius);
157
158
  background: var(--nxgt-backdrop-fill-nav);
@@ -0,0 +1,27 @@
1
+ /* The indicator hides when no link is current (a `value` that matches none). */
2
+ [data-slot="tabs-nav"]:not(:has([data-state="active"]))
3
+ > [data-slot="tabs-indicator"] {
4
+ visibility: hidden;
5
+ }
6
+
7
+ /* TabsNav in forced colours: the current link keeps a mark. The indicator and
8
+ * the active link's ::after are backgrounds and borders, which the browser
9
+ * flattens; they are painted again with the system Highlight. React only
10
+ * (tabs-classes.ts is shared with Vue, so this is not a class there). */
11
+ @media (forced-colors: active) {
12
+ [data-slot="tabs-nav"][data-variant="underline"]
13
+ > [data-slot="tabs-indicator"],
14
+ [data-slot="tabs-nav"][data-variant="underline"]
15
+ [data-slot="tabs-trigger"][aria-current="page"]::after {
16
+ forced-color-adjust: none;
17
+ background: Highlight;
18
+ }
19
+ [data-slot="tabs-nav"][data-variant="segmented"]
20
+ > [data-slot="tabs-indicator"],
21
+ [data-slot="tabs-nav"][data-variant="segmented"]
22
+ [data-slot="tabs-trigger"][aria-current="page"]::after {
23
+ forced-color-adjust: none;
24
+ border: 2px solid Highlight;
25
+ background: Canvas;
26
+ }
27
+ }
@@ -61,7 +61,8 @@
61
61
  > .nxgt-toggle-group-item:hover:not(
62
62
  :disabled,
63
63
  [aria-checked="true"],
64
- [aria-pressed="true"]
64
+ [aria-pressed="true"],
65
+ [aria-current="page"]
65
66
  ) {
66
67
  background: var(--tg-seg-hover);
67
68
  }
@@ -78,7 +79,11 @@
78
79
  * every chosen state is primary). Forced colours: the pill is hidden and
79
80
  * the SelectedItem rule in toggle-group.css wins (its layer-less rule). */
80
81
  [data-variant="segmented"]
81
- > .nxgt-toggle-group-item:is([aria-checked="true"], [aria-pressed="true"]) {
82
+ > .nxgt-toggle-group-item:is(
83
+ [aria-checked="true"],
84
+ [aria-pressed="true"],
85
+ [aria-current="page"]
86
+ ) {
82
87
  color: var(--primary-text);
83
88
  }
84
89
 
@@ -135,6 +140,9 @@
135
140
  /* Multiple: a pill per pressed item; touching pills join. Also a single
136
141
  * group of 9 or more items, which has no sliding pill. */
137
142
  [data-variant="segmented"] > .nxgt-toggle-group-item[aria-pressed="true"],
143
+ /* SegmentedNav: a scrolling track has no sliding pill, the current link
144
+ * paints its own. */
145
+ [data-variant="segmented"] > .nxgt-toggle-group-item[aria-current="page"],
138
146
  [data-variant="segmented"]:has(> .nxgt-toggle-group-item:nth-of-type(9))
139
147
  > .nxgt-toggle-group-item[aria-checked="true"] {
140
148
  background: var(--tg-pill);
@@ -127,7 +127,11 @@
127
127
  .nxgt-toggle-group-item {
128
128
  border: 1px solid ButtonText;
129
129
  }
130
- .nxgt-toggle-group-item:is([aria-checked="true"], [aria-pressed="true"]) {
130
+ .nxgt-toggle-group-item:is(
131
+ [aria-checked="true"],
132
+ [aria-pressed="true"],
133
+ [aria-current="page"]
134
+ ) {
131
135
  forced-color-adjust: none;
132
136
  background: SelectedItem;
133
137
  color: SelectedItemText;