@nxgt/material 3.80.0 → 3.81.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 (147) hide show
  1. package/CHANGELOG.md +46 -0
  2. package/README.md +3 -2
  3. package/dist/{alert-dialog-DgHtXZuB.js → alert-dialog-DOZ0SfQs.js} +1 -1
  4. package/dist/{async-slice-YBQsGtQT.js → async-slice-BfVokA46.js} +1 -1
  5. package/dist/{button-_vm-xSBU.js → button-CSKUtMI3.js} +2 -2
  6. package/dist/{calculator-CTd_S23A.js → calculator-Cv00UQgR.js} +10 -10
  7. package/dist/calculator-field.js +6 -6
  8. package/dist/{calculator-segment-OI1BT3bA.js → calculator-segment-CwnC2cV_.js} +1 -1
  9. package/dist/calculator.js +1 -1
  10. package/dist/charts.js +3 -3
  11. package/dist/{chip-DumcVzUO.js → chip-BGn0V6Pt.js} +3 -3
  12. package/dist/{code-editor-CiwgfSOK.js → code-editor-B25-mWhb.js} +4 -4
  13. package/dist/code-editor.js +4 -4
  14. package/dist/{code-language-items-Dip0xnmc.js → code-language-items-oRjtO3qV.js} +2 -2
  15. package/dist/components/base-content.css +11 -0
  16. package/dist/components/components.css +2 -0
  17. package/dist/components/ui/collections/data-table/data-table-items-tiles.css +27 -1
  18. package/dist/components/ui/display/tube-cap/tube-cap.css +87 -0
  19. package/dist/{components-CJFHhkZv.js → components-B00kDHzJ.js} +19168 -18815
  20. package/dist/components.js +37 -37
  21. package/dist/{conversion-variant-CqrPwPjC.js → conversion-variant-wZd-G6xR.js} +3 -3
  22. package/dist/{currency-field-CMFvctye.js → currency-field-DizBTAat.js} +4 -4
  23. package/dist/{date.utils-DUvqcjan.js → date.utils-JTEIo3mM.js} +98 -98
  24. package/dist/{dialog-B0iU3fmh.js → dialog-B-3s-oXt.js} +3 -3
  25. package/dist/dnd.js +1 -1
  26. package/dist/{dropdown-menu-CPOgcajv.js → dropdown-menu-C6rcYGB9.js} +1 -1
  27. package/dist/editor.js +19 -19
  28. package/dist/{empty-state-D3Jggupu.js → empty-state-CSkghnD9.js} +1 -1
  29. package/dist/{financial-variant-BdyfYhnp.js → financial-variant-igpGRbGw.js} +5 -5
  30. package/dist/{hooks-Z7KKbv4G.js → hooks-DvIsom2p.js} +2 -2
  31. package/dist/hooks.js +9 -8
  32. package/dist/{hover-card-CFGIX6kg.js → hover-card-DuaVVKMb.js} +1 -1
  33. package/dist/i18n.js +3 -3
  34. package/dist/{icon-badge-kxGWUvcO.js → icon-badge-3ThP6EOl.js} +1 -1
  35. package/dist/{icon-button-BamxMwZs.js → icon-button-4PKlaI1g.js} +2 -2
  36. package/dist/lib/components/ui/actions/button/button-tones.d.ts +17 -16
  37. package/dist/lib/components/ui/collections/day-grouped-list/day-grouped-list.d.ts +6 -1
  38. package/dist/lib/components/ui/collections/filter/use-filter-field-config.d.ts +2 -0
  39. package/dist/lib/components/ui/collections/server-table/types-states.d.ts +5 -1
  40. package/dist/lib/components/ui/display/index.d.ts +1 -0
  41. package/dist/lib/components/ui/display/tube-cap/index.d.ts +2 -0
  42. package/dist/lib/components/ui/display/tube-cap/tube-cap.d.ts +27 -0
  43. package/dist/lib/components/ui/display/tube-cap/tube-cap.kinds.d.ts +7 -0
  44. package/dist/lib/components/ui/fields/contacts/placeholders.d.ts +1 -1
  45. package/dist/lib/components/ui/fields/repeatable-group/partials/repeatable-group-row.d.ts +3 -1
  46. package/dist/lib/components/ui/fields/repeatable-group/partials/repeatable-group-rows.d.ts +2 -1
  47. package/dist/lib/components/ui/fields/repeatable-group/repeatable-group.d.ts +1 -1
  48. package/dist/lib/components/ui/fields/repeatable-group/types.d.ts +7 -0
  49. package/dist/lib/components/ui/media/galleries/gallery.d.ts +1 -1
  50. package/dist/lib/components/ui/media/galleries/lightbox-gallery.d.ts +1 -1
  51. package/dist/lib/components/ui/media/galleries/mini-gallery.d.ts +1 -1
  52. package/dist/lib/components/ui/overlays/dialog/dialog-parts.d.ts +1 -1
  53. package/dist/lib/components/ui/overlays/sheet/sheet-parts.d.ts +5 -0
  54. package/dist/lib/components/ui/selection/choice-card-group/choice-card-balance.d.ts +4 -0
  55. package/dist/lib/components/ui/selection/choice-card-group/choice-card-group.d.ts +3 -1
  56. package/dist/lib/components/ui/selection/choice-card-group/choice-card-group.types.d.ts +7 -0
  57. package/dist/lib/components/ui/selection/sortable-list/partials/sortable-list-body.d.ts +5 -1
  58. package/dist/lib/components/ui/selection/sortable-list/partials/sortable-list-row-parts.d.ts +2 -1
  59. package/dist/lib/components/ui/selection/sortable-list/partials/sortable-list-row-props.d.ts +8 -5
  60. package/dist/lib/components/ui/selection/sortable-list/partials/use-owed-focus.d.ts +10 -0
  61. package/dist/lib/components/ui/selection/sortable-list/sortable-list-context.d.ts +2 -0
  62. package/dist/lib/components/ui/selection/sortable-list/sortable-list.keyboard.d.ts +1 -1
  63. package/dist/lib/components/ui/widgets/event-calendar/event-calendar-context.d.ts +3 -0
  64. package/dist/lib/components/ui/widgets/event-calendar/event-calendar-shell.d.ts +15 -0
  65. package/dist/lib/components/ui/widgets/event-calendar/event-calendar-template.d.ts +9 -0
  66. package/dist/lib/components/ui/widgets/event-calendar/event-calendar.d.ts +7 -3
  67. package/dist/lib/components/ui/widgets/event-calendar/event-calendar.template.d.ts +41 -0
  68. package/dist/lib/components/ui/widgets/event-calendar/index.d.ts +1 -0
  69. package/dist/lib/components/ui/widgets/event-calendar/partials/calendar-date-nav.d.ts +2 -0
  70. package/dist/lib/components/ui/widgets/event-calendar/partials/calendar-lane-toggle.d.ts +5 -0
  71. package/dist/lib/components/ui/widgets/event-calendar/partials/time-grid-header-template.d.ts +7 -0
  72. package/dist/lib/components/ui/widgets/event-calendar/template.types.d.ts +73 -0
  73. package/dist/lib/components/ui/widgets/event-calendar/types.d.ts +2 -0
  74. package/dist/lib/components/ui/widgets/event-calendar/use-chip-event.d.ts +1 -0
  75. package/dist/lib/components/ui/widgets/event-calendar/use-drawn-events.d.ts +4 -3
  76. package/dist/lib/components/ui/widgets/event-calendar/use-template-calendar.d.ts +18 -0
  77. package/dist/lib/components/ui/widgets/event-calendar/use-template-lane.d.ts +17 -0
  78. package/dist/lib/hooks/index.d.ts +1 -0
  79. package/dist/lib/i18n/resources/en/en.d.ts +2 -0
  80. package/dist/lib/i18n/resources/en/material.json.d.ts +2 -0
  81. package/dist/lib/i18n/resources/fr/fr.d.ts +2 -0
  82. package/dist/lib/i18n/resources/fr/material.json.d.ts +2 -0
  83. package/dist/lib/i18n/resources/resources.d.ts +4 -0
  84. package/dist/lib/i18n/translator.d.ts +1 -1
  85. package/dist/lib.js +2 -2
  86. package/dist/main.js +53 -52
  87. package/dist/map.js +7 -7
  88. package/dist/material.css +1 -1
  89. package/dist/pdf-reader.js +1 -1
  90. package/dist/{percent-field-C2LNr8NA.js → percent-field-QwU1l2Q4.js} +1 -1
  91. package/dist/{picker-surface-BUCFMoAZ.js → picker-surface-CiTycWgV.js} +4 -4
  92. package/dist/{popover-DFRwQF12.js → popover-YmbzbKQG.js} +1 -1
  93. package/dist/{pos-types-CXnEdjdy.js → pos-types-BFrapNmx.js} +1 -1
  94. package/dist/{pos-variant-DMwn_7is.js → pos-variant-CctfqieO.js} +4 -4
  95. package/dist/print.js +1 -1
  96. package/dist/{programmer-variant-Bo4eiDFi.js → programmer-variant-Dd0YOixn.js} +2 -2
  97. package/dist/{public-CyQPkkSR.js → public-CshR_aW7.js} +10 -10
  98. package/dist/{rich-code-block-iK7UcZdc.js → rich-code-block-BuJLDoBu.js} +5 -5
  99. package/dist/{scientific-variant-B9ScTgfx.js → scientific-variant-CjErQxuZ.js} +2 -2
  100. package/dist/{sortable-provider-BZwVjSVU.js → sortable-provider-DU2nvpFc.js} +2 -2
  101. package/dist/{spinner-RITOxvpH.js → spinner-DH1mm8hH.js} +1 -1
  102. package/dist/{tabs-DSo4eCUn.js → tabs-Um0SFyf1.js} +1 -1
  103. package/dist/theme-picker.js +2 -2
  104. package/dist/{theme-toggle-3gbzQX0x.js → theme-toggle-C-Ih4uQU.js} +1 -1
  105. package/dist/{toolbar-items-Bt5RK-Nx.js → toolbar-items-BoEY5bkt.js} +4 -4
  106. package/dist/{translate-material-CZTGqgen.js → translate-material-D4rn5UaQ.js} +1 -1
  107. package/dist/{translator-DTlOlIoq.js → translator-CcEgQ-H7.js} +4 -0
  108. package/dist/{use-chat-composer-DBY01IpX.js → use-chat-composer-BBF1BI_s.js} +46 -42
  109. package/dist/{use-click-lock-BZYtTmVt.js → use-click-lock-Bwg_caHO.js} +14 -14
  110. package/dist/{use-heading-spy-Dt48bBts.js → use-heading-spy-BgyA6SJl.js} +19 -19
  111. package/dist/{use-material-translation-BJucC_xe.js → use-material-translation-DYrfV_JJ.js} +1 -1
  112. package/dist/{use-return-focus-BS1JLcnq.js → use-return-focus-C_Qz_yTk.js} +1 -1
  113. package/docs/components/data-display.md +36 -8
  114. package/docs/components/data-table-filter-and-lists.md +7 -3
  115. package/docs/components/form-fields.md +1 -0
  116. package/docs/components/media-and-files.md +1 -0
  117. package/docs/components/navigation-and-layout.md +2 -1
  118. package/docs/components/overlays-and-menus.md +11 -5
  119. package/docs/components/rich-widgets.md +85 -1
  120. package/docs/components/selection-and-choice.md +49 -10
  121. package/docs/guides/forms.md +7 -0
  122. package/docs/guides/helpers.md +23 -0
  123. package/docs/guides/layouts.md +2 -2
  124. package/docs/guides/theming.md +7 -7
  125. package/docs/previews/data-display-tubecap.webp +0 -0
  126. package/docs/previews/selection-choice-sortablelist.webp +0 -0
  127. package/docs/roadmap.md +3 -1
  128. package/docs/troubleshooting.md +50 -2
  129. package/lib/components/base-content.css +11 -0
  130. package/lib/components/components.css +2 -0
  131. package/lib/components/ui/collections/data-table/data-table-items-tiles.css +27 -1
  132. package/lib/components/ui/display/tube-cap/tube-cap.css +87 -0
  133. package/lib/themes/ambre.css +1 -1
  134. package/lib/themes/ardoise.css +1 -1
  135. package/lib/themes/bleumono.css +1 -1
  136. package/lib/themes/bluemoon.css +1 -1
  137. package/lib/themes/corail.css +2 -2
  138. package/lib/themes/foret.css +1 -1
  139. package/lib/themes/lavande.css +1 -1
  140. package/lib/themes/menthe.css +2 -2
  141. package/lib/themes/ocean.css +1 -1
  142. package/lib/themes/pink.css +2 -2
  143. package/lib/themes/prune.css +1 -1
  144. package/lib/themes/sable.css +1 -1
  145. package/lib/themes/slate.css +1 -1
  146. package/lib/themes/teal.css +2 -2
  147. package/package.json +2 -2
package/dist/editor.js CHANGED
@@ -1,12 +1,12 @@
1
1
  import { t as e } from "./ui.utils-CAnKTCw5.js";
2
2
  import { t } from "./utils-BLfntITJ.js";
3
- import { A as n, An as r, Bn as i, C as a, Cn as o, D as s, Dn as c, E as l, Fi as u, G as d, Gn as f, H as p, Hn as m, I as h, Ii as g, J as _, K as v, Kn as y, L as b, Mn as x, O as S, On as ee, Pi as C, Q as w, S as te, Sn as T, T as E, U as ne, Un as re, V as ie, Vn as ae, W as oe, X as se, Y as ce, Z as le, a as ue, an as de, b as D, c as fe, d as pe, dn as me, dr as he, fn as ge, gn as _e, hn as ve, i as ye, j as be, jn as xe, k as Se, kn as Ce, l as we, on as Te, p as Ee, q as De, s as Oe, sn as ke, t as Ae, v as je, w as O, x as Me, xn as Ne, y as Pe, zn as k } from "./use-chat-composer-DBY01IpX.js";
4
- import { l as Fe, n as Ie, t as Le } from "./alert-dialog-DgHtXZuB.js";
5
- import { c as Re, i as ze, n as Be, o as Ve, r as He, s as Ue, t as We, u as A } from "./dropdown-menu-CPOgcajv.js";
6
- import { n as Ge, r as Ke, t as qe } from "./popover-DFRwQF12.js";
7
- import { n as Je, t as j } from "./button-_vm-xSBU.js";
8
- import { t as M } from "./use-material-translation-BJucC_xe.js";
9
- import { t as N } from "./icon-button-BamxMwZs.js";
3
+ import { A as n, An as r, Bn as i, C as a, Cn as o, D as s, Dn as c, E as l, Fi as u, G as d, Gn as f, H as p, Hn as m, I as h, Ii as g, J as _, K as v, Kn as y, L as b, Li as x, Mn as S, O as ee, On as C, Q as w, S as te, Sn as T, T as E, U as ne, Un as re, V as ie, Vn as ae, W as oe, X as se, Y as ce, Z as le, a as ue, an as de, b as D, c as fe, d as pe, dn as me, fn as he, fr as ge, gn as _e, hn as ve, i as ye, j as be, jn as xe, k as Se, kn as Ce, l as we, on as Te, p as Ee, q as De, s as Oe, sn as ke, t as Ae, v as je, w as O, x as Me, xn as Ne, y as Pe, zn as k } from "./use-chat-composer-BBF1BI_s.js";
4
+ import { l as Fe, n as Ie, t as Le } from "./alert-dialog-DOZ0SfQs.js";
5
+ import { c as Re, i as ze, n as Be, o as Ve, r as He, s as Ue, t as We, u as A } from "./dropdown-menu-C6rcYGB9.js";
6
+ import { n as Ge, r as Ke, t as qe } from "./popover-YmbzbKQG.js";
7
+ import { n as Je, t as j } from "./button-CSKUtMI3.js";
8
+ import { t as M } from "./use-material-translation-DYrfV_JJ.js";
9
+ import { t as N } from "./icon-button-4PKlaI1g.js";
10
10
  import { a as Ye, s as P } from "./dist-C3GR7kJd.js";
11
11
  import { n as Xe, t as Ze } from "./toggle-group-CVMxEpWi.js";
12
12
  import { t as Qe } from "./input-CC2joTjB.js";
@@ -735,7 +735,7 @@ function _r({ composer: e, body: t, onBody: n, onSubmit: r, onDismiss: i }) {
735
735
  className: "line-clamp-2 border-s-2 ps-2 text-muted-foreground text-xs italic",
736
736
  children: e.quote
737
737
  }),
738
- /* @__PURE__ */ J(x, {
738
+ /* @__PURE__ */ J(S, {
739
739
  className: hr,
740
740
  "aria-label": a("material.editor.comments.body-label", "Comment"),
741
741
  placeholder: a("material.editor.comments.placeholder", "Write a comment…"),
@@ -898,7 +898,7 @@ function Ar({ id: e, children: t, ...n }) {
898
898
  //#region lib/components/ui/widgets/editor/extensions/comments/comments-status.tsx
899
899
  function jr({ state: e, controller: t, count: n }) {
900
900
  let { t: r } = M();
901
- return n === 0 && !e.showResolved ? null : /* @__PURE__ */ J(he, {
901
+ return n === 0 && !e.showResolved ? null : /* @__PURE__ */ J(ge, {
902
902
  label: r("material.editor.comments.show-resolved", "Show resolved"),
903
903
  checked: e.showResolved,
904
904
  onCheckedChange: t.setShowResolved
@@ -918,7 +918,7 @@ function Nr({ draft: e, onChange: t, onSave: n, onCancel: r }) {
918
918
  let { t: i } = M();
919
919
  return /* @__PURE__ */ Y("div", {
920
920
  className: "grid grid-cols-[minmax(0,1fr)] gap-2",
921
- children: [/* @__PURE__ */ J(x, {
921
+ children: [/* @__PURE__ */ J(S, {
922
922
  className: hr,
923
923
  "aria-label": i("material.editor.comments.body-label", "Comment"),
924
924
  value: e,
@@ -1068,7 +1068,7 @@ function $r({ thread: e, controller: t, canRemove: n }) {
1068
1068
  let n = i;
1069
1069
  n.trim() && (a(""), await t.reply(e.id, n) || a(n));
1070
1070
  };
1071
- return /* @__PURE__ */ Y(q, { children: [/* @__PURE__ */ J(x, {
1071
+ return /* @__PURE__ */ Y(q, { children: [/* @__PURE__ */ J(S, {
1072
1072
  className: hr,
1073
1073
  "aria-label": r("material.editor.comments.reply-label", "Reply to this thread"),
1074
1074
  placeholder: r("material.editor.comments.reply-placeholder", "Reply…"),
@@ -4146,7 +4146,7 @@ var Qs = /* @__PURE__ */ new WeakMap(), $s = R.create({
4146
4146
  callout: Ne,
4147
4147
  checkboxGroup: _e,
4148
4148
  codeBlock: ve,
4149
- color: ge,
4149
+ color: he,
4150
4150
  comments: Mo,
4151
4151
  count: me,
4152
4152
  dragHandle: Po,
@@ -4169,7 +4169,7 @@ var Qs = /* @__PURE__ */ new WeakMap(), $s = R.create({
4169
4169
  radioGroup: be,
4170
4170
  selectCard: n,
4171
4171
  selectChip: Se,
4172
- slash: S,
4172
+ slash: ee,
4173
4173
  table: s,
4174
4174
  textAlign: l,
4175
4175
  upload: ec,
@@ -4184,8 +4184,8 @@ var Qs = /* @__PURE__ */ new WeakMap(), $s = R.create({
4184
4184
  Ne(),
4185
4185
  c(),
4186
4186
  w(),
4187
- S(),
4188
- ge(),
4187
+ ee(),
4188
+ he(),
4189
4189
  de(),
4190
4190
  ie(),
4191
4191
  le(),
@@ -4831,7 +4831,7 @@ var ll = {
4831
4831
  history: 50
4832
4832
  };
4833
4833
  function dl(e) {
4834
- return e.some((e) => e.name === "slash") ? ee(e.flatMap((e) => e.slash ?? [])) : [];
4834
+ return e.some((e) => e.name === "slash") ? C(e.flatMap((e) => e.slash ?? [])) : [];
4835
4835
  }
4836
4836
  function fl(e, t) {
4837
4837
  let n = new Set(t.map((e) => e.id));
@@ -4867,7 +4867,7 @@ function ml() {
4867
4867
  //#region lib/components/ui/widgets/editor/partials/editor-insert-fab.tsx
4868
4868
  function hl() {
4869
4869
  let { t: e } = M(), { handle: t } = f(), { editor: n, features: r } = t, i = G(!1), a = W(() => Ce(dl(r), "", e), [r, e]), o = ml();
4870
- return !n || !o || a.length === 0 ? null : /* @__PURE__ */ J(g, {
4870
+ return !n || !o || a.length === 0 ? null : /* @__PURE__ */ J(x, {
4871
4871
  "data-slot": "editor-insert-fab",
4872
4872
  label: e("material.editor.insert", "Insert"),
4873
4873
  items: a.map((e) => ({
@@ -4898,7 +4898,7 @@ function gl({ className: e }) {
4898
4898
  return ml() ? /* @__PURE__ */ J("div", {
4899
4899
  "data-slot": "editor-floating-bar",
4900
4900
  className: "nxgt-editor-bar",
4901
- children: /* @__PURE__ */ Y(C, { children: [/* @__PURE__ */ J(D, {
4901
+ children: /* @__PURE__ */ Y(u, { children: [/* @__PURE__ */ J(D, {
4902
4902
  variant: "floating",
4903
4903
  dividers: !1,
4904
4904
  className: e,
@@ -5140,7 +5140,7 @@ function kl({ sendLabel: e, stopLabel: t, disabled: n, empty: r, onStop: i, onSc
5140
5140
  isEmpty: r,
5141
5141
  onStop: i,
5142
5142
  shape: o ? "squircle" : "round"
5143
- }) : /* @__PURE__ */ J(u, {
5143
+ }) : /* @__PURE__ */ J(g, {
5144
5144
  type: "submit",
5145
5145
  disabled: n || r,
5146
5146
  menuLabel: s("material.editor.send-options", "Send options"),
@@ -1,5 +1,5 @@
1
1
  import { t as e } from "./utils-BLfntITJ.js";
2
- import { t } from "./use-material-translation-BJucC_xe.js";
2
+ import { t } from "./use-material-translation-DYrfV_JJ.js";
3
3
  import { t as n } from "./typography-CYEquVeb.js";
4
4
  import { a as r, c as i, i as a, n as o, o as s, r as c, t as l, u } from "./state-scenes-BX03WmSu.js";
5
5
  import { Suspense as d } from "react";
@@ -1,12 +1,12 @@
1
- import { n as e, r as t, t as n, u as r } from "./tabs-DSo4eCUn.js";
2
- import { t as i } from "./use-material-translation-BJucC_xe.js";
3
- import { r as a, t as o } from "./currency-field-CMFvctye.js";
4
- import { t as s } from "./percent-field-C2LNr8NA.js";
1
+ import { n as e, r as t, t as n, u as r } from "./tabs-Um0SFyf1.js";
2
+ import { t as i } from "./use-material-translation-DYrfV_JJ.js";
3
+ import { r as a, t as o } from "./currency-field-DizBTAat.js";
4
+ import { t as s } from "./percent-field-QwU1l2Q4.js";
5
5
  import { n as c } from "./calculator-context-BugcKuVG.js";
6
6
  import { t as l } from "./calculator-announce-DRd2c6Dq.js";
7
7
  import { n as u, t as d } from "./calculator-panel-announce-AZSnZUSr.js";
8
8
  import { t as f } from "./currency-B-r3ig11.js";
9
- import { t as p } from "./calculator-segment-OI1BT3bA.js";
9
+ import { t as p } from "./calculator-segment-CwnC2cV_.js";
10
10
  import { useId as m, useMemo as h, useState as g } from "react";
11
11
  import { jsx as _, jsxs as v } from "react/jsx-runtime";
12
12
  import { currencyFractionDigits as y } from "@nxgt/material-core/currency-digits";
@@ -1,5 +1,5 @@
1
- import { i as e } from "./translate-material-CZTGqgen.js";
2
- import { n as t } from "./use-heading-spy-Dt48bBts.js";
1
+ import { i as e } from "./translate-material-D4rn5UaQ.js";
2
+ import { n as t } from "./use-heading-spy-BgyA6SJl.js";
3
3
  import { t as n } from "./number.utils-CSueQZcv.js";
4
4
  import { useCallback as r, useEffect as i, useMemo as a, useRef as o, useState as s } from "react";
5
5
  import { jsx as c } from "react/jsx-runtime";
package/dist/hooks.js CHANGED
@@ -1,8 +1,9 @@
1
- import { a as e, i as t, o as n, r, s as i } from "./theme-store-BdPp43cV.js";
2
- import { n as a, t as o } from "./use-theme-BCLireTd.js";
3
- import { a as s, i as c, m as l, o as u, r as d, s as f, t as p } from "./use-heading-spy-Dt48bBts.js";
4
- import { r as m } from "./use-csp-nonce-ZKs9k-ov.js";
5
- import { t as h } from "./use-mobile-BDro060N.js";
6
- import { t as g } from "./use-scroll-away-PQRFZkT2.js";
7
- import { a as _, c as v, d as y, f as b, g as x, h as S, i as C, l as w, m as T, n as E, o as D, p as O, r as k, s as A, t as j, u as M } from "./hooks-Z7KKbv4G.js";
8
- export { r as DEFAULT_THEME, t as applyResolvedTheme, e as applyThemeName, _ as buildOptions, c as busySettler, b as clearDrafts, s as createSubmitGuard, D as extractNode, S as isLeaving, n as resolveTheme, i as resolveThemeName, x as shouldBlockNavigation, T as useAllowedTransitions, d as useCountdown, m as useCspNonce, E as useDiscardGuard, O as useDrafts, f as useFocusOnMount, y as useFormatters, p as useHeadingSpy, a as useIsClient, h as useIsMobile, l as useLocalizedDate, w as useNavigationHandler, M as useNavigationHandlers, v as useNumberFormatter, A as useOptions, C as useReactRouterBlock, g as useScrollAway, k as useSearchParam, u as useSubmitOnce, o as useTheme, j as useUnsavedGuard };
1
+ import { t as e } from "./use-ssr-media-query-C6M5m8sf.js";
2
+ import { a as t, i as n, o as r, r as i, s as a } from "./theme-store-BdPp43cV.js";
3
+ import { n as o, t as s } from "./use-theme-BCLireTd.js";
4
+ import { a as c, i as l, m as u, o as d, r as f, s as p, t as m } from "./use-heading-spy-BgyA6SJl.js";
5
+ import { r as h } from "./use-csp-nonce-ZKs9k-ov.js";
6
+ import { t as g } from "./use-mobile-BDro060N.js";
7
+ import { t as _ } from "./use-scroll-away-PQRFZkT2.js";
8
+ import { a as v, c as y, d as b, f as x, g as S, h as C, i as w, l as T, m as E, n as D, o as O, p as k, r as A, s as j, t as M, u as N } from "./hooks-DvIsom2p.js";
9
+ export { i as DEFAULT_THEME, n as applyResolvedTheme, t as applyThemeName, v as buildOptions, l as busySettler, x as clearDrafts, c as createSubmitGuard, O as extractNode, C as isLeaving, r as resolveTheme, a as resolveThemeName, S as shouldBlockNavigation, E as useAllowedTransitions, f as useCountdown, h as useCspNonce, D as useDiscardGuard, k as useDrafts, p as useFocusOnMount, b as useFormatters, m as useHeadingSpy, o as useIsClient, g as useIsMobile, u as useLocalizedDate, T as useNavigationHandler, N as useNavigationHandlers, y as useNumberFormatter, j as useOptions, w as useReactRouterBlock, _ as useScrollAway, A as useSearchParam, e as useSsrMediaQuery, d as useSubmitOnce, s as useTheme, M as useUnsavedGuard };
@@ -1,7 +1,7 @@
1
1
  import { t as e } from "./utils-BLfntITJ.js";
2
2
  import { o as t } from "./dist-DVRQkaTK.js";
3
3
  import { i as n, r, t as i } from "./dist-DWZXlCZR.js";
4
- import { S as a, d as o, f as s, l as c, p as l, x as u } from "./spinner-RITOxvpH.js";
4
+ import { S as a, d as o, f as s, l as c, p as l, x as u } from "./spinner-DH1mm8hH.js";
5
5
  import { a as d, i as f } from "./dist-DHdUUM1w.js";
6
6
  import { t as p } from "./in-dialog-D61Yeaol.js";
7
7
  import { i as m } from "./escape-owner-DpaP0lm1.js";
package/dist/i18n.js CHANGED
@@ -1,8 +1,8 @@
1
1
  import { t as e } from "./is-production-GLw59WU8.js";
2
- import { c as t, d as n, i as r, l as i, n as a, o, r as s, t as c, u as l } from "./translator-DTlOlIoq.js";
3
- import { i as u, n as d, r as f, t as p } from "./translate-material-CZTGqgen.js";
2
+ import { c as t, d as n, i as r, l as i, n as a, o, r as s, t as c, u as l } from "./translator-CcEgQ-H7.js";
3
+ import { i as u, n as d, r as f, t as p } from "./translate-material-D4rn5UaQ.js";
4
4
  import { o as m, t as h } from "./merge-BCZE6HGq.js";
5
- import { t as g } from "./use-material-translation-BJucC_xe.js";
5
+ import { t as g } from "./use-material-translation-DYrfV_JJ.js";
6
6
  import { useCallback as _ } from "react";
7
7
  //#region lib/i18n/merge-resources.ts
8
8
  function v(e, t, n = "") {
@@ -1,5 +1,5 @@
1
1
  import { t as e } from "./utils-BLfntITJ.js";
2
- import { t } from "./icon-button-BamxMwZs.js";
2
+ import { t } from "./icon-button-4PKlaI1g.js";
3
3
  import { jsx as n } from "react/jsx-runtime";
4
4
  //#region lib/components/ui/actions/icon-button/icon-badge.tsx
5
5
  function r({ children: r, className: i, ...a }) {
@@ -1,9 +1,9 @@
1
1
  import { t as e } from "./utils-BLfntITJ.js";
2
2
  import { n as t } from "./use-shape-morph-BKA_R5P5.js";
3
3
  import { n, t as r } from "./dist-DVRQkaTK.js";
4
- import { n as i, t as a } from "./spinner-RITOxvpH.js";
4
+ import { n as i, t as a } from "./spinner-DH1mm8hH.js";
5
5
  import { t as o } from "./dist-DkQbkF9T.js";
6
- import { a as s, i as c, n as l, o as u, r as d, s as f, t as p } from "./use-click-lock-BZYtTmVt.js";
6
+ import { a as s, i as c, n as l, o as u, r as d, s as f, t as p } from "./use-click-lock-Bwg_caHO.js";
7
7
  import { t as m } from "./is-production-GLw59WU8.js";
8
8
  import { t as h } from "./button-group-context-CaP0X5p_.js";
9
9
  import { shapeOutline as g, toSvgPath as _ } from "@nxgt/material-core/shapes";
@@ -1,37 +1,38 @@
1
1
  /**
2
2
  * The text colour of the `tonal`, `outlined` and `link` variants of `Button`
3
3
  * and `IconButton`, per `color`: the token itself where it reads at 4.5:1 on
4
- * the page, on `--card` and on its own 15 % tint, else mixed toward black in
5
- * the light theme and toward white in the dark one (WCAG 1.4.3). The class
4
+ * the page ground (`--ground`, a tinted page), on `--card` and on its own 15 %
5
+ * tint over either, else mixed toward black in the light theme and toward white
6
+ * in the dark one, on the card, popover, muted and accent surfaces too (WCAG 1.4.3, #2398). The class
6
7
  * names are written out whole so Tailwind finds them.
7
8
  */
8
9
  export declare const toneText: {
9
10
  readonly primary: "text-primary-text";
10
- readonly secondary: "text-secondary";
11
- readonly success: "text-success dark:text-[color-mix(in_oklab,var(--color-success)_85%,white)]";
12
- readonly info: "text-info";
11
+ readonly secondary: "text-[color-mix(in_oklab,var(--color-secondary)_90%,black)] dark:text-[color-mix(in_oklab,var(--color-secondary)_80%,white)]";
12
+ readonly success: "text-[color-mix(in_oklab,var(--color-success)_90%,black)] dark:text-[color-mix(in_oklab,var(--color-success)_70%,white)]";
13
+ readonly info: "text-[color-mix(in_oklab,var(--color-info)_90%,black)] dark:text-[color-mix(in_oklab,var(--color-info)_85%,white)]";
13
14
  readonly warning: "text-[color-mix(in_oklab,var(--color-warning)_85%,black)] dark:text-[color-mix(in_oklab,var(--color-warning)_85%,white)]";
14
- readonly error: "text-[color-mix(in_oklab,var(--color-error)_85%,black)] dark:text-[color-mix(in_oklab,var(--color-error)_70%,white)]";
15
+ readonly error: "text-[color-mix(in_oklab,var(--color-error)_80%,black)] dark:text-[color-mix(in_oklab,var(--color-error)_70%,white)]";
15
16
  readonly default: "text-foreground";
16
17
  };
17
18
  /** The same tones for an icon marked `data-slot="icon"`. */
18
19
  export declare const toneIcon: {
19
20
  readonly primary: "[&_svg]:data-[slot=icon]:text-primary-text";
20
- readonly secondary: "[&_svg]:data-[slot=icon]:text-secondary";
21
- readonly success: "[&_svg]:data-[slot=icon]:text-success dark:[&_svg]:data-[slot=icon]:text-[color-mix(in_oklab,var(--color-success)_85%,white)]";
22
- readonly info: "[&_svg]:data-[slot=icon]:text-info";
21
+ readonly secondary: "[&_svg]:data-[slot=icon]:text-[color-mix(in_oklab,var(--color-secondary)_90%,black)] dark:[&_svg]:data-[slot=icon]:text-[color-mix(in_oklab,var(--color-secondary)_80%,white)]";
22
+ readonly success: "[&_svg]:data-[slot=icon]:text-[color-mix(in_oklab,var(--color-success)_90%,black)] dark:[&_svg]:data-[slot=icon]:text-[color-mix(in_oklab,var(--color-success)_70%,white)]";
23
+ readonly info: "[&_svg]:data-[slot=icon]:text-[color-mix(in_oklab,var(--color-info)_90%,black)] dark:[&_svg]:data-[slot=icon]:text-[color-mix(in_oklab,var(--color-info)_85%,white)]";
23
24
  readonly warning: "[&_svg]:data-[slot=icon]:text-[color-mix(in_oklab,var(--color-warning)_85%,black)] dark:[&_svg]:data-[slot=icon]:text-[color-mix(in_oklab,var(--color-warning)_85%,white)]";
24
- readonly error: "[&_svg]:data-[slot=icon]:text-[color-mix(in_oklab,var(--color-error)_85%,black)] dark:[&_svg]:data-[slot=icon]:text-[color-mix(in_oklab,var(--color-error)_70%,white)]";
25
+ readonly error: "[&_svg]:data-[slot=icon]:text-[color-mix(in_oklab,var(--color-error)_80%,black)] dark:[&_svg]:data-[slot=icon]:text-[color-mix(in_oklab,var(--color-error)_70%,white)]";
25
26
  readonly default: "[&_svg]:data-[slot=icon]:text-foreground";
26
27
  };
27
28
  /** The same tones for `IconButton`'s icon line (`stroke`). */
28
29
  export declare const toneStroke: {
29
30
  readonly primary: "[&_svg]:stroke-primary-text";
30
- readonly secondary: "[&_svg]:stroke-secondary";
31
- readonly success: "[&_svg]:stroke-success dark:[&_svg]:stroke-[color-mix(in_oklab,var(--color-success)_85%,white)]";
32
- readonly info: "[&_svg]:stroke-info";
31
+ readonly secondary: "[&_svg]:stroke-[color-mix(in_oklab,var(--color-secondary)_90%,black)] dark:[&_svg]:stroke-[color-mix(in_oklab,var(--color-secondary)_80%,white)]";
32
+ readonly success: "[&_svg]:stroke-[color-mix(in_oklab,var(--color-success)_90%,black)] dark:[&_svg]:stroke-[color-mix(in_oklab,var(--color-success)_70%,white)]";
33
+ readonly info: "[&_svg]:stroke-[color-mix(in_oklab,var(--color-info)_90%,black)] dark:[&_svg]:stroke-[color-mix(in_oklab,var(--color-info)_85%,white)]";
33
34
  readonly warning: "[&_svg]:stroke-[color-mix(in_oklab,var(--color-warning)_85%,black)] dark:[&_svg]:stroke-[color-mix(in_oklab,var(--color-warning)_85%,white)]";
34
- readonly error: "[&_svg]:stroke-[color-mix(in_oklab,var(--color-error)_85%,black)] dark:[&_svg]:stroke-[color-mix(in_oklab,var(--color-error)_70%,white)]";
35
+ readonly error: "[&_svg]:stroke-[color-mix(in_oklab,var(--color-error)_80%,black)] dark:[&_svg]:stroke-[color-mix(in_oklab,var(--color-error)_70%,white)]";
35
36
  readonly default: "[&_svg]:stroke-foreground";
36
37
  };
37
38
  /**
@@ -44,9 +45,9 @@ export declare const toneStroke: {
44
45
  export declare const toneVars: {
45
46
  readonly primary: "[--morph-on:var(--color-primary)] [--morph-on-fg:var(--color-primary-foreground)] [--btn-focus:var(--color-primary-text)] [--btn-line:var(--color-primary)]";
46
47
  readonly secondary: "[--morph-on:var(--color-secondary)] dark:[--morph-on:color-mix(in_oklab,var(--color-secondary)_70%,var(--color-background))] [--morph-on-fg:var(--color-secondary-foreground)] [--btn-focus:var(--color-secondary)] [--btn-line:var(--color-secondary)]";
47
- readonly success: "[--morph-on:var(--color-success)] dark:[--morph-on:color-mix(in_oklab,var(--color-success)_60%,var(--color-background))] [--morph-on-fg:var(--color-success-foreground)] [--btn-focus:var(--color-success)] dark:[--btn-focus:color-mix(in_oklab,var(--color-success)_85%,white)] [--btn-line:var(--color-success)]";
48
+ readonly success: "[--morph-on:var(--color-success)] dark:[--morph-on:color-mix(in_oklab,var(--color-success)_60%,var(--color-background))] [--morph-on-fg:var(--color-success-foreground)] [--btn-focus:var(--color-success)] dark:[--btn-focus:color-mix(in_oklab,var(--color-success)_70%,white)] [--btn-line:var(--color-success)]";
48
49
  readonly info: "[--morph-on:var(--color-info)] dark:[--morph-on:color-mix(in_oklab,var(--color-info)_60%,var(--color-background))] [--morph-on-fg:var(--color-info-foreground)] [--btn-focus:var(--color-info)] [--btn-line:var(--color-info)]";
49
50
  readonly warning: "[--morph-on:var(--color-warning)] dark:[--morph-on:color-mix(in_oklab,var(--color-warning)_60%,var(--color-background))] [--morph-on-fg:var(--color-warning-foreground)] [--btn-focus:color-mix(in_oklab,var(--color-warning)_85%,black)] dark:[--btn-focus:color-mix(in_oklab,var(--color-warning)_85%,white)] [--btn-line:var(--color-warning)]";
50
- readonly error: "[--morph-on:var(--color-error)] [--morph-on-fg:var(--color-error-foreground)] [--btn-focus:color-mix(in_oklab,var(--color-error)_85%,black)] dark:[--btn-focus:color-mix(in_oklab,var(--color-error)_70%,white)] [--btn-line:var(--color-error)]";
51
+ readonly error: "[--morph-on:var(--color-error)] [--morph-on-fg:var(--color-error-foreground)] [--btn-focus:color-mix(in_oklab,var(--color-error)_80%,black)] dark:[--btn-focus:color-mix(in_oklab,var(--color-error)_70%,white)] [--btn-line:var(--color-error)]";
51
52
  readonly default: "[--morph-on:var(--color-foreground)] [--morph-on-fg:var(--color-background)] [--btn-focus:var(--color-foreground)] [--btn-line:var(--color-foreground)]";
52
53
  };
@@ -17,6 +17,11 @@ export type DayGroupedListProps<T> = Omit<ComponentProps<'div'>, 'children'> & {
17
17
  sticky?: boolean;
18
18
  /** Shows how many items a bucket holds beside its heading. */
19
19
  showCount?: boolean;
20
+ /**
21
+ * The heading level of each bucket's title (`<h2>` to `<h6>`). Default `3`;
22
+ * pick the level that follows the heading above the list.
23
+ */
24
+ headingLevel?: 2 | 3 | 4 | 5 | 6;
20
25
  /** Extra classes for each heading (its background, say, on a tinted parent). */
21
26
  headerClassName?: string;
22
27
  /** Extra classes for each `<ul>` (`divide-y`, a gap…). */
@@ -27,4 +32,4 @@ export type DayGroupedListProps<T> = Omit<ComponentProps<'div'>, 'children'> & {
27
32
  * labelled section whose heading sticks while its items scroll under it.
28
33
  * The parent scrolls; the list only lays the buckets out.
29
34
  */
30
- export declare function DayGroupedList<T>({ items, getDate, getKey, renderItem, now, labels, sticky, showCount, headerClassName, listClassName, className, ...props }: DayGroupedListProps<T>): import("react").JSX.Element;
35
+ export declare function DayGroupedList<T>({ items, getDate, getKey, renderItem, now, labels, sticky, showCount, headingLevel, headerClassName, listClassName, className, ...props }: DayGroupedListProps<T>): import("react").JSX.Element;
@@ -7188,6 +7188,7 @@ export declare function useFilterFieldConfig({ field, value, onChange, error, di
7188
7188
  min?: number | undefined;
7189
7189
  orientation?: "horizontal" | "vertical" | undefined;
7190
7190
  required?: boolean | undefined;
7191
+ balance?: boolean | undefined;
7191
7192
  density?: "comfortable" | "compact" | undefined;
7192
7193
  } | {
7193
7194
  className: string;
@@ -7480,6 +7481,7 @@ export declare function useFilterFieldConfig({ field, value, onChange, error, di
7480
7481
  min?: number | undefined;
7481
7482
  orientation?: "horizontal" | "vertical" | undefined;
7482
7483
  required?: boolean | undefined;
7484
+ balance?: boolean | undefined;
7483
7485
  options: import('../../selection/index.js').ChoiceCardOption[];
7484
7486
  density?: "comfortable" | "compact" | undefined;
7485
7487
  helperText?: import('react').ReactNode;
@@ -1,7 +1,7 @@
1
1
  import { IconStyleInput } from '@nxgt/material-core/icons';
2
2
  import { ErrorStateKind } from '@nxgt/material-core/states';
3
3
  import { ReactNode } from 'react';
4
- import { StateHeadingLevel } from '../../feedback/state-frame/state-frame.js';
4
+ import { StateHeadingLevel, StateIllustrationProp } from '../../feedback/state-frame/state-frame.js';
5
5
  import { ListEmptyContent } from '../list-empty/list-empty.js';
6
6
  /** What an empty page says: nothing at all yet, or nothing matching. */
7
7
  export type ServerTableEmpty = {
@@ -39,4 +39,8 @@ export type ServerTableError = {
39
39
  /** Which failure it is: the illustration and icon follow it. Default
40
40
  * `generic`. */
41
41
  kind?: ErrorStateKind;
42
+ /** Replaces the scene `kind` picks, as `ListEmptyPage`'s `illustration`
43
+ * does for the empty states: a scene id, a node, `true` for an icon
44
+ * illustration, `false` for none. */
45
+ illustration?: StateIllustrationProp;
42
46
  };
@@ -35,5 +35,6 @@ export * from './status-indicator/index.js';
35
35
  export * from './summary-data/index.js';
36
36
  export * from './terminal/index.js';
37
37
  export * from './timeline/index.js';
38
+ export * from './tube-cap/index.js';
38
39
  export * from './vote-tally/index.js';
39
40
  export * from './zoned-time/index.js';
@@ -0,0 +1,2 @@
1
+ export * from './tube-cap.js';
2
+ export { TUBE_CAP_KINDS, type TubeCapKind } from './tube-cap.kinds.js';
@@ -0,0 +1,27 @@
1
+ import { ComponentProps, ReactNode } from 'react';
2
+ import { TubeCapKind } from './tube-cap.kinds.js';
3
+ export type TubeCapProps = Omit<ComponentProps<'span'>, 'children' | 'role' | 'aria-label'> & {
4
+ /** The kind of tube; its cap colour is fixed by the international convention. */
5
+ kind: TubeCapKind;
6
+ /**
7
+ * The container's name, written beside the cap ("EDTA", "Serum"): the
8
+ * colour never carries the meaning alone. It also names the chip.
9
+ */
10
+ label: ReactNode;
11
+ /** The volume drawn or required, as text ("4 mL"). */
12
+ volume?: ReactNode;
13
+ /** The accession label of the tube ("L00000042-1"). */
14
+ accession?: ReactNode;
15
+ /** Trailing slot for an action, such as an `IconButton`. */
16
+ action?: ReactNode;
17
+ /** `default` 28px cap, `sm` 20px, `lg` 40px. */
18
+ size?: 'sm' | 'default' | 'lg';
19
+ };
20
+ /**
21
+ * A chip for a specimen tube: a cap in its fixed convention colour (the same
22
+ * in light and dark, in every theme) and the container's name beside it, with
23
+ * an optional volume, accession label and action. The colour is a data
24
+ * attribute resolved in CSS, so the server writes the markup the client does,
25
+ * with no inline style.
26
+ */
27
+ export declare function TubeCap({ kind, label, volume, accession, action, size, className, ...props }: TubeCapProps): import("react").JSX.Element;
@@ -0,0 +1,7 @@
1
+ /**
2
+ * The cap colours of the international tube convention (ISO 6710 / CLSI
3
+ * GP41), as the kind of tube they stand for. The colour of a kind is fixed:
4
+ * it does not follow the theme or the colour scheme (see `tube-cap.css`).
5
+ */
6
+ export declare const TUBE_CAP_KINDS: readonly ["edta", "heparin", "citrate", "esr", "serum", "gel", "fluoride", "trace", "other"];
7
+ export type TubeCapKind = (typeof TUBE_CAP_KINDS)[number];