@nxgt/material 3.80.0 → 3.82.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 (163) hide show
  1. package/CHANGELOG.md +66 -0
  2. package/README.md +4 -3
  3. package/dist/{alert-dialog-DgHtXZuB.js → alert-dialog-DXLJ4AZP.js} +75 -74
  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/collections/data-table/data-table-items.css +15 -0
  19. package/dist/components/ui/display/tube-cap/tube-cap.css +87 -0
  20. package/dist/{components-CJFHhkZv.js → components-BmZk-git.js} +19258 -18882
  21. package/dist/components.js +37 -37
  22. package/dist/{conversion-variant-CqrPwPjC.js → conversion-variant-wZd-G6xR.js} +3 -3
  23. package/dist/{currency-field-CMFvctye.js → currency-field-DizBTAat.js} +4 -4
  24. package/dist/{date.utils-DUvqcjan.js → date.utils-JTEIo3mM.js} +98 -98
  25. package/dist/{dialog-B0iU3fmh.js → dialog-B-3s-oXt.js} +3 -3
  26. package/dist/dnd.js +1 -1
  27. package/dist/{dropdown-menu-CPOgcajv.js → dropdown-menu-C6rcYGB9.js} +1 -1
  28. package/dist/editor.js +987 -980
  29. package/dist/{empty-state-D3Jggupu.js → empty-state-CSkghnD9.js} +1 -1
  30. package/dist/{financial-variant-BdyfYhnp.js → financial-variant-igpGRbGw.js} +5 -5
  31. package/dist/{hooks-Z7KKbv4G.js → hooks-k8_f3B0k.js} +2 -2
  32. package/dist/hooks.js +9 -8
  33. package/dist/{hover-card-CFGIX6kg.js → hover-card-DuaVVKMb.js} +1 -1
  34. package/dist/i18n.js +3 -3
  35. package/dist/{icon-badge-kxGWUvcO.js → icon-badge-3ThP6EOl.js} +1 -1
  36. package/dist/{icon-button-BamxMwZs.js → icon-button-4PKlaI1g.js} +2 -2
  37. package/dist/lib/components/ui/actions/button/button-tones.d.ts +17 -16
  38. package/dist/lib/components/ui/collections/day-grouped-list/day-grouped-list.d.ts +6 -1
  39. package/dist/lib/components/ui/collections/filter/use-filter-field-config.d.ts +2 -0
  40. package/dist/lib/components/ui/collections/server-table/types-states.d.ts +5 -1
  41. package/dist/lib/components/ui/display/index.d.ts +1 -0
  42. package/dist/lib/components/ui/display/tube-cap/index.d.ts +2 -0
  43. package/dist/lib/components/ui/display/tube-cap/tube-cap.d.ts +27 -0
  44. package/dist/lib/components/ui/display/tube-cap/tube-cap.kinds.d.ts +7 -0
  45. package/dist/lib/components/ui/fields/contacts/placeholders.d.ts +1 -1
  46. package/dist/lib/components/ui/fields/inline-edit/inline-edit-display.d.ts +5 -1
  47. package/dist/lib/components/ui/fields/inline-edit/inline-edit-editor.d.ts +6 -1
  48. package/dist/lib/components/ui/fields/inline-edit/inline-edit.d.ts +14 -1
  49. package/dist/lib/components/ui/fields/inline-edit/use-inline-edit.d.ts +4 -1
  50. package/dist/lib/components/ui/fields/repeatable-group/partials/repeatable-group-row.d.ts +3 -1
  51. package/dist/lib/components/ui/fields/repeatable-group/partials/repeatable-group-rows.d.ts +2 -1
  52. package/dist/lib/components/ui/fields/repeatable-group/repeatable-group.d.ts +1 -1
  53. package/dist/lib/components/ui/fields/repeatable-group/types.d.ts +7 -0
  54. package/dist/lib/components/ui/layout/dashboard-grid/dashboard-grid.types.d.ts +6 -1
  55. package/dist/lib/components/ui/layout/dashboard-grid/dashboard-tile.d.ts +1 -1
  56. package/dist/lib/components/ui/media/galleries/gallery.d.ts +1 -1
  57. package/dist/lib/components/ui/media/galleries/gallery.utils.d.ts +14 -0
  58. package/dist/lib/components/ui/media/galleries/lightbox-gallery.d.ts +1 -1
  59. package/dist/lib/components/ui/media/galleries/mini-gallery.d.ts +1 -1
  60. package/dist/lib/components/ui/media/galleries/partials/gallery-tile-button.d.ts +12 -0
  61. package/dist/lib/components/ui/media/galleries/partials/gallery-tile.d.ts +3 -1
  62. package/dist/lib/components/ui/overlays/dialog/dialog-parts.d.ts +1 -1
  63. package/dist/lib/components/ui/overlays/sheet/sheet-parts.d.ts +5 -0
  64. package/dist/lib/components/ui/selection/choice-card-group/choice-card-balance.d.ts +4 -0
  65. package/dist/lib/components/ui/selection/choice-card-group/choice-card-group.d.ts +3 -1
  66. package/dist/lib/components/ui/selection/choice-card-group/choice-card-group.types.d.ts +7 -0
  67. package/dist/lib/components/ui/selection/sortable-list/partials/sortable-list-body.d.ts +5 -1
  68. package/dist/lib/components/ui/selection/sortable-list/partials/sortable-list-row-parts.d.ts +2 -1
  69. package/dist/lib/components/ui/selection/sortable-list/partials/sortable-list-row-props.d.ts +8 -5
  70. package/dist/lib/components/ui/selection/sortable-list/partials/use-owed-focus.d.ts +10 -0
  71. package/dist/lib/components/ui/selection/sortable-list/sortable-list-context.d.ts +2 -0
  72. package/dist/lib/components/ui/selection/sortable-list/sortable-list.keyboard.d.ts +1 -1
  73. package/dist/lib/components/ui/widgets/event-calendar/event-calendar-context.d.ts +3 -0
  74. package/dist/lib/components/ui/widgets/event-calendar/event-calendar-shell.d.ts +15 -0
  75. package/dist/lib/components/ui/widgets/event-calendar/event-calendar-template.d.ts +9 -0
  76. package/dist/lib/components/ui/widgets/event-calendar/event-calendar.d.ts +7 -3
  77. package/dist/lib/components/ui/widgets/event-calendar/event-calendar.template.d.ts +41 -0
  78. package/dist/lib/components/ui/widgets/event-calendar/index.d.ts +1 -0
  79. package/dist/lib/components/ui/widgets/event-calendar/partials/calendar-date-nav.d.ts +2 -0
  80. package/dist/lib/components/ui/widgets/event-calendar/partials/calendar-lane-toggle.d.ts +5 -0
  81. package/dist/lib/components/ui/widgets/event-calendar/partials/time-grid-header-template.d.ts +7 -0
  82. package/dist/lib/components/ui/widgets/event-calendar/template.types.d.ts +73 -0
  83. package/dist/lib/components/ui/widgets/event-calendar/types.d.ts +2 -0
  84. package/dist/lib/components/ui/widgets/event-calendar/use-chip-event.d.ts +1 -0
  85. package/dist/lib/components/ui/widgets/event-calendar/use-drawn-events.d.ts +4 -3
  86. package/dist/lib/components/ui/widgets/event-calendar/use-template-calendar.d.ts +18 -0
  87. package/dist/lib/components/ui/widgets/event-calendar/use-template-lane.d.ts +17 -0
  88. package/dist/lib/hooks/index.d.ts +1 -0
  89. package/dist/lib/i18n/resources/en/en.d.ts +2 -0
  90. package/dist/lib/i18n/resources/en/material.json.d.ts +2 -0
  91. package/dist/lib/i18n/resources/fr/fr.d.ts +2 -0
  92. package/dist/lib/i18n/resources/fr/material.json.d.ts +2 -0
  93. package/dist/lib/i18n/resources/resources.d.ts +4 -0
  94. package/dist/lib/i18n/translator.d.ts +1 -1
  95. package/dist/lib/illustrations-game/index.d.ts +4 -3
  96. package/dist/lib.js +2 -2
  97. package/dist/main.js +53 -52
  98. package/dist/map.js +7 -7
  99. package/dist/material.css +1 -1
  100. package/dist/pdf-reader.js +1 -1
  101. package/dist/{percent-field-C2LNr8NA.js → percent-field-QwU1l2Q4.js} +1 -1
  102. package/dist/{picker-surface-BUCFMoAZ.js → picker-surface-CiTycWgV.js} +4 -4
  103. package/dist/{popover-DFRwQF12.js → popover-YmbzbKQG.js} +1 -1
  104. package/dist/{pos-types-CXnEdjdy.js → pos-types-BFrapNmx.js} +1 -1
  105. package/dist/{pos-variant-DMwn_7is.js → pos-variant-CctfqieO.js} +4 -4
  106. package/dist/print.js +1 -1
  107. package/dist/{programmer-variant-Bo4eiDFi.js → programmer-variant-Dd0YOixn.js} +2 -2
  108. package/dist/{public-CyQPkkSR.js → public-CshR_aW7.js} +10 -10
  109. package/dist/{rich-code-block-iK7UcZdc.js → rich-code-block-BuJLDoBu.js} +5 -5
  110. package/dist/{scientific-variant-B9ScTgfx.js → scientific-variant-CjErQxuZ.js} +2 -2
  111. package/dist/{sortable-provider-BZwVjSVU.js → sortable-provider-DU2nvpFc.js} +2 -2
  112. package/dist/{spinner-RITOxvpH.js → spinner-DH1mm8hH.js} +1 -1
  113. package/dist/{tabs-DSo4eCUn.js → tabs-Um0SFyf1.js} +1 -1
  114. package/dist/theme-picker.js +2 -2
  115. package/dist/{theme-toggle-3gbzQX0x.js → theme-toggle-C-Ih4uQU.js} +1 -1
  116. package/dist/{toolbar-items-Bt5RK-Nx.js → toolbar-items-BoEY5bkt.js} +4 -4
  117. package/dist/{translate-material-CZTGqgen.js → translate-material-D4rn5UaQ.js} +1 -1
  118. package/dist/{translator-DTlOlIoq.js → translator-CcEgQ-H7.js} +4 -0
  119. package/dist/{use-chat-composer-DBY01IpX.js → use-chat-composer-BfFcmDua.js} +1439 -1391
  120. package/dist/{use-click-lock-BZYtTmVt.js → use-click-lock-Bwg_caHO.js} +14 -14
  121. package/dist/{use-heading-spy-Dt48bBts.js → use-heading-spy-gDNtK1sU.js} +19 -19
  122. package/dist/{use-material-translation-BJucC_xe.js → use-material-translation-DYrfV_JJ.js} +1 -1
  123. package/dist/{use-return-focus-BS1JLcnq.js → use-return-focus-C_Qz_yTk.js} +1 -1
  124. package/docs/README.md +1 -1
  125. package/docs/components/data-display.md +36 -8
  126. package/docs/components/data-table-filter-and-lists.md +7 -3
  127. package/docs/components/form-fields.md +6 -0
  128. package/docs/components/media-and-files.md +1 -0
  129. package/docs/components/navigation-and-layout.md +3 -1
  130. package/docs/components/overlays-and-menus.md +11 -5
  131. package/docs/components/rich-widgets.md +85 -1
  132. package/docs/components/selection-and-choice.md +49 -10
  133. package/docs/guides/forms.md +7 -0
  134. package/docs/guides/helpers.md +23 -0
  135. package/docs/guides/icon-motifs.md +1 -1
  136. package/docs/guides/illustrations.md +5 -5
  137. package/docs/guides/layouts.md +2 -2
  138. package/docs/guides/theming.md +7 -7
  139. package/docs/previews/data-display-tubecap.webp +0 -0
  140. package/docs/previews/feedback-status-illustration-game.webp +0 -0
  141. package/docs/previews/selection-choice-sortablelist.webp +0 -0
  142. package/docs/roadmap.md +3 -1
  143. package/docs/troubleshooting.md +50 -2
  144. package/lib/components/base-content.css +11 -0
  145. package/lib/components/components.css +2 -0
  146. package/lib/components/ui/collections/data-table/data-table-items-tiles.css +27 -1
  147. package/lib/components/ui/collections/data-table/data-table-items.css +15 -0
  148. package/lib/components/ui/display/tube-cap/tube-cap.css +87 -0
  149. package/lib/themes/ambre.css +1 -1
  150. package/lib/themes/ardoise.css +1 -1
  151. package/lib/themes/bleumono.css +1 -1
  152. package/lib/themes/bluemoon.css +1 -1
  153. package/lib/themes/corail.css +2 -2
  154. package/lib/themes/foret.css +1 -1
  155. package/lib/themes/lavande.css +1 -1
  156. package/lib/themes/menthe.css +2 -2
  157. package/lib/themes/ocean.css +1 -1
  158. package/lib/themes/pink.css +2 -2
  159. package/lib/themes/prune.css +1 -1
  160. package/lib/themes/sable.css +1 -1
  161. package/lib/themes/slate.css +1 -1
  162. package/lib/themes/teal.css +2 -2
  163. package/package.json +2 -2
@@ -65,8 +65,34 @@
65
65
  ) {
66
66
  outline-offset: -2px;
67
67
  }
68
- /* The checkbox is centred on the tile, not pinned to its corner. */
68
+ /* The checkbox sits on the tile's title row (#2391): its centre on the
69
+ * title's first line (1rem at 1.4, so 0.7rem under the tile's padding), not
70
+ * the tile's middle, which a multi-line tile moves down to the body text.
71
+ * The 36px box (44px on a coarse pointer) then starts at the padding minus
72
+ * the half-box plus the half-line. The tile's content starts at the top so
73
+ * the title is where the box expects it. */
74
+ [data-slot="data-table-tiles"]
75
+ > [data-slot="data-table-item"]:not(:has([data-slot="data-table-record"])) {
76
+ align-content: start;
77
+ }
69
78
  [data-slot="data-table-tiles"] [data-slot="data-table-item-select"] {
79
+ inset-block-start: 0.325rem;
80
+ }
81
+ [data-slot="data-table-tiles"][data-density="compact"]
82
+ [data-slot="data-table-item-select"] {
83
+ inset-block-start: 0.075rem;
84
+ }
85
+ @media (pointer: coarse) {
86
+ [data-slot="data-table-tiles"] [data-slot="data-table-item-select"],
87
+ [data-slot="data-table-tiles"][data-density="compact"]
88
+ [data-slot="data-table-item-select"] {
89
+ inset-block-start: 0.075rem;
90
+ }
91
+ }
92
+ /* A record row is one dense line: its box stays centred on it. */
93
+ [data-slot="data-table-tiles"]
94
+ > [data-slot="data-table-item"]:has([data-slot="data-table-record"])
95
+ [data-slot="data-table-item-select"] {
70
96
  inset-block-start: 50%;
71
97
  translate: 0 -50%;
72
98
  }
@@ -48,6 +48,21 @@
48
48
  gap: var(--nxgt-cards-gap, 0.75rem);
49
49
  grid-template-columns: minmax(0, 1fr);
50
50
  }
51
+ /* The list's 4px of ring room sits inside the scroll box, which clips: the
52
+ * box takes it back on each inline side, so the cards' edges (not the
53
+ * room's) meet the page's edge and the heading above (#2472); the parent needs 4px of inline room. */
54
+ [data-slot="table-wrapper"]:has(> [data-slot="data-table-cards"]) {
55
+ margin-inline: -4px;
56
+ /* `w-full` (utilities layer) would win over this layer. */
57
+ width: calc(100% + 8px) !important;
58
+ }
59
+ /* Tiles keep their own 4px margin, except on a phone (#2292). */
60
+ @media (min-width: 768px) {
61
+ [data-slot="table-wrapper"]:has(> [data-slot="data-table-tiles"]) {
62
+ margin-inline: -4px;
63
+ width: calc(100% + 8px) !important;
64
+ }
65
+ }
51
66
  @container (min-width: 36rem) {
52
67
  [data-slot="data-table-cards"] {
53
68
  grid-template-columns: repeat(2, minmax(0, 1fr));
@@ -0,0 +1,87 @@
1
+ /* TubeCap: a specimen tube's chip. The cap colours are the international tube
2
+ * convention, so they are fixed values, not theme tokens: the same in light
3
+ * and dark and in every theme. The swatch carries no text; the name beside it
4
+ * keeps the theme's foreground (AA by the theme), and a hairline in the
5
+ * foreground colour keeps a black or pale cap visible on either scheme. */
6
+ @layer components {
7
+ .nxgt-tube-cap {
8
+ --tube-cap: oklch(0.92 0 0);
9
+ --tube-cap-size: 1.75rem;
10
+ display: inline-flex;
11
+ align-items: center;
12
+ gap: 0.5rem;
13
+ max-inline-size: 100%;
14
+ min-inline-size: 0;
15
+ padding: 0.25rem 0.625rem 0.25rem 0.25rem;
16
+ border: 1px solid var(--border);
17
+ border-radius: 9999px;
18
+ background: var(--card, var(--background));
19
+ color: var(--foreground);
20
+ font-size: 0.875rem;
21
+ line-height: 1.25;
22
+ }
23
+ .nxgt-tube-cap[data-size="sm"] {
24
+ --tube-cap-size: 1.25rem;
25
+ font-size: 0.8125rem;
26
+ }
27
+ .nxgt-tube-cap[data-size="lg"] {
28
+ --tube-cap-size: 2.5rem;
29
+ font-size: 1rem;
30
+ }
31
+ .nxgt-tube-cap[data-kind="edta"] {
32
+ --tube-cap: oklch(0.62 0.13 300);
33
+ }
34
+ .nxgt-tube-cap[data-kind="heparin"] {
35
+ --tube-cap: oklch(0.62 0.17 145);
36
+ }
37
+ .nxgt-tube-cap[data-kind="citrate"] {
38
+ --tube-cap: oklch(0.8 0.1 230);
39
+ }
40
+ .nxgt-tube-cap[data-kind="esr"] {
41
+ --tube-cap: oklch(0.22 0 0);
42
+ }
43
+ .nxgt-tube-cap[data-kind="serum"] {
44
+ --tube-cap: oklch(0.55 0.21 27);
45
+ }
46
+ .nxgt-tube-cap[data-kind="gel"] {
47
+ --tube-cap: oklch(0.82 0.15 85);
48
+ }
49
+ .nxgt-tube-cap[data-kind="fluoride"] {
50
+ --tube-cap: oklch(0.68 0.01 260);
51
+ }
52
+ .nxgt-tube-cap[data-kind="trace"] {
53
+ --tube-cap: oklch(0.45 0.18 262);
54
+ }
55
+ .nxgt-tube-cap [data-slot="tube-cap-swatch"] {
56
+ flex: none;
57
+ box-sizing: border-box;
58
+ inline-size: var(--tube-cap-size);
59
+ block-size: var(--tube-cap-size);
60
+ border-radius: 9999px;
61
+ background: var(--tube-cap);
62
+ box-shadow: 0 0 0 1px
63
+ color-mix(in oklab, var(--foreground) 45%, transparent);
64
+ forced-color-adjust: none;
65
+ }
66
+ .nxgt-tube-cap [data-slot="tube-cap-text"] {
67
+ display: inline-flex;
68
+ flex-wrap: wrap;
69
+ align-items: baseline;
70
+ column-gap: 0.5rem;
71
+ min-inline-size: 0;
72
+ overflow-wrap: anywhere;
73
+ }
74
+ .nxgt-tube-cap [data-slot="tube-cap-label"] {
75
+ font-weight: 600;
76
+ }
77
+ .nxgt-tube-cap [data-slot="tube-cap-volume"],
78
+ .nxgt-tube-cap [data-slot="tube-cap-accession"] {
79
+ color: var(--muted-foreground);
80
+ font-variant-numeric: tabular-nums;
81
+ }
82
+ .nxgt-tube-cap [data-slot="tube-cap-action"] {
83
+ display: inline-flex;
84
+ flex: none;
85
+ margin-inline-start: 0.125rem;
86
+ }
87
+ }