@schukai/monster 4.148.8 → 4.149.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 (209) hide show
  1. package/package.json +1 -1
  2. package/source/components/accessibility/stylesheet/locale-picker.mjs +61 -1
  3. package/source/components/content/image-editor.mjs +79 -11
  4. package/source/components/content/style/copy.pcss +1 -1
  5. package/source/components/content/stylesheet/camera-capture.mjs +1 -1
  6. package/source/components/content/stylesheet/copy.mjs +1 -1
  7. package/source/components/content/stylesheet/fetch-box.mjs +1 -1
  8. package/source/components/content/stylesheet/viewer.mjs +61 -1
  9. package/source/components/data/kpi-tile.mjs +5 -3
  10. package/source/components/data/metric-graph.mjs +22 -20
  11. package/source/components/data/metric.mjs +20 -18
  12. package/source/components/data/style/kpi-tile.pcss +65 -43
  13. package/source/components/data/style/metric-graph.pcss +35 -18
  14. package/source/components/data/style/metric.pcss +35 -28
  15. package/source/components/data/stylesheet/kpi-tile.mjs +61 -1
  16. package/source/components/data/stylesheet/metric-graph.mjs +61 -1
  17. package/source/components/data/stylesheet/metric.mjs +61 -1
  18. package/source/components/datatable/columnbar.mjs +4 -2
  19. package/source/components/datatable/datatable.mjs +73 -15
  20. package/source/components/datatable/filter/date-range.mjs +61 -61
  21. package/source/components/datatable/filter/date-time.mjs +5 -1
  22. package/source/components/datatable/filter/range.mjs +3 -3
  23. package/source/components/datatable/filter/select-operator.mjs +7 -1
  24. package/source/components/datatable/filter/text-operator.mjs +11 -3
  25. package/source/components/datatable/filter.mjs +16 -0
  26. package/source/components/datatable/pagination.mjs +2 -2
  27. package/source/components/datatable/style/column-bar.pcss +115 -23
  28. package/source/components/datatable/style/datatable.pcss +257 -29
  29. package/source/components/datatable/style/embedded-pagination.pcss +63 -34
  30. package/source/components/datatable/style/filter-button.pcss +1 -1
  31. package/source/components/datatable/style/filter-controls-defaults.pcss +49 -3
  32. package/source/components/datatable/style/filter-select.pcss +4 -1
  33. package/source/components/datatable/style/filter.pcss +18 -1
  34. package/source/components/datatable/stylesheet/change-button.mjs +61 -1
  35. package/source/components/datatable/stylesheet/column-bar.mjs +69 -1
  36. package/source/components/datatable/stylesheet/dataset.mjs +61 -1
  37. package/source/components/datatable/stylesheet/datatable.mjs +71 -1
  38. package/source/components/datatable/stylesheet/embedded-pagination.mjs +1 -1
  39. package/source/components/datatable/stylesheet/filter-button.mjs +1 -1
  40. package/source/components/datatable/stylesheet/filter-controls-defaults.mjs +1 -1
  41. package/source/components/datatable/stylesheet/filter-select.mjs +61 -1
  42. package/source/components/datatable/stylesheet/filter.mjs +61 -1
  43. package/source/components/datatable/stylesheet/pagination.mjs +67 -1
  44. package/source/components/datatable/stylesheet/save-button.mjs +61 -1
  45. package/source/components/datatable/stylesheet/status.mjs +61 -1
  46. package/source/components/form/action-button.mjs +2 -1
  47. package/source/components/form/button-bar.mjs +7 -2
  48. package/source/components/form/context-error.mjs +4 -3
  49. package/source/components/form/context-help.mjs +10 -4
  50. package/source/components/form/context-hint.mjs +1 -1
  51. package/source/components/form/context-info.mjs +1 -1
  52. package/source/components/form/context-note.mjs +1 -1
  53. package/source/components/form/context-success.mjs +1 -1
  54. package/source/components/form/context-warning.mjs +1 -1
  55. package/source/components/form/control-bar.mjs +300 -14
  56. package/source/components/form/credential-button.mjs +4 -2
  57. package/source/components/form/digits.mjs +28 -1
  58. package/source/components/form/field-set.mjs +30 -0
  59. package/source/components/form/login.mjs +13 -10
  60. package/source/components/form/password.mjs +6 -0
  61. package/source/components/form/popper-button.mjs +1 -1
  62. package/source/components/form/quantity.mjs +14 -6
  63. package/source/components/form/register-wizard.mjs +46 -26
  64. package/source/components/form/select.mjs +17 -10
  65. package/source/components/form/sheet.mjs +13 -2
  66. package/source/components/form/style/action-button.pcss +131 -5
  67. package/source/components/form/style/button-bar.pcss +204 -3
  68. package/source/components/form/style/control-bar.pcss +254 -26
  69. package/source/components/form/style/digits.pcss +7 -6
  70. package/source/components/form/style/input-group.pcss +65 -1
  71. package/source/components/form/style/login.pcss +1 -1
  72. package/source/components/form/style/mixin/field-set-layout.pcss +8 -0
  73. package/source/components/form/style/password.pcss +25 -1
  74. package/source/components/form/style/popper-button.pcss +1 -0
  75. package/source/components/form/style/quantity.pcss +11 -20
  76. package/source/components/form/style/select.pcss +52 -7
  77. package/source/components/form/style/sheet.pcss +70 -1
  78. package/source/components/form/style/state-button.pcss +5 -2
  79. package/source/components/form/style/toggle-switch.pcss +7 -4
  80. package/source/components/form/stylesheet/action-button.mjs +63 -1
  81. package/source/components/form/stylesheet/button-bar.mjs +153 -1
  82. package/source/components/form/stylesheet/button.mjs +61 -1
  83. package/source/components/form/stylesheet/control-bar.mjs +163 -1
  84. package/source/components/form/stylesheet/digits.mjs +1 -1
  85. package/source/components/form/stylesheet/field-layout.mjs +1 -1
  86. package/source/components/form/stylesheet/field-set.mjs +1 -1
  87. package/source/components/form/stylesheet/form.mjs +1 -1
  88. package/source/components/form/stylesheet/input-group.mjs +15 -1
  89. package/source/components/form/stylesheet/login.mjs +1 -1
  90. package/source/components/form/stylesheet/password.mjs +7 -1
  91. package/source/components/form/stylesheet/popper-button.mjs +61 -1
  92. package/source/components/form/stylesheet/quantity.mjs +1 -1
  93. package/source/components/form/stylesheet/register-wizard.mjs +1 -1
  94. package/source/components/form/stylesheet/select.mjs +3 -1
  95. package/source/components/form/stylesheet/sheet.mjs +1 -1
  96. package/source/components/form/stylesheet/state-button.mjs +3 -1
  97. package/source/components/form/stylesheet/toggle-switch.mjs +1 -1
  98. package/source/components/form/stylesheet/wizard.mjs +1 -1
  99. package/source/components/form/util/floating-ui.mjs +35 -7
  100. package/source/components/host/call-button.mjs +3 -1
  101. package/source/components/host/stylesheet/call-button.mjs +61 -1
  102. package/source/components/host/stylesheet/host.mjs +1 -1
  103. package/source/components/host/stylesheet/toggle-button.mjs +61 -1
  104. package/source/components/layout/full-screen.mjs +31 -23
  105. package/source/components/layout/iframe.mjs +5 -1
  106. package/source/components/layout/popper.mjs +34 -4
  107. package/source/components/layout/style/full-screen.pcss +94 -23
  108. package/source/components/layout/style/split-panel.pcss +57 -5
  109. package/source/components/layout/style/tabs.pcss +277 -47
  110. package/source/components/layout/style/vertical-tabs.pcss +147 -0
  111. package/source/components/layout/stylesheet/collapse.mjs +61 -1
  112. package/source/components/layout/stylesheet/details.mjs +61 -1
  113. package/source/components/layout/stylesheet/full-screen.mjs +23 -1
  114. package/source/components/layout/stylesheet/overlay.mjs +1 -1
  115. package/source/components/layout/stylesheet/panel.mjs +1 -1
  116. package/source/components/layout/stylesheet/slider.mjs +1 -1
  117. package/source/components/layout/stylesheet/split-panel.mjs +17 -1
  118. package/source/components/layout/stylesheet/tabs.mjs +97 -1
  119. package/source/components/layout/stylesheet/vertical-tabs.mjs +33 -95
  120. package/source/components/layout/tabs.mjs +63 -0
  121. package/source/components/layout/vertical-tabs.mjs +63 -0
  122. package/source/components/navigation/stylesheet/site-navigation.mjs +1 -1
  123. package/source/components/navigation/stylesheet/table-of-content.mjs +1 -1
  124. package/source/components/navigation/stylesheet/wizard-navigation.mjs +1 -1
  125. package/source/components/navigation/table-of-content.mjs +13 -0
  126. package/source/components/notify/style/notify.pcss +1 -2
  127. package/source/components/notify/stylesheet/message.mjs +1 -1
  128. package/source/components/notify/stylesheet/notify.mjs +1 -1
  129. package/source/components/state/style/log.pcss +1 -0
  130. package/source/components/state/style/state.pcss +5 -1
  131. package/source/components/state/stylesheet/log.mjs +1 -1
  132. package/source/components/state/stylesheet/state.mjs +7 -1
  133. package/source/components/style/button.css +61 -205
  134. package/source/components/style/button.pcss +78 -34
  135. package/source/components/style/common.css +1 -170
  136. package/source/components/style/common.pcss +5 -9
  137. package/source/components/style/form.css +1 -49
  138. package/source/components/style/form.pcss +24 -6
  139. package/source/components/style/link.css +1 -39
  140. package/source/components/style/link.pcss +8 -16
  141. package/source/components/style/mixin/button.pcss +19 -10
  142. package/source/components/style/mixin/property.pcss +8 -0
  143. package/source/components/style/mixin/skeleton.pcss +11 -5
  144. package/source/components/style/normalize.css +1 -144
  145. package/source/components/style/normalize.pcss +5 -5
  146. package/source/components/style/property.css +1 -387
  147. package/source/components/style/skeleton.css +1 -198
  148. package/source/components/style/skeleton.pcss +8 -2
  149. package/source/components/style/theme-modern.css +74 -0
  150. package/source/components/style/theme-modern.pcss +498 -0
  151. package/source/components/stylesheet/button.mjs +61 -1
  152. package/source/components/stylesheet/common.mjs +1 -1
  153. package/source/components/stylesheet/form.mjs +1 -1
  154. package/source/components/stylesheet/link.mjs +1 -1
  155. package/source/components/stylesheet/normalize.mjs +1 -1
  156. package/source/components/stylesheet/property.mjs +1 -1
  157. package/source/components/stylesheet/skeleton.mjs +1 -1
  158. package/source/components/stylesheet/theme-modern.mjs +110 -0
  159. package/source/components/time/stylesheet/day.mjs +61 -1
  160. package/source/components/time/stylesheet/month-calendar.mjs +61 -1
  161. package/source/components/time/timeline/stylesheet/appointment.mjs +61 -1
  162. package/source/components/time/timeline/stylesheet/segment.mjs +61 -1
  163. package/source/components/tree-menu/style/tree-menu.pcss +26 -37
  164. package/source/components/tree-menu/stylesheet/tree-menu.mjs +1 -1
  165. package/source/dom/customelement.mjs +105 -40
  166. package/source/dom/updater.mjs +381 -119
  167. package/test/cases/components/content/image-editor.mjs +19 -0
  168. package/test/cases/components/datatable/accessibility-defaults.mjs +112 -0
  169. package/test/cases/components/datatable/filter-availability.mjs +37 -0
  170. package/test/cases/components/datatable/filter-date-range-layout.mjs +40 -0
  171. package/test/cases/components/datatable/filter-select-operator.mjs +118 -0
  172. package/test/cases/components/datatable/mobile-layout.mjs +203 -0
  173. package/test/cases/components/datatable/responsive-breakpoint.mjs +41 -0
  174. package/test/cases/components/datatable/selection.mjs +149 -0
  175. package/test/cases/components/form/action-button-style.mjs +85 -0
  176. package/test/cases/components/form/button-bar.mjs +222 -3
  177. package/test/cases/components/form/context-theme-colors.mjs +59 -0
  178. package/test/cases/components/form/control-bar.mjs +228 -3
  179. package/test/cases/components/form/control-heights.mjs +103 -0
  180. package/test/cases/components/form/digits-accessibility.mjs +65 -0
  181. package/test/cases/components/form/field-set.mjs +54 -0
  182. package/test/cases/components/form/floating-ui.mjs +74 -0
  183. package/test/cases/components/form/input-group.mjs +61 -28
  184. package/test/cases/components/form/login.mjs +47 -0
  185. package/test/cases/components/form/password.mjs +63 -0
  186. package/test/cases/components/form/popper-button.mjs +30 -15
  187. package/test/cases/components/form/quantity-accessibility.mjs +46 -0
  188. package/test/cases/components/form/register-wizard.mjs +79 -0
  189. package/test/cases/components/form/select.mjs +94 -2
  190. package/test/cases/components/form/sheet.mjs +56 -2
  191. package/test/cases/components/host/toggle-button.mjs +50 -0
  192. package/test/cases/components/layout/full-screen.mjs +60 -0
  193. package/test/cases/components/layout/iframe-accessibility.mjs +44 -0
  194. package/test/cases/components/layout/popper.mjs +128 -0
  195. package/test/cases/components/layout/slit-panel.mjs +30 -1
  196. package/test/cases/components/layout/tabs.mjs +93 -0
  197. package/test/cases/components/navigation/table-of-content.mjs +18 -0
  198. package/test/cases/components/state/state-style.mjs +31 -0
  199. package/test/cases/components/style/action-menu.mjs +74 -0
  200. package/test/cases/components/style/form-controls.mjs +37 -0
  201. package/test/cases/components/style/kpi-tile.mjs +60 -0
  202. package/test/cases/components/style/legacy-theme-compatibility.mjs +137 -0
  203. package/test/cases/components/style/metric-layout.mjs +94 -0
  204. package/test/cases/components/style/skeleton.mjs +69 -0
  205. package/test/cases/components/style/theme-component-catalog.mjs +853 -0
  206. package/test/cases/components/style/theme-modern.mjs +439 -0
  207. package/test/cases/components/style/theme-review-regressions.mjs +41 -0
  208. package/test/cases/dom/customelement.mjs +136 -1
  209. package/test/cases/dom/updater.mjs +174 -0
@@ -28,30 +28,71 @@
28
28
  & li {
29
29
  list-style: none;
30
30
  padding: 0;
31
- margin: 0 5px 0 0;
31
+ margin: 0;
32
32
  display: flex;
33
33
  background-clip: border-box;
34
34
 
35
- & .is-visible {
36
- mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 16 16'%3E%3Cpath d='M8 15A7 7 0 1 1 8 1a7 7 0 0 1 0 14zm0 1A8 8 0 1 0 8 0a8 8 0 0 0 0 16z'/%3E%3C/svg%3E");
37
- background-color: var(--monster-bg-color-primary-4);
38
- background-repeat: no-repeat no-repeat;
39
- background-position: center center;
40
- background-size: cover;
41
-
42
- width: 8px;
43
- height: 8px;
44
- }
45
-
46
- & .is-hidden {
47
- mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 16 16'%3E%3Ccircle cx='8' cy='8' r='8'/%3E%3C/svg%3E");
48
- background-color: var(--monster-bg-color-primary-4);
49
- background-repeat: no-repeat no-repeat;
50
- background-position: center center;
51
- background-size: cover;
52
- width: 8px;
53
- height: 8px;
54
- }
35
+ & .is-visible {
36
+ background: transparent;
37
+ border: 0;
38
+ box-shadow: none;
39
+ cursor: pointer;
40
+ height:
41
+ var(
42
+ --monster-column-toggle-target-block-size,
43
+ var(--monster-column-toggle-target-size, 24px)
44
+ );
45
+ padding: 0;
46
+ width:
47
+ var(
48
+ --monster-column-toggle-target-inline-size,
49
+ var(--monster-column-toggle-target-size, 16px)
50
+ );
51
+ }
52
+
53
+ & .is-hidden {
54
+ background: transparent;
55
+ border: 0;
56
+ box-shadow: none;
57
+ cursor: pointer;
58
+ height:
59
+ var(
60
+ --monster-column-toggle-target-block-size,
61
+ var(--monster-column-toggle-target-size, 24px)
62
+ );
63
+ padding: 0;
64
+ width:
65
+ var(
66
+ --monster-column-toggle-target-inline-size,
67
+ var(--monster-column-toggle-target-size, 16px)
68
+ );
69
+ }
70
+
71
+ & .is-visible::before,
72
+ & .is-hidden::before {
73
+ background-color: var(--monster-bg-color-primary-4);
74
+ content: "";
75
+ display: block;
76
+ height: 8px;
77
+ margin: auto;
78
+ mask-position: center;
79
+ mask-repeat: no-repeat;
80
+ mask-size: 8px 8px;
81
+ width: 8px;
82
+ }
83
+
84
+ & .is-visible::before {
85
+ mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 16 16'%3E%3Cpath d='M8 15A7 7 0 1 1 8 1a7 7 0 0 1 0 14zm0 1A8 8 0 1 0 8 0a8 8 0 0 0 0 16z'/%3E%3C/svg%3E");
86
+ }
87
+
88
+ & .is-hidden::before {
89
+ mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 16 16'%3E%3Ccircle cx='8' cy='8' r='8'/%3E%3C/svg%3E");
90
+ }
91
+
92
+ & .is-visible:focus-visible,
93
+ & .is-hidden:focus-visible {
94
+ outline-offset: 0;
95
+ }
55
96
 
56
97
  & :hover, & :focus {
57
98
  background-clip: border-box;
@@ -92,6 +133,7 @@
92
133
  align-items: center;
93
134
  justify-content: flex-start;
94
135
  margin: 0;
136
+ min-height: var(--monster-column-settings-target-size, 24px);
95
137
  padding: 0;
96
138
  cursor: pointer;
97
139
 
@@ -138,15 +180,65 @@
138
180
  }
139
181
  }
140
182
 
183
+ @media (pointer: coarse) {
184
+ [data-monster-role=control] [data-monster-role=dots] li {
185
+ & .is-visible,
186
+ & .is-hidden {
187
+ min-height: 24px;
188
+ min-width: 24px;
189
+ }
190
+ }
191
+ }
192
+
141
193
  :host(.small) {
194
+ --monster-datatable-utility-action-size: 2.25rem;
195
+ height: var(--monster-datatable-utility-action-size);
196
+ min-width: var(--monster-datatable-utility-action-size);
197
+ width: var(--monster-datatable-utility-action-size);
198
+
142
199
  [data-monster-role=control] {
200
+ align-items: stretch;
143
201
  flex-direction: column;
144
- align-items: flex-end;
145
- gap: 0.5rem;
202
+ gap: 0;
203
+ min-width: var(--monster-datatable-utility-action-size);
204
+ width: var(--monster-datatable-utility-action-size);
146
205
 
147
206
  & [data-monster-role="dots"] {
207
+ display: none;
208
+ }
209
+
210
+ & a[data-monster-role=settings-button] {
211
+ align-items: center;
212
+ background-color: var(--monster-theme-control-bg-color);
213
+ border: 1px solid var(--monster-theme-control-border-color);
214
+ border-radius: var(--monster-theme-control-border-radius);
215
+ box-sizing: border-box;
216
+ color: var(--monster-theme-control-color);
217
+ font-size: 0;
218
+ height: var(--monster-datatable-utility-action-size);
219
+ justify-content: center;
220
+ min-height: var(--monster-datatable-utility-action-size);
221
+ min-width: var(--monster-datatable-utility-action-size);
222
+ padding: 0;
223
+ text-align: center;
224
+ text-decoration: none;
225
+ width: var(--monster-datatable-utility-action-size);
226
+ }
227
+
228
+ & a[data-monster-role=settings-button]::after {
148
229
  margin: 0;
149
230
  }
150
231
 
232
+ & a[data-monster-role=settings-button]:hover {
233
+ background-color: var(--monster-theme-control-hover-bg-color);
234
+ color: var(--monster-theme-control-hover-color);
235
+ }
236
+ }
237
+ }
238
+
239
+ @media (pointer: coarse) {
240
+ :host(.small) {
241
+ --monster-datatable-utility-action-size:
242
+ var(--monster-control-min-block-size, 44px);
151
243
  }
152
244
  }
@@ -89,13 +89,19 @@
89
89
  box-sizing: border-box;
90
90
 
91
91
  & > div {
92
- padding: 0.4rem 0.2rem;
92
+ padding: var(--monster-datatable-cell-padding, 0.4rem 0.2rem);
93
93
  @mixin text;
94
94
  display: flex;
95
95
  align-items: center;
96
96
  justify-content: flex-start;
97
97
  line-height: 1.2;
98
- border-bottom: 1px dashed var(--monster-theme-control-border-color);
98
+ border-bottom:
99
+ var(--monster-datatable-row-border-width, 1px)
100
+ var(--monster-datatable-row-border-style, dashed)
101
+ var(
102
+ --monster-datatable-row-border-color,
103
+ var(--monster-theme-control-border-color)
104
+ );
99
105
  box-sizing: border-box;
100
106
  min-width: 0;
101
107
  overflow: auto;
@@ -182,13 +188,16 @@
182
188
  & > div {
183
189
  @mixin text;
184
190
  font-weight: bold;
185
- padding: 0.3rem 0.2rem;
191
+ padding: var(--monster-datatable-header-cell-padding, 0.3rem 0.2rem);
186
192
  position: relative;
187
193
  display: flex;
188
194
  align-items: center;
189
195
  justify-content: flex-start;
190
196
  overflow: visible;
191
- padding-right: 28px;
197
+ padding-right: var(
198
+ --monster-datatable-header-cell-padding-inline-end,
199
+ 28px
200
+ );
192
201
 
193
202
  & a[data-monster-sortable] {
194
203
  flex-grow: 1;
@@ -322,18 +331,106 @@ monster-state[data-monster-role=empty-without-action]::part(action) {
322
331
  }
323
332
 
324
333
  & [data-monster-role="table-container"] {
334
+ padding: 0.75rem;
325
335
 
326
336
  & .bar {
337
+ --monster-datatable-utility-action-size: 2.25rem;
338
+ align-items: stretch;
339
+ column-gap: 0;
327
340
  display: flex;
328
- align-items: flex-end;
329
- flex-direction: column-reverse;
330
- gap: 0.1rem;
341
+ flex-flow: row wrap;
342
+ row-gap: 0.5rem;
343
+
344
+ & > slot[name="bar"]::slotted(*) {
345
+ flex: 1 0 100%;
346
+ min-width: 0;
347
+ order: 1;
348
+ width: 100%;
349
+ }
350
+
351
+ & > [data-monster-role="copy-all"] {
352
+ align-items: center;
353
+ background-color: var(--monster-theme-control-bg-color);
354
+ border: 1px solid var(--monster-theme-control-border-color);
355
+ border-radius: var(--monster-theme-control-border-radius);
356
+ box-sizing: border-box;
357
+ color: var(--monster-theme-control-color);
358
+ display: flex;
359
+ flex: 0 0 var(--monster-datatable-utility-action-size);
360
+ font-size: 0;
361
+ height: var(--monster-datatable-utility-action-size);
362
+ justify-content: center;
363
+ margin-inline-start: auto;
364
+ min-height: var(--monster-datatable-utility-action-size);
365
+ min-width: var(--monster-datatable-utility-action-size);
366
+ order: 2;
367
+ padding: 0;
368
+ text-align: center;
369
+ text-decoration: none;
370
+ width: var(--monster-datatable-utility-action-size);
371
+ }
372
+
373
+ & > [data-monster-role="copy-all"]::after {
374
+ margin: 0;
375
+ }
376
+
377
+ & > [data-monster-role="copy-all"]:hover {
378
+ background-color: var(--monster-theme-control-hover-bg-color);
379
+ color: var(--monster-theme-control-hover-color);
380
+ }
381
+
382
+ & > monster-column-bar {
383
+ flex: 0 0 var(--monster-datatable-utility-action-size);
384
+ height: var(--monster-datatable-utility-action-size);
385
+ min-width: var(--monster-datatable-utility-action-size);
386
+ order: 3;
387
+ width: var(--monster-datatable-utility-action-size);
388
+ }
389
+
390
+ & > monster-context-help {
391
+ flex: 0 0 var(--monster-datatable-utility-action-size);
392
+ height: var(--monster-datatable-utility-action-size);
393
+ margin: 0;
394
+ min-height: var(--monster-datatable-utility-action-size);
395
+ order: 4;
396
+ width: var(--monster-datatable-utility-action-size);
397
+ }
398
+
399
+ & > monster-context-help::part(control) {
400
+ height: 100%;
401
+ }
402
+
403
+ & > monster-context-help::part(button) {
404
+ align-items: center;
405
+ background-color: var(--monster-theme-control-bg-color);
406
+ border: 1px solid var(--monster-theme-control-border-color);
407
+ border-radius: var(--monster-theme-control-border-radius);
408
+ box-sizing: border-box;
409
+ color: var(--monster-theme-control-color);
410
+ cursor: pointer;
411
+ display: flex;
412
+ height: 100%;
413
+ justify-content: center;
414
+ min-height: var(--monster-datatable-utility-action-size);
415
+ width: 100%;
416
+ }
331
417
  }
332
418
 
333
419
  & [data-monster-head]:before {
334
- font-weight: bold;
335
- margin-right: 10px;
336
420
  content: attr(data-monster-head);
421
+ color: var(
422
+ --monster-theme-text-muted,
423
+ var(--monster-color-primary-2)
424
+ );
425
+ font-size: 0.75rem;
426
+ font-weight: 600;
427
+ letter-spacing: 0.04em;
428
+ line-height: 1.35;
429
+ max-inline-size: 100%;
430
+ min-inline-size: 0;
431
+ overflow-wrap: anywhere;
432
+ text-transform: uppercase;
433
+ white-space: normal;
337
434
  }
338
435
 
339
436
  @for $i from 0 to 500 {
@@ -344,32 +441,163 @@ monster-state[data-monster-role=empty-without-action]::part(action) {
344
441
  }
345
442
 
346
443
  & ::slotted(.monster-button-group) {
347
- display: flex;
348
- flex-direction: column !important;
444
+ align-items: stretch;
445
+ display: grid;
446
+ gap: 0.5rem;
447
+ grid-template-columns: 1fr;
448
+ width: 100%;
349
449
  }
350
- }
351
-
352
- [data-monster-role=control].small {
353
450
 
354
- ::slotted(.monster-button-group) {
355
- align-items: flex-end;
451
+ & [data-monster-role="table-scroll"] {
452
+ overflow-x: visible;
453
+ padding-bottom: 1rem;
356
454
  }
357
455
 
358
- [data-monster-role=datatable] > div {
359
- display: flex;
360
- align-items: flex-start;
361
- justify-content: flex-start;
456
+ & [data-monster-role=datatable] {
457
+ container-name: monster-datatable-responsive;
458
+ container-type: inline-size;
459
+ gap: 0;
460
+
461
+ & > div {
462
+ background-color: var(
463
+ --monster-theme-control-bg-color,
464
+ var(--monster-bg-color-primary-1)
465
+ );
466
+ border: 0;
467
+ border-bottom: 1px solid var(--monster-theme-control-border-color);
468
+ border-left: 1px solid var(--monster-theme-control-border-color);
469
+ border-right: 1px solid var(--monster-theme-control-border-color);
470
+ display: grid;
471
+ gap: 0.35rem 0.75rem;
472
+ grid-template-columns:
473
+ minmax(5.5rem, 0.35fr)
474
+ minmax(0, 1fr);
475
+ justify-content: stretch;
476
+ min-height: 2.75rem;
477
+ overflow: visible;
478
+ padding: 0.625rem 0.75rem;
479
+ white-space: normal;
480
+ word-break: break-word;
362
481
 
363
- &.start {
364
- justify-content: flex-start;
365
- }
482
+ &.start,
483
+ &.end,
484
+ &.center {
485
+ justify-content: stretch;
486
+ }
366
487
 
367
- &.end {
368
- justify-content: flex-start;
369
- }
488
+ &[data-monster-datatable-row-start] {
489
+ border-radius:
490
+ var(--monster-theme-control-border-radius)
491
+ var(--monster-theme-control-border-radius)
492
+ 0
493
+ 0;
494
+ border-top: 1px solid var(--monster-theme-control-border-color);
495
+ margin-top: 0.75rem;
496
+ }
370
497
 
371
- &.center {
372
- justify-content: flex-start;
498
+ &[data-monster-datatable-row-end] {
499
+ border-radius:
500
+ 0
501
+ 0
502
+ var(--monster-theme-control-border-radius)
503
+ var(--monster-theme-control-border-radius);
504
+ margin-bottom: 0.75rem;
505
+ }
506
+
507
+ &[data-monster-datatable-row-start][data-monster-datatable-row-end] {
508
+ border-radius: var(--monster-theme-control-border-radius);
509
+ }
510
+
511
+ &[data-monster-features~="select"] {
512
+ align-items: center;
513
+ background-color: var(
514
+ --monster-theme-surface-subtle,
515
+ var(--monster-bg-color-primary-2)
516
+ );
517
+ display: flex;
518
+ min-height: max(
519
+ 2.75rem,
520
+ var(--monster-control-min-block-size, 44px)
521
+ );
522
+ }
523
+
524
+ &:has(
525
+ :is(
526
+ monster-button,
527
+ monster-button-bar,
528
+ monster-action-button,
529
+ monster-select,
530
+ monster-filter-select,
531
+ select[multiple]
532
+ )
533
+ ) {
534
+ grid-template-columns: minmax(0, 1fr);
535
+ }
536
+
537
+ & :is(
538
+ monster-select,
539
+ monster-filter-select,
540
+ select[multiple]
541
+ ) {
542
+ box-sizing: border-box;
543
+ display: block;
544
+ max-width: 100%;
545
+ min-width: 0;
546
+ width: 100%;
547
+ }
548
+
549
+ & :is(monster-button-bar, .monster-button-group) {
550
+ --monster-button-bar-gap: 0;
551
+ --monster-button-bar-item-spacing: 0;
552
+ --monster-control-bar-button-inline-size: 100%;
553
+ --monster-control-bar-height: max(2.75rem, 44px);
554
+ --monster-control-bar-item-flex: 1 1 0;
555
+ --monster-control-bar-slot-flex: 1 1 auto;
556
+ box-sizing: border-box;
557
+ display: flex;
558
+ flex-wrap: wrap;
559
+ gap: 0;
560
+ max-width: 100%;
561
+ min-width: 0;
562
+ width: 100%;
563
+ }
564
+
565
+ & :is(monster-button, monster-action-button, button, [role=button]) {
566
+ box-sizing: border-box;
567
+ flex: 1 1 8rem;
568
+ min-height: max(
569
+ 2.75rem,
570
+ var(--monster-control-min-block-size, 44px)
571
+ );
572
+ min-width: 0;
573
+ }
574
+
575
+ & > :is(monster-button, monster-action-button) {
576
+ display: block;
577
+ width: 100%;
578
+ }
579
+
580
+ &.selected {
581
+ background-color: var(--monster-bg-color-selection-2);
582
+ color: var(--monster-color-selection-2);
583
+ }
373
584
  }
374
585
  }
375
- }
586
+ }
587
+
588
+ @media (pointer: coarse) {
589
+ [data-monster-role="control"].small
590
+ [data-monster-role="table-container"]
591
+ .bar {
592
+ --monster-datatable-utility-action-size:
593
+ var(--monster-control-min-block-size, 44px);
594
+ }
595
+ }
596
+
597
+ @container monster-datatable-responsive (max-width: 26rem) {
598
+ [data-monster-role="control"].small
599
+ [data-monster-role=datatable]
600
+ > div {
601
+ grid-template-columns: minmax(0, 1fr);
602
+ }
603
+ }
@@ -11,9 +11,12 @@
11
11
 
12
12
  [data-monster-role=pagination] {
13
13
  @mixin text;
14
+ align-items: center;
14
15
  display: flex;
15
16
  justify-content: center;
16
17
  box-sizing: border-box;
18
+ min-height: var(--monster-control-min-block-size, 44px);
19
+ width: 100%;
17
20
 
18
21
  & ul {
19
22
  display: flex;
@@ -23,8 +26,8 @@
23
26
  list-style: none;
24
27
 
25
28
  padding-left: 0;
26
- margin: 20px 0;
27
-
29
+ margin: 0;
30
+ width: 100%;
28
31
 
29
32
  }
30
33
 
@@ -39,14 +42,49 @@
39
42
  visibility: hidden;
40
43
  }
41
44
 
42
- & ul.pagination-numbers-hidden {
43
- justify-content: space-between;
44
- gap: 0.5rem;
45
+ & ul.pagination-numbers-hidden,
46
+ & ul.pagination-compact {
47
+ align-items: center;
48
+ background-color: var(--monster-theme-control-bg-color);
49
+ border-radius: var(--monster-theme-control-border-radius);
50
+ display: grid;
51
+ gap: 0.25rem;
52
+ grid-template-columns:
53
+ var(--monster-control-min-block-size, 44px)
54
+ minmax(0, 1fr)
55
+ var(--monster-control-min-block-size, 44px);
56
+ justify-content: stretch;
57
+ overflow: hidden;
58
+ position: relative;
59
+ width: 100%;
60
+
61
+ &::after {
62
+ border: 1px solid var(--monster-theme-control-border-color);
63
+ border-radius: inherit;
64
+ box-sizing: border-box;
65
+ content: "";
66
+ inset: 0;
67
+ pointer-events: none;
68
+ position: absolute;
69
+ }
70
+ }
71
+
72
+ & ul.pagination-numbers-hidden li[data-monster-role="pagination-prev"],
73
+ & ul.pagination-compact li[data-monster-role="pagination-prev"] {
74
+ grid-column: 1;
75
+ justify-self: start;
45
76
  }
46
77
 
47
- & ul.pagination-compact {
48
- justify-content: space-between;
49
- gap: 0.5rem;
78
+ & ul.pagination-numbers-hidden li[data-monster-role="pagination-summary"],
79
+ & ul.pagination-compact li[data-monster-role="pagination-summary"] {
80
+ grid-column: 2;
81
+ justify-self: stretch;
82
+ }
83
+
84
+ & ul.pagination-numbers-hidden li[data-monster-role="pagination-next"],
85
+ & ul.pagination-compact li[data-monster-role="pagination-next"] {
86
+ grid-column: 3;
87
+ justify-self: end;
50
88
  }
51
89
 
52
90
  & ul li {
@@ -61,13 +99,19 @@
61
99
 
62
100
 
63
101
  & a, & a:link, & a:visited, & a:hover, & a:active, & a:focus {
64
- width: max-content;
102
+ align-items: center;
103
+ box-sizing: border-box;
65
104
  color: var(--monster-theme-control-color);
66
105
  background-color: var(--monster-theme-control-bg-color);
106
+ display: flex;
107
+ justify-content: center;
108
+ min-height: var(--monster-control-min-block-size, 44px);
109
+ min-width: var(--monster-control-min-block-size, 44px);
67
110
  text-decoration: none;
68
111
  outline: none;
69
- padding: 0 0.4rem;
112
+ padding: 0 0.5rem;
70
113
  white-space: nowrap;
114
+ width: max-content;
71
115
  }
72
116
 
73
117
  & a:hover, & a:active, & a:focus {
@@ -93,16 +137,20 @@
93
137
  }
94
138
 
95
139
  & a.disabled {
140
+ background-color: var(--monster-bg-color-primary-disabled-1);
141
+ color: var(--monster-color-primary-disabled-1);
96
142
  cursor: not-allowed;
143
+ opacity: 1;
144
+ pointer-events: none;
97
145
  }
98
146
  }
99
147
 
100
148
  & ul.pagination-compact li {
101
- padding: 0 4px;
149
+ padding: 0;
102
150
  }
103
151
 
104
152
  & ul.pagination-numbers-hidden li {
105
- padding: 0 6px;
153
+ padding: 0;
106
154
  }
107
155
 
108
156
  & ul.pagination-numbers-hidden li {
@@ -114,9 +162,11 @@
114
162
  }
115
163
 
116
164
  & [data-monster-role="pagination-summary"] {
165
+ align-items: center;
117
166
  display: none;
167
+ min-height: var(--monster-control-min-block-size, 44px);
118
168
  padding: 0 6px;
119
- font-size: 0.75rem;
169
+ font-size: 0.8125rem;
120
170
  white-space: nowrap;
121
171
  text-align: center;
122
172
  flex: 1 1 auto;
@@ -146,27 +196,6 @@
146
196
  }
147
197
  }
148
198
 
149
- @mixin viewport-7 {
150
-
151
- & ul li {
152
- padding: 0 2px;
153
- }
154
-
155
- & ul li:nth-child(1) {
156
- display: none;
157
- }
158
-
159
- & ul li:nth-child(2) {
160
- display: none;
161
- }
162
-
163
- & ul li:nth-child(3) {
164
- border-left: none;
165
- }
166
-
167
- }
168
-
169
-
170
199
  }
171
200
 
172
201
 
@@ -7,7 +7,7 @@
7
7
  [data-monster-role="control"] {
8
8
  width: max-content;
9
9
 
10
- & a {
10
+ & button {
11
11
  display: flex;
12
12
  align-items: center;
13
13
  background: none;