@swiftwc/ui 0.0.0-dev.21 → 0.0.0-dev.22

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 (54) hide show
  1. package/generated/components/bordered-button.d.ts +4 -0
  2. package/generated/components/bordered-button.js +8 -1
  3. package/generated/components/bordered-prominent-button.d.ts +4 -0
  4. package/generated/components/bordered-prominent-button.js +8 -1
  5. package/generated/components/borderless-button.d.ts +4 -0
  6. package/generated/components/borderless-button.js +8 -1
  7. package/generated/components/date-picker.js +10 -4
  8. package/generated/components/glass-button.d.ts +4 -0
  9. package/generated/components/glass-button.js +8 -1
  10. package/generated/components/glass-prominent-button.d.ts +4 -0
  11. package/generated/components/glass-prominent-button.js +8 -1
  12. package/generated/components/label-view.js +1 -33
  13. package/generated/components/picker-view.js +19 -15
  14. package/generated/components/scroll-view.js +8 -3
  15. package/generated/components/sheet-view.d.ts +0 -1
  16. package/generated/components/sheet-view.js +19 -7
  17. package/generated/components/sidebar-toggle.js +1 -1
  18. package/generated/components/tab-view.js +7 -7
  19. package/generated/components/table-view.js +11 -5
  20. package/generated/components/text-field.js +9 -4
  21. package/generated/components/tool-bar-item-group.d.ts +0 -2
  22. package/generated/components/tool-bar-item-group.js +15 -26
  23. package/generated/components/tool-bar-item.d.ts +0 -2
  24. package/generated/components/tool-bar-item.js +17 -28
  25. package/generated/components/tool-bar.d.ts +12 -0
  26. package/generated/components/tool-bar.js +19 -6
  27. package/generated/css/index.css +270 -70
  28. package/generated/events/tab-view.d.ts +6 -2
  29. package/generated/internal/class/css-style-observer.js +1 -1
  30. package/generated/internal/utils/button-role.js +25 -5
  31. package/generated/internal/utils/index.d.ts +0 -1
  32. package/generated/internal/utils/index.js +0 -1
  33. package/package.json +1 -1
  34. package/scss/_vars.scss +5 -0
  35. package/scss/base/_reboot.scss +10 -0
  36. package/scss/colors/_index.scss +37 -19
  37. package/scss/components/_bordered-button.scss +14 -0
  38. package/scss/components/_bordered-prominent-button.scss +13 -0
  39. package/scss/components/_borderless-button.scss +4 -0
  40. package/scss/components/_content-unavailable-view.scss +1 -1
  41. package/scss/components/_disclosure-group.scss +80 -33
  42. package/scss/components/_glass-button.scss +14 -0
  43. package/scss/components/_glass-prominent-button.scss +14 -0
  44. package/scss/components/_label-view.scss +42 -16
  45. package/scss/components/_label-view.scss.txt +536 -0
  46. package/scss/components/_sheet-view.scss +12 -12
  47. package/scss/components/_tab-bar.scss +5 -0
  48. package/scss/components/_tool-bar-item.scss +19 -0
  49. package/scss/components/_tool-bar.scss +25 -0
  50. package/scss/placeholders/_buttons.scss +72 -37
  51. package/scss/transitions/_tab-bar.scss +6 -5
  52. package/web-components.html-data/en.json +12 -21
  53. package/generated/internal/utils/toolbar-repositioner.d.ts +0 -1
  54. package/generated/internal/utils/toolbar-repositioner.js +0 -12
@@ -43,6 +43,11 @@
43
43
  text-transform: none;
44
44
  }
45
45
 
46
+ .ph,
47
+ .ph::before {
48
+ display: grid;
49
+ }
50
+
46
51
  button,
47
52
  *::part(button),
48
53
  input,
@@ -149,6 +154,11 @@
149
154
  // ipad-landscape-bp-min: vars.$ipad-landscape-bp-min,
150
155
  ipad-sheet-view-inline-size: vars.$ipad-sheet-view-inline-size,
151
156
  ipad-sheet-view-height: vars.$ipad-sheet-view-height,
157
+ //
158
+ cancel-button-icon: vars.$cancel-button-icon,
159
+ close-button-icon: vars.$close-button-icon,
160
+ confirm-button-icon: vars.$confirm-button-icon,
161
+ delete-button-icon: vars.$delete-button-icon,
152
162
  );
153
163
 
154
164
  @debug functions.map-to-query($CONFIG);
@@ -488,31 +488,49 @@ $colors: map.merge(
488
488
 
489
489
  :where([is='tab-bar']) {
490
490
  --toolbaritemtext: light-dark(var(--secondary-text), var(--secondary-text-dark));
491
+ --toolbaritemhighlighttext: light-dark(var(--secondary-text), var(--secondary-text-dark));
492
+ --toolbaritemactivetext: light-dark(var(--secondary-text), var(--secondary-text-dark));
491
493
  }
492
494
 
493
- :where(tool-bar-item, tool-bar-item-group, navigation-split-view sidebar-toggle) {
494
- //, list-view) {
495
- //, [is='form-view'] BREAKS sidebar
496
- --toolbaritemface: light-dark(var(--toolbar-cell-bg), var(--toolbar-cell-bg-dark));
497
- --toolbaritemhighlightface: light-dark(var(--toolbar-cell-focus-bg), var(--toolbar-cell-focus-bg-dark));
498
- --toolbaritemactiveface: light-dark(var(--toolbar-cell-active-bg), var(--toolbar-cell-active-bg-dark));
499
- // --toolbaritemtext: light-dark(var(--primary-label), var(--primary-label-dark)); //light-dark(oklch(var(--tint-lch) / 1), oklch(var(--tint-lch-dark) / 1));
500
-
501
- // @media (pointer: fine) {
502
- // --toolbaritemface: light-dark(var(--toolbar-cell-bg), var(--toolbar-cell-bg-dark));
503
- // --toolbaritemhighlightface: light-dark(var(--toolbar-cell-focus-bg), var(--toolbar-cell-focus-bg-dark));
504
- // --toolbaritemactiveface: light-dark(var(--toolbar-cell-active-bg), var(--toolbar-cell-active-bg-dark));
505
- // // --toolbaritemtext: light-dark(var(--primary-label), var(--primary-label-dark));
506
- // }
507
- }
508
-
509
- [is='tab-bar'] [is='tab-item'] {
495
+ tool-bar-item,
496
+ tool-bar-item-group,
497
+ navigation-split-view sidebar-toggle {
510
498
  :where(&) {
511
- --toolbaritemhighlighttext: yellow;
512
- --toolbaritemactivetext: chocolate;
499
+ //, list-view) {
500
+ //, [is='form-view'] BREAKS sidebar
501
+ --toolbaritemface: light-dark(var(--toolbar-cell-bg), var(--toolbar-cell-bg-dark));
502
+ --toolbaritemhighlightface: light-dark(var(--toolbar-cell-focus-bg), var(--toolbar-cell-focus-bg-dark));
503
+ --toolbaritemactiveface: light-dark(var(--toolbar-cell-active-bg), var(--toolbar-cell-active-bg-dark));
504
+ // --toolbaritemtext: light-dark(var(--primary-label), var(--primary-label-dark)); //light-dark(oklch(var(--tint-lch) / 1), oklch(var(--tint-lch-dark) / 1));
505
+
506
+ // @media (pointer: fine) {
507
+ // --toolbaritemface: light-dark(var(--toolbar-cell-bg), var(--toolbar-cell-bg-dark));
508
+ // --toolbaritemhighlightface: light-dark(var(--toolbar-cell-focus-bg), var(--toolbar-cell-focus-bg-dark));
509
+ // --toolbaritemactiveface: light-dark(var(--toolbar-cell-active-bg), var(--toolbar-cell-active-bg-dark));
510
+ // // --toolbaritemtext: light-dark(var(--primary-label), var(--primary-label-dark));
511
+ // }
512
+ }
513
+ :where(&[tint]) {
514
+ --toolbaritemtext: oklch(from var(--accentColor) clamp(0, (0.7 - l) * 999, 1) none none);
515
+ --toolbaritemhighlighttext: oklch(from var(--accentColor) clamp(0, (0.7 - l) * 999, 1) none none);
516
+ --toolbaritemactivetext: oklch(from var(--accentColor) clamp(0, (0.7 - l) * 999, 1) none none);
517
+
518
+ --toolbaritemface: var(--accentColor); //light-dark(var(--accentColor), var(--accentColor));
519
+ --toolbaritemhighlightface: light-dark(
520
+ oklch(from var(--accentColor) min(calc(l * 1.1), 1) min(calc(c * 1.1), c) h),
521
+ oklch(from var(--accentColor) min(calc(l * 1.1), 1) min(calc(c * 1.1), c) h)
522
+ );
523
+ --toolbaritemactiveface: light-dark(oklch(from var(--accentColor) min(calc(l * 1.2), 1) min(calc(c * 1.1), c) h), oklch(from var(--accentColor) min(calc(l * 1.2), 1) min(calc(c * 1.1), c) h));
513
524
  }
514
525
  }
515
526
 
527
+ // [is='tab-bar'] [is='tab-item'] {
528
+ // :where(&) {
529
+ // --toolbaritemhighlighttext: yellow;
530
+ // --toolbaritemactivetext: chocolate;
531
+ // }
532
+ // }
533
+
516
534
  sidebar-toggle,
517
535
  // tool-bar-item,
518
536
  // [is='tab-item'],
@@ -6,11 +6,25 @@
6
6
  @extend %button;
7
7
 
8
8
  :where(&) {
9
+ --btnpadistart: var(--regular-btn-padding);
10
+ --btnpadiend: var(--regular-btn-padding);
11
+ --btnpadbstart: var(--regular-btn-padding);
12
+ --btnpadbend: var(--regular-btn-padding);
13
+
9
14
  @media (pointer: fine) {
10
15
  --accentColor: var(--primary);
11
16
  }
12
17
  }
13
18
 
19
+ @each $size, $media in vars.$button-sizes {
20
+ :where(&[control-size='#{$size}']) {
21
+ --btnpadistart: var(--#{$size}-btn-padding);
22
+ --btnpadiend: var(--#{$size}-btn-padding);
23
+ --btnpadbstart: var(--#{$size}-btn-padding);
24
+ --btnpadbend: var(--#{$size}-btn-padding);
25
+ }
26
+ }
27
+
14
28
  :where(&[role='destructive']) {
15
29
  --accentColor: var(--red);
16
30
  --accentColor2: var(--red2);
@@ -6,6 +6,19 @@
6
6
  @extend %button;
7
7
 
8
8
  :where(&) {
9
+ --btnpadistart: var(--regular-btn-padding);
10
+ --btnpadiend: var(--regular-btn-padding);
11
+ --btnpadbstart: var(--regular-btn-padding);
12
+ --btnpadbend: var(--regular-btn-padding);
13
+ }
14
+
15
+ @each $size, $media in vars.$button-sizes {
16
+ :where(&[control-size='#{$size}']) {
17
+ --btnpadistart: var(--#{$size}-btn-padding);
18
+ --btnpadiend: var(--#{$size}-btn-padding);
19
+ --btnpadbstart: var(--#{$size}-btn-padding);
20
+ --btnpadbend: var(--#{$size}-btn-padding);
21
+ }
9
22
  }
10
23
 
11
24
  :where(&[role='destructive']) {
@@ -6,6 +6,10 @@
6
6
  @extend %button;
7
7
 
8
8
  :where(&) {
9
+ --btnpadistart: 0.1rem;
10
+ --btnpadiend: 0.1rem;
11
+ --btnpadbstart: 0.1rem;
12
+ --btnpadbend: 0.1rem;
9
13
  }
10
14
 
11
15
  :where(&[role='destructive']) {
@@ -23,7 +23,7 @@
23
23
  }
24
24
 
25
25
  > :not([slot]) {
26
- --label-image-size: 5rem;
26
+ --label-image-size: 5;
27
27
 
28
28
  --label-gap: 1rem;
29
29
 
@@ -8,56 +8,81 @@
8
8
  overflow: clip;
9
9
 
10
10
  --disclosure--host-details-content-block-size: 0;
11
+ }
12
+
13
+ @supports (x: #{string.unquote('if(else:red)')}) {
14
+ :where(&) {
15
+ --disclosure--marker-display: if(style(--disclosure-style: marker-trailing): ; style(--disclosure-style: marker-leading): ; else: none;);
16
+
17
+ --disclosure--summary-grid-auto-flow: if(style(--disclosure-style: marker-trailing): column ; style(--disclosure-style: marker-leading): column ;);
11
18
 
12
- --disclosure-style: ;
19
+ --disclosure--summary-gap: if(style(--disclosure-style: marker-trailing): 0.1rem ; style(--disclosure-style: marker-leading): 0.1rem ;);
13
20
 
14
- --disclosure--summary-grid-template-columns: ;
15
- --disclosure--summary-grid-auto-flow: ;
16
- --disclosure--summary-gap: ;
21
+ --disclosure--summary-grid-template-columns: if(style(--disclosure-style: marker-trailing): minmax(0, 1fr) auto ; style(--disclosure-style: marker-leading): auto minmax(0, 1fr) ;);
17
22
 
18
- --disclosure--marker-display: ;
19
- --disclosure--marker-transform: ;
23
+ --disclosure--marker-order: if(style(--disclosure-style: marker-leading): -1 ;);
24
+ }
20
25
  }
21
26
 
22
- :where(& > summary) {
23
- gap: var(--disclosure--summary-gap,);
27
+ @supports not (x: #{string.unquote('if(else:red)')}) {
28
+ :where(&) {
29
+ --disclosure-style: ;
24
30
 
25
- grid-auto-flow: var(--disclosure--summary-grid-auto-flow,);
31
+ --disclosure--summary-grid-template-columns: ;
32
+ --disclosure--summary-grid-auto-flow: ;
33
+ --disclosure--summary-gap: ;
26
34
 
27
- grid-template-columns: var(--disclosure--summary-grid-template-columns,);
35
+ --disclosure--marker-display: none;
36
+ --disclosure--marker-transform: ;
37
+ }
38
+ }
28
39
 
29
- @include mixins.make-marker-pseudos(vars.$disclosure-affordance);
40
+ > summary {
41
+ :where(&) {
42
+ gap: var(--disclosure--summary-gap,);
30
43
 
31
- &::after {
32
- display: var(--disclosure--marker-display,);
44
+ grid-auto-flow: var(--disclosure--summary-grid-auto-flow,);
33
45
 
34
- block-size: 1rem;
35
- inline-size: 1rem;
46
+ grid-template-columns: var(--disclosure--summary-grid-template-columns,);
36
47
 
37
- background-color: var(--blue);
48
+ @include mixins.make-marker-pseudos(vars.$disclosure-affordance);
38
49
 
39
- transform: var(--disclosure--marker-transform,);
50
+ &::after {
51
+ display: var(--disclosure--marker-display,);
40
52
 
41
- order: var(--disclosure--marker-order,);
42
- }
43
- }
53
+ block-size: 1rem;
54
+ inline-size: 1rem;
44
55
 
45
- :where(& > summary) {
46
- @container not (style(--disclosure-style: marker-trailing) or style(--disclosure-style: marker-leading)) {
47
- --disclosure--marker-display: none;
48
- }
49
- @container style(--disclosure-style: marker-trailing) or style(--disclosure-style: marker-leading) {
50
- --disclosure--summary-grid-auto-flow: column;
56
+ background-color: var(--blue);
51
57
 
52
- --disclosure--summary-gap: 0.1rem;
53
- }
54
- @container style(--disclosure-style: marker-trailing) {
55
- --disclosure--summary-grid-template-columns: minmax(0, 1fr) auto;
58
+ transform: var(--disclosure--marker-transform,);
59
+
60
+ order: var(--disclosure--marker-order,);
61
+ }
56
62
  }
57
- @container style(--disclosure-style: marker-leading) {
58
- --disclosure--summary-grid-template-columns: auto minmax(0, 1fr);
59
63
 
60
- --disclosure--marker-order: -1;
64
+ @supports not (x: #{string.unquote('if(else:red)')}) {
65
+ :where(&) {
66
+ // @container not (style(--disclosure-style: marker-trailing) or style(--disclosure-style: marker-leading)) {
67
+ // --disclosure--marker-display: none;
68
+ // }
69
+ @container style(--disclosure-style: marker-trailing) or style(--disclosure-style: marker-leading) {
70
+ --disclosure--marker-display: grid;
71
+ }
72
+ @container style(--disclosure-style: marker-trailing) or style(--disclosure-style: marker-leading) {
73
+ --disclosure--summary-grid-auto-flow: column;
74
+
75
+ --disclosure--summary-gap: 0.1rem;
76
+ }
77
+ @container style(--disclosure-style: marker-trailing) {
78
+ --disclosure--summary-grid-template-columns: minmax(0, 1fr) auto;
79
+ }
80
+ @container style(--disclosure-style: marker-leading) {
81
+ --disclosure--summary-grid-template-columns: auto minmax(0, 1fr);
82
+
83
+ --disclosure--marker-order: -1;
84
+ }
85
+ }
61
86
  }
62
87
  }
63
88
 
@@ -116,9 +141,31 @@
116
141
  @supports not (x: #{string.unquote('attr(x type(*))')}) {
117
142
  :where(&[disclosure-style='marker-trailing']) {
118
143
  --disclosure-style: marker-trailing;
144
+
145
+ // SAFARI FIX (specify manually attr to avoid flashing)
146
+ @supports not (x: #{string.unquote('if(else:red)')}) {
147
+ --disclosure--marker-display: grid;
148
+
149
+ --disclosure--summary-grid-auto-flow: column;
150
+
151
+ --disclosure--summary-gap: 0.1rem;
152
+
153
+ --disclosure--summary-grid-template-columns: minmax(0, 1fr) auto;
154
+ }
119
155
  }
120
156
  :where(&[disclosure-style='marker-leading']) {
121
157
  --disclosure-style: marker-leading;
158
+
159
+ // SAFARI FIX (specify manually attr to avoid flashing)
160
+ @supports not (x: #{string.unquote('if(else:red)')}) {
161
+ --disclosure--marker-display: grid;
162
+
163
+ --disclosure--summary-grid-auto-flow: column;
164
+
165
+ --disclosure--summary-gap: 0.1rem;
166
+
167
+ --disclosure--summary-grid-template-columns: auto minmax(0, 1fr);
168
+ }
122
169
  }
123
170
  :where(&[disclosure-style='marker-hidden']) {
124
171
  --disclosure-style: ;
@@ -11,6 +11,20 @@
11
11
  box-shadow: var(--toolbar-cell-box-shadow);
12
12
 
13
13
  transform: var(--btn--scale,);
14
+
15
+ --btnpadistart: var(--regular-btn-padding);
16
+ --btnpadiend: var(--regular-btn-padding);
17
+ --btnpadbstart: var(--regular-btn-padding);
18
+ --btnpadbend: var(--regular-btn-padding);
19
+ }
20
+
21
+ @each $size, $media in vars.$button-sizes {
22
+ :where(&[control-size='#{$size}']) {
23
+ --btnpadistart: var(--#{$size}-btn-padding);
24
+ --btnpadiend: var(--#{$size}-btn-padding);
25
+ --btnpadbstart: var(--#{$size}-btn-padding);
26
+ --btnpadbend: var(--#{$size}-btn-padding);
27
+ }
14
28
  }
15
29
 
16
30
  :where(&[role='destructive']) {
@@ -11,6 +11,20 @@
11
11
  box-shadow: var(--toolbar-cell-box-shadow);
12
12
 
13
13
  transform: var(--btn--scale,);
14
+
15
+ --btnpadistart: var(--regular-btn-padding);
16
+ --btnpadiend: var(--regular-btn-padding);
17
+ --btnpadbstart: var(--regular-btn-padding);
18
+ --btnpadbend: var(--regular-btn-padding);
19
+ }
20
+
21
+ @each $size, $media in vars.$button-sizes {
22
+ :where(&[control-size='#{$size}']) {
23
+ --btnpadistart: var(--#{$size}-btn-padding);
24
+ --btnpadiend: var(--#{$size}-btn-padding);
25
+ --btnpadbstart: var(--#{$size}-btn-padding);
26
+ --btnpadbend: var(--#{$size}-btn-padding);
27
+ }
14
28
  }
15
29
 
16
30
  :where(&[role='destructive']) {
@@ -11,11 +11,23 @@
11
11
  }
12
12
 
13
13
  @property --label-image-size {
14
+ syntax: '<number>';
15
+ inherits: false;
16
+ initial-value: 2;
17
+ }
18
+
19
+ @property --label-padding-inline {
14
20
  syntax: '<length>';
15
21
  inherits: false;
16
22
  initial-value: 0;
17
23
  }
18
24
 
25
+ // @property --label-font-weight {
26
+ // syntax: 'ultra-light | thin | light | regular | medium | semibold | bold | heavy | black';
27
+ // inherits: false;
28
+ // initial-value: regular;
29
+ // }
30
+
19
31
  // @property --label-style {
20
32
  // syntax: 'title-and-icon | icon-only | title-only | automatic';
21
33
  // inherits: true;
@@ -162,6 +174,8 @@ $label-line-ifs: (
162
174
  :where(&) {
163
175
  // transition: --label--style 1ms step-start;
164
176
 
177
+ padding-inline: var(--label-padding-inline);
178
+
165
179
  align-items: var(--label--host-align-items,);
166
180
  justify-items: var(--label--host-justify-items,);
167
181
  // place-items: center;
@@ -175,8 +189,8 @@ $label-line-ifs: (
175
189
 
176
190
  gap: var(--label--host-gap,); //;
177
191
 
178
- --label-image-size: 2rem;
179
- --label-imagestack-fontsize: var(--label-image-size);
192
+ // --label-image-size: 2rem;
193
+ --label-imagestack-fontsize: calc(var(--label-image-size) * 1rem);
180
194
  // gap: 0;
181
195
 
182
196
  white-space: var(--label--host-white-space,);
@@ -221,29 +235,41 @@ $label-line-ifs: (
221
235
  }
222
236
  }
223
237
 
224
- :where(&:has(> [slot='image'])) {
225
- --label--has-icon: yes;
226
- // background-color: green;
238
+ &:has(> [slot='image']) {
239
+ :where(&) {
240
+ --label--has-icon: yes;
241
+ // background-color: green;
242
+ }
227
243
  }
228
- :where(&:has(> :not([slot]))) {
229
- --label--has-title: yes;
230
- // background-color: red;
244
+ &:has(> :not([slot])) {
245
+ :where(&) {
246
+ --label--has-title: yes;
247
+ // background-color: red;
248
+ }
231
249
  }
232
250
 
233
- :where(& > :not([slot])) {
234
- // grid-area: label-title-stack;
235
- overflow: var(--label--overflow,);
251
+ > :not([slot]) {
252
+ :where(&) {
253
+ // grid-area: label-title-stack;
254
+ overflow: var(--label--overflow,);
236
255
 
237
- text-overflow: var(--label--text-overflow,);
256
+ text-overflow: var(--label--text-overflow,);
238
257
 
239
- display: var(--label--display,);
258
+ display: var(--label--display,);
240
259
 
241
- -webkit-box-orient: var(--label--box-orient,);
260
+ -webkit-box-orient: var(--label--box-orient,);
242
261
 
243
- line-clamp: var(--label--line-clamp,);
244
- -webkit-line-clamp: var(--label--line-clamp,);
262
+ line-clamp: var(--label--line-clamp,);
263
+ -webkit-line-clamp: var(--label--line-clamp,);
264
+ }
245
265
  }
246
266
 
267
+ // > [slot='image'] {
268
+ // :where(&:is(i)) {
269
+ // line-height: 1.1;
270
+ // }
271
+ // }
272
+
247
273
  // vars
248
274
  @supports (x: #{string.unquote('if(else:red)')}) {
249
275
  :where(&) {