@scalewing/react 1.45.0 → 1.47.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 (63) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/README.md +105 -3
  3. package/dist/app-shell.test-support.d.ts +5 -0
  4. package/dist/app-shell.test-support.js +45 -0
  5. package/dist/components/AppShell.d.ts +12 -0
  6. package/dist/components/AppShell.js +48 -0
  7. package/dist/components/Button.d.ts +14 -1
  8. package/dist/components/Button.js +5 -2
  9. package/dist/components/FileField.d.ts +18 -2
  10. package/dist/components/FileField.js +26 -22
  11. package/dist/components/ListGroup.d.ts +8 -3
  12. package/dist/components/ListGroup.js +13 -5
  13. package/dist/components/NavCount.d.ts +12 -5
  14. package/dist/components/NavCount.js +9 -4
  15. package/dist/components/SectionNav.d.ts +2 -1
  16. package/dist/components/SectionNav.js +3 -19
  17. package/dist/components/Select.d.ts +8 -5
  18. package/dist/components/Select.js +7 -4
  19. package/dist/components/app-shell/AppShellDrawer.d.ts +24 -0
  20. package/dist/components/app-shell/AppShellDrawer.js +17 -0
  21. package/dist/components/app-shell/AppShellLink.d.ts +14 -0
  22. package/dist/components/app-shell/AppShellLink.js +27 -0
  23. package/dist/components/app-shell/AppShellNav.d.ts +15 -0
  24. package/dist/components/app-shell/AppShellNav.js +29 -0
  25. package/dist/components/app-shell/AppShellSidebar.d.ts +18 -0
  26. package/dist/components/app-shell/AppShellSidebar.js +18 -0
  27. package/dist/components/app-shell/types.d.ts +87 -0
  28. package/dist/components/app-shell/types.js +1 -0
  29. package/dist/components/app-shell/validate.d.ts +6 -0
  30. package/dist/components/app-shell/validate.js +52 -0
  31. package/dist/components/file-field/ChosenFile.d.ts +45 -0
  32. package/dist/components/file-field/ChosenFile.js +48 -0
  33. package/dist/components/file-field/file-field-checks.d.ts +5 -2
  34. package/dist/components/file-field/file-field-checks.js +7 -2
  35. package/dist/components/nav-items.d.ts +21 -0
  36. package/dist/components/nav-items.js +26 -0
  37. package/dist/components/select/select-naming.d.ts +34 -0
  38. package/dist/components/select/select-naming.js +22 -0
  39. package/dist/css/css-app-shell-drawer.d.ts +2 -0
  40. package/dist/css/css-app-shell-drawer.js +91 -0
  41. package/dist/css/css-app-shell-nav.d.ts +3 -0
  42. package/dist/css/css-app-shell-nav.js +167 -0
  43. package/dist/css/css-app-shell.d.ts +4 -0
  44. package/dist/css/css-app-shell.js +150 -0
  45. package/dist/css/css-button-width.d.ts +11 -0
  46. package/dist/css/css-button-width.js +36 -0
  47. package/dist/css/css-button.js +3 -0
  48. package/dist/css/css-components.js +3 -0
  49. package/dist/css/css-count-pill.d.ts +7 -0
  50. package/dist/css/css-count-pill.js +42 -12
  51. package/dist/css/css-file-field-compact.d.ts +2 -0
  52. package/dist/css/css-file-field-compact.js +106 -0
  53. package/dist/css/css-file-field.js +4 -0
  54. package/dist/css/css-list-tiles.d.ts +6 -0
  55. package/dist/css/css-list-tiles.js +50 -0
  56. package/dist/css/css-list.js +5 -1
  57. package/dist/css/stylesheet.js +2 -0
  58. package/dist/index.d.ts +4 -1
  59. package/dist/index.js +3 -0
  60. package/dist/list-options.d.ts +12 -5
  61. package/dist/list-options.js +19 -5
  62. package/dist/styles.css +443 -7
  63. package/package.json +1 -1
package/dist/styles.css CHANGED
@@ -967,6 +967,19 @@ body {
967
967
  .sw-button-xs { min-height: 28px; padding-inline: 10px; }
968
968
  .sw-button-sm { min-height: 32px; padding-inline: 12px; }
969
969
  .sw-button-md { min-height: 44px; padding-inline: 16px; }
970
+ .sw-button-full {
971
+ width: 100%;
972
+ }
973
+
974
+ .sw-inline > .sw-button-full {
975
+ flex: 1 1 0;
976
+ min-width: 0;
977
+ }
978
+
979
+ .sw-inline.sw-wrap > .sw-button-full {
980
+ flex: 1 1 auto;
981
+ width: auto;
982
+ }
970
983
  .sw-button-group { align-items: center; display: flex; flex-wrap: wrap; gap: var(--sw-space-2); min-width: 0; }
971
984
  .sw-button-group-start { justify-content: flex-start; }
972
985
  .sw-button-group-end { justify-content: flex-end; }
@@ -3018,6 +3031,31 @@ body {
3018
3031
  white-space: nowrap;
3019
3032
  }
3020
3033
 
3034
+ .sw-list-group-tiles > .sw-list {
3035
+ display: grid;
3036
+ gap: var(--sw-space-3);
3037
+ }
3038
+
3039
+ .sw-list-group-tiles-2 > .sw-list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
3040
+ .sw-list-group-tiles-3 > .sw-list { grid-template-columns: repeat(3, minmax(0, 1fr)); }
3041
+ .sw-list-group-tiles-4 > .sw-list { grid-template-columns: repeat(4, minmax(0, 1fr)); }
3042
+
3043
+ .sw-list-group-tiles > .sw-list > .sw-list-item {
3044
+ background: var(--sw-color-surface);
3045
+ border: 1px solid var(--sw-color-border);
3046
+ border-radius: var(--sw-radius-md);
3047
+ min-width: 0;
3048
+ overflow: clip;
3049
+ }
3050
+
3051
+ @media not all and (min-width: 48rem) {
3052
+ .sw-list-group-tiles > .sw-list { grid-template-columns: minmax(0, 1fr); }
3053
+ }
3054
+
3055
+ @media (forced-colors: active) {
3056
+ .sw-list-group-tiles > .sw-list > .sw-list-item { border-color: CanvasText; }
3057
+ }
3058
+
3021
3059
  .sw-file-field-frame {
3022
3060
  border: 1px solid var(--sw-color-border);
3023
3061
  border-radius: var(--sw-radius-md);
@@ -3147,6 +3185,83 @@ body {
3147
3185
  margin-inline-start: auto;
3148
3186
  }
3149
3187
 
3188
+ .sw-file-field-actions {
3189
+ display: flex;
3190
+ flex: none;
3191
+ flex-wrap: wrap;
3192
+ gap: var(--sw-space-2);
3193
+ margin-inline-start: auto;
3194
+ }
3195
+
3196
+ .sw-file-field-compact.sw-file-field-chosen {
3197
+ flex-wrap: nowrap;
3198
+ gap: var(--sw-space-1);
3199
+ min-height: var(--sw-control-md-min-height);
3200
+ padding-block: 0;
3201
+ padding-inline: 0 var(--sw-space-1);
3202
+ }
3203
+
3204
+ .sw-file-field-compact .sw-file-field-zone {
3205
+ justify-content: flex-start;
3206
+ padding: var(--sw-space-2) var(--sw-space-4);
3207
+ text-align: start;
3208
+ }
3209
+
3210
+ .sw-file-field-pick {
3211
+ align-items: center;
3212
+ appearance: none;
3213
+ background: transparent;
3214
+ border: 0;
3215
+ border-radius: inherit;
3216
+ box-sizing: border-box;
3217
+ color: var(--sw-color-text);
3218
+ cursor: pointer;
3219
+ display: flex;
3220
+ flex: 1 1 auto;
3221
+ font-family: var(--sw-font-sans);
3222
+ gap: var(--sw-space-3);
3223
+ margin: 0;
3224
+ min-height: var(--sw-control-md-min-height);
3225
+ min-width: 0;
3226
+ padding-block: var(--sw-space-1);
3227
+ padding-inline: var(--sw-space-1) var(--sw-space-2);
3228
+ text-align: start;
3229
+ }
3230
+
3231
+ .sw-file-field-pick:focus { outline: none; }
3232
+
3233
+ .sw-file-field-pick:focus-visible {
3234
+ outline: var(--sw-focus-ring-width) solid var(--sw-color-accent);
3235
+ outline-offset: calc(-1 * var(--sw-focus-ring-width));
3236
+ }
3237
+
3238
+ .sw-file-field-pick:disabled { cursor: not-allowed; }
3239
+
3240
+ .sw-file-field-pick .sw-file-field-name {
3241
+ font-weight: 400;
3242
+ min-width: 0;
3243
+ overflow: hidden;
3244
+ overflow-wrap: normal;
3245
+ text-overflow: ellipsis;
3246
+ white-space: nowrap;
3247
+ }
3248
+
3249
+ /* With no thumbnail or mark, the name starts where a text field's words do. */
3250
+ .sw-file-field-pick > .sw-file-field-name:first-child { margin-inline-start: var(--sw-space-3); }
3251
+
3252
+ .sw-file-field-compact .sw-file-field-preview,
3253
+ .sw-file-field-compact .sw-file-field-icon { margin-inline-start: var(--sw-space-1); }
3254
+
3255
+ .sw-file-field-remove { flex: none; }
3256
+
3257
+ @media (forced-colors: active) {
3258
+ .sw-file-field-pick { color: ButtonText; }
3259
+ .sw-file-field-pick:disabled { color: GrayText; }
3260
+ }
3261
+
3262
+ /* Disabled, the row fades as its Remove does. */
3263
+ .sw-file-field-pick:disabled { opacity: var(--sw-disabled-opacity); }
3264
+
3150
3265
  @media (forced-colors: active) {
3151
3266
  .sw-file-field-frame { border-color: CanvasText; }
3152
3267
  .sw-field-invalid .sw-file-field-frame { border-color: Mark; }
@@ -3467,7 +3582,8 @@ body {
3467
3582
  }
3468
3583
 
3469
3584
  [data-theme] .sw-section-nav-count,
3470
- [data-theme] .sw-nav-count {
3585
+ [data-theme] .sw-nav-count,
3586
+ [data-theme] .sw-app-shell-count {
3471
3587
  align-items: center;
3472
3588
  background: var(--sw-color-danger);
3473
3589
  border-radius: var(--sw-radius-pill);
@@ -3486,16 +3602,28 @@ body {
3486
3602
  }
3487
3603
 
3488
3604
  /*
3489
- * NavCount's `tone="accent"`: a count that is news, not work waiting (what
3490
- * was added since the person last looked), is the accent fill with its
3491
- * on-colour figures (4.5:1 in every palette, as a primary Button's label).
3492
- * One class more specific than the pill, so it wins in any order.
3605
+ * `tone="accent"` (NavCount, an AppShell item's `countTone`): a count that
3606
+ * is news, not work waiting (what was added since the person last looked),
3607
+ * is the accent fill with its on-colour figures (4.5:1 in every palette, as
3608
+ * a primary Button's label). `tone="warning"`: work that needs the person
3609
+ * but is not urgent is amber, the warning tint with the warning ink (a
3610
+ * warning Notice's, 4.5:1 on the tint in every palette) inside the warning
3611
+ * edge a warning Badge draws. One class more specific than the pill, so
3612
+ * each wins in any order.
3493
3613
  */
3494
- [data-theme] .sw-nav-count.sw-nav-count-accent {
3614
+ [data-theme] .sw-nav-count.sw-nav-count-accent,
3615
+ [data-theme] .sw-app-shell-count.sw-app-shell-count-accent {
3495
3616
  background: var(--sw-color-accent);
3496
3617
  color: var(--sw-color-onAccent);
3497
3618
  }
3498
3619
 
3620
+ [data-theme] .sw-nav-count.sw-nav-count-warning,
3621
+ [data-theme] .sw-app-shell-count.sw-app-shell-count-warning {
3622
+ background: color-mix(in srgb, var(--sw-color-warning) 10%, var(--sw-color-surface));
3623
+ border: 1px solid var(--sw-color-warning);
3624
+ color: color-mix(in srgb, var(--sw-color-warning) 70%, var(--sw-color-text));
3625
+ }
3626
+
3499
3627
  /*
3500
3628
  * A Nav link holding a count lays out as SectionNav's link does: the words
3501
3629
  * and the pill centred on one line a space-2 apart (the space text node
@@ -3513,7 +3641,8 @@ body {
3513
3641
 
3514
3642
  @media (forced-colors: active) {
3515
3643
  [data-theme] .sw-section-nav-count,
3516
- [data-theme] .sw-nav-count { border: 1px solid CanvasText; }
3644
+ [data-theme] .sw-nav-count,
3645
+ [data-theme] .sw-app-shell-count { border: 1px solid CanvasText; }
3517
3646
  }
3518
3647
 
3519
3648
  .sw-bar-chart {
@@ -4177,6 +4306,313 @@ body {
4177
4306
  [data-theme] .sw-section-nav-link[aria-current] { border-color: Highlight; color: CanvasText; }
4178
4307
  }
4179
4308
 
4309
+ .sw-app-shell {
4310
+ min-height: 100vh;
4311
+ min-height: 100dvh;
4312
+ }
4313
+
4314
+ .sw-app-shell-bar {
4315
+ align-items: center;
4316
+ display: flex;
4317
+ gap: var(--sw-space-2);
4318
+ }
4319
+
4320
+ .sw-app-shell-bar-title {
4321
+ flex: 1 1 auto;
4322
+ min-width: 0;
4323
+ }
4324
+
4325
+ .sw-app-shell-bar-end {
4326
+ align-items: center;
4327
+ display: flex;
4328
+ flex: none;
4329
+ gap: var(--sw-space-2);
4330
+ }
4331
+
4332
+ .sw-button.sw-app-shell-menu {
4333
+ flex: none;
4334
+ padding-inline: 0;
4335
+ }
4336
+
4337
+ .sw-button-xs.sw-app-shell-menu { min-width: var(--sw-control-xs-min-height); }
4338
+ .sw-button-sm.sw-app-shell-menu { min-width: var(--sw-control-sm-min-height); }
4339
+ .sw-button-md.sw-app-shell-menu { min-width: var(--sw-control-md-min-height); }
4340
+
4341
+ @media (pointer: coarse) {
4342
+ .sw-button.sw-app-shell-menu {
4343
+ min-height: var(--sw-control-md-min-height);
4344
+ min-width: var(--sw-control-md-min-height);
4345
+ }
4346
+ }
4347
+
4348
+ .sw-app-shell-main {
4349
+ display: block;
4350
+ min-width: 0;
4351
+ }
4352
+
4353
+ .sw-app-shell-sidebar,
4354
+ .sw-app-shell-sidebar .sw-app-shell-rail-slot {
4355
+ display: none;
4356
+ }
4357
+
4358
+ .sw-app-shell-header,
4359
+ .sw-app-shell-footer {
4360
+ flex: none;
4361
+ padding: var(--sw-space-3);
4362
+ }
4363
+
4364
+ .sw-app-shell-footer {
4365
+ border-top: 1px solid var(--sw-color-border);
4366
+ }
4367
+
4368
+ .sw-app-shell-nav {
4369
+ box-sizing: border-box;
4370
+ display: flex;
4371
+ flex: 1 1 auto;
4372
+ flex-direction: column;
4373
+ gap: var(--sw-space-4);
4374
+ min-height: 0;
4375
+ overflow-y: auto;
4376
+ overscroll-behavior: contain;
4377
+ padding: var(--sw-space-2) var(--sw-space-3);
4378
+ }
4379
+
4380
+ .sw-app-shell-group {
4381
+ display: flex;
4382
+ flex-direction: column;
4383
+ gap: var(--sw-space-1);
4384
+ }
4385
+
4386
+ .sw-app-shell-group-label {
4387
+ color: var(--sw-color-muted);
4388
+ font-family: var(--sw-font-sans);
4389
+ font-size: 13px;
4390
+ font-weight: 600;
4391
+ letter-spacing: -0.08px;
4392
+ line-height: 18px;
4393
+ margin: 0;
4394
+ padding-inline: var(--sw-space-2);
4395
+ }
4396
+
4397
+ .sw-app-shell-list {
4398
+ display: flex;
4399
+ flex-direction: column;
4400
+ gap: var(--sw-space-1);
4401
+ list-style: none;
4402
+ margin: 0;
4403
+ padding: 0;
4404
+ }
4405
+
4406
+ .sw-app-shell-item > .sw-tooltip-anchor {
4407
+ display: flex;
4408
+ }
4409
+
4410
+ [data-theme] .sw-app-shell-link {
4411
+ align-items: center;
4412
+ border: 2px solid transparent;
4413
+ border-radius: var(--sw-radius-sm);
4414
+ box-sizing: border-box;
4415
+ color: var(--sw-color-text);
4416
+ display: flex;
4417
+ flex: 1 1 auto;
4418
+ font-family: var(--sw-font-sans);
4419
+ font-size: 15px;
4420
+ font-weight: 500;
4421
+ gap: var(--sw-space-3);
4422
+ letter-spacing: -0.2px;
4423
+ line-height: 20px;
4424
+ min-height: var(--sw-control-sm-min-height);
4425
+ padding: var(--sw-space-1) var(--sw-space-2);
4426
+ text-decoration: none;
4427
+ }
4428
+
4429
+ [data-theme] .sw-app-shell-link:hover {
4430
+ background: color-mix(in srgb, var(--sw-color-muted) 12%, transparent);
4431
+ }
4432
+
4433
+ [data-theme] .sw-app-shell-link:focus-visible {
4434
+ outline: var(--sw-focus-ring-width) solid var(--sw-color-accent);
4435
+ outline-offset: calc(-1 * var(--sw-focus-ring-width));
4436
+ }
4437
+
4438
+ [data-theme] .sw-app-shell-link[aria-current] {
4439
+ background: color-mix(in srgb, var(--sw-color-muted) 18%, transparent);
4440
+ font-weight: 600;
4441
+ }
4442
+
4443
+ .sw-app-shell-icon {
4444
+ display: inline-flex;
4445
+ flex: none;
4446
+ }
4447
+
4448
+ .sw-app-shell-label {
4449
+ flex: 1 1 auto;
4450
+ min-width: 0;
4451
+ overflow-wrap: anywhere;
4452
+ }
4453
+
4454
+ .sw-app-shell-count {
4455
+ flex: none;
4456
+ }
4457
+
4458
+ @media (pointer: coarse) {
4459
+ [data-theme] .sw-app-shell-link { min-height: var(--sw-control-md-min-height); }
4460
+ }
4461
+
4462
+ @media (forced-colors: active) {
4463
+ [data-theme] .sw-app-shell-link { color: LinkText; }
4464
+ [data-theme] .sw-app-shell-link[aria-current] { border-color: Highlight; color: CanvasText; }
4465
+ }
4466
+
4467
+ @media (min-width: 64rem) {
4468
+ .sw-app-shell {
4469
+ align-items: start;
4470
+ display: grid;
4471
+ grid-template-columns: auto minmax(0, 1fr);
4472
+ }
4473
+
4474
+ .sw-app-shell-bar {
4475
+ display: none;
4476
+ }
4477
+
4478
+ .sw-app-shell-sidebar {
4479
+ background: var(--sw-color-surface);
4480
+ border-inline-end: 1px solid var(--sw-color-border);
4481
+ box-sizing: border-box;
4482
+ display: flex;
4483
+ flex-direction: column;
4484
+ height: 100vh;
4485
+ height: 100dvh;
4486
+ position: sticky;
4487
+ top: 0;
4488
+ width: calc(var(--sw-control-md-min-height) + 2 * var(--sw-space-3) + 1px);
4489
+ }
4490
+
4491
+ @media not all and (min-width: 75rem) {
4492
+ .sw-app-shell-sidebar .sw-app-shell-slot {
4493
+ display: none;
4494
+ }
4495
+
4496
+ .sw-app-shell-sidebar .sw-app-shell-rail-slot {
4497
+ display: block;
4498
+ }
4499
+
4500
+ .sw-app-shell-sidebar .sw-app-shell-label,
4501
+ .sw-app-shell-sidebar .sw-app-shell-group-label { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
4502
+
4503
+ .sw-app-shell-sidebar .sw-app-shell-nav {
4504
+ gap: var(--sw-space-2);
4505
+ }
4506
+
4507
+ .sw-app-shell-sidebar .sw-app-shell-group + .sw-app-shell-group {
4508
+ border-top: 1px solid var(--sw-color-border);
4509
+ padding-top: var(--sw-space-2);
4510
+ }
4511
+
4512
+ [data-theme] .sw-app-shell-sidebar .sw-app-shell-link {
4513
+ justify-content: center;
4514
+ min-height: var(--sw-control-md-min-height);
4515
+ padding: 0;
4516
+ position: relative;
4517
+ }
4518
+
4519
+ .sw-app-shell-sidebar .sw-app-shell-count {
4520
+ inset-block-start: 0;
4521
+ inset-inline-end: 0;
4522
+ position: absolute;
4523
+ }
4524
+ }
4525
+ }
4526
+
4527
+ @media (min-width: 75rem) {
4528
+ .sw-app-shell-sidebar {
4529
+ width: 15rem;
4530
+ }
4531
+ }
4532
+
4533
+ .sw-app-shell-drawer {
4534
+ background: var(--sw-color-surface);
4535
+ border: 0;
4536
+ border-inline-end: 1px solid var(--sw-color-border);
4537
+ box-sizing: border-box;
4538
+ color: var(--sw-color-text);
4539
+ height: 100%;
4540
+ inset-block: 0;
4541
+ inset-inline: 0 auto;
4542
+ margin: 0;
4543
+ max-height: none;
4544
+ max-width: calc(100% - var(--sw-space-8));
4545
+ overflow: hidden;
4546
+ padding: env(safe-area-inset-top, 0px) 0 env(safe-area-inset-bottom, 0px);
4547
+ padding-inline-start: env(safe-area-inset-left, 0px);
4548
+ width: 20rem;
4549
+ }
4550
+
4551
+ .sw-app-shell-drawer:dir(rtl) {
4552
+ padding-inline-start: env(safe-area-inset-right, 0px);
4553
+ }
4554
+
4555
+ .sw-app-shell-drawer[open] {
4556
+ animation: sw-app-shell-drawer-in var(--sw-motion-default) var(--sw-motion-easing);
4557
+ display: flex;
4558
+ flex-direction: column;
4559
+ }
4560
+
4561
+ .sw-app-shell-drawer[open]:dir(rtl) {
4562
+ animation-name: sw-app-shell-drawer-in-rtl;
4563
+ }
4564
+
4565
+ @keyframes sw-app-shell-drawer-in {
4566
+ from { translate: -100% 0; }
4567
+ }
4568
+
4569
+ @keyframes sw-app-shell-drawer-in-rtl {
4570
+ from { translate: 100% 0; }
4571
+ }
4572
+
4573
+ .sw-app-shell-drawer::backdrop {
4574
+ background: color-mix(in srgb, var(--sw-color-text) 28%, transparent);
4575
+ }
4576
+
4577
+ .sw-app-shell-drawer-top {
4578
+ align-items: center;
4579
+ display: flex;
4580
+ flex: none;
4581
+ gap: var(--sw-space-2);
4582
+ padding: var(--sw-space-3) var(--sw-space-3) 0;
4583
+ }
4584
+
4585
+ .sw-app-shell-drawer-top .sw-app-shell-header {
4586
+ flex: 1 1 auto;
4587
+ min-width: 0;
4588
+ padding: 0;
4589
+ }
4590
+
4591
+ .sw-button.sw-app-shell-close {
4592
+ flex: none;
4593
+ padding-inline: 0;
4594
+ }
4595
+
4596
+ .sw-button-xs.sw-app-shell-close { min-width: var(--sw-control-xs-min-height); }
4597
+ .sw-button-sm.sw-app-shell-close { min-width: var(--sw-control-sm-min-height); }
4598
+ .sw-button-md.sw-app-shell-close { min-width: var(--sw-control-md-min-height); }
4599
+
4600
+ @media (pointer: coarse) {
4601
+ .sw-button.sw-app-shell-close {
4602
+ min-height: var(--sw-control-md-min-height);
4603
+ min-width: var(--sw-control-md-min-height);
4604
+ }
4605
+ }
4606
+
4607
+ @media (prefers-reduced-motion: reduce) {
4608
+ .sw-app-shell-drawer[open],
4609
+ .sw-app-shell-drawer[open]:dir(rtl) { animation: none; }
4610
+ }
4611
+
4612
+ @media (forced-colors: active) {
4613
+ .sw-app-shell-drawer { border-inline-end-color: CanvasText; }
4614
+ }
4615
+
4180
4616
  .sw-dialog {
4181
4617
  background: var(--sw-glass-fill);
4182
4618
  border: 1px solid var(--sw-glass-border);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@scalewing/react",
3
- "version": "1.45.0",
3
+ "version": "1.47.0",
4
4
  "description": "Scalewing DOM components and package-owned CSS utilities.",
5
5
  "type": "module",
6
6
  "license": "MIT",