@nxgt/material 3.36.0 → 3.38.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 (117) hide show
  1. package/CHANGELOG.md +33 -0
  2. package/README.md +1 -1
  3. package/dist/{async-slice-BNI_F0jz.js → async-slice-DqjtOYlO.js} +2 -2
  4. package/dist/{button-EMWOFSDB.js → button-D52ron-a.js} +3 -2
  5. package/dist/charts.js +3 -3
  6. package/dist/{chip-B6m3yagf.js → chip-0XYwSp9o.js} +1 -1
  7. package/dist/{code-editor-BdiufnpC.js → code-editor-BetIXpJ6.js} +4 -4
  8. package/dist/code-editor.js +4 -4
  9. package/dist/{code-language-items-v5Rnq425.js → code-language-items-C7prxl_7.js} +2 -2
  10. package/dist/components/components.css +2 -0
  11. package/dist/components/ui/collections/server-table/server-table-phone-row.css +189 -0
  12. package/dist/{components-C0WjV2oy.js → components-NoCZ44Ri.js} +15551 -15316
  13. package/dist/components.js +24 -24
  14. package/dist/{dialog-DR9rACzY.js → dialog-BCsT_aLo.js} +1 -1
  15. package/dist/dnd.js +1 -1
  16. package/dist/{dropdown-menu-CpSnRXd-.js → dropdown-menu-Crt5QvTr.js} +1 -1
  17. package/dist/editor.js +908 -909
  18. package/dist/{empty-state-DMr94lsF.js → empty-state-DFWq2CWB.js} +1 -1
  19. package/dist/hooks.js +2 -2
  20. package/dist/{i18n-provider-A4mI4vc1.js → i18n-provider-C0RBM8rH.js} +1 -1
  21. package/dist/i18n.js +5 -5
  22. package/dist/{icon-badge-DXEBeS1y.js → icon-badge-XBoBIt_R.js} +1 -1
  23. package/dist/lib/components/ui/actions/button/button.d.ts +8 -0
  24. package/dist/lib/components/ui/collections/data-table/data-table-list-slots.d.ts +12 -0
  25. package/dist/lib/components/ui/collections/data-table/hooks.d.ts +6 -1
  26. package/dist/lib/components/ui/collections/data-table/internal.d.ts +1 -0
  27. package/dist/lib/components/ui/collections/data-table/partials/layouts/data-table-list-bar.d.ts +11 -1
  28. package/dist/lib/components/ui/collections/data-table/select-checkbox.d.ts +9 -1
  29. package/dist/lib/components/ui/collections/filter/bar/filter-bar-view.d.ts +1 -1
  30. package/dist/lib/components/ui/collections/filter/facets/filter-facets.d.ts +1 -1
  31. package/dist/lib/components/ui/collections/filter/facets/partials/filter-facets-footer.d.ts +4 -1
  32. package/dist/lib/components/ui/collections/filter/facets/partials/filter-facets-panel.d.ts +3 -1
  33. package/dist/lib/components/ui/collections/filter/filter-presets.d.ts +1 -1
  34. package/dist/lib/components/ui/collections/filter/internal.d.ts +1 -0
  35. package/dist/lib/components/ui/collections/filter/query/types.d.ts +13 -0
  36. package/dist/lib/components/ui/collections/filter/sections/sheet/filter-sheet-footer.d.ts +3 -1
  37. package/dist/lib/components/ui/collections/filter/sections/sheet/filter-sheet.d.ts +3 -1
  38. package/dist/lib/components/ui/collections/filter/types-props.d.ts +3 -0
  39. package/dist/lib/components/ui/collections/server-table/partials/server-table-band-classes.d.ts +10 -0
  40. package/dist/lib/components/ui/collections/server-table/partials/server-table-band.d.ts +13 -2
  41. package/dist/lib/components/ui/collections/server-table/partials/server-table-bulk-buttons.d.ts +6 -2
  42. package/dist/lib/components/ui/collections/server-table/partials/server-table-bulk.d.ts +10 -0
  43. package/dist/lib/components/ui/collections/server-table/partials/server-table-phone-row.d.ts +17 -0
  44. package/dist/lib/components/ui/feedback/confirm-dialog/confirm-dialog.d.ts +7 -1
  45. package/dist/lib/components/ui/feedback/confirmation-dialog/confirmation-dialog.d.ts +7 -1
  46. package/dist/lib/components/ui/fields/attributes/attribute-dialog.d.ts +4 -1
  47. package/dist/lib/components/ui/fields/attributes/attributes-field/attributes-dialog-field.d.ts +4 -1
  48. package/dist/lib/components/ui/fields/attributes/attributes-field/attributes-inline-field.d.ts +1 -1
  49. package/dist/lib/components/ui/fields/contacts/contact-dialog.d.ts +4 -1
  50. package/dist/lib/components/ui/fields/contacts/contacts-dialog-form-field.d.ts +4 -1
  51. package/dist/lib/components/ui/fields/contacts/contacts-form-field.d.ts +4 -1
  52. package/dist/lib/components/ui/fields/contacts/placeholders.d.ts +1 -1
  53. package/dist/lib/components/ui/fields/opening-hours/opening-hours-dialog-form-field.d.ts +4 -1
  54. package/dist/lib/components/ui/fields/opening-hours/opening-hours-dialog.d.ts +4 -1
  55. package/dist/lib/components/ui/fields/opening-hours/opening-hours-form-field.d.ts +4 -1
  56. package/dist/lib/components/ui/fields/postal-address/postal-address-dialog.d.ts +4 -1
  57. package/dist/lib/components/ui/fields/postal-address/postal-address-form-field.d.ts +4 -1
  58. package/dist/lib/components/ui/layout/app-shell/activity-column.d.ts +2 -2
  59. package/dist/lib/components/ui/layout/app-shell/activity-layout.d.ts +1 -1
  60. package/dist/lib/components/ui/layout/app-shell/activity-layout.types.d.ts +18 -1
  61. package/dist/lib/components/ui/layout/app-shell/app-breadcrumb.d.ts +20 -4
  62. package/dist/lib/components/ui/layout/app-shell/header-context.d.ts +10 -0
  63. package/dist/lib/components/ui/layout/app-shell/header-title.d.ts +5 -1
  64. package/dist/lib/components/ui/layout/app-shell/page-title.d.ts +21 -2
  65. package/dist/lib/components/ui/media/image-cropper/image-cropper.d.ts +4 -1
  66. package/dist/lib/components/ui/selection/chip-group-field/chip-group-columns.d.ts +3 -0
  67. package/dist/lib/components/ui/selection/chip-group-field/chip-group-field.d.ts +28 -5
  68. package/dist/lib/components/ui/selection/chip-group-field/chip-group-field.types.d.ts +17 -0
  69. package/dist/lib/components/ui/selection/chip-group-field/partials/chip-group-option.d.ts +7 -3
  70. package/dist/lib/components/ui/selection/chip-group-field/partials/chip-group-sections.d.ts +13 -0
  71. package/dist/lib/components/ui/selection/choice-group/choice-key-target.d.ts +1 -1
  72. package/dist/lib/components/ui/selection/choice-group/choice-press.d.ts +2 -0
  73. package/dist/lib/components/ui/selection/choice-group/use-choice-group-field.d.ts +3 -1
  74. package/dist/lib/components/ui/selection/choice-group/use-choice-group.d.ts +2 -0
  75. package/dist/lib/components/ui/widgets/event-calendar/event-calendar-events.utils.d.ts +11 -1
  76. package/dist/lib/components/ui/widgets/rich-text-editor/types.d.ts +3 -0
  77. package/dist/lib/i18n/resources/en/en.d.ts +1 -0
  78. package/dist/lib/i18n/resources/en/material.json.d.ts +2 -1
  79. package/dist/lib/i18n/resources/fr/fr.d.ts +1 -0
  80. package/dist/lib/i18n/resources/fr/material.json.d.ts +2 -1
  81. package/dist/lib/i18n/resources/resources.d.ts +2 -0
  82. package/dist/lib/i18n/translator.d.ts +1 -1
  83. package/dist/lib.js +1 -1
  84. package/dist/main.js +41 -41
  85. package/dist/map.js +4 -4
  86. package/dist/material.css +1 -1
  87. package/dist/pdf-reader.js +1 -1
  88. package/dist/print.js +2 -2
  89. package/dist/{public-f9CBkMZP.js → public-CWIpzLzO.js} +6 -6
  90. package/dist/{rich-code-block-Bwhfhu7J.js → rich-code-block-C4aBv4cA.js} +4 -4
  91. package/dist/{sortable-provider-BshacF8v.js → sortable-provider-0uBi0zcP.js} +3 -2
  92. package/dist/{spinner-CKlDba5I.js → spinner-CuxEwO0d.js} +1 -1
  93. package/dist/{stored-language-CfQGHLq9.js → stored-language-D8aemZhx.js} +4 -2
  94. package/dist/theme-picker.js +2 -2
  95. package/dist/{theme-toggle--Zcf5AM8.js → theme-toggle-ik5nV1P5.js} +1 -1
  96. package/dist/{toolbar-items-B1W-uVHS.js → toolbar-items-C97E5HRa.js} +2 -2
  97. package/dist/{translate-material-xDh10aWZ.js → translate-material-B84ufMSF.js} +2 -2
  98. package/dist/{translator-BbOZntEF.js → translator-Bq8UHmvu.js} +1 -1
  99. package/dist/{use-chat-composer-C5g_Va_g.js → use-chat-composer-DmDcEGp4.js} +2317 -2190
  100. package/dist/{use-heading-spy-DXYCeegh.js → use-heading-spy-BgG7Q47k.js} +1 -1
  101. package/dist/{use-material-translation-BK2YYCY3.js → use-material-translation-CiYhVc39.js} +2 -2
  102. package/docs/components/buttons-and-actions.md +19 -1
  103. package/docs/components/data-table-filter-and-lists.md +65 -3
  104. package/docs/components/feedback-and-status.md +3 -1
  105. package/docs/components/form-fields.md +10 -4
  106. package/docs/components/media-and-files.md +1 -0
  107. package/docs/components/navigation-and-layout.md +4 -2
  108. package/docs/components/primitives.md +1 -1
  109. package/docs/components/rich-widgets.md +2 -2
  110. package/docs/components/selection-and-choice.md +67 -3
  111. package/docs/guides/app-shell.md +91 -2
  112. package/docs/guides/cards-and-tiles.md +5 -0
  113. package/docs/guides/i18n.md +1 -1
  114. package/docs/roadmap.md +5 -1
  115. package/lib/components/components.css +2 -0
  116. package/lib/components/ui/collections/server-table/server-table-phone-row.css +189 -0
  117. package/package.json +1 -1
@@ -0,0 +1,189 @@
1
+ /* ServerTable's second header row below 768px (#1719): the list's "Select all"
2
+ * (or the count and "Clear selection") at the start; the sort, "Filters (N)"
3
+ * and the page's actions at the end. Logical properties throughout. The list
4
+ * bar's own rules (data-table-items-bar.css) answer to the list's width; here
5
+ * the row is the band's, so they are restated for its slots.
6
+ *
7
+ * Unlayered on purpose: the buttons' sizes are Tailwind utilities (`min-w-0`,
8
+ * `px-*`), a layer that comes after `components`. */
9
+ /* The row is the container the compactions below answer to: the band's
10
+ * width, not the window's (a page may pad it). */
11
+ [data-slot="server-table-phone-row"] {
12
+ container: server-table-phone-row / inline-size;
13
+ }
14
+ [data-slot="server-table-phone-row-start"]
15
+ > [data-slot="data-table-list-bar-start"] {
16
+ flex-wrap: nowrap;
17
+ gap: 0.25rem 0.5rem;
18
+ }
19
+ [data-slot="data-table-list-bar-start"][data-in-row] {
20
+ /* A fixed row: the 44px box's height on a coarse pointer, the 36px
21
+ * buttons' otherwise, so the count and the label swap with no move. */
22
+ min-height: 2.25rem;
23
+ }
24
+ [data-slot="data-table-list-bar-start"][data-in-row]
25
+ [data-slot="data-table-list-bar-count"] {
26
+ min-width: 0;
27
+ overflow-wrap: anywhere;
28
+ line-height: 1.15;
29
+ }
30
+ [data-slot="data-table-list-bar-start"][data-in-row][data-selected]
31
+ [data-slot="data-table-list-bar-count"] {
32
+ color: var(--primary-text);
33
+ }
34
+ [data-slot="server-table-phone-row"] [data-slot="data-table-list-bar-clear"] {
35
+ aspect-ratio: 1;
36
+ min-width: 2.25rem;
37
+ padding-inline: 0;
38
+ }
39
+ [data-slot="server-table-phone-row"] [data-slot="data-table-sort"] {
40
+ max-width: 9rem;
41
+ }
42
+ /* Room on a phone: the sort keeps its icon and its arrow (its name, "Sort:
43
+ * Name, Ascending", is still its accessible name); while rows are selected,
44
+ * and on a narrow band, "Filters (N)" keeps its icon and its count, and the
45
+ * name too. The count and "Clear selection" need the room. */
46
+ @container server-table-phone-row (max-width: 30rem) {
47
+ [data-slot="data-table-sort-label"] {
48
+ position: absolute;
49
+ width: 1px;
50
+ height: 1px;
51
+ overflow: hidden;
52
+ clip-path: inset(50%);
53
+ white-space: nowrap;
54
+ }
55
+ [data-slot="server-table-phone-row"]:has(
56
+ [data-slot="data-table-list-bar-start"][data-selected]
57
+ )
58
+ [data-slot="filter-sheet-trigger"]
59
+ > [data-slot="button-label"] {
60
+ position: absolute;
61
+ width: 1px;
62
+ height: 1px;
63
+ overflow: hidden;
64
+ clip-path: inset(50%);
65
+ white-space: nowrap;
66
+ }
67
+ }
68
+ @container server-table-phone-row (max-width: 19rem) {
69
+ [data-slot="filter-sheet-trigger"] > [data-slot="button-label"] {
70
+ position: absolute;
71
+ width: 1px;
72
+ height: 1px;
73
+ overflow: hidden;
74
+ clip-path: inset(50%);
75
+ white-space: nowrap;
76
+ }
77
+ }
78
+ /* Icon-only: a button of the actions with an icon loses its label to its
79
+ * name and tooltip (a button without an icon keeps its text). */
80
+ [data-slot="server-table-phone-row"]
81
+ [data-slot="server-table-actions"]
82
+ [data-slot="button"]:has(> svg:only-of-type) {
83
+ aspect-ratio: 1;
84
+ min-width: 2.25rem;
85
+ padding-inline: 0;
86
+ }
87
+ @media (pointer: coarse) {
88
+ [data-slot="server-table-phone-row"] [data-slot="data-table-list-bar-clear"],
89
+ [data-slot="server-table-phone-row"]
90
+ [data-slot="server-table-actions"]
91
+ [data-slot="button"]:has(> svg:only-of-type) {
92
+ min-width: 2.75rem;
93
+ min-height: 2.75rem;
94
+ }
95
+ /* The 44px box sits at the row's edge: the label's 14px of room
96
+ * is taken back, so the box lines up with the search above. */
97
+ [data-slot="server-table-phone-row-start"]
98
+ [data-slot="select-checkbox-label"] {
99
+ margin-inline-start: -0.875rem;
100
+ }
101
+ }
102
+ [data-slot="server-table-phone-row"]
103
+ [data-slot="data-table-list-bar-clear-label"],
104
+ [data-slot="server-table-phone-row"] [data-slot="data-table-sort-prefix"],
105
+ [data-slot="server-table-phone-row"]
106
+ [data-slot="server-table-actions"]
107
+ [data-slot="button"]:has(> svg:only-of-type)
108
+ > [data-slot="button-label"] {
109
+ position: absolute;
110
+ width: 1px;
111
+ height: 1px;
112
+ overflow: hidden;
113
+ clip-path: inset(50%);
114
+ white-space: nowrap;
115
+ }
116
+
117
+ /* While rows are selected the row is the selection bar: the bulk actions take
118
+ * the place of the sort, "Filters (N)" and the page's actions, which are
119
+ * hidden (not unmounted) and come back once the selection is empty. */
120
+ [data-slot="server-table-phone-row"][data-selecting]
121
+ [data-slot="server-table-phone-sort"],
122
+ [data-slot="server-table-phone-row"][data-selecting]
123
+ [data-slot="filter-sheet-trigger"],
124
+ [data-slot="server-table-phone-row"][data-selecting]
125
+ [data-slot="server-table-actions"] {
126
+ display: none;
127
+ }
128
+ /* The bulk buttons keep icon, label and count; they wrap onto a second line
129
+ * rather than scroll, and a long label is cut to the row's width. */
130
+ [data-slot="server-table-phone-bulk"] {
131
+ flex: 1 1 auto;
132
+ justify-content: flex-end;
133
+ }
134
+ [data-slot="server-table-phone-bulk"] [data-slot="button"] {
135
+ max-width: 100%;
136
+ }
137
+ /* The menu trigger's own item radius would square the More
138
+ * button: it keeps its siblings' pill, and so does its focus ring. */
139
+ [data-slot="server-table-phone-bulk"] [data-slot="dropdown-menu-trigger"] {
140
+ border-radius: var(--btn-rad, var(--btn-round));
141
+ }
142
+ /* An icon with its tone at full strength: the duotone's second layer is
143
+ * drawn at 40% by default, which on its own, in a button with no text, reads
144
+ * as disabled. */
145
+ [data-slot="server-table-phone-row"]
146
+ [data-slot="server-table-actions"]
147
+ [data-slot="button"]:has(> svg:only-of-type) {
148
+ --fa-secondary-opacity: 1;
149
+ }
150
+ /* The selection bar wraps: the count and Clear keep their own width on the
151
+ * first line, the bulk buttons take the rest of it, or a line of their own
152
+ * (right-aligned) when they do not fit beside it; they wrap again inside it. */
153
+ [data-slot="server-table-phone-row"][data-selecting] {
154
+ flex-wrap: wrap;
155
+ row-gap: 0.25rem;
156
+ }
157
+ [data-slot="server-table-phone-row"][data-selecting]
158
+ [data-slot="server-table-phone-row-start"] {
159
+ flex: 0 0 auto;
160
+ }
161
+ [data-slot="server-table-phone-row"][data-selecting]
162
+ [data-slot="data-table-list-bar-count"] {
163
+ white-space: nowrap;
164
+ }
165
+ [data-slot="server-table-phone-row"][data-selecting]
166
+ [data-slot="server-table-phone-row-end"] {
167
+ flex: 1 1 auto;
168
+ min-width: 0;
169
+ }
170
+ /* The row is at least as high as the actions (40px, 44px on a coarse
171
+ * pointer), so selecting moves nothing; it grows when the bulk buttons wrap. */
172
+ [data-slot="server-table-phone-row"] {
173
+ min-height: 2.5rem;
174
+ }
175
+ @media (pointer: coarse) {
176
+ [data-slot="server-table-phone-row"] {
177
+ min-height: 2.75rem;
178
+ }
179
+ }
180
+ @media (pointer: coarse) {
181
+ /* The 32px bulk buttons reach 44px with an invisible 6px margin: a gap of
182
+ * 12px keeps neighbours from taking each other's edge. */
183
+ [data-slot="server-table-phone-row"][data-selecting] {
184
+ gap: 0.75rem;
185
+ }
186
+ [data-slot="server-table-phone-bulk"] {
187
+ gap: 0.75rem;
188
+ }
189
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nxgt/material",
3
- "version": "3.36.0",
3
+ "version": "3.38.0",
4
4
  "license": "MIT",
5
5
  "bugs": {
6
6
  "email": "stevegires@gmail.com"