@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
@@ -6,13 +6,49 @@
6
6
  @import "../../style/floating-ui.pcss";
7
7
 
8
8
  :host {
9
- --monster-control-bar-height: 2.5rem;
9
+ --monster-control-bar-height: var(
10
+ --monster-control-min-block-size,
11
+ 2.5rem
12
+ );
10
13
  }
11
14
 
12
15
  div[data-monster-role="control"] {
13
16
  position: relative;
14
17
  height: 100%;
15
18
 
19
+ & > [data-monster-role=popper] {
20
+ padding: var(--monster-action-menu-padding, 1.1em);
21
+ min-inline-size: var(--monster-action-menu-min-inline-size, auto);
22
+ background: var(
23
+ --monster-action-menu-background-color,
24
+ var(--monster-bg-color-primary-1)
25
+ );
26
+ color: var(
27
+ --monster-action-menu-color,
28
+ var(--monster-color-primary-1)
29
+ );
30
+ border-width: var(
31
+ --monster-action-menu-border-width,
32
+ var(--monster-border-width)
33
+ );
34
+ border-style: var(
35
+ --monster-action-menu-border-style,
36
+ var(--monster-border-style)
37
+ );
38
+ border-color: var(
39
+ --monster-action-menu-border-color,
40
+ var(--monster-bg-color-primary-4)
41
+ );
42
+ border-radius: var(
43
+ --monster-action-menu-border-radius,
44
+ var(--monster-border-radius)
45
+ );
46
+ box-shadow: var(
47
+ --monster-action-menu-box-shadow,
48
+ var(--monster-box-shadow-1)
49
+ );
50
+ }
51
+
16
52
  & [data-monster-role=control-bar],
17
53
  & [data-monster-role=button-bar] {
18
54
  display: flex;
@@ -30,6 +66,12 @@ div[data-monster-role="control"] {
30
66
  justify-content: center;
31
67
  }
32
68
 
69
+ & > slot:not([name]) {
70
+ display: flex;
71
+ flex: var(--monster-control-bar-slot-flex, 0 1 auto);
72
+ min-width: 0;
73
+ }
74
+
33
75
  & :not(slot) {
34
76
  display: flex;
35
77
  }
@@ -37,42 +79,48 @@ div[data-monster-role="control"] {
37
79
  & [data-monster-role=popper-nav] {
38
80
  display: flex;
39
81
  align-items: stretch;
82
+ flex: 0 0 var(--monster-control-bar-height);
40
83
  height: var(--monster-control-bar-height);
84
+ min-width: var(--monster-control-bar-height);
41
85
  min-height: var(--monster-control-bar-height);
42
86
  }
43
87
 
44
88
  & [data-monster-role=switch] {
89
+ --monster-control-min-block-size: var(--monster-control-bar-height);
45
90
  display: flex;
46
91
  height: var(--monster-control-bar-height);
92
+ min-width: var(--monster-control-bar-height);
47
93
  min-height: var(--monster-control-bar-height);
94
+ width: var(--monster-control-bar-height);
48
95
 
49
96
  &.hidden {
50
97
  display: none;
51
98
  }
52
99
  }
53
100
 
54
- & ::slotted(*) {
101
+ & > slot:not([name])::slotted(*) {
102
+ --monster-control-min-block-size: var(--monster-control-bar-height);
55
103
  display: flex;
56
104
  box-sizing: border-box;
57
- flex: 0 0 auto !important;
105
+ flex: var(--monster-control-bar-item-flex, 0 0 auto) !important;
58
106
  align-self: stretch;
59
107
  height: var(--monster-control-bar-height);
60
108
  min-height: var(--monster-control-bar-height);
61
109
  min-width: 0;
62
110
  }
63
111
 
64
- & ::slotted(form),
65
- & ::slotted(div),
66
- & ::slotted(section) {
112
+ & > slot:not([name])::slotted(form),
113
+ & > slot:not([name])::slotted(div),
114
+ & > slot:not([name])::slotted(section) {
67
115
  flex-direction: row;
68
116
  align-items: stretch;
69
117
  gap: 0;
70
118
  }
71
119
 
72
- & ::slotted(input),
73
- & ::slotted(select),
74
- & ::slotted(textarea),
75
- & ::slotted(button) {
120
+ & > slot:not([name])::slotted(input),
121
+ & > slot:not([name])::slotted(select),
122
+ & > slot:not([name])::slotted(textarea),
123
+ & > slot:not([name])::slotted(button) {
76
124
  appearance: none;
77
125
  box-sizing: border-box;
78
126
  border-width: var(--monster-theme-control-border-width, var(--monster-border-width));
@@ -86,12 +134,13 @@ div[data-monster-role="control"] {
86
134
  inline-size: auto !important;
87
135
  }
88
136
 
89
- & ::slotted(monster-select) {
137
+ & > slot:not([name])::slotted(monster-select) {
90
138
  --monster-select-container-align-self: stretch;
91
139
  --monster-select-container-block-size: 100%;
92
140
  --monster-select-container-overflow: hidden;
93
141
  --monster-select-selection-flex-wrap: nowrap;
94
142
  --monster-select-selection-margin: 0;
143
+ --monster-select-control-min-block-size: var(--monster-control-bar-height);
95
144
  --monster-select-control-padding: 0.4rem 0.6rem;
96
145
  width: auto !important;
97
146
  inline-size: auto !important;
@@ -100,22 +149,40 @@ div[data-monster-role="control"] {
100
149
  min-width: var(--monster-control-bar-select-min-inline-size, 12rem) !important;
101
150
  }
102
151
 
103
- & ::slotted(monster-button),
104
- & ::slotted(monster-popper-button) {
105
- --monster-button-control-inline-size: max-content;
106
- --monster-button-inline-size: max-content;
107
- --monster-popper-button-control-inline-size: max-content;
108
- --monster-popper-button-inline-size: max-content;
109
- width: max-content !important;
110
- inline-size: max-content !important;
152
+ & > slot:not([name])::slotted(monster-button),
153
+ & > slot:not([name])::slotted(monster-popper-button) {
154
+ --monster-button-control-inline-size: var(
155
+ --monster-control-bar-button-inline-size,
156
+ max-content
157
+ );
158
+ --monster-button-inline-size: var(
159
+ --monster-control-bar-button-inline-size,
160
+ max-content
161
+ );
162
+ --monster-popper-button-control-inline-size: var(
163
+ --monster-control-bar-button-inline-size,
164
+ max-content
165
+ );
166
+ --monster-popper-button-inline-size: var(
167
+ --monster-control-bar-button-inline-size,
168
+ max-content
169
+ );
170
+ width: var(
171
+ --monster-control-bar-button-inline-size,
172
+ max-content
173
+ ) !important;
174
+ inline-size: var(
175
+ --monster-control-bar-button-inline-size,
176
+ max-content
177
+ ) !important;
111
178
  max-inline-size: 100%;
112
179
  }
113
180
 
114
- & ::slotted(monster-input-group) {
181
+ & > slot:not([name])::slotted(monster-input-group) {
115
182
  width: max-content;
116
183
  }
117
184
 
118
- & ::slotted(monster-control-bar-spacer) {
185
+ & > slot:not([name])::slotted(monster-control-bar-spacer) {
119
186
  --monster-control-bar-spacer-inline-size: 0.8rem;
120
187
  --monster-control-bar-spacer-block-size: var(--monster-control-bar-height);
121
188
  --monster-control-bar-spacer-line-inline-size: var(--monster-border-width);
@@ -131,14 +198,104 @@ div[data-monster-role="control"] {
131
198
  align-items: stretch;
132
199
  align-content: stretch;
133
200
  justify-content: flex-start;
134
- gap: 0;
201
+ gap: var(--monster-action-menu-gap, 0);
135
202
 
136
203
  &::slotted(*) {
204
+ --monster-control-min-block-size: var(
205
+ --monster-action-menu-item-min-block-size,
206
+ var(--monster-control-bar-height)
207
+ );
208
+ --monster-button-min-block-size: var(
209
+ --monster-action-menu-item-min-block-size,
210
+ var(--monster-control-bar-height)
211
+ );
212
+ --monster-button-padding: var(
213
+ --monster-action-menu-item-padding,
214
+ var(--monster-control-padding-block, .375rem)
215
+ var(--monster-control-padding-inline, .75rem)
216
+ );
217
+ --monster-button-color: var(
218
+ --monster-action-menu-item-color,
219
+ var(--monster-color-primary-1)
220
+ );
221
+ --monster-button-background-color: var(
222
+ --monster-action-menu-item-background-color,
223
+ transparent
224
+ );
225
+ --monster-button-border-width: var(
226
+ --monster-action-menu-item-border-width,
227
+ 0
228
+ );
229
+ --monster-button-border-style: var(
230
+ --monster-action-menu-item-border-style,
231
+ solid
232
+ );
233
+ --monster-button-border-color: var(
234
+ --monster-action-menu-item-border-color,
235
+ transparent
236
+ );
237
+ --monster-button-border-radius: var(
238
+ --monster-action-menu-item-border-radius,
239
+ var(--monster-border-radius)
240
+ );
241
+ --monster-button-box-shadow: var(
242
+ --monster-action-menu-item-box-shadow,
243
+ none
244
+ );
245
+ --monster-button-justify-content: var(
246
+ --monster-action-menu-item-justify-content,
247
+ flex-start
248
+ );
249
+ --monster-button-text-align: var(
250
+ --monster-action-menu-item-text-align,
251
+ left
252
+ );
253
+ --monster-focus-ring-offset: var(
254
+ --monster-action-menu-item-focus-outline-offset,
255
+ -2px
256
+ );
257
+ --monster-state-button-label-justify-content: var(
258
+ --monster-action-menu-item-justify-content,
259
+ flex-start
260
+ );
261
+ --monster-state-button-justify-content: var(
262
+ --monster-action-menu-item-justify-content,
263
+ flex-start
264
+ );
265
+ --monster-button-control-inline-size: 100%;
266
+ --monster-button-inline-size: 100%;
267
+ --monster-popper-button-control-inline-size: 100%;
268
+ --monster-popper-button-inline-size: 100%;
137
269
  display: flex;
138
270
  box-sizing: border-box;
139
- width: fill-available;
140
- height: var(--monster-control-bar-height);
141
- min-height: var(--monster-control-bar-height);
271
+ align-self: stretch;
272
+ flex: 0 0 auto !important;
273
+ width: fill-available !important;
274
+ inline-size: 100% !important;
275
+ height: auto !important;
276
+ min-height: var(
277
+ --monster-action-menu-item-min-block-size,
278
+ var(--monster-control-bar-height)
279
+ ) !important;
280
+ }
281
+
282
+ &::slotted(*:is(:hover, :active)) {
283
+ --monster-button-color: var(
284
+ --monster-action-menu-item-hover-color,
285
+ var(--monster-color-primary-1)
286
+ );
287
+ --monster-button-background-color: var(
288
+ --monster-action-menu-item-hover-background-color,
289
+ var(--monster-bg-color-primary-2)
290
+ );
291
+ --monster-button-border-color: var(
292
+ --monster-action-menu-item-hover-border-color,
293
+ transparent
294
+ );
295
+ --monster-box-shadow-2: var(
296
+ --monster-action-menu-item-hover-box-shadow,
297
+ none
298
+ );
142
299
  }
143
300
 
144
301
  &::slotted(form),
@@ -160,16 +317,84 @@ div[data-monster-role="control"] {
160
317
  border-style: var(--monster-theme-control-border-style, var(--monster-border-style));
161
318
  border-color: var(--monster-theme-control-border-color, var(--monster-bg-color-primary-4));
162
319
  line-height: 1.5;
163
- height: var(--monster-control-bar-height);
320
+ min-height: var(
321
+ --monster-action-menu-item-min-block-size,
322
+ var(--monster-control-bar-height)
323
+ );
164
324
  padding: var(--monster-select-control-padding, 0.4rem 0.6rem);
165
325
  }
166
326
 
327
+ &::slotted(button) {
328
+ inline-size: 100%;
329
+ justify-content: var(
330
+ --monster-action-menu-item-justify-content,
331
+ flex-start
332
+ );
333
+ padding: var(
334
+ --monster-action-menu-item-padding,
335
+ var(--monster-control-padding-block, .375rem)
336
+ var(--monster-control-padding-inline, .75rem)
337
+ );
338
+ background: var(
339
+ --monster-action-menu-item-background-color,
340
+ transparent
341
+ );
342
+ color: var(
343
+ --monster-action-menu-item-color,
344
+ var(--monster-color-primary-1)
345
+ );
346
+ border-width: var(
347
+ --monster-action-menu-item-border-width,
348
+ 0
349
+ );
350
+ border-style: var(
351
+ --monster-action-menu-item-border-style,
352
+ solid
353
+ );
354
+ border-color: var(
355
+ --monster-action-menu-item-border-color,
356
+ transparent
357
+ );
358
+ border-radius: var(
359
+ --monster-action-menu-item-border-radius,
360
+ var(--monster-border-radius)
361
+ );
362
+ box-shadow: var(
363
+ --monster-action-menu-item-box-shadow,
364
+ none
365
+ );
366
+ text-align: var(
367
+ --monster-action-menu-item-text-align,
368
+ left
369
+ );
370
+ }
371
+
372
+ &::slotted(button:hover) {
373
+ background: var(
374
+ --monster-action-menu-item-hover-background-color,
375
+ var(--monster-bg-color-primary-2)
376
+ );
377
+ color: var(
378
+ --monster-action-menu-item-hover-color,
379
+ var(--monster-color-primary-1)
380
+ );
381
+ border-color: var(
382
+ --monster-action-menu-item-hover-border-color,
383
+ transparent
384
+ );
385
+ box-shadow: var(
386
+ --monster-action-menu-item-hover-box-shadow,
387
+ none
388
+ );
389
+ }
390
+
167
391
  &::slotted(monster-select) {
168
392
  --monster-select-container-align-self: stretch;
169
393
  --monster-select-container-block-size: 100%;
170
394
  --monster-select-container-overflow: hidden;
171
395
  --monster-select-selection-flex-wrap: nowrap;
172
396
  --monster-select-selection-margin: 0;
397
+ --monster-select-control-min-block-size: var(--monster-control-bar-height);
173
398
  --monster-select-control-padding: 0.4rem 0.6rem;
174
399
  }
175
400
 
@@ -182,6 +407,9 @@ div[data-monster-role="control"] {
182
407
  --monster-control-bar-spacer-block-size: 0.8rem;
183
408
  --monster-control-bar-spacer-line-inline-size: calc(100% - 1rem);
184
409
  --monster-control-bar-spacer-line-block-size: var(--monster-border-width);
410
+ flex-basis: var(--monster-control-bar-spacer-block-size) !important;
411
+ height: var(--monster-control-bar-spacer-block-size) !important;
412
+ min-height: var(--monster-control-bar-spacer-block-size) !important;
185
413
  }
186
414
 
187
415
  }
@@ -24,15 +24,16 @@
24
24
  }
25
25
 
26
26
  [data-monster-role="digits"] > input {
27
- width: 2rem;
27
+ flex: 0 0 var(--monster-control-min-block-size, 2.5rem);
28
+ inline-size: var(--monster-control-min-block-size, 2.5rem);
29
+ min-inline-size: var(--monster-control-min-block-size, 2.5rem);
30
+ block-size: var(--monster-control-min-block-size, 2.5rem);
31
+ min-block-size: var(--monster-control-min-block-size, 2.5rem);
32
+ padding: 0;
28
33
  text-align: center;
29
- display: flex;
30
- justify-content: center;
31
- align-items: center;
34
+ display: block;
32
35
  }
33
36
 
34
37
  .invalid {
35
38
  outline-color: var(--monster-color-error-2) !important;
36
39
  }
37
-
38
-
@@ -9,10 +9,48 @@
9
9
  display: flex;
10
10
  box-sizing: border-box;
11
11
  height: 100%;
12
+ min-block-size: var(--monster-control-min-block-size, auto);
12
13
  border-width: var(--monster-theme-control-border-width);
13
14
  border-radius: var(--monster-theme-control-border-radius);
14
15
  border-style: var(--monster-theme-control-border-style);
15
16
  border-color: var(--monster-theme-control-border-color);
17
+ color: var(--monster-input-group-color, inherit);
18
+ background-color: var(--monster-input-group-background-color, transparent);
19
+ box-shadow: var(--monster-input-group-box-shadow, none);
20
+ transition:
21
+ background-color
22
+ var(--monster-input-group-hover-duration, 140ms)
23
+ var(--monster-input-group-hover-timing, ease-out),
24
+ border-color
25
+ var(--monster-input-group-hover-duration, 140ms)
26
+ var(--monster-input-group-hover-timing, ease-out);
27
+ }
28
+
29
+ :host(:hover) {
30
+ color: var(
31
+ --monster-input-group-hover-color,
32
+ var(--monster-input-group-color, inherit)
33
+ );
34
+ background-color: var(
35
+ --monster-input-group-hover-background-color,
36
+ var(--monster-input-group-background-color, transparent)
37
+ );
38
+ border-color: var(
39
+ --monster-input-group-hover-border-color,
40
+ var(--monster-theme-control-border-color)
41
+ );
42
+ box-shadow: var(
43
+ --monster-input-group-hover-box-shadow,
44
+ var(--monster-input-group-box-shadow, none)
45
+ );
46
+ }
47
+
48
+ :host(:focus-within) {
49
+ outline:
50
+ var(--monster-focus-ring-width, 2px)
51
+ var(--monster-focus-ring-style, solid)
52
+ var(--monster-focus-ring-color, var(--monster-color-selection-4));
53
+ outline-offset: var(--monster-focus-ring-offset, 2px);
16
54
  }
17
55
 
18
56
  [data-monster-role="control"] {
@@ -35,15 +73,25 @@
35
73
  ::slotted(textarea),
36
74
  ::slotted(button) {
37
75
  height: auto;
76
+ min-block-size: 0 !important;
38
77
  border: none;
39
78
  }
40
79
 
80
+ ::slotted(input:focus-visible),
81
+ ::slotted(select:focus-visible),
82
+ ::slotted(textarea:focus-visible),
83
+ ::slotted(button:focus-visible) {
84
+ outline: none !important;
85
+ }
86
+
41
87
  ::slotted(svg) {
88
+ box-sizing: content-box !important;
89
+ flex: 0 0 auto;
90
+ height: 1.1rem;
42
91
  width: 1.1rem;
43
92
  padding: 0 0.5rem 0 0.5rem;
44
93
  }
45
94
 
46
- ::slotted(input:focus-visible),
47
95
  ::slotted(input) {
48
96
  outline: none;
49
97
  position: relative;
@@ -53,7 +101,23 @@
53
101
  display: block;
54
102
  appearance: none;
55
103
  border: none !important;
104
+ background-color: var(
105
+ --monster-input-group-field-background-color,
106
+ var(--monster-bg-color-primary-1)
107
+ ) !important;
56
108
  padding: 0.5rem 0.5rem 0.5rem 0.5rem;
57
109
  }
58
110
 
111
+ ::slotted(input:hover) {
112
+ background-color: var(
113
+ --monster-input-group-field-hover-background-color,
114
+ var(
115
+ --monster-input-group-field-background-color,
116
+ var(--monster-bg-color-primary-1)
117
+ )
118
+ ) !important;
119
+ box-shadow: none !important;
120
+ transition: none !important;
121
+ }
122
+
59
123
  }
@@ -26,7 +26,7 @@
26
26
  }
27
27
 
28
28
  monster-message-state-button {
29
- margin-top: 2.9rem;
29
+ margin-top: 1.5rem;
30
30
  }
31
31
 
32
32
  .hidden {
@@ -20,6 +20,14 @@
20
20
  justify-content: space-between;
21
21
  }
22
22
 
23
+ ::slotted([data-monster-field-set-choice-label]) {
24
+ align-items: center;
25
+ justify-content: flex-start;
26
+ min-block-size: var(--monster-control-min-block-size, 2.75rem);
27
+ text-align: start;
28
+ cursor: pointer;
29
+ }
30
+
23
31
  ::slotted(hr),
24
32
  ::slotted(h1),
25
33
  ::slotted(h2),
@@ -3,6 +3,23 @@
3
3
  @import "../../style/border.pcss";
4
4
  @import "../../style/typography.pcss";
5
5
 
6
+ :host {
7
+ display: block;
8
+ box-sizing: border-box;
9
+ block-size: var(
10
+ --monster-password-control-block-size,
11
+ var(--monster-control-min-block-size, 2.5rem)
12
+ );
13
+ min-block-size: var(
14
+ --monster-password-control-block-size,
15
+ var(--monster-control-min-block-size, 2.5rem)
16
+ );
17
+ }
18
+
19
+ [data-monster-role="control"],
20
+ monster-input-group {
21
+ block-size: 100%;
22
+ }
6
23
 
7
24
  input:focus-visible,
8
25
  input {
@@ -11,8 +28,15 @@ input {
11
28
  background-color: var(--monster-bg-color-primary-1);
12
29
  }
13
30
 
31
+ monster-input-group {
32
+ background-color: var(
33
+ --monster-theme-control-bg-color,
34
+ var(--monster-bg-color-primary-1)
35
+ );
36
+ overflow: hidden;
37
+ }
38
+
14
39
  svg {
15
40
  cursor: pointer;
16
41
  stroke: var(--monster-color-primary-1);
17
42
  }
18
-
@@ -1,4 +1,5 @@
1
1
  @import "../../style/control.pcss";
2
+ @import "../../style/form.pcss";
2
3
  @import "../../style/floating-ui.pcss";
3
4
  @import "../../style/button.pcss";
4
5
  @import "../../style/typography.pcss";
@@ -2,10 +2,11 @@
2
2
 
3
3
  :host {
4
4
  /* Size tokens */
5
- --qty-height: 40px;
5
+ --qty-height: var(--monster-control-min-block-size, 40px);
6
+ --qty-button-size: max(1.5rem, calc(var(--qty-height) - var(--monster-space-4)));
6
7
  --qty-radius: 0;
7
8
  --qty-gap: var(--monster-space-4);
8
- --qty-pad-x: var(--monster-space-4);
9
+ --qty-pad-x: var(--monster-space-2);
9
10
 
10
11
  /* Anbindung an eure zentralen Tokens */
11
12
  --qty-bg: var(--monster-theme-control-bg-color);
@@ -54,26 +55,23 @@
54
55
  /* Buttons */
55
56
  [part="decrement-button"],
56
57
  [part="increment-button"] {
58
+ box-sizing: border-box;
57
59
  display: inline-grid;
58
60
  place-items: center;
59
- width: calc(var(--qty-height) - var(--monster-space-4));
60
- height: calc(var(--qty-height) - var(--monster-space-4));
61
+ width: var(--qty-button-size);
62
+ min-width: var(--qty-button-size);
63
+ height: var(--qty-button-size);
64
+ min-height: var(--qty-button-size);
65
+ padding: 0;
61
66
  border: 0;
62
67
  border-radius: var(--qty-radius);
63
68
  background: var(--qty-btn-bg);
64
69
  color: var(--qty-btn-fg);
70
+ line-height: 1;
65
71
  cursor: pointer;
66
72
  transition: transform .08s ease, background-color .15s ease;
67
73
  }
68
74
 
69
- [part="decrement-button"] {
70
- transform: translateX(-7px);
71
- }
72
- [part="increment-button"] {
73
- transform: translateX(7px);
74
- }
75
-
76
-
77
75
  [part="decrement-button"]:hover,
78
76
  [part="increment-button"]:hover {
79
77
  background: var(--qty-btn-bg-hover);
@@ -82,13 +80,7 @@
82
80
  [part="decrement-button"]:active,
83
81
  [part="increment-button"]:active {
84
82
  background: var(--qty-btn-bg-active);
85
- }
86
-
87
- [part="decrement-button"]:active {
88
- transform: scale(.95) translateX(-7px);
89
- }
90
- [part="increment-button"]:active {
91
- transform: scale(.95) translateX(7px);
83
+ transform: scale(.95);
92
84
  }
93
85
 
94
86
  [part="decrement-button"] svg,
@@ -147,4 +139,3 @@
147
139
  [part="decrement-button"],
148
140
  [part="increment-button"] { transition: none; }
149
141
  }
150
-