@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/chart.scss CHANGED
@@ -1,9 +1,6 @@
1
1
  @use "properties";
2
2
  @use "parameters" as *;
3
3
 
4
- // ─── Chart color palette ────────────────────────────────────────────────────
5
- // Readable via JS: getComputedStyle(el).getPropertyValue('--chart-color-1')
6
-
7
4
  .chart {
8
5
  --chart-color-1: var(--accent-color);
9
6
  --chart-color-2: var(--success);
@@ -15,8 +12,6 @@
15
12
  --chart-color-8: #EC4899;
16
13
  }
17
14
 
18
- // ─── Wrapper ────────────────────────────────────────────────────────────────
19
-
20
15
  .chart {
21
16
  position: relative;
22
17
  width: 100%;
@@ -24,8 +19,6 @@
24
19
  color: var(--primary-text);
25
20
  font-size: 0.875rem;
26
21
 
27
- // ─── Header ───────────────────────────────────────────────────────────────
28
-
29
22
  &-header {
30
23
  margin-bottom: calc($spacing * 0.75);
31
24
  }
@@ -43,8 +36,6 @@
43
36
  margin-top: calc($spacing * 0.2);
44
37
  }
45
38
 
46
- // ─── Canvas ───────────────────────────────────────────────────────────────
47
-
48
39
  &-canvas {
49
40
  width: 100%;
50
41
  position: relative;
@@ -57,8 +48,6 @@
57
48
  overflow: visible;
58
49
  }
59
50
 
60
- // ─── Axes & grid ──────────────────────────────────────────────────────────
61
-
62
51
  .chart-axis-line {
63
52
  stroke: var(--divider);
64
53
  stroke-width: 1;
@@ -77,8 +66,6 @@
77
66
  font-family: inherit;
78
67
  }
79
68
 
80
- // ─── Line & area ──────────────────────────────────────────────────────────
81
-
82
69
  .chart-line {
83
70
  fill: none;
84
71
  stroke-linecap: round;
@@ -92,7 +79,6 @@
92
79
  animation: chart-fade-in 0.8s ease forwards;
93
80
  }
94
81
 
95
- // Dots visible by default (small), expand on hover via group
96
82
  .chart-point-dot {
97
83
  transition: r 0.15s ease;
98
84
  }
@@ -114,8 +100,6 @@
114
100
  }
115
101
  }
116
102
 
117
- // ─── Column & bar ─────────────────────────────────────────────────────────
118
-
119
103
  .chart-bar {
120
104
  transition: opacity 0.15s ease, filter 0.15s ease;
121
105
  cursor: pointer;
@@ -139,8 +123,6 @@
139
123
  }
140
124
  }
141
125
 
142
- // ─── Pie ──────────────────────────────────────────────────────────────────
143
-
144
126
  .chart-slice {
145
127
  cursor: pointer;
146
128
  transform-box: fill-box;
@@ -155,8 +137,6 @@
155
137
  }
156
138
  }
157
139
 
158
- // ─── Legend ───────────────────────────────────────────────────────────────
159
-
160
140
  &-legend {
161
141
  display: flex;
162
142
  flex-wrap: wrap;
@@ -180,7 +160,6 @@
180
160
  flex-shrink: 0;
181
161
  }
182
162
 
183
- // Pie legend variant — bigger swatches, stacked nicely
184
163
  &-pie-legend {
185
164
  display: flex;
186
165
  flex-wrap: wrap;
@@ -210,8 +189,6 @@
210
189
  margin-left: calc($spacing * 0.15);
211
190
  }
212
191
 
213
- // ─── Tooltip ──────────────────────────────────────────────────────────────
214
-
215
192
  &-tooltip {
216
193
  position: fixed;
217
194
  background: var(--primary-dark);
@@ -242,8 +219,6 @@
242
219
  }
243
220
  }
244
221
 
245
- // ─── Animations ─────────────────────────────────────────────────────────────
246
-
247
222
  @keyframes chart-draw {
248
223
  from { stroke-dashoffset: var(--path-length, 9999); }
249
224
  to { stroke-dashoffset: 0; }
@@ -5,8 +5,6 @@
5
5
  --bubble-radius: 18px;
6
6
  }
7
7
 
8
- // ── Container ─────────────────────────────────────────────────────────────────
9
-
10
8
  .chat {
11
9
  display: flex;
12
10
  flex-direction: column;
@@ -15,14 +13,11 @@
15
13
  width: 100%;
16
14
  }
17
15
 
18
- // Extra breathing room between direction changes
19
16
  .chat-message.incoming + .chat-message.outgoing,
20
17
  .chat-message.outgoing + .chat-message.incoming {
21
18
  margin-top: calc($spacing * 0.5);
22
19
  }
23
20
 
24
- // ── Message row ───────────────────────────────────────────────────────────────
25
-
26
21
  .chat-message {
27
22
  display: flex;
28
23
  align-items: flex-end;
@@ -37,7 +32,6 @@
37
32
  border-bottom-right-radius: 0;
38
33
  filter: drop-shadow(0 1px 2px rgba(0, 0, 0, 0.15));
39
34
 
40
- // Tail: right-angle at bubble's bottom-right corner, extends right
41
35
  &::after {
42
36
  content: '';
43
37
  position: absolute;
@@ -60,7 +54,6 @@
60
54
  border-bottom-left-radius: 0;
61
55
  filter: drop-shadow(0 1px 2px rgba(0, 0, 0, 0.08));
62
56
 
63
- // Tail: right-angle at bubble's bottom-left corner, extends left
64
57
  &::after {
65
58
  content: '';
66
59
  position: absolute;
@@ -75,8 +68,6 @@
75
68
  }
76
69
  }
77
70
 
78
- // ── Avatar ────────────────────────────────────────────────────────────────────
79
-
80
71
  .chat-avatar {
81
72
  flex-shrink: 0;
82
73
  width: 2rem;
@@ -98,8 +89,6 @@
98
89
  }
99
90
  }
100
91
 
101
- // ── Bubble ────────────────────────────────────────────────────────────────────
102
-
103
92
  .chat-bubble {
104
93
  position: relative;
105
94
  max-width: 72%;
@@ -114,8 +103,6 @@
114
103
  }
115
104
  }
116
105
 
117
- // ── Timestamp ─────────────────────────────────────────────────────────────────
118
-
119
106
  .chat-time {
120
107
  display: block;
121
108
  font-size: 0.68rem;
@@ -126,8 +113,6 @@
126
113
  color: inherit;
127
114
  }
128
115
 
129
- // ── Dark mode shadow ──────────────────────────────────────────────────────────
130
-
131
116
  [data-theme="dark"] {
132
117
  .chat-message.incoming .chat-bubble { filter: drop-shadow(0 1px 3px rgba(0, 0, 0, 0.35)); }
133
118
  .chat-message.outgoing .chat-bubble { filter: drop-shadow(0 1px 3px rgba(0, 0, 0, 0.4)); }
package/css/checkbox.scss CHANGED
@@ -1,5 +1,6 @@
1
1
  @use "properties";
2
2
  @use "parameters" as *;
3
+ @use "mixins" as *;
3
4
 
4
5
  .styled-checkbox {
5
6
  position: absolute;
@@ -22,7 +23,7 @@
22
23
  width: $spacing;
23
24
  height: $spacing;
24
25
  border: 2px solid var(--divider);
25
- border-radius: calc($border-radius / 2);
26
+ border-radius: $radius-sm;
26
27
  background-color: var(--background);
27
28
  margin-top: 2px;
28
29
  transition: border-color 0.15s ease, background-color 0.15s ease, box-shadow 0.15s ease;
@@ -33,7 +34,7 @@
33
34
  }
34
35
 
35
36
  &:focus-visible + label::before {
36
- box-shadow: 0 0 0 3px color-mix(in srgb, var(--accent-color) 15%, transparent);
37
+ @include focus-glow(15%);
37
38
  border-color: var(--accent-color);
38
39
  }
39
40
 
package/css/chips.scss CHANGED
@@ -1,5 +1,6 @@
1
1
  @use "properties";
2
2
  @use "parameters" as *;
3
+ @use "mixins" as *;
3
4
 
4
5
  .chips {
5
6
  display: flex;
@@ -13,7 +14,7 @@
13
14
  background: var(--secondary-background);
14
15
  color: var(--primary-text);
15
16
  padding: calc($spacing * 0.3) calc($spacing * 0.75);
16
- border-radius: calc($border-radius * 4);
17
+ border-radius: $radius-xl;
17
18
  font-size: 0.8125rem;
18
19
  font-weight: 500;
19
20
  line-height: 1.4;
@@ -36,7 +37,17 @@
36
37
 
37
38
  &:focus-visible {
38
39
  outline: none;
39
- box-shadow: 0 0 0 3px color-mix(in srgb, var(--accent-color) 35%, transparent);
40
+ @include focus-glow();
41
+ }
42
+
43
+ &.selected {
44
+ background: color-mix(in srgb, var(--accent-color) 12%, var(--background));
45
+ color: var(--accent-color);
46
+ border-color: color-mix(in srgb, var(--accent-color) 25%, transparent);
47
+
48
+ &:hover {
49
+ background: color-mix(in srgb, var(--accent-color) 18%, var(--background));
50
+ }
40
51
  }
41
52
  }
42
53
 
@@ -79,7 +90,6 @@
79
90
  }
80
91
  }
81
92
 
82
- // Accent variant
83
93
  &-accent {
84
94
  background: color-mix(in srgb, var(--accent-color) 12%, var(--background));
85
95
  color: var(--accent-color);
@@ -91,7 +101,6 @@
91
101
  }
92
102
  }
93
103
 
94
- // Success variant
95
104
  &-success {
96
105
  background: color-mix(in srgb, var(--success) 12%, var(--background));
97
106
  color: var(--success);
@@ -103,7 +112,6 @@
103
112
  }
104
113
  }
105
114
 
106
- // Warning variant
107
115
  &-warning {
108
116
  background: color-mix(in srgb, var(--warning) 12%, var(--background));
109
117
  color: var(--warning);
@@ -115,7 +123,6 @@
115
123
  }
116
124
  }
117
125
 
118
- // Error variant
119
126
  &-error {
120
127
  background: color-mix(in srgb, var(--error) 12%, var(--background));
121
128
  color: var(--error);
@@ -127,7 +134,6 @@
127
134
  }
128
135
  }
129
136
 
130
- // Outline variant
131
137
  &-outline {
132
138
  background: transparent;
133
139
  border-color: var(--divider);
@@ -1,9 +1,6 @@
1
1
  @use "properties";
2
2
  @use "parameters" as *;
3
3
 
4
- // Structural chrome uses design tokens.
5
- // Syntax highlight colors are intentional VS Code palette — left as-is.
6
-
7
4
  .code-display {
8
5
  background: #1e1e1e;
9
6
  border-radius: $border-radius;
@@ -33,7 +30,7 @@
33
30
  color: #fff;
34
31
  border: none;
35
32
  padding: calc($spacing * 0.375) calc($spacing * 0.75);
36
- border-radius: calc($border-radius / 2);
33
+ border-radius: $radius-sm;
37
34
  cursor: pointer;
38
35
  font-size: 0.75rem;
39
36
  transition: background 0.2s;
@@ -60,7 +57,6 @@
60
57
  color: #d4d4d4;
61
58
  }
62
59
 
63
- /* Syntax Highlighting — VS Code Dark+ palette */
64
60
  .keyword { color: #569cd6; }
65
61
  .string { color: #ce9178; }
66
62
  .comment { color: #6a9955; font-style: italic; }
package/css/colors.scss CHANGED
@@ -30,4 +30,8 @@ body {
30
30
 
31
31
  .default-bg {
32
32
  background: var(--divider);
33
+ }
34
+
35
+ .info-bg {
36
+ background: var(--accent-color);
33
37
  }
@@ -1,5 +1,5 @@
1
- @use "parameters" as *;
2
1
  @use "properties";
2
+ @use "parameters" as *;
3
3
 
4
4
  .context-menu {
5
5
  position: fixed;
@@ -8,7 +8,7 @@
8
8
  padding: calc($spacing * 0.375) 0;
9
9
  background: var(--background);
10
10
  border: 1px solid var(--divider);
11
- border-radius: calc($border-radius * 2.5);
11
+ border-radius: $radius-panel;
12
12
  box-shadow:
13
13
  0 8px 32px rgba(0, 0, 0, 0.12),
14
14
  0 2px 8px rgba(0, 0, 0, 0.08),
@@ -41,7 +41,6 @@
41
41
  transition: background 0.1s ease, color 0.1s ease;
42
42
  position: relative;
43
43
 
44
- // Icon slot — always present to keep label column aligned
45
44
  .context-menu-icon {
46
45
  flex-shrink: 0;
47
46
  width: 1rem;
@@ -52,9 +51,10 @@
52
51
  color: var(--secondary-text);
53
52
  transition: color 0.1s ease;
54
53
 
55
- .icon-svg {
54
+ svg {
56
55
  width: 1rem;
57
56
  height: 1rem;
57
+ fill: currentColor;
58
58
  }
59
59
  }
60
60
 
@@ -83,7 +83,6 @@
83
83
  color: var(--secondary-text);
84
84
  }
85
85
 
86
- // Hover, keyboard focus, or submenu-parent active — same treatment
87
86
  &:hover,
88
87
  &.is-focused,
89
88
  &.is-active {
@@ -124,7 +123,6 @@
124
123
  pointer-events: none;
125
124
  }
126
125
 
127
- // Submenu
128
126
  &.has-submenu {
129
127
  > .context-menu {
130
128
  position: absolute;
@@ -1,5 +1,6 @@
1
- @use "parameters" as *;
2
1
  @use "properties";
2
+ @use "parameters" as *;
3
+ @use "mixins" as *;
3
4
 
4
5
  .container {
5
6
  max-width: 800px;
@@ -15,7 +16,7 @@
15
16
  user-select: none;
16
17
  box-shadow: $shadow;
17
18
  display: none;
18
- position: absolute;
19
+ position: fixed;
19
20
  z-index: 1000;
20
21
  box-sizing: border-box;
21
22
  }
@@ -188,7 +189,6 @@
188
189
  background-color: var(--accent-color-lighten);
189
190
  }
190
191
 
191
- /* Time Picker */
192
192
  .datepicker-time {
193
193
  display: flex;
194
194
  align-items: center;
@@ -261,12 +261,10 @@
261
261
  }
262
262
 
263
263
  &:focus {
264
- outline: 2px solid var(--accent-color);
265
- outline-offset: -1px;
264
+ @include focus-ring(-1px);
266
265
  }
267
266
  }
268
267
 
269
- /* Set Button */
270
268
  .datepicker-set-btn {
271
269
  width: 100%;
272
270
  padding: calc($spacing / 2) $spacing;
@@ -286,7 +284,6 @@
286
284
  }
287
285
  }
288
286
 
289
- /* Mobile Responsiveness */
290
287
  @media (max-width: 640px) {
291
288
  .datepicker-backdrop {
292
289
  position: fixed;
package/css/docs.scss CHANGED
@@ -1,7 +1,5 @@
1
1
  @use "parameters" as *;
2
2
 
3
- // ── Sidebar content (logo + search) ──────────────────────────────────────────
4
-
5
3
  .sidebar-nav {
6
4
 
7
5
  .docs-sidebar-logo {
@@ -193,10 +191,6 @@
193
191
 
194
192
  code {
195
193
  font-size: 0.8em;
196
- background: var(--secondary-background);
197
- border: 1px solid var(--divider);
198
- border-radius: 0.25rem;
199
- padding: 0.1em 0.35em;
200
194
  }
201
195
 
202
196
  .docs-demo {
@@ -256,8 +250,6 @@
256
250
  }
257
251
  }
258
252
 
259
- // ── Landing page ─────────────────────────────────────────────────────────────
260
-
261
253
  .landing-hero {
262
254
  padding: 5rem 2rem 4rem;
263
255
  text-align: center;
package/css/dropdown.scss CHANGED
@@ -1,5 +1,5 @@
1
- @use "parameters" as *;
2
1
  @use "properties";
2
+ @use "parameters" as *;
3
3
 
4
4
  .dropdown-container {
5
5
  position: relative;
@@ -14,6 +14,20 @@
14
14
  }
15
15
  }
16
16
 
17
+ &.drop-up {
18
+ > .dropdown-menu {
19
+ top: auto;
20
+ bottom: 100%;
21
+ margin-top: 0;
22
+ margin-bottom: 6px;
23
+ transform: translateY(8px);
24
+ }
25
+
26
+ &.active > .dropdown-menu {
27
+ transform: translateY(0);
28
+ }
29
+ }
30
+
17
31
  .dropdown-menu {
18
32
  position: absolute;
19
33
  top: 100%;
package/css/editor.scss CHANGED
@@ -1,8 +1,6 @@
1
1
  @use "properties";
2
2
  @use "parameters" as *;
3
3
 
4
- /* ── Editor Component ───────────────────────────────────────────────── */
5
-
6
4
  .editor {
7
5
  background: var(--secondary-background);
8
6
  border: 1px solid var(--divider);
@@ -13,8 +11,6 @@
13
11
  overflow: hidden;
14
12
  }
15
13
 
16
- /* ── Toolbar ───────────────────────────────────────────────────────── */
17
-
18
14
  .editor-toolbar {
19
15
  display: flex;
20
16
  align-items: center;
@@ -31,7 +27,6 @@
31
27
  }
32
28
  }
33
29
 
34
- /* SVG icon sizing */
35
30
  .editor-toolbar .icon-svg {
36
31
  fill: currentColor;
37
32
  display: block;
@@ -41,7 +36,6 @@
41
36
  flex-shrink: 0;
42
37
  }
43
38
 
44
- /* Button base */
45
39
  .editor-toolbar button {
46
40
  display: inline-flex;
47
41
  align-items: center;
@@ -74,7 +68,6 @@
74
68
  background: color-mix(in srgb, var(--accent-color) 12%, transparent);
75
69
  color: var(--accent-color);
76
70
 
77
- // Subtle dot indicator beneath active button
78
71
  &::after {
79
72
  content: "";
80
73
  position: absolute;
@@ -89,7 +82,6 @@
89
82
  }
90
83
  }
91
84
 
92
- /* Button clusters — pill-shaped groups */
93
85
  .toolbar-group {
94
86
  display: flex;
95
87
  align-items: center;
@@ -104,7 +96,6 @@
104
96
  }
105
97
  }
106
98
 
107
- /* Block-format select — reset all global form overrides */
108
99
  .editor-block-select {
109
100
  width: auto;
110
101
  flex-shrink: 0;
@@ -140,13 +131,11 @@
140
131
  }
141
132
  }
142
133
 
143
- /* Separators: invisible spacers — visual grouping comes from .toolbar-group */
144
134
  .toolbar-separator {
145
135
  width: 0.35rem;
146
136
  flex-shrink: 0;
147
137
  }
148
138
 
149
- /* Right-pinned actions */
150
139
  .toolbar-end {
151
140
  display: flex;
152
141
  align-items: center;
@@ -160,7 +149,6 @@
160
149
  }
161
150
  }
162
151
 
163
- /* Variant button states — scoped to avoid !important */
164
152
  .editor-toolbar button.toolbar-btn-accent {
165
153
  background: color-mix(in srgb, var(--accent-color) 10%, transparent);
166
154
  color: var(--accent-color);
@@ -177,8 +165,6 @@
177
165
  }
178
166
  }
179
167
 
180
- /* ── Editor Body ───────────────────────────────────────────────────── */
181
-
182
168
  .editor-body {
183
169
  display: flex;
184
170
  flex: 1;
@@ -278,8 +264,6 @@
278
264
  strong { font-weight: 700; }
279
265
  }
280
266
 
281
- /* ── Side Panel ────────────────────────────────────────────────────── */
282
-
283
267
  .editor-side {
284
268
  width: 320px;
285
269
  min-width: 240px;
@@ -435,8 +419,6 @@
435
419
  }
436
420
  }
437
421
 
438
- /* ── Footer ────────────────────────────────────────────────────────── */
439
-
440
422
  .editor-footer {
441
423
  display: flex;
442
424
  align-items: center;
@@ -482,8 +464,6 @@
482
464
  }
483
465
  }
484
466
 
485
- /* ── Responsive ────────────────────────────────────────────────────── */
486
-
487
467
  @media screen and (max-width: 768px) {
488
468
  .editor-body {
489
469
  flex-direction: column;
@@ -510,7 +490,7 @@
510
490
  .editor-toolbar {
511
491
  padding: 0.3rem 0.375rem;
512
492
  gap: 0.2rem;
513
- // Fade hint for horizontal scroll
493
+
514
494
  mask-image: linear-gradient(to right, black 85%, transparent 100%);
515
495
 
516
496
  button {
@@ -538,8 +518,6 @@
538
518
  }
539
519
  }
540
520
 
541
- /* ── Link Popover ──────────────────────────────────────────────────── */
542
-
543
521
  .editor-link-popover {
544
522
  display: flex;
545
523
  flex-direction: column;
@@ -136,7 +136,7 @@
136
136
  color: var(--secondary-text);
137
137
  cursor: pointer;
138
138
  padding: 0.25rem;
139
- border-radius: calc($border-radius / 2);
139
+ border-radius: $radius-sm;
140
140
  transition: color 0.15s ease, background-color 0.15s ease;
141
141
  display: flex;
142
142
  align-items: center;
@@ -152,7 +152,7 @@
152
152
  width: 100%;
153
153
  height: 4px;
154
154
  background-color: var(--divider);
155
- border-radius: calc($border-radius / 2);
155
+ border-radius: $radius-sm;
156
156
  overflow: hidden;
157
157
  display: none;
158
158
  }