@sveltia/ui 0.41.5 → 0.42.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 (76) hide show
  1. package/dist/components/alert/alert.svelte +36 -30
  2. package/dist/components/alert/infobar.svelte +55 -45
  3. package/dist/components/bottom-navigation/bottom-navigation.svelte +21 -15
  4. package/dist/components/button/button-group.svelte +7 -5
  5. package/dist/components/button/button.svelte +274 -175
  6. package/dist/components/button/floating-action-button-wrapper.svelte +23 -18
  7. package/dist/components/button/select-button-group.svelte +57 -41
  8. package/dist/components/button/split-button.svelte +25 -18
  9. package/dist/components/calendar/calendar.svelte +103 -80
  10. package/dist/components/checkbox/checkbox-group.svelte +22 -19
  11. package/dist/components/checkbox/checkbox.svelte +91 -63
  12. package/dist/components/dialog/dialog.svelte +105 -87
  13. package/dist/components/dialog/prompt-dialog.svelte +5 -3
  14. package/dist/components/disclosure/disclosure.svelte +34 -21
  15. package/dist/components/divider/divider.svelte +18 -14
  16. package/dist/components/divider/spacer.svelte +13 -8
  17. package/dist/components/drawer/drawer.svelte +343 -190
  18. package/dist/components/grid/grid-body.svelte +16 -14
  19. package/dist/components/grid/grid-cell.svelte +5 -3
  20. package/dist/components/grid/grid-col-header.svelte +5 -3
  21. package/dist/components/grid/grid-foot.svelte +5 -3
  22. package/dist/components/grid/grid-head.svelte +5 -3
  23. package/dist/components/grid/grid-row-header.svelte +6 -4
  24. package/dist/components/grid/grid-row.svelte +6 -4
  25. package/dist/components/grid/grid.svelte +18 -12
  26. package/dist/components/icon/icon.svelte +7 -5
  27. package/dist/components/listbox/listbox.svelte +78 -61
  28. package/dist/components/listbox/option-group.svelte +15 -11
  29. package/dist/components/listbox/option.svelte +54 -39
  30. package/dist/components/menu/menu-item-group.svelte +5 -3
  31. package/dist/components/menu/menu-item.svelte +67 -51
  32. package/dist/components/menu/menu.svelte +21 -17
  33. package/dist/components/progressbar/progressbar.svelte +24 -15
  34. package/dist/components/radio/radio-group.svelte +40 -31
  35. package/dist/components/radio/radio.svelte +81 -63
  36. package/dist/components/resizable-pane/resizable-handle.svelte +60 -48
  37. package/dist/components/resizable-pane/resizable-pane-group.svelte +18 -14
  38. package/dist/components/select/combobox.svelte +135 -112
  39. package/dist/components/select/select-tags.svelte +73 -57
  40. package/dist/components/slider/slider.svelte +94 -74
  41. package/dist/components/switch/switch.svelte +115 -81
  42. package/dist/components/table/table-body.svelte +16 -14
  43. package/dist/components/table/table-cell.svelte +5 -3
  44. package/dist/components/table/table-col-header.svelte +5 -3
  45. package/dist/components/table/table-foot.svelte +5 -3
  46. package/dist/components/table/table-head.svelte +5 -3
  47. package/dist/components/table/table-row-header.svelte +6 -4
  48. package/dist/components/table/table-row.svelte +6 -4
  49. package/dist/components/table/table.svelte +18 -12
  50. package/dist/components/tabs/tab-box.svelte +9 -6
  51. package/dist/components/tabs/tab-list.svelte +91 -73
  52. package/dist/components/tabs/tab-panel.svelte +11 -7
  53. package/dist/components/tabs/tab-panels.svelte +19 -14
  54. package/dist/components/text-editor/code-editor.svelte +10 -7
  55. package/dist/components/text-editor/lexical-root.svelte +221 -160
  56. package/dist/components/text-editor/text-editor.svelte +25 -18
  57. package/dist/components/text-editor/toolbar/toolbar-wrapper.svelte +44 -37
  58. package/dist/components/text-field/number-input.svelte +87 -68
  59. package/dist/components/text-field/password-input.svelte +52 -42
  60. package/dist/components/text-field/search-bar.svelte +64 -53
  61. package/dist/components/text-field/secret-input.svelte +61 -46
  62. package/dist/components/text-field/text-area.svelte +80 -68
  63. package/dist/components/text-field/text-input.svelte +138 -106
  64. package/dist/components/toast/toast.svelte +104 -89
  65. package/dist/components/toolbar/toolbar.svelte +70 -54
  66. package/dist/components/typography/truncated-text.svelte +9 -7
  67. package/dist/components/util/app-shell.svelte +40 -493
  68. package/dist/components/util/empty-state.svelte +13 -11
  69. package/dist/components/util/group.svelte +5 -3
  70. package/dist/components/util/modal.svelte +59 -48
  71. package/dist/components/util/popup.svelte +87 -67
  72. package/dist/index.d.ts +1 -0
  73. package/dist/index.js +1 -4
  74. package/dist/services/i18n.d.ts +6 -0
  75. package/dist/services/i18n.js +19 -14
  76. package/package.json +20 -20
@@ -38,17 +38,21 @@
38
38
  aria-label={ariaLabel}
39
39
  ></div>
40
40
 
41
- <style>.divider {
42
- flex: none;
43
- background-color: var(--sui-secondary-border-color);
44
- }
45
- .divider[aria-orientation=horizontal] {
46
- margin: 8px 0;
47
- width: 100%;
48
- height: 1px;
49
- }
50
- .divider[aria-orientation=vertical] {
51
- margin: 0 8px;
52
- width: 1px;
53
- height: 100%;
54
- }</style>
41
+ <style lang="scss">
42
+ .divider {
43
+ flex: none;
44
+ background-color: var(--sui-secondary-border-color);
45
+
46
+ &[aria-orientation='horizontal'] {
47
+ margin: 8px 0;
48
+ width: 100%;
49
+ height: 1px;
50
+ }
51
+
52
+ &[aria-orientation='vertical'] {
53
+ margin: 0 8px;
54
+ width: 1px;
55
+ height: 100%;
56
+ }
57
+ }
58
+ </style>
@@ -23,11 +23,16 @@
23
23
 
24
24
  <div {...restProps} role="none" class="sui spacer {className}" class:flex></div>
25
25
 
26
- <style>.spacer.flex:not([hidden]) {
27
- display: block;
28
- flex: auto;
29
- }
30
- .spacer:not(.flex) {
31
- width: 8px;
32
- height: 8px;
33
- }</style>
26
+ <style lang="scss">
27
+ .spacer {
28
+ &.flex:not([hidden]) {
29
+ display: block; // Avoid Tailwind .flex class collisions
30
+ flex: auto;
31
+ }
32
+
33
+ &:not(.flex) {
34
+ width: 8px;
35
+ height: 8px;
36
+ }
37
+ }
38
+ </style>
@@ -138,193 +138,346 @@
138
138
  </div>
139
139
  </Modal>
140
140
 
141
- <style>.content {
142
- position: absolute;
143
- display: flex;
144
- flex-direction: column;
145
- max-width: 100dvw;
146
- max-height: 100dvh;
147
- background-color: var(--sui-secondary-background-color-translucent);
148
- box-shadow: 0 8px 16px var(--sui-popup-shadow-color);
149
- -webkit-backdrop-filter: blur(16px);
150
- backdrop-filter: blur(16px);
151
- transition-property: transform;
152
- }
153
- .content .extra-control {
154
- position: absolute;
155
- }
156
- .content .extra-control :global(button.close) {
157
- margin: 8px;
158
- }
159
- :global(dialog.open) .content {
160
- transition-duration: 150ms;
161
- transform: translateX(0%);
162
- }
163
- :global(dialog:not(.open)) .content {
164
- transition-duration: 300ms;
165
- }
166
- .content.right {
167
- inset-block: var(--sui-drawer-right-content-inset-block, 0);
168
- inset-inline: var(--sui-drawer-right-content-inset-inline, auto 0);
169
- border-start-start-radius: var(--sui-drawer-right-content-border-start-start-radius, var(--sui-drawer-content-border-start-start-radius, 4px));
170
- border-start-end-radius: var(--sui-drawer-right-content-border-start-end-radius, var(--sui-drawer-content-border-start-end-radius, 0));
171
- border-end-end-radius: var(--sui-drawer-right-content-border-end-end-radius, var(--sui-drawer-content-border-end-end-radius, 0));
172
- border-end-start-radius: var(--sui-drawer-right-content-border-end-start-radius, var(--sui-drawer-content-border-end-start-radius, 4px));
173
- }
174
- .content.right.full {
175
- border-radius: var(--sui-drawer-right-full-content-border-radius, var(--sui-drawer-right-content-border-radius, 0));
176
- }
177
- .content.right .extra-control {
178
- inset-block-start: 0;
179
- inset-inline-end: 100%;
180
- }
181
- :global(dialog:not(.open)) .content.right:dir(ltr) {
182
- transform: translateX(105%);
183
- }
184
- :global(dialog:not(.open)) .content.right:dir(rtl) {
185
- transform: translateX(-105%);
186
- }
187
- .content.left {
188
- inset-block: var(--sui-drawer-left-content-inset-block, 0);
189
- inset-inline: var(--sui-drawer-left-content-inset-inline, 0 auto);
190
- border-start-start-radius: var(--sui-drawer-left-content-border-start-start-radius, var(--sui-drawer-content-border-start-start-radius, 0));
191
- border-start-end-radius: var(--sui-drawer-left-content-border-start-end-radius, var(--sui-drawer-content-border-start-end-radius, 4px));
192
- border-end-end-radius: var(--sui-drawer-left-content-border-end-end-radius, var(--sui-drawer-content-border-end-end-radius, 4px));
193
- border-end-start-radius: var(--sui-drawer-left-content-border-end-start-radius, var(--sui-drawer-content-border-end-start-radius, 0));
194
- }
195
- .content.left.full {
196
- border-radius: var(--sui-drawer-left-full-content-border-radius, var(--sui-drawer-left-content-border-radius, 0));
197
- }
198
- .content.left .extra-control {
199
- inset-block-start: 0;
200
- inset-inline-start: 100%;
201
- }
202
- :global(dialog:not(.open)) .content.left:dir(ltr) {
203
- transform: translateX(-105%);
204
- }
205
- :global(dialog:not(.open)) .content.left:dir(rtl) {
206
- transform: translateX(105%);
207
- }
208
- :global(dialog.open) .content.vertical {
209
- transform: translateX(0%);
210
- }
211
- .content.vertical.small {
212
- width: var(--sui-drawer-vertical-small-width, var(--sui-drawer-vertical-width, 400px));
213
- max-width: var(--sui-drawer-vertical-small-max-width, var(--sui-drawer-vertical-max-width, calc(100dvw - 56px)));
214
- height: var(--sui-drawer-vertical-small-height, var(--sui-drawer-vertical-height, 100dvh));
215
- }
216
- .content.vertical.medium {
217
- width: var(--sui-drawer-vertical-medium-width, var(--sui-drawer-vertical-width, 600px));
218
- max-width: var(--sui-drawer-vertical-medium-max-width, var(--sui-drawer-vertical-max-width, calc(100dvw - 56px)));
219
- height: var(--sui-drawer-vertical-medium-height, var(--sui-drawer-vertical-height, 100dvh));
220
- }
221
- .content.vertical.large {
222
- width: var(--sui-drawer-vertical-large-width, var(--sui-drawer-vertical-width, 800px));
223
- max-width: var(--sui-drawer-vertical-large-max-width, var(--sui-drawer-vertical-max-width, calc(100dvw - 56px)));
224
- height: var(--sui-drawer-vertical-large-height, var(--sui-drawer-vertical-height, 100dvh));
225
- }
226
- .content.vertical.x-large {
227
- width: var(--sui-drawer-vertical-x-large-width, var(--sui-drawer-vertical-width, 1000px));
228
- max-width: var(--sui-drawer-vertical-x-large-max-width, var(--sui-drawer-vertical-max-width, calc(100dvw - 56px)));
229
- height: var(--sui-drawer-vertical-x-large-height, var(--sui-drawer-vertical-height, 100dvh));
230
- }
231
- .content.vertical.full {
232
- width: 100dvw;
233
- max-width: 100dvw;
234
- height: 100dvh;
235
- }
236
- .content.top {
237
- inset-block-start: var(--sui-drawer-top-content-inset-block, 0);
238
- inset-inline: var(--sui-drawer-top-content-inset-inline, 0 0);
239
- border-start-start-radius: var(--sui-drawer-top-content-border-start-start-radius, var(--sui-drawer-content-border-start-start-radius, 0));
240
- border-start-end-radius: var(--sui-drawer-top-content-border-start-end-radius, var(--sui-drawer-content-border-start-end-radius, 0));
241
- border-end-end-radius: var(--sui-drawer-top-content-border-end-end-radius, var(--sui-drawer-content-border-end-end-radius, 4px));
242
- border-end-start-radius: var(--sui-drawer-top-content-border-end-start-radius, var(--sui-drawer-content-border-end-start-radius, 4px));
243
- }
244
- .content.top.full {
245
- border-radius: var(--sui-drawer-top-full-content-border-radius, var(--sui-drawer-top-content-border-radius, 0));
246
- }
247
- .content.top .extra-control {
248
- inset-block-start: 100%;
249
- inset-inline-end: 0;
250
- }
251
- :global(dialog:not(.open)) .content.top {
252
- transform: translateY(-105%);
253
- }
254
- .content.bottom {
255
- inset-block: var(--sui-drawer-bottom-content-inset-block, auto 0);
256
- inset-inline: var(--sui-drawer-bottom-content-inset-inline, 0);
257
- border-start-start-radius: var(--sui-drawer-bottom-content-border-start-start-radius, var(--sui-drawer-content-border-start-start-radius, 4px));
258
- border-start-end-radius: var(--sui-drawer-bottom-content-border-start-end-radius, var(--sui-drawer-content-border-start-end-radius, 4px));
259
- border-end-end-radius: var(--sui-drawer-bottom-content-border-end-end-radius, var(--sui-drawer-content-border-end-end-radius, 0));
260
- border-end-start-radius: var(--sui-drawer-bottom-content-border-end-start-radius, var(--sui-drawer-content-border-end-start-radius, 0));
261
- }
262
- .content.bottom.full {
263
- border-radius: var(--sui-drawer-bottom-full-content-border-radius, var(--sui-drawer-bottom-content-border-radius, 0));
264
- }
265
- .content.bottom .extra-control {
266
- inset-block-end: 100%;
267
- inset-inline-end: 0;
268
- }
269
- :global(dialog:not(.open)) .content.bottom {
270
- transform: translateY(105%);
271
- }
272
- :global(dialog.open) .content.horizontal {
273
- transform: translateY(0%);
274
- }
275
- .content.horizontal.small {
276
- width: var(--sui-drawer-horizontal-small-width, var(--sui-drawer-horizontal-width, 100dvw));
277
- height: var(--sui-drawer-horizontal-small-height, var(--sui-drawer-horizontal-height, 400px));
278
- max-height: var(--sui-drawer-horizontal-small-max-height, var(--sui-drawer-horizontal-max-height, calc(100dvh - 56px)));
279
- }
280
- .content.horizontal.medium {
281
- width: var(--sui-drawer-horizontal-medium-width, var(--sui-drawer-horizontal-width, 100dvw));
282
- height: var(--sui-drawer-horizontal-medium-height, var(--sui-drawer-horizontal-height, 600px));
283
- max-height: var(--sui-drawer-horizontal-medium-max-height, var(--sui-drawer-horizontal-max-height, calc(100dvh - 56px)));
284
- }
285
- .content.horizontal.large {
286
- width: var(--sui-drawer-horizontal-large-width, var(--sui-drawer-horizontal-width, 100dvw));
287
- height: var(--sui-drawer-horizontal-large-height, var(--sui-drawer-horizontal-height, 800px));
288
- max-height: var(--sui-drawer-horizontal-large-max-height, var(--sui-drawer-horizontal-max-height, calc(100dvh - 56px)));
289
- }
290
- .content.horizontal.x-large {
291
- width: var(--sui-drawer-horizontal-x-large-width, var(--sui-drawer-horizontal-width, 100dvw));
292
- height: var(--sui-drawer-horizontal-x-large-height, var(--sui-drawer-horizontal-height, 1000px));
293
- max-height: var(--sui-drawer-horizontal-x-large-max-height, var(--sui-drawer-horizontal-max-height, calc(100dvh - 56px)));
294
- }
295
- .content.horizontal.full {
296
- width: 100dvw;
297
- height: 100dvh;
298
- max-height: 100dvh;
299
- }
300
-
301
- :is(.header, .footer) {
302
- display: flex;
303
- align-items: center;
304
- gap: 8px;
305
- }
306
-
307
- .header {
308
- flex-direction: var(--sui-drawer-header-flex-direction, row);
309
- box-sizing: content-box;
310
- margin: var(--sui-drawer-header-margin, 0 16px);
311
- border-width: var(--sui-drawer-header-border-width, 0 0 1px);
312
- border-color: var(--sui-drawer-header-border-color, var(--sui-secondary-border-color));
313
- padding: var(--sui-drawer-header-padding, 16px 8px);
314
- height: var(--sui-drawer-header-height, 32px);
315
- }
316
- .header .title {
317
- font-size: var(--sui-font-size-large);
318
- font-weight: var(--sui-font-weight-bold);
319
- }
320
-
321
- .footer {
322
- margin: 0 24px 24px;
323
- }
324
-
325
- .main {
326
- flex: auto;
327
- overflow: auto;
328
- padding: var(--sui-drawer-main-padding, 24px);
329
- white-space: normal;
330
- }</style>
141
+ <style lang="scss">
142
+ .content {
143
+ position: absolute;
144
+ display: flex;
145
+ flex-direction: column;
146
+ max-width: 100dvw;
147
+ max-height: 100dvh;
148
+ background-color: var(--sui-secondary-background-color-translucent);
149
+ box-shadow: 0 8px 16px var(--sui-popup-shadow-color);
150
+ -webkit-backdrop-filter: blur(16px);
151
+ backdrop-filter: blur(16px);
152
+ transition-property: transform;
153
+
154
+ .extra-control {
155
+ position: absolute;
156
+
157
+ :global {
158
+ button.close {
159
+ margin: 8px;
160
+ }
161
+ }
162
+ }
163
+
164
+ :global(dialog.open) & {
165
+ transition-duration: 150ms;
166
+ transform: translateX(0%);
167
+ }
168
+
169
+ :global(dialog:not(.open)) & {
170
+ transition-duration: 300ms;
171
+ }
172
+
173
+ &.right {
174
+ inset-block: var(--sui-drawer-right-content-inset-block, 0);
175
+ inset-inline: var(--sui-drawer-right-content-inset-inline, auto 0);
176
+ border-start-start-radius: var(
177
+ --sui-drawer-right-content-border-start-start-radius,
178
+ var(--sui-drawer-content-border-start-start-radius, 4px)
179
+ );
180
+ border-start-end-radius: var(
181
+ --sui-drawer-right-content-border-start-end-radius,
182
+ var(--sui-drawer-content-border-start-end-radius, 0)
183
+ );
184
+ border-end-end-radius: var(
185
+ --sui-drawer-right-content-border-end-end-radius,
186
+ var(--sui-drawer-content-border-end-end-radius, 0)
187
+ );
188
+ border-end-start-radius: var(
189
+ --sui-drawer-right-content-border-end-start-radius,
190
+ var(--sui-drawer-content-border-end-start-radius, 4px)
191
+ );
192
+
193
+ &.full {
194
+ border-radius: var(
195
+ --sui-drawer-right-full-content-border-radius,
196
+ var(--sui-drawer-right-content-border-radius, 0)
197
+ );
198
+ }
199
+
200
+ .extra-control {
201
+ inset-block-start: 0;
202
+ inset-inline-end: 100%;
203
+ }
204
+
205
+ :global(dialog:not(.open)) & {
206
+ &:dir(ltr) {
207
+ transform: translateX(105%);
208
+ }
209
+
210
+ &:dir(rtl) {
211
+ transform: translateX(-105%);
212
+ }
213
+ }
214
+ }
215
+
216
+ &.left {
217
+ inset-block: var(--sui-drawer-left-content-inset-block, 0);
218
+ inset-inline: var(--sui-drawer-left-content-inset-inline, 0 auto);
219
+ border-start-start-radius: var(
220
+ --sui-drawer-left-content-border-start-start-radius,
221
+ var(--sui-drawer-content-border-start-start-radius, 0)
222
+ );
223
+ border-start-end-radius: var(
224
+ --sui-drawer-left-content-border-start-end-radius,
225
+ var(--sui-drawer-content-border-start-end-radius, 4px)
226
+ );
227
+ border-end-end-radius: var(
228
+ --sui-drawer-left-content-border-end-end-radius,
229
+ var(--sui-drawer-content-border-end-end-radius, 4px)
230
+ );
231
+ border-end-start-radius: var(
232
+ --sui-drawer-left-content-border-end-start-radius,
233
+ var(--sui-drawer-content-border-end-start-radius, 0)
234
+ );
235
+
236
+ &.full {
237
+ border-radius: var(
238
+ --sui-drawer-left-full-content-border-radius,
239
+ var(--sui-drawer-left-content-border-radius, 0)
240
+ );
241
+ }
242
+
243
+ .extra-control {
244
+ inset-block-start: 0;
245
+ inset-inline-start: 100%;
246
+ }
247
+
248
+ :global(dialog:not(.open)) & {
249
+ &:dir(ltr) {
250
+ transform: translateX(-105%);
251
+ }
252
+
253
+ &:dir(rtl) {
254
+ transform: translateX(105%);
255
+ }
256
+ }
257
+ }
258
+
259
+ &.vertical {
260
+ :global(dialog.open) & {
261
+ transform: translateX(0%);
262
+ }
263
+
264
+ &.small {
265
+ width: var(--sui-drawer-vertical-small-width, var(--sui-drawer-vertical-width, 400px));
266
+ max-width: var(
267
+ --sui-drawer-vertical-small-max-width,
268
+ var(--sui-drawer-vertical-max-width, calc(100dvw - 56px))
269
+ );
270
+ height: var(--sui-drawer-vertical-small-height, var(--sui-drawer-vertical-height, 100dvh));
271
+ }
272
+
273
+ &.medium {
274
+ width: var(--sui-drawer-vertical-medium-width, var(--sui-drawer-vertical-width, 600px));
275
+ max-width: var(
276
+ --sui-drawer-vertical-medium-max-width,
277
+ var(--sui-drawer-vertical-max-width, calc(100dvw - 56px))
278
+ );
279
+ height: var(--sui-drawer-vertical-medium-height, var(--sui-drawer-vertical-height, 100dvh));
280
+ }
281
+
282
+ &.large {
283
+ width: var(--sui-drawer-vertical-large-width, var(--sui-drawer-vertical-width, 800px));
284
+ max-width: var(
285
+ --sui-drawer-vertical-large-max-width,
286
+ var(--sui-drawer-vertical-max-width, calc(100dvw - 56px))
287
+ );
288
+ height: var(--sui-drawer-vertical-large-height, var(--sui-drawer-vertical-height, 100dvh));
289
+ }
290
+
291
+ &.x-large {
292
+ width: var(--sui-drawer-vertical-x-large-width, var(--sui-drawer-vertical-width, 1000px));
293
+ max-width: var(
294
+ --sui-drawer-vertical-x-large-max-width,
295
+ var(--sui-drawer-vertical-max-width, calc(100dvw - 56px))
296
+ );
297
+ height: var(
298
+ --sui-drawer-vertical-x-large-height,
299
+ var(--sui-drawer-vertical-height, 100dvh)
300
+ );
301
+ }
302
+
303
+ &.full {
304
+ width: 100dvw;
305
+ max-width: 100dvw;
306
+ height: 100dvh;
307
+ }
308
+ }
309
+
310
+ &.top {
311
+ inset-block-start: var(--sui-drawer-top-content-inset-block, 0);
312
+ inset-inline: var(--sui-drawer-top-content-inset-inline, 0 0);
313
+ border-start-start-radius: var(
314
+ --sui-drawer-top-content-border-start-start-radius,
315
+ var(--sui-drawer-content-border-start-start-radius, 0)
316
+ );
317
+ border-start-end-radius: var(
318
+ --sui-drawer-top-content-border-start-end-radius,
319
+ var(--sui-drawer-content-border-start-end-radius, 0)
320
+ );
321
+ border-end-end-radius: var(
322
+ --sui-drawer-top-content-border-end-end-radius,
323
+ var(--sui-drawer-content-border-end-end-radius, 4px)
324
+ );
325
+ border-end-start-radius: var(
326
+ --sui-drawer-top-content-border-end-start-radius,
327
+ var(--sui-drawer-content-border-end-start-radius, 4px)
328
+ );
329
+
330
+ &.full {
331
+ border-radius: var(
332
+ --sui-drawer-top-full-content-border-radius,
333
+ var(--sui-drawer-top-content-border-radius, 0)
334
+ );
335
+ }
336
+
337
+ .extra-control {
338
+ inset-block-start: 100%;
339
+ inset-inline-end: 0;
340
+ }
341
+
342
+ :global(dialog:not(.open)) & {
343
+ transform: translateY(-105%);
344
+ }
345
+ }
346
+
347
+ &.bottom {
348
+ inset-block: var(--sui-drawer-bottom-content-inset-block, auto 0);
349
+ inset-inline: var(--sui-drawer-bottom-content-inset-inline, 0);
350
+
351
+ border-start-start-radius: var(
352
+ --sui-drawer-bottom-content-border-start-start-radius,
353
+ var(--sui-drawer-content-border-start-start-radius, 4px)
354
+ );
355
+ border-start-end-radius: var(
356
+ --sui-drawer-bottom-content-border-start-end-radius,
357
+ var(--sui-drawer-content-border-start-end-radius, 4px)
358
+ );
359
+ border-end-end-radius: var(
360
+ --sui-drawer-bottom-content-border-end-end-radius,
361
+ var(--sui-drawer-content-border-end-end-radius, 0)
362
+ );
363
+ border-end-start-radius: var(
364
+ --sui-drawer-bottom-content-border-end-start-radius,
365
+ var(--sui-drawer-content-border-end-start-radius, 0)
366
+ );
367
+
368
+ &.full {
369
+ border-radius: var(
370
+ --sui-drawer-bottom-full-content-border-radius,
371
+ var(--sui-drawer-bottom-content-border-radius, 0)
372
+ );
373
+ }
374
+
375
+ .extra-control {
376
+ inset-block-end: 100%;
377
+ inset-inline-end: 0;
378
+ }
379
+
380
+ :global(dialog:not(.open)) & {
381
+ transform: translateY(105%);
382
+ }
383
+ }
384
+
385
+ &.horizontal {
386
+ :global(dialog.open) & {
387
+ transform: translateY(0%);
388
+ }
389
+
390
+ &.small {
391
+ width: var(--sui-drawer-horizontal-small-width, var(--sui-drawer-horizontal-width, 100dvw));
392
+ height: var(
393
+ --sui-drawer-horizontal-small-height,
394
+ var(--sui-drawer-horizontal-height, 400px)
395
+ );
396
+ max-height: var(
397
+ --sui-drawer-horizontal-small-max-height,
398
+ var(--sui-drawer-horizontal-max-height, calc(100dvh - 56px))
399
+ );
400
+ }
401
+
402
+ &.medium {
403
+ width: var(
404
+ --sui-drawer-horizontal-medium-width,
405
+ var(--sui-drawer-horizontal-width, 100dvw)
406
+ );
407
+ height: var(
408
+ --sui-drawer-horizontal-medium-height,
409
+ var(--sui-drawer-horizontal-height, 600px)
410
+ );
411
+ max-height: var(
412
+ --sui-drawer-horizontal-medium-max-height,
413
+ var(--sui-drawer-horizontal-max-height, calc(100dvh - 56px))
414
+ );
415
+ }
416
+
417
+ &.large {
418
+ width: var(--sui-drawer-horizontal-large-width, var(--sui-drawer-horizontal-width, 100dvw));
419
+ height: var(
420
+ --sui-drawer-horizontal-large-height,
421
+ var(--sui-drawer-horizontal-height, 800px)
422
+ );
423
+ max-height: var(
424
+ --sui-drawer-horizontal-large-max-height,
425
+ var(--sui-drawer-horizontal-max-height, calc(100dvh - 56px))
426
+ );
427
+ }
428
+
429
+ &.x-large {
430
+ width: var(
431
+ --sui-drawer-horizontal-x-large-width,
432
+ var(--sui-drawer-horizontal-width, 100dvw)
433
+ );
434
+ height: var(
435
+ --sui-drawer-horizontal-x-large-height,
436
+ var(--sui-drawer-horizontal-height, 1000px)
437
+ );
438
+ max-height: var(
439
+ --sui-drawer-horizontal-x-large-max-height,
440
+ var(--sui-drawer-horizontal-max-height, calc(100dvh - 56px))
441
+ );
442
+ }
443
+
444
+ &.full {
445
+ width: 100dvw;
446
+ height: 100dvh;
447
+ max-height: 100dvh;
448
+ }
449
+ }
450
+ }
451
+
452
+ :is(.header, .footer) {
453
+ display: flex;
454
+ align-items: center;
455
+ gap: 8px;
456
+ }
457
+
458
+ .header {
459
+ flex-direction: var(--sui-drawer-header-flex-direction, row);
460
+ box-sizing: content-box;
461
+ margin: var(--sui-drawer-header-margin, 0 16px);
462
+ border-width: var(--sui-drawer-header-border-width, 0 0 1px);
463
+ border-color: var(--sui-drawer-header-border-color, var(--sui-secondary-border-color));
464
+ padding: var(--sui-drawer-header-padding, 16px 8px);
465
+ height: var(--sui-drawer-header-height, 32px);
466
+
467
+ .title {
468
+ font-size: var(--sui-font-size-large);
469
+ font-weight: var(--sui-font-weight-bold);
470
+ }
471
+ }
472
+
473
+ .footer {
474
+ margin: 0 24px 24px;
475
+ }
476
+
477
+ .main {
478
+ flex: auto;
479
+ overflow: auto;
480
+ padding: var(--sui-drawer-main-padding, 24px);
481
+ white-space: normal;
482
+ }
483
+ </style>
@@ -49,19 +49,21 @@
49
49
  {@render children?.()}
50
50
  </div>
51
51
 
52
- <style>[role=rowgroup] {
53
- display: table-row-group;
54
- }
52
+ <style lang="scss">
53
+ [role='rowgroup'] {
54
+ display: table-row-group;
55
+ }
55
56
 
56
- [role=row] {
57
- display: table-row;
58
- }
57
+ [role='row'] {
58
+ display: table-row;
59
+ }
59
60
 
60
- [role=columnheader] {
61
- display: table-cell;
62
- padding: 8px;
63
- color: var(--sui-secondary-foreground-color);
64
- background-color: var(--sui-secondary-background-color);
65
- font-size: var(--sui-font-size-default);
66
- text-align: start;
67
- }</style>
61
+ [role='columnheader'] {
62
+ display: table-cell;
63
+ padding: 8px;
64
+ color: var(--sui-secondary-foreground-color);
65
+ background-color: var(--sui-secondary-background-color);
66
+ font-size: var(--sui-font-size-default);
67
+ text-align: start;
68
+ }
69
+ </style>
@@ -31,6 +31,8 @@
31
31
  {@render children?.()}
32
32
  </div>
33
33
 
34
- <style>.grid-cell {
35
- display: table-cell;
36
- }</style>
34
+ <style lang="scss">
35
+ .grid-cell {
36
+ display: table-cell;
37
+ }
38
+ </style>
@@ -31,6 +31,8 @@
31
31
  {@render children?.()}
32
32
  </div>
33
33
 
34
- <style>.grid-col-header {
35
- display: table-cell;
36
- }</style>
34
+ <style lang="scss">
35
+ .grid-col-header {
36
+ display: table-cell;
37
+ }
38
+ </style>