@dodlhuat/basix 1.3.2 → 1.3.4

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 (119) hide show
  1. package/README.md +13 -7
  2. package/css/accordion.scss +0 -5
  3. package/css/badge.scss +9 -6
  4. package/css/bottom-sheet.scss +3 -8
  5. package/css/breadcrumb.scss +6 -15
  6. package/css/button.scss +63 -16
  7. package/css/calendar.scss +0 -54
  8. package/css/card.scss +0 -5
  9. package/css/carousel.scss +0 -3
  10. package/css/chart.scss +0 -25
  11. package/css/chat-bubbles.scss +0 -15
  12. package/css/checkbox.scss +3 -2
  13. package/css/chips.scss +13 -7
  14. package/css/code-viewer.scss +1 -5
  15. package/css/colors.scss +4 -0
  16. package/css/context-menu.scss +4 -6
  17. package/css/datepicker.scss +4 -7
  18. package/css/docs.scss +0 -8
  19. package/css/dropdown.scss +15 -1
  20. package/css/editor.scss +1 -23
  21. package/css/file-uploader.scss +2 -2
  22. package/css/flyout-menu.scss +66 -44
  23. package/css/form.scss +0 -28
  24. package/css/gallery.scss +2 -3
  25. package/css/group-picker.scss +5 -35
  26. package/css/icons.scss +0 -3
  27. package/css/lightbox.scss +2 -4
  28. package/css/mixins.scss +8 -0
  29. package/css/modal.scss +24 -3
  30. package/css/parameters.scss +6 -1
  31. package/css/popover.scss +3 -15
  32. package/css/progress.scss +0 -6
  33. package/css/push-menu.scss +3 -28
  34. package/css/radiobutton.scss +2 -1
  35. package/css/range-slider.scss +1 -7
  36. package/css/scrollbar.scss +2 -6
  37. package/css/sidebar-nav.scss +24 -11
  38. package/css/stepper.scss +0 -4
  39. package/css/style.css +287 -89
  40. package/css/style.css.map +1 -1
  41. package/css/style.min.css +1 -1
  42. package/css/style.min.css.map +1 -1
  43. package/css/style.scss +1 -1
  44. package/css/table.scss +0 -4
  45. package/css/tabs.scss +49 -2
  46. package/css/timeline.scss +1 -13
  47. package/css/timepicker.scss +6 -7
  48. package/css/toast.scss +1 -1
  49. package/css/tooltip.scss +1 -5
  50. package/css/tree.scss +1 -1
  51. package/css/typography.scss +38 -9
  52. package/css/virtual-dropdown.scss +3 -28
  53. package/js/bottom-sheet.d.ts +3 -1
  54. package/js/bottom-sheet.js +26 -27
  55. package/js/calendar.d.ts +7 -0
  56. package/js/calendar.js +14 -33
  57. package/js/carousel.d.ts +2 -0
  58. package/js/carousel.js +13 -5
  59. package/js/chart.d.ts +4 -0
  60. package/js/chart.js +13 -31
  61. package/js/code-viewer.d.ts +1 -0
  62. package/js/code-viewer.js +4 -0
  63. package/js/context-menu.d.ts +9 -2
  64. package/js/context-menu.js +17 -14
  65. package/js/datepicker.d.ts +4 -0
  66. package/js/datepicker.js +26 -11
  67. package/js/dropdown.d.ts +4 -3
  68. package/js/dropdown.js +17 -9
  69. package/js/editor.d.ts +1 -0
  70. package/js/editor.js +9 -3
  71. package/js/file-uploader.d.ts +4 -0
  72. package/js/file-uploader.js +52 -43
  73. package/js/flyout-menu.d.ts +5 -3
  74. package/js/flyout-menu.js +23 -46
  75. package/js/gallery.d.ts +5 -0
  76. package/js/gallery.js +44 -26
  77. package/js/group-picker.d.ts +5 -0
  78. package/js/group-picker.js +12 -17
  79. package/js/lightbox.d.ts +3 -0
  80. package/js/lightbox.js +12 -6
  81. package/js/modal.d.ts +3 -1
  82. package/js/modal.js +15 -12
  83. package/js/popover.d.ts +2 -0
  84. package/js/popover.js +26 -30
  85. package/js/position.d.ts +2 -0
  86. package/js/position.js +1 -5
  87. package/js/push-menu.d.ts +2 -0
  88. package/js/push-menu.js +22 -35
  89. package/js/range-slider.d.ts +1 -0
  90. package/js/range-slider.js +5 -3
  91. package/js/scroll.d.ts +2 -0
  92. package/js/scroll.js +1 -0
  93. package/js/scrollbar.d.ts +2 -0
  94. package/js/scrollbar.js +24 -36
  95. package/js/select.d.ts +1 -0
  96. package/js/select.js +5 -10
  97. package/js/sidebar-nav.d.ts +12 -0
  98. package/js/sidebar-nav.js +47 -0
  99. package/js/stepper.d.ts +2 -0
  100. package/js/stepper.js +7 -1
  101. package/js/table.d.ts +4 -0
  102. package/js/table.js +15 -22
  103. package/js/tabs.d.ts +2 -0
  104. package/js/tabs.js +6 -14
  105. package/js/theme.d.ts +1 -0
  106. package/js/theme.js +5 -13
  107. package/js/timepicker.d.ts +3 -0
  108. package/js/timepicker.js +81 -67
  109. package/js/toast.d.ts +3 -0
  110. package/js/toast.js +24 -15
  111. package/js/tooltip.d.ts +2 -0
  112. package/js/tooltip.js +21 -19
  113. package/js/tree.d.ts +3 -0
  114. package/js/tree.js +13 -0
  115. package/js/utils.d.ts +1 -3
  116. package/js/utils.js +0 -3
  117. package/js/virtual-dropdown.d.ts +3 -0
  118. package/js/virtual-dropdown.js +25 -0
  119. package/package.json +2 -2
package/css/style.css CHANGED
@@ -131,6 +131,10 @@ body {
131
131
  background: var(--divider);
132
132
  }
133
133
 
134
+ .info-bg {
135
+ background: var(--accent-color);
136
+ }
137
+
134
138
  html, body {
135
139
  overflow: auto;
136
140
  }
@@ -285,12 +289,13 @@ p {
285
289
  }
286
290
 
287
291
  code {
288
- font-family: "Courier New", Courier, monospace;
292
+ font-family: ui-monospace, "Cascadia Code", "SF Mono", Menlo, monospace;
289
293
  font-size: 0.875em;
290
- background: var(--secondary-background);
291
- border: 1px solid var(--divider);
292
- padding: 0.15em 0.4em;
293
- border-radius: 0.2rem;
294
+ background: color-mix(in srgb, var(--accent-color) 10%, transparent);
295
+ border: 1px solid color-mix(in srgb, var(--accent-color) 20%, transparent);
296
+ color: var(--accent-color);
297
+ padding: 0.2em 0.45em;
298
+ border-radius: 0.4rem;
294
299
  }
295
300
 
296
301
  pre code {
@@ -405,7 +410,7 @@ ul li {
405
410
  list-style-type: disc;
406
411
  }
407
412
  ul li li {
408
- list-style-type: circle;
413
+ list-style-type: "· ";
409
414
  }
410
415
 
411
416
  ol li {
@@ -415,8 +420,37 @@ ol li li {
415
420
  list-style-type: lower-latin;
416
421
  }
417
422
 
423
+ li::marker {
424
+ color: var(--secondary-text);
425
+ }
426
+
427
+ ol li::marker {
428
+ font-variant-numeric: tabular-nums;
429
+ font-weight: 600;
430
+ font-size: 0.875em;
431
+ }
432
+
418
433
  li + li {
419
- margin-top: 0.25em;
434
+ margin-top: 0.4em;
435
+ }
436
+
437
+ dl {
438
+ margin-bottom: 0.6666666667rem;
439
+ }
440
+
441
+ dt {
442
+ font-weight: 600;
443
+ color: var(--primary-text);
444
+ margin-top: 0.5rem;
445
+ }
446
+ dt:first-child {
447
+ margin-top: 0;
448
+ }
449
+
450
+ dd {
451
+ padding-left: 1.5rem;
452
+ color: var(--secondary-text);
453
+ margin-top: 0.15em;
420
454
  }
421
455
 
422
456
  hr {
@@ -500,7 +534,6 @@ a:focus-visible {
500
534
  padding: 2rem;
501
535
  }
502
536
 
503
- /* Controls */
504
537
  .table-controls {
505
538
  display: flex;
506
539
  justify-content: space-between;
@@ -510,7 +543,6 @@ a:focus-visible {
510
543
  gap: 0.75rem;
511
544
  }
512
545
 
513
- /* Table Styles */
514
546
  .table-wrapper {
515
547
  overflow-x: auto;
516
548
  border: 1px solid var(--divider);
@@ -578,7 +610,6 @@ tbody tr:hover {
578
610
  background-color: var(--hover);
579
611
  }
580
612
 
581
- /* Pagination */
582
613
  .pagination {
583
614
  display: flex;
584
615
  justify-content: space-between;
@@ -630,7 +661,6 @@ tbody tr:hover {
630
661
  cursor: not-allowed;
631
662
  }
632
663
 
633
- /* Mobile Responsive Styles */
634
664
  @media (max-width: 768px) {
635
665
  .table-controls {
636
666
  flex-direction: column;
@@ -1665,7 +1695,7 @@ button:focus-visible,
1665
1695
  }
1666
1696
  button.active,
1667
1697
  .button.active {
1668
- background: var(--divider);
1698
+ background: var(--accent-color-tint);
1669
1699
  color: var(--accent-color);
1670
1700
  }
1671
1701
  button:disabled,
@@ -1812,7 +1842,7 @@ button.button-error:active:not(:disabled) {
1812
1842
  }
1813
1843
  [data-theme=dark] .button-success,
1814
1844
  [data-theme=dark] button.button-success {
1815
- color: var(--primary-text);
1845
+ color: var(--background);
1816
1846
  }
1817
1847
  [data-theme=dark] .button-success:hover:not(:disabled),
1818
1848
  [data-theme=dark] button.button-success:hover:not(:disabled) {
@@ -1822,9 +1852,13 @@ button.button-error:active:not(:disabled) {
1822
1852
  [data-theme=dark] button.button-success:active:not(:disabled) {
1823
1853
  background: color-mix(in srgb, var(--success) 70%, white);
1824
1854
  }
1855
+ [data-theme=dark] .button-success.is-loading::after,
1856
+ [data-theme=dark] button.button-success.is-loading::after {
1857
+ color: var(--background);
1858
+ }
1825
1859
  [data-theme=dark] .button-warning,
1826
1860
  [data-theme=dark] button.button-warning {
1827
- color: var(--primary-text);
1861
+ color: var(--background);
1828
1862
  }
1829
1863
  [data-theme=dark] .button-warning:hover:not(:disabled),
1830
1864
  [data-theme=dark] button.button-warning:hover:not(:disabled) {
@@ -1834,9 +1868,13 @@ button.button-error:active:not(:disabled) {
1834
1868
  [data-theme=dark] button.button-warning:active:not(:disabled) {
1835
1869
  background: color-mix(in srgb, var(--warning) 70%, white);
1836
1870
  }
1871
+ [data-theme=dark] .button-warning.is-loading::after,
1872
+ [data-theme=dark] button.button-warning.is-loading::after {
1873
+ color: var(--background);
1874
+ }
1837
1875
  [data-theme=dark] .button-error,
1838
1876
  [data-theme=dark] button.button-error {
1839
- color: var(--primary-text);
1877
+ color: var(--background);
1840
1878
  }
1841
1879
  [data-theme=dark] .button-error:hover:not(:disabled),
1842
1880
  [data-theme=dark] button.button-error:hover:not(:disabled) {
@@ -1846,16 +1884,55 @@ button.button-error:active:not(:disabled) {
1846
1884
  [data-theme=dark] button.button-error:active:not(:disabled) {
1847
1885
  background: color-mix(in srgb, var(--error) 70%, white);
1848
1886
  }
1849
- [data-theme=dark] .button-primary.is-loading::after,
1850
- [data-theme=dark] button.button-primary.is-loading::after,
1851
- [data-theme=dark] .button-success.is-loading::after,
1852
- [data-theme=dark] button.button-success.is-loading::after,
1853
- [data-theme=dark] .button-warning.is-loading::after,
1854
- [data-theme=dark] button.button-warning.is-loading::after,
1855
1887
  [data-theme=dark] .button-error.is-loading::after,
1856
1888
  [data-theme=dark] button.button-error.is-loading::after {
1889
+ color: var(--background);
1890
+ }
1891
+ [data-theme=dark] .button-primary.is-loading::after,
1892
+ [data-theme=dark] button.button-primary.is-loading::after {
1893
+ color: var(--primary-text);
1894
+ }
1895
+
1896
+ .button-sm,
1897
+ button.button-sm {
1898
+ padding: 0.35rem 0.75rem;
1899
+ font-size: 0.8125rem;
1900
+ }
1901
+
1902
+ .button-lg,
1903
+ button.button-lg {
1904
+ padding: 0.8rem 1.75rem;
1905
+ font-size: 1.0625rem;
1906
+ }
1907
+
1908
+ .button-outline,
1909
+ button.button-outline {
1910
+ background: transparent;
1911
+ border: 1px solid var(--divider);
1857
1912
  color: var(--primary-text);
1858
1913
  }
1914
+ .button-outline:hover:not(:disabled),
1915
+ button.button-outline:hover:not(:disabled) {
1916
+ background: var(--hover);
1917
+ border-color: color-mix(in srgb, var(--divider) 50%, var(--primary-text));
1918
+ }
1919
+ .button-outline:active:not(:disabled),
1920
+ button.button-outline:active:not(:disabled) {
1921
+ background: var(--secondary-background);
1922
+ }
1923
+
1924
+ .button-icon,
1925
+ button.button-icon {
1926
+ padding: 0.5rem;
1927
+ width: 2.25rem;
1928
+ height: 2.25rem;
1929
+ flex-shrink: 0;
1930
+ }
1931
+
1932
+ .button-pill,
1933
+ button.button-pill {
1934
+ border-radius: 1.6rem;
1935
+ }
1859
1936
 
1860
1937
  .modal-wrapper {
1861
1938
  position: fixed;
@@ -1936,6 +2013,42 @@ button.button-error:active:not(:disabled) {
1936
2013
  gap: 0.5rem;
1937
2014
  }
1938
2015
 
2016
+ .modal-success {
2017
+ border-color: color-mix(in srgb, var(--success) 35%, transparent);
2018
+ }
2019
+
2020
+ .modal-error {
2021
+ border-color: color-mix(in srgb, var(--error) 35%, transparent);
2022
+ }
2023
+
2024
+ .modal-warning {
2025
+ border-color: color-mix(in srgb, var(--warning) 35%, transparent);
2026
+ }
2027
+
2028
+ .modal-info {
2029
+ border-color: color-mix(in srgb, var(--accent-color) 35%, transparent);
2030
+ }
2031
+
2032
+ .modal-success .close,
2033
+ .modal-error .close,
2034
+ .modal-warning .close,
2035
+ .modal-info .close {
2036
+ color: rgba(255, 255, 255, 0.8);
2037
+ }
2038
+ .modal-success .close:hover,
2039
+ .modal-error .close:hover,
2040
+ .modal-warning .close:hover,
2041
+ .modal-info .close:hover {
2042
+ color: #fff;
2043
+ }
2044
+ .modal-success .header,
2045
+ .modal-error .header,
2046
+ .modal-warning .header,
2047
+ .modal-info .header {
2048
+ color: #fff;
2049
+ border-bottom-color: rgba(255, 255, 255, 0.2);
2050
+ }
2051
+
1939
2052
  @media screen and (max-width: 768px) {
1940
2053
  .modal-wrapper.is-visible .modal {
1941
2054
  transform: translateY(0);
@@ -3323,6 +3436,14 @@ nav li + li .push-menu-item {
3323
3436
  outline: none;
3324
3437
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--accent-color) 35%, transparent);
3325
3438
  }
3439
+ .chips .chip.clickable.selected {
3440
+ background: color-mix(in srgb, var(--accent-color) 12%, var(--background));
3441
+ color: var(--accent-color);
3442
+ border-color: color-mix(in srgb, var(--accent-color) 25%, transparent);
3443
+ }
3444
+ .chips .chip.clickable.selected:hover {
3445
+ background: color-mix(in srgb, var(--accent-color) 18%, var(--background));
3446
+ }
3326
3447
  .chips .chip.closeable {
3327
3448
  padding-right: 1.8rem;
3328
3449
  }
@@ -3509,6 +3630,16 @@ nav li + li .push-menu-item {
3509
3630
  background: var(--error);
3510
3631
  }
3511
3632
 
3633
+ [data-theme=dark] .badge-solid.badge-success {
3634
+ color: var(--background);
3635
+ }
3636
+ [data-theme=dark] .badge-solid.badge-warning {
3637
+ color: var(--background);
3638
+ }
3639
+ [data-theme=dark] .badge-solid.badge-error {
3640
+ color: var(--background);
3641
+ }
3642
+
3512
3643
  @keyframes stepper-pulse {
3513
3644
  0% {
3514
3645
  box-shadow: 0 0 0 0 color-mix(in srgb, var(--accent-color) 35%, transparent);
@@ -3853,7 +3984,7 @@ ul.tree li {
3853
3984
  user-select: none;
3854
3985
  box-shadow: 0 1px 2px rgba(56, 65, 74, 0.15);
3855
3986
  display: none;
3856
- position: absolute;
3987
+ position: fixed;
3857
3988
  z-index: 1000;
3858
3989
  box-sizing: border-box;
3859
3990
  }
@@ -4026,7 +4157,6 @@ ul.tree li {
4026
4157
  background-color: var(--accent-color-lighten);
4027
4158
  }
4028
4159
 
4029
- /* Time Picker */
4030
4160
  .datepicker-time {
4031
4161
  display: flex;
4032
4162
  align-items: center;
@@ -4100,7 +4230,6 @@ ul.tree li {
4100
4230
  outline-offset: -1px;
4101
4231
  }
4102
4232
 
4103
- /* Set Button */
4104
4233
  .datepicker-set-btn {
4105
4234
  width: 100%;
4106
4235
  padding: 0.5rem 1rem;
@@ -4119,7 +4248,6 @@ ul.tree li {
4119
4248
  opacity: 0.9;
4120
4249
  }
4121
4250
 
4122
- /* Mobile Responsiveness */
4123
4251
  @media (max-width: 640px) {
4124
4252
  .datepicker-backdrop {
4125
4253
  position: fixed;
@@ -4162,9 +4290,6 @@ ul.tree li {
4162
4290
  padding: 0.75rem 0;
4163
4291
  }
4164
4292
  }
4165
- /* Flyout menu uses its own dark palette intentionally —
4166
- it renders over any background regardless of light/dark mode.
4167
- Scoped here rather than polluting :root. */
4168
4293
  .flyout-menu,
4169
4294
  .flyout-overlay,
4170
4295
  .site-header,
@@ -4190,7 +4315,6 @@ body {
4190
4315
  min-height: 100vh;
4191
4316
  }
4192
4317
 
4193
- /* Header */
4194
4318
  .site-header {
4195
4319
  display: flex;
4196
4320
  justify-content: space-between;
@@ -4244,7 +4368,6 @@ body {
4244
4368
  font-size: 1.2rem;
4245
4369
  }
4246
4370
 
4247
- /* Flyout Overlay */
4248
4371
  .flyout-overlay {
4249
4372
  position: fixed;
4250
4373
  top: 0;
@@ -4264,21 +4387,19 @@ body {
4264
4387
  visibility: visible;
4265
4388
  }
4266
4389
 
4267
- /* Flyout Menu Base */
4268
4390
  .flyout-menu {
4269
4391
  position: fixed;
4270
- background: var(--flyout-bg);
4271
- backdrop-filter: blur(20px);
4272
- -webkit-backdrop-filter: blur(20px);
4392
+ background: rgba(10, 15, 30, 0.82);
4393
+ backdrop-filter: blur(28px) saturate(1.4);
4394
+ -webkit-backdrop-filter: blur(28px) saturate(1.4);
4273
4395
  z-index: 210;
4274
4396
  display: flex;
4275
4397
  flex-direction: column;
4276
- padding: 2rem;
4277
- box-shadow: 0 0 30px rgba(0, 0, 0, 0.5);
4398
+ padding: 1.75rem 1.5rem;
4399
+ box-shadow: 0 0 0 1px rgba(255, 255, 255, 0.06), 0 32px 80px rgba(0, 0, 0, 0.6);
4278
4400
  transition: transform var(--transition-speed) cubic-bezier(0.25, 1, 0.5, 1);
4279
4401
  }
4280
4402
 
4281
- /* Directional Variants */
4282
4403
  .flyout-from-right {
4283
4404
  top: 0;
4284
4405
  right: 0;
@@ -4301,37 +4422,53 @@ body {
4301
4422
  transform: translate(0, 0);
4302
4423
  }
4303
4424
 
4304
- /* Flyout Header */
4305
4425
  .flyout-header {
4306
4426
  display: flex;
4307
4427
  justify-content: space-between;
4308
4428
  align-items: center;
4309
- margin-bottom: 3rem;
4429
+ margin-bottom: 2.5rem;
4430
+ padding-bottom: 1.25rem;
4431
+ border-bottom: 1px solid rgba(255, 255, 255, 0.07);
4310
4432
  }
4311
4433
 
4312
4434
  .flyout-title {
4313
- font-size: 1.25rem;
4435
+ font-size: 0.65rem;
4314
4436
  font-weight: 600;
4315
- color: #94a3b8;
4437
+ color: rgba(255, 255, 255, 0.35);
4316
4438
  text-transform: uppercase;
4317
- letter-spacing: 0.1em;
4439
+ letter-spacing: 0.14em;
4318
4440
  }
4319
4441
 
4320
4442
  .close-menu {
4321
4443
  background: none;
4322
4444
  border: none;
4323
- color: var(--flyout-text);
4445
+ color: rgba(255, 255, 255, 0.4);
4324
4446
  cursor: pointer;
4325
- padding: 0.5rem;
4326
- transition: transform 0.2s, color 0.2s;
4447
+ padding: 0.3rem;
4448
+ line-height: 0;
4449
+ transition: color 0.2s;
4327
4450
  }
4328
4451
 
4329
4452
  .close-menu:hover {
4330
- transform: rotate(90deg);
4331
- color: var(--accent-color);
4453
+ color: #fff;
4454
+ }
4455
+
4456
+ .flyout-menu button {
4457
+ display: flex;
4458
+ padding: 0;
4459
+ border-radius: 0;
4460
+ background: none;
4461
+ font-size: inherit;
4462
+ font-weight: inherit;
4463
+ white-space: normal;
4464
+ transition: color 0.2s;
4465
+ }
4466
+ .flyout-menu button:hover:not(:disabled), .flyout-menu button:active:not(:disabled), .flyout-menu button.active {
4467
+ background: none;
4468
+ transform: none;
4469
+ box-shadow: none;
4332
4470
  }
4333
4471
 
4334
- /* Flyout Links */
4335
4472
  .flyout-links {
4336
4473
  list-style: none;
4337
4474
  flex-grow: 1;
@@ -4352,7 +4489,7 @@ body {
4352
4489
  border: none;
4353
4490
  font-size: 2rem;
4354
4491
  font-weight: 600;
4355
- color: var(--flyout-text);
4492
+ color: rgba(255, 255, 255, 0.6);
4356
4493
  text-decoration: none;
4357
4494
  cursor: pointer;
4358
4495
  font-family: inherit;
@@ -4368,28 +4505,33 @@ body {
4368
4505
  transform: translateY(0);
4369
4506
  }
4370
4507
 
4371
- .flyout-links a:hover,
4372
- .submenu-toggle:hover {
4508
+ .flyout-links > li > a:hover,
4509
+ .flyout-links > li > .submenu-toggle:hover {
4510
+ color: #fff;
4511
+ }
4512
+
4513
+ .submenu-toggle.active {
4373
4514
  color: var(--accent-color);
4374
4515
  }
4375
4516
 
4376
4517
  .chevron {
4377
- transition: transform 0.3s;
4378
- opacity: 0.7;
4518
+ flex-shrink: 0;
4519
+ opacity: 0.5;
4520
+ transition: transform 0.3s cubic-bezier(0.16, 1, 0.3, 1), opacity 0.2s;
4379
4521
  }
4380
4522
 
4381
4523
  .submenu-toggle.active .chevron {
4382
4524
  transform: rotate(180deg);
4525
+ opacity: 1;
4383
4526
  }
4384
4527
 
4385
- /* Submenu */
4386
4528
  .submenu {
4387
4529
  list-style: none;
4388
4530
  max-height: 0;
4389
4531
  overflow: hidden;
4390
4532
  transition: max-height 0.3s ease-out;
4391
4533
  padding-left: 1rem;
4392
- border-left: 1px solid rgba(255, 255, 255, 0.1);
4534
+ border-left: 1px solid rgba(255, 255, 255, 0.15);
4393
4535
  margin-top: 0;
4394
4536
  }
4395
4537
 
@@ -4406,29 +4548,36 @@ body {
4406
4548
  .submenu a {
4407
4549
  font-size: 1.25rem;
4408
4550
  font-weight: 400;
4409
- color: #cbd5e1;
4410
- transform: none !important; /* parent `.flyout-menu.is-open .flyout-links a` slides in; submenu items must not */
4551
+ color: rgba(255, 255, 255, 0.45);
4552
+ transform: none !important;
4553
+ transition: color 0.2s !important;
4411
4554
  transition-delay: 0s !important;
4412
4555
  }
4556
+ .submenu a:hover {
4557
+ color: #fff;
4558
+ }
4413
4559
 
4414
4560
  .submenu .submenu-toggle {
4415
4561
  font-size: 1.25rem;
4416
4562
  font-weight: 400;
4417
- color: #cbd5e1;
4563
+ color: rgba(255, 255, 255, 0.45);
4418
4564
  transform: none !important;
4419
4565
  transition-delay: 0s !important;
4420
4566
  padding: 0;
4421
4567
  margin: 0;
4422
4568
  }
4569
+ .submenu .submenu-toggle:hover {
4570
+ color: #fff;
4571
+ }
4423
4572
 
4424
- /* Flyout Footer */
4425
4573
  .flyout-footer {
4426
- padding-top: 2rem;
4427
- border-top: 1px solid var(--flyout-border);
4428
- color: #64748b;
4429
- font-size: 0.9rem;
4574
+ padding-top: 1.25rem;
4575
+ border-top: 1px solid rgba(255, 255, 255, 0.07);
4576
+ color: rgba(255, 255, 255, 0.25);
4577
+ font-size: 0.72rem;
4578
+ letter-spacing: 0.03em;
4430
4579
  opacity: 0;
4431
- transform: translateY(20px);
4580
+ transform: translateY(12px);
4432
4581
  transition: opacity 0.4s, transform 0.4s;
4433
4582
  transition-delay: var(--delay);
4434
4583
  }
@@ -4438,7 +4587,6 @@ body {
4438
4587
  transform: translateY(0);
4439
4588
  }
4440
4589
 
4441
- /* Mobile Responsiveness */
4442
4590
  @media (max-width: 480px) {
4443
4591
  :root {
4444
4592
  --menu-width: 100%;
@@ -4446,7 +4594,6 @@ body {
4446
4594
  .main-content h1 {
4447
4595
  font-size: 2rem;
4448
4596
  }
4449
- /* Force Fullscreen for all directions */
4450
4597
  .flyout-from-right,
4451
4598
  .flyout-from-left,
4452
4599
  .flyout-from-top {
@@ -4463,7 +4610,6 @@ body {
4463
4610
  .flyout-menu.is-open {
4464
4611
  transform: translate(0, 0) !important;
4465
4612
  }
4466
- /* Reset Top Menu Horizontal Layout to Vertical for Mobile */
4467
4613
  .flyout-from-top .flyout-links {
4468
4614
  flex-direction: column;
4469
4615
  align-items: stretch;
@@ -4475,7 +4621,6 @@ body {
4475
4621
  .flyout-from-top .flyout-links > li > a,
4476
4622
  .flyout-from-top .flyout-links > li > .submenu-toggle {
4477
4623
  font-size: 2rem;
4478
- /* Restore larger size */
4479
4624
  justify-content: space-between;
4480
4625
  }
4481
4626
  .flyout-from-top .submenu {
@@ -4497,7 +4642,6 @@ body {
4497
4642
  .flyout-from-top .submenu a {
4498
4643
  font-size: 1.25rem;
4499
4644
  justify-content: space-between;
4500
- /* Match default behavior */
4501
4645
  }
4502
4646
  }
4503
4647
  .tabs-container {
@@ -4519,6 +4663,7 @@ body {
4519
4663
 
4520
4664
  .tabs-list {
4521
4665
  display: flex;
4666
+ align-items: center;
4522
4667
  margin: 0;
4523
4668
  padding: 0;
4524
4669
  overflow-x: auto;
@@ -4529,6 +4674,7 @@ body {
4529
4674
  }
4530
4675
 
4531
4676
  .tab-item {
4677
+ margin-top: 0;
4532
4678
  padding: 0.75rem 1.25rem;
4533
4679
  cursor: pointer;
4534
4680
  font-size: 0.875rem;
@@ -4547,6 +4693,11 @@ body {
4547
4693
  font-weight: 600;
4548
4694
  border-bottom-color: var(--accent-color);
4549
4695
  }
4696
+ .tab-item:focus-visible {
4697
+ outline: 2px solid var(--accent-color);
4698
+ outline-offset: -2px;
4699
+ border-radius: 0.4rem 0.4rem 0 0;
4700
+ }
4550
4701
 
4551
4702
  .tabs-content {
4552
4703
  padding: 1.5rem;
@@ -4566,6 +4717,7 @@ body {
4566
4717
  }
4567
4718
  .tabs-container.tabs-vertical .tabs-list {
4568
4719
  flex-direction: column;
4720
+ align-items: stretch;
4569
4721
  }
4570
4722
  .tabs-container.tabs-vertical .tab-item {
4571
4723
  width: 100%;
@@ -4577,6 +4729,9 @@ body {
4577
4729
  border-left-color: var(--accent-color);
4578
4730
  font-weight: 600;
4579
4731
  }
4732
+ .tabs-container.tabs-vertical .tab-item:focus-visible {
4733
+ border-radius: 0 0.4rem 0.4rem 0;
4734
+ }
4580
4735
  .tabs-container.tabs-vertical .tabs-content {
4581
4736
  flex: 1;
4582
4737
  }
@@ -4603,8 +4758,33 @@ body {
4603
4758
  color: #fff;
4604
4759
  border-bottom-color: transparent;
4605
4760
  }
4761
+ .tabs-container.tabs-pills .tab-item:focus-visible {
4762
+ border-radius: 2rem;
4763
+ }
4606
4764
 
4607
4765
  @media (max-width: 768px) {
4766
+ .tab-item {
4767
+ padding: 0.875rem 1.25rem;
4768
+ }
4769
+ .tabs-content {
4770
+ padding: 1rem;
4771
+ }
4772
+ .tabs-header {
4773
+ position: relative;
4774
+ }
4775
+ .tabs-header::after {
4776
+ content: "";
4777
+ position: absolute;
4778
+ right: 0;
4779
+ top: 0;
4780
+ bottom: 1px;
4781
+ width: 2.5rem;
4782
+ background: linear-gradient(to right, transparent, var(--primary-bg));
4783
+ pointer-events: none;
4784
+ }
4785
+ .tabs-container.tabs-pills .tabs-header::after {
4786
+ bottom: 0;
4787
+ }
4608
4788
  .tabs-container.tabs-vertical {
4609
4789
  flex-direction: column;
4610
4790
  }
@@ -4616,6 +4796,7 @@ body {
4616
4796
  .tabs-container.tabs-vertical .tabs-list {
4617
4797
  flex-direction: row;
4618
4798
  overflow-x: auto;
4799
+ align-items: center;
4619
4800
  }
4620
4801
  .tabs-container.tabs-vertical .tab-item {
4621
4802
  width: auto;
@@ -5086,7 +5267,6 @@ body {
5086
5267
  color: #d4d4d4;
5087
5268
  }
5088
5269
 
5089
- /* Syntax Highlighting — VS Code Dark+ palette */
5090
5270
  .keyword {
5091
5271
  color: #569cd6;
5092
5272
  }
@@ -5455,6 +5635,16 @@ body {
5455
5635
  pointer-events: auto;
5456
5636
  transform: translateY(0);
5457
5637
  }
5638
+ .dropdown-container.drop-up > .dropdown-menu {
5639
+ top: auto;
5640
+ bottom: 100%;
5641
+ margin-top: 0;
5642
+ margin-bottom: 6px;
5643
+ transform: translateY(8px);
5644
+ }
5645
+ .dropdown-container.drop-up.active > .dropdown-menu {
5646
+ transform: translateY(0);
5647
+ }
5458
5648
  .dropdown-container .dropdown-menu {
5459
5649
  position: absolute;
5460
5650
  top: 100%;
@@ -6109,7 +6299,6 @@ body {
6109
6299
  cursor: not-allowed;
6110
6300
  }
6111
6301
 
6112
- /* ── Editor Component ───────────────────────────────────────────────── */
6113
6302
  .editor {
6114
6303
  background: var(--secondary-background);
6115
6304
  border: 1px solid var(--divider);
@@ -6120,7 +6309,6 @@ body {
6120
6309
  overflow: hidden;
6121
6310
  }
6122
6311
 
6123
- /* ── Toolbar ───────────────────────────────────────────────────────── */
6124
6312
  .editor-toolbar {
6125
6313
  display: flex;
6126
6314
  align-items: center;
@@ -6136,7 +6324,6 @@ body {
6136
6324
  display: none;
6137
6325
  }
6138
6326
 
6139
- /* SVG icon sizing */
6140
6327
  .editor-toolbar .icon-svg {
6141
6328
  fill: currentColor;
6142
6329
  display: block;
@@ -6146,7 +6333,6 @@ body {
6146
6333
  flex-shrink: 0;
6147
6334
  }
6148
6335
 
6149
- /* Button base */
6150
6336
  .editor-toolbar button {
6151
6337
  display: inline-flex;
6152
6338
  align-items: center;
@@ -6189,7 +6375,6 @@ body {
6189
6375
  background: var(--accent-color);
6190
6376
  }
6191
6377
 
6192
- /* Button clusters — pill-shaped groups */
6193
6378
  .toolbar-group {
6194
6379
  display: flex;
6195
6380
  align-items: center;
@@ -6203,7 +6388,6 @@ body {
6203
6388
  border-radius: 0.18rem;
6204
6389
  }
6205
6390
 
6206
- /* Block-format select — reset all global form overrides */
6207
6391
  .editor-block-select {
6208
6392
  width: auto;
6209
6393
  flex-shrink: 0;
@@ -6236,13 +6420,11 @@ body {
6236
6420
  font-weight: 400;
6237
6421
  }
6238
6422
 
6239
- /* Separators: invisible spacers — visual grouping comes from .toolbar-group */
6240
6423
  .toolbar-separator {
6241
6424
  width: 0.35rem;
6242
6425
  flex-shrink: 0;
6243
6426
  }
6244
6427
 
6245
- /* Right-pinned actions */
6246
6428
  .toolbar-end {
6247
6429
  display: flex;
6248
6430
  align-items: center;
@@ -6255,7 +6437,6 @@ body {
6255
6437
  display: none;
6256
6438
  }
6257
6439
 
6258
- /* Variant button states — scoped to avoid !important */
6259
6440
  .editor-toolbar button.toolbar-btn-accent {
6260
6441
  background: color-mix(in srgb, var(--accent-color) 10%, transparent);
6261
6442
  color: var(--accent-color);
@@ -6269,7 +6450,6 @@ body {
6269
6450
  color: var(--error);
6270
6451
  }
6271
6452
 
6272
- /* ── Editor Body ───────────────────────────────────────────────────── */
6273
6453
  .editor-body {
6274
6454
  display: flex;
6275
6455
  flex: 1;
@@ -6363,7 +6543,6 @@ body {
6363
6543
  font-weight: 700;
6364
6544
  }
6365
6545
 
6366
- /* ── Side Panel ────────────────────────────────────────────────────── */
6367
6546
  .editor-side {
6368
6547
  width: 320px;
6369
6548
  min-width: 240px;
@@ -6509,7 +6688,6 @@ body {
6509
6688
  text-underline-offset: 2px;
6510
6689
  }
6511
6690
 
6512
- /* ── Footer ────────────────────────────────────────────────────────── */
6513
6691
  .editor-footer {
6514
6692
  display: flex;
6515
6693
  align-items: center;
@@ -6553,7 +6731,6 @@ body {
6553
6731
  box-shadow: 0 1px 0 var(--divider);
6554
6732
  }
6555
6733
 
6556
- /* ── Responsive ────────────────────────────────────────────────────── */
6557
6734
  @media screen and (max-width: 768px) {
6558
6735
  .editor-body {
6559
6736
  flex-direction: column;
@@ -6597,7 +6774,6 @@ body {
6597
6774
  display: none;
6598
6775
  }
6599
6776
  }
6600
- /* ── Link Popover ──────────────────────────────────────────────────── */
6601
6777
  .editor-link-popover {
6602
6778
  display: flex;
6603
6779
  flex-direction: column;
@@ -6917,9 +7093,10 @@ body {
6917
7093
  color: var(--secondary-text);
6918
7094
  transition: color 0.1s ease;
6919
7095
  }
6920
- .context-menu-item .context-menu-icon .icon-svg {
7096
+ .context-menu-item .context-menu-icon svg {
6921
7097
  width: 1rem;
6922
7098
  height: 1rem;
7099
+ fill: currentColor;
6923
7100
  }
6924
7101
  .context-menu-item .context-menu-label {
6925
7102
  flex: 1;
@@ -8484,6 +8661,10 @@ body {
8484
8661
  display: block;
8485
8662
  }
8486
8663
 
8664
+ .sidebar-close {
8665
+ display: none;
8666
+ }
8667
+
8487
8668
  @media (max-width: 768px) {
8488
8669
  .sidebar-toggle {
8489
8670
  display: flex;
@@ -8501,6 +8682,27 @@ body {
8501
8682
  .sidebar-main {
8502
8683
  margin-left: 0;
8503
8684
  }
8685
+ .sidebar-close {
8686
+ display: flex;
8687
+ align-items: center;
8688
+ justify-content: center;
8689
+ position: absolute;
8690
+ bottom: 1rem;
8691
+ left: 50%;
8692
+ transform: translateX(-50%);
8693
+ background: var(--secondary-background);
8694
+ border: none;
8695
+ border-radius: 0.4rem;
8696
+ padding: 0.5rem 1.25rem;
8697
+ cursor: pointer;
8698
+ color: var(--primary-text);
8699
+ gap: 0.4rem;
8700
+ font-size: 0.875rem;
8701
+ white-space: nowrap;
8702
+ }
8703
+ .sidebar-close:hover {
8704
+ background: var(--divider);
8705
+ }
8504
8706
  }
8505
8707
  .sidebar-nav .docs-sidebar-logo {
8506
8708
  display: flex;
@@ -8683,10 +8885,6 @@ body {
8683
8885
  }
8684
8886
  .docs-content code {
8685
8887
  font-size: 0.8em;
8686
- background: var(--secondary-background);
8687
- border: 1px solid var(--divider);
8688
- border-radius: 0.25rem;
8689
- padding: 0.1em 0.35em;
8690
8888
  }
8691
8889
  .docs-content .docs-demo {
8692
8890
  background: var(--secondary-background);