@db-ux/core-components 2.3.1 → 2.4.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.
@@ -1,6 +1,6 @@
1
+ import { glob } from 'glob';
1
2
  import { exec } from 'node:child_process';
2
3
  import { promisify } from 'node:util';
3
- import { glob } from 'glob';
4
4
 
5
5
  import { dirname } from 'path';
6
6
  import { fileURLToPath } from 'url';
@@ -204,17 +204,17 @@ paddings/gaps in an application e.g. the <main> should have a responsive padding
204
204
  /* stylelint-disable-next-line at-rule-empty-line-before */
205
205
  /* stylelint-disable-next-line at-rule-empty-line-before */
206
206
  }
207
- .db-checkbox:has(input:required):is(label)::after,
208
- .db-checkbox:has(input:required) > label::after, .db-checkbox[data-required=true]:is(label)::after,
209
- .db-checkbox[data-required=true] > label::after {
207
+ .db-checkbox:has(input:required):not([data-hide-asterisk=true]):is(label)::after,
208
+ .db-checkbox:has(input:required):not([data-hide-asterisk=true]) > label::after, .db-checkbox[data-required=true]:not([data-hide-asterisk=true]):is(label)::after,
209
+ .db-checkbox[data-required=true]:not([data-hide-asterisk=true]) > label::after {
210
210
  /* stylelint-disable-next-line db-ux/use-spacings */
211
211
  padding-inline-start: 1px;
212
212
  content: "*";
213
213
  }
214
214
  @supports (content: ""/"") {
215
- .db-checkbox:has(input:required):is(label)::after,
216
- .db-checkbox:has(input:required) > label::after, .db-checkbox[data-required=true]:is(label)::after,
217
- .db-checkbox[data-required=true] > label::after {
215
+ .db-checkbox:has(input:required):not([data-hide-asterisk=true]):is(label)::after,
216
+ .db-checkbox:has(input:required):not([data-hide-asterisk=true]) > label::after, .db-checkbox[data-required=true]:not([data-hide-asterisk=true]):is(label)::after,
217
+ .db-checkbox[data-required=true]:not([data-hide-asterisk=true]) > label::after {
218
218
  content: "*"/"";
219
219
  }
220
220
  }
@@ -750,12 +750,6 @@ input[type=radio]:checked) > label {
750
750
  inline-size: calc(100% - var(--db-form-component-padding-inline-end) - calc(var(--db-form-has-before) * (var(--db-base-body-icon-font-size-sm) + var(--db-spacing-fixed-sm))) - var(--db-spacing-fixed-sm));
751
751
  }
752
752
 
753
- dialog[data-variant], dialog[data-backdrop] {
754
- position: fixed;
755
- inset: 0;
756
- z-index: 9995;
757
- }
758
-
759
753
  dialog {
760
754
  padding: 0;
761
755
  margin: 0;
@@ -763,7 +757,12 @@ dialog {
763
757
  z-index: 9996;
764
758
  color: inherit;
765
759
  }
766
- dialog[data-variant=inside]:not([data-backdrop=none])::before {
760
+ dialog:not([data-position=absolute])[data-variant], dialog:not([data-position=absolute])[data-backdrop] {
761
+ position: fixed;
762
+ inset: 0;
763
+ z-index: 9995;
764
+ }
765
+ dialog:not([data-position=absolute])[data-variant=inside]:not([data-backdrop=none])::before {
767
766
  content: "";
768
767
  position: fixed;
769
768
  inset: 0;
@@ -874,17 +873,17 @@ input[type=radio]:checked) [id$=-placeholder] {
874
873
  transition: opacity var(--db-transition-straight-emotional);
875
874
  }
876
875
  }
877
- .db-custom-select:has(summary:required):is(label)::after,
878
- .db-custom-select:has(summary:required) > label::after, .db-custom-select[data-required=true]:is(label)::after,
879
- .db-custom-select[data-required=true] > label::after {
876
+ .db-custom-select:has(summary:required):not([data-hide-asterisk=true]):is(label)::after,
877
+ .db-custom-select:has(summary:required):not([data-hide-asterisk=true]) > label::after, .db-custom-select[data-required=true]:not([data-hide-asterisk=true]):is(label)::after,
878
+ .db-custom-select[data-required=true]:not([data-hide-asterisk=true]) > label::after {
880
879
  /* stylelint-disable-next-line db-ux/use-spacings */
881
880
  padding-inline-start: 1px;
882
881
  content: "*";
883
882
  }
884
883
  @supports (content: ""/"") {
885
- .db-custom-select:has(summary:required):is(label)::after,
886
- .db-custom-select:has(summary:required) > label::after, .db-custom-select[data-required=true]:is(label)::after,
887
- .db-custom-select[data-required=true] > label::after {
884
+ .db-custom-select:has(summary:required):not([data-hide-asterisk=true]):is(label)::after,
885
+ .db-custom-select:has(summary:required):not([data-hide-asterisk=true]) > label::after, .db-custom-select[data-required=true]:not([data-hide-asterisk=true]):is(label)::after,
886
+ .db-custom-select[data-required=true]:not([data-hide-asterisk=true]) > label::after {
888
887
  content: "*"/"";
889
888
  }
890
889
  }
@@ -124,12 +124,6 @@ paddings/gaps in an application e.g. the <main> should have a responsive padding
124
124
  * @mixin screen-min-max
125
125
  * @param $data an object like (min:"sm", max:"lg") or (min: "sm")
126
126
  */
127
- dialog[data-variant], dialog[data-backdrop] {
128
- position: fixed;
129
- inset: 0;
130
- z-index: 9995;
131
- }
132
-
133
127
  dialog {
134
128
  padding: 0;
135
129
  margin: 0;
@@ -137,7 +131,12 @@ dialog {
137
131
  z-index: 9996;
138
132
  color: inherit;
139
133
  }
140
- dialog[data-variant=inside]:not([data-backdrop=none])::before {
134
+ dialog:not([data-position=absolute])[data-variant], dialog:not([data-position=absolute])[data-backdrop] {
135
+ position: fixed;
136
+ inset: 0;
137
+ z-index: 9995;
138
+ }
139
+ dialog:not([data-position=absolute])[data-variant=inside]:not([data-backdrop=none])::before {
141
140
  content: "";
142
141
  position: fixed;
143
142
  inset: 0;
@@ -170,6 +169,7 @@ dialog:not([data-backdrop=none])[data-backdrop=weak]::backdrop, dialog:not([data
170
169
 
171
170
  .db-drawer .db-drawer-container[data-direction=down]:not([data-width=full]), .db-drawer .db-drawer-container[data-direction=up]:not([data-width=full]) {
172
171
  max-block-size: var(--db-drawer-max-height, calc(100% - var(--db-spacing-fixed-xl)));
172
+ min-block-size: var(--db-drawer-min-height, calc(100% - var(--db-spacing-fixed-xl)));
173
173
  max-inline-size: none;
174
174
  }
175
175
 
@@ -286,6 +286,7 @@ dialog:not([data-backdrop=none])[data-backdrop=weak]::backdrop, dialog:not([data
286
286
  }
287
287
  .db-drawer .db-drawer-container:not([data-width=full]) {
288
288
  max-inline-size: var(--db-drawer-max-width, calc(100% - var(--db-spacing-fixed-xl)));
289
+ min-inline-size: var(--db-drawer-min-width, calc(100% - var(--db-spacing-fixed-xl)));
289
290
  }
290
291
  .db-drawer .db-drawer-container:not([data-width=full]):not([data-direction]), .db-drawer .db-drawer-container:not([data-width=full])[data-direction=right] {
291
292
  border-inline-start: var(--db-border-width-3xs) solid var(--db-adaptive-on-bg-basic-emphasis-60-default);
@@ -338,6 +339,29 @@ dialog:not([data-backdrop=none])[data-backdrop=weak]::backdrop, dialog:not([data
338
339
  .db-drawer .db-drawer-container .db-drawer-header:has(.button-close-drawer), .db-drawer .db-drawer-container .db-drawer-header:has(:not(.db-drawer-header-text:empty)) {
339
340
  display: flex;
340
341
  }
342
+ .db-drawer[data-position=absolute] {
343
+ position: absolute;
344
+ z-index: 3;
345
+ inset: 0;
346
+ block-size: 100%;
347
+ inline-size: 100%;
348
+ background-color: transparent;
349
+ }
350
+ .db-drawer[data-position=absolute][open] {
351
+ display: flex;
352
+ }
353
+ .db-drawer[data-position=absolute]:not([data-direction]), .db-drawer[data-position=absolute][data-direction=right], .db-drawer[data-position=absolute][data-direction=left] {
354
+ flex-direction: column;
355
+ }
356
+ .db-drawer[data-position=absolute][data-direction=left], .db-drawer[data-position=absolute][data-direction=down] {
357
+ align-items: start;
358
+ }
359
+ .db-drawer[data-position=absolute]:not([data-direction]), .db-drawer[data-position=absolute][data-direction=right], .db-drawer[data-position=absolute][data-direction=up] {
360
+ align-items: end;
361
+ }
362
+ .db-drawer[data-position=absolute] .db-drawer-container {
363
+ position: relative;
364
+ }
341
365
  @media screen and (prefers-reduced-motion: no-preference) {
342
366
  .db-drawer[open] .db-drawer-container:not([data-direction]), .db-drawer[open] .db-drawer-container[data-direction=right] {
343
367
  animation: show-right-to-left var(--db-transition-straight-show);
@@ -30,6 +30,10 @@
30
30
  --db-drawer-max-height,
31
31
  calc(100% - #{variables.$db-spacing-fixed-xl})
32
32
  );
33
+ min-block-size: var(
34
+ --db-drawer-min-height,
35
+ calc(100% - #{variables.$db-spacing-fixed-xl})
36
+ );
33
37
  max-inline-size: none;
34
38
  }
35
39
  }
@@ -134,6 +138,10 @@ $spacings: (
134
138
  --db-drawer-max-width,
135
139
  calc(100% - #{variables.$db-spacing-fixed-xl})
136
140
  );
141
+ min-inline-size: var(
142
+ --db-drawer-min-width,
143
+ calc(100% - #{variables.$db-spacing-fixed-xl})
144
+ );
137
145
 
138
146
  &:not([data-direction]),
139
147
  &[data-direction="right"] {
@@ -195,6 +203,40 @@ $spacings: (
195
203
  }
196
204
  }
197
205
 
206
+ &[data-position="absolute"] {
207
+ position: absolute;
208
+ z-index: 3;
209
+ inset: 0;
210
+ block-size: 100%;
211
+ inline-size: 100%;
212
+ background-color: transparent;
213
+
214
+ &[open] {
215
+ display: flex;
216
+ }
217
+
218
+ &:not([data-direction]),
219
+ &[data-direction="right"],
220
+ &[data-direction="left"] {
221
+ flex-direction: column;
222
+ }
223
+
224
+ &[data-direction="left"],
225
+ &[data-direction="down"] {
226
+ align-items: start;
227
+ }
228
+
229
+ &:not([data-direction]),
230
+ &[data-direction="right"],
231
+ &[data-direction="up"] {
232
+ align-items: end;
233
+ }
234
+
235
+ .db-drawer-container {
236
+ position: relative;
237
+ }
238
+ }
239
+
198
240
  &[open] {
199
241
  .db-drawer-container {
200
242
  @media screen and (prefers-reduced-motion: no-preference) {
@@ -630,17 +630,17 @@ input[type=radio]:checked) [id$=-placeholder] {
630
630
  transition: opacity var(--db-transition-straight-emotional);
631
631
  }
632
632
  }
633
- .db-input:has(input:required):is(label)::after,
634
- .db-input:has(input:required) > label::after, .db-input[data-required=true]:is(label)::after,
635
- .db-input[data-required=true] > label::after {
633
+ .db-input:has(input:required):not([data-hide-asterisk=true]):is(label)::after,
634
+ .db-input:has(input:required):not([data-hide-asterisk=true]) > label::after, .db-input[data-required=true]:not([data-hide-asterisk=true]):is(label)::after,
635
+ .db-input[data-required=true]:not([data-hide-asterisk=true]) > label::after {
636
636
  /* stylelint-disable-next-line db-ux/use-spacings */
637
637
  padding-inline-start: 1px;
638
638
  content: "*";
639
639
  }
640
640
  @supports (content: ""/"") {
641
- .db-input:has(input:required):is(label)::after,
642
- .db-input:has(input:required) > label::after, .db-input[data-required=true]:is(label)::after,
643
- .db-input[data-required=true] > label::after {
641
+ .db-input:has(input:required):not([data-hide-asterisk=true]):is(label)::after,
642
+ .db-input:has(input:required):not([data-hide-asterisk=true]) > label::after, .db-input[data-required=true]:not([data-hide-asterisk=true]):is(label)::after,
643
+ .db-input[data-required=true]:not([data-hide-asterisk=true]) > label::after {
644
644
  content: "*"/"";
645
645
  }
646
646
  }
@@ -148,17 +148,17 @@ paddings/gaps in an application e.g. the <main> should have a responsive padding
148
148
  /* stylelint-disable-next-line at-rule-empty-line-before */
149
149
  /* stylelint-disable-next-line at-rule-empty-line-before */
150
150
  }
151
- .db-radio:has(input:required):is(label)::after,
152
- .db-radio:has(input:required) > label::after, .db-radio[data-required=true]:is(label)::after,
153
- .db-radio[data-required=true] > label::after {
151
+ .db-radio:has(input:required):not([data-hide-asterisk=true]):is(label)::after,
152
+ .db-radio:has(input:required):not([data-hide-asterisk=true]) > label::after, .db-radio[data-required=true]:not([data-hide-asterisk=true]):is(label)::after,
153
+ .db-radio[data-required=true]:not([data-hide-asterisk=true]) > label::after {
154
154
  /* stylelint-disable-next-line db-ux/use-spacings */
155
155
  padding-inline-start: 1px;
156
156
  content: "*";
157
157
  }
158
158
  @supports (content: ""/"") {
159
- .db-radio:has(input:required):is(label)::after,
160
- .db-radio:has(input:required) > label::after, .db-radio[data-required=true]:is(label)::after,
161
- .db-radio[data-required=true] > label::after {
159
+ .db-radio:has(input:required):not([data-hide-asterisk=true]):is(label)::after,
160
+ .db-radio:has(input:required):not([data-hide-asterisk=true]) > label::after, .db-radio[data-required=true]:not([data-hide-asterisk=true]):is(label)::after,
161
+ .db-radio[data-required=true]:not([data-hide-asterisk=true]) > label::after {
162
162
  content: "*"/"";
163
163
  }
164
164
  }
@@ -678,17 +678,17 @@ input[type=radio]:checked) [id$=-placeholder] {
678
678
  transition: opacity var(--db-transition-straight-emotional);
679
679
  }
680
680
  }
681
- .db-select:has(select:required):is(label)::after,
682
- .db-select:has(select:required) > label::after, .db-select[data-required=true]:is(label)::after,
683
- .db-select[data-required=true] > label::after {
681
+ .db-select:has(select:required):not([data-hide-asterisk=true]):is(label)::after,
682
+ .db-select:has(select:required):not([data-hide-asterisk=true]) > label::after, .db-select[data-required=true]:not([data-hide-asterisk=true]):is(label)::after,
683
+ .db-select[data-required=true]:not([data-hide-asterisk=true]) > label::after {
684
684
  /* stylelint-disable-next-line db-ux/use-spacings */
685
685
  padding-inline-start: 1px;
686
686
  content: "*";
687
687
  }
688
688
  @supports (content: ""/"") {
689
- .db-select:has(select:required):is(label)::after,
690
- .db-select:has(select:required) > label::after, .db-select[data-required=true]:is(label)::after,
691
- .db-select[data-required=true] > label::after {
689
+ .db-select:has(select:required):not([data-hide-asterisk=true]):is(label)::after,
690
+ .db-select:has(select:required):not([data-hide-asterisk=true]) > label::after, .db-select[data-required=true]:not([data-hide-asterisk=true]):is(label)::after,
691
+ .db-select[data-required=true]:not([data-hide-asterisk=true]) > label::after {
692
692
  content: "*"/"";
693
693
  }
694
694
  }
@@ -499,17 +499,17 @@ paddings/gaps in an application e.g. the <main> should have a responsive padding
499
499
  .db-switch {
500
500
  user-select: none;
501
501
  }
502
- .db-switch:has(input:required):is(label)::after,
503
- .db-switch:has(input:required) > label::after, .db-switch[data-required=true]:is(label)::after,
504
- .db-switch[data-required=true] > label::after {
502
+ .db-switch:has(input:required):not([data-hide-asterisk=true]):is(label)::after,
503
+ .db-switch:has(input:required):not([data-hide-asterisk=true]) > label::after, .db-switch[data-required=true]:not([data-hide-asterisk=true]):is(label)::after,
504
+ .db-switch[data-required=true]:not([data-hide-asterisk=true]) > label::after {
505
505
  /* stylelint-disable-next-line db-ux/use-spacings */
506
506
  padding-inline-start: 1px;
507
507
  content: "*";
508
508
  }
509
509
  @supports (content: ""/"") {
510
- .db-switch:has(input:required):is(label)::after,
511
- .db-switch:has(input:required) > label::after, .db-switch[data-required=true]:is(label)::after,
512
- .db-switch[data-required=true] > label::after {
510
+ .db-switch:has(input:required):not([data-hide-asterisk=true]):is(label)::after,
511
+ .db-switch:has(input:required):not([data-hide-asterisk=true]) > label::after, .db-switch[data-required=true]:not([data-hide-asterisk=true]):is(label)::after,
512
+ .db-switch[data-required=true]:not([data-hide-asterisk=true]) > label::after {
513
513
  content: "*"/"";
514
514
  }
515
515
  }
@@ -439,17 +439,17 @@ input[type=radio]:checked) [id$=-placeholder] {
439
439
  transition: opacity var(--db-transition-straight-emotional);
440
440
  }
441
441
  }
442
- .db-textarea:has(textarea:required):is(label)::after,
443
- .db-textarea:has(textarea:required) > label::after, .db-textarea[data-required=true]:is(label)::after,
444
- .db-textarea[data-required=true] > label::after {
442
+ .db-textarea:has(textarea:required):not([data-hide-asterisk=true]):is(label)::after,
443
+ .db-textarea:has(textarea:required):not([data-hide-asterisk=true]) > label::after, .db-textarea[data-required=true]:not([data-hide-asterisk=true]):is(label)::after,
444
+ .db-textarea[data-required=true]:not([data-hide-asterisk=true]) > label::after {
445
445
  /* stylelint-disable-next-line db-ux/use-spacings */
446
446
  padding-inline-start: 1px;
447
447
  content: "*";
448
448
  }
449
449
  @supports (content: ""/"") {
450
- .db-textarea:has(textarea:required):is(label)::after,
451
- .db-textarea:has(textarea:required) > label::after, .db-textarea[data-required=true]:is(label)::after,
452
- .db-textarea[data-required=true] > label::after {
450
+ .db-textarea:has(textarea:required):not([data-hide-asterisk=true]):is(label)::after,
451
+ .db-textarea:has(textarea:required):not([data-hide-asterisk=true]) > label::after, .db-textarea[data-required=true]:not([data-hide-asterisk=true]):is(label)::after,
452
+ .db-textarea[data-required=true]:not([data-hide-asterisk=true]) > label::after {
453
453
  content: "*"/"";
454
454
  }
455
455
  }