@swiftwc/ui 0.0.0-dev.20 → 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 (113) hide show
  1. package/generated/buses/alert-dialog.d.ts +2 -0
  2. package/generated/buses/alert-dialog.js +1 -0
  3. package/generated/buses/confirmation-dialog.d.ts +2 -0
  4. package/generated/buses/confirmation-dialog.js +1 -0
  5. package/generated/buses/index.d.ts +6 -0
  6. package/generated/buses/index.js +6 -0
  7. package/generated/buses/lifecycle-observer.d.ts +2 -0
  8. package/generated/buses/lifecycle-observer.js +1 -0
  9. package/generated/client/index.d.ts +17 -4
  10. package/generated/client/index.js +83 -32
  11. package/generated/components/alert-dialog.d.ts +8 -0
  12. package/generated/components/alert-dialog.js +94 -0
  13. package/generated/components/bordered-button.d.ts +6 -0
  14. package/generated/components/bordered-button.js +22 -1
  15. package/generated/components/bordered-prominent-button.d.ts +6 -0
  16. package/generated/components/bordered-prominent-button.js +22 -1
  17. package/generated/components/borderless-button.d.ts +5 -1
  18. package/generated/components/borderless-button.js +13 -7
  19. package/generated/components/confirmation-dialog.d.ts +1 -1
  20. package/generated/components/confirmation-dialog.js +26 -20
  21. package/generated/components/content-unavailable-view.js +2 -2
  22. package/generated/components/date-picker.js +24 -10
  23. package/generated/components/disclosure-group.js +4 -1
  24. package/generated/components/glass-button.d.ts +6 -0
  25. package/generated/components/glass-button.js +22 -1
  26. package/generated/components/glass-prominent-button.d.ts +6 -0
  27. package/generated/components/glass-prominent-button.js +22 -1
  28. package/generated/components/index.d.ts +1 -0
  29. package/generated/components/index.js +1 -0
  30. package/generated/components/label-view.js +3 -35
  31. package/generated/components/menu-view.js +12 -7
  32. package/generated/components/navigation-title.js +4 -4
  33. package/generated/components/picker-view.js +35 -25
  34. package/generated/components/scroll-view.js +27 -13
  35. package/generated/components/section-view.js +3 -3
  36. package/generated/components/sheet-view.d.ts +1 -2
  37. package/generated/components/sheet-view.js +38 -22
  38. package/generated/components/sidebar-toggle.js +6 -4
  39. package/generated/components/sidebar-view.js +10 -4
  40. package/generated/components/sticky-container.js +3 -1
  41. package/generated/components/tab-bar.js +10 -4
  42. package/generated/components/tab-item.js +3 -1
  43. package/generated/components/tab-view.js +11 -8
  44. package/generated/components/table-view.js +22 -10
  45. package/generated/components/text-field.js +37 -32
  46. package/generated/components/tool-bar-item-group.js +17 -0
  47. package/generated/components/tool-bar-item.js +20 -1
  48. package/generated/components/tool-bar.d.ts +12 -0
  49. package/generated/components/tool-bar.js +20 -7
  50. package/generated/components/v-stack.d.ts +5 -0
  51. package/generated/components/v-stack.js +5 -0
  52. package/generated/css/index.css +377 -86
  53. package/generated/events/alert-dialog.d.ts +8 -0
  54. package/generated/events/alert-dialog.js +1 -0
  55. package/generated/events/confirmation-dialog.d.ts +2 -2
  56. package/generated/events/index.d.ts +1 -0
  57. package/generated/events/index.js +1 -0
  58. package/generated/events/tab-view.d.ts +6 -2
  59. package/generated/i18n/locales/el.d.ts +9 -0
  60. package/generated/i18n/locales/el.js +9 -0
  61. package/generated/i18n/locales/en.d.ts +9 -0
  62. package/generated/i18n/locales/en.js +9 -0
  63. package/generated/internal/class/css-style-observer.js +1 -1
  64. package/generated/internal/class/form-associated-base.js +4 -1
  65. package/generated/internal/class/navigation-view.js +4 -4
  66. package/generated/internal/utils/button-role.d.ts +1 -0
  67. package/generated/internal/utils/button-role.js +39 -0
  68. package/generated/internal/utils/cash/index.d.ts +4 -3
  69. package/generated/internal/utils/cash/index.js +6 -4
  70. package/generated/internal/utils/index.d.ts +2 -0
  71. package/generated/internal/utils/index.js +2 -0
  72. package/generated/internal/utils/is-inside.d.ts +1 -0
  73. package/generated/internal/utils/is-inside.js +4 -0
  74. package/generated/internal/utils/list-active.js +15 -5
  75. package/generated/snapshot/index.d.ts +2 -0
  76. package/generated/snapshot/index.js +21 -0
  77. package/package.json +7 -4
  78. package/scss/_components.scss +2 -0
  79. package/scss/_functions.scss +10 -0
  80. package/scss/_transitions.scss +1 -0
  81. package/scss/_vars.scss +5 -0
  82. package/scss/base/_reboot.scss +10 -0
  83. package/scss/colors/_index.scss +39 -21
  84. package/scss/components/_alert-dialog.scss +106 -0
  85. package/scss/components/_bordered-button.scss +14 -0
  86. package/scss/components/_bordered-prominent-button.scss +13 -0
  87. package/scss/components/_borderless-button.scss +4 -0
  88. package/scss/components/_confirmation-dialog.scss +39 -39
  89. package/scss/components/_content-unavailable-view.scss +1 -1
  90. package/scss/components/_disclosure-group.scss +80 -33
  91. package/scss/components/_glass-button.scss +14 -0
  92. package/scss/components/_glass-prominent-button.scss +14 -0
  93. package/scss/components/_h-stack.scss +3 -13
  94. package/scss/components/_index.scss +1 -0
  95. package/scss/components/_label-view.scss +42 -16
  96. package/scss/components/_label-view.scss.txt +536 -0
  97. package/scss/components/_sheet-view.scss +13 -3
  98. package/scss/components/_tab-bar.scss +5 -0
  99. package/scss/components/_tool-bar-item.scss +19 -0
  100. package/scss/components/_tool-bar.scss +25 -0
  101. package/scss/components/_v-stack.scss +3 -13
  102. package/scss/final/_touch-glass.scss +7 -0
  103. package/scss/mixins/_index.scss +17 -0
  104. package/scss/placeholders/_buttons.scss +87 -10
  105. package/scss/transitions/_alert-dialog.scss +19 -0
  106. package/scss/transitions/_tab-bar.scss +6 -5
  107. package/scss/utils/_frame.scss +7 -0
  108. package/web-components.html-data/en.json +81 -13
  109. package/generated/confirmation-dialog/index.d.ts +0 -1
  110. package/generated/confirmation-dialog/index.js +0 -1
  111. package/generated/lifecycle-observer/index.d.ts +0 -1
  112. package/generated/lifecycle-observer/index.js +0 -1
  113. package/scss/components/_components.scss +0 -76
@@ -0,0 +1,106 @@
1
+ @use '../vars';
2
+ @use '../mixins';
3
+
4
+ @layer #{vars.$components-layer} {
5
+ [is='alert-dialog'] {
6
+ :where(&) {
7
+ @include mixins.reset-dialog;
8
+
9
+ color: var(--text,);
10
+
11
+ touch-action: none;
12
+
13
+ position: fixed;
14
+
15
+ inline-size: fit-content;
16
+ block-size: fit-content;
17
+ height: auto; // safari
18
+ max-inline-size: min(20rem, 80vw);
19
+ max-block-size: 80vh;
20
+
21
+ margin-block: max(env(safe-area-inset-top), var(--menu-spacing)) max(env(safe-area-inset-bottom), var(--menu-spacing));
22
+ margin-inline: max(env(safe-area-inset-left), var(--menu-spacing)) max(env(safe-area-inset-right), var(--menu-spacing));
23
+
24
+ transform: var(--alert--dialog-scale,);
25
+ opacity: var(--alert--dialog-opacity,);
26
+
27
+ position-anchor: --alert-dialog; // overriden
28
+ position-area: center;
29
+
30
+ overflow: clip;
31
+ border-radius: 0.9rem;
32
+
33
+ backdrop-filter: var(--liquid-glass-backdrop-filter,);
34
+ box-shadow: var(--menu-popover-box-shadow,); //0 0 10px 10px black;
35
+
36
+ padding-block: 1rem;
37
+ padding-inline: 1em;
38
+ gap: 1rem;
39
+
40
+ // finally
41
+ --alert--dialog-scale: scale(1.2);
42
+ --alert--dialog-opacity: 0.8;
43
+ }
44
+
45
+ &[open] {
46
+ :where(&) {
47
+ --alert--dialog-scale: scale(1);
48
+ --alert--dialog-opacity: 1;
49
+
50
+ @starting-style {
51
+ --alert--dialog-scale: scale(1.2);
52
+ --alert--dialog-opacity: 0.8;
53
+ }
54
+ }
55
+ }
56
+
57
+ &[closing] {
58
+ :where(&) {
59
+ --alert--dialog-scale: scale(0.98);
60
+ --alert--dialog-opacity: 0;
61
+ }
62
+ }
63
+
64
+ // SECTION: componentize
65
+ // > button {
66
+ // :where(&) {
67
+ // @include mixins.componentize(dialogbtn);
68
+ // }
69
+ // }
70
+
71
+ // :where(&) {
72
+ // --dialogbtnpadistart: 0.6rem;
73
+ // --dialogbtnpadiend: 0.6rem;
74
+ // --dialogbtnpadbstart: 0.6rem;
75
+ // --dialogbtnpadbend: 0.6rem;
76
+ // --dialogbtnradiustl: 1rem;
77
+ // --dialogbtnradiustr: 1rem;
78
+ // --dialogbtnradiusbl: 1rem;
79
+ // --dialogbtnradiusbr: 1rem;
80
+ // }
81
+ }
82
+ }
83
+
84
+ // @layer #{vars.$colors-layer} {
85
+ // // SECTION: componentize
86
+ // [is='alert-dialog'] {
87
+ // > button {
88
+ // @include mixins.add-focus-visible-state {
89
+ // --dialogbtnface: var(--dialogbtnhighlightface,);
90
+ // --dialogbtntext: var(--dialogbtnhighlighttext,);
91
+ // }
92
+ // }
93
+ // }
94
+ // }
95
+
96
+ // @layer #{vars.$ui-layer} {
97
+ // // SECTION: componentize
98
+ // [is='alert-dialog'] {
99
+ // > button {
100
+ // @include mixins.add-active-state {
101
+ // --dialogbtnface: var(--dialogbtnactiveface,);
102
+ // --dialogbtntext: var(--dialogbtnactivetext,);
103
+ // }
104
+ // }
105
+ // }
106
+ // }
@@ -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']) {
@@ -66,45 +66,45 @@
66
66
  }
67
67
 
68
68
  // SECTION: componentize
69
- > button {
70
- :where(&) {
71
- @include mixins.componentize(dialogbtn);
72
- }
73
- }
74
-
75
- :where(&) {
76
- --dialogbtnpadistart: 0.6rem;
77
- --dialogbtnpadiend: 0.6rem;
78
- --dialogbtnpadbstart: 0.6rem;
79
- --dialogbtnpadbend: 0.6rem;
80
- --dialogbtnradiustl: 1rem;
81
- --dialogbtnradiustr: 1rem;
82
- --dialogbtnradiusbl: 1rem;
83
- --dialogbtnradiusbr: 1rem;
84
- }
69
+ // > button {
70
+ // :where(&) {
71
+ // @include mixins.componentize(dialogbtn);
72
+ // }
73
+ // }
74
+
75
+ // :where(&) {
76
+ // --dialogbtnpadistart: 0.6rem;
77
+ // --dialogbtnpadiend: 0.6rem;
78
+ // --dialogbtnpadbstart: 0.6rem;
79
+ // --dialogbtnpadbend: 0.6rem;
80
+ // --dialogbtnradiustl: 1rem;
81
+ // --dialogbtnradiustr: 1rem;
82
+ // --dialogbtnradiusbl: 1rem;
83
+ // --dialogbtnradiusbr: 1rem;
84
+ // }
85
85
  }
86
86
  }
87
87
 
88
- @layer #{vars.$colors-layer} {
89
- // SECTION: componentize
90
- [is='confirmation-dialog'] {
91
- > button {
92
- @include mixins.add-focus-visible-state {
93
- --dialogbtnface: var(--dialogbtnhighlightface,);
94
- --dialogbtntext: var(--dialogbtnhighlighttext,);
95
- }
96
- }
97
- }
98
- }
99
-
100
- @layer #{vars.$ui-layer} {
101
- // SECTION: componentize
102
- [is='confirmation-dialog'] {
103
- > button {
104
- @include mixins.add-active-state {
105
- --dialogbtnface: var(--dialogbtnactiveface,);
106
- --dialogbtntext: var(--dialogbtnactivetext,);
107
- }
108
- }
109
- }
110
- }
88
+ // @layer #{vars.$colors-layer} {
89
+ // // SECTION: componentize
90
+ // [is='confirmation-dialog'] {
91
+ // > button {
92
+ // @include mixins.add-focus-visible-state {
93
+ // --dialogbtnface: var(--dialogbtnhighlightface,);
94
+ // --dialogbtntext: var(--dialogbtnhighlighttext,);
95
+ // }
96
+ // }
97
+ // }
98
+ // }
99
+
100
+ // @layer #{vars.$ui-layer} {
101
+ // // SECTION: componentize
102
+ // [is='confirmation-dialog'] {
103
+ // > button {
104
+ // @include mixins.add-active-state {
105
+ // --dialogbtnface: var(--dialogbtnactiveface,);
106
+ // --dialogbtntext: var(--dialogbtnactivetext,);
107
+ // }
108
+ // }
109
+ // }
110
+ // }
@@ -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']) {
@@ -1,8 +1,9 @@
1
1
  @use '../vars';
2
+ @use '../mixins';
2
3
  @use 'sass:string';
3
4
  @use 'sass:list';
4
5
 
5
- $h-stack-templates: ((minmax(0, 1fr) auto), (auto minmax(0, 1fr) auto auto), (repeat(4, minmax(0, 1fr))), (repeat(2, minmax(0, 1fr)) auto));
6
+ $h-stack-templates: ((minmax(0, 1fr) auto), (auto minmax(0, 1fr) auto auto), (auto minmax(0, 1fr) auto), (repeat(4, minmax(0, 1fr))), (repeat(2, minmax(0, 1fr)) auto));
6
7
 
7
8
  @layer #{vars.$components-layer} {
8
9
  h-stack {
@@ -23,17 +24,6 @@ $h-stack-templates: ((minmax(0, 1fr) auto), (auto minmax(0, 1fr) auto auto), (re
23
24
  // }
24
25
  // }
25
26
 
26
- @each $template in $h-stack-templates {
27
- $parts: string.split('#{$template}', ', ');
28
- $result: '';
29
- @each $part in $parts {
30
- $result: $result + '#{$part},';
31
- }
32
- $result: string.slice($result, 1, string.length($result) - 1);
33
- @debug $result, $template;
34
- :where(&[template='#{$result}']) {
35
- grid-template-columns: $template;
36
- }
37
- }
27
+ @include mixins.make-template($h-stack-templates, grid-template-columns);
38
28
  }
39
29
  }
@@ -14,6 +14,7 @@
14
14
  [is='tab-bar'],
15
15
  [is='full-screen'],
16
16
  [is='confirmation-dialog'],
17
+ [is='alert-dialog'],
17
18
  [is='sheet-view'],
18
19
  [is='form-view'],
19
20
  [is='disclosure-group'],
@@ -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(&) {