@openleaf-editor/ui 0.1.0-beta.2 → 0.1.0-beta.3
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/README.md +85 -0
- package/dist/block-type.d.ts +5 -0
- package/dist/block-type.d.ts.map +1 -0
- package/dist/block-type.js +133 -0
- package/dist/block-type.js.map +1 -0
- package/dist/content-css.d.ts +18 -0
- package/dist/content-css.d.ts.map +1 -1
- package/dist/content-css.js +231 -16
- package/dist/content-css.js.map +1 -1
- package/dist/css.d.ts +23 -0
- package/dist/css.d.ts.map +1 -0
- package/dist/css.js +813 -0
- package/dist/css.js.map +1 -0
- package/dist/dialog.d.ts +93 -0
- package/dist/dialog.d.ts.map +1 -1
- package/dist/dialog.js +414 -86
- package/dist/dialog.js.map +1 -1
- package/dist/floating.d.ts +4 -0
- package/dist/floating.d.ts.map +1 -1
- package/dist/floating.js +50 -2
- package/dist/floating.js.map +1 -1
- package/dist/help.d.ts +1 -1
- package/dist/help.d.ts.map +1 -1
- package/dist/help.js +29 -5
- package/dist/help.js.map +1 -1
- package/dist/i18n.d.ts +8 -0
- package/dist/i18n.d.ts.map +1 -1
- package/dist/i18n.js +32 -7
- package/dist/i18n.js.map +1 -1
- package/dist/icons.d.ts +7 -1
- package/dist/icons.d.ts.map +1 -1
- package/dist/icons.js +6 -2
- package/dist/icons.js.map +1 -1
- package/dist/index.d.ts +10 -8
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +8 -6
- package/dist/index.js.map +1 -1
- package/dist/items.d.ts +0 -1
- package/dist/items.d.ts.map +1 -1
- package/dist/items.js +226 -20
- package/dist/items.js.map +1 -1
- package/dist/live.d.ts +42 -0
- package/dist/live.d.ts.map +1 -0
- package/dist/live.js +83 -0
- package/dist/live.js.map +1 -0
- package/dist/menu.d.ts +31 -2
- package/dist/menu.d.ts.map +1 -1
- package/dist/menu.js +163 -23
- package/dist/menu.js.map +1 -1
- package/dist/openleaf.css +114 -12
- package/dist/overflow.d.ts +31 -4
- package/dist/overflow.d.ts.map +1 -1
- package/dist/overflow.js +267 -82
- package/dist/overflow.js.map +1 -1
- package/dist/registry.d.ts +72 -18
- package/dist/registry.d.ts.map +1 -1
- package/dist/registry.js +7 -6
- package/dist/registry.js.map +1 -1
- package/dist/skins.d.ts.map +1 -1
- package/dist/skins.js +48 -14
- package/dist/skins.js.map +1 -1
- package/dist/styles.d.ts +61 -1
- package/dist/styles.d.ts.map +1 -1
- package/dist/styles.js +77 -637
- package/dist/styles.js.map +1 -1
- package/dist/testing.d.ts +3 -0
- package/dist/testing.d.ts.map +1 -0
- package/dist/testing.js +3 -0
- package/dist/testing.js.map +1 -0
- package/dist/toolbar.d.ts +71 -12
- package/dist/toolbar.d.ts.map +1 -1
- package/dist/toolbar.js +410 -166
- package/dist/toolbar.js.map +1 -1
- package/dist/upload.d.ts +11 -0
- package/dist/upload.d.ts.map +1 -1
- package/dist/upload.js +15 -1
- package/dist/upload.js.map +1 -1
- package/package.json +17 -3
package/dist/menu.js
CHANGED
|
@@ -42,6 +42,9 @@ export const DEFAULT_MENUBAR = [
|
|
|
42
42
|
{ id: 'alignRight' },
|
|
43
43
|
{ id: 'alignJustify' },
|
|
44
44
|
'|',
|
|
45
|
+
{ id: 'indent' },
|
|
46
|
+
{ id: 'outdent' },
|
|
47
|
+
'|',
|
|
45
48
|
{ id: 'bulletList' },
|
|
46
49
|
{ id: 'orderedList' },
|
|
47
50
|
{ id: 'blockquote' },
|
|
@@ -104,6 +107,18 @@ function enabled(spec, state, host) {
|
|
|
104
107
|
return spec.command(state);
|
|
105
108
|
return true;
|
|
106
109
|
}
|
|
110
|
+
/** Menus are named after the trigger that opened them, which needs an id. */
|
|
111
|
+
let menuCounter = 0;
|
|
112
|
+
/**
|
|
113
|
+
* Separate from `menuCounter`, because one menu is opened by MANY triggers.
|
|
114
|
+
*
|
|
115
|
+
* A menubar shares a single `PopupMenu` across every menu on it, so an id
|
|
116
|
+
* derived from the popup's own name was the same string for every trigger:
|
|
117
|
+
* open Edit, then Insert, and two buttons carried one DOM id. `aria-labelledby`
|
|
118
|
+
* resolves to the first match in tree order, so every menu after the first was
|
|
119
|
+
* announced under the first one's name.
|
|
120
|
+
*/
|
|
121
|
+
let triggerCounter = 0;
|
|
107
122
|
export class PopupMenu {
|
|
108
123
|
el;
|
|
109
124
|
#doc;
|
|
@@ -111,12 +126,14 @@ export class PopupMenu {
|
|
|
111
126
|
#view = null;
|
|
112
127
|
#items = [];
|
|
113
128
|
#onClose;
|
|
129
|
+
#trigger = null;
|
|
114
130
|
constructor(host, doc) {
|
|
115
131
|
this.#host = host;
|
|
116
132
|
this.#doc = doc;
|
|
117
133
|
ensureStyles(doc);
|
|
118
134
|
this.el = doc.createElement('div');
|
|
119
135
|
this.el.className = 'ol-menu';
|
|
136
|
+
this.el.id = `ol-menu-${(menuCounter += 1)}`;
|
|
120
137
|
this.el.setAttribute('role', 'menu');
|
|
121
138
|
this.el.hidden = true;
|
|
122
139
|
this.el.addEventListener('keydown', this.#onKeydown);
|
|
@@ -134,26 +151,98 @@ export class PopupMenu {
|
|
|
134
151
|
get open() {
|
|
135
152
|
return !this.el.hidden;
|
|
136
153
|
}
|
|
137
|
-
|
|
154
|
+
/**
|
|
155
|
+
* Open at a point, named by whatever opened it.
|
|
156
|
+
*
|
|
157
|
+
* `trigger` is not optional decoration: without it the menu has no accessible
|
|
158
|
+
* name at all -- a screen reader announces "menu", with nothing to say which
|
|
159
|
+
* one -- and Escape has nowhere to put focus back, so it lands on the document
|
|
160
|
+
* and the author is out of the menubar entirely.
|
|
161
|
+
*/
|
|
162
|
+
show(items, x, y, options = {}) {
|
|
138
163
|
this.#items = items;
|
|
139
|
-
this.#onClose = onClose;
|
|
164
|
+
this.#onClose = options.onClose;
|
|
165
|
+
const trigger = options.trigger ?? null;
|
|
166
|
+
this.#trigger = trigger;
|
|
167
|
+
if (trigger) {
|
|
168
|
+
if (!trigger.id)
|
|
169
|
+
trigger.id = `${this.el.id}-trigger-${(triggerCounter += 1)}`;
|
|
170
|
+
this.el.setAttribute('aria-labelledby', trigger.id);
|
|
171
|
+
this.el.removeAttribute('aria-label');
|
|
172
|
+
trigger.setAttribute('aria-controls', this.el.id);
|
|
173
|
+
}
|
|
174
|
+
else {
|
|
175
|
+
this.el.removeAttribute('aria-labelledby');
|
|
176
|
+
this.el.setAttribute('aria-label', t(options.label ?? 'Editor menu'));
|
|
177
|
+
}
|
|
140
178
|
this.#render();
|
|
141
179
|
this.el.hidden = false;
|
|
180
|
+
this.#place(x, y);
|
|
181
|
+
this.#focusItem(this.el.querySelector('[role="menuitem"]'));
|
|
182
|
+
}
|
|
183
|
+
/**
|
|
184
|
+
* Keep the menu on screen.
|
|
185
|
+
*
|
|
186
|
+
* A right-click near the bottom of the viewport otherwise renders it below the
|
|
187
|
+
* fold, where the item the author asked for cannot be seen or scrolled to --
|
|
188
|
+
* the menu is positioned, so the page does not grow to contain it.
|
|
189
|
+
*
|
|
190
|
+
* Flipping is measured against the TRIGGER, not against the point the menu was
|
|
191
|
+
* asked to open at. Those differ by the height of the trigger, and using the
|
|
192
|
+
* point puts a flipped menu on top of the menubar it came from -- covering the
|
|
193
|
+
* next menu along, which is exactly where the pointer is going.
|
|
194
|
+
*/
|
|
195
|
+
#place(x, y) {
|
|
142
196
|
const hostBox = this.#host.getBoundingClientRect();
|
|
143
|
-
this.el.
|
|
144
|
-
|
|
145
|
-
const
|
|
146
|
-
|
|
197
|
+
const box = this.el.getBoundingClientRect();
|
|
198
|
+
const win = this.#doc.defaultView;
|
|
199
|
+
const vw = win?.innerWidth ?? 0;
|
|
200
|
+
const vh = win?.innerHeight ?? 0;
|
|
201
|
+
const left = vw > 0 ? Math.max(4, Math.min(x, vw - box.width - 4)) : x;
|
|
202
|
+
let top = y;
|
|
203
|
+
if (vh > 0 && y + box.height > vh) {
|
|
204
|
+
const above = (this.#trigger?.getBoundingClientRect().top ?? y) - 4 - box.height;
|
|
205
|
+
// Above only when it genuinely fits there. Sliding a menu that fits
|
|
206
|
+
// NEITHER side up to the viewport edge lands it on its own menubar, which
|
|
207
|
+
// trades a menu below the fold for a menubar that cannot be clicked. The
|
|
208
|
+
// stylesheet caps the height, so this is the rare deep menu on a short
|
|
209
|
+
// window rather than the normal case.
|
|
210
|
+
if (above >= 4)
|
|
211
|
+
top = above;
|
|
212
|
+
}
|
|
213
|
+
this.el.style.left = `${Math.round(left - hostBox.left)}px`;
|
|
214
|
+
this.el.style.top = `${Math.round(top - hostBox.top)}px`;
|
|
147
215
|
}
|
|
148
|
-
|
|
216
|
+
/**
|
|
217
|
+
* Close, and put focus somewhere real.
|
|
218
|
+
*
|
|
219
|
+
* `replaceChildren()` removes the node that currently has focus, and a browser
|
|
220
|
+
* whose focused element disappears falls back to `<body>` -- so without the
|
|
221
|
+
* return the author's next Tab starts from the top of the page.
|
|
222
|
+
*/
|
|
223
|
+
close(returnFocus = false) {
|
|
149
224
|
if (this.el.hidden)
|
|
150
225
|
return;
|
|
226
|
+
const trigger = this.#trigger;
|
|
227
|
+
if (returnFocus && trigger?.isConnected)
|
|
228
|
+
trigger.focus();
|
|
151
229
|
this.el.hidden = true;
|
|
152
230
|
this.el.replaceChildren();
|
|
231
|
+
trigger?.removeAttribute('aria-controls');
|
|
232
|
+
this.#trigger = null;
|
|
153
233
|
const close = this.#onClose;
|
|
154
234
|
this.#onClose = undefined;
|
|
155
235
|
close?.();
|
|
156
236
|
}
|
|
237
|
+
#focusItem(next) {
|
|
238
|
+
if (!next)
|
|
239
|
+
return;
|
|
240
|
+
// Roving, so Tab leaves the menu instead of walking through every item in it.
|
|
241
|
+
for (const item of this.el.querySelectorAll('[role="menuitem"]')) {
|
|
242
|
+
item.tabIndex = item === next ? 0 : -1;
|
|
243
|
+
}
|
|
244
|
+
next.focus();
|
|
245
|
+
}
|
|
157
246
|
#render() {
|
|
158
247
|
this.el.replaceChildren();
|
|
159
248
|
const view = this.#view;
|
|
@@ -175,9 +264,10 @@ export class PopupMenu {
|
|
|
175
264
|
button.className = 'ol-menu-item';
|
|
176
265
|
button.setAttribute('role', 'menuitem');
|
|
177
266
|
button.dataset['olId'] = spec.id;
|
|
178
|
-
button.textContent = t(entry.label ?? spec.label);
|
|
267
|
+
button.textContent = t(entry.label ?? spec.labelFor?.(view.state) ?? spec.label);
|
|
179
268
|
const isEnabled = enabled(spec, view.state, this.#host);
|
|
180
269
|
button.setAttribute('aria-disabled', isEnabled ? 'false' : 'true');
|
|
270
|
+
button.tabIndex = -1;
|
|
181
271
|
this.el.appendChild(button);
|
|
182
272
|
}
|
|
183
273
|
}
|
|
@@ -189,16 +279,23 @@ export class PopupMenu {
|
|
|
189
279
|
const view = this.#view;
|
|
190
280
|
if (!spec || !view)
|
|
191
281
|
return;
|
|
192
|
-
|
|
282
|
+
// Closed first, but with focus put back on the trigger before the item is
|
|
283
|
+
// removed. Running the command first instead would let `close()` steal focus
|
|
284
|
+
// from a dialog the command had just opened.
|
|
285
|
+
this.close(true);
|
|
193
286
|
invoke(spec, view, this.#host);
|
|
194
287
|
};
|
|
195
288
|
#onKeydown = (event) => {
|
|
196
289
|
const items = [...this.el.querySelectorAll('[role="menuitem"]')];
|
|
197
290
|
const index = items.indexOf(event.target);
|
|
198
|
-
|
|
291
|
+
// Tab closes rather than walking on through the menu: a menu left open
|
|
292
|
+
// behind a keyboard user is a widget with no exit.
|
|
293
|
+
if (event.key === 'Escape' || event.key === 'Tab') {
|
|
199
294
|
event.preventDefault();
|
|
200
|
-
this
|
|
201
|
-
this
|
|
295
|
+
const trigger = this.#trigger;
|
|
296
|
+
this.close(true);
|
|
297
|
+
if (!trigger)
|
|
298
|
+
this.#view?.focus();
|
|
202
299
|
return;
|
|
203
300
|
}
|
|
204
301
|
if (event.key === 'ArrowDown' || event.key === 'ArrowUp') {
|
|
@@ -206,12 +303,29 @@ export class PopupMenu {
|
|
|
206
303
|
if (items.length === 0)
|
|
207
304
|
return;
|
|
208
305
|
const delta = event.key === 'ArrowDown' ? 1 : -1;
|
|
209
|
-
|
|
210
|
-
|
|
306
|
+
this.#focusItem(items[(index + delta + items.length) % items.length]);
|
|
307
|
+
return;
|
|
308
|
+
}
|
|
309
|
+
if (event.key === 'Home' || event.key === 'End') {
|
|
310
|
+
event.preventDefault();
|
|
311
|
+
this.#focusItem(event.key === 'Home' ? items[0] : items[items.length - 1]);
|
|
312
|
+
return;
|
|
211
313
|
}
|
|
212
314
|
if (event.key === 'Enter' || event.key === ' ') {
|
|
213
315
|
event.preventDefault();
|
|
214
316
|
event.target.click();
|
|
317
|
+
return;
|
|
318
|
+
}
|
|
319
|
+
// Typeahead. A menubar user looking for "Italic" presses I, the way they do
|
|
320
|
+
// in every other menu they have ever used.
|
|
321
|
+
if (event.key.length === 1 && !event.ctrlKey && !event.metaKey && !event.altKey) {
|
|
322
|
+
const char = event.key.toLowerCase();
|
|
323
|
+
const from = index + 1;
|
|
324
|
+
const found = [...items.slice(from), ...items.slice(0, Math.max(0, from))].find((item) => (item.textContent ?? '').trim().toLowerCase().startsWith(char));
|
|
325
|
+
if (found) {
|
|
326
|
+
event.preventDefault();
|
|
327
|
+
this.#focusItem(found);
|
|
328
|
+
}
|
|
215
329
|
}
|
|
216
330
|
};
|
|
217
331
|
}
|
|
@@ -272,10 +386,18 @@ export class MenuBar {
|
|
|
272
386
|
if (!this.#popup.el.isConnected)
|
|
273
387
|
this.#host.appendChild(this.#popup.el);
|
|
274
388
|
}
|
|
389
|
+
/**
|
|
390
|
+
* Detach the menubar AND take its DOM with it -- see `Toolbar.destroy()`.
|
|
391
|
+
* The host reads its own `innerHTML` back as content when it rebuilds, so a
|
|
392
|
+
* menubar row left behind here would become the author's document.
|
|
393
|
+
*
|
|
394
|
+
* Idempotent: `.remove()` on a detached node is a no-op.
|
|
395
|
+
*/
|
|
275
396
|
destroy() {
|
|
276
397
|
this.#doc.removeEventListener('pointerdown', this.#onPointerDown, true);
|
|
277
398
|
this.el.removeEventListener('keydown', this.#onKeydown);
|
|
278
399
|
this.#popup.destroy();
|
|
400
|
+
this.el.remove();
|
|
279
401
|
}
|
|
280
402
|
#render() {
|
|
281
403
|
withLocale(this.#locale, () => this.#renderScoped());
|
|
@@ -291,10 +413,22 @@ export class MenuBar {
|
|
|
291
413
|
button.setAttribute('aria-expanded', 'false');
|
|
292
414
|
button.dataset['olMenu'] = menu.id;
|
|
293
415
|
button.textContent = t(menu.label);
|
|
416
|
+
// Roving: `role="menubar"` is ONE tab stop, and five native buttons at the
|
|
417
|
+
// default tabindex made it five -- so Tab from the content walked the
|
|
418
|
+
// author through every menu before reaching anything they wanted.
|
|
419
|
+
button.tabIndex = this.el.childElementCount === 0 ? 0 : -1;
|
|
294
420
|
button.addEventListener('click', () => this.#toggle(menu, button));
|
|
295
421
|
this.el.appendChild(button);
|
|
296
422
|
}
|
|
297
423
|
}
|
|
424
|
+
#focusTrigger(next) {
|
|
425
|
+
if (!next)
|
|
426
|
+
return;
|
|
427
|
+
for (const button of this.el.querySelectorAll('.ol-menu-trigger')) {
|
|
428
|
+
button.tabIndex = button === next ? 0 : -1;
|
|
429
|
+
}
|
|
430
|
+
next.focus();
|
|
431
|
+
}
|
|
298
432
|
#toggle(menu, trigger) {
|
|
299
433
|
if (this.#openId === menu.id && this.#popup.open) {
|
|
300
434
|
this.#close();
|
|
@@ -307,13 +441,16 @@ export class MenuBar {
|
|
|
307
441
|
this.#openId = menu.id;
|
|
308
442
|
trigger.setAttribute('aria-expanded', 'true');
|
|
309
443
|
const rect = trigger.getBoundingClientRect();
|
|
310
|
-
this.#popup.show(menu.items, rect.left, rect.bottom + 2,
|
|
311
|
-
trigger
|
|
312
|
-
|
|
444
|
+
this.#popup.show(menu.items, rect.left, rect.bottom + 2, {
|
|
445
|
+
trigger,
|
|
446
|
+
onClose: () => {
|
|
447
|
+
trigger.setAttribute('aria-expanded', 'false');
|
|
448
|
+
this.#openId = null;
|
|
449
|
+
},
|
|
313
450
|
});
|
|
314
451
|
}
|
|
315
|
-
#close() {
|
|
316
|
-
this.#popup.close();
|
|
452
|
+
#close(returnFocus = false) {
|
|
453
|
+
this.#popup.close(returnFocus);
|
|
317
454
|
for (const button of this.el.querySelectorAll('[aria-expanded]')) {
|
|
318
455
|
button.setAttribute('aria-expanded', 'false');
|
|
319
456
|
}
|
|
@@ -324,11 +461,14 @@ export class MenuBar {
|
|
|
324
461
|
const index = triggers.indexOf(event.target);
|
|
325
462
|
if (index < 0)
|
|
326
463
|
return;
|
|
327
|
-
if (event.key === 'ArrowRight' || event.key === 'ArrowLeft') {
|
|
464
|
+
if (event.key === 'ArrowRight' || event.key === 'ArrowLeft' || event.key === 'Home' || event.key === 'End') {
|
|
328
465
|
event.preventDefault();
|
|
329
|
-
const
|
|
330
|
-
|
|
331
|
-
|
|
466
|
+
const next = event.key === 'Home'
|
|
467
|
+
? triggers[0]
|
|
468
|
+
: event.key === 'End'
|
|
469
|
+
? triggers[triggers.length - 1]
|
|
470
|
+
: triggers[(index + (event.key === 'ArrowRight' ? 1 : -1) + triggers.length) % triggers.length];
|
|
471
|
+
this.#focusTrigger(next);
|
|
332
472
|
if (this.#popup.open && next) {
|
|
333
473
|
const menu = this.#menus.find((m) => m.id === next.dataset['olMenu']);
|
|
334
474
|
if (menu)
|
package/dist/menu.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"menu.js","sourceRoot":"","sources":["../src/menu.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"menu.js","sourceRoot":"","sources":["../src/menu.ts"],"names":[],"mappings":"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"}
|
package/dist/openleaf.css
CHANGED
|
@@ -14,8 +14,11 @@
|
|
|
14
14
|
--ol-surface-hover: var(--openleaf-color-surface-hover, #f0f1f3);
|
|
15
15
|
--ol-surface-active: var(--openleaf-color-surface-active, #dbe9ff);
|
|
16
16
|
--ol-border: var(--openleaf-color-border, #d1d9e0);
|
|
17
|
+
/* Control boundaries, not decoration. See "Two border tokens" above. */
|
|
18
|
+
--ol-border-strong: var(--openleaf-color-border-strong, #6e7781);
|
|
17
19
|
--ol-accent: var(--openleaf-color-accent, #0550ae);
|
|
18
20
|
--ol-focus: var(--openleaf-color-focus, #0969da);
|
|
21
|
+
--ol-danger: var(--openleaf-color-danger, #cf222e);
|
|
19
22
|
--ol-button-size: var(--openleaf-button-size, 32px);
|
|
20
23
|
--ol-icon-size: var(--openleaf-icon-size, 16px);
|
|
21
24
|
--ol-gap: var(--openleaf-gap, 2px);
|
|
@@ -50,8 +53,10 @@
|
|
|
50
53
|
--ol-surface-hover: var(--openleaf-color-surface-hover, #21262d);
|
|
51
54
|
--ol-surface-active: var(--openleaf-color-surface-active, #1f3a5f);
|
|
52
55
|
--ol-border: var(--openleaf-color-border, #3d444d);
|
|
56
|
+
--ol-border-strong: var(--openleaf-color-border-strong, #8b949e);
|
|
53
57
|
--ol-accent: var(--openleaf-color-accent, #79c0ff);
|
|
54
58
|
--ol-focus: var(--openleaf-color-focus, #79c0ff);
|
|
59
|
+
--ol-danger: var(--openleaf-color-danger, #ff8182);
|
|
55
60
|
}
|
|
56
61
|
}
|
|
57
62
|
|
|
@@ -62,8 +67,10 @@
|
|
|
62
67
|
--ol-surface-hover: var(--openleaf-color-surface-hover, #21262d);
|
|
63
68
|
--ol-surface-active: var(--openleaf-color-surface-active, #1f3a5f);
|
|
64
69
|
--ol-border: var(--openleaf-color-border, #3d444d);
|
|
70
|
+
--ol-border-strong: var(--openleaf-color-border-strong, #8b949e);
|
|
65
71
|
--ol-accent: var(--openleaf-color-accent, #79c0ff);
|
|
66
72
|
--ol-focus: var(--openleaf-color-focus, #79c0ff);
|
|
73
|
+
--ol-danger: var(--openleaf-color-danger, #ff8182);
|
|
67
74
|
}
|
|
68
75
|
|
|
69
76
|
.ol-editor[data-ol-scheme="dark"] {
|
|
@@ -73,8 +80,10 @@
|
|
|
73
80
|
--ol-surface-hover: var(--openleaf-color-surface-hover, #21262d);
|
|
74
81
|
--ol-surface-active: var(--openleaf-color-surface-active, #1f3a5f);
|
|
75
82
|
--ol-border: var(--openleaf-color-border, #3d444d);
|
|
83
|
+
--ol-border-strong: var(--openleaf-color-border-strong, #8b949e);
|
|
76
84
|
--ol-accent: var(--openleaf-color-accent, #79c0ff);
|
|
77
85
|
--ol-focus: var(--openleaf-color-focus, #79c0ff);
|
|
86
|
+
--ol-danger: var(--openleaf-color-danger, #ff8182);
|
|
78
87
|
}
|
|
79
88
|
|
|
80
89
|
/* Native widget chrome -- the popup a `select` opens, scrollbars, the caret,
|
|
@@ -100,7 +109,7 @@
|
|
|
100
109
|
box-sizing: border-box;
|
|
101
110
|
margin: 0;
|
|
102
111
|
padding: 4px;
|
|
103
|
-
border: 1px solid var(--ol-border);
|
|
112
|
+
border: 1px solid var(--ol-border-strong);
|
|
104
113
|
border-bottom: 0;
|
|
105
114
|
border-radius: var(--ol-radius) var(--ol-radius) 0 0;
|
|
106
115
|
background: var(--ol-surface);
|
|
@@ -121,7 +130,12 @@
|
|
|
121
130
|
after it -- a stranded line floating at the end of a row. Wrapping begins
|
|
122
131
|
around 690-740px, well inside ordinary desktop widths (a CMS sidebar, a
|
|
123
132
|
half-width split pane), so this was not a 360px-only edge case.
|
|
124
|
-
border-inline-start rather than border-left, so it flips under RTL.
|
|
133
|
+
border-inline-start rather than border-left, so it flips under RTL.
|
|
134
|
+
|
|
135
|
+
This selector is why the renderer emits NO element between groups. It used to
|
|
136
|
+
emit an .ol-sep div, which made the two groups non-adjacent and stopped this
|
|
137
|
+
rule from ever matching -- so no divider rendered in any theme, and every bar
|
|
138
|
+
carried inert empty divs. Adding a separator element back here breaks this. */
|
|
125
139
|
.ol-editor .ol-group + .ol-group {
|
|
126
140
|
border-inline-start: 1px solid var(--ol-border);
|
|
127
141
|
padding-inline-start: 5px;
|
|
@@ -200,7 +214,7 @@
|
|
|
200
214
|
removed from the roving tabindex and cannot be reached or announced, so an
|
|
201
215
|
author using a screen reader cannot discover that the control exists. */
|
|
202
216
|
.ol-editor .ol-btn[aria-disabled="true"] {
|
|
203
|
-
opacity: 0.
|
|
217
|
+
opacity: 0.55;
|
|
204
218
|
cursor: default;
|
|
205
219
|
}
|
|
206
220
|
|
|
@@ -226,7 +240,7 @@
|
|
|
226
240
|
max-width: 11em;
|
|
227
241
|
padding: 0 22px 0 6px;
|
|
228
242
|
margin: 0;
|
|
229
|
-
border: 1px solid var(--ol-border);
|
|
243
|
+
border: 1px solid var(--ol-border-strong);
|
|
230
244
|
border-radius: var(--ol-radius);
|
|
231
245
|
background-color: transparent;
|
|
232
246
|
background-image: linear-gradient(45deg, transparent 50%, currentColor 50%),
|
|
@@ -247,6 +261,10 @@
|
|
|
247
261
|
-webkit-appearance: none;
|
|
248
262
|
}
|
|
249
263
|
|
|
264
|
+
.ol-editor .ol-select--wide {
|
|
265
|
+
max-width: 14em;
|
|
266
|
+
}
|
|
267
|
+
|
|
250
268
|
.ol-editor .ol-select:hover {
|
|
251
269
|
background-color: var(--ol-surface-hover);
|
|
252
270
|
}
|
|
@@ -265,7 +283,7 @@
|
|
|
265
283
|
|
|
266
284
|
.ol-editor .ol-content {
|
|
267
285
|
box-sizing: border-box;
|
|
268
|
-
border: 1px solid var(--ol-border);
|
|
286
|
+
border: 1px solid var(--ol-border-strong);
|
|
269
287
|
border-radius: 0 0 var(--ol-radius) var(--ol-radius);
|
|
270
288
|
background: var(--ol-surface);
|
|
271
289
|
}
|
|
@@ -324,7 +342,13 @@
|
|
|
324
342
|
|
|
325
343
|
/* prosemirror-tables marks cells in a rectangular selection with this class.
|
|
326
344
|
An ::after overlay rather than a background so it composes with a cell that
|
|
327
|
-
already has one, and so a header cell still reads as a header.
|
|
345
|
+
already has one, and so a header cell still reads as a header.
|
|
346
|
+
|
|
347
|
+
The ring, not the tint, is the indicator -- see "Cell selection" above. */
|
|
348
|
+
.ol-editor .ol-content .ProseMirror .selectedCell {
|
|
349
|
+
outline: 2px solid var(--ol-accent);
|
|
350
|
+
outline-offset: -2px;
|
|
351
|
+
}
|
|
328
352
|
.ol-editor .ol-content .ProseMirror .selectedCell::after {
|
|
329
353
|
content: "";
|
|
330
354
|
position: absolute;
|
|
@@ -404,7 +428,7 @@
|
|
|
404
428
|
width: 100%;
|
|
405
429
|
min-height: 12rem;
|
|
406
430
|
padding: 12px;
|
|
407
|
-
border: 1px solid var(--ol-border);
|
|
431
|
+
border: 1px solid var(--ol-border-strong);
|
|
408
432
|
border-radius: 0 0 var(--ol-radius) var(--ol-radius);
|
|
409
433
|
background: var(--ol-surface);
|
|
410
434
|
color: var(--ol-text);
|
|
@@ -447,7 +471,7 @@
|
|
|
447
471
|
box-sizing: border-box;
|
|
448
472
|
margin: 0;
|
|
449
473
|
padding: 2px 4px;
|
|
450
|
-
border: 1px solid var(--ol-border);
|
|
474
|
+
border: 1px solid var(--ol-border-strong);
|
|
451
475
|
border-bottom: 0;
|
|
452
476
|
border-radius: var(--ol-radius) var(--ol-radius) 0 0;
|
|
453
477
|
background: var(--ol-surface);
|
|
@@ -483,9 +507,13 @@
|
|
|
483
507
|
position: absolute;
|
|
484
508
|
z-index: calc(var(--ol-z) + 20);
|
|
485
509
|
min-width: 12rem;
|
|
510
|
+
/* Capped, so a deep menu opened low on a short window can be flipped above
|
|
511
|
+
its trigger instead of running off the bottom of the page. */
|
|
512
|
+
max-height: 60vh;
|
|
513
|
+
overflow-y: auto;
|
|
486
514
|
margin: 0;
|
|
487
515
|
padding: 4px;
|
|
488
|
-
border: 1px solid var(--ol-border);
|
|
516
|
+
border: 1px solid var(--ol-border-strong);
|
|
489
517
|
border-radius: var(--ol-radius);
|
|
490
518
|
background: var(--ol-surface);
|
|
491
519
|
box-shadow: 0 8px 24px rgb(0 0 0 / 12%);
|
|
@@ -507,13 +535,18 @@
|
|
|
507
535
|
cursor: pointer;
|
|
508
536
|
appearance: none;
|
|
509
537
|
}
|
|
510
|
-
.ol-editor .ol-menu-item:hover
|
|
538
|
+
.ol-editor .ol-menu-item:hover {
|
|
539
|
+
background: var(--ol-surface-hover);
|
|
540
|
+
}
|
|
541
|
+
/* Was outline:none plus a 1.13:1 background swap. See "Menu focus" above. */
|
|
511
542
|
.ol-editor .ol-menu-item:focus-visible {
|
|
512
543
|
background: var(--ol-surface-hover);
|
|
513
|
-
outline:
|
|
544
|
+
outline: var(--ol-focus-width) solid var(--ol-focus);
|
|
545
|
+
outline-offset: -2px;
|
|
514
546
|
}
|
|
547
|
+
/* 0.55, not 0.4: see "Disabled is not invisible" above. */
|
|
515
548
|
.ol-editor .ol-menu-item[aria-disabled="true"] {
|
|
516
|
-
opacity: 0.
|
|
549
|
+
opacity: 0.55;
|
|
517
550
|
cursor: default;
|
|
518
551
|
}
|
|
519
552
|
.ol-editor .ol-menu-sep {
|
|
@@ -521,6 +554,14 @@
|
|
|
521
554
|
margin: 4px 0;
|
|
522
555
|
background: var(--ol-border);
|
|
523
556
|
}
|
|
557
|
+
/* `display: flex` on .ol-toolbar above outranks the UA's `[hidden]` rule --
|
|
558
|
+
a class selector beats an attribute selector on specificity -- so setting
|
|
559
|
+
`el.hidden = true` in floating.ts styled a hidden bar and showed it anyway.
|
|
560
|
+
Both floating bars sat over the prose at rest, with no selection to format.
|
|
561
|
+
The overflow panel needed the same rule for the same reason; see below. */
|
|
562
|
+
.ol-editor .ol-toolbar.ol-floating[hidden] {
|
|
563
|
+
display: none;
|
|
564
|
+
}
|
|
524
565
|
.ol-editor .ol-toolbar.ol-floating {
|
|
525
566
|
position: absolute;
|
|
526
567
|
flex-wrap: nowrap;
|
|
@@ -533,6 +574,33 @@
|
|
|
533
574
|
flex-wrap: nowrap;
|
|
534
575
|
overflow: hidden;
|
|
535
576
|
}
|
|
577
|
+
/* The More panel. Positioned in viewport coordinates from script, because the
|
|
578
|
+
bar it belongs to may live inside a host with `overflow: hidden` -- which is
|
|
579
|
+
the situation the whole feature exists for. */
|
|
580
|
+
.ol-editor .ol-overflow-menu {
|
|
581
|
+
display: flex;
|
|
582
|
+
flex-direction: column;
|
|
583
|
+
align-items: stretch;
|
|
584
|
+
gap: var(--ol-gap);
|
|
585
|
+
max-height: 70vh;
|
|
586
|
+
overflow-y: auto;
|
|
587
|
+
}
|
|
588
|
+
.ol-editor .ol-overflow-menu[hidden] {
|
|
589
|
+
display: none;
|
|
590
|
+
}
|
|
591
|
+
/* Vertical: the panel exists because there is no horizontal room left. */
|
|
592
|
+
.ol-editor .ol-overflow-menu .ol-group {
|
|
593
|
+
flex-direction: column;
|
|
594
|
+
align-items: stretch;
|
|
595
|
+
}
|
|
596
|
+
.ol-editor .ol-overflow-menu .ol-group + .ol-group {
|
|
597
|
+
border-inline-start: 0;
|
|
598
|
+
border-block-start: 1px solid var(--ol-border);
|
|
599
|
+
padding-inline-start: 0;
|
|
600
|
+
margin-inline-start: 0;
|
|
601
|
+
padding-block-start: 4px;
|
|
602
|
+
margin-block-start: 3px;
|
|
603
|
+
}
|
|
536
604
|
.ol-editor.ol-visual-aids .ol-empty-block {
|
|
537
605
|
outline: 1px dashed var(--ol-border);
|
|
538
606
|
outline-offset: 2px;
|
|
@@ -639,4 +707,38 @@
|
|
|
639
707
|
color: GrayText;
|
|
640
708
|
opacity: 1;
|
|
641
709
|
}
|
|
710
|
+
.ol-editor .ol-menu-item:focus-visible {
|
|
711
|
+
outline-color: Highlight;
|
|
712
|
+
}
|
|
713
|
+
.ol-editor .ol-menu-item[aria-disabled="true"] {
|
|
714
|
+
color: GrayText;
|
|
715
|
+
opacity: 1;
|
|
716
|
+
}
|
|
717
|
+
.ol-editor .ol-menu-trigger[aria-expanded="true"] {
|
|
718
|
+
border-color: Highlight;
|
|
719
|
+
color: Highlight;
|
|
720
|
+
}
|
|
721
|
+
.ol-editor .ol-content .ProseMirror .selectedCell {
|
|
722
|
+
outline-color: Highlight;
|
|
723
|
+
}
|
|
724
|
+
.ol-editor .ol-content .ProseMirror .selectedCell::after {
|
|
725
|
+
background: transparent;
|
|
726
|
+
}
|
|
727
|
+
.ol-editor .ol-content .ProseMirror .column-resize-handle {
|
|
728
|
+
background: Highlight;
|
|
729
|
+
}
|
|
730
|
+
.ol-editor.ol-visual-aids .ol-nbsp {
|
|
731
|
+
background: transparent;
|
|
732
|
+
box-shadow: inset 0 -2px 0 Highlight;
|
|
733
|
+
}
|
|
734
|
+
.ol-editor.ol-visual-aids .ol-hidden-structure {
|
|
735
|
+
outline-color: Highlight;
|
|
736
|
+
}
|
|
737
|
+
.ol-editor.ol-visual-aids .ol-empty-block {
|
|
738
|
+
outline-color: GrayText;
|
|
739
|
+
}
|
|
740
|
+
.ol-editor .ol-noneditable {
|
|
741
|
+
background: transparent;
|
|
742
|
+
outline: 1px dashed GrayText;
|
|
743
|
+
}
|
|
642
744
|
}
|
package/dist/overflow.d.ts
CHANGED
|
@@ -1,15 +1,42 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Collapse overflowing toolbar groups into a "More"
|
|
2
|
+
* Collapse overflowing toolbar groups into a "More" panel.
|
|
3
3
|
*
|
|
4
4
|
* Wrapping is the default for a reason: a control that moved behind a click is
|
|
5
5
|
* a control the author does not have. Overflow is therefore opt-in. When it is
|
|
6
|
-
* on, groups that do not fit the current width are
|
|
7
|
-
* offered in a
|
|
6
|
+
* on, groups that do not fit the current width are moved out of the bar and
|
|
7
|
+
* offered in a panel at the end, so a narrow CMS sidebar still has every item
|
|
8
8
|
* without a two-row bar.
|
|
9
|
+
*
|
|
10
|
+
* ## Why the real controls move rather than being cloned
|
|
11
|
+
*
|
|
12
|
+
* The first implementation cloned each control into a `role="menu"`. Cloning a
|
|
13
|
+
* live control produces a listener-free copy that has to forward every
|
|
14
|
+
* interaction back to an original it can only find by id, duplicates that id
|
|
15
|
+
* and the accessible name, and goes stale the moment the caret moves -- three
|
|
16
|
+
* bugs that only exist because there were two of everything. Moving the group
|
|
17
|
+
* node itself has none of them: the control in the panel IS the control, so it
|
|
18
|
+
* carries its own listeners, its own state and its own accessible name, and
|
|
19
|
+
* nothing can drift.
|
|
20
|
+
*
|
|
21
|
+
* ## The keyboard pattern
|
|
22
|
+
*
|
|
23
|
+
* The panel is a vertical `role="toolbar"`, not a `role="menu"`: a menu owns a
|
|
24
|
+
* content model of `menuitem` children, and a `<select>` is not one -- the
|
|
25
|
+
* default bar has four. So the panel is the same widget as the bar it came
|
|
26
|
+
* from, turned ninety degrees, and it keeps the same contract: one tab stop,
|
|
27
|
+
* arrow keys to move, Home/End to the ends, Escape back to the trigger. Tab
|
|
28
|
+
* closes, because a panel a keyboard user can walk out of and leave open is the
|
|
29
|
+
* failure mode of every hand-rolled popup.
|
|
30
|
+
*
|
|
31
|
+
* Up/Down are taken from a `<select>` inside the panel the same way Left/Right
|
|
32
|
+
* are taken from one in the bar; Alt+Down still opens its list, and typeahead
|
|
33
|
+
* still selects. Home/End are left to the select, which uses them for its own
|
|
34
|
+
* first and last option.
|
|
9
35
|
*/
|
|
10
36
|
export declare class ToolbarOverflow {
|
|
11
37
|
#private;
|
|
12
|
-
constructor(toolbar: HTMLElement, host: HTMLElement, doc: Document);
|
|
38
|
+
constructor(toolbar: HTMLElement, host: HTMLElement, doc: Document, onLayout?: () => void);
|
|
39
|
+
/** Re-home the trigger after the toolbar rebuilt its children. */
|
|
13
40
|
reattach(): void;
|
|
14
41
|
destroy(): void;
|
|
15
42
|
layout(): void;
|