@swiftwc/ui 0.0.0-dev.7 → 0.0.0-dev.8

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 (263) hide show
  1. package/README.md +15 -0
  2. package/generated/client/index.d.ts +13 -3
  3. package/generated/client/index.js +228 -158
  4. package/generated/components/bordered-button.d.ts +7 -0
  5. package/generated/components/bordered-button.js +20 -0
  6. package/generated/components/bordered-prominent-button.d.ts +7 -0
  7. package/generated/components/bordered-prominent-button.js +20 -0
  8. package/generated/components/borderless-button.d.ts +4 -4
  9. package/generated/components/borderless-button.js +26 -16
  10. package/generated/components/confirmation-dialog.d.ts +9 -0
  11. package/generated/components/confirmation-dialog.js +102 -0
  12. package/generated/components/date-picker.d.ts +46 -0
  13. package/generated/components/date-picker.js +430 -0
  14. package/generated/components/disclosure-group.d.ts +4 -7
  15. package/generated/components/disclosure-group.js +41 -66
  16. package/generated/components/form-view.d.ts +6 -0
  17. package/generated/components/form-view.js +58 -0
  18. package/generated/components/glass-button.d.ts +6 -0
  19. package/generated/components/glass-button.js +17 -0
  20. package/generated/components/glass-prominent-button.d.ts +6 -0
  21. package/generated/components/glass-prominent-button.js +17 -0
  22. package/generated/components/index.d.ts +34 -10
  23. package/generated/components/index.js +33 -14
  24. package/generated/components/label-view.d.ts +9 -0
  25. package/generated/components/label-view.js +83 -0
  26. package/generated/components/list-view.d.ts +5 -0
  27. package/generated/components/list-view.js +29 -0
  28. package/generated/components/menu-view.d.ts +9 -0
  29. package/generated/components/menu-view.js +133 -0
  30. package/generated/components/navigation-large-title.d.ts +6 -0
  31. package/generated/components/navigation-large-title.js +177 -0
  32. package/generated/components/navigation-split-view.d.ts +4 -2
  33. package/generated/components/navigation-split-view.js +11 -2
  34. package/generated/components/navigation-stack.d.ts +3 -2
  35. package/generated/components/navigation-stack.js +15 -58
  36. package/generated/components/navigation-title.d.ts +8 -0
  37. package/generated/components/navigation-title.js +66 -0
  38. package/generated/components/picker-view.d.ts +27 -0
  39. package/generated/components/picker-view.js +442 -0
  40. package/generated/components/plain-button.d.ts +7 -0
  41. package/generated/components/plain-button.js +20 -0
  42. package/generated/components/screen-view.d.ts +1 -1
  43. package/generated/components/screen-view.js +1 -1
  44. package/generated/components/scroll-view.d.ts +4 -2
  45. package/generated/components/scroll-view.js +169 -62
  46. package/generated/components/section-view.d.ts +9 -0
  47. package/generated/components/section-view.js +81 -0
  48. package/generated/components/sheet-view.d.ts +4 -4
  49. package/generated/components/sheet-view.js +59 -16
  50. package/generated/components/sidebar-toggle.d.ts +1 -1
  51. package/generated/components/sidebar-toggle.js +89 -63
  52. package/generated/components/sidebar-view.d.ts +2 -4
  53. package/generated/components/sidebar-view.js +20 -17
  54. package/generated/components/sticky-container.d.ts +6 -0
  55. package/generated/components/sticky-container.js +22 -0
  56. package/generated/components/tab-bar.d.ts +2 -4
  57. package/generated/components/tab-bar.js +24 -17
  58. package/generated/components/tab-item.d.ts +4 -3
  59. package/generated/components/tab-item.js +114 -29
  60. package/generated/components/tab-view.d.ts +17 -2
  61. package/generated/components/tab-view.js +244 -17
  62. package/generated/components/table-view.d.ts +7 -0
  63. package/generated/components/table-view.js +175 -0
  64. package/generated/components/text-field.d.ts +29 -0
  65. package/generated/components/text-field.js +489 -0
  66. package/generated/components/tool-bar-item-group.d.ts +5 -0
  67. package/generated/components/tool-bar-item-group.js +11 -0
  68. package/generated/components/tool-bar-item.d.ts +5 -0
  69. package/generated/components/tool-bar-item.js +19 -0
  70. package/generated/components/tool-bar.d.ts +7 -0
  71. package/generated/components/tool-bar.js +77 -0
  72. package/generated/components/v-keyboard.d.ts +2 -0
  73. package/generated/components/v-keyboard.js +64 -68
  74. package/generated/components/v-stack.d.ts +5 -0
  75. package/generated/components/v-stack.js +11 -0
  76. package/generated/confirmation-dialog/index.d.ts +1 -0
  77. package/generated/confirmation-dialog/index.js +1 -0
  78. package/generated/css/index.css +7463 -0
  79. package/generated/events/confirmation-dialog.d.ts +9 -0
  80. package/generated/events/date-picker.d.ts +8 -0
  81. package/generated/events/date-picker.js +1 -0
  82. package/generated/events/index.d.ts +7 -0
  83. package/generated/events/index.js +7 -0
  84. package/generated/events/lifecycle-observer.d.ts +10 -0
  85. package/generated/events/lifecycle-observer.js +1 -0
  86. package/generated/events/picker-view.d.ts +8 -0
  87. package/generated/events/picker-view.js +1 -0
  88. package/generated/events/scroll-view.d.ts +10 -0
  89. package/generated/events/scroll-view.js +1 -0
  90. package/generated/events/tab-view.d.ts +24 -0
  91. package/generated/events/tab-view.js +1 -0
  92. package/generated/events/text-field.d.ts +8 -0
  93. package/generated/events/text-field.js +1 -0
  94. package/generated/i18n/index.d.ts +24 -0
  95. package/generated/i18n/index.js +139 -0
  96. package/generated/internal/class/cleanup-registry.d.ts +5 -0
  97. package/generated/internal/class/cleanup-registry.js +38 -0
  98. package/generated/internal/class/css-style-observer.d.ts +8 -0
  99. package/generated/internal/class/css-style-observer.js +25 -0
  100. package/generated/internal/class/form-associated-base.d.ts +20 -0
  101. package/generated/internal/class/form-associated-base.js +93 -0
  102. package/generated/internal/class/mutation-observer-singleton.d.ts +10 -0
  103. package/generated/internal/class/mutation-observer-singleton.js +46 -0
  104. package/generated/internal/class/navigation-path.d.ts +15 -0
  105. package/generated/internal/class/navigation-path.js +84 -0
  106. package/generated/internal/class/navigation-view.d.ts +8 -0
  107. package/generated/internal/class/navigation-view.js +77 -0
  108. package/generated/internal/class/resize-observer-singleton.d.ts +7 -0
  109. package/generated/internal/class/resize-observer-singleton.js +22 -0
  110. package/generated/internal/decorators/custom-element.d.ts +5 -0
  111. package/generated/internal/decorators/custom-element.js +4 -0
  112. package/generated/internal/privateNamespace.d.ts +4 -0
  113. package/generated/internal/privateNamespace.js +1 -0
  114. package/generated/internal/utils/add.d.ts +1 -0
  115. package/generated/internal/utils/add.js +7 -0
  116. package/generated/internal/utils/cash/ancestors.d.ts +1 -0
  117. package/generated/internal/utils/cash/ancestors.js +27 -0
  118. package/generated/internal/utils/cash/index.d.ts +22 -0
  119. package/generated/internal/utils/cash/index.js +23 -0
  120. package/generated/internal/utils/cash/next-all.d.ts +1 -0
  121. package/generated/internal/utils/cash/next-all.js +10 -0
  122. package/generated/internal/utils/cash/next.d.ts +1 -0
  123. package/generated/internal/utils/cash/next.js +9 -0
  124. package/generated/internal/utils/cash/prev-all.d.ts +1 -0
  125. package/generated/internal/utils/cash/prev-all.js +10 -0
  126. package/generated/internal/utils/cash/prev.d.ts +1 -0
  127. package/generated/internal/utils/cash/prev.js +9 -0
  128. package/generated/internal/utils/cash/prop.d.ts +18 -0
  129. package/generated/internal/utils/cash/prop.js +30 -0
  130. package/generated/internal/utils/cash/siblings.d.ts +1 -0
  131. package/generated/internal/utils/cash/siblings.js +10 -0
  132. package/generated/internal/utils/clamp.d.ts +1 -0
  133. package/generated/internal/utils/clamp.js +4 -0
  134. package/generated/internal/utils/compare-big-decimals.d.ts +1 -0
  135. package/generated/internal/utils/compare-big-decimals.js +90 -0
  136. package/generated/internal/utils/debounce.d.ts +1 -0
  137. package/generated/internal/utils/debounce.js +13 -0
  138. package/generated/internal/utils/frame.d.ts +1 -0
  139. package/generated/internal/utils/frame.js +6 -0
  140. package/generated/internal/utils/index.d.ts +16 -1
  141. package/generated/internal/utils/index.js +17 -1
  142. package/generated/internal/utils/kebab-case.d.ts +1 -1
  143. package/generated/internal/utils/list-active.d.ts +7 -0
  144. package/generated/internal/utils/list-active.js +28 -0
  145. package/generated/internal/utils/microtask.d.ts +1 -0
  146. package/generated/internal/utils/microtask.js +3 -0
  147. package/generated/internal/utils/onoff.d.ts +45 -0
  148. package/generated/internal/utils/onoff.js +31 -0
  149. package/generated/internal/utils/set.d.ts +1 -0
  150. package/generated/internal/utils/set.js +7 -0
  151. package/generated/internal/utils/sleep.d.ts +1 -0
  152. package/generated/internal/utils/sleep.js +3 -0
  153. package/generated/internal/utils/slow-hide-show.d.ts +1 -0
  154. package/generated/internal/utils/slow-hide-show.js +16 -0
  155. package/generated/internal/utils/timeout.d.ts +5 -0
  156. package/generated/internal/utils/timeout.js +16 -0
  157. package/generated/internal/utils/touch-glass.d.ts +7 -0
  158. package/generated/internal/utils/touch-glass.js +19 -0
  159. package/generated/lifecycle-observer/index.d.ts +1 -0
  160. package/generated/lifecycle-observer/index.js +1 -0
  161. package/generated/namespace-browser/base.d.ts +36 -0
  162. package/generated/namespace-browser/base.js +92 -0
  163. package/generated/namespace-browser/index.d.ts +7 -0
  164. package/generated/namespace-browser/index.js +1 -0
  165. package/generated/snapshot/index.d.ts +2 -11
  166. package/generated/snapshot/index.js +31 -144
  167. package/package.json +19 -8
  168. package/scss/_components.scss +52 -16
  169. package/scss/_final.scss +1 -0
  170. package/scss/_mixins.scss +2 -171
  171. package/scss/_placeholders.scss +3 -0
  172. package/scss/_transitions.scss +16 -0
  173. package/scss/_utils.scss +9 -0
  174. package/scss/_vars.scss +137 -23
  175. package/scss/base/_layout.scss +31 -15
  176. package/scss/base/_reboot.scss +118 -15
  177. package/scss/base/_root.scss +355 -25
  178. package/scss/colors/_index.scss +624 -70
  179. package/scss/components/_body-view.scss +12 -3
  180. package/scss/components/_bordered-button.scss +22 -0
  181. package/scss/components/_bordered-prominent-button.scss +19 -0
  182. package/scss/components/_borderless-button.scss +11 -6
  183. package/scss/components/_confirmation-dialog.scss +110 -0
  184. package/scss/components/_date-picker.scss +30 -0
  185. package/scss/components/_detail-placeholder.scss +155 -0
  186. package/scss/components/_disclosure-group.scss +100 -52
  187. package/scss/components/_form-view.scss +195 -0
  188. package/scss/components/_full-screen.scss +7 -5
  189. package/scss/components/_glass-button.scss +24 -0
  190. package/scss/components/_glass-prominent-button.scss +24 -0
  191. package/scss/components/_h-divider.scss +13 -0
  192. package/scss/components/_h-stack.scss +39 -0
  193. package/scss/components/_index.scss +224 -7
  194. package/scss/components/_label-view.scss +386 -0
  195. package/scss/components/_labeled-content.scss +9 -0
  196. package/scss/components/_list-view.scss +229 -0
  197. package/scss/components/_menu-view.scss +188 -0
  198. package/scss/components/_navigation-large-title.scss +27 -0
  199. package/scss/components/_navigation-split-view.scss +329 -269
  200. package/scss/components/_navigation-stack.scss +6 -6
  201. package/scss/components/_navigation-title.scss +10 -0
  202. package/scss/components/_picker-view.scss +122 -0
  203. package/scss/components/_plain-button.scss +11 -0
  204. package/scss/components/_scroll-view-proxy.scss +79 -0
  205. package/scss/components/_scroll-view-toolbars.scss +126 -0
  206. package/scss/components/_scroll-view.scss +110 -66
  207. package/scss/components/_section-view.scss +119 -0
  208. package/scss/components/_sheet-view.scss +68 -35
  209. package/scss/components/_sidebar-toggle.scss +90 -27
  210. package/scss/components/_sidebar-view.scss +30 -40
  211. package/scss/components/_sticky-container.scss +42 -0
  212. package/scss/components/_tab-bar.scss +201 -84
  213. package/scss/components/_tab-item.scss +25 -0
  214. package/scss/components/_tab-view.scss +268 -126
  215. package/scss/components/_table-column.scss +52 -0
  216. package/scss/components/_table-row.scss +172 -0
  217. package/scss/components/_table-view.scss +223 -0
  218. package/scss/components/_text-field.scss +37 -0
  219. package/scss/components/_tool-bar-item-group.scss +30 -19
  220. package/scss/components/_tool-bar-item.scss +128 -70
  221. package/scss/components/_tool-bar.scss +107 -64
  222. package/scss/components/_v-divider.scss +13 -0
  223. package/scss/components/_v-flex-stack.scss +29 -0
  224. package/scss/components/_v-keyboard.scss +6 -4
  225. package/scss/components/_v-stack.scss +8 -9
  226. package/scss/final/_touch-glass.scss +67 -0
  227. package/scss/index.scss +6 -2
  228. package/scss/mixins/_dialog.scss +88 -0
  229. package/scss/mixins/_index.scss +405 -0
  230. package/scss/placeholders/_buttons.scss +83 -0
  231. package/scss/placeholders/_lists.scss +589 -0
  232. package/scss/transitions/_bwd.navbar.scss +3 -13
  233. package/scss/transitions/_bwd.scss +4 -20
  234. package/scss/transitions/_confirmation-dialog.scss +19 -0
  235. package/scss/transitions/_dialog.scss +7 -11
  236. package/scss/transitions/_disclosure-group.scss +35 -0
  237. package/scss/transitions/_fwd.navbar.scss +4 -9
  238. package/scss/transitions/_fwd.scss +4 -34
  239. package/scss/transitions/_glass-button.scss +12 -0
  240. package/scss/transitions/_glass-prominent-button.scss +12 -0
  241. package/scss/transitions/_index.scss +35 -143
  242. package/scss/transitions/_menu-view.scss +26 -0
  243. package/scss/transitions/_navigation-split-view.scss +23 -0
  244. package/scss/transitions/_sidebar-view.scss +36 -0
  245. package/scss/transitions/_tab-bar.scss +19 -0
  246. package/scss/utils/_frame.scss +84 -0
  247. package/scss/utils/_index.scss +68 -0
  248. package/scss/utils/_scroll-view.scss +14 -0
  249. package/scss/utils/_spacing.scss +25 -0
  250. package/scss/utils/_stacks.scss +242 -0
  251. package/web-components.html-data/en.json +330 -0
  252. package/generated/components/bottom-bar.d.ts +0 -10
  253. package/generated/components/bottom-bar.js +0 -73
  254. package/generated/components/navigation-bar.d.ts +0 -10
  255. package/generated/components/navigation-bar.js +0 -80
  256. package/generated/internal/class.d.ts +0 -18
  257. package/generated/internal/class.js +0 -18
  258. package/generated/namespace/index.d.ts +0 -6
  259. package/generated/styles.css +0 -1305
  260. package/scss/_dev.scss +0 -68
  261. package/scss/components/_tab-bar-stack.scss +0 -101
  262. package/scss/components/_toolbars.scss +0 -100
  263. /package/generated/{namespace/index.js → events/confirmation-dialog.js} +0 -0
@@ -0,0 +1,589 @@
1
+ @use '../vars';
2
+ @use '../mixins';
3
+
4
+ @layer #{vars.$components-layer} {
5
+ %list {
6
+ :where(&) {
7
+ background-color: var(--list--host-background-color,);
8
+
9
+ padding-inline: var(--list--host-padding-inline,);
10
+ padding-block: var(--list--host-padding-block,);
11
+
12
+ grid-template-columns: var(--list--host-grid-template-columns,);
13
+ }
14
+
15
+ // componentize buttons
16
+ > :not([slot], section-view, [is='disclosure-group'], picker-view, menu-view, whatever-name),
17
+ section-view > :not([slot], section-view, [is='disclosure-group'], picker-view, menu-view, whatever-name),
18
+ [is='disclosure-group'] > :not([slot], section-view, [is='disclosure-group'], picker-view, menu-view, whatever-name) {
19
+ // :where(&:is(summary:not([is='disclosure-group'] [is='disclosure-group'] summary))) {
20
+ // box-shadow: inset 0 0 4px magenta;
21
+ // }
22
+ // :where(&:is(button)) {
23
+ // @include mixins.componentize(summary);
24
+ // grid-template-columns: var(--list--buttonitem-grid-template-columns);
25
+ // }
26
+ // :where(&:is(summary)) {
27
+ // --disclosure--marker-display: var(--list--item-marker-display,);
28
+ // // outline: red solid 50px;
29
+ // // @include mixins.componentize(item);
30
+ // // grid-template-columns: var(--list--summaryitem-grid-template-columns);
31
+ // }
32
+ :where(&) {
33
+ // outline: magenta solid 4px;
34
+ // box-shadow: inset 0 0 4px magenta;
35
+ @include mixins.componentize(item);
36
+
37
+ // grid-auto-flow: column;
38
+ // grid-template-columns: var(--list--item-grid-template-columns,);
39
+ // grid-template-rows: minmax(0, 1fr);
40
+ }
41
+ @media (prefers-reduced-motion: no-preference) {
42
+ :where(&) {
43
+ // outline: yellow solid 4px;
44
+
45
+ transition:
46
+ background-color 300ms ease-out allow-discrete,
47
+ color 300ms ease-out allow-discrete;
48
+ will-change: background-color, color;
49
+
50
+ // &:active,
51
+ &.active {
52
+ transition-duration: 0ms;
53
+ }
54
+ }
55
+ }
56
+ }
57
+ // [is='disclosure-group'] {
58
+ // :where(&) {
59
+ // background-color: var(--list--details-background-color,);
60
+ // }
61
+ // &[open] {
62
+ // :where(&) {
63
+ // background-color: var(--list--opendetails-background-color, var(--list--details-background-color,));
64
+ // }
65
+ // }
66
+ // }
67
+ // > [is='disclosure-group'],
68
+ // > section-view > [is='disclosure-group'] {
69
+ // :where(&) {
70
+ // background-color: var(--list--rootdetails-background-color, var(--list--details-background-color,));
71
+ // }
72
+ // &[open] {
73
+ // :where(&) {
74
+ // background-color: var(--list--openrootdetails-background-color, var(--list--rootdetails-background-color, var(--list--details-background-color,)));
75
+ // }
76
+ // }
77
+ // }
78
+
79
+ // SECTION: wire gaps
80
+ :not([slot], section-view) ~ section-view {
81
+ :where(&) {
82
+ padding-block-start: var(--list--section-gap,);
83
+ }
84
+ }
85
+ section-view:not([slot]) ~ section-view {
86
+ :where(&) {
87
+ padding-block-start: var(--list--section-gap,);
88
+ }
89
+ }
90
+ section-view:has(~ :not([slot], section-view)) {
91
+ :where(&) {
92
+ padding-block-end: var(--list--section-gap,);
93
+ }
94
+ }
95
+ // section-view:has(~ section-view:not([slot])) {
96
+ // :where(&) {
97
+ // padding-bottom: calc(var(--list--section-gap, 0px) / 2);
98
+ // }
99
+ // }
100
+ :not([slot], [is='disclosure-group']) ~ [is='disclosure-group'] {
101
+ :where(&) {
102
+ margin-block-start: var(--list--details-gap,);
103
+ }
104
+ }
105
+ [is='disclosure-group']:not([slot]) ~ [is='disclosure-group'] {
106
+ :where(&) {
107
+ margin-block-start: calc(var(--list--details-gap, 0px) / 2);
108
+ }
109
+ }
110
+ [is='disclosure-group']:has(~ :not([slot], [is='disclosure-group'])) {
111
+ :where(&) {
112
+ margin-block-end: var(--list--details-gap,);
113
+ }
114
+ }
115
+ [is='disclosure-group']:has(~ [is='disclosure-group']:not([slot])) {
116
+ :where(&) {
117
+ margin-block-end: calc(var(--list--details-gap, 0px) / 2);
118
+ }
119
+ }
120
+
121
+ // SECTION: wire paddings
122
+ :where(&) {
123
+ --itempadistart: var(--list--item-padding-inline-start, 0rem);
124
+ --itempadiend: calc(var(--list--item-padding-inline-end, 0rem) + var(--list--accessories-size, 0rem));
125
+ --itempadbstart: var(--list--item-padding-block-start,);
126
+ --itempadbend: var(--list--item-padding-block-end,);
127
+
128
+ --itemradiustr: var(--list--item-border-radius,);
129
+ --itemradiustl: var(--list--item-border-radius,);
130
+ --itemradiusbr: var(--list--item-border-radius,);
131
+ --itemradiusbl: var(--list--item-border-radius,);
132
+
133
+ --itemface: var(--list--item-background-color,);
134
+ --itemhighlightface: var(--list--highlighteditem-background-color, var(--list--item-background-color,));
135
+ --itemactiveface: var(--list--highlighteditem-background-color, var(--list--item-background-color,));
136
+
137
+ --itemtext: var(--list--item-color,);
138
+ --itemhighlighttext: var(--list--highlighteditem-color, var(--list--item-color,));
139
+ --itemactivetext: var(--list--highlighteditem-color, var(--list--item-color,));
140
+ }
141
+
142
+ // SECTION: overwrites for details
143
+ [is='disclosure-group'] {
144
+ > :not(summary) {
145
+ :where(&) {
146
+ --itemface: var(--list--details-background-color, var(--list--item-background-color,));
147
+ --itemhighlightface: var(
148
+ --list--selecteddetails-background-color,
149
+ var(--list--highlighteditem-background-color, var(--list--item-background-color,))
150
+ );
151
+ --itemactiveface: var(--list--selecteddetails-background-color, var(--list--highlighteditem-background-color, var(--list--item-background-color,)));
152
+
153
+ --itemtext: var(--list--details-color, var(--list--item-color,));
154
+ --itemhighlighttext: var(--list--selecteddetails-color, var(--list--highlighteditem-color, var(--list--item-color,)));
155
+ --itemactivetext: var(--list--selecteddetails-color, var(--list--highlighteditem-color, var(--list--item-color,)));
156
+ }
157
+ }
158
+ > summary {
159
+ :where([is='disclosure-group'][open] &) {
160
+ --itemface: var(--list--opendetails-background-color, var(--list--item-background-color,));
161
+ --itemhighlightface: var(
162
+ --list--selectedopendetails-background-color,
163
+ var(--list--highlighteditem-background-color, var(--list--item-background-color,))
164
+ );
165
+ --itemactiveface: var(
166
+ --list--selectedopendetails-background-color,
167
+ var(--list--highlighteditem-background-color, var(--list--item-background-color,))
168
+ );
169
+
170
+ --itemtext: var(--list--opendetails-color, var(--list--item-color,));
171
+ --itemhighlighttext: var(--list--selectedopendetails-color, var(--list--highlighteditem-color, var(--list--item-color,)));
172
+ --itemactivetext: var(--list--selectedopendetails-color, var(--list--highlighteditem-color, var(--list--item-color,)));
173
+ }
174
+ }
175
+ &[open] {
176
+ > summary {
177
+ :where(&) {
178
+ --itemface: var(--list--opensummary-background-color, var(--list--item-background-color,));
179
+ --itemhighlightface: var(
180
+ --list--selectedopensummary-background-color,
181
+ var(--list--selectedsummary-background-color, var(--list--highlighteditem-background-color, var(--list--item-background-color,)))
182
+ );
183
+ --itemactiveface: var(
184
+ --list--selectedopensummary-background-color,
185
+ var(--list--selectedsummary-background-color, var(--list--highlighteditem-background-color, var(--list--item-background-color,)))
186
+ );
187
+
188
+ --itemtext: var(--list--opensummary-color, var(--list--item-color,));
189
+ --itemhighlighttext: var(
190
+ --list--selectedopensummary-color,
191
+ var(--list--selectedsummary-color, var(--list--highlighteditem-color, var(--list--item-color,)))
192
+ );
193
+ --itemactivetext: var(
194
+ --list--selectedopensummary-color,
195
+ var(--list--selectedsummary-color, var(--list--highlighteditem-color, var(--list--item-color,)))
196
+ );
197
+ }
198
+ }
199
+ }
200
+ }
201
+ > [is='disclosure-group'],
202
+ > section-view > [is='disclosure-group'] {
203
+ --disclosure-style: var(--list--rootsummary-marker-display,);
204
+
205
+ > summary {
206
+ :where(&) {
207
+ --itemface: var(--list--rootsummary-background-color, var(--list--item-background-color,));
208
+ --itemhighlightface: var(
209
+ --list--selectedrootsummary-background-color,
210
+ var(--list--selectedsummary-background-color, var(--list--highlighteditem-background-color, var(--list--item-background-color,)))
211
+ );
212
+ --itemactiveface: var(
213
+ --list--selectedrootsummary-background-color,
214
+ var(--list--selectedsummary-background-color, var(--list--highlighteditem-background-color, var(--list--item-background-color,)))
215
+ );
216
+
217
+ --itemtext: var(--list--rootsummary-color, var(--list--item-color,));
218
+ --itemhighlighttext: var(
219
+ --list--selectedrootsummary-color,
220
+ var(--list--selectedsummary-color, var(--list--highlighteditem-color, var(--list--item-color,)))
221
+ );
222
+ --itemactivetext: var(
223
+ --list--selectedrootsummary-color,
224
+ var(--list--selectedsummary-color, var(--list--highlighteditem-color, var(--list--item-color,)))
225
+ );
226
+
227
+ // overwrite extra stuff for rootsummary
228
+ // outline: red solid 4px;
229
+ // box-shadow: inset 0 0 3px yellow;
230
+
231
+ --itempadistart: var(--list--rootsummary-padding-inline-start, var(--list--item-padding-inline-start,));
232
+ --itempadiend: var(--list--rootsummary-padding-inline-end, var(--list--item-padding-inline-end,));
233
+ --itempadbstart: var(--list--rootsummary-padding-block-start, var(--list--item-padding-block-start,));
234
+ --itempadbend: var(--list--rootsummary-padding-block-end, var(--list--item-padding-block-end,));
235
+
236
+ // --itemradiustl: var(--list--rootsummary-border-radius, var(--list--item-border-radius,));
237
+ // --itemradiustr: var(--list--rootsummary-border-radius, var(--list--item-border-radius,));
238
+ // --itemradiusbl: var(--list--rootsummary-border-radius, var(--list--item-border-radius,));
239
+ // --itemradiusbr: var(--list--rootsummary-border-radius, var(--list--item-border-radius,));
240
+ }
241
+ }
242
+ &[open] > summary {
243
+ :where(&) {
244
+ --itemface: var(--list--rootsummary-background-color, var(--list--opensummary-background-color, var(--list--item-background-color,)));
245
+ --itemhighlightface: var(
246
+ --list--selectedrootsummary-background-color,
247
+ var(
248
+ --list--selectedopensummary-background-color,
249
+ var(--list--selectedsummary-background-color, var(--list--highlighteditem-background-color, var(--list--item-background-color,)))
250
+ )
251
+ );
252
+ --itemactiveface: var(
253
+ --list--selectedrootsummary-background-color,
254
+ var(
255
+ --list--selectedopensummary-background-color,
256
+ var(--list--selectedsummary-background-color, var(--list--highlighteditem-background-color, var(--list--item-background-color,)))
257
+ )
258
+ );
259
+
260
+ --itemtext: var(--list--rootsummary-color, var(--list--opensummary-color, var(--list--item-color,)));
261
+ --itemhighlighttext: var(
262
+ --list--selectedrootsummary-color,
263
+ var(--list--selectedopensummary-color, var(--list--selectedsummary-color, var(--list--highlighteditem-color, var(--list--item-color,))))
264
+ );
265
+ --itemactivetext: var(
266
+ --list--selectedrootsummary-color,
267
+ var(--list--selectedopensummary-color, var(--list--selectedsummary-color, var(--list--highlighteditem-color, var(--list--item-color,))))
268
+ );
269
+ }
270
+ }
271
+ }
272
+
273
+ // SECTION: add borders + arrows
274
+ > :not([slot]) ~ :not([slot], section-view),
275
+ section-view > :not([slot]) ~ :not([slot], section-view),
276
+ [is='disclosure-group'] > :not([slot]) ~ :not([slot], section-view) {
277
+ :where(&) {
278
+ position: relative;
279
+
280
+ &::before {
281
+ content: '';
282
+ position: absolute;
283
+ inset: 0rem calc(var(--list--item-padding-inline-end, 0rem) + var(--list--media-inner-padding-inline-end, 0rem)) auto
284
+ calc(var(--list--item-padding-inline-start, 0rem) + var(--list--media-inner-padding-inline-start, 0rem));
285
+ block-size: 1px;
286
+ background: var(--list--separator-background-color, var(--separator));
287
+ pointer-events: none;
288
+ }
289
+
290
+ // &::after {
291
+ // pointer-events: none;
292
+ // content: '';
293
+ // position: absolute;
294
+ // inset: 50% 0 auto auto;
295
+ // display: var(--list--accessories-display,);
296
+ // block-size: 24px;
297
+ // inline-size: 24px;
298
+ // -webkit-mask: url('data:image/svg+xml,%3Csvg xmlns="http://www.w3.org/2000/svg" width="32" height="32" fill="currentColor" viewBox="0 0 256 256"%3E%3Cpath d="M184.49,136.49l-80,80a12,12,0,0,1-17-17L159,128,87.51,56.49a12,12,0,1,1,17-17l80,80A12,12,0,0,1,184.49,136.49Z"%3E%3C/path%3E%3C/svg%3E')
299
+ // no-repeat center / contain;
300
+ // mask: url('data:image/svg+xml,%3Csvg xmlns="http://www.w3.org/2000/svg" width="32" height="32" fill="currentColor" viewBox="0 0 256 256"%3E%3Cpath d="M184.49,136.49l-80,80a12,12,0,0,1-17-17L159,128,87.51,56.49a12,12,0,1,1,17-17l80,80A12,12,0,0,1,184.49,136.49Z"%3E%3C/path%3E%3C/svg%3E')
301
+ // no-repeat center / contain;
302
+ // background-color: red;
303
+ // transform: translateY(-50%);
304
+ // }
305
+ }
306
+ // :where(&:is([aria-selected='true'], [is='disclosure-group']):has(> [aria-selected='true'])) {
307
+ // outline: red solid 4px;
308
+ // }
309
+ // :where(&:is([aria-selected='true']), &:is([is='disclosure-group']):not([open]):has(> [aria-selected='true'])) {
310
+ // :where(&:is([aria-selected='true']), &:is([is='disclosure-group']):not([open]):has(> [aria-selected='true'])) {
311
+ // :where(&:is([aria-selected='true'])) {
312
+ :where(&:is([is='disclosure-group']:has(> summary[aria-selected='true']))),
313
+ :where(&:is([is='disclosure-group']:has(> summary.active))) {
314
+ // outline: red solid 4px;
315
+ &::before {
316
+ --list--separator-background-color: var(--list--highlighteditem-separator-background-color,);
317
+ }
318
+ }
319
+ }
320
+
321
+ // SECTION: sharpen top corners
322
+ > :not([slot]) ~ :not([slot], section-view),
323
+ section-view > :not([slot]) ~ :not([slot], section-view),
324
+ [is='disclosure-group'] > :not([slot]) ~ :not([slot]) {
325
+ :where(&) {
326
+ // outline: yellow solid 5px;
327
+ --itemradiustl: var(--list--adjacentitem-border-radius, var(--list--item-border-radius,)); //0 0;
328
+ --itemradiustr: var(--list--adjacentitem-border-radius, var(--list--item-border-radius,)); //0 0;
329
+ }
330
+ // :where(&:is(%list > [is='disclosure-group'], %list > section-view > [is='disclosure-group']) > summary) {
331
+ // // outline: yellow solid 5px;
332
+ // --itemradiustl: var(--list--adjacentitem-border-radius, var(--list--rootsummary-border-radius, var(--list--item-border-radius,))); //0 0;
333
+ // --itemradiustr: var(--list--adjacentitem-border-radius, var(--list--rootsummary-border-radius, var(--list--item-border-radius,))); //0 0;
334
+ // }
335
+ :where(&:is([is='disclosure-group'] :not([slot]))) {
336
+ // outline: green solid 5px;
337
+ --itemradiustl: var(--list--adjacentdetailsitem-border-radius, var(--list--adjacentitem-border-radius, var(--list--item-border-radius,))); //0 0;
338
+ --itemradiustr: var(--list--adjacentdetailsitem-border-radius, var(--list--adjacentitem-border-radius, var(--list--item-border-radius,))); //0 0;
339
+ }
340
+ }
341
+
342
+ // SECTION: sharpen bottom corners
343
+ > :not([slot]):has(~ :not([slot], section-view)),
344
+ section-view > :not([slot]):has(~ :not([slot], section-view)),
345
+ [is='disclosure-group'] > :not([slot], summary):has(~ :not([slot])),
346
+ [is='disclosure-group']:not([data-state='closed']) > summary {
347
+ :where(&) {
348
+ // outline: green solid 5px;
349
+ --itemradiusbl: var(--list--adjacentitem-border-radius, var(--list--item-border-radius,)); //0 0;
350
+ --itemradiusbr: var(--list--adjacentitem-border-radius, var(--list--item-border-radius,)); //0 0;
351
+ }
352
+ //:where(&:is([is='disclosure-group']) > summary, &:is([is='disclosure-group']) > section-view > summary) {
353
+ // :where(&:is([is='disclosure-group']) > summary) {
354
+ // // outline: green solid 5px;
355
+ // --itemradiusbl: var(--list--adjacentitem-border-radius, var(--list--rootsummary-border-radius, var(--list--item-border-radius,))); //0 0;
356
+ // --itemradiusbr: var(--list--adjacentitem-border-radius, var(--list--rootsummary-border-radius, var(--list--item-border-radius,))); //0 0;
357
+ // }
358
+ :where(&:is([is='disclosure-group'] :not([slot]))) {
359
+ // outline: green solid 5px;
360
+ --itemradiusbl: var(--list--adjacentdetailsitem-border-radius, var(--list--adjacentitem-border-radius, var(--list--item-border-radius,))); //0 0;
361
+ --itemradiusbr: var(--list--adjacentdetailsitem-border-radius, var(--list--adjacentitem-border-radius, var(--list--item-border-radius,))); //0 0;
362
+ }
363
+ }
364
+
365
+ // > :not([slot]) ~ :not([slot]):has(~ :not([slot], section-view)),
366
+ // section-view > :not([slot]) ~ :not([slot]):has(~ :not([slot], section-view)),
367
+ // [is='disclosure-group'] > :not([slot]) ~ :not([slot]) {
368
+ // :where(&) {
369
+ // --itemradius: 0;
370
+ // }
371
+ // :where(&:is([is='disclosure-group']) > summary) {
372
+ // --itemradius: 0;
373
+ // }
374
+ // }
375
+
376
+ // SECTION: style section heders/footers
377
+ section-view:not(section-view section-view) {
378
+ :where(&)::part(section-footer-stack),
379
+ :where(&)::part(section-header-stack) {
380
+ // outline: magenta 4px solid;
381
+ padding-inline: calc(var(--list--root-padding-inline, 0px) + var(--itempadistart, 0px))
382
+ calc(var(--list--root-padding-inline, 0px) + var(--itempadiend, 0px));
383
+
384
+ margin-inline: calc(var(--list--root-padding-inline) * -1);
385
+
386
+ padding-block: 1px;
387
+ }
388
+
389
+ :where(&)::part(section-header-stack) {
390
+ top: calc(var(--list--sticky-block-size, 0px) + var(--navigation-bar-block-size));
391
+
392
+ position: sticky;
393
+
394
+ // backdrop-filter: blur(20px);
395
+
396
+ // text-shadow: 0 0 5px var(--face);
397
+ }
398
+ }
399
+
400
+ // SECTION: Enable 2-col layout
401
+ &[columns='2'] {
402
+ :where(&) {
403
+ --list--host-grid-template-columns: repeat(2, minmax(0, 1fr));
404
+
405
+ // SECTION: add borders
406
+ position: relative;
407
+
408
+ &::after {
409
+ pointer-events: none;
410
+ content: '';
411
+ position: absolute;
412
+ inset: var(--list--host-padding-block, 0px) auto var(--list--host-padding-block, 0px) 50%;
413
+ inline-size: 1px;
414
+ background: var(--list--separator-background-color, var(--separator));
415
+ }
416
+ }
417
+
418
+ // SECTION: overwrite already sharpened corners
419
+ > :first-child:not([slot]),
420
+ section-view:first-child > :not([slot]),
421
+ [is='disclosure-group']:first-child > :not([slot]) {
422
+ :where(&) {
423
+ // outline: yellow solid 5px;
424
+ --itemradiustr: var(--list--adjacentitem-border-radius,); //var(--list--item-border-radius,);
425
+ --itemradiusbr: var(--list--adjacentitem-border-radius,); //var(--list--item-border-radius,);
426
+ }
427
+ :where(&:is([is='disclosure-group'] :not([slot]))) {
428
+ // outline: green solid 5px;
429
+ --itemradiustr: var(--list--adjacentitem-border-radius,); //var(--list--item-border-radius,);
430
+ --itemradiusbr: var(--list--adjacentitem-border-radius,); //var(--list--item-border-radius,);
431
+ }
432
+ }
433
+ > :nth-child(2):not([slot]),
434
+ section-view:nth-child(2) > :not([slot]),
435
+ [is='disclosure-group']:nth-child(2) > :not([slot]) {
436
+ :where(&) {
437
+ // outline: yellow solid 5px;
438
+ --itemradiustr: var(--list--item-border-radius,);
439
+
440
+ &::before {
441
+ content: none;
442
+ }
443
+ }
444
+ :where(&:is([is='disclosure-group'] :not([slot]))) {
445
+ // outline: green solid 5px;
446
+ --itemradiustr: var(--list--item-border-radius,);
447
+
448
+ &::before {
449
+ content: none;
450
+ }
451
+ }
452
+ }
453
+ > :nth-last-child(2):not([slot]),
454
+ section-view:nth-last-child(2) > :not([slot]),
455
+ [is='disclosure-group']:nth-last-child(2) > :not([slot]) {
456
+ :where(&) {
457
+ // outline: yellow solid 5px;
458
+ --itemradiustr: var(--list--adjacentitem-border-radius,);
459
+ --itemradiusbl: var(--list--item-border-radius,);
460
+ }
461
+ :where(&:is([is='disclosure-group'] :not([slot]))) {
462
+ // outline: green solid 5px;
463
+ --itemradiustr: var(--list--adjacentitem-border-radius,);
464
+ --itemradiusbl: var(--list--item-border-radius,);
465
+ }
466
+ }
467
+ > :last-child:not([slot]),
468
+ section-view:last-child > :not([slot]),
469
+ [is='disclosure-group']:last-child > :not([slot]) {
470
+ :where(&) {
471
+ // outline: yellow solid 5px;
472
+ --itemradiusbr: var(--list--item-border-radius,);
473
+ --itemradiusbl: var(--list--adjacentitem-border-radius,);
474
+ }
475
+ :where(&:is([is='disclosure-group'] :not([slot]))) {
476
+ // outline: green solid 5px;
477
+ --itemradiusbr: var(--list--item-border-radius,);
478
+ --itemradiusbl: var(--list--adjacentitem-border-radius,);
479
+ }
480
+ }
481
+ }
482
+
483
+ // SECTION: add accessories
484
+ // &:has(summary[marker-placement='leading']) {
485
+ > :not([slot], section-view, [is='disclosure-group'], picker-view, menu-view, whatever-name),
486
+ section-view > :not([slot], section-view, [is='disclosure-group'], picker-view, menu-view, whatever-name),
487
+ [is='disclosure-group'] > :not([slot], section-view, [is='disclosure-group'], picker-view, menu-view, whatever-name) {
488
+ // --itempadistart: 4rem;
489
+
490
+ // --item-accessory-size: 24px;
491
+
492
+ // --list--item-grid-template-columns: minmax(0, 1fr) 50px;
493
+
494
+ // &:not(:is(button)) {
495
+ // --list--accessories-display: none;
496
+ // // --list--accessories-padding-inline-end: 24px;
497
+ // }
498
+
499
+ // &:is(button) {
500
+ // position: relative;
501
+ // display: grid;
502
+ // grid-template-columns: minmax(0, 1fr) 24px;
503
+
504
+ &:is(button) {
505
+ :where(&) {
506
+ position: relative;
507
+
508
+ @include mixins.make-marker-pseudos(vars.$disclosure-affordance);
509
+
510
+ &::after {
511
+ position: absolute;
512
+
513
+ inset: 50% var(--itempadiend) auto auto;
514
+ display: var(--list--accessories-display, grid);
515
+
516
+ block-size: var(--list--accessories-size, 1.1rem);
517
+ inline-size: var(--list--accessories-size, 1.1rem);
518
+
519
+ background-color: var(--quaternary);
520
+
521
+ transform: translateY(-50%) translateX(120%);
522
+ }
523
+ }
524
+ }
525
+ // }
526
+ }
527
+ // }
528
+ // [is='disclosure-group'] summary [slot='marker'] {
529
+ // font-size: calc(var(--list--accessory-size) * 1rem);
530
+ // }
531
+ // [is='disclosure-group']:has(> summary[marker-placement='leading']) {
532
+ // > :not(summary) {
533
+ // --itempadistart: calc(calc(var(--root-font-size) * 1px) * var(--list--accessory-size) + var(--list--item-padding-inline-start, 0px));
534
+ // }
535
+ // }
536
+ }
537
+ }
538
+
539
+ @layer #{vars.$colors-layer} {
540
+ // componentize
541
+ %list {
542
+ > :not([slot], section-view, [is='disclosure-group'], picker-view, menu-view, whatever-name),
543
+ section-view > :not([slot], section-view, [is='disclosure-group'], picker-view, menu-view, whatever-name),
544
+ [is='disclosure-group'] > :not([slot], section-view, [is='disclosure-group'], picker-view, menu-view, whatever-name) {
545
+ @include mixins.add-focus-visible-state {
546
+ --itemface: var(--itemhighlightface,);
547
+ --itemtext: var(--itemhighlighttext,);
548
+
549
+ --list--separator-background-color: var(--list--highlighteditem-separator-background-color,);
550
+
551
+ --secondary: var(--itemtext);
552
+ --blue: var(--itemtext);
553
+ }
554
+ }
555
+ }
556
+ }
557
+
558
+ @layer #{vars.$ui-layer} {
559
+ // componentize
560
+ %list {
561
+ > :not([slot], section-view, [is='disclosure-group'], picker-view, menu-view, whatever-name),
562
+ section-view > :not([slot], section-view, [is='disclosure-group'], picker-view, menu-view, whatever-name),
563
+ [is='disclosure-group'] > :not([slot], section-view, [is='disclosure-group'], picker-view, menu-view, whatever-name) {
564
+ // :where(&:is(button)) {
565
+ @include mixins.add-jsactive-state {
566
+ --itemface: var(--itemactiveface,);
567
+ --itemtext: var(--itemactivetext,);
568
+
569
+ --list--separator-background-color: var(--list--highlighteditem-separator-background-color,);
570
+
571
+ --secondary: var(--itemtext);
572
+ --blue: var(--itemtext);
573
+ }
574
+
575
+ &[aria-selected='true'] {
576
+ :where(&) {
577
+ --itemface: var(--itemactiveface);
578
+ --itemtext: var(--itemactivetext,);
579
+
580
+ --list--separator-background-color: var(--list--highlighteditem-separator-background-color,);
581
+
582
+ --secondary: var(--itemtext);
583
+ --blue: var(--itemtext);
584
+ }
585
+ }
586
+ // }
587
+ }
588
+ }
589
+ }
@@ -5,25 +5,15 @@
5
5
  tool-bar-item,
6
6
  tool-bar-item-group {
7
7
  &.bwn {
8
- @include mixins.vt-toolbar-item-offscreen-keyframe;
9
-
10
- // @starting-style {
11
- // transform: scale(1);
12
- // // opacity: 1;
13
- // }
8
+ @include mixins.vt-toolbar-cell-offscreen-keyframe;
14
9
  }
15
10
 
16
11
  &.bwnn {
17
- @include mixins.vt-toolbar-item-onscreen-keyframe;
18
-
19
- // @starting-style {
20
- // transform: scale(0);
21
- // // opacity: 0;
22
- // }
12
+ @include mixins.vt-toolbar-cell-onscreen-keyframe;
23
13
  }
24
14
 
25
15
  &.bwnn.bwn {
26
- @include mixins.vt-toolbar-item-offscreen-keyframe;
16
+ @include mixins.vt-toolbar-cell-offscreen-keyframe;
27
17
  }
28
18
  }
29
19
  }
@@ -3,13 +3,9 @@
3
3
  @layer #{vars.$transitions-layer} {
4
4
  scroll-view {
5
5
  &.bwd {
6
- // visibility: collapse;
6
+ --scroll-view-translate: translateX(var(--view-transition-trailing-x));
7
7
 
8
- transform: translateX(var(--view-transition-trailing-x));
9
-
10
- // @starting-style {
11
- // transform: translateX(0%);
12
- // }
8
+ --scroll-view-box-shadow: var(--screen-box-shadow);
13
9
  }
14
10
 
15
11
  &.bwdd {
@@ -24,20 +20,12 @@
24
20
  }
25
21
 
26
22
  // IMPORTANT: This requires `!important` bc/ css does not enforce this over the general keep-things-stacked-offscreen rule.
27
- transform: translateX(var(--view-transition-principal-x));
28
-
29
- // @starting-style {
30
- // transform: translateX(-70%);
31
- // }
23
+ --scroll-view-translate: translateX(var(--view-transition-principal-x));
32
24
  }
33
25
 
34
26
  &.bwdd.bwd {
35
- transform: translateX(var(--view-transition-trailing-x));
27
+ --scroll-view-translate: translateX(var(--view-transition-trailing-x));
36
28
  }
37
-
38
- // [is='sheet-view'] > &.bwd {
39
- // transform: translateY(100lvh);
40
- // }
41
29
  }
42
30
 
43
31
  // NOTE: Cannot force root scroll-view to be interacted with! Tabbar gets below the stack.
@@ -48,8 +36,4 @@
48
36
  pointer-events: none;
49
37
  // z-index: 1;
50
38
  }
51
-
52
- // scroll-view.fwdd.bwd {
53
- // transform: translateX(var(--view-transition-principal-x));
54
- // }
55
39
  }
@@ -0,0 +1,19 @@
1
+ @use '../vars';
2
+ @use '../mixins';
3
+
4
+ @layer #{vars.$transitions-layer} {
5
+ @media (prefers-reduced-motion: no-preference) {
6
+ [is='confirmation-dialog'] {
7
+ :where(&) {
8
+ // transition:
9
+ // block-size var(--menu-animation-duration) allow-discrete ease-out,
10
+ // inline-size var(--menu-animation-duration) allow-discrete ease-out,
11
+ // display var(--menu-animation-duration) allow-discrete ease-out,
12
+ // overlay var(--menu-animation-duration) allow-discrete ease-out,
13
+ // transform var(--menu-animation-duration) allow-discrete ease-out;
14
+ transition: all var(--touchglass-transition-duration) allow-discrete ease-out;
15
+ // will-change: block-size, inline-size, transform, overlay, display;
16
+ }
17
+ }
18
+ }
19
+ }