@getflip/swirl-components 0.116.0 → 0.118.0

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 (118) hide show
  1. package/components.json +395 -69
  2. package/dist/cjs/focus-trap.esm-21561e09.js +1145 -0
  3. package/dist/cjs/index-506fe4ea.js +14 -26
  4. package/dist/cjs/loader.cjs.js +1 -1
  5. package/dist/cjs/swirl-app-bar.cjs.entry.js +2 -1
  6. package/dist/cjs/swirl-app-icon.cjs.entry.js +1 -3
  7. package/dist/cjs/swirl-app-layout_6.cjs.entry.js +4 -2
  8. package/dist/cjs/swirl-badge.cjs.entry.js +1 -1
  9. package/dist/cjs/swirl-components.cjs.js +1 -1
  10. package/dist/cjs/swirl-icon-arrow-back_5.cjs.entry.js +87 -0
  11. package/dist/cjs/swirl-icon-check-small_3.cjs.entry.js +7 -2
  12. package/dist/cjs/swirl-icon-dock-left.cjs.entry.js +23 -0
  13. package/dist/cjs/swirl-modal.cjs.entry.js +2 -1143
  14. package/dist/cjs/swirl-shell-layout.cjs.entry.js +87 -75
  15. package/dist/cjs/swirl-shell-navigation-item.cjs.entry.js +1 -1
  16. package/dist/cjs/swirl-visually-hidden.cjs.entry.js +1 -1
  17. package/dist/collection/assets/pdfjs/pdf.worker.min.js +1 -1
  18. package/dist/collection/collection-manifest.json +1 -0
  19. package/dist/collection/components/swirl-app-bar/swirl-app-bar.js +20 -1
  20. package/dist/collection/components/swirl-app-icon/swirl-app-icon.css +3 -22
  21. package/dist/collection/components/swirl-app-icon/swirl-app-icon.js +0 -20
  22. package/dist/collection/components/swirl-app-layout/swirl-app-layout.css +54 -4
  23. package/dist/collection/components/swirl-app-layout/swirl-app-layout.js +4 -1
  24. package/dist/collection/components/swirl-badge/swirl-badge.css +18 -1
  25. package/dist/collection/components/swirl-badge/swirl-badge.js +1 -1
  26. package/dist/collection/components/swirl-icon/icons/swirl-icon-dock-left.js +52 -0
  27. package/dist/collection/components/swirl-option-list-item/swirl-option-list-item.css +26 -4
  28. package/dist/collection/components/swirl-option-list-item/swirl-option-list-item.js +23 -1
  29. package/dist/collection/components/swirl-option-list-item/swirl-option-list-item.spec.js +6 -3
  30. package/dist/collection/components/swirl-shell-layout/swirl-shell-layout.css +353 -132
  31. package/dist/collection/components/swirl-shell-layout/swirl-shell-layout.js +322 -95
  32. package/dist/collection/components/swirl-shell-layout/swirl-shell-layout.spec.js +8 -58
  33. package/dist/collection/components/swirl-shell-layout/swirl-shell-layout.stories.js +81 -102
  34. package/dist/collection/components/swirl-shell-navigation-item/swirl-shell-navigation-item.css +46 -35
  35. package/dist/collection/components/swirl-visually-hidden/swirl-visually-hidden.js +1 -1
  36. package/dist/collection/components/swirl-visually-hidden/swirl-visually-hidden.spec.js +0 -3
  37. package/dist/components/assets/images/flip-logo.png +0 -0
  38. package/dist/components/assets/pdfjs/pdf.worker.min.js +1 -1
  39. package/dist/components/focus-trap.esm.js +1143 -0
  40. package/dist/components/swirl-app-bar.js +3 -1
  41. package/dist/components/swirl-app-icon.js +1 -4
  42. package/dist/components/swirl-app-layout2.js +4 -2
  43. package/dist/components/swirl-badge2.js +1 -1
  44. package/dist/components/swirl-icon-arrow-back.js +1 -35
  45. package/dist/{esm/swirl-icon-arrow-back.entry.js → components/swirl-icon-arrow-back2.js} +26 -8
  46. package/dist/components/swirl-icon-arrow-forward.js +1 -35
  47. package/dist/{esm/swirl-icon-arrow-forward.entry.js → components/swirl-icon-arrow-forward2.js} +26 -8
  48. package/dist/components/swirl-icon-dock-left.d.ts +11 -0
  49. package/dist/components/swirl-icon-dock-left.js +40 -0
  50. package/dist/components/swirl-icon-double-arrow-left.js +1 -35
  51. package/dist/{esm/swirl-icon-double-arrow-left.entry.js → components/swirl-icon-double-arrow-left2.js} +26 -8
  52. package/dist/components/swirl-icon-double-arrow-right.js +1 -35
  53. package/dist/{esm/swirl-icon-double-arrow-right.entry.js → components/swirl-icon-double-arrow-right2.js} +26 -8
  54. package/dist/components/swirl-icon-menu.js +1 -35
  55. package/dist/{esm/swirl-icon-menu.entry.js → components/swirl-icon-menu2.js} +26 -8
  56. package/dist/components/swirl-modal.js +1 -1142
  57. package/dist/components/swirl-option-list-item2.js +8 -2
  58. package/dist/components/swirl-shell-layout.js +150 -89
  59. package/dist/components/swirl-shell-navigation-item.js +1 -1
  60. package/dist/components/swirl-visually-hidden2.js +2 -3
  61. package/dist/esm/focus-trap.esm-37cd2d2b.js +1143 -0
  62. package/dist/esm/index-99d0060d.js +14 -26
  63. package/dist/esm/loader.js +1 -1
  64. package/dist/esm/swirl-app-bar.entry.js +2 -1
  65. package/dist/esm/swirl-app-icon.entry.js +1 -3
  66. package/dist/esm/swirl-app-layout_6.entry.js +4 -2
  67. package/dist/esm/swirl-badge.entry.js +1 -1
  68. package/dist/esm/swirl-components.js +1 -1
  69. package/dist/esm/swirl-icon-arrow-back_5.entry.js +79 -0
  70. package/dist/esm/swirl-icon-check-small_3.entry.js +7 -2
  71. package/dist/esm/swirl-icon-dock-left.entry.js +19 -0
  72. package/dist/esm/swirl-modal.entry.js +1 -1142
  73. package/dist/esm/swirl-shell-layout.entry.js +88 -76
  74. package/dist/esm/swirl-shell-navigation-item.entry.js +1 -1
  75. package/dist/esm/swirl-visually-hidden.entry.js +1 -1
  76. package/dist/swirl-components/p-08fd60a5.entry.js +1 -0
  77. package/dist/swirl-components/p-11c6c9ba.entry.js +1 -0
  78. package/dist/swirl-components/p-25b4973d.entry.js +1 -0
  79. package/dist/swirl-components/p-262771e5.entry.js +1 -0
  80. package/dist/swirl-components/p-3795fbb4.entry.js +1 -0
  81. package/dist/swirl-components/p-40ee5f22.entry.js +1 -0
  82. package/dist/swirl-components/p-488d2a7d.entry.js +1 -0
  83. package/dist/swirl-components/p-4a69e7f3.entry.js +1 -0
  84. package/dist/swirl-components/p-68936168.entry.js +1 -0
  85. package/dist/swirl-components/p-76c36ee9.entry.js +1 -0
  86. package/dist/swirl-components/p-7c4a4b66.entry.js +1 -0
  87. package/dist/swirl-components/p-c2e1dfdb.js +10 -0
  88. package/dist/swirl-components/swirl-components.esm.js +1 -1
  89. package/dist/types/components/swirl-app-bar/swirl-app-bar.d.ts +1 -0
  90. package/dist/types/components/swirl-app-icon/swirl-app-icon.d.ts +0 -1
  91. package/dist/types/components/swirl-app-layout/swirl-app-layout.d.ts +1 -0
  92. package/dist/types/components/swirl-badge/swirl-badge.d.ts +1 -1
  93. package/dist/types/components/swirl-icon/icons/swirl-icon-dock-left.d.ts +5 -0
  94. package/dist/types/components/swirl-option-list-item/swirl-option-list-item.d.ts +2 -0
  95. package/dist/types/components/swirl-shell-layout/swirl-shell-layout.d.ts +42 -25
  96. package/dist/types/components.d.ts +52 -11
  97. package/icons.json +1 -1
  98. package/package.json +2 -2
  99. package/vscode-data.json +62 -6
  100. package/dist/cjs/swirl-icon-arrow-back.cjs.entry.js +0 -23
  101. package/dist/cjs/swirl-icon-arrow-forward.cjs.entry.js +0 -23
  102. package/dist/cjs/swirl-icon-double-arrow-left.cjs.entry.js +0 -23
  103. package/dist/cjs/swirl-icon-double-arrow-right.cjs.entry.js +0 -23
  104. package/dist/cjs/swirl-icon-menu.cjs.entry.js +0 -23
  105. package/dist/swirl-components/p-178d041a.entry.js +0 -1
  106. package/dist/swirl-components/p-3a2abee9.entry.js +0 -1
  107. package/dist/swirl-components/p-441c8210.entry.js +0 -1
  108. package/dist/swirl-components/p-4a84e63d.entry.js +0 -1
  109. package/dist/swirl-components/p-54e4ff0b.entry.js +0 -1
  110. package/dist/swirl-components/p-5da3a9a8.entry.js +0 -1
  111. package/dist/swirl-components/p-645a878c.entry.js +0 -1
  112. package/dist/swirl-components/p-79be22ea.entry.js +0 -10
  113. package/dist/swirl-components/p-97668c59.entry.js +0 -1
  114. package/dist/swirl-components/p-be2cf7ee.entry.js +0 -1
  115. package/dist/swirl-components/p-c4d4a99d.entry.js +0 -1
  116. package/dist/swirl-components/p-ca78767e.entry.js +0 -1
  117. package/dist/swirl-components/p-d2fc7935.entry.js +0 -1
  118. package/dist/swirl-components/p-f83a0b0f.entry.js +0 -1
@@ -1,6 +1,13 @@
1
1
  :host {
2
- --extended-sidebar-width: 17rem;
3
- --collapsed-sidebar-width: 4rem;
2
+ --swirl-shell-background: var(--s-surface-sunken-default);
3
+ --swirl-shell-text-color: var(--s-text-default);
4
+
5
+ --swirl-shell-header-height: 3.25rem;
6
+
7
+ --swirl-shell-collapsed-nav-width: 3.75rem;
8
+ --swirl-shell-extended-nav-width: 14rem;
9
+ --swirl-shell-sidebar-width: 21rem;
10
+
4
11
  display: flex;
5
12
  width: 100%;
6
13
  height: 100%;
@@ -14,215 +21,438 @@
14
21
  display: grid;
15
22
  width: 100%;
16
23
  min-height: 100%;
24
+ background-color: var(--swirl-shell-background);
17
25
  transition: grid-template-columns 0.2s;
18
- grid-template-columns: 0 1fr;
19
- grid-template-rows: auto 1fr;
20
- grid-template-areas:
21
- "banner banner"
22
- "sidebar main";
26
+ grid-template-columns: 0 1fr 0;
27
+ grid-template-rows: 1fr;
28
+ grid-template-areas: "nav main";
23
29
  }
24
30
 
25
31
  @media (min-width: 992px) {
26
32
 
27
33
  .shell-layout {
28
- grid-template-columns: var(--extended-sidebar-width) 1fr
34
+ padding-right: var(--s-space-8);
35
+ padding-bottom: var(--s-space-8);
36
+ gap: var(--s-space-8);
37
+ grid-template-columns: var(--swirl-shell-extended-nav-width) 1fr 0;
38
+ grid-template-rows: var(--swirl-shell-header-height) 1fr;
39
+ grid-template-areas:
40
+ "header header header"
41
+ "nav main sidebar"
29
42
  }
30
43
  }
31
44
 
32
- .shell-layout--collapsed-sidebar {
33
- grid-template-columns: 0 1fr;
34
- }
45
+ .shell-layout--branded-header .shell-layout__header {
46
+ border-bottom: none;
47
+ color: var(--s-text-on-action-primary);
48
+ background-color: var(--s-action-primary-default);
49
+ }
35
50
 
36
- @media (min-width: 992px) {
37
- .shell-layout--collapsed-sidebar:not(.shell-layout--collapsing) .shell-layout__sidebar-wrapper.shell-layout__sidebar-wrapper--hovered .shell-layout__sidebar, .shell-layout--collapsed-sidebar:not(.shell-layout--collapsing) .shell-layout__sidebar-wrapper:focus-within .shell-layout__sidebar {
38
- width: var(--extended-sidebar-width);
39
- box-shadow: 0 0.75rem 2rem rgba(25, 26, 28, 0.12),
40
- 0 0.25rem 0.75rem rgba(25, 26, 28, 0.08);
41
- }
51
+ .shell-layout--branded-header .shell-layout__header .shell-layout__header-tool {
52
+ color: var(--s-text-on-action-primary);
53
+ background-color: var(--s-action-primary-default);
54
+ }
55
+
56
+ .shell-layout--branded-header .shell-layout__header .shell-layout__header-tool:hover {
57
+ background-color: var(--s-action-primary-hovered);
58
+ }
59
+
60
+ .shell-layout--branded-header .shell-layout__header .shell-layout__header-tool:active {
61
+ background-color: var(--s-action-primary-pressed);
62
+ }
63
+
64
+ .shell-layout--branded-header .shell-layout__header .shell-layout__header-tool swirl-badge {
65
+ --swirl-badge-border-color: var(--s-action-primary-default);
42
66
  }
43
67
 
44
- .shell-layout--collapsed-sidebar .shell-layout__sidebar-wrapper {
45
- transform: translate3d(-100%, 0, 0);
68
+ .shell-layout--navigation-collapsed .shell-layout__navigation-toggle:hover swirl-icon-double-arrow-left {
69
+ display: none;
70
+ }
71
+
72
+ .shell-layout--navigation-collapsed .shell-layout__navigation-toggle:hover swirl-icon-double-arrow-right {
73
+ display: inline-flex;
74
+ }
75
+
76
+ @media (min-width: 992px) {
77
+
78
+ .shell-layout--navigation-collapsed {
79
+ grid-template-columns: var(--swirl-shell-collapsed-nav-width) 1fr 0
80
+ }
46
81
  }
47
82
 
48
- .shell-layout--collapsed-sidebar .shell-layout__sidebar-wrapper .shell-layout__sidebar {
49
- width: 100%;
50
- box-shadow: none;
83
+ @media (min-width: 1440px) {
84
+
85
+ .shell-layout--sidebar-active.shell-layout--navigation-collapsed {
86
+ grid-template-columns: var(--swirl-shell-collapsed-nav-width) 1fr var(
87
+ --swirl-shell-sidebar-width
88
+ )
89
+ }
90
+ }
91
+
92
+ @media (min-width: 1440px) {
93
+
94
+ .shell-layout--sidebar-active .shell-layout__main {
95
+ width: 100%
96
+ }
51
97
  }
52
98
 
53
99
  @media (min-width: 992px) {
54
100
 
55
- .shell-layout--collapsed-sidebar .shell-layout__sidebar-wrapper {
56
- max-width: var(--collapsed-sidebar-width);
57
- flex-basis: var(--collapsed-sidebar-width);
58
- transform: none
101
+ .shell-layout--sidebar-active .shell-layout__sidebar-body {
102
+ border: 0.0625rem solid var(--s-border-default);
103
+ transform: translate3d(0, 0, 0)
104
+ }
105
+ }
106
+
107
+ @media (min-width: 1440px) {
108
+
109
+ .shell-layout--sidebar-active {
110
+ grid-template-columns: var(--swirl-shell-extended-nav-width) 1fr var(
111
+ --swirl-shell-sidebar-width
112
+ )
113
+ }
59
114
  }
60
- .shell-layout--collapsed-sidebar .shell-layout__sidebar-wrapper:not(.shell-layout__sidebar-wrapper--hovered):not(:focus-within) .shell-layout__sidebar {
61
- box-shadow: none;
62
- }
63
115
 
64
- .shell-layout--collapsed-sidebar .shell-layout__sidebar-wrapper:not(.shell-layout__sidebar-wrapper--hovered):not(:focus-within) .shell-layout__collapsed-logo {
65
- display: inline-flex;
66
- justify-content: center;
67
- align-items: center;
68
- }
116
+ .shell-layout--mobile-navigation-active .shell-layout__nav {
117
+ transform: translate3d(0, 0, 0);
118
+ box-shadow: var(--s-shadow-level-3);
119
+ }
69
120
 
70
- .shell-layout--collapsed-sidebar .shell-layout__sidebar-wrapper:not(.shell-layout__sidebar-wrapper--hovered):not(:focus-within) .shell-layout__expanded-logo {
71
- display: none;
72
- }
121
+ @media (min-width: 992px) {
73
122
 
74
- .shell-layout--collapsed-sidebar .shell-layout__sidebar-wrapper:not(.shell-layout__sidebar-wrapper--hovered):not(:focus-within) .shell-layout__toggle {
75
- display: none;
76
- }
123
+ .shell-layout--mobile-navigation-active .shell-layout__nav {
124
+ transform: none;
125
+ box-shadow: none
126
+ }
77
127
  }
78
128
 
129
+ .shell-layout--mobile-navigation-active .shell-layout__mobile-nav-backdrop {
130
+ display: block;
131
+ }
132
+
79
133
  @media (min-width: 992px) {
80
134
 
81
- .shell-layout--collapsed-sidebar {
82
- grid-template-columns: var(--collapsed-sidebar-width) 1fr
83
- }
135
+ .shell-layout--mobile-navigation-active .shell-layout__mobile-nav-backdrop {
136
+ display: none
84
137
  }
138
+ }
85
139
 
86
- .shell-layout--hide-sidebar {
87
- grid-template-columns: 1fr;
88
- grid-template-areas:
89
- "banner"
90
- "main";
140
+ .shell-layout__header {
141
+ position: relative;
142
+ display: none;
143
+ width: calc(100% + var(--s-space-8));
144
+ padding-top: var(--s-space-8);
145
+ padding-right: var(--s-space-16);
146
+ padding-bottom: var(--s-space-8);
147
+ padding-left: var(--s-space-16);
148
+ justify-content: space-between;
149
+ align-items: center;
150
+ border-bottom: 0.0625rem solid var(--s-border-default);
151
+ color: var(--swirl-shell-text-color);
152
+ grid-area: header;
91
153
  }
92
154
 
93
155
  @media (min-width: 992px) {
94
156
 
95
- .shell-layout--hide-sidebar {
96
- grid-template-columns: 1fr
157
+ .shell-layout__header {
158
+ display: flex
97
159
  }
98
160
  }
99
161
 
100
- .shell-layout__banner {
101
- grid-area: banner;
162
+ .shell-layout__skip-link {
163
+ position: absolute;
164
+ z-index: 9;
165
+ top: 0;
166
+ left: 0;
167
+ padding: var(--s-space-4);
168
+ border: none;
169
+ color: var(--swirl-shell-text-color);
170
+ background-color: var(--swirl-shell-background);
171
+ font: inherit;
172
+ cursor: pointer;
102
173
  }
103
174
 
104
- .shell-layout__sidebar-wrapper {
105
- position: absolute;
106
- z-index: 2;
175
+ .shell-layout__skip-link:not(:focus):not(:active) {
176
+ position: absolute;
177
+ overflow: hidden;
178
+ width: 1px;
179
+ height: 1px;
180
+ white-space: nowrap;
181
+ clip: rect(0 0 0 0);
182
+ -webkit-clip-path: inset(50%);
183
+ clip-path: inset(50%);
184
+ }
185
+
186
+ .shell-layout__header-left {
187
+ display: flex;
188
+ flex-basis: 8rem;
189
+ flex-shrink: 0;
190
+ gap: var(--s-space-8);
191
+ }
192
+
193
+ .shell-layout__header-right {
194
+ display: flex;
195
+ flex-basis: 8rem;
196
+ flex-shrink: 0;
197
+ justify-content: flex-end;
198
+ align-items: center;
199
+ gap: var(--s-space-8);
200
+ }
201
+
202
+ .shell-layout__logo {
203
+ display: flex;
204
+ flex-grow: 1;
205
+ justify-content: center;
206
+ align-items: center;
207
+ }
208
+
209
+ .shell-layout__logo::slotted(img) {
210
+ max-height: 1.75rem;
211
+ }
212
+
213
+ .shell-layout__header-tool {
214
+ position: relative;
215
+ width: 2.25rem;
216
+ height: 2.25rem;
217
+ padding: var(--s-space-8);
218
+ border: none;
219
+ border-radius: var(--s-border-radius-sm);
220
+ color: var(--swirl-shell-text-color);
221
+ background-color: var(--s-surface-sunken-default);
222
+ font: inherit;
223
+ cursor: pointer;
224
+ }
225
+
226
+ .shell-layout__header-tool:hover {
227
+ background-color: var(--s-surface-sunken-hovered);
228
+ }
229
+
230
+ .shell-layout__header-tool:active {
231
+ background-color: var(--s-surface-sunken-pressed);
232
+ }
233
+
234
+ .shell-layout__header-tool:focus {
235
+ outline: none;
236
+ }
237
+
238
+ .shell-layout__header-tool:focus-visible {
239
+ box-shadow: 0 0 0 0.125rem var(--s-focus-default);
240
+ }
241
+
242
+ .shell-layout__header-tool swirl-badge {
243
+ --swirl-badge-border-color: var(--s-surface-sunken-default);
244
+
245
+ position: absolute;
246
+ right: 0;
247
+ bottom: 0;
248
+ transform: translate3d(0.1875rem, 0, 0);
249
+ }
250
+
251
+ .shell-layout__sidebar-toggle {
252
+ display: none;
253
+ }
254
+
255
+ @media (min-width: 992px) {
256
+
257
+ .shell-layout__sidebar-toggle {
258
+ display: block
259
+ }
260
+ }
261
+
262
+ .shell-layout__navigation-toggle:hover swirl-icon-menu {
263
+ display: none;
264
+ }
265
+
266
+ .shell-layout__navigation-toggle:hover swirl-icon-double-arrow-left {
267
+ display: inline-flex;
268
+ }
269
+
270
+ .shell-layout__navigation-toggle swirl-icon-double-arrow-right,
271
+ .shell-layout__navigation-toggle swirl-icon-double-arrow-left {
272
+ display: none;
273
+ }
274
+
275
+ .shell-layout__nav {
276
+ position: fixed;
277
+ z-index: 9;
107
278
  top: 0;
108
279
  bottom: 0;
109
280
  left: 0;
281
+ overflow: auto;
110
282
  width: 100%;
111
- max-width: var(--extended-sidebar-width);
112
- min-height: 0;
113
- flex-basis: var(--extended-sidebar-width);
114
- flex-shrink: 0;
115
- transition: max-width 0.2s, transform 0.2s;
116
- grid-area: sidebar;
283
+ max-width: 18.75rem;
284
+ color: var(--swirl-shell-text-color);
285
+ background-color: var(--s-surface-overlay-default);
286
+ transition: transform 0.2s, box-shadow 0.2s;
287
+ transform: translate3d(-100%, 0, 0);
288
+ grid-area: nav;
117
289
  }
118
290
 
119
291
  @media (min-width: 992px) {
120
292
 
121
- .shell-layout__sidebar-wrapper {
122
- position: relative;
293
+ .shell-layout__nav {
294
+ position: static;
295
+ max-width: none;
296
+ padding-top: 0;
297
+ padding-right: var(--s-space-4);
298
+ padding-bottom: var(--s-space-8);
299
+ padding-left: var(--s-space-12);
300
+ background-color: var(--swirl-shell-background);
301
+ transform: none;
302
+ box-shadow: none;
123
303
  inset: auto
124
304
  }
125
305
  }
126
306
 
127
- .shell-layout__sidebar {
307
+ .shell-layout__mobile-header {
128
308
  display: flex;
129
- width: var(--extended-sidebar-width);
130
- height: 100%;
131
- border-right: var(--s-border-width-default) solid var(--s-border-default);
132
- flex-direction: column;
133
- transition: box-shadow 0.2s, width 0.2s;
134
- box-shadow: 0 0.75rem 2rem rgba(25, 26, 28, 0.12),
135
- 0 0.25rem 0.75rem rgba(25, 26, 28, 0.08);
309
+ min-height: 3.5rem;
310
+ margin-bottom: var(--s-space-8);
311
+ padding-top: var(--s-space-8);
312
+ padding-right: var(--s-space-16);
313
+ padding-bottom: var(--s-space-8);
314
+ padding-left: var(--s-space-16);
315
+ justify-content: space-between;
316
+ align-items: center;
317
+ border-bottom: 0.0625rem solid var(--s-border-default);
136
318
  }
137
319
 
138
- @media (min-width: 992px) {
320
+ .shell-layout__mobile-header::slotted(img) {
321
+ max-height: 1.75rem;
322
+ }
139
323
 
140
- .shell-layout__sidebar {
141
- box-shadow: none
142
- }
324
+ .shell-layout__mobile-header .shell-layout__header-tool {
325
+ background-color: var(--s-surface-overlay-default);
143
326
  }
144
327
 
145
- .shell-layout__header {
146
- flex-shrink: 0;
147
- border-bottom: var(--s-border-width-default) solid var(--s-border-default);
148
- background-color: var(--s-background-default);
328
+ .shell-layout__mobile-header .shell-layout__header-tool:hover {
329
+ background-color: var(--s-surface-overlay-hovered);
330
+ }
331
+
332
+ .shell-layout__mobile-header .shell-layout__header-tool:active {
333
+ background-color: var(--s-surface-overlay-pressed);
334
+ }
335
+
336
+ @media (min-width: 992px) {
337
+
338
+ .shell-layout__mobile-header {
339
+ display: none
149
340
  }
341
+ }
150
342
 
151
- .shell-layout__logo-bar {
343
+ .shell-layout__mobile-header-tools {
152
344
  display: flex;
153
- overflow: hidden;
345
+ justify-content: flex-end;
154
346
  align-items: center;
155
- height: 4.5rem;
347
+ gap: var(--s-space-8);
156
348
  }
157
349
 
158
- .shell-layout__expanded-logo {
159
- padding-right: var(--s-space-12);
160
- padding-left: var(--s-space-12);
161
- flex-grow: 1;
350
+ .shell-layout__nav-body {
351
+ padding: var(--s-space-8);
162
352
  }
163
353
 
164
- .shell-layout__collapsed-logo {
165
- display: none;
166
- padding-right: var(--s-space-12);
167
- padding-left: var(--s-space-12);
168
- flex-grow: 1;
354
+ .shell-layout__nav-body::slotted(* ul) {
355
+ margin: 0;
356
+ padding: 0;
357
+ list-style: none;
358
+ }
359
+
360
+ .shell-layout__nav-body::slotted(* li) {
361
+ display: flex;
362
+ }
363
+
364
+ @media (min-width: 992px) {
365
+
366
+ .shell-layout__nav-body {
367
+ padding: 0
169
368
  }
369
+ }
170
370
 
171
- .shell-layout__toggle {
172
- padding-right: var(--s-space-16);
173
- padding-left: var(--s-space-12);
174
- flex-grow: 0;
175
- flex-shrink: 0;
371
+ .shell-layout__mobile-nav-backdrop {
372
+ position: fixed;
373
+ z-index: 8;
374
+ display: none;
375
+ background-color: rgba(0, 0, 0, 0.25);
376
+ animation: shell-layout-backdrop-fade-in 0.2s;
377
+ inset: 0;
176
378
  }
177
379
 
178
- .shell-layout__mobile-toggle {
179
- position: absolute;
180
- z-index: 2;
181
- top: var(--s-space-12);
182
- left: calc(100% + var(--s-space-16));
380
+ .shell-layout__main {
381
+ overflow: hidden;
382
+ grid-area: main;
183
383
  }
184
384
 
185
385
  @media (min-width: 992px) {
186
386
 
187
- .shell-layout__mobile-toggle {
188
- display: none
387
+ .shell-layout__main {
388
+ width: calc(100% + var(--s-space-8));
389
+ border: 0.0625rem solid var(--s-border-default);
390
+ border-radius: var(--s-border-radius-sm)
189
391
  }
190
392
  }
191
393
 
192
- .shell-layout__main-navigation {
193
- overflow: auto;
194
- flex-grow: 1;
195
- background-color: var(--s-background-default);
394
+ .shell-layout__sidebar {
395
+ position: relative;
396
+ display: none;
397
+ grid-area: sidebar;
196
398
  }
197
399
 
198
- .shell-layout__main {
199
- min-height: 0;
200
- background-color: var(--s-background-default);
201
- grid-area: main;
400
+ @media (min-width: 992px) {
401
+
402
+ .shell-layout__sidebar {
403
+ display: block
202
404
  }
405
+ }
203
406
 
204
- .shell-layout__main > *,
205
- .shell-layout__main ::slotted(*) {
206
- height: 100%;
407
+ @media (min-width: 1440px) {
408
+
409
+ .shell-layout__sidebar {
410
+ overflow: hidden
411
+ }
207
412
  }
208
413
 
209
- .shell-layout__backdrop {
210
- position: fixed;
414
+ .shell-layout__sidebar-body {
211
415
  z-index: 1;
212
- background-color: rgba(0, 0, 0, 0.4);
213
- animation: shell-layout-backdrop-fade-in 0.1s;
214
- inset: 0;
416
+ display: flex;
417
+ width: var(--swirl-shell-sidebar-width);
418
+ height: 100%;
419
+ border-radius: var(--s-border-radius-sm);
420
+ background-color: var(--s-background-default);
421
+ flex-direction: column;
215
422
  }
216
423
 
217
424
  @media (min-width: 992px) {
218
425
 
219
- .shell-layout__backdrop {
220
- display: none
426
+ .shell-layout__sidebar-body {
427
+ position: absolute;
428
+ top: 0;
429
+ right: 0;
430
+ bottom: 0;
431
+ transition: transform 0.2s;
432
+ transform: translate3d(calc(100% + var(--s-space-24)), 0, 0);
433
+ box-shadow: var(--s-shadow-level-3)
434
+ }
435
+ }
436
+
437
+ @media (min-width: 1440px) {
438
+
439
+ .shell-layout__sidebar-body {
440
+ position: relative;
441
+ transform: none;
442
+ box-shadow: none;
443
+ inset: auto
221
444
  }
222
445
  }
223
446
 
224
- .shell-layout__backdrop--fading {
225
- animation: shell-layout-backdrop-fade-out 0.2s;
447
+ .shell-layout__sidebar-app-bar {
448
+ flex-grow: 0;
449
+ flex-shrink: 0;
450
+ border-bottom: var(--s-border-width-default) solid var(--s-border-default);
451
+ }
452
+
453
+ .shell-layout__sidebar-content {
454
+ overflow: auto;
455
+ flex-grow: 1;
226
456
  }
227
457
 
228
458
  @keyframes shell-layout-backdrop-fade-in {
@@ -233,12 +463,3 @@
233
463
  opacity: 1;
234
464
  }
235
465
  }
236
-
237
- @keyframes shell-layout-backdrop-fade-out {
238
- from {
239
- opacity: 1;
240
- }
241
- to {
242
- opacity: 0;
243
- }
244
- }