@swiftwc/ui 0.0.0-dev.3 → 0.0.0-dev.5

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 (91) hide show
  1. package/generated/client/index.d.ts +5 -1
  2. package/generated/client/index.js +222 -7
  3. package/generated/components/body-view.d.ts +5 -0
  4. package/generated/components/body-view.js +11 -0
  5. package/generated/components/borderless-button.d.ts +9 -0
  6. package/generated/components/borderless-button.js +25 -0
  7. package/generated/components/bottom-bar.d.ts +10 -0
  8. package/generated/components/bottom-bar.js +73 -0
  9. package/generated/components/disclosure-group.d.ts +12 -0
  10. package/generated/components/disclosure-group.js +76 -0
  11. package/generated/components/index.d.ts +15 -1
  12. package/generated/components/index.js +15 -1
  13. package/generated/components/navigation-bar.d.ts +10 -0
  14. package/generated/components/navigation-bar.js +80 -0
  15. package/generated/components/navigation-split-view.d.ts +5 -0
  16. package/generated/components/navigation-split-view.js +9 -0
  17. package/generated/components/navigation-stack.d.ts +6 -0
  18. package/generated/components/navigation-stack.js +67 -0
  19. package/generated/components/screen-view.d.ts +5 -0
  20. package/generated/components/screen-view.js +9 -0
  21. package/generated/components/scroll-view.d.ts +8 -0
  22. package/generated/components/scroll-view.js +80 -0
  23. package/generated/components/sheet-view.d.ts +9 -0
  24. package/generated/components/sheet-view.js +26 -0
  25. package/generated/components/sidebar-toggle.d.ts +7 -0
  26. package/generated/components/sidebar-toggle.js +81 -0
  27. package/generated/components/sidebar-view.d.ts +9 -0
  28. package/generated/components/sidebar-view.js +26 -0
  29. package/generated/components/tab-bar.d.ts +9 -0
  30. package/generated/components/tab-bar.js +26 -0
  31. package/generated/components/tab-item.d.ts +6 -0
  32. package/generated/components/tab-item.js +35 -0
  33. package/generated/components/tab-view.d.ts +7 -0
  34. package/generated/components/tab-view.js +29 -0
  35. package/generated/components/v-keyboard.d.ts +9 -0
  36. package/generated/components/v-keyboard.js +82 -0
  37. package/generated/index.js +1 -1
  38. package/generated/internal/class.d.ts +18 -0
  39. package/generated/internal/class.js +18 -0
  40. package/generated/internal/utils/css-time.d.ts +1 -0
  41. package/generated/internal/utils/css-time.js +3 -0
  42. package/generated/internal/utils/index.d.ts +2 -1
  43. package/generated/internal/utils/index.js +2 -1
  44. package/generated/internal/utils/kebab-case.js +3 -3
  45. package/generated/namespace/index.d.ts +6 -0
  46. package/generated/namespace/index.js +1 -0
  47. package/generated/snapshot/index.d.ts +16 -0
  48. package/generated/snapshot/index.js +150 -0
  49. package/generated/styles.css +1298 -1
  50. package/package.json +8 -4
  51. package/scss/_base.scss +5 -0
  52. package/scss/_components.scss +39 -0
  53. package/scss/_dev.scss +68 -0
  54. package/scss/_functions.scss +21 -0
  55. package/scss/_mixins.scss +172 -0
  56. package/scss/_transitions.scss +11 -0
  57. package/scss/_vars.scss +57 -0
  58. package/scss/base/_layout.scss +40 -0
  59. package/scss/base/_reboot.scss +55 -0
  60. package/scss/base/_root.scss +69 -0
  61. package/scss/colors/_index.scss +99 -0
  62. package/scss/components/_body-view.scss +8 -0
  63. package/scss/components/_borderless-button.scss +14 -0
  64. package/scss/components/_disclosure-group.scss +80 -0
  65. package/scss/components/_full-screen.scss +13 -0
  66. package/scss/components/_index.scss +24 -0
  67. package/scss/components/_navigation-split-view.scss +364 -0
  68. package/scss/components/_navigation-stack.scss +11 -0
  69. package/scss/components/_scroll-view.scss +86 -0
  70. package/scss/components/_sheet-view.scss +60 -0
  71. package/scss/components/_sidebar-toggle.scss +61 -0
  72. package/scss/components/_sidebar-view.scss +63 -0
  73. package/scss/components/_tab-bar-stack.scss +101 -0
  74. package/scss/components/_tab-bar.scss +137 -0
  75. package/scss/components/_tab-view.scss +168 -0
  76. package/scss/components/_tool-bar-item-group.scss +37 -0
  77. package/scss/components/_tool-bar-item.scss +87 -0
  78. package/scss/components/_tool-bar.scss +90 -0
  79. package/scss/components/_toolbars.scss +100 -0
  80. package/scss/components/_v-keyboard.scss +12 -0
  81. package/scss/components/_v-stack.scss +19 -0
  82. package/scss/index.scss +11 -6
  83. package/scss/transitions/_bwd.navbar.scss +29 -0
  84. package/scss/transitions/_bwd.scss +55 -0
  85. package/scss/transitions/_dialog.scss +32 -0
  86. package/scss/transitions/_fwd.navbar.scss +46 -0
  87. package/scss/transitions/_fwd.scss +54 -0
  88. package/scss/transitions/_index.scss +182 -0
  89. package/generated/internal/snapshot.d.ts +0 -5
  90. package/generated/internal/snapshot.js +0 -23
  91. package/scss/_reboot.scss +0 -11
@@ -0,0 +1,80 @@
1
+ @use '../vars';
2
+ @use '../mixins';
3
+
4
+ @layer #{vars.$components-layer} {
5
+ [is='disclosure-group'] {
6
+ display: grid;
7
+
8
+ overflow: clip;
9
+
10
+ summary {
11
+ list-style: none;
12
+ }
13
+ // summary::marker {
14
+ // color: blue;
15
+ // display: none;
16
+ // content: '→';
17
+ // // content: "66";
18
+ // list-style-type: square;
19
+ // position: absolute;
20
+ // background-color: red;
21
+ // }
22
+
23
+ &::details-content {
24
+ background: transparent !important;
25
+ block-size: 0;
26
+
27
+ // display: grid;
28
+
29
+ transition:
30
+ block-size var(#{vars.$disclosure-group-animation-duration-css-prop})
31
+ allow-discrete var(--disclosure-group-animation-easing),
32
+ content-visibility
33
+ var(#{vars.$disclosure-group-animation-duration-css-prop})
34
+ allow-discrete var(--disclosure-group-animation-easing);
35
+ will-change: block-size, content-visibility;
36
+ }
37
+
38
+ > *:not(summary) {
39
+ margin: 0 !important;
40
+ }
41
+
42
+ &[open] {
43
+ &::details-content {
44
+ block-size: auto;
45
+ }
46
+ }
47
+ }
48
+
49
+ @supports not (interpolate-size: allow-keywords) {
50
+ [is='disclosure-group'] {
51
+ &::details-content {
52
+ block-size: auto !important;
53
+
54
+ transition:
55
+ max-height var(#{vars.$disclosure-group-animation-duration-css-prop})
56
+ allow-discrete var(--disclosure-group-animation-easing),
57
+ transform var(#{vars.$disclosure-group-animation-duration-css-prop})
58
+ allow-discrete var(--disclosure-group-animation-easing);
59
+ will-change: max-height, transform;
60
+
61
+ max-height: 0;
62
+ }
63
+
64
+ &[open] {
65
+ &::details-content {
66
+ max-height: calc(
67
+ var(#{vars.$disclosure-group-contents-height-css-prop}, 100vh) +
68
+ 100px
69
+ );
70
+ }
71
+ }
72
+
73
+ &.#{vars.$disclosure-group-animation-close-class} {
74
+ &::details-content {
75
+ max-height: 0 !important;
76
+ }
77
+ }
78
+ }
79
+ }
80
+ }
@@ -0,0 +1,13 @@
1
+ @use '../vars';
2
+ @use '../mixins';
3
+
4
+ @layer #{vars.$components-layer} {
5
+ [is='full-screen'] {
6
+ @include mixins.reset-dialog;
7
+
8
+ // dowh
9
+ overflow: clip;
10
+ width: 100lvw;
11
+ height: var(--100lvh, 100lvh);
12
+ }
13
+ }
@@ -0,0 +1,24 @@
1
+ @use '../vars';
2
+
3
+ @layer #{vars.$components-layer} {
4
+ // all is a grid
5
+ navigation-stack:not([hidden]),
6
+ navigation-split-view:not([hidden]),
7
+ scroll-view,
8
+ body-view,
9
+ tab-view,
10
+ [is='sidebar-view'],
11
+ [is='tab-bar'],
12
+ [is='full-screen'],
13
+ [is='sheet-view'],
14
+ tool-bar-item,
15
+ tool-bar-item-group,
16
+ sidebar-toggle,
17
+ navigation-bar,
18
+ bottom-bar,
19
+ tab-bar-stack,
20
+ v-stack,
21
+ tool-bar {
22
+ display: grid;
23
+ }
24
+ }
@@ -0,0 +1,364 @@
1
+ @use '../vars';
2
+ @use '../mixins';
3
+
4
+ @layer #{vars.$components-layer} {
5
+ navigation-split-view {
6
+ touch-action: none;
7
+
8
+ height: var(--100lvh, 100lvh);
9
+
10
+ // use ifnot so that z-index rules get discarded in larger viewports
11
+ @include mixins.ifnot-2col-split-view-fits {
12
+ > body-view ~ scroll-view,
13
+ > body-view ~ [is='sidebar-view'] {
14
+ z-index: -1;
15
+ }
16
+
17
+ &:has(> [is='sidebar-view']) {
18
+ > body-view ~ [is='sidebar-view'] {
19
+ z-index: -2;
20
+ }
21
+
22
+ > body-view > body-view ~ scroll-view {
23
+ z-index: -1;
24
+ }
25
+ }
26
+ }
27
+
28
+ @include mixins.ifnot-3col-split-view-fits {
29
+ &:has(> dialog[is='sidebar-view']) {
30
+ > body-view > body-view ~ scroll-view {
31
+ z-index: -1;
32
+ }
33
+
34
+ &[preferred-compact-column='content'] {
35
+ body-view:has(> body-view) > scroll-view:not(dialog scroll-view) {
36
+ z-index: -1;
37
+ }
38
+
39
+ // body-view > body-view {
40
+ // clip-path: inset(
41
+ // 0 0 0 var(--nav-split-view-content-width)
42
+ // ); // force clipping because it is now a floating element unable to hide bg = overflow: clip;
43
+ // }
44
+ }
45
+ }
46
+ }
47
+
48
+ @include mixins.if-3col-split-view-fits {
49
+ &:has(> dialog[is='sidebar-view']) {
50
+ &[column-visibility='double-column'] {
51
+ > body-view > body-view ~ scroll-view {
52
+ z-index: -1;
53
+ }
54
+ }
55
+ }
56
+ }
57
+
58
+ // COMPACT | EXPANDED
59
+ // | | <-> |
60
+ @include mixins.if-2col-split-view-fits {
61
+ // compact col
62
+ > scroll-view,
63
+ > [is='sidebar-view'],
64
+ > navigation-bar,
65
+ > bottom-bar {
66
+ width: var(--nav-split-view-content-width);
67
+
68
+ --safe-area-inset-right: 0px; // Reset right paddings of compact col
69
+ }
70
+
71
+ // container of details col
72
+ > body-view {
73
+ // details col (content|details)
74
+ scroll-view:not(dialog scroll-view),
75
+ navigation-bar:not(dialog navigation-bar),
76
+ bottom-bar:not(dialog bottom-bar) {
77
+ margin-inline-start: var(
78
+ --nav-split-view-content-width
79
+ ); // beautiful vts
80
+
81
+ // Reset left paddings of expanded col
82
+ --safe-area-inset-left: 0px;
83
+ }
84
+ }
85
+ }
86
+
87
+ // SIDEBAR | EXPANDED
88
+ @include mixins.if-2col-split-view-fits {
89
+ &:has(> dialog[is='sidebar-view']) {
90
+ // sidebar col: turn into floating sidebar
91
+ > [is='sidebar-view'] > scroll-view {
92
+ --canvas-bg: #ffffff9e;
93
+
94
+ --safe-area-inset-top: 0px;
95
+ --safe-area-inset-bottom: 0px;
96
+
97
+ border-radius: var(--tab-bar-sidebar-border-radius);
98
+
99
+ margin-block: max(
100
+ var(--safe-area-inset-top),
101
+ var(--tab-bar-sidebar-spacing)
102
+ )
103
+ max(var(--safe-area-inset-bottom), var(--tab-bar-sidebar-spacing));
104
+ }
105
+
106
+ // sidebar col: re-size + turn into a floating sidebar
107
+ > scroll-view,
108
+ > [is='sidebar-view'],
109
+ > navigation-bar,
110
+ > bottom-bar {
111
+ width: var(--nav-split-view-sidebar-width); // override
112
+
113
+ margin-inline-start: max(
114
+ env(safe-area-inset-left),
115
+ var(--tab-bar-sidebar-spacing)
116
+ ); // float
117
+
118
+ --safe-area-inset-left: 0px; // now a floating
119
+ }
120
+
121
+ // container of expanded col (trailing)
122
+ > body-view {
123
+ scroll-view:not(dialog scroll-view),
124
+ navigation-bar:not(dialog navigation-bar),
125
+ bottom-bar:not(dialog bottom-bar) {
126
+ margin-inline-start: 0px; // override
127
+
128
+ --safe-area-inset-left: calc(
129
+ var(--nav-split-view-sidebar-width) +
130
+ max(env(safe-area-inset-left), var(--tab-bar-sidebar-spacing))
131
+ );
132
+ }
133
+ }
134
+ }
135
+ }
136
+
137
+ // SIDEBAR | EXPANDED
138
+ @include mixins.if-2col-split-view-fits {
139
+ &:has(> dialog[is='sidebar-view']) {
140
+ // SIDEBAR | COMPACT | EXPANDED
141
+ &[preferred-compact-column='content'] {
142
+ > scroll-view,
143
+ > [is='sidebar-view'],
144
+ > navigation-bar,
145
+ > bottom-bar {
146
+ margin-inline-start: calc(var(--nav-split-view-sidebar-width) * -1);
147
+ }
148
+
149
+ // move descendants to right
150
+ > body-view {
151
+ scroll-view:not(dialog scroll-view),
152
+ navigation-bar:not(dialog navigation-bar),
153
+ bottom-bar:not(dialog bottom-bar) {
154
+ margin-inline-start: var(--nav-split-view-content-width);
155
+
156
+ --safe-area-inset-left: 0px;
157
+ }
158
+
159
+ > scroll-view:not(dialog scroll-view),
160
+ > navigation-bar:not(dialog navigation-bar),
161
+ > bottom-bar:not(dialog bottom-bar) {
162
+ margin-inline-start: 0px;
163
+
164
+ --safe-area-inset-left: max(
165
+ env(safe-area-inset-left),
166
+ var(--tab-bar-sidebar-spacing)
167
+ );
168
+
169
+ width: var(--nav-split-view-content-width);
170
+ }
171
+ }
172
+ }
173
+ }
174
+ }
175
+
176
+ // SIDEBAR | COMPACT | EXPANDED
177
+ @include mixins.if-3col-split-view-fits {
178
+ &:has(> dialog[is='sidebar-view']) {
179
+ &:not([column-visibility='double-column']) {
180
+ // container of content col (principal)
181
+ > body-view {
182
+ // clip-path: inset(
183
+ // 0 0 0 var(--nav-split-view-sidebar-width)
184
+ // ); // force clipping because it is now a floating element unable to hide bg = overflow: clip;
185
+
186
+ // shrink 2nd-child
187
+ > scroll-view,
188
+ > navigation-bar,
189
+ > bottom-bar {
190
+ width: calc(
191
+ var(--nav-split-view-content-width) +
192
+ var(--nav-split-view-sidebar-width)
193
+ ); // shrink to be now a col
194
+
195
+ --safe-area-inset-right: 0px;
196
+ }
197
+
198
+ // container of details col (trailing)
199
+ > body-view {
200
+ scroll-view:not(dialog scroll-view),
201
+ navigation-bar:not(dialog navigation-bar),
202
+ bottom-bar:not(dialog bottom-bar) {
203
+ // --safe-area-inset-left: calc(
204
+ // var(--nav-split-view-sidebar-width) +
205
+ // var(--nav-split-view-content-width) +
206
+ // max(env(safe-area-inset-left), var(--tab-bar-sidebar-spacing))
207
+ // ); // override
208
+
209
+ // margin-inline-start: 0px;
210
+ --safe-area-inset-left: 0px; // override
211
+
212
+ margin-inline-start: calc(
213
+ var(--nav-split-view-sidebar-width) +
214
+ var(--nav-split-view-content-width)
215
+ ); // override
216
+ }
217
+ }
218
+ }
219
+ }
220
+ }
221
+ }
222
+ }
223
+ }
224
+
225
+ @layer #{vars.$final-layer} {
226
+ navigation-split-view {
227
+ // COMPACT | EXPANDED
228
+ @include mixins.if-2col-split-view-fits {
229
+ // Cancel transitions as it is now a compact col
230
+ > scroll-view,
231
+ > [is='sidebar-view'] > scroll-view {
232
+ transform: translateX(0px) !important;
233
+ }
234
+
235
+ > body-view {
236
+ > scroll-view:not(dialog scroll-view).bwd,
237
+ > scroll-view:not(dialog scroll-view).fwdd,
238
+ > navigation-bar:not(dialog navigation-bar) .bwn,
239
+ > bottom-bar:not(dialog bottom-bar) .bwn,
240
+ > navigation-bar:not(dialog navigation-bar) .fwnn,
241
+ > bottom-bar:not(dialog bottom-bar) .fwnn {
242
+ transition-duration: 0ms !important;
243
+ }
244
+ }
245
+
246
+ // Cancel animations
247
+ > navigation-bar,
248
+ > bottom-bar {
249
+ > tool-bar-item,
250
+ > tool-bar-item-group {
251
+ @include mixins.vt-toolbar-item-onscreen-keyframe(true);
252
+ }
253
+ }
254
+ }
255
+
256
+ // SIDEBAR | EXPANDED
257
+ @include mixins.if-2col-split-view-fits {
258
+ &:has(> dialog[is='sidebar-view']) {
259
+ &[preferred-compact-column='content'] {
260
+ // move descendants to right
261
+ > body-view {
262
+ > scroll-view {
263
+ transform: translateX(0px) !important;
264
+ }
265
+
266
+ // scroll-view:not(dialog scroll-view),
267
+ // navigation-bar:not(dialog navigation-bar),
268
+ // bottom-bar:not(dialog bottom-bar) {
269
+ // margin-inline-start: var(--nav-split-view-content-width);
270
+ // }
271
+
272
+ // > scroll-view:not(dialog scroll-view),
273
+ // > navigation-bar:not(dialog navigation-bar),
274
+ // > bottom-bar:not(dialog bottom-bar) {
275
+ // transform: translateX(0px);
276
+
277
+ // margin-inline-start: 0px;
278
+
279
+ // width: unset;
280
+ // }
281
+
282
+ // > body-view {
283
+ // scroll-view:not(dialog scroll-view),
284
+ // navigation-bar:not(dialog navigation-bar),
285
+ // bottom-bar:not(dialog bottom-bar) {
286
+ // margin-inline-start: var(--nav-split-view-content-width);
287
+ // }
288
+ // }
289
+ }
290
+ }
291
+ }
292
+ }
293
+
294
+ // @include mixins.ifnot-3col-split-view-fits {
295
+ // (sidebar|content|details)
296
+ // &:has(> dialog[is='sidebar-view']) {
297
+ // --view-transition-leading-x: -100lvw;
298
+
299
+ // > body-view > body-view ~ scroll-view {
300
+ // z-index: -1;
301
+ // }
302
+ // }
303
+ // }
304
+
305
+ // SIDEBAR | COMPACT | EXPANDED
306
+ @include mixins.if-3col-split-view-fits {
307
+ &:has(> dialog[is='sidebar-view']) {
308
+ &:not([column-visibility='double-column']) {
309
+ // container of compact col (middle)
310
+ > body-view {
311
+ // Fix position as compact col in the middle
312
+ > scroll-view {
313
+ transform: translateX(0px) !important;
314
+ }
315
+
316
+ // Fix position of compact col
317
+ // > scroll-view,
318
+ // > navigation-bar,
319
+ // > bottom-bar {
320
+ // margin-inline-start: calc(
321
+ // var(--nav-split-view-sidebar-width) +
322
+ // max(env(safe-area-inset-left), var(--tab-bar-sidebar-spacing))
323
+ // );
324
+ // }
325
+
326
+ // > body-view {
327
+ // > scroll-view,
328
+ // > navigation-bar,
329
+ // > bottom-bar {
330
+ // margin-inline-start: 0px;
331
+
332
+ // --safe-area-inset-left: calc(
333
+ // var(--nav-split-view-sidebar-width) +
334
+ // max(env(safe-area-inset-left), var(--tab-bar-sidebar-spacing))
335
+ // );
336
+ // }
337
+ // }
338
+ // }
339
+
340
+ // // re-move descendants to the right
341
+ // > body-view {
342
+ // --view-transition-leading-x: unset;
343
+
344
+ // 2nd-child stays put
345
+ // > scroll-view,
346
+ // > navigation-bar,
347
+ // > bottom-bar {
348
+ // transform: translateX(0px);
349
+ // }
350
+
351
+ // cancel animations
352
+ > navigation-bar,
353
+ > bottom-bar {
354
+ > tool-bar-item,
355
+ > tool-bar-item-group {
356
+ @include mixins.vt-toolbar-item-onscreen-keyframe(true);
357
+ }
358
+ }
359
+ }
360
+ }
361
+ }
362
+ }
363
+ }
364
+ }
@@ -0,0 +1,11 @@
1
+ @use '../vars';
2
+
3
+ @layer #{vars.$components-layer} {
4
+ navigation-stack {
5
+ // grid-area: main;
6
+ touch-action: none;
7
+ height: var(--100lvh, 100lvh);
8
+ // height: 100lvh;
9
+ // overflow: clip;
10
+ }
11
+ }
@@ -0,0 +1,86 @@
1
+ @use '../vars';
2
+ @use '../mixins';
3
+
4
+ @layer #{vars.$components-layer} {
5
+ // [is='sidebar-view'] {
6
+ // @include mixins.reset-dialog;
7
+
8
+ // // dowh
9
+ // overflow: clip;
10
+ // width: 100%;
11
+ // height: 100%;
12
+ // position: static;
13
+ // }
14
+
15
+ // v-stack,
16
+ // tab-bar-stack {
17
+ scroll-view:has(> tool-bar[slot='navigation-bar']) > *:not([slot]) {
18
+ margin-block-start: var(--navigation-bar-height);
19
+ }
20
+
21
+ scroll-view:has(> tool-bar[slot='bottom-bar']) > *:not([slot]) {
22
+ margin-block-end: var(--tool-bar-height);
23
+ }
24
+ // }
25
+
26
+ navigation-stack > scroll-view,
27
+ navigation-split-view > scroll-view,
28
+ navigation-split-view > [is='sidebar-view'] > scroll-view,
29
+ body-view > scroll-view,
30
+ [is='full-screen'] > scroll-view,
31
+ [is='sheet-view'] > scroll-view {
32
+ box-shadow: inset 0 0 0 2px cyan;
33
+
34
+ overflow: clip auto;
35
+ @include mixins.contain-overscroll;
36
+
37
+ // overflow-y: auto;
38
+ // overflow-x: clip;
39
+ // overscroll-behavior: contain;
40
+ // -webkit-overflow-scrolling: touch;
41
+ padding-block: var(--safe-area-inset-top) var(--safe-area-inset-bottom);
42
+ container: scroll-view / inline-size;
43
+ background-color: var(--canvas-bg);
44
+ // place-items: center;
45
+ //
46
+
47
+ padding-inline: var(--safe-area-inset-left) var(--safe-area-inset-right);
48
+
49
+ // grid-auto-rows: minmax(0, max-content);
50
+ // grid-template-rows: 100% 1px;
51
+ @include mixins.make-scrollable;
52
+
53
+ // @include mixins.make-navbar;
54
+
55
+ // &:has(> tool-bar[slot='navigation-bar']) {
56
+ // margin-top: var(--navigation-bar-height);
57
+ // }
58
+
59
+ // &:has(> tool-bar[slot='bottom-bar']) {
60
+ // margin-bottom: var(--tool-bar-height);
61
+ // }
62
+ }
63
+
64
+ // navigation-split-view scroll-view {
65
+ // margin-inline-start: 400px;
66
+ // }
67
+
68
+ // navigation-split-view > scroll-view {
69
+ // width: 400px;
70
+ // margin-inline-start: 0;
71
+ // transform: none !important;
72
+ // }
73
+
74
+ @include mixins.if-ipad-sheet-fits {
75
+ [is='sheet-view'] {
76
+ scroll-view {
77
+ --safe-area-inset-top: 0px;
78
+ --safe-area-inset-right: 0px;
79
+ --safe-area-inset-bottom: 0px;
80
+ --safe-area-inset-left: 0px;
81
+ // padding-inline: 0px; //var(--edge-inset-inline-start) var(--edge-inset-inline-end);
82
+ // padding-block: 0px; //var(--edge-inset-block-start) var(--edge-inset-block-end);
83
+ }
84
+ }
85
+ }
86
+ }
@@ -0,0 +1,60 @@
1
+ @use '../vars';
2
+ @use '../mixins';
3
+
4
+ @layer #{vars.$components-layer} {
5
+ [is='sheet-view'] {
6
+ @include mixins.reset-dialog;
7
+
8
+ // dowh
9
+ overflow: clip;
10
+ width: 100lvw;
11
+ height: var(--100lvh, 100lvh);
12
+
13
+ transform: translateY(var(--view-transition-dialog-offscreen-y));
14
+
15
+ &::backdrop {
16
+ background-color: transparent;
17
+ }
18
+
19
+ @include mixins.if-ipad-sheet-fits {
20
+ max-width: #{vars.$ipad-sheet-view-width};
21
+
22
+ aspect-ratio: #{vars.$ipad-sheet-view-aspect-ratio};
23
+
24
+ border-radius: 26px;
25
+
26
+ margin: var(--safe-area-inset-top) var(--safe-area-inset-right)
27
+ var(--safe-area-inset-bottom) var(--safe-area-inset-left);
28
+
29
+ height: auto;
30
+
31
+ inset-inline-start: calc(
32
+ 50lvw - calc(#{vars.$ipad-sheet-view-width} / 2) - calc(
33
+ calc(var(--safe-area-inset-left) + var(--safe-area-inset-right)) / 2
34
+ )
35
+ );
36
+
37
+ inset-block-start: calc(
38
+ 50lvh - calc(#{vars.$ipad-sheet-view-height} / 2) - calc(
39
+ calc(var(--safe-area-inset-top) + var(--safe-area-inset-bottom)) / 2
40
+ )
41
+ );
42
+
43
+ @include mixins.if-2col-split-view-fits {
44
+ navigation-split-view & {
45
+ margin-inline-start: calc(
46
+ var(--safe-area-inset-left) - var(--nav-split-view-content-width)
47
+ );
48
+ }
49
+
50
+ navigation-split-view[visibility='three-column'] & {
51
+ margin-inline-start: calc(
52
+ var(--safe-area-inset-left) - var(
53
+ --nav-split-view-content-width
54
+ ) - var(--nav-split-view-sidebar-width)
55
+ );
56
+ }
57
+ }
58
+ }
59
+ }
60
+ }
@@ -0,0 +1,61 @@
1
+ @use '../vars';
2
+ @use '../mixins';
3
+
4
+ @layer #{vars.$components-layer} {
5
+ sidebar-toggle {
6
+ background-color: coral;
7
+
8
+ place-items: center;
9
+ place-content: center;
10
+
11
+ tab-view > &,
12
+ navigation-split-view > & {
13
+ position: fixed;
14
+
15
+ inset: max(env(safe-area-inset-top), var(--tab-bar-sidebar-spacing)) auto
16
+ auto var(--safe-area-inset-left);
17
+
18
+ height: calc(var(--safe-area-inset-top) + var(--navigation-bar-height));
19
+ }
20
+
21
+ @include mixins.if-iphone-portrait {
22
+ [is='tab-bar'] > &,
23
+ tab-view > & {
24
+ display: none;
25
+ }
26
+ }
27
+
28
+ @include mixins.if-ipad-portrait {
29
+ [is='tab-bar'] > & {
30
+ // position: sticky;
31
+ // left: 0;
32
+ // top: 0;
33
+ width: 30px;
34
+ order: -1;
35
+ }
36
+
37
+ [is='tab-bar'][open] > & {
38
+ position: sticky;
39
+ inset: 0 auto auto 0;
40
+ height: var(--navigation-bar-height);
41
+ }
42
+
43
+ tab-view > & {
44
+ display: none;
45
+ }
46
+ }
47
+
48
+ @include mixins.if-iphone-landscape {
49
+ [is='tab-bar'] > & {
50
+ display: none;
51
+ }
52
+ }
53
+
54
+ @include mixins.if-ipad-landscape {
55
+ [is='tab-bar'] > &,
56
+ tab-view > & {
57
+ display: none;
58
+ }
59
+ }
60
+ }
61
+ }