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

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 (74) hide show
  1. package/generated/client/index.d.ts +1 -1
  2. package/generated/client/index.js +97 -32
  3. package/generated/components/bordered-button.d.ts +4 -0
  4. package/generated/components/bordered-button.js +8 -1
  5. package/generated/components/bordered-prominent-button.d.ts +4 -0
  6. package/generated/components/bordered-prominent-button.js +8 -1
  7. package/generated/components/borderless-button.d.ts +4 -0
  8. package/generated/components/borderless-button.js +8 -1
  9. package/generated/components/date-picker.js +10 -4
  10. package/generated/components/fine-tooltip.d.ts +7 -0
  11. package/generated/components/fine-tooltip.js +93 -0
  12. package/generated/components/glass-button.d.ts +4 -0
  13. package/generated/components/glass-button.js +8 -1
  14. package/generated/components/glass-prominent-button.d.ts +4 -0
  15. package/generated/components/glass-prominent-button.js +8 -1
  16. package/generated/components/index.d.ts +1 -0
  17. package/generated/components/index.js +1 -0
  18. package/generated/components/label-view.js +1 -33
  19. package/generated/components/picker-view.js +19 -15
  20. package/generated/components/scroll-view.js +8 -3
  21. package/generated/components/sheet-view.d.ts +0 -1
  22. package/generated/components/sheet-view.js +19 -7
  23. package/generated/components/sidebar-toggle.js +1 -1
  24. package/generated/components/tab-view.js +7 -7
  25. package/generated/components/table-view.js +11 -5
  26. package/generated/components/text-field.js +9 -4
  27. package/generated/components/tool-bar-item-group.d.ts +0 -2
  28. package/generated/components/tool-bar-item-group.js +15 -26
  29. package/generated/components/tool-bar-item.js +22 -19
  30. package/generated/components/tool-bar.d.ts +12 -0
  31. package/generated/components/tool-bar.js +19 -6
  32. package/generated/css/index.css +485 -198
  33. package/generated/events/tab-view.d.ts +6 -2
  34. package/generated/internal/class/css-style-observer.js +1 -1
  35. package/generated/internal/utils/button-role.d.ts +1 -1
  36. package/generated/internal/utils/button-role.js +33 -8
  37. package/generated/internal/utils/index.d.ts +0 -1
  38. package/generated/internal/utils/index.js +0 -1
  39. package/package.json +1 -1
  40. package/scss/_components.scss +2 -0
  41. package/scss/_mixins.scss +4 -0
  42. package/scss/_transitions.scss +2 -0
  43. package/scss/_vars.scss +5 -0
  44. package/scss/base/_reboot.scss +15 -0
  45. package/scss/base/_root.scss +63 -67
  46. package/scss/colors/_index.scss +82 -33
  47. package/scss/components/_alert-dialog.scss +4 -5
  48. package/scss/components/_bordered-button.scss +14 -0
  49. package/scss/components/_bordered-prominent-button.scss +13 -0
  50. package/scss/components/_borderless-button.scss +4 -0
  51. package/scss/components/_confirmation-dialog.scss +1 -1
  52. package/scss/components/_content-unavailable-view.scss +1 -1
  53. package/scss/components/_disclosure-group.scss +80 -33
  54. package/scss/components/_fine-tooltip.scss +82 -0
  55. package/scss/components/_glass-button.scss +14 -0
  56. package/scss/components/_glass-prominent-button.scss +14 -0
  57. package/scss/components/_index.scss +21 -20
  58. package/scss/components/_label-view.scss +42 -16
  59. package/scss/components/_label-view.scss.txt +536 -0
  60. package/scss/components/_menu-view.scss +17 -0
  61. package/scss/components/_navigation-split-view.scss +3 -3
  62. package/scss/components/_sheet-view.scss +12 -12
  63. package/scss/components/_tab-bar.scss +5 -0
  64. package/scss/components/_tool-bar-item.scss +71 -53
  65. package/scss/components/_tool-bar.scss +25 -0
  66. package/scss/mixins/_button.scss +42 -0
  67. package/scss/mixins/_color.scss +16 -0
  68. package/scss/mixins/_index.scss +1 -1
  69. package/scss/placeholders/_buttons.scss +40 -48
  70. package/scss/transitions/_fine-tooltip.scss +21 -0
  71. package/scss/transitions/_tab-bar.scss +6 -5
  72. package/web-components.html-data/en.json +18 -16
  73. package/generated/internal/utils/toolbar-repositioner.d.ts +0 -1
  74. package/generated/internal/utils/toolbar-repositioner.js +0 -12
@@ -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']) {
@@ -33,7 +33,7 @@
33
33
  box-shadow: var(--menu-popover-box-shadow,); //0 0 10px 10px black;
34
34
 
35
35
  padding-block: 1rem;
36
- padding-inline: 1em;
36
+ padding-inline: 1rem;
37
37
  gap: 0.5rem;
38
38
 
39
39
  // finally
@@ -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: ;
@@ -0,0 +1,82 @@
1
+ @use '../vars';
2
+ @use '../mixins';
3
+
4
+ @layer #{vars.$tab-components-layer} {
5
+ fine-tooltip {
6
+ :where(&) {
7
+ color: var(--text,);
8
+
9
+ pointer-events: none;
10
+ touch-action: none;
11
+
12
+ position: fixed;
13
+
14
+ inline-size: max-content;
15
+ block-size: max-content;
16
+ height: auto; // safari
17
+
18
+ max-inline-size: 80vw;
19
+ max-block-size: 80vh;
20
+
21
+ margin-block: var(--tooltip--dialog-margin-block,);
22
+ margin-inline: var(--tooltip--dialog-margin-inline,);
23
+
24
+ transform: var(--tooltip--dialog-scale,) var(--tooltip--dialog-translate,);
25
+ opacity: var(--tooltip--dialog-opacity,);
26
+ transform-origin: top;
27
+
28
+ position-anchor: --fine-tooltip; // overriden
29
+ position-area: bottom center;
30
+
31
+ overflow: clip;
32
+ border-radius: 0.9rem;
33
+
34
+ backdrop-filter: var(--liquid-glass-backdrop-filter,);
35
+ box-shadow: var(--menu-popover-box-shadow,);
36
+
37
+ padding-block: 0.5rem;
38
+ padding-inline: 1rem;
39
+ gap: 0.5rem;
40
+
41
+ border: none;
42
+
43
+ position-try-fallbacks: --custom-top;
44
+ position-try-order: most-height;
45
+ position-visibility: anchors-visible;
46
+
47
+ // finally
48
+ --tooltip--dialog-translate: translateY(-10%);
49
+ --tooltip--dialog-scale: scale(0.9);
50
+ --tooltip--dialog-opacity: 0;
51
+ }
52
+
53
+ &[open] {
54
+ :where(&) {
55
+ --tooltip--dialog-margin-block: max(env(safe-area-inset-top), var(--menu-spacing)) max(env(safe-area-inset-bottom), var(--menu-spacing));
56
+ --tooltip--dialog-margin-inline: max(env(safe-area-inset-left), var(--menu-spacing)) max(env(safe-area-inset-right), var(--menu-spacing));
57
+
58
+ --tooltip--dialog-translate: translateY(0);
59
+ --tooltip--dialog-scale: scale(1);
60
+ --tooltip--dialog-opacity: 0.9;
61
+
62
+ @starting-style {
63
+ --tooltip--dialog-translate: translateY(-10%);
64
+ --tooltip--dialog-scale: scale(0.9);
65
+ --tooltip--dialog-opacity: 0;
66
+ }
67
+ }
68
+ }
69
+
70
+ &[closing] {
71
+ :where(&) {
72
+ --tooltip--dialog-translate: translateY(-10%);
73
+ --tooltip--dialog-scale: scale(0.9);
74
+ --tooltip--dialog-opacity: 0;
75
+ }
76
+ }
77
+ }
78
+ }
79
+
80
+ @position-try --custom-top {
81
+ position-area: top center;
82
+ }
@@ -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']) {
@@ -31,6 +31,7 @@
31
31
  content-unavailable-view,
32
32
  tool-bar-item,
33
33
  tool-bar-item-group,
34
+ fine-tooltip,
34
35
  sidebar-toggle,
35
36
  [is='form-view'],
36
37
  v-stack,
@@ -115,8 +116,8 @@
115
116
  [is='tab-bar'] [is='tab-item'],
116
117
  tool-bar-item [is='disclosure-group'] > button,
117
118
  tool-bar-item [is='disclosure-group'] > summary
118
- ),
119
- :where(menu-view)::part(menu-summary) {
119
+ ) {
120
+ // :where(menu-view)::part(menu-summary) {
120
121
  // display: grid;
121
122
  // place-items: center;
122
123
  // place-content: center;
@@ -175,7 +176,7 @@
175
176
  tool-bar-item > button,
176
177
  tool-bar-item > input,
177
178
  [is='tab-bar'] [is='tab-item'],
178
- menu-view > button,
179
+ // menu-view > button,
179
180
  tool-bar-item [is='disclosure-group'] > button,
180
181
  tool-bar-item [is='disclosure-group'] > summary {
181
182
  @include mixins.add-focus-visible-state {
@@ -187,16 +188,16 @@
187
188
  --toolbaritemtext: var(--toolbaritemhighlighttext,);
188
189
  }
189
190
  }
190
- menu-view {
191
- @include mixins.add-focus-visible-state('::part(menu-summary)') {
192
- --toolbaritemface: var(--toolbaritemhighlightface,);
193
- --toolbaritemtext: var(--toolbaritemhighlighttext,);
194
- }
195
- @include mixins.add-hover-state('::part(menu-summary)') {
196
- --toolbaritemface: var(--toolbaritemhighlightface,);
197
- --toolbaritemtext: var(--toolbaritemhighlighttext,);
198
- }
199
- }
191
+ // menu-view {
192
+ // @include mixins.add-focus-visible-state('::part(menu-summary)') {
193
+ // --toolbaritemface: var(--toolbaritemhighlightface,);
194
+ // --toolbaritemtext: var(--toolbaritemhighlighttext,);
195
+ // }
196
+ // @include mixins.add-hover-state('::part(menu-summary)') {
197
+ // --toolbaritemface: var(--toolbaritemhighlightface,);
198
+ // --toolbaritemtext: var(--toolbaritemhighlighttext,);
199
+ // }
200
+ // }
200
201
  // itemize
201
202
  // list-view,
202
203
  // [is='form-view'] {
@@ -217,7 +218,7 @@
217
218
  tool-bar-item > button,
218
219
  tool-bar-item > input,
219
220
  [is='tab-bar'] [is='tab-item'],
220
- menu-view > button,
221
+ // menu-view > button,
221
222
  tool-bar-item [is='disclosure-group'] > button,
222
223
  tool-bar-item [is='disclosure-group'] > summary {
223
224
  @include mixins.add-active-state {
@@ -225,12 +226,12 @@
225
226
  --toolbaritemtext: var(--toolbaritemactivetext,);
226
227
  }
227
228
  }
228
- menu-view {
229
- @include mixins.add-active-state('::part(menu-summary)') {
230
- --toolbaritemface: var(--toolbaritemactiveface,);
231
- --toolbaritemtext: var(--toolbaritemactivetext,);
232
- }
233
- }
229
+ // menu-view {
230
+ // @include mixins.add-active-state('::part(menu-summary)') {
231
+ // --toolbaritemface: var(--toolbaritemactiveface,);
232
+ // --toolbaritemtext: var(--toolbaritemactivetext,);
233
+ // }
234
+ // }
234
235
  // itemize
235
236
  // list-view,
236
237
  // [is='form-view'] {
@@ -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(&) {