@kerebron/extension-menu 0.4.26 → 0.4.28
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.
- package/assets/custom-menu.css +404 -109
- package/assets/menu.css +68 -15
- package/esm/CustomMenuPlugin.d.ts +62 -6
- package/esm/CustomMenuPlugin.d.ts.map +1 -1
- package/esm/CustomMenuPlugin.js +913 -288
- package/esm/buildMenu.d.ts.map +1 -1
- package/esm/buildMenu.js +231 -116
- package/esm/icons.d.ts.map +1 -1
- package/esm/icons.js +96 -7
- package/esm/menu.d.ts +2 -0
- package/esm/menu.d.ts.map +1 -1
- package/esm/menu.js +20 -5
- package/esm/prompt.d.ts.map +1 -1
- package/esm/prompt.js +17 -7
- package/package.json +2 -2
package/assets/custom-menu.css
CHANGED
|
@@ -50,7 +50,7 @@
|
|
|
50
50
|
}
|
|
51
51
|
|
|
52
52
|
.kb-custom-menu__resize-handle:hover .kb-custom-menu__resize-handle-bar {
|
|
53
|
-
background: var(--kb-menu-dropdown-
|
|
53
|
+
background: var(--kb-menu-dropdown-border);
|
|
54
54
|
}
|
|
55
55
|
|
|
56
56
|
.kb-custom-menu__wrapper--resizing .kb-custom-menu__resize-handle-bar {
|
|
@@ -59,7 +59,7 @@
|
|
|
59
59
|
|
|
60
60
|
/* Toolbar */
|
|
61
61
|
.kb-custom-menu {
|
|
62
|
-
margin: 0;
|
|
62
|
+
margin: calc(-1 * var(--kb-space-sm)) 0 0 0;
|
|
63
63
|
line-height: 1;
|
|
64
64
|
font-size: var(--kb-text-sm);
|
|
65
65
|
font-family:
|
|
@@ -70,8 +70,9 @@
|
|
|
70
70
|
display: flex;
|
|
71
71
|
flex-wrap: nowrap;
|
|
72
72
|
align-items: center;
|
|
73
|
-
gap:
|
|
74
|
-
|
|
73
|
+
gap: 2px;
|
|
74
|
+
height: 56px;
|
|
75
|
+
padding: 0 var(--kb-space-sm);
|
|
75
76
|
background: var(--kb-color-surface-elevated);
|
|
76
77
|
border-bottom: 1px solid var(--kb-color-border-strong);
|
|
77
78
|
z-index: 1000;
|
|
@@ -86,21 +87,41 @@
|
|
|
86
87
|
|
|
87
88
|
.kb-custom-menu__item .kb-menu__button,
|
|
88
89
|
.kb-custom-menu__item .kb-dropdown__label {
|
|
89
|
-
min-width:
|
|
90
|
-
min-height:
|
|
91
|
-
|
|
90
|
+
min-width: 44px;
|
|
91
|
+
min-height: 44px;
|
|
92
|
+
width: 44px;
|
|
93
|
+
height: 44px;
|
|
94
|
+
padding: 0;
|
|
92
95
|
border: none;
|
|
93
96
|
background: transparent;
|
|
94
97
|
color: var(--kb-color-text);
|
|
95
98
|
cursor: pointer;
|
|
96
99
|
border-radius: var(--kb-radius-sm);
|
|
97
|
-
transition: background-color 0.2s ease;
|
|
100
|
+
transition: background-color 0.2s ease, outline-color 0.15s ease;
|
|
98
101
|
font-size: var(--kb-text-sm);
|
|
99
102
|
display: inline-flex;
|
|
100
103
|
align-items: center;
|
|
101
104
|
justify-content: center;
|
|
102
105
|
}
|
|
103
106
|
|
|
107
|
+
/* Focus styles for accessibility */
|
|
108
|
+
.kb-custom-menu__item .kb-menu__button:focus,
|
|
109
|
+
.kb-custom-menu__item .kb-dropdown__label:focus {
|
|
110
|
+
outline: 2px solid var(--kb-color-primary);
|
|
111
|
+
outline-offset: 2px;
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
.kb-custom-menu__item .kb-menu__button:focus:not(:focus-visible),
|
|
115
|
+
.kb-custom-menu__item .kb-dropdown__label:focus:not(:focus-visible) {
|
|
116
|
+
outline: none;
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
.kb-custom-menu__item .kb-menu__button:focus-visible,
|
|
120
|
+
.kb-custom-menu__item .kb-dropdown__label:focus-visible {
|
|
121
|
+
outline: 2px solid var(--kb-color-primary);
|
|
122
|
+
outline-offset: 2px;
|
|
123
|
+
}
|
|
124
|
+
|
|
104
125
|
.kb-custom-menu__item .kb-menu__button:hover,
|
|
105
126
|
.kb-custom-menu__item .kb-dropdown__label:hover {
|
|
106
127
|
background: var(--kb-color-surface-hover);
|
|
@@ -112,22 +133,73 @@
|
|
|
112
133
|
}
|
|
113
134
|
|
|
114
135
|
.kb-custom-menu__item .kb-menu__button svg {
|
|
115
|
-
width:
|
|
116
|
-
height:
|
|
136
|
+
width: 20px !important;
|
|
137
|
+
height: 20px !important;
|
|
117
138
|
fill: currentColor;
|
|
118
139
|
}
|
|
119
140
|
|
|
141
|
+
/* Center icon content vertically */
|
|
142
|
+
.kb-custom-menu__item .kb-icon {
|
|
143
|
+
display: inline-flex;
|
|
144
|
+
align-items: center;
|
|
145
|
+
justify-content: center;
|
|
146
|
+
line-height: 1;
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
/* Hide text labels in dropdown buttons - icons only in toolbar */
|
|
150
|
+
.kb-custom-menu__item .kb-dropdown__label-text {
|
|
151
|
+
display: none;
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
/* Dropdown label styling for icon-only mode */
|
|
155
|
+
.kb-custom-menu__item .kb-dropdown__label {
|
|
156
|
+
display: inline-flex;
|
|
157
|
+
align-items: center;
|
|
158
|
+
justify-content: center;
|
|
159
|
+
position: relative;
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
/* Ensure dropdown icons are visible and sized correctly */
|
|
163
|
+
.kb-custom-menu__item .kb-dropdown__label .kb-icon {
|
|
164
|
+
display: inline-flex;
|
|
165
|
+
align-items: center;
|
|
166
|
+
justify-content: center;
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
.kb-custom-menu__item .kb-dropdown__label .kb-icon svg {
|
|
170
|
+
width: 20px !important;
|
|
171
|
+
height: 20px !important;
|
|
172
|
+
fill: currentColor;
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
/* Dropdown arrow for icon-only dropdowns */
|
|
176
|
+
.kb-custom-menu__item .kb-dropdown__label:after {
|
|
177
|
+
content: '';
|
|
178
|
+
border-left: 3px solid transparent;
|
|
179
|
+
border-right: 3px solid transparent;
|
|
180
|
+
border-top: 3px solid currentColor;
|
|
181
|
+
opacity: 0.7;
|
|
182
|
+
position: absolute;
|
|
183
|
+
right: 2px;
|
|
184
|
+
bottom: 2px;
|
|
185
|
+
}
|
|
186
|
+
|
|
187
|
+
/* Remove left padding from dropdown wrapper in custom menu */
|
|
188
|
+
.kb-custom-menu__item .kb-dropdown {
|
|
189
|
+
padding: 1px 0;
|
|
190
|
+
}
|
|
191
|
+
|
|
120
192
|
/* Dropdown menus within custom menu - match toolbar dark background */
|
|
121
193
|
.kb-custom-menu .kb-dropdown__menu {
|
|
122
|
-
background: var(--kb-menu-dropdown-
|
|
123
|
-
border: 1px solid var(--kb-menu-dropdown-
|
|
194
|
+
background: var(--kb-menu-dropdown-bg);
|
|
195
|
+
border: 1px solid var(--kb-menu-dropdown-border);
|
|
124
196
|
border-radius: var(--kb-radius-lg);
|
|
125
197
|
box-shadow: 0 2px 10px rgba(0, 0, 0, 0.3);
|
|
126
198
|
padding: var(--kb-space-sm) 0;
|
|
127
199
|
}
|
|
128
200
|
|
|
129
201
|
.kb-custom-menu .kb-dropdown__item {
|
|
130
|
-
color: var(--kb-menu-dropdown-
|
|
202
|
+
color: var(--kb-menu-dropdown-text);
|
|
131
203
|
padding: var(--kb-space-sm) var(--kb-space-md);
|
|
132
204
|
font-size: var(--kb-text-sm);
|
|
133
205
|
min-height: 36px;
|
|
@@ -155,19 +227,19 @@
|
|
|
155
227
|
}
|
|
156
228
|
|
|
157
229
|
.kb-custom-menu .kb-dropdown__item:hover {
|
|
158
|
-
background:
|
|
230
|
+
background: var(--kb-menu-dropdown-hover);
|
|
159
231
|
}
|
|
160
232
|
|
|
161
233
|
/* Submenu within custom menu (e.g., Heading levels) */
|
|
162
234
|
.kb-custom-menu .kb-submenu__content {
|
|
163
|
-
background: var(--kb-menu-dropdown-
|
|
164
|
-
border: 1px solid var(--kb-menu-dropdown-
|
|
235
|
+
background: var(--kb-menu-dropdown-bg) !important;
|
|
236
|
+
border: 1px solid var(--kb-menu-dropdown-border) !important;
|
|
165
237
|
border-radius: var(--kb-radius-lg) !important;
|
|
166
238
|
box-shadow: 0 2px 10px rgba(0, 0, 0, 0.3) !important;
|
|
167
239
|
}
|
|
168
240
|
|
|
169
241
|
.kb-custom-menu .kb-submenu__label {
|
|
170
|
-
color: var(--kb-menu-dropdown-
|
|
242
|
+
color: var(--kb-menu-dropdown-text) !important;
|
|
171
243
|
}
|
|
172
244
|
|
|
173
245
|
.kb-custom-menu .kb-submenu__label:hover {
|
|
@@ -175,7 +247,7 @@
|
|
|
175
247
|
}
|
|
176
248
|
|
|
177
249
|
.kb-custom-menu .kb-submenu__label:after {
|
|
178
|
-
border-left-color: var(--kb-menu-dropdown-
|
|
250
|
+
border-left-color: var(--kb-menu-dropdown-text) !important;
|
|
179
251
|
}
|
|
180
252
|
|
|
181
253
|
/* Separator */
|
|
@@ -183,9 +255,8 @@
|
|
|
183
255
|
width: 1px;
|
|
184
256
|
height: var(--kb-space-lg);
|
|
185
257
|
background: var(--kb-color-border-strong);
|
|
186
|
-
margin: 0
|
|
258
|
+
margin: 0 8px;
|
|
187
259
|
flex-shrink: 0;
|
|
188
|
-
margin-left: auto;
|
|
189
260
|
}
|
|
190
261
|
|
|
191
262
|
/* Overflow toggle button (3-dot menu) */
|
|
@@ -193,9 +264,11 @@
|
|
|
193
264
|
display: inline-flex;
|
|
194
265
|
align-items: center;
|
|
195
266
|
justify-content: center;
|
|
196
|
-
min-width:
|
|
197
|
-
min-height:
|
|
198
|
-
|
|
267
|
+
min-width: 44px;
|
|
268
|
+
min-height: 44px;
|
|
269
|
+
width: 44px;
|
|
270
|
+
height: 44px;
|
|
271
|
+
padding: 0;
|
|
199
272
|
border: none;
|
|
200
273
|
background: transparent;
|
|
201
274
|
color: var(--kb-color-text);
|
|
@@ -203,25 +276,41 @@
|
|
|
203
276
|
border-radius: var(--kb-radius-sm);
|
|
204
277
|
margin-left: auto;
|
|
205
278
|
flex-shrink: 0;
|
|
279
|
+
transition: background-color 0.2s ease;
|
|
206
280
|
}
|
|
207
281
|
|
|
208
282
|
.kb-custom-menu__overflow-toggle:hover {
|
|
209
283
|
background: var(--kb-color-surface-hover);
|
|
210
284
|
}
|
|
211
285
|
|
|
286
|
+
.kb-custom-menu__overflow-toggle:focus {
|
|
287
|
+
outline: 2px solid var(--kb-color-primary);
|
|
288
|
+
outline-offset: 2px;
|
|
289
|
+
}
|
|
290
|
+
|
|
291
|
+
.kb-custom-menu__overflow-toggle:focus:not(:focus-visible) {
|
|
292
|
+
outline: none;
|
|
293
|
+
}
|
|
294
|
+
|
|
295
|
+
.kb-custom-menu__overflow-toggle:focus-visible {
|
|
296
|
+
outline: 2px solid var(--kb-color-primary);
|
|
297
|
+
outline-offset: 2px;
|
|
298
|
+
}
|
|
299
|
+
|
|
212
300
|
.kb-custom-menu__overflow-toggle svg {
|
|
213
301
|
width: 20px;
|
|
214
302
|
height: 20px;
|
|
215
303
|
fill: currentColor;
|
|
216
304
|
}
|
|
217
305
|
|
|
218
|
-
/* Overflow menu dropdown */
|
|
306
|
+
/* Overflow menu dropdown - Google Docs style */
|
|
219
307
|
.kb-custom-menu__overflow-menu {
|
|
220
308
|
position: absolute;
|
|
221
309
|
top: 48px;
|
|
222
310
|
right: var(--kb-space-sm);
|
|
223
|
-
|
|
224
|
-
|
|
311
|
+
width: auto;
|
|
312
|
+
min-width: 180px;
|
|
313
|
+
max-width: 320px;
|
|
225
314
|
background: var(--kb-color-surface);
|
|
226
315
|
border: 1px solid var(--kb-color-border-strong);
|
|
227
316
|
border-radius: var(--kb-radius-lg);
|
|
@@ -237,13 +326,24 @@
|
|
|
237
326
|
.kb-custom-menu__overflow-content {
|
|
238
327
|
flex: 1;
|
|
239
328
|
overflow-y: auto;
|
|
240
|
-
padding: var(--kb-space-sm)
|
|
329
|
+
padding: var(--kb-space-sm);
|
|
241
330
|
min-height: 0;
|
|
242
331
|
max-height: 800px;
|
|
243
332
|
}
|
|
244
333
|
|
|
334
|
+
/* Google Docs style grid layout for overflow menu */
|
|
335
|
+
.kb-custom-menu__overflow-content--grid {
|
|
336
|
+
display: flex;
|
|
337
|
+
flex-wrap: wrap;
|
|
338
|
+
align-items: center;
|
|
339
|
+
justify-content: flex-start;
|
|
340
|
+
gap: 2px;
|
|
341
|
+
padding: var(--kb-space-sm);
|
|
342
|
+
}
|
|
343
|
+
|
|
245
344
|
/* Overflow menu section header */
|
|
246
345
|
.kb-custom-menu__overflow-header {
|
|
346
|
+
width: 100%;
|
|
247
347
|
padding: var(--kb-space-sm) var(--kb-space-md) var(--kb-space-xs)
|
|
248
348
|
var(--kb-space-md);
|
|
249
349
|
font-size: 11px;
|
|
@@ -254,7 +354,7 @@
|
|
|
254
354
|
margin-bottom: var(--kb-space-xs);
|
|
255
355
|
}
|
|
256
356
|
|
|
257
|
-
/* Overflow menu items */
|
|
357
|
+
/* Overflow menu items - default list style */
|
|
258
358
|
.kb-custom-menu__overflow-item {
|
|
259
359
|
display: flex;
|
|
260
360
|
align-items: center;
|
|
@@ -266,12 +366,97 @@
|
|
|
266
366
|
margin: 0 var(--kb-space-sm);
|
|
267
367
|
}
|
|
268
368
|
|
|
269
|
-
|
|
369
|
+
/* Focus styles for overflow menu items */
|
|
370
|
+
.kb-custom-menu__overflow-item:focus {
|
|
371
|
+
outline: 2px solid var(--kb-color-primary);
|
|
372
|
+
outline-offset: -2px;
|
|
373
|
+
}
|
|
374
|
+
|
|
375
|
+
.kb-custom-menu__overflow-item:focus:not(:focus-visible) {
|
|
376
|
+
outline: none;
|
|
377
|
+
}
|
|
378
|
+
|
|
379
|
+
.kb-custom-menu__overflow-item:focus-visible {
|
|
380
|
+
outline: 2px solid var(--kb-color-primary);
|
|
381
|
+
outline-offset: -2px;
|
|
382
|
+
}
|
|
383
|
+
|
|
384
|
+
/* Grid style item (Google Docs style) */
|
|
385
|
+
.kb-custom-menu__overflow-item--grid {
|
|
386
|
+
display: inline-flex;
|
|
387
|
+
align-items: center;
|
|
388
|
+
justify-content: center;
|
|
389
|
+
width: 44px;
|
|
390
|
+
height: 44px;
|
|
391
|
+
padding: 6px;
|
|
392
|
+
margin: 0;
|
|
393
|
+
gap: 0;
|
|
394
|
+
flex-shrink: 0;
|
|
395
|
+
position: relative;
|
|
396
|
+
border-radius: var(--kb-radius-sm);
|
|
397
|
+
}
|
|
398
|
+
|
|
399
|
+
.kb-custom-menu__overflow-item--grid:hover {
|
|
400
|
+
background: var(--kb-color-surface-hover);
|
|
401
|
+
}
|
|
402
|
+
|
|
403
|
+
/* Dropdown items in grid have indicator - same size as regular grid items */
|
|
404
|
+
.kb-custom-menu__overflow-item--grid.kb-custom-menu__overflow-item--dropdown {
|
|
405
|
+
width: 44px;
|
|
406
|
+
min-width: 44px;
|
|
407
|
+
padding: 6px;
|
|
408
|
+
gap: 0;
|
|
409
|
+
position: relative;
|
|
410
|
+
}
|
|
411
|
+
|
|
412
|
+
/* Dropdown indicator (small down arrow) - vertically centered on right */
|
|
413
|
+
.kb-custom-menu__overflow-item-indicator {
|
|
414
|
+
position: absolute;
|
|
415
|
+
right: 2px;
|
|
416
|
+
top: 50%;
|
|
417
|
+
transform: translateY(-50%);
|
|
418
|
+
border-left: 3px solid transparent;
|
|
419
|
+
border-right: 3px solid transparent;
|
|
420
|
+
border-top: 3px solid currentColor;
|
|
421
|
+
opacity: 0.7;
|
|
422
|
+
font-size: 0;
|
|
423
|
+
line-height: 0;
|
|
424
|
+
margin-left: 0;
|
|
425
|
+
}
|
|
426
|
+
|
|
427
|
+
/* Regular list items hover */
|
|
428
|
+
.kb-custom-menu__overflow-item:not(.kb-custom-menu__overflow-item--grid):hover {
|
|
270
429
|
background: var(--kb-color-surface-hover);
|
|
271
430
|
}
|
|
272
431
|
|
|
273
|
-
|
|
274
|
-
.kb-custom-menu__overflow-item .kb-
|
|
432
|
+
/* Grid items button styles */
|
|
433
|
+
.kb-custom-menu__overflow-item--grid .kb-menu__button,
|
|
434
|
+
.kb-custom-menu__overflow-item--grid .kb-dropdown__label {
|
|
435
|
+
min-width: 44px;
|
|
436
|
+
min-height: 44px;
|
|
437
|
+
width: 44px;
|
|
438
|
+
height: 44px;
|
|
439
|
+
padding: 0;
|
|
440
|
+
border: none;
|
|
441
|
+
background: transparent;
|
|
442
|
+
color: var(--kb-color-text);
|
|
443
|
+
cursor: pointer;
|
|
444
|
+
border-radius: 0;
|
|
445
|
+
display: flex;
|
|
446
|
+
align-items: center;
|
|
447
|
+
justify-content: center;
|
|
448
|
+
}
|
|
449
|
+
|
|
450
|
+
.kb-custom-menu__overflow-item--grid .kb-menu__button svg {
|
|
451
|
+
width: 20px !important;
|
|
452
|
+
height: 20px !important;
|
|
453
|
+
}
|
|
454
|
+
|
|
455
|
+
/* List-style item button styles */
|
|
456
|
+
.kb-custom-menu__overflow-item:not(.kb-custom-menu__overflow-item--grid)
|
|
457
|
+
.kb-menu__button,
|
|
458
|
+
.kb-custom-menu__overflow-item:not(.kb-custom-menu__overflow-item--grid)
|
|
459
|
+
.kb-dropdown__label {
|
|
275
460
|
min-height: 36px;
|
|
276
461
|
padding: var(--kb-space-sm) 0;
|
|
277
462
|
border: none;
|
|
@@ -286,16 +471,15 @@
|
|
|
286
471
|
flex-shrink: 0;
|
|
287
472
|
}
|
|
288
473
|
|
|
289
|
-
/* Hide buttons without icons (empty buttons in submenu items) */
|
|
290
|
-
.kb-custom-menu__overflow-item
|
|
474
|
+
/* Hide buttons without icons in list-style items (empty buttons in submenu items) */
|
|
475
|
+
.kb-custom-menu__overflow-item:not(.kb-custom-menu__overflow-item--grid)
|
|
291
476
|
.kb-menu__button:not(:has(svg)):not(:has(.kb-icon)) {
|
|
292
477
|
display: none;
|
|
293
478
|
}
|
|
294
479
|
|
|
295
|
-
/*
|
|
296
|
-
.kb-custom-menu__overflow-item
|
|
297
|
-
|
|
298
|
-
display: none;
|
|
480
|
+
/* Grid items always show the button */
|
|
481
|
+
.kb-custom-menu__overflow-item--grid .kb-menu__button {
|
|
482
|
+
display: flex !important;
|
|
299
483
|
}
|
|
300
484
|
|
|
301
485
|
.kb-custom-menu__overflow-item[data-tool-id='tool-toggle-underline']
|
|
@@ -303,14 +487,10 @@
|
|
|
303
487
|
display: flex;
|
|
304
488
|
}
|
|
305
489
|
|
|
306
|
-
|
|
307
|
-
.kb-custom-menu__overflow-item[data-tool-id='tool-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
.kb-custom-menu__overflow-item[data-tool-id='tool-insert'] button,
|
|
311
|
-
.kb-custom-menu__overflow-item[data-tool-id='tool-type'] button,
|
|
312
|
-
.kb-custom-menu__overflow-item[data-tool-id='tool-select-parent-node'] {
|
|
313
|
-
display: none;
|
|
490
|
+
/* Grid-style items don't need specific height overrides */
|
|
491
|
+
.kb-custom-menu__overflow-item--grid[data-tool-id='tool-insert'],
|
|
492
|
+
.kb-custom-menu__overflow-item--grid[data-tool-id='tool-type'] {
|
|
493
|
+
height: 36px;
|
|
314
494
|
}
|
|
315
495
|
|
|
316
496
|
.kb-custom-menu__overflow-item[data-tool-id='tool-text-color'] button {
|
|
@@ -323,20 +503,17 @@
|
|
|
323
503
|
position: relative;
|
|
324
504
|
}
|
|
325
505
|
|
|
326
|
-
.kb-custom-menu__item[data-tool-id='tool-insert'] > div > button,
|
|
327
|
-
.kb-custom-menu__item[data-tool-id='tool-type'] > div > button,
|
|
328
|
-
.kb-custom-menu__item[data-tool-id='tool-table'] > div > button {
|
|
329
|
-
padding-right: 20px;
|
|
330
|
-
}
|
|
331
|
-
|
|
332
506
|
.kb-custom-menu__item[data-tool-id='tool-insert'] > div > button:after,
|
|
333
507
|
.kb-custom-menu__item[data-tool-id='tool-type'] > div > button:after,
|
|
334
508
|
.kb-custom-menu__item[data-tool-id='tool-table'] > div > button:after {
|
|
335
|
-
content: '
|
|
336
|
-
|
|
337
|
-
|
|
509
|
+
content: '';
|
|
510
|
+
border-left: 3px solid transparent;
|
|
511
|
+
border-right: 3px solid transparent;
|
|
512
|
+
border-top: 3px solid currentColor;
|
|
513
|
+
opacity: 0.7;
|
|
338
514
|
position: absolute;
|
|
339
|
-
right:
|
|
515
|
+
right: 2px;
|
|
516
|
+
bottom: 2px;
|
|
340
517
|
}
|
|
341
518
|
|
|
342
519
|
.kb-custom-menu__item[data-tool-id='tool-toggle-code-font'] button > span,
|
|
@@ -414,6 +591,20 @@
|
|
|
414
591
|
background: var(--kb-color-surface-hover);
|
|
415
592
|
}
|
|
416
593
|
|
|
594
|
+
.kb-custom-menu__overflow-back-button:focus {
|
|
595
|
+
outline: 2px solid var(--kb-color-primary);
|
|
596
|
+
outline-offset: 2px;
|
|
597
|
+
}
|
|
598
|
+
|
|
599
|
+
.kb-custom-menu__overflow-back-button:focus:not(:focus-visible) {
|
|
600
|
+
outline: none;
|
|
601
|
+
}
|
|
602
|
+
|
|
603
|
+
.kb-custom-menu__overflow-back-button:focus-visible {
|
|
604
|
+
outline: 2px solid var(--kb-color-primary);
|
|
605
|
+
outline-offset: 2px;
|
|
606
|
+
}
|
|
607
|
+
|
|
417
608
|
.kb-custom-menu__overflow-back-button svg {
|
|
418
609
|
width: 20px;
|
|
419
610
|
height: 20px;
|
|
@@ -666,48 +857,23 @@
|
|
|
666
857
|
box-shadow: 0 1px 2px rgba(0, 0, 0, 0.16);
|
|
667
858
|
}
|
|
668
859
|
|
|
669
|
-
/*
|
|
860
|
+
/* Small screen adjustments - toolbar stays at top */
|
|
670
861
|
@media (max-width: 767.98px) {
|
|
671
|
-
.kb-custom-menu {
|
|
672
|
-
position: fixed;
|
|
673
|
-
bottom: 0;
|
|
674
|
-
left: 0;
|
|
675
|
-
right: 0;
|
|
676
|
-
top: auto;
|
|
677
|
-
border-bottom: none;
|
|
678
|
-
border-top: 1px solid var(--kb-color-border-strong);
|
|
679
|
-
box-shadow: 0 -2px 8px rgba(0, 0, 0, 0.1);
|
|
680
|
-
backdrop-filter: blur(10px);
|
|
681
|
-
background: rgba(249, 249, 249, 0.95);
|
|
682
|
-
}
|
|
683
|
-
|
|
684
862
|
.kb-custom-menu__overflow-menu {
|
|
685
|
-
|
|
686
|
-
bottom: 60px;
|
|
687
|
-
left: 0;
|
|
688
|
-
right: 0;
|
|
689
|
-
top: auto;
|
|
863
|
+
/* Dropdown stays below toolbar */
|
|
690
864
|
max-width: 100%;
|
|
691
|
-
|
|
692
|
-
|
|
693
|
-
height: auto;
|
|
694
|
-
border: none;
|
|
695
|
-
border-top: 1px solid var(--kb-color-border-strong);
|
|
696
|
-
}
|
|
697
|
-
|
|
698
|
-
.kb-custom-menu__overflow-content {
|
|
699
|
-
flex: 1;
|
|
700
|
-
overflow-y: auto;
|
|
701
|
-
-webkit-overflow-scrolling: touch;
|
|
702
|
-
max-height: calc(60vh - 80px);
|
|
865
|
+
left: var(--kb-space-sm);
|
|
866
|
+
right: var(--kb-space-sm);
|
|
703
867
|
}
|
|
704
868
|
|
|
705
|
-
|
|
706
|
-
|
|
707
|
-
|
|
869
|
+
/* Larger touch targets for overflow menu items on mobile */
|
|
870
|
+
.kb-custom-menu__overflow-item {
|
|
871
|
+
min-height: 44px;
|
|
872
|
+
padding: var(--kb-space-md);
|
|
708
873
|
}
|
|
709
874
|
|
|
710
|
-
.kb-custom-
|
|
875
|
+
.kb-custom-menu__overflow-item--grid {
|
|
876
|
+
min-width: 44px;
|
|
711
877
|
min-height: 44px;
|
|
712
878
|
}
|
|
713
879
|
|
|
@@ -718,7 +884,8 @@
|
|
|
718
884
|
border-radius: 12px 12px 0 0;
|
|
719
885
|
}
|
|
720
886
|
|
|
721
|
-
|
|
887
|
+
/* Larger back button touch target */
|
|
888
|
+
.kb-custom-menu__overflow-back-button {
|
|
722
889
|
min-width: 44px;
|
|
723
890
|
min-height: 44px;
|
|
724
891
|
}
|
|
@@ -736,7 +903,7 @@
|
|
|
736
903
|
}
|
|
737
904
|
|
|
738
905
|
.kb-custom-menu__resize-handle-bar {
|
|
739
|
-
background: var(--kb-menu-dropdown-
|
|
906
|
+
background: var(--kb-menu-dropdown-border);
|
|
740
907
|
}
|
|
741
908
|
|
|
742
909
|
.kb-custom-menu__resize-handle:hover .kb-custom-menu__resize-handle-bar {
|
|
@@ -750,22 +917,22 @@
|
|
|
750
917
|
.kb-custom-menu__item .kb-menu__button,
|
|
751
918
|
.kb-custom-menu__item .kb-dropdown__label,
|
|
752
919
|
.kb-custom-menu__overflow-toggle {
|
|
753
|
-
color: var(--kb-menu-dropdown-
|
|
920
|
+
color: var(--kb-menu-dropdown-text);
|
|
754
921
|
}
|
|
755
922
|
|
|
756
923
|
.kb-custom-menu__item .kb-menu__button:hover,
|
|
757
924
|
.kb-custom-menu__item .kb-dropdown__label:hover,
|
|
758
925
|
.kb-custom-menu__overflow-toggle:hover {
|
|
759
|
-
background:
|
|
926
|
+
background: var(--kb-menu-dropdown-hover);
|
|
760
927
|
}
|
|
761
928
|
|
|
762
929
|
.kb-custom-menu__separator {
|
|
763
|
-
background: var(--kb-menu-dropdown-
|
|
930
|
+
background: var(--kb-menu-dropdown-border);
|
|
764
931
|
}
|
|
765
932
|
|
|
766
933
|
.kb-custom-menu__overflow-menu {
|
|
767
|
-
background: var(--kb-menu-dropdown-
|
|
768
|
-
border-color: var(--kb-menu-dropdown-
|
|
934
|
+
background: var(--kb-menu-dropdown-bg);
|
|
935
|
+
border-color: var(--kb-menu-dropdown-border);
|
|
769
936
|
}
|
|
770
937
|
|
|
771
938
|
.kb-custom-menu__overflow-header {
|
|
@@ -774,24 +941,24 @@
|
|
|
774
941
|
|
|
775
942
|
.kb-custom-menu__overflow-item .kb-menu__button,
|
|
776
943
|
.kb-custom-menu__overflow-item .kb-dropdown__label {
|
|
777
|
-
color: var(--kb-menu-dropdown-
|
|
944
|
+
color: var(--kb-menu-dropdown-text);
|
|
778
945
|
}
|
|
779
946
|
|
|
780
947
|
.kb-custom-menu__overflow-item-label {
|
|
781
|
-
color: var(--kb-menu-dropdown-
|
|
948
|
+
color: var(--kb-menu-dropdown-text);
|
|
782
949
|
}
|
|
783
950
|
|
|
784
951
|
.kb-custom-menu__overflow-item:hover {
|
|
785
|
-
background:
|
|
952
|
+
background: var(--kb-menu-dropdown-hover);
|
|
786
953
|
}
|
|
787
954
|
|
|
788
955
|
.kb-custom-menu__overflow-separator {
|
|
789
|
-
background: var(--kb-menu-dropdown-
|
|
956
|
+
background: var(--kb-menu-dropdown-border);
|
|
790
957
|
}
|
|
791
958
|
|
|
792
959
|
.kb-custom-menu__overflow-footer {
|
|
793
|
-
background: var(--kb-menu-dropdown-
|
|
794
|
-
border-top-color: var(--kb-menu-dropdown-
|
|
960
|
+
background: var(--kb-menu-dropdown-bg);
|
|
961
|
+
border-top-color: var(--kb-menu-dropdown-border);
|
|
795
962
|
}
|
|
796
963
|
|
|
797
964
|
.kb-custom-menu__modal {
|
|
@@ -799,11 +966,11 @@
|
|
|
799
966
|
}
|
|
800
967
|
|
|
801
968
|
.kb-custom-menu__modal-header {
|
|
802
|
-
border-bottom-color: var(--kb-menu-dropdown-
|
|
969
|
+
border-bottom-color: var(--kb-menu-dropdown-border);
|
|
803
970
|
}
|
|
804
971
|
|
|
805
972
|
.kb-custom-menu__modal-header h2 {
|
|
806
|
-
color: var(--kb-menu-dropdown-
|
|
973
|
+
color: var(--kb-menu-dropdown-text);
|
|
807
974
|
}
|
|
808
975
|
|
|
809
976
|
.kb-custom-menu__modal-close {
|
|
@@ -813,26 +980,154 @@
|
|
|
813
980
|
.kb-custom-menu__modal-message {
|
|
814
981
|
background: var(--kb-menu-info-bg);
|
|
815
982
|
color: var(--kb-menu-info-text);
|
|
816
|
-
border-bottom-color: var(--kb-menu-dropdown-
|
|
983
|
+
border-bottom-color: var(--kb-menu-dropdown-border);
|
|
817
984
|
}
|
|
818
985
|
|
|
819
986
|
.kb-custom-menu__modal-footer {
|
|
820
|
-
border-top-color: var(--kb-menu-dropdown-
|
|
987
|
+
border-top-color: var(--kb-menu-dropdown-border);
|
|
821
988
|
}
|
|
822
989
|
|
|
823
990
|
.kb-custom-menu__tool-item span {
|
|
824
|
-
color: var(--kb-menu-dropdown-
|
|
991
|
+
color: var(--kb-menu-dropdown-text);
|
|
825
992
|
}
|
|
826
993
|
}
|
|
827
994
|
|
|
995
|
+
/* Drag and drop styles */
|
|
996
|
+
.kb-custom-menu__wrapper--dragging {
|
|
997
|
+
user-select: none;
|
|
998
|
+
cursor: grabbing !important;
|
|
999
|
+
}
|
|
1000
|
+
|
|
1001
|
+
.kb-custom-menu__wrapper--dragging * {
|
|
1002
|
+
cursor: grabbing !important;
|
|
1003
|
+
}
|
|
1004
|
+
|
|
1005
|
+
.kb-custom-menu__item {
|
|
1006
|
+
cursor: grab;
|
|
1007
|
+
transition: opacity 0.2s ease, transform 0.2s ease;
|
|
1008
|
+
}
|
|
1009
|
+
|
|
1010
|
+
/* Only show grabbing cursor when wrapper has dragging class, not just on :active */
|
|
1011
|
+
.kb-custom-menu__wrapper--dragging .kb-custom-menu__item {
|
|
1012
|
+
cursor: grabbing !important;
|
|
1013
|
+
}
|
|
1014
|
+
|
|
1015
|
+
/* Ensure buttons inside items have pointer cursor for click feedback */
|
|
1016
|
+
.kb-custom-menu__item .kb-menu__button,
|
|
1017
|
+
.kb-custom-menu__item .kb-dropdown__label {
|
|
1018
|
+
cursor: pointer !important;
|
|
1019
|
+
}
|
|
1020
|
+
|
|
1021
|
+
/* Override to grabbing cursor only when actively dragging */
|
|
1022
|
+
.kb-custom-menu__wrapper--dragging .kb-custom-menu__item .kb-menu__button,
|
|
1023
|
+
.kb-custom-menu__wrapper--dragging .kb-custom-menu__item .kb-dropdown__label {
|
|
1024
|
+
cursor: grabbing !important;
|
|
1025
|
+
}
|
|
1026
|
+
|
|
1027
|
+
.kb-custom-menu__item--dragging {
|
|
1028
|
+
opacity: 0.3;
|
|
1029
|
+
}
|
|
1030
|
+
|
|
1031
|
+
.kb-custom-menu__overflow-item--dragging {
|
|
1032
|
+
opacity: 0.3;
|
|
1033
|
+
}
|
|
1034
|
+
|
|
1035
|
+
.kb-custom-menu__drag-ghost {
|
|
1036
|
+
opacity: 0.9;
|
|
1037
|
+
background: var(--kb-color-surface-elevated);
|
|
1038
|
+
border-radius: var(--kb-radius-sm);
|
|
1039
|
+
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
|
|
1040
|
+
transform: scale(1.05);
|
|
1041
|
+
}
|
|
1042
|
+
|
|
1043
|
+
.kb-custom-menu__drop-placeholder {
|
|
1044
|
+
width: 4px;
|
|
1045
|
+
min-height: 32px;
|
|
1046
|
+
background: var(--kb-color-primary);
|
|
1047
|
+
border-radius: 2px;
|
|
1048
|
+
margin: 0 2px;
|
|
1049
|
+
display: inline-flex;
|
|
1050
|
+
flex-shrink: 0;
|
|
1051
|
+
}
|
|
1052
|
+
|
|
828
1053
|
/* Pinned dropdown menu (independent from overflow) */
|
|
829
1054
|
.kb-custom-menu__pinned-dropdown {
|
|
830
1055
|
min-width: 200px;
|
|
831
1056
|
max-width: 300px;
|
|
832
|
-
background: var(--kb-menu-dropdown-
|
|
1057
|
+
background: var(--kb-menu-dropdown-bg) !important;
|
|
833
1058
|
border: 1px solid var(--kb-color-border-strong);
|
|
834
1059
|
border-radius: var(--kb-radius-lg);
|
|
835
1060
|
box-shadow: var(--kb-shadow-lg);
|
|
836
1061
|
max-height: 400px;
|
|
837
1062
|
overflow-y: auto;
|
|
838
1063
|
}
|
|
1064
|
+
|
|
1065
|
+
/* Overflow menu footer (for Reset to Default) */
|
|
1066
|
+
.kb-custom-menu__overflow-footer {
|
|
1067
|
+
padding: var(--kb-space-sm);
|
|
1068
|
+
border-top: 1px solid var(--kb-color-border);
|
|
1069
|
+
display: flex;
|
|
1070
|
+
justify-content: center;
|
|
1071
|
+
}
|
|
1072
|
+
|
|
1073
|
+
/* Reset to Default button */
|
|
1074
|
+
.kb-custom-menu__reset-button {
|
|
1075
|
+
display: flex;
|
|
1076
|
+
align-items: center;
|
|
1077
|
+
gap: var(--kb-space-sm);
|
|
1078
|
+
padding: var(--kb-space-sm) var(--kb-space-md);
|
|
1079
|
+
font-size: 12px;
|
|
1080
|
+
color: var(--kb-color-text-muted);
|
|
1081
|
+
background: transparent;
|
|
1082
|
+
border: 1px solid var(--kb-color-border);
|
|
1083
|
+
border-radius: var(--kb-radius-sm);
|
|
1084
|
+
cursor: pointer;
|
|
1085
|
+
transition: all 0.2s ease;
|
|
1086
|
+
}
|
|
1087
|
+
|
|
1088
|
+
.kb-custom-menu__reset-button:hover {
|
|
1089
|
+
background: var(--kb-color-surface-hover);
|
|
1090
|
+
color: var(--kb-color-text);
|
|
1091
|
+
border-color: var(--kb-color-border-strong);
|
|
1092
|
+
}
|
|
1093
|
+
|
|
1094
|
+
.kb-custom-menu__reset-button:focus {
|
|
1095
|
+
outline: 2px solid var(--kb-color-primary);
|
|
1096
|
+
outline-offset: 2px;
|
|
1097
|
+
}
|
|
1098
|
+
|
|
1099
|
+
.kb-custom-menu__reset-button:focus:not(:focus-visible) {
|
|
1100
|
+
outline: none;
|
|
1101
|
+
}
|
|
1102
|
+
|
|
1103
|
+
.kb-custom-menu__reset-button:focus-visible {
|
|
1104
|
+
outline: 2px solid var(--kb-color-primary);
|
|
1105
|
+
outline-offset: 2px;
|
|
1106
|
+
}
|
|
1107
|
+
|
|
1108
|
+
.kb-custom-menu__reset-button svg {
|
|
1109
|
+
width: 14px;
|
|
1110
|
+
height: 14px;
|
|
1111
|
+
flex-shrink: 0;
|
|
1112
|
+
}
|
|
1113
|
+
|
|
1114
|
+
.kb-custom-menu__reset-button span {
|
|
1115
|
+
white-space: nowrap;
|
|
1116
|
+
}
|
|
1117
|
+
|
|
1118
|
+
/* Icon-only variant for toolbar display */
|
|
1119
|
+
.kb-custom-menu__reset-button--icon-only {
|
|
1120
|
+
padding: var(--kb-space-sm);
|
|
1121
|
+
border: none;
|
|
1122
|
+
background: transparent;
|
|
1123
|
+
}
|
|
1124
|
+
|
|
1125
|
+
.kb-custom-menu__reset-button--icon-only:hover {
|
|
1126
|
+
background: var(--kb-color-surface-hover);
|
|
1127
|
+
border: none;
|
|
1128
|
+
}
|
|
1129
|
+
|
|
1130
|
+
.kb-custom-menu__reset-button--icon-only svg {
|
|
1131
|
+
width: 18px;
|
|
1132
|
+
height: 18px;
|
|
1133
|
+
}
|