@oscarpalmer/oui 0.39.0 → 0.41.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/dist/css/color-picker.css +80 -69
- package/dist/css/listbox.css +169 -0
- package/dist/js/color-picker/color-picker.constants.d.mts +2 -0
- package/dist/js/color-picker/{constants.color-picker.mjs → color-picker.constants.mjs} +7 -4
- package/dist/js/color-picker/{dom.color-picker.d.mts → color-picker.dom.d.mts} +2 -2
- package/dist/js/color-picker/{dom.color-picker.mjs → color-picker.dom.mjs} +33 -16
- package/dist/js/color-picker/{event.color-picker.d.mts → color-picker.event.d.mts} +3 -3
- package/dist/js/color-picker/color-picker.event.mjs +233 -0
- package/dist/js/color-picker/{form.color-picker.d.mts → color-picker.form.d.mts} +2 -2
- package/dist/js/color-picker/{form.color-picker.mjs → color-picker.form.mjs} +9 -8
- package/dist/js/color-picker/color-picker.misc.d.mts +2 -0
- package/dist/js/color-picker/color-picker.misc.mjs +104 -0
- package/dist/js/color-picker/color-picker.model.d.mts +2 -0
- package/dist/js/color-picker/{models.color-picker.mjs → color-picker.model.mjs} +1 -1
- package/dist/js/color-picker/{output.color-picker.d.mts → color-picker.output.d.mts} +2 -2
- package/dist/js/color-picker/{output.color-picker.mjs → color-picker.output.mjs} +19 -18
- package/dist/js/color-picker/color-picker.state.d.mts +8 -0
- package/dist/js/color-picker/color-picker.state.mjs +168 -0
- package/dist/js/color-picker/index.d.mts +172 -2
- package/dist/js/color-picker/index.mjs +66 -59
- package/dist/js/color-picker.constants-BZgXQr5o.d.mts +177 -0
- package/dist/js/color-picker.misc-BIS3R6jk.d.mts +31 -0
- package/dist/js/combobox/combobox.constants.d.mts +2 -0
- package/dist/js/combobox/{constants.combobox.mjs → combobox.constants.mjs} +21 -21
- package/dist/js/combobox/combobox.dom.d.mts +25 -0
- package/dist/js/combobox/{dom.combobox.mjs → combobox.dom.mjs} +51 -49
- package/dist/js/combobox/{event.combobox.d.mts → combobox.event.d.mts} +9 -9
- package/dist/js/combobox/{event.combobox.mjs → combobox.event.mjs} +1 -1
- package/dist/js/combobox/combobox.misc.d.mts +2 -0
- package/dist/js/combobox/combobox.misc.mjs +2 -0
- package/dist/js/combobox/combobox.model.d.mts +2 -0
- package/dist/js/combobox/combobox.state.d.mts +9 -0
- package/dist/js/combobox/combobox.state.mjs +2 -0
- package/dist/js/combobox/index.d.mts +152 -2
- package/dist/js/combobox/index.mjs +54 -55
- package/dist/js/combobox.constants-Hb3bqqQJ.d.mts +19 -0
- package/dist/js/combobox.misc-DRDFk6X8.d.mts +26 -0
- package/dist/js/combobox.model-gjEI2VqZ.d.mts +46 -0
- package/dist/js/{state.combobox-BWDFHwoi.mjs → combobox.state-AstCICiH.mjs} +109 -106
- package/dist/js/dialog/dialog.model.d.mts +2 -0
- package/dist/js/dialog/dialog.model.mjs +11 -0
- package/dist/js/dialog/index.d.mts +12 -0
- package/dist/js/dialog/index.mjs +123 -0
- package/dist/js/dialog.model-HVzYWoDo.d.mts +45 -0
- package/dist/js/floatable/floatable.embedded.d.mts +2 -2
- package/dist/js/floatable/floatable.embedded.mjs +64 -92
- package/dist/js/floatable/floatable.model.d.mts +2 -0
- package/dist/js/floatable/floatable.model.mjs +23 -0
- package/dist/js/floatable/floatable.standalone.d.mts +2 -1
- package/dist/js/floatable.embedded-ncshL3Sa.d.mts +17 -0
- package/dist/js/{floatable.embedded-DQYkXt8X.d.mts → floatable.model-DXsQgoU7.d.mts} +13 -20
- package/dist/js/focus-trap/focus-trap.embedded.d.mts +2 -2
- package/dist/js/focus-trap/focus-trap.embedded.mjs +117 -138
- package/dist/js/focus-trap/focus-trap.model.d.mts +2 -0
- package/dist/js/focus-trap/focus-trap.model.mjs +15 -0
- package/dist/js/focus-trap/focus-trap.standalone.d.mts +2 -1
- package/dist/js/focus-trap.embedded-DpcPkP7c.d.mts +13 -0
- package/dist/js/{focus-trap.embedded-CjyFQYow.d.mts → focus-trap.model-CpltX5B5.d.mts} +16 -18
- package/dist/js/index.d.mts +26 -14
- package/dist/js/index.mjs +18 -17
- package/dist/js/internal/attributable.d.mts +1 -1
- package/dist/js/internal/attributable.mjs +3 -2
- package/dist/js/internal/draggable/draggable.model.d.mts +2 -0
- package/dist/js/internal/draggable/draggable.model.mjs +37 -0
- package/dist/js/internal/draggable/index.d.mts +13 -0
- package/dist/js/internal/draggable/index.mjs +243 -0
- package/dist/js/internal/l10n/index.d.mts +5 -0
- package/dist/js/internal/l10n/index.mjs +147 -0
- package/dist/js/internal/l10n/l10n.model.d.mts +2 -0
- package/dist/js/internal/l10n/l10n.model.mjs +12 -0
- package/dist/js/internal/misc.d.mts +3 -2
- package/dist/js/internal/misc.mjs +4 -6
- package/dist/js/internal/navigable/index.d.mts +6 -0
- package/dist/js/internal/navigable/index.mjs +125 -0
- package/dist/js/internal/navigable/navigable.model.d.mts +2 -0
- package/dist/js/internal/navigable/navigable.model.mjs +18 -0
- package/dist/js/internal/option-list/option-list.constants.d.mts +8 -0
- package/dist/js/internal/option-list/option-list.constants.mjs +22 -0
- package/dist/js/internal/option-list/option-list.data.d.mts +21 -0
- package/dist/js/internal/option-list/option-list.data.mjs +2 -0
- package/dist/js/internal/option-list/option-list.dom.d.mts +18 -0
- package/dist/js/internal/option-list/option-list.dom.mjs +2 -0
- package/dist/js/internal/option-list/option-list.event.d.mts +6 -0
- package/dist/js/internal/option-list/option-list.event.mjs +66 -0
- package/dist/js/internal/option-list/option-list.form.d.mts +7 -0
- package/dist/js/internal/option-list/option-list.form.mjs +53 -0
- package/dist/js/internal/option-list/option-list.misc.d.mts +13 -0
- package/dist/js/internal/option-list/option-list.misc.mjs +2 -0
- package/dist/js/internal/option-list/option-list.model.d.mts +2 -0
- package/dist/js/internal/option-list/option-list.state.d.mts +8 -0
- package/dist/js/internal/option-list/option-list.state.mjs +39 -0
- package/dist/js/l10n/index.d.mts +3 -0
- package/dist/js/l10n/index.mjs +2 -0
- package/dist/js/l10n.model-D1E1u35L.d.mts +54 -0
- package/dist/js/listbox/index.d.mts +9 -18
- package/dist/js/listbox/index.mjs +49 -52
- package/dist/js/listbox/listbox.constants.d.mts +2 -0
- package/dist/js/listbox/{constants.listbox.mjs → listbox.constants.mjs} +11 -15
- package/dist/js/listbox/listbox.dom.d.mts +5 -0
- package/dist/js/listbox/listbox.dom.mjs +2 -0
- package/dist/js/listbox/listbox.event.d.mts +9 -0
- package/dist/js/listbox/listbox.event.mjs +2 -0
- package/dist/js/listbox/listbox.misc.d.mts +2 -0
- package/dist/js/listbox/listbox.misc.mjs +2 -0
- package/dist/js/listbox/listbox.model.d.mts +2 -0
- package/dist/js/listbox/listbox.model.mjs +1 -0
- package/dist/js/listbox/listbox.state.d.mts +9 -0
- package/dist/js/listbox/listbox.state.mjs +2 -0
- package/dist/js/listbox.constants-DOBMwKup.d.mts +9 -0
- package/dist/js/listbox.misc-DwfB4Mu_.d.mts +24 -0
- package/dist/js/listbox.model-C0MYWXZe.d.mts +20 -0
- package/dist/js/listbox.state-BrN296BM.mjs +240 -0
- package/dist/js/menu/index.mjs +171 -0
- package/dist/js/menu/menu.model.d.mts +33 -0
- package/dist/js/menu/menu.model.mjs +15 -0
- package/dist/js/movable/movable.embedded.d.mts +2 -2
- package/dist/js/movable/movable.embedded.mjs +77 -86
- package/dist/js/movable/movable.model.d.mts +2 -0
- package/dist/js/movable/movable.model.mjs +12 -0
- package/dist/js/movable/movable.standalone.d.mts +2 -1
- package/dist/js/movable.embedded-C1bDTLGs.d.mts +11 -0
- package/dist/js/movable.model-D9nnPWKk.d.mts +186 -0
- package/dist/js/navigable.model-BqoR6iBv.d.mts +44 -0
- package/dist/js/option-list.data-CgMyUwPc.mjs +441 -0
- package/dist/js/option-list.model-CCPUlPeX.d.mts +169 -0
- package/dist/js/popover/index.d.mts +12 -0
- package/dist/js/{popover.mjs → popover/index.mjs} +41 -51
- package/dist/js/popover/popover.model.d.mts +2 -0
- package/dist/js/popover/popover.model.mjs +12 -0
- package/dist/js/popover.model-DiLdz0Hc.d.mts +38 -0
- package/dist/js/resizable/resizable.embedded.d.mts +2 -2
- package/dist/js/resizable/resizable.embedded.mjs +43 -58
- package/dist/js/resizable/resizable.model.d.mts +2 -0
- package/dist/js/resizable/resizable.model.mjs +21 -0
- package/dist/js/resizable/resizable.standalone.d.mts +2 -1
- package/dist/js/resizable.embedded-BemH-7Re.d.mts +11 -0
- package/dist/js/resizable.model-YEtcC9li.d.mts +46 -0
- package/dist/js/sortable/sortable.embedded.d.mts +2 -2
- package/dist/js/sortable/sortable.embedded.mjs +111 -116
- package/dist/js/sortable/sortable.model.d.mts +2 -0
- package/dist/js/sortable/sortable.model.mjs +24 -0
- package/dist/js/sortable/sortable.standalone.d.mts +2 -1
- package/dist/js/sortable.embedded-CrEGff9k.d.mts +11 -0
- package/dist/js/{splitter.d.mts → splitter/index.d.mts} +6 -4
- package/dist/js/{splitter.mjs → splitter/index.mjs} +90 -128
- package/dist/js/splitter/splitter.model.d.mts +2 -0
- package/dist/js/splitter/splitter.model.mjs +37 -0
- package/dist/js/splitter.model-C24W6eZ7.d.mts +57 -0
- package/dist/js/{tabs.d.mts → tabs/index.d.mts} +8 -8
- package/dist/js/{tabs.mjs → tabs/index.mjs} +58 -58
- package/dist/js/tabs/tabs.model.d.mts +2 -0
- package/dist/js/tabs/tabs.model.mjs +18 -0
- package/dist/js/tabs.model-BHPy7fPo.d.mts +40 -0
- package/dist/js/toolbar/index.mjs +27 -0
- package/dist/js/toolbar/toolbar.model.d.mts +11 -0
- package/dist/js/toolbar/toolbar.model.mjs +7 -0
- package/dist/js/tooltip/index.d.mts +19 -0
- package/dist/js/{tooltip.mjs → tooltip/index.mjs} +61 -86
- package/dist/js/tooltip/tooltip.model.d.mts +2 -0
- package/dist/js/tooltip/tooltip.model.mjs +15 -0
- package/dist/js/tooltip.model-BpNStw5z.d.mts +37 -0
- package/package.json +30 -24
- package/dist/js/color-picker/constants.color-picker.d.mts +0 -2
- package/dist/js/color-picker/event.color-picker.mjs +0 -2
- package/dist/js/color-picker/misc.color-picker.d.mts +0 -2
- package/dist/js/color-picker/misc.color-picker.mjs +0 -2
- package/dist/js/color-picker/models.color-picker.d.mts +0 -2
- package/dist/js/color-picker/state.color-picker.d.mts +0 -8
- package/dist/js/color-picker/state.color-picker.mjs +0 -2
- package/dist/js/combobox/constants.combobox.d.mts +0 -2
- package/dist/js/combobox/dom.combobox.d.mts +0 -26
- package/dist/js/combobox/misc.combobox.d.mts +0 -2
- package/dist/js/combobox/misc.combobox.mjs +0 -2
- package/dist/js/combobox/models.combobox.d.mts +0 -43
- package/dist/js/combobox/state.combobox.d.mts +0 -11
- package/dist/js/combobox/state.combobox.mjs +0 -2
- package/dist/js/constants.color-picker-B-gFjL8m.d.mts +0 -364
- package/dist/js/constants.combobox-8EMRmv09.d.mts +0 -18
- package/dist/js/constants.listbox-DGnX32kv.d.mts +0 -8
- package/dist/js/dialog.d.mts +0 -47
- package/dist/js/dialog.mjs +0 -131
- package/dist/js/draggable-B5-70SZm.d.mts +0 -155
- package/dist/js/event.color-picker-BEpq0Adu.mjs +0 -485
- package/dist/js/index-C5D3-oiI.d.mts +0 -177
- package/dist/js/internal/draggable.d.mts +0 -2
- package/dist/js/internal/draggable.mjs +0 -265
- package/dist/js/internal/listbox/listbox.constants.d.mts +0 -8
- package/dist/js/internal/listbox/listbox.constants.mjs +0 -22
- package/dist/js/internal/listbox/listbox.data.d.mts +0 -19
- package/dist/js/internal/listbox/listbox.data.mjs +0 -2
- package/dist/js/internal/listbox/listbox.dom.d.mts +0 -65
- package/dist/js/internal/listbox/listbox.dom.mjs +0 -2
- package/dist/js/internal/listbox/listbox.event.d.mts +0 -4
- package/dist/js/internal/listbox/listbox.event.mjs +0 -63
- package/dist/js/internal/listbox/listbox.form.d.mts +0 -5
- package/dist/js/internal/listbox/listbox.form.mjs +0 -53
- package/dist/js/internal/listbox/listbox.misc.d.mts +0 -11
- package/dist/js/internal/listbox/listbox.misc.mjs +0 -2
- package/dist/js/internal/listbox/listbox.model.d.mts +0 -2
- package/dist/js/internal/listbox/listbox.state.d.mts +0 -6
- package/dist/js/internal/listbox/listbox.state.mjs +0 -40
- package/dist/js/internal/navigable.d.mts +0 -36
- package/dist/js/internal/navigable.mjs +0 -135
- package/dist/js/l10n-Bn-7RcwR.d.mts +0 -20
- package/dist/js/l10n.d.mts +0 -2
- package/dist/js/l10n.mjs +0 -80
- package/dist/js/listbox/constants.listbox.d.mts +0 -2
- package/dist/js/listbox/event.listbox.d.mts +0 -7
- package/dist/js/listbox/event.listbox.mjs +0 -2
- package/dist/js/listbox/misc.listbox.d.mts +0 -2
- package/dist/js/listbox/misc.listbox.mjs +0 -2
- package/dist/js/listbox/state.listbox.d.mts +0 -10
- package/dist/js/listbox/state.listbox.mjs +0 -2
- package/dist/js/listbox.data-DQ7-x2uY.mjs +0 -425
- package/dist/js/listbox.model-BHPA7GM4.d.mts +0 -125
- package/dist/js/menu.mjs +0 -172
- package/dist/js/misc.listbox-DKB-j0UK.mjs +0 -196
- package/dist/js/misc.listbox-mZMuYOxg.d.mts +0 -20
- package/dist/js/popover.d.mts +0 -38
- package/dist/js/resizable.embedded-dvhdfQgt.d.mts +0 -34
- package/dist/js/toolbar.mjs +0 -31
- package/dist/js/tooltip.d.mts +0 -45
- /package/dist/js/combobox/{models.combobox.mjs → combobox.model.mjs} +0 -0
- /package/dist/js/internal/{listbox/listbox.model.mjs → option-list/option-list.model.mjs} +0 -0
- /package/dist/js/{menu.d.mts → menu/index.d.mts} +0 -0
- /package/dist/js/{toolbar.d.mts → toolbar/index.d.mts} +0 -0
package/dist/js/menu.mjs
DELETED
|
@@ -1,172 +0,0 @@
|
|
|
1
|
-
import { createEmbeddedFloatable, getOnBeforeToggleListener } from "./floatable/floatable.embedded.mjs";
|
|
2
|
-
import { attributable } from "./internal/attributable.mjs";
|
|
3
|
-
import { NAVIGABLE_KEYS_HORIZONTAL, NAVIGABLE_KEYS_VERTICAL, getNavigable, updateNavigableFocus } from "./internal/navigable.mjs";
|
|
4
|
-
import { setAria, setRole } from "@oscarpalmer/toretto/aria";
|
|
5
|
-
import { on } from "@oscarpalmer/toretto/event";
|
|
6
|
-
import { setAttribute, setAttributes } from "@oscarpalmer/toretto/attribute";
|
|
7
|
-
import { findAncestor } from "@oscarpalmer/toretto/find";
|
|
8
|
-
//#region src/js/menu.ts
|
|
9
|
-
var OuiMenu = class {
|
|
10
|
-
content;
|
|
11
|
-
element;
|
|
12
|
-
floatable;
|
|
13
|
-
navigable;
|
|
14
|
-
toggle;
|
|
15
|
-
get open() {
|
|
16
|
-
return this.floatable.open;
|
|
17
|
-
}
|
|
18
|
-
constructor(element, navigable) {
|
|
19
|
-
this.element = element;
|
|
20
|
-
this.navigable = navigable;
|
|
21
|
-
this.content = navigable.element;
|
|
22
|
-
this.toggle = element.querySelector(SELECTOR_MENU_TOGGLE);
|
|
23
|
-
this.floatable = createEmbeddedFloatable(this.toggle, this.content, {
|
|
24
|
-
attribute: ATTRIBUTE_MENU_POSITION,
|
|
25
|
-
position: findAncestor(element.parentElement, SELECTOR_MENU_CONTENT) == null ? "below-start" : "end-top",
|
|
26
|
-
reusable: false
|
|
27
|
-
});
|
|
28
|
-
this.navigable.listeners.push(getOnBeforeToggleListener(this.content), on(this.content, "click", (event) => {
|
|
29
|
-
event.stopPropagation();
|
|
30
|
-
if (findAncestor(event, SELECTOR_MENU_TOGGLE) != null) return;
|
|
31
|
-
const elements = document.querySelectorAll(SELECTOR_MENU_CONTENT);
|
|
32
|
-
for (const element of elements) menus.get(element)?.floatable.hide();
|
|
33
|
-
const menu = menus.get(elements[0]);
|
|
34
|
-
if (menu != null && event.pointerId === -1) updateNavigableFocus(menu.navigable, true);
|
|
35
|
-
}), on(this.content, "toggle", (event) => {
|
|
36
|
-
const expanded = event.newState === "open";
|
|
37
|
-
if (expanded) {
|
|
38
|
-
this.floatable?.update();
|
|
39
|
-
updateNavigableFocus(this.navigable, true);
|
|
40
|
-
}
|
|
41
|
-
setAria(this.toggle, "expanded", expanded);
|
|
42
|
-
}));
|
|
43
|
-
this.floatable.update();
|
|
44
|
-
initializeMenu(this);
|
|
45
|
-
updateNavigableFocus(this.navigable, false);
|
|
46
|
-
}
|
|
47
|
-
destroy() {
|
|
48
|
-
this.floatable.destroy();
|
|
49
|
-
this.navigable.destroy();
|
|
50
|
-
this.floatable = void 0;
|
|
51
|
-
this.navigable = void 0;
|
|
52
|
-
}
|
|
53
|
-
};
|
|
54
|
-
var OuiMenubar = class {
|
|
55
|
-
element;
|
|
56
|
-
navigable;
|
|
57
|
-
constructor(element, navigable) {
|
|
58
|
-
this.element = element;
|
|
59
|
-
this.navigable = navigable;
|
|
60
|
-
updateNavigableFocus(this.navigable, false);
|
|
61
|
-
}
|
|
62
|
-
destroy() {
|
|
63
|
-
this.navigable.destroy();
|
|
64
|
-
this.navigable = void 0;
|
|
65
|
-
}
|
|
66
|
-
};
|
|
67
|
-
function addInstance(instances, ctor, element, content, options) {
|
|
68
|
-
if (!instances.has(content)) instances.set(content, new ctor(element, getNavigable(content, {
|
|
69
|
-
...options,
|
|
70
|
-
onDeactivate,
|
|
71
|
-
onPreventNavigation,
|
|
72
|
-
onShouldActivate,
|
|
73
|
-
onShouldDeactivate
|
|
74
|
-
})));
|
|
75
|
-
}
|
|
76
|
-
function addMenu(element) {
|
|
77
|
-
const content = element.querySelector(SELECTOR_MENU_CONTENT);
|
|
78
|
-
const toggle = element.querySelector(SELECTOR_MENU_TOGGLE);
|
|
79
|
-
if (content != null && toggle != null) addInstance(menus, OuiMenu, element, content, {
|
|
80
|
-
selector: SELECTOR_MENU_ITEM,
|
|
81
|
-
vertical: true
|
|
82
|
-
});
|
|
83
|
-
}
|
|
84
|
-
function addMenubar(element) {
|
|
85
|
-
addInstance(menubars, OuiMenubar, element, element, {
|
|
86
|
-
role: "menubar",
|
|
87
|
-
selector: SELECTOR_MENUBAR_ITEM,
|
|
88
|
-
vertical: false
|
|
89
|
-
});
|
|
90
|
-
}
|
|
91
|
-
function getId(element, value) {
|
|
92
|
-
let { id } = element;
|
|
93
|
-
if (id == null || id.trim().length === 0) {
|
|
94
|
-
id = value == null ? `oui_menu_${++index}` : `${value}_toggle`;
|
|
95
|
-
element.id = id;
|
|
96
|
-
}
|
|
97
|
-
return id;
|
|
98
|
-
}
|
|
99
|
-
function initializeMenu(menu) {
|
|
100
|
-
const id = getId(menu.content);
|
|
101
|
-
setAttribute(menu.toggle, "popovertarget", id);
|
|
102
|
-
setAria(menu.toggle, {
|
|
103
|
-
controls: id,
|
|
104
|
-
expanded: "false",
|
|
105
|
-
haspopup: "menu"
|
|
106
|
-
});
|
|
107
|
-
setAttributes(menu.content, {
|
|
108
|
-
popover: "",
|
|
109
|
-
tabindex: "-1"
|
|
110
|
-
});
|
|
111
|
-
setRole(menu.content, "menu");
|
|
112
|
-
}
|
|
113
|
-
function onDeactivate(_, navigable) {
|
|
114
|
-
const menu = menus.get(navigable.element);
|
|
115
|
-
if (menu == null) return;
|
|
116
|
-
menu.floatable.hide();
|
|
117
|
-
const element = findAncestor(menu.element.parentElement, SELECTORS);
|
|
118
|
-
if (element == null) return;
|
|
119
|
-
const instance = menubars.get(element) ?? menus.get(element);
|
|
120
|
-
if (instance != null) updateNavigableFocus(instance.navigable, true);
|
|
121
|
-
}
|
|
122
|
-
function onPreventNavigation(_, navigable) {
|
|
123
|
-
const instance = menubars.get(navigable.element) ?? menus.get(navigable.element);
|
|
124
|
-
return instance == null ? false : findAncestor(instance.element.parentElement, SELECTORS) != null;
|
|
125
|
-
}
|
|
126
|
-
function onShouldActivate(event, navigable) {
|
|
127
|
-
let activate = false;
|
|
128
|
-
if (menubars.has(navigable.element)) activate = navigable.orientation === "horizontal" ? NAVIGABLE_KEYS_VERTICAL.has(event.key) : NAVIGABLE_KEYS_HORIZONTAL.has(event.key);
|
|
129
|
-
else if (menus.has(navigable.element)) activate = navigable.orientation === "horizontal" ? NAVIGABLE_KEYS_VERTICAL.has(event.key) : event.key === "ArrowRight";
|
|
130
|
-
if (activate) {
|
|
131
|
-
const target = event.target instanceof HTMLElement && event.target.matches(SELECTOR_MENU_TOGGLE) ? event.target : void 0;
|
|
132
|
-
if (target == null) activate = false;
|
|
133
|
-
else target.click();
|
|
134
|
-
}
|
|
135
|
-
return activate;
|
|
136
|
-
}
|
|
137
|
-
function onShouldDeactivate(event, navigable) {
|
|
138
|
-
if (menubars.has(navigable.element)) return;
|
|
139
|
-
const menu = menus.get(navigable.element);
|
|
140
|
-
if (menu == null) return;
|
|
141
|
-
const horizontal = navigable.orientation === "horizontal";
|
|
142
|
-
const altKey = horizontal ? "ArrowDown" : "ArrowRight";
|
|
143
|
-
const baseKey = horizontal ? "ArrowUp" : "ArrowLeft";
|
|
144
|
-
if (event.key === baseKey) return findAncestor(menu.element.parentElement, SELECTOR_MENU_CONTENT) != null;
|
|
145
|
-
if (event.key === altKey && event.target instanceof HTMLElement && !event.target.hasAttribute("popovertarget")) return false;
|
|
146
|
-
}
|
|
147
|
-
function removeInstance(instances, element) {
|
|
148
|
-
instances.get(element)?.destroy();
|
|
149
|
-
instances.delete(element);
|
|
150
|
-
}
|
|
151
|
-
function removeMenu(element) {
|
|
152
|
-
removeInstance(menus, element);
|
|
153
|
-
}
|
|
154
|
-
function removeMenubar(element) {
|
|
155
|
-
removeInstance(menubars, element);
|
|
156
|
-
}
|
|
157
|
-
const ATTRIBUTE_MENU = "oui-menu";
|
|
158
|
-
const ATTRIBUTE_MENU_POSITION = "oui-menu-position";
|
|
159
|
-
const ATTRIBUTE_MENUBAR = "oui-menubar";
|
|
160
|
-
const SELECTOR_MENUBAR = `[${ATTRIBUTE_MENUBAR}]`;
|
|
161
|
-
const SELECTOR_MENUBAR_ITEM = `:scope > [${ATTRIBUTE_MENUBAR}-item], :scope > * > [${ATTRIBUTE_MENUBAR}-item]`;
|
|
162
|
-
const SELECTOR_MENU_CONTENT = `[${ATTRIBUTE_MENU}-content]`;
|
|
163
|
-
const SELECTOR_MENU_ITEM = `:scope > [${ATTRIBUTE_MENU}-item], :scope > * > [${ATTRIBUTE_MENU}-item]`;
|
|
164
|
-
const SELECTOR_MENU_TOGGLE = `[${ATTRIBUTE_MENU}-toggle]`;
|
|
165
|
-
const SELECTORS = `${SELECTOR_MENUBAR}, ${SELECTOR_MENU_CONTENT}`;
|
|
166
|
-
const menubars = /* @__PURE__ */ new WeakMap();
|
|
167
|
-
const menus = /* @__PURE__ */ new WeakMap();
|
|
168
|
-
let index = 0;
|
|
169
|
-
attributable(ATTRIBUTE_MENU, addMenu, removeMenu);
|
|
170
|
-
attributable(ATTRIBUTE_MENUBAR, addMenubar, removeMenubar);
|
|
171
|
-
//#endregion
|
|
172
|
-
export {};
|
|
@@ -1,196 +0,0 @@
|
|
|
1
|
-
import { getLocalizations, updateLocalizations } from "./l10n.mjs";
|
|
2
|
-
import { getBooleanAriaValue } from "./internal/misc.mjs";
|
|
3
|
-
import { b as updateListboxValueLabel, c as createListboxContent, n as filterListbox, s as toggleListboxOption, t as applyListboxSelection, v as updateListboxMessage, x as generateListboxIds, y as updateListboxPreview } from "./listbox.data-DQ7-x2uY.mjs";
|
|
4
|
-
import { initializeListboxState } from "./internal/listbox/listbox.state.mjs";
|
|
5
|
-
import { processListboxKeydown } from "./internal/listbox/listbox.event.mjs";
|
|
6
|
-
import { LISTBOX_ATTRIBUTES, LISTBOX_MESSAGES, LISTBOX_SELECTORS, LISTBOX_TAGNAME } from "./listbox/constants.listbox.mjs";
|
|
7
|
-
import { on } from "@oscarpalmer/toretto/event";
|
|
8
|
-
import { setAttributes } from "@oscarpalmer/toretto/attribute";
|
|
9
|
-
import { findAncestor } from "@oscarpalmer/toretto/find";
|
|
10
|
-
import { noop } from "@oscarpalmer/atoms/function";
|
|
11
|
-
import { getData } from "@oscarpalmer/toretto/data";
|
|
12
|
-
//#region src/js/listbox/event.listbox.ts
|
|
13
|
-
function onListboxClick(event) {
|
|
14
|
-
const listbox = findAncestor(event, LISTBOX_TAGNAME);
|
|
15
|
-
const state = listboxStates.map.get(listbox);
|
|
16
|
-
if (listbox == null || state == null) return;
|
|
17
|
-
const option = findAncestor(event, LISTBOX_SELECTORS.option);
|
|
18
|
-
if (option == null) return;
|
|
19
|
-
if (state.disabled) state.filter.element.focus();
|
|
20
|
-
else if (state.readonly) updateListboxPreview("none", state, option, false);
|
|
21
|
-
else toggleListboxOption(state, option);
|
|
22
|
-
}
|
|
23
|
-
function onListboxEnter(state) {
|
|
24
|
-
if (!state.disabled && !state.readonly) toggleListboxOption(state, state.active);
|
|
25
|
-
}
|
|
26
|
-
function onListboxFilter(preview, state, _, active) {
|
|
27
|
-
updateListboxPreview(preview, state, active);
|
|
28
|
-
}
|
|
29
|
-
function onListboxInput(event) {
|
|
30
|
-
const listbox = findAncestor(event, LISTBOX_TAGNAME);
|
|
31
|
-
const state = listboxStates.map.get(listbox);
|
|
32
|
-
if (state?.filter.element === event.target) filterListbox(event.inputType, state);
|
|
33
|
-
}
|
|
34
|
-
function onListboxKeydown(event) {
|
|
35
|
-
const listbox = findAncestor(event, LISTBOX_TAGNAME);
|
|
36
|
-
const state = listboxStates.map.get(listbox);
|
|
37
|
-
if (state?.filter.element === event.target) processListboxKeydown(event, state);
|
|
38
|
-
}
|
|
39
|
-
function onListboxNavigation(preview, state, active) {
|
|
40
|
-
if (state.multiple || state.readonly) updateListboxPreview(preview, state, active);
|
|
41
|
-
else applyListboxSelection({
|
|
42
|
-
state,
|
|
43
|
-
option: active,
|
|
44
|
-
added: true,
|
|
45
|
-
selected: active == null ? [] : [active]
|
|
46
|
-
});
|
|
47
|
-
}
|
|
48
|
-
function onListboxToggle(state) {
|
|
49
|
-
state.filter.element.focus();
|
|
50
|
-
}
|
|
51
|
-
on(document, "click", onListboxClick);
|
|
52
|
-
on(document, "input", onListboxInput);
|
|
53
|
-
on(document, "keydown", onListboxKeydown, { passive: false });
|
|
54
|
-
//#endregion
|
|
55
|
-
//#region src/js/listbox/state.listbox.ts
|
|
56
|
-
function createListboxState(element, internals) {
|
|
57
|
-
const select = element.querySelector("select");
|
|
58
|
-
if (select == null) throw new Error(LISTBOX_MESSAGES.select);
|
|
59
|
-
const label = element.querySelector(`label[for="${select.id}"]`);
|
|
60
|
-
if (label == null) throw new Error(LISTBOX_MESSAGES.label);
|
|
61
|
-
element.id = select.id;
|
|
62
|
-
const disabled = getBooleanAriaValue(element, "disabled") || select.disabled;
|
|
63
|
-
const multiple = element.multiple || select.multiple;
|
|
64
|
-
const readonly = getBooleanAriaValue(element, "readonly");
|
|
65
|
-
const required = getBooleanAriaValue(element, "required") || select.required;
|
|
66
|
-
setAttributes(element, {
|
|
67
|
-
autocomplete: "none",
|
|
68
|
-
name: select.name === "" ? select.id : select.name
|
|
69
|
-
});
|
|
70
|
-
const id = getListboxId();
|
|
71
|
-
const labelId = label.id;
|
|
72
|
-
label.htmlFor = id;
|
|
73
|
-
label.id = `${id}_label`;
|
|
74
|
-
generateListboxIds(id, select);
|
|
75
|
-
const type = "select";
|
|
76
|
-
const content = createListboxContent({
|
|
77
|
-
element,
|
|
78
|
-
id,
|
|
79
|
-
label,
|
|
80
|
-
multiple,
|
|
81
|
-
select,
|
|
82
|
-
type,
|
|
83
|
-
attributes: LISTBOX_ATTRIBUTES,
|
|
84
|
-
autocomplete: listboxAutoComplete,
|
|
85
|
-
listbox: true
|
|
86
|
-
});
|
|
87
|
-
const { selected } = content.list.options;
|
|
88
|
-
const values = selected.length === 0 ? [""] : selected.map((option) => getData(option, "value", false) ?? "");
|
|
89
|
-
const state = {
|
|
90
|
-
disabled,
|
|
91
|
-
id,
|
|
92
|
-
internals,
|
|
93
|
-
message: content.message,
|
|
94
|
-
multiple,
|
|
95
|
-
readonly,
|
|
96
|
-
required,
|
|
97
|
-
select,
|
|
98
|
-
type,
|
|
99
|
-
active: selected[0],
|
|
100
|
-
attributes: LISTBOX_ATTRIBUTES,
|
|
101
|
-
autocomplete: listboxAutoComplete,
|
|
102
|
-
callbacks: listboxCallbacks,
|
|
103
|
-
content: content.element,
|
|
104
|
-
elements: [element, content.filter.element],
|
|
105
|
-
filter: {
|
|
106
|
-
element: content.filter.element,
|
|
107
|
-
value: ""
|
|
108
|
-
},
|
|
109
|
-
host: element,
|
|
110
|
-
label: {
|
|
111
|
-
id: labelId,
|
|
112
|
-
element: label
|
|
113
|
-
},
|
|
114
|
-
list: content.list.element,
|
|
115
|
-
listeners: [],
|
|
116
|
-
listbox: true,
|
|
117
|
-
localizations: {
|
|
118
|
-
component: {},
|
|
119
|
-
global: listboxLocalizations
|
|
120
|
-
},
|
|
121
|
-
name: element.name,
|
|
122
|
-
options: content.list.options,
|
|
123
|
-
values: {
|
|
124
|
-
current: values.slice(),
|
|
125
|
-
initial: values.slice(),
|
|
126
|
-
label: content.value
|
|
127
|
-
}
|
|
128
|
-
};
|
|
129
|
-
return initializeListboxState(state, listboxStates, onAttachListbox);
|
|
130
|
-
}
|
|
131
|
-
function onAttachListbox(state) {
|
|
132
|
-
const { content, select } = state;
|
|
133
|
-
select.hidden = true;
|
|
134
|
-
select.insertAdjacentElement("afterend", content);
|
|
135
|
-
select.remove();
|
|
136
|
-
}
|
|
137
|
-
function onDetachListbox(state) {
|
|
138
|
-
const { content, select } = state;
|
|
139
|
-
content.insertAdjacentElement("beforebegin", select);
|
|
140
|
-
content.remove();
|
|
141
|
-
select.hidden = false;
|
|
142
|
-
}
|
|
143
|
-
const listboxAutoComplete = {
|
|
144
|
-
both: false,
|
|
145
|
-
inline: false,
|
|
146
|
-
list: false,
|
|
147
|
-
none: true
|
|
148
|
-
};
|
|
149
|
-
const listboxCallbacks = {
|
|
150
|
-
data: {
|
|
151
|
-
onApply: noop,
|
|
152
|
-
onFilter: onListboxFilter,
|
|
153
|
-
onForm: noop,
|
|
154
|
-
onPreview: noop,
|
|
155
|
-
onToggle: onListboxToggle
|
|
156
|
-
},
|
|
157
|
-
keydown: {
|
|
158
|
-
onEnter: onListboxEnter,
|
|
159
|
-
onNavigation: onListboxNavigation,
|
|
160
|
-
onToggle: onListboxToggle
|
|
161
|
-
}
|
|
162
|
-
};
|
|
163
|
-
const listboxLocalizations = getLocalizations({
|
|
164
|
-
empty: "No results found",
|
|
165
|
-
input: "",
|
|
166
|
-
invalid: "Please select an option from the list",
|
|
167
|
-
max: (max) => `Please select fewer options (maximum is ${max})`,
|
|
168
|
-
min: (min) => `Please select more options (minimum is ${min})`,
|
|
169
|
-
remove: "",
|
|
170
|
-
results: (amount) => `${amount} results available`,
|
|
171
|
-
selected: (amount) => `${amount} selected`
|
|
172
|
-
});
|
|
173
|
-
const listboxStates = {
|
|
174
|
-
map: /* @__PURE__ */ new WeakMap(),
|
|
175
|
-
set: /* @__PURE__ */ new Set()
|
|
176
|
-
};
|
|
177
|
-
//#endregion
|
|
178
|
-
//#region src/js/listbox/misc.listbox.ts
|
|
179
|
-
function getListboxId() {
|
|
180
|
-
index += 1;
|
|
181
|
-
return `oui_listbox_${index}`;
|
|
182
|
-
}
|
|
183
|
-
function setListboxLocalizations(first, second) {
|
|
184
|
-
updateListboxLocalizations(listboxLocalizations, listboxLocalizations.values, first, second);
|
|
185
|
-
}
|
|
186
|
-
function updateListboxLocalizations(instance, destination, first, second) {
|
|
187
|
-
updateLocalizations(instance, typeof first === "string" ? { [first]: second } : first, destination, () => {
|
|
188
|
-
for (const state of listboxStates.set) {
|
|
189
|
-
updateListboxMessage(state);
|
|
190
|
-
updateListboxValueLabel(state);
|
|
191
|
-
}
|
|
192
|
-
});
|
|
193
|
-
}
|
|
194
|
-
let index = 0;
|
|
195
|
-
//#endregion
|
|
196
|
-
export { listboxLocalizations as a, onDetachListbox as c, onListboxNavigation as d, onListboxToggle as f, createListboxState as i, onListboxEnter as l, setListboxLocalizations as n, listboxStates as o, updateListboxLocalizations as r, onAttachListbox as s, getListboxId as t, onListboxFilter as u };
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import { t as OuiLocalizations } from "./l10n-Bn-7RcwR.mjs";
|
|
2
|
-
import { o as OuiListboxLocalizations } from "./listbox.model-BHPA7GM4.mjs";
|
|
3
|
-
//#region src/js/listbox/misc.listbox.d.ts
|
|
4
|
-
declare function getListboxId(): string;
|
|
5
|
-
/**
|
|
6
|
-
* Set listbox localizations for a specific language
|
|
7
|
-
*
|
|
8
|
-
* @param language Language code
|
|
9
|
-
* @param localizations Localizations for language
|
|
10
|
-
*/
|
|
11
|
-
declare function setListboxLocalizations(language: string, localizations: Partial<OuiListboxLocalizations>): void;
|
|
12
|
-
/**
|
|
13
|
-
* Set listbox localizations for one or more languages
|
|
14
|
-
*
|
|
15
|
-
* @param localizations Localizations for one or more languages
|
|
16
|
-
*/
|
|
17
|
-
declare function setListboxLocalizations(localizations: Record<string, Partial<OuiListboxLocalizations>>): void;
|
|
18
|
-
declare function updateListboxLocalizations(instance: OuiLocalizations<OuiListboxLocalizations>, destination: Record<string, Partial<OuiListboxLocalizations>>, first: string | Record<string, Partial<OuiListboxLocalizations>>, second?: Partial<OuiListboxLocalizations>): void;
|
|
19
|
-
//#endregion
|
|
20
|
-
export { setListboxLocalizations as n, updateListboxLocalizations as r, getListboxId as t };
|
package/dist/js/popover.d.mts
DELETED
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
import { r as OuiFloatable } from "./floatable.embedded-DQYkXt8X.mjs";
|
|
2
|
-
import { i as OuiFocusTrap } from "./focus-trap.embedded-CjyFQYow.mjs";
|
|
3
|
-
import { RemovableEventListener } from "@oscarpalmer/toretto/models";
|
|
4
|
-
//#region src/js/popover.d.ts
|
|
5
|
-
declare class OuiPopover {
|
|
6
|
-
#private;
|
|
7
|
-
/**
|
|
8
|
-
* Is the popover open?
|
|
9
|
-
*/
|
|
10
|
-
get open(): boolean;
|
|
11
|
-
set open(value: boolean);
|
|
12
|
-
constructor(state: OuiPopoverState);
|
|
13
|
-
/**
|
|
14
|
-
* Closes the popover
|
|
15
|
-
*/
|
|
16
|
-
hide(): void;
|
|
17
|
-
/**
|
|
18
|
-
* Opens the popover
|
|
19
|
-
*/
|
|
20
|
-
show(): void;
|
|
21
|
-
}
|
|
22
|
-
type OuiPopoverState = {
|
|
23
|
-
anchor: HTMLElement;
|
|
24
|
-
content: HTMLElement;
|
|
25
|
-
floatable: OuiFloatable;
|
|
26
|
-
focusTrap?: OuiFocusTrap;
|
|
27
|
-
listeners: RemovableEventListener[];
|
|
28
|
-
popover: OuiPopover;
|
|
29
|
-
};
|
|
30
|
-
/**
|
|
31
|
-
* Get the _OuiPopover_ for an element
|
|
32
|
-
*
|
|
33
|
-
* @param element Element to get _OuiPopover_ for
|
|
34
|
-
* @returns _OuiPopover_ instance
|
|
35
|
-
*/
|
|
36
|
-
declare function getPopover(element: HTMLElement): OuiPopover | undefined;
|
|
37
|
-
//#endregion
|
|
38
|
-
export { type OuiPopover, getPopover };
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
import { StyleToggler } from "@oscarpalmer/toretto/style";
|
|
2
|
-
//#region src/js/resizable/resizable.embedded.d.ts
|
|
3
|
-
type CreateOuiResizableOptions = {
|
|
4
|
-
maximumHeight?: number;
|
|
5
|
-
maximumWidth?: number;
|
|
6
|
-
minimumHeight?: number;
|
|
7
|
-
minimumWidth?: number;
|
|
8
|
-
};
|
|
9
|
-
declare class OuiResizable {
|
|
10
|
-
#private;
|
|
11
|
-
constructor(state: OuiResizableState);
|
|
12
|
-
destroy(): void;
|
|
13
|
-
set(): void;
|
|
14
|
-
reset(): void;
|
|
15
|
-
}
|
|
16
|
-
type OuiResizableState = {
|
|
17
|
-
element: HTMLElement;
|
|
18
|
-
handle: HTMLElement;
|
|
19
|
-
height: number;
|
|
20
|
-
options: Required<CreateOuiResizableOptions>;
|
|
21
|
-
styles: StyleToggler;
|
|
22
|
-
width: number;
|
|
23
|
-
};
|
|
24
|
-
/**
|
|
25
|
-
* Creates _(or retrieves)_ a _OuiResizable_ instance for an element
|
|
26
|
-
*
|
|
27
|
-
* @param element Element to make resizable
|
|
28
|
-
* @returns _OuiResizable_ instance
|
|
29
|
-
*/
|
|
30
|
-
declare function createResizable(element: HTMLElement, options?: CreateOuiResizableOptions): OuiResizable;
|
|
31
|
-
declare const RESIZABLE_ATTRIBUTE = "oui-resizable";
|
|
32
|
-
declare const RESIZABLE_ATTRIBUTE_HANDLE: string;
|
|
33
|
-
//#endregion
|
|
34
|
-
export { createResizable as a, RESIZABLE_ATTRIBUTE_HANDLE as i, OuiResizable as n, RESIZABLE_ATTRIBUTE as r, CreateOuiResizableOptions as t };
|
package/dist/js/toolbar.mjs
DELETED
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
import { attributable } from "./internal/attributable.mjs";
|
|
2
|
-
import { getNavigable, updateNavigableFocus } from "./internal/navigable.mjs";
|
|
3
|
-
//#region src/js/toolbar.ts
|
|
4
|
-
var OuiToolbar = class {
|
|
5
|
-
#navigable;
|
|
6
|
-
constructor(navigable) {
|
|
7
|
-
this.#navigable = navigable;
|
|
8
|
-
updateNavigableFocus(this.#navigable, false);
|
|
9
|
-
}
|
|
10
|
-
destroy() {
|
|
11
|
-
this.#navigable.destroy();
|
|
12
|
-
this.#navigable = void 0;
|
|
13
|
-
}
|
|
14
|
-
};
|
|
15
|
-
function addToolbar(element) {
|
|
16
|
-
if (!instances.has(element)) instances.set(element, new OuiToolbar(getNavigable(element, {
|
|
17
|
-
role: "toolbar",
|
|
18
|
-
selector: SELECTOR,
|
|
19
|
-
vertical: false
|
|
20
|
-
})));
|
|
21
|
-
}
|
|
22
|
-
function removeToolbar(element) {
|
|
23
|
-
instances.get(element)?.destroy();
|
|
24
|
-
instances.delete(element);
|
|
25
|
-
}
|
|
26
|
-
const ATTRIBUTE = "oui-toolbar";
|
|
27
|
-
const SELECTOR = `[${ATTRIBUTE}-item]`;
|
|
28
|
-
const instances = /* @__PURE__ */ new WeakMap();
|
|
29
|
-
attributable(ATTRIBUTE, addToolbar, removeToolbar);
|
|
30
|
-
//#endregion
|
|
31
|
-
export {};
|
package/dist/js/tooltip.d.mts
DELETED
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
import { r as OuiFloatable } from "./floatable.embedded-DQYkXt8X.mjs";
|
|
2
|
-
//#region src/js/tooltip.d.ts
|
|
3
|
-
declare class OuiTooltip {
|
|
4
|
-
#private;
|
|
5
|
-
/**
|
|
6
|
-
* Is the tooltip open?
|
|
7
|
-
*/
|
|
8
|
-
get open(): boolean;
|
|
9
|
-
/**
|
|
10
|
-
* Open or close the tooltip
|
|
11
|
-
*/
|
|
12
|
-
set open(value: boolean);
|
|
13
|
-
constructor(state: OuiTooltipState);
|
|
14
|
-
/**
|
|
15
|
-
* Closes the tooltip
|
|
16
|
-
*/
|
|
17
|
-
hide(): void;
|
|
18
|
-
/**
|
|
19
|
-
* Opens the tooltip
|
|
20
|
-
*/
|
|
21
|
-
show(): void;
|
|
22
|
-
}
|
|
23
|
-
type OuiTooltipState = {
|
|
24
|
-
anchor: HTMLElement;
|
|
25
|
-
elements: HTMLElement[];
|
|
26
|
-
floatable: OuiFloatable;
|
|
27
|
-
timer?: number;
|
|
28
|
-
tooltip: OuiTooltip;
|
|
29
|
-
};
|
|
30
|
-
/**
|
|
31
|
-
* Get the _OuiTooltip_ for an element
|
|
32
|
-
*
|
|
33
|
-
* @param element Element to get _OuiTooltip_ for
|
|
34
|
-
* @returns _OuiTooltip_ instance
|
|
35
|
-
*/
|
|
36
|
-
declare function getTooltip(element: HTMLElement): OuiTooltip | undefined;
|
|
37
|
-
/**
|
|
38
|
-
* Set the delay before showing the tooltip, in milliseconds
|
|
39
|
-
*
|
|
40
|
-
* _(Default delay is half a second, or 500 milliseconds)_
|
|
41
|
-
* @param value Delay in milliseconds
|
|
42
|
-
*/
|
|
43
|
-
declare function setTooltipDelay(value: number): void;
|
|
44
|
-
//#endregion
|
|
45
|
-
export { type OuiTooltip, getTooltip, setTooltipDelay };
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|